From 624c084c659595ddfe5bd049e752d2db3dc9ff1f Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 13 Nov 2021 16:54:12 +1000 Subject: [PATCH] Decompile _n_handleEvent --- include/PR/libaudio.h | 16 +- src/game/bondcutscene.c | 2 +- src/game/bondgun.c | 24 +- src/game/dlights.c | 6 +- src/game/game_0150a0.c | 2 +- src/game/game_015470.c | 2 +- src/game/game_092610.c | 14 +- src/game/game_0b69d0.c | 2 +- src/game/hudmsg.c | 2 +- src/game/lv.c | 4 +- src/game/nbomb.c | 8 +- src/game/propobj.c | 6 +- src/game/weather/weather.c | 2 +- src/include/lib/lib_317f0.h | 8 +- src/include/lib/snd.h | 2 +- src/include/types.h | 44 +- src/lib/naudio/n_sndp.h | 25 +- src/lib/naudio/n_sndplayer.c | 3376 +++++----------------------------- 18 files changed, 495 insertions(+), 3050 deletions(-) diff --git a/include/PR/libaudio.h b/include/PR/libaudio.h index ca3bd659d..c1e4808c3 100644 --- a/include/PR/libaudio.h +++ b/include/PR/libaudio.h @@ -402,9 +402,12 @@ Acmd *alAudioFrame(Acmd *cmdList, s32 *cmdLen, s16 *outBuf, s32 outLen); /* * Play states */ -#define AL_STOPPED 0 -#define AL_PLAYING 1 -#define AL_STOPPING 2 +#define AL_STOPPED 0 +#define AL_PLAYING 1 +#define AL_STOPPING 2 +#define AL_STATE3 3 +#define AL_STATE4 4 +#define AL_STATE5 5 #define AL_DEFAULT_PRIORITY 5 #define AL_DEFAULT_VOICE 0 @@ -439,12 +442,7 @@ enum ALMsg { /*0x16*/ AL_TREM_OSC_EVT, /*0x17*/ AL_VIB_OSC_EVT, /*0x18*/ AL_18_EVT, - /*0x19*/ AL_19_EVT, - /*0x20*/ AL_20_EVT = 0x20, // AL_SNDP_API_EVENT? But is already used and is internal - /*0x80*/ AL_80_EVT = 0x80, - /*0x200*/ AL_200_EVT = 0x200, - /*0x400*/ AL_400_EVT = 0x400, - /*0x800*/ AL_800_EVT = 0x800 + /*0x19*/ AL_19_EVT }; /* diff --git a/src/game/bondcutscene.c b/src/game/bondcutscene.c index 1a37a196b..e07aefb9a 100644 --- a/src/game/bondcutscene.c +++ b/src/game/bondcutscene.c @@ -19,7 +19,7 @@ void bcutsceneInit(void) for (j = 0; j < 1; j++) { struct hand *hand = &g_Vars.players[i]->hands[j]; - if (hand->audiohandle && audioIsPlaying(hand->audiohandle)) { + if (hand->audiohandle && sndGetState(hand->audiohandle) != AL_STOPPED) { audioStop(hand->audiohandle); hand->audiohandle = NULL; } diff --git a/src/game/bondgun.c b/src/game/bondgun.c index a533eff47..48a8db749 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -6041,7 +6041,7 @@ glabel var7f1ac320 /* f09a9e8: 8e0401cc */ lw $a0,0x1cc($s0) /* f09a9ec: 50800008 */ beqzl $a0,.L0f09aa10 /* f09a9f0: 8e0401d0 */ lw $a0,0x1d0($s0) -/* f09a9f4: 0c00cdfc */ jal audioIsPlaying +/* f09a9f4: 0c00cdfc */ jal sndGetState /* f09a9f8: 00000000 */ nop /* f09a9fc: 50400004 */ beqzl $v0,.L0f09aa10 /* f09aa00: 8e0401d0 */ lw $a0,0x1d0($s0) @@ -6051,7 +6051,7 @@ glabel var7f1ac320 .L0f09aa10: /* f09aa10: 10800007 */ beqz $a0,.L0f09aa30 /* f09aa14: 00000000 */ nop -/* f09aa18: 0c00cdfc */ jal audioIsPlaying +/* f09aa18: 0c00cdfc */ jal sndGetState /* f09aa1c: 00000000 */ nop /* f09aa20: 10400003 */ beqz $v0,.L0f09aa30 /* f09aa24: 00000000 */ nop @@ -6371,7 +6371,7 @@ glabel var7f1ac320 /* f09a9e8: 8e0401cc */ lw $a0,0x1cc($s0) /* f09a9ec: 50800008 */ beqzl $a0,.L0f09aa10 /* f09a9f0: 8e0401d0 */ lw $a0,0x1d0($s0) -/* f09a9f4: 0c00cdfc */ jal audioIsPlaying +/* f09a9f4: 0c00cdfc */ jal sndGetState /* f09a9f8: 00000000 */ nop /* f09a9fc: 50400004 */ beqzl $v0,.L0f09aa10 /* f09aa00: 8e0401d0 */ lw $a0,0x1d0($s0) @@ -6381,7 +6381,7 @@ glabel var7f1ac320 .L0f09aa10: /* f09aa10: 10800007 */ beqz $a0,.L0f09aa30 /* f09aa14: 00000000 */ nop -/* f09aa18: 0c00cdfc */ jal audioIsPlaying +/* f09aa18: 0c00cdfc */ jal sndGetState /* f09aa1c: 00000000 */ nop /* f09aa20: 10400003 */ beqz $v0,.L0f09aa30 /* f09aa24: 00000000 */ nop @@ -6692,7 +6692,7 @@ glabel var7f1ac320 /* f098a00: 8e0401cc */ lw $a0,0x1cc($s0) /* f098a04: 50800008 */ beqzl $a0,.NB0f098a28 /* f098a08: 8e0401d0 */ lw $a0,0x1d0($s0) -/* f098a0c: 0c00d360 */ jal audioIsPlaying +/* f098a0c: 0c00d360 */ jal sndGetState /* f098a10: 00000000 */ sll $zero,$zero,0x0 /* f098a14: 50400004 */ beqzl $v0,.NB0f098a28 /* f098a18: 8e0401d0 */ lw $a0,0x1d0($s0) @@ -6702,7 +6702,7 @@ glabel var7f1ac320 .NB0f098a28: /* f098a28: 10800007 */ beqz $a0,.NB0f098a48 /* f098a2c: 00000000 */ sll $zero,$zero,0x0 -/* f098a30: 0c00d360 */ jal audioIsPlaying +/* f098a30: 0c00d360 */ jal sndGetState /* f098a34: 00000000 */ sll $zero,$zero,0x0 /* f098a38: 10400003 */ beqz $v0,.NB0f098a48 /* f098a3c: 00000000 */ sll $zero,$zero,0x0 @@ -6915,11 +6915,11 @@ const char var7f1ab898[] = "rofftime"; // osSetThreadPri(0, osGetThreadPri(&g_AudioManager.thread) + 1); //#endif // -// if (hand->audiohandle2 && audioIsPlaying(hand->audiohandle2)) { +// if (hand->audiohandle2 && sndGetState(hand->audiohandle2) != AL_STOPPED) { // audioStop(hand->audiohandle2); // } // -// if (hand->audiohandle3 && audioIsPlaying(hand->audiohandle3)) { +// if (hand->audiohandle3 && sndGetState(hand->audiohandle3) != AL_STOPPED) { // audioStop(hand->audiohandle3); // } // @@ -15385,7 +15385,7 @@ void bgun0f0a1528(void) animInit(&player->hands[i].anim); - if (player->hands[i].audiohandle && audioIsPlaying(player->hands[i].audiohandle)) { + if (player->hands[i].audiohandle && sndGetState(player->hands[i].audiohandle) != AL_STOPPED) { audioStop(player->hands[i].audiohandle); } } @@ -19423,7 +19423,7 @@ void bgun0f0a4334(struct hand *hand) #else hand->matmot1 -= g_Vars.lvupdate240f / 10.0f; #endif - } else if (hand->audiohandle != NULL && audioIsPlaying(hand->audiohandle)) { + } else if (hand->audiohandle != NULL && sndGetState(hand->audiohandle) != AL_STOPPED) { audioStop(hand->audiohandle); } } @@ -24598,11 +24598,11 @@ s8 bgunFreeFireslotWrapper(s32 slotnum) { #if VERSION < VERSION_NTSC_1_0 if (slotnum >= 0) { - if (g_Fireslots[slotnum].unk04nb && audioIsPlaying(g_Fireslots[slotnum].unk04nb)) { + if (g_Fireslots[slotnum].unk04nb && sndGetState(g_Fireslots[slotnum].unk04nb) != AL_STOPPED) { audioStop(g_Fireslots[slotnum].unk04nb); } - if (g_Fireslots[slotnum].unk08nb && audioIsPlaying(g_Fireslots[slotnum].unk08nb)) { + if (g_Fireslots[slotnum].unk08nb && sndGetState(g_Fireslots[slotnum].unk08nb) != AL_STOPPED) { audioStop(g_Fireslots[slotnum].unk08nb); } } diff --git a/src/game/dlights.c b/src/game/dlights.c index 93aa087f3..9cfd3154f 100644 --- a/src/game/dlights.c +++ b/src/game/dlights.c @@ -6474,7 +6474,7 @@ glabel func0f005bb0 .L0f005f28: /* f005f28: 50800025 */ beqzl $a0,.L0f005fc0 /* f005f2c: 8fbf0024 */ lw $ra,0x24($sp) -/* f005f30: 0c00cdfc */ jal audioIsPlaying +/* f005f30: 0c00cdfc */ jal sndGetState /* f005f34: 00000000 */ nop /* f005f38: 10400020 */ beqz $v0,.L0f005fbc /* f005f3c: 3c19800a */ lui $t9,%hi(g_Vars+0x284) @@ -6490,7 +6490,7 @@ glabel func0f005bb0 /* f005f60: 8de41c20 */ lw $a0,0x1c20($t7) /* f005f64: 10800008 */ beqz $a0,.L0f005f88 /* f005f68: 00000000 */ nop -/* f005f6c: 0c00cdfc */ jal audioIsPlaying +/* f005f6c: 0c00cdfc */ jal sndGetState /* f005f70: 00000000 */ nop /* f005f74: 10400004 */ beqz $v0,.L0f005f88 /* f005f78: 3c18800a */ lui $t8,%hi(g_Vars+0x284) @@ -6504,7 +6504,7 @@ glabel func0f005bb0 /* f005f94: 8d441c24 */ lw $a0,0x1c24($t2) /* f005f98: 50800009 */ beqzl $a0,.L0f005fc0 /* f005f9c: 8fbf0024 */ lw $ra,0x24($sp) -/* f005fa0: 0c00cdfc */ jal audioIsPlaying +/* f005fa0: 0c00cdfc */ jal sndGetState /* f005fa4: 00000000 */ nop /* f005fa8: 10400004 */ beqz $v0,.L0f005fbc /* f005fac: 3c0c800a */ lui $t4,%hi(g_Vars+0x284) diff --git a/src/game/game_0150a0.c b/src/game/game_0150a0.c index 54140777c..27a84075e 100644 --- a/src/game/game_0150a0.c +++ b/src/game/game_0150a0.c @@ -15,7 +15,7 @@ void func0f0150a0(void) snd0000fbc4(g_AudioChannels[i].soundnum26); g_AudioChannels[i].flags &= ~AUDIOCHANNELFLAG_0010; g_AudioChannels[i].flags &= ~AUDIOCHANNELFLAG_0002; - } else if (g_AudioChannels[i].audiohandle && audioIsPlaying(g_AudioChannels[i].audiohandle)) { + } else if (g_AudioChannels[i].audiohandle && sndGetState(g_AudioChannels[i].audiohandle) != AL_STOPPED) { audioStop(g_AudioChannels[i].audiohandle); g_AudioChannels[i].flags &= ~AUDIOCHANNELFLAG_0002; } diff --git a/src/game/game_015470.c b/src/game/game_015470.c index e7f97c899..98f4ef5ec 100644 --- a/src/game/game_015470.c +++ b/src/game/game_015470.c @@ -50,7 +50,7 @@ void func0f015470(void) for (j = 0; j < 2; j++) { struct hand *hand = &g_Vars.players[i]->hands[j]; - if (hand->audiohandle2 && audioIsPlaying(hand->audiohandle2)) { + if (hand->audiohandle2 && sndGetState(hand->audiohandle2) != AL_STOPPED) { audioStop(hand->audiohandle2); } } diff --git a/src/game/game_092610.c b/src/game/game_092610.c index 22161e6a4..ee0004858 100644 --- a/src/game/game_092610.c +++ b/src/game/game_092610.c @@ -379,7 +379,7 @@ void func0f092a98(s32 channelnum) if ((channel->flags & AUDIOCHANNELFLAG_0010)) { snd0000fbc4(channel->soundnum26); - } else if (channel->audiohandle && audioIsPlaying(channel->audiohandle)) { + } else if (channel->audiohandle && sndGetState(channel->audiohandle) != AL_STOPPED) { audioStop(channel->audiohandle); } @@ -452,7 +452,7 @@ glabel var7f1ab740 /* f092b50: 8e040000 */ lw $a0,0x0($s0) /* f092b54: 50800006 */ beqzl $a0,.PF0f092b70 /* f092b58: 96030030 */ lhu $v1,0x30($s0) -/* f092b5c: 0c00cc3c */ jal audioIsPlaying +/* f092b5c: 0c00cc3c */ jal sndGetState /* f092b60: 00000000 */ nop /* f092b64: 54400010 */ bnezl $v0,.PF0f092ba8 /* f092b68: 8e020050 */ lw $v0,0x50($s0) @@ -909,7 +909,7 @@ glabel var7f1ab740 /* f0931ac: 5080000e */ beqzl $a0,.PF0f0931e8 /* f0931b0: 960a0030 */ lhu $t2,0x30($s0) /* f0931b4: afa80040 */ sw $t0,0x40($sp) -/* f0931b8: 0c00cc3c */ jal audioIsPlaying +/* f0931b8: 0c00cc3c */ jal sndGetState /* f0931bc: e7b2003c */ swc1 $f18,0x3c($sp) /* f0931c0: 8fa80040 */ lw $t0,0x40($sp) /* f0931c4: 10400007 */ beqz $v0,.PF0f0931e4 @@ -1103,7 +1103,7 @@ glabel var7f1ab740 /* f092c50: 8e040000 */ lw $a0,0x0($s0) /* f092c54: 50800006 */ beqzl $a0,.L0f092c70 /* f092c58: 96030030 */ lhu $v1,0x30($s0) -/* f092c5c: 0c00cdfc */ jal audioIsPlaying +/* f092c5c: 0c00cdfc */ jal sndGetState /* f092c60: 00000000 */ nop /* f092c64: 54400010 */ bnezl $v0,.L0f092ca8 /* f092c68: 8e020050 */ lw $v0,0x50($s0) @@ -1563,7 +1563,7 @@ glabel var7f1ab740 /* f0932bc: 5080000e */ beqzl $a0,.L0f0932f8 /* f0932c0: 960b0030 */ lhu $t3,0x30($s0) /* f0932c4: afa80040 */ sw $t0,0x40($sp) -/* f0932c8: 0c00cdfc */ jal audioIsPlaying +/* f0932c8: 0c00cdfc */ jal sndGetState /* f0932cc: e7b2003c */ swc1 $f18,0x3c($sp) /* f0932d0: 8fa80040 */ lw $t0,0x40($sp) /* f0932d4: 10400007 */ beqz $v0,.L0f0932f4 @@ -1750,7 +1750,7 @@ glabel var7f1ab740 /* f091284: 8e050000 */ lw $a1,0x0($s0) /* f091288: 50a00006 */ beqzl $a1,.NB0f0912a4 /* f09128c: 96030030 */ lhu $v1,0x30($s0) -/* f091290: 0c00d360 */ jal audioIsPlaying +/* f091290: 0c00d360 */ jal sndGetState /* f091294: 00a02025 */ or $a0,$a1,$zero /* f091298: 5440000e */ bnezl $v0,.NB0f0912d4 /* f09129c: 8e020050 */ lw $v0,0x50($s0) @@ -2172,7 +2172,7 @@ glabel var7f1ab740 /* f091864: 10a0000e */ beqz $a1,.NB0f0918a0 /* f091868: 00a02025 */ or $a0,$a1,$zero /* f09186c: afa80040 */ sw $t0,0x40($sp) -/* f091870: 0c00d360 */ jal audioIsPlaying +/* f091870: 0c00d360 */ jal sndGetState /* f091874: e7b2003c */ swc1 $f18,0x3c($sp) /* f091878: 8fa80040 */ lw $t0,0x40($sp) /* f09187c: 10400008 */ beqz $v0,.NB0f0918a0 diff --git a/src/game/game_0b69d0.c b/src/game/game_0b69d0.c index 821b963b4..b0049c2c0 100644 --- a/src/game/game_0b69d0.c +++ b/src/game/game_0b69d0.c @@ -4185,7 +4185,7 @@ void func0f0bace0(void) for (i = 0; i < 2; i++) { hand = &g_Vars.currentplayer->hands[i]; - if (hand->audiohandle2 && audioIsPlaying(hand->audiohandle2)) { + if (hand->audiohandle2 && sndGetState(hand->audiohandle2) != AL_STOPPED) { audioStop(hand->audiohandle2); } } diff --git a/src/game/hudmsg.c b/src/game/hudmsg.c index cb3228aba..9e0823dbe 100644 --- a/src/game/hudmsg.c +++ b/src/game/hudmsg.c @@ -6846,7 +6846,7 @@ glabel hudmsgsReset /* f0ddb7c: 8c8436b0 */ lw $a0,0x36b0($a0) /* f0ddb80: 50800008 */ beqzl $a0,.NB0f0ddba4 /* f0ddb84: 8fbf0014 */ lw $ra,0x14($sp) -/* f0ddb88: 0c00d360 */ jal audioIsPlaying +/* f0ddb88: 0c00d360 */ jal sndGetState /* f0ddb8c: 00000000 */ sll $zero,$zero,0x0 /* f0ddb90: 10400003 */ beqz $v0,.NB0f0ddba0 /* f0ddb94: 3c048007 */ lui $a0,0x8007 diff --git a/src/game/lv.c b/src/game/lv.c index 0b8ad6939..a34a4e012 100644 --- a/src/game/lv.c +++ b/src/game/lv.c @@ -302,7 +302,7 @@ void lvUpdateMiscSfx(void) lvSetMiscSfxState(MISCSFX_SLAYERROCKETBEEP, usingrocket); } - if (g_Vars.lvupdate240 == 0 && g_MiscAudioHandle && audioIsPlaying(g_MiscAudioHandle)) { + if (g_Vars.lvupdate240 == 0 && g_MiscAudioHandle && sndGetState(g_MiscAudioHandle) != AL_STOPPED) { audioStop(g_MiscAudioHandle); } } @@ -9615,7 +9615,7 @@ void lvReset(void) { pakStopRumbleForAllPaks(true); - if (g_MiscAudioHandle && audioIsPlaying(g_MiscAudioHandle)) { + if (g_MiscAudioHandle && sndGetState(g_MiscAudioHandle)) { audioStop(g_MiscAudioHandle); } diff --git a/src/game/nbomb.c b/src/game/nbomb.c index a63434958..6d436b603 100644 --- a/src/game/nbomb.c +++ b/src/game/nbomb.c @@ -3768,12 +3768,12 @@ void nbombsTick(void) audioPostEvent(g_NbombAudioHandle, 16, *(s32 *)&speed); } } else { - if (g_NbombAudioHandle && audioIsPlaying(g_NbombAudioHandle)) { + if (g_NbombAudioHandle && sndGetState(g_NbombAudioHandle) != AL_STOPPED) { audioStop(g_NbombAudioHandle); } } } else { - if (g_NbombAudioHandle && audioIsPlaying(g_NbombAudioHandle)) { + if (g_NbombAudioHandle && sndGetState(g_NbombAudioHandle) != AL_STOPPED) { audioStop(g_NbombAudioHandle); } } @@ -3781,14 +3781,14 @@ void nbombsTick(void) if (g_Vars.lvupdate240 == 0) { for (i = 0; i < 6; i++) { if (g_Nbombs[i].age240 >= 0) { - if (g_Nbombs[i].audiohandle20 && audioIsPlaying(g_Nbombs[i].audiohandle20)) { + if (g_Nbombs[i].audiohandle20 && sndGetState(g_Nbombs[i].audiohandle20) != AL_STOPPED) { audioStop(g_Nbombs[i].audiohandle20); #if VERSION < VERSION_NTSC_1_0 g_Nbombs[i].audiohandle20 = NULL; #endif } - if (g_Nbombs[i].audiohandle24 && audioIsPlaying(g_Nbombs[i].audiohandle24)) { + if (g_Nbombs[i].audiohandle24 && sndGetState(g_Nbombs[i].audiohandle24) != AL_STOPPED) { audioStop(g_Nbombs[i].audiohandle24); #if VERSION < VERSION_NTSC_1_0 g_Nbombs[i].audiohandle24 = NULL; diff --git a/src/game/propobj.c b/src/game/propobj.c index 21b0f2326..d2ba4684a 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -73057,7 +73057,7 @@ void alarmActivate(void) void alarmStopAudio(void) { - if (g_AlarmAudioHandle && audioIsPlaying(g_AlarmAudioHandle)) { + if (g_AlarmAudioHandle && sndGetState(g_AlarmAudioHandle) != AL_STOPPED) { audioStop(g_AlarmAudioHandle); } } @@ -73096,7 +73096,7 @@ void gasReleaseFromPos(struct coord *pos) void gasStopAudio(void) { - if (g_GasAudioHandle && audioIsPlaying(g_GasAudioHandle)) { + if (g_GasAudioHandle && sndGetState(g_GasAudioHandle)) { audioStop(g_GasAudioHandle); } } @@ -73150,7 +73150,7 @@ void gasTick(void) if (g_GasAudioHandle) { func0f09505c(g_GasAudioHandle, &g_GasPos, 400, 2500, 3000, g_Vars.currentplayer->prop->rooms, soundnum, 0x7fff, 0); } - } else if (g_GasAudioHandle && audioIsPlaying(g_GasAudioHandle)) { + } else if (g_GasAudioHandle && sndGetState(g_GasAudioHandle)) { audioStop(g_GasAudioHandle); } } diff --git a/src/game/weather/weather.c b/src/game/weather/weather.c index 2c931f550..ed16d3cd6 100644 --- a/src/game/weather/weather.c +++ b/src/game/weather/weather.c @@ -330,7 +330,7 @@ void weatherTickRain(struct weatherdata *weather) } if (weather->audiohandles[i] != 0) { - if (audioIsPlaying(weather->audiohandles[i])) { + if (sndGetState(weather->audiohandles[i]) != AL_STOPPED) { sndAdjust(&weather->audiohandles[i], 0, iVar10 * 3 / 4, -1, weather->unkf8, 1, 1, -1, 1); } diff --git a/src/include/lib/lib_317f0.h b/src/include/lib/lib_317f0.h index 11b5aa79c..8fb360a43 100644 --- a/src/include/lib/lib_317f0.h +++ b/src/include/lib/lib_317f0.h @@ -5,13 +5,13 @@ #include "types.h" void func00033090(struct sndstate *handle); -u32 func00033100(void); +void func00033100(struct sndstate *state); u16 sndpCountStates(s16 *numfreeptr, s16 *numallocedptr); void func00033378(void *fn); -struct sndstate *func00033390(s32 arg0, struct sndstate_08 *arg1); +struct sndstate *func00033390(s32 arg0, ALSound *sound); void func00033634(void *fn); -bool audioIsPlaying(struct sndstate *handle); -struct sndstate *func00033820(s32 arg0, s16 soundnum, u16 arg2, u8 arg3, f32 arg4, u8 arg5, u8 arg6, struct sndstate **handleptr); +s32 sndGetState(struct sndstate *handle); +struct sndstate *func00033820(s32 arg0, s16 soundnum, u16 vol, ALPan pan, f32 pitch, u8 fxmix, u8 fxbus, struct sndstate **handleptr); void audioStop(struct sndstate *handle); void func00033bc0(struct sndstate *handle); void func00033db0(void); diff --git a/src/include/lib/snd.h b/src/include/lib/snd.h index ffe3662ff..003b65503 100644 --- a/src/include/lib/snd.h +++ b/src/include/lib/snd.h @@ -18,7 +18,7 @@ u32 snd0000efa8(void); u32 snd0000f0d4(void); u32 snd0000f228(void); void sndSetSoundMode(s32 mode); -struct sndstate_08 *snd0000f49c(u16 soundnum); +ALSound *snd0000f49c(u16 soundnum); void seqInit(struct seqinstance *seq); void sndInit(void); bool sndIsMp3(u16 soundnum); diff --git a/src/include/types.h b/src/include/types.h index 67460e31e..6e32c816d 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -2123,44 +2123,26 @@ struct eyespy { /*0x7c*/ f32 pitch; }; -struct sndstate_08_00 { - u32 unk00; - u32 unk04; -}; - -struct sndstate_08_04 { - u8 unk00; - u8 unk01; - u8 unk02; - u8 unk03; - u8 unk04; - s8 unk05; -}; - -struct sndstate_08 { - struct sndstate_08_00 *unk00; - struct sndstate_08_04 *unk04; -}; - struct sndstate { /*0x00*/ ALLink node; - /*0x08*/ struct sndstate_08 *unk08; + /*0x08*/ ALSound *sound; /*0x0c*/ N_ALVoice voice; - /*0x28*/ f32 unk28; - /*0x2c*/ f32 unk2c; + /*0x28*/ f32 basepitch; + /*0x2c*/ f32 pitch; /*0x30*/ struct sndstate **unk30; - /*0x34*/ u32 unk34; - /*0x38*/ s16 unk38; - /*0x3c*/ u32 unk3c; - /*0x40*/ u8 unk40; - /*0x41*/ u8 unk41; - /*0x42*/ u8 unk42; - /*0x43*/ u8 unk43; + /*0x34*/ s32 unk34; + /*0x38*/ s16 vol; + /*0x3a*/ s16 envvol; + /*0x3c*/ ALMicroTime endtime; + /*0x40*/ u8 priority; + /*0x41*/ ALPan pan; + /*0x42*/ u8 fxmix; + /*0x43*/ u8 fxbus; /*0x44*/ u8 flags; - /*0x45*/ u8 playing; + /*0x45*/ u8 state; #if VERSION >= VERSION_NTSC_1_0 /*0x46*/ u16 soundnum; - /*0x48*/ u32 unk48; + /*0x48*/ ALMicroTime unk48; #endif }; diff --git a/src/lib/naudio/n_sndp.h b/src/lib/naudio/n_sndp.h index 68b08f9ca..326a862bc 100644 --- a/src/lib/naudio/n_sndp.h +++ b/src/lib/naudio/n_sndp.h @@ -34,15 +34,21 @@ #define MIN_RATIO 0.0001 typedef enum { - AL_SNDP_PLAY_EVT, - AL_SNDP_STOP_EVT, - AL_SNDP_PAN_EVT, - AL_SNDP_VOL_EVT, - AL_SNDP_PITCH_EVT, - AL_SNDP_API_EVT, - AL_SNDP_DECAY_EVT, - AL_SNDP_END_EVT, - AL_SNDP_FX_EVT + AL_SNDP_PLAY_EVT = 0x0001, + AL_SNDP_STOP_EVT = 0x0002, + AL_SNDP_PAN_EVT = 0x0004, + AL_SNDP_VOL_EVT = 0x0008, + AL_SNDP_PITCH_EVT = 0x0010, + AL_SNDP_API_EVT = 0x0020, + AL_SNDP_DECAY_EVT = 0x0040, + AL_SNDP_END_EVT = 0x0080, + AL_SNDP_FX_EVT = 0x0100, + AL_SNDP_0200_EVT = 0x0200, + AL_SNDP_0400_EVT = 0x0400, + AL_SNDP_0800_EVT = 0x0800, + AL_SNDP_1000_EVT = 0x1000, + AL_SNDP_FXBUS_EVT = 0x2000, + AL_SNDP_4000_EVT = 0x4000 } ALSndpMsgType; typedef struct { @@ -63,6 +69,7 @@ typedef union { struct { u16 type; N_ALSoundState *state; + u32 unk08; } common; struct { diff --git a/src/lib/naudio/n_sndplayer.c b/src/lib/naudio/n_sndplayer.c index ee174ea8e..688a00e80 100644 --- a/src/lib/naudio/n_sndplayer.c +++ b/src/lib/naudio/n_sndplayer.c @@ -19,8 +19,8 @@ N_ALSndPlayer *g_SndPlayer = &var8009c2d0; s16 var8005f130 = 0; s32 var8005f134 = 0; s32 var8005f138 = 0; -void (*var8005f13c)(struct sndstate_08 *) = NULL; -void (*var8005f140)(struct sndstate_08 *) = NULL; +void (*var8005f13c)(ALSound *) = NULL; +void (*var8005f140)(ALSound *) = NULL; void func00033378(void *fn); void func00033634(void *fn); @@ -69,7 +69,7 @@ void n_alSndpNew(ALSndpConfig *config) n_alSynAddSndPlayer(&g_SndPlayer->node); // Start responding to API events - evt.type = AL_20_EVT; + evt.type = AL_SNDP_API_EVT; n_alEvtqPostEvent(&g_SndPlayer->evtq, &evt, g_SndPlayer->frameTime, 1); @@ -83,8 +83,8 @@ ALMicroTime _n_sndpVoiceHandler(void *node) do { switch (sndp->nextEvent.type) { - case (AL_20_EVT): - evt.common.type = AL_20_EVT; + case (AL_SNDP_API_EVT): + evt.common.type = AL_SNDP_API_EVT; n_alEvtqPostEvent(&sndp->evtq, (N_ALEvent *)&evt, sndp->frameTime, 1); break; @@ -101,2913 +101,371 @@ ALMicroTime _n_sndpVoiceHandler(void *node) return sndp->nextDelta; } +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) + +void _n_handleEvent(N_ALSndpEvent *event) +{ + ALVoiceConfig config; + ALSound *sound; + ALKeyMap *keymap; + ALPan pan; + N_ALSndpEvent sp94; + N_ALSndpEvent sp84; + ALMicroTime delta; + s32 fxmix; + s32 vol; + s32 tmppan; + s32 sp70; + s32 isspecial; + bool done = true; + bool hasvoice = false; + struct sndstate *state = NULL; + struct sndstate *nextstate = NULL; + s16 numfree; + s16 numalloced; + struct sndstate *iterstate; + N_ALSndpEvent sp44; + ALMicroTime sp40; + + do { + if (nextstate != NULL) { + sp84.common.state = (N_ALSoundState *)state; + sp84.common.type = event->common.type; + sp84.common.unk08 = event->common.unk08; + event = &sp84; + } + + state = (struct sndstate *)event->common.state; + + if (((u32)state & 0x80000000) == 0) { + // empty + } + + sound = state->sound; + + if (sound == NULL) { + sndpCountStates(&numfree, &numalloced); + return; + } + + keymap = sound->keyMap; + nextstate = (struct sndstate *)state->node.next; + + switch (event->common.type) { + case AL_SNDP_PLAY_EVT: + if (state->state != AL_STATE5 && state->state != AL_STATE4) { + return; + } + + config.fxBus = state->fxbus; + config.priority = state->priority; + config.unityPitch = 0; + sp70 = var8005f130 >= g_SndPlayer->maxSounds; + + if (!sp70 || (state->flags & SNDSTATEFLAG_10)) { + hasvoice = n_alSynAllocVoice(&state->voice, &config); + } + + if (!hasvoice) { + if (state->flags & (SNDSTATEFLAG_02 | SNDSTATEFLAG_10) || state->unk34 > 0) { + state->state = AL_STATE4; + state->unk34--; + n_alEvtqPostEvent(&g_SndPlayer->evtq, &event->msg, 33333, 0); + } else if (sp70) { + iterstate = g_SndpAllocStatesTail; + + do { + if ((iterstate->flags & (SNDSTATEFLAG_02 | SNDSTATEFLAG_10)) == 0 + && (iterstate->flags & SNDSTATEFLAG_04) + && iterstate->state != AL_STATE3) { + sp70 = 0; + sp44.common.type = AL_SNDP_END_EVT; + sp44.common.state = (N_ALSoundState *)iterstate; + iterstate->state = AL_STATE3; + + n_alEvtqPostEvent(&g_SndPlayer->evtq, &sp44.msg, 1000, 0); + n_alSynSetVol(&iterstate->voice, 0, 1000); + } + + iterstate = (struct sndstate *)iterstate->node.prev; + } while (sp70 && iterstate); + + if (sp70 == 0) { + state->unk34 = 2; + n_alEvtqPostEvent(&g_SndPlayer->evtq, &event->msg, 1001, 0); + } else { + func00033090(state); + } + } else { + func00033090(state); + } + return; + } + #if VERSION >= VERSION_NTSC_1_0 -GLOBAL_ASM( -glabel _n_handleEvent -.late_rodata -glabel var70054740 -.word _n_handleEvent+0x01ac -glabel var70054744 -.word _n_handleEvent+0x0a78 -glabel var70054748 -.word _n_handleEvent+0x14dc -glabel var7005474c -.word _n_handleEvent+0x0bfc -glabel var70054750 -.word _n_handleEvent+0x14dc -glabel var70054754 -.word _n_handleEvent+0x14dc -glabel var70054758 -.word _n_handleEvent+0x14dc -glabel var7005475c -.word _n_handleEvent+0x0f08 -glabel var70054760 -.word _n_handleEvent+0x14dc -glabel var70054764 -.word _n_handleEvent+0x14dc -glabel var70054768 -.word _n_handleEvent+0x14dc -glabel var7005476c -.word _n_handleEvent+0x14dc -glabel var70054770 -.word _n_handleEvent+0x14dc -glabel var70054774 -.word _n_handleEvent+0x14dc -glabel var70054778 -.word _n_handleEvent+0x14dc -glabel var7005477c -.word _n_handleEvent+0x0ca0 -.text -/* 31b34: 27bdff48 */ addiu $sp,$sp,-184 -/* 31b38: afbf0034 */ sw $ra,0x34($sp) -/* 31b3c: afa400b8 */ sw $a0,0xb8($sp) -/* 31b40: afb10030 */ sw $s1,0x30($sp) -/* 31b44: afb0002c */ sw $s0,0x2c($sp) -/* 31b48: 240e0001 */ addiu $t6,$zero,0x1 -/* 31b4c: afae0068 */ sw $t6,0x68($sp) -/* 31b50: afa00064 */ sw $zero,0x64($sp) -/* 31b54: afa00060 */ sw $zero,0x60($sp) -/* 31b58: afa0005c */ sw $zero,0x5c($sp) -.L00031b5c: -/* 31b5c: 8faf005c */ lw $t7,0x5c($sp) -/* 31b60: 11e0000b */ beqz $t7,.L00031b90 -/* 31b64: 00000000 */ nop -/* 31b68: 8fb80060 */ lw $t8,0x60($sp) -/* 31b6c: afb80088 */ sw $t8,0x88($sp) -/* 31b70: 8fb900b8 */ lw $t9,0xb8($sp) -/* 31b74: 97280000 */ lhu $t0,0x0($t9) -/* 31b78: a7a80084 */ sh $t0,0x84($sp) -/* 31b7c: 8fa900b8 */ lw $t1,0xb8($sp) -/* 31b80: 8d2a0008 */ lw $t2,0x8($t1) -/* 31b84: afaa008c */ sw $t2,0x8c($sp) -/* 31b88: 27ab0084 */ addiu $t3,$sp,0x84 -/* 31b8c: afab00b8 */ sw $t3,0xb8($sp) -.L00031b90: -/* 31b90: 8fac00b8 */ lw $t4,0xb8($sp) -/* 31b94: 8d8d0004 */ lw $t5,0x4($t4) -/* 31b98: afad0060 */ sw $t5,0x60($sp) -/* 31b9c: 8fae0060 */ lw $t6,0x60($sp) -/* 31ba0: 3c018000 */ lui $at,0x8000 -/* 31ba4: 01c17824 */ and $t7,$t6,$at -/* 31ba8: 15e00001 */ bnez $t7,.L00031bb0 -/* 31bac: 00000000 */ nop -.L00031bb0: -/* 31bb0: 8fb80060 */ lw $t8,0x60($sp) -/* 31bb4: 8f190008 */ lw $t9,0x8($t8) -/* 31bb8: afb900ac */ sw $t9,0xac($sp) -/* 31bbc: 8fa800ac */ lw $t0,0xac($sp) -/* 31bc0: 15000006 */ bnez $t0,.L00031bdc -/* 31bc4: 00000000 */ nop -/* 31bc8: 27a4005a */ addiu $a0,$sp,0x5a -/* 31bcc: 0c00cc9d */ jal sndpCountStates -/* 31bd0: 27a50058 */ addiu $a1,$sp,0x58 -/* 31bd4: 10000529 */ b .L0003307c -/* 31bd8: 00000000 */ nop -.L00031bdc: -/* 31bdc: 8fa900ac */ lw $t1,0xac($sp) -/* 31be0: 8d2a0004 */ lw $t2,0x4($t1) -/* 31be4: afaa00a8 */ sw $t2,0xa8($sp) -/* 31be8: 8fab0060 */ lw $t3,0x60($sp) -/* 31bec: 8d6c0000 */ lw $t4,0x0($t3) -/* 31bf0: afac005c */ sw $t4,0x5c($sp) -/* 31bf4: 8fad00b8 */ lw $t5,0xb8($sp) -/* 31bf8: 95b00000 */ lhu $s0,0x0($t5) -/* 31bfc: 2a010201 */ slti $at,$s0,0x201 -/* 31c00: 14200012 */ bnez $at,.L00031c4c -/* 31c04: 00000000 */ nop -/* 31c08: 24010400 */ addiu $at,$zero,0x400 -/* 31c0c: 12010267 */ beq $s0,$at,.L000325ac -/* 31c10: 00000000 */ nop -/* 31c14: 24010800 */ addiu $at,$zero,0x800 -/* 31c18: 120103ef */ beq $s0,$at,.L00032bd8 -/* 31c1c: 00000000 */ nop -/* 31c20: 24011000 */ addiu $at,$zero,0x1000 -/* 31c24: 12010261 */ beq $s0,$at,.L000325ac -/* 31c28: 00000000 */ nop -/* 31c2c: 24012000 */ addiu $at,$zero,0x2000 -/* 31c30: 1201036a */ beq $s0,$at,.L000329dc -/* 31c34: 00000000 */ nop -/* 31c38: 24014000 */ addiu $at,$zero,0x4000 -/* 31c3c: 12010330 */ beq $s0,$at,.L00032900 -/* 31c40: 00000000 */ nop -/* 31c44: 100004f2 */ b .L00033010 -/* 31c48: 00000000 */ nop -.L00031c4c: -/* 31c4c: 2a010081 */ slti $at,$s0,0x81 -/* 31c50: 14200009 */ bnez $at,.L00031c78 -/* 31c54: 00000000 */ nop -/* 31c58: 24010100 */ addiu $at,$zero,0x100 -/* 31c5c: 120102f7 */ beq $s0,$at,.L0003283c -/* 31c60: 00000000 */ nop -/* 31c64: 24010200 */ addiu $at,$zero,0x200 -/* 31c68: 120104d3 */ beq $s0,$at,.L00032fb8 -/* 31c6c: 00000000 */ nop -/* 31c70: 100004e7 */ b .L00033010 -/* 31c74: 00000000 */ nop -.L00031c78: -/* 31c78: 2a010041 */ slti $at,$s0,0x41 -/* 31c7c: 14200006 */ bnez $at,.L00031c98 -/* 31c80: 00000000 */ nop -/* 31c84: 24010080 */ addiu $at,$zero,0x80 -/* 31c88: 120104c7 */ beq $s0,$at,.L00032fa8 -/* 31c8c: 00000000 */ nop -/* 31c90: 100004df */ b .L00033010 -/* 31c94: 00000000 */ nop -.L00031c98: -/* 31c98: 2a010011 */ slti $at,$s0,0x11 -/* 31c9c: 14200006 */ bnez $at,.L00031cb8 -/* 31ca0: 00000000 */ nop -/* 31ca4: 24010040 */ addiu $at,$zero,0x40 -/* 31ca8: 12010436 */ beq $s0,$at,.L00032d84 -/* 31cac: 00000000 */ nop -/* 31cb0: 100004d7 */ b .L00033010 -/* 31cb4: 00000000 */ nop -.L00031cb8: -/* 31cb8: 260effff */ addiu $t6,$s0,-1 -/* 31cbc: 2dc10010 */ sltiu $at,$t6,0x10 -/* 31cc0: 102004d3 */ beqz $at,.L00033010 -/* 31cc4: 00000000 */ nop -/* 31cc8: 000e7080 */ sll $t6,$t6,0x2 -/* 31ccc: 3c017005 */ lui $at,%hi(var70054740) -/* 31cd0: 002e0821 */ addu $at,$at,$t6 -/* 31cd4: 8c2e4740 */ lw $t6,%lo(var70054740)($at) -/* 31cd8: 01c00008 */ jr $t6 -/* 31cdc: 00000000 */ nop -/* 31ce0: 8faf0060 */ lw $t7,0x60($sp) -/* 31ce4: 24010005 */ addiu $at,$zero,0x5 -/* 31ce8: 91f80045 */ lbu $t8,0x45($t7) -/* 31cec: 13010006 */ beq $t8,$at,.L00031d08 -/* 31cf0: 00000000 */ nop -/* 31cf4: 24010004 */ addiu $at,$zero,0x4 -/* 31cf8: 13010003 */ beq $t8,$at,.L00031d08 -/* 31cfc: 00000000 */ nop -/* 31d00: 100004de */ b .L0003307c -/* 31d04: 00000000 */ nop -.L00031d08: -/* 31d08: 8fb90060 */ lw $t9,0x60($sp) -/* 31d0c: 93280043 */ lbu $t0,0x43($t9) -/* 31d10: a7a800b2 */ sh $t0,0xb2($sp) -/* 31d14: 8fa90060 */ lw $t1,0x60($sp) -/* 31d18: 912a0040 */ lbu $t2,0x40($t1) -/* 31d1c: a7aa00b0 */ sh $t2,0xb0($sp) -/* 31d20: a3a000b4 */ sb $zero,0xb4($sp) -/* 31d24: 3c0c8006 */ lui $t4,%hi(g_SndPlayer) -/* 31d28: 8d8cf12c */ lw $t4,%lo(g_SndPlayer)($t4) -/* 31d2c: 3c0b8006 */ lui $t3,%hi(var8005f130) -/* 31d30: 856bf130 */ lh $t3,%lo(var8005f130)($t3) -/* 31d34: 8d8d0044 */ lw $t5,0x44($t4) -/* 31d38: 016d702a */ slt $t6,$t3,$t5 -/* 31d3c: 39ce0001 */ xori $t6,$t6,0x1 -/* 31d40: afae0070 */ sw $t6,0x70($sp) -/* 31d44: 8faf0070 */ lw $t7,0x70($sp) -/* 31d48: 11e00006 */ beqz $t7,.L00031d64 -/* 31d4c: 00000000 */ nop -/* 31d50: 8fb80060 */ lw $t8,0x60($sp) -/* 31d54: 93190044 */ lbu $t9,0x44($t8) -/* 31d58: 33280010 */ andi $t0,$t9,0x10 -/* 31d5c: 11000006 */ beqz $t0,.L00031d78 -/* 31d60: 00000000 */ nop -.L00031d64: -/* 31d64: 8fa40060 */ lw $a0,0x60($sp) -/* 31d68: 27a500b0 */ addiu $a1,$sp,0xb0 -/* 31d6c: 0c00f278 */ jal n_alSynAllocVoice -/* 31d70: 2484000c */ addiu $a0,$a0,0xc -/* 31d74: afa20064 */ sw $v0,0x64($sp) -.L00031d78: -/* 31d78: 8fa90064 */ lw $t1,0x64($sp) -/* 31d7c: 1520005f */ bnez $t1,.L00031efc -/* 31d80: 00000000 */ nop -/* 31d84: 8faa0060 */ lw $t2,0x60($sp) -/* 31d88: 914c0044 */ lbu $t4,0x44($t2) -/* 31d8c: 318b0012 */ andi $t3,$t4,0x12 -/* 31d90: 15600004 */ bnez $t3,.L00031da4 -/* 31d94: 00000000 */ nop -/* 31d98: 8d4d0034 */ lw $t5,0x34($t2) -/* 31d9c: 19a00011 */ blez $t5,.L00031de4 -/* 31da0: 00000000 */ nop -.L00031da4: -/* 31da4: 8faf0060 */ lw $t7,0x60($sp) -/* 31da8: 240e0004 */ addiu $t6,$zero,0x4 -/* 31dac: a1ee0045 */ sb $t6,0x45($t7) -/* 31db0: 8fb80060 */ lw $t8,0x60($sp) -/* 31db4: 8f190034 */ lw $t9,0x34($t8) -/* 31db8: 2728ffff */ addiu $t0,$t9,-1 -/* 31dbc: af080034 */ sw $t0,0x34($t8) -/* 31dc0: 3c048006 */ lui $a0,%hi(g_SndPlayer) -/* 31dc4: 8c84f12c */ lw $a0,%lo(g_SndPlayer)($a0) -/* 31dc8: 8fa500b8 */ lw $a1,0xb8($sp) -/* 31dcc: 34068235 */ dli $a2,0x8235 -/* 31dd0: 00003825 */ or $a3,$zero,$zero -/* 31dd4: 0c00f184 */ jal n_alEvtqPostEvent -/* 31dd8: 24840014 */ addiu $a0,$a0,20 -/* 31ddc: 10000045 */ b .L00031ef4 -/* 31de0: 00000000 */ nop -.L00031de4: -/* 31de4: 8fa90070 */ lw $t1,0x70($sp) -/* 31de8: 11200040 */ beqz $t1,.L00031eec -/* 31dec: 00000000 */ nop -/* 31df0: 3c0c8006 */ lui $t4,%hi(g_SndpAllocStatesTail) -/* 31df4: 8d8cf124 */ lw $t4,%lo(g_SndpAllocStatesTail)($t4) -/* 31df8: afac0054 */ sw $t4,0x54($sp) -.L00031dfc: -/* 31dfc: 8fab0054 */ lw $t3,0x54($sp) -/* 31e00: 916a0044 */ lbu $t2,0x44($t3) -/* 31e04: 314d0012 */ andi $t5,$t2,0x12 -/* 31e08: 15a0001c */ bnez $t5,.L00031e7c -/* 31e0c: 00000000 */ nop -/* 31e10: 314e0004 */ andi $t6,$t2,0x4 -/* 31e14: 11c00019 */ beqz $t6,.L00031e7c -/* 31e18: 00000000 */ nop -/* 31e1c: 916f0045 */ lbu $t7,0x45($t3) -/* 31e20: 24010003 */ addiu $at,$zero,0x3 -/* 31e24: 11e10015 */ beq $t7,$at,.L00031e7c -/* 31e28: 00000000 */ nop -/* 31e2c: afa00070 */ sw $zero,0x70($sp) -/* 31e30: 24190080 */ addiu $t9,$zero,0x80 -/* 31e34: a7b90044 */ sh $t9,0x44($sp) -/* 31e38: 8fa80054 */ lw $t0,0x54($sp) -/* 31e3c: afa80048 */ sw $t0,0x48($sp) -/* 31e40: 8fa90054 */ lw $t1,0x54($sp) -/* 31e44: 24180003 */ addiu $t8,$zero,0x3 -/* 31e48: a1380045 */ sb $t8,0x45($t1) -/* 31e4c: 3c048006 */ lui $a0,%hi(g_SndPlayer) -/* 31e50: 8c84f12c */ lw $a0,%lo(g_SndPlayer)($a0) -/* 31e54: 27a50044 */ addiu $a1,$sp,0x44 -/* 31e58: 240603e8 */ addiu $a2,$zero,0x3e8 -/* 31e5c: 00003825 */ or $a3,$zero,$zero -/* 31e60: 0c00f184 */ jal n_alEvtqPostEvent -/* 31e64: 24840014 */ addiu $a0,$a0,20 -/* 31e68: 8fa40054 */ lw $a0,0x54($sp) -/* 31e6c: 00002825 */ or $a1,$zero,$zero -/* 31e70: 240603e8 */ addiu $a2,$zero,0x3e8 -/* 31e74: 0c00f33c */ jal n_alSynSetVol -/* 31e78: 2484000c */ addiu $a0,$a0,0xc -.L00031e7c: -/* 31e7c: 8fac0054 */ lw $t4,0x54($sp) -/* 31e80: 8d8d0004 */ lw $t5,0x4($t4) -/* 31e84: afad0054 */ sw $t5,0x54($sp) -/* 31e88: 8faa0070 */ lw $t2,0x70($sp) -/* 31e8c: 11400004 */ beqz $t2,.L00031ea0 -/* 31e90: 00000000 */ nop -/* 31e94: 8fae0054 */ lw $t6,0x54($sp) -/* 31e98: 15c0ffd8 */ bnez $t6,.L00031dfc -/* 31e9c: 00000000 */ nop -.L00031ea0: -/* 31ea0: 8fab0070 */ lw $t3,0x70($sp) -/* 31ea4: 1560000d */ bnez $t3,.L00031edc -/* 31ea8: 00000000 */ nop -/* 31eac: 8fb90060 */ lw $t9,0x60($sp) -/* 31eb0: 240f0002 */ addiu $t7,$zero,0x2 -/* 31eb4: af2f0034 */ sw $t7,0x34($t9) -/* 31eb8: 3c048006 */ lui $a0,%hi(g_SndPlayer) -/* 31ebc: 8c84f12c */ lw $a0,%lo(g_SndPlayer)($a0) -/* 31ec0: 8fa500b8 */ lw $a1,0xb8($sp) -/* 31ec4: 240603e9 */ addiu $a2,$zero,0x3e9 -/* 31ec8: 00003825 */ or $a3,$zero,$zero -/* 31ecc: 0c00f184 */ jal n_alEvtqPostEvent -/* 31ed0: 24840014 */ addiu $a0,$a0,20 -/* 31ed4: 10000003 */ b .L00031ee4 -/* 31ed8: 00000000 */ nop -.L00031edc: -/* 31edc: 0c00cc24 */ jal func00033090 -/* 31ee0: 8fa40060 */ lw $a0,0x60($sp) -.L00031ee4: -/* 31ee4: 10000003 */ b .L00031ef4 -/* 31ee8: 00000000 */ nop -.L00031eec: -/* 31eec: 0c00cc24 */ jal func00033090 -/* 31ef0: 8fa40060 */ lw $a0,0x60($sp) -.L00031ef4: -/* 31ef4: 10000461 */ b .L0003307c -/* 31ef8: 00000000 */ nop -.L00031efc: -/* 31efc: 8fa800ac */ lw $t0,0xac($sp) -/* 31f00: 8fac0060 */ lw $t4,0x60($sp) -/* 31f04: 8d180000 */ lw $t8,0x0($t0) -/* 31f08: c588002c */ lwc1 $f8,0x2c($t4) -/* 31f0c: c5900028 */ lwc1 $f16,0x28($t4) -/* 31f10: 8f090000 */ lw $t1,0x0($t8) -/* 31f14: 44892000 */ mtc1 $t1,$f4 -/* 31f18: 00000000 */ nop -/* 31f1c: 468021a0 */ cvt.s.w $f6,$f4 -/* 31f20: 46083283 */ div.s $f10,$f6,$f8 -/* 31f24: 46105483 */ div.s $f18,$f10,$f16 -/* 31f28: 4600910d */ trunc.w.s $f4,$f18 -/* 31f2c: 440a2000 */ mfc1 $t2,$f4 -/* 31f30: 00000000 */ nop -/* 31f34: afaa0080 */ sw $t2,0x80($sp) -/* 31f38: 8fae0060 */ lw $t6,0x60($sp) -/* 31f3c: 91cb0044 */ lbu $t3,0x44($t6) -/* 31f40: 316f0002 */ andi $t7,$t3,0x2 -/* 31f44: 11e00004 */ beqz $t7,.L00031f58 -/* 31f48: 00000000 */ nop -/* 31f4c: 8fb90060 */ lw $t9,0x60($sp) -/* 31f50: 10000029 */ b .L00031ff8 -/* 31f54: af200048 */ sw $zero,0x48($t9) -.L00031f58: -/* 31f58: 8fa800ac */ lw $t0,0xac($sp) -/* 31f5c: 8fac0060 */ lw $t4,0x60($sp) -/* 31f60: 8d180000 */ lw $t8,0x0($t0) -/* 31f64: c58a002c */ lwc1 $f10,0x2c($t4) -/* 31f68: c5920028 */ lwc1 $f18,0x28($t4) -/* 31f6c: 8f090004 */ lw $t1,0x4($t8) -/* 31f70: 44893000 */ mtc1 $t1,$f6 -/* 31f74: 00000000 */ nop -/* 31f78: 46803220 */ cvt.s.w $f8,$f6 -/* 31f7c: 460a4403 */ div.s $f16,$f8,$f10 -/* 31f80: 46128103 */ div.s $f4,$f16,$f18 -/* 31f84: 4600218d */ trunc.w.s $f6,$f4 -/* 31f88: 440a3000 */ mfc1 $t2,$f6 -/* 31f8c: 00000000 */ nop -/* 31f90: afaa0040 */ sw $t2,0x40($sp) -/* 31f94: 8fae0040 */ lw $t6,0x40($sp) -/* 31f98: 3c010053 */ lui $at,0x53 -/* 31f9c: 3421ec61 */ ori $at,$at,0xec61 -/* 31fa0: 01c1082a */ slt $at,$t6,$at -/* 31fa4: 14200004 */ bnez $at,.L00031fb8 -/* 31fa8: 00000000 */ nop -/* 31fac: 3c0b0053 */ lui $t3,0x53 -/* 31fb0: 356bec60 */ ori $t3,$t3,0xec60 -/* 31fb4: afab0040 */ sw $t3,0x40($sp) -.L00031fb8: -/* 31fb8: 3c198006 */ lui $t9,%hi(g_SndPlayer) -/* 31fbc: 8f39f12c */ lw $t9,%lo(g_SndPlayer)($t9) -/* 31fc0: 8faf0040 */ lw $t7,0x40($sp) -/* 31fc4: 8fac0060 */ lw $t4,0x60($sp) -/* 31fc8: 8f280050 */ lw $t0,0x50($t9) -/* 31fcc: 3c01000f */ lui $at,0xf -/* 31fd0: 34214240 */ ori $at,$at,0x4240 -/* 31fd4: 01e8c021 */ addu $t8,$t7,$t0 -/* 31fd8: 03014821 */ addu $t1,$t8,$at -/* 31fdc: ad890048 */ sw $t1,0x48($t4) -/* 31fe0: 8fad0060 */ lw $t5,0x60($sp) -/* 31fe4: 8daa0048 */ lw $t2,0x48($t5) -/* 31fe8: 05410003 */ bgez $t2,.L00031ff8 -/* 31fec: 00000000 */ nop -/* 31ff0: 8fae0060 */ lw $t6,0x60($sp) -/* 31ff4: adc00048 */ sw $zero,0x48($t6) -.L00031ff8: -/* 31ff8: 8fab0080 */ lw $t3,0x80($sp) -/* 31ffc: 3c010053 */ lui $at,0x53 -/* 32000: 3421ec61 */ ori $at,$at,0xec61 -/* 32004: 0161082a */ slt $at,$t3,$at -/* 32008: 14200005 */ bnez $at,.L00032020 -/* 3200c: 00000000 */ nop -/* 32010: 0c00cc24 */ jal func00033090 -/* 32014: 8fa40060 */ lw $a0,0x60($sp) -/* 32018: 10000418 */ b .L0003307c -/* 3201c: 00000000 */ nop -.L00032020: -/* 32020: 8fb90060 */ lw $t9,0x60($sp) -/* 32024: 932f0044 */ lbu $t7,0x44($t9) -/* 32028: 35e80004 */ ori $t0,$t7,0x4 -/* 3202c: a3280044 */ sb $t0,0x44($t9) -/* 32030: 8fb800ac */ lw $t8,0xac($sp) -/* 32034: 8fad0060 */ lw $t5,0x60($sp) -/* 32038: 8f090000 */ lw $t1,0x0($t8) -/* 3203c: 912c000c */ lbu $t4,0xc($t1) -/* 32040: a5ac003a */ sh $t4,0x3a($t5) -/* 32044: 87aa00b2 */ lh $t2,0xb2($sp) -/* 32048: 8fae0060 */ lw $t6,0x60($sp) -/* 3204c: a1ca0043 */ sb $t2,0x43($t6) -/* 32050: 3c0b8006 */ lui $t3,%hi(g_SndPlayer) -/* 32054: 8d6bf12c */ lw $t3,%lo(g_SndPlayer)($t3) -/* 32058: 8fa80080 */ lw $t0,0x80($sp) -/* 3205c: 8fb80060 */ lw $t8,0x60($sp) -/* 32060: 8d6f0050 */ lw $t7,0x50($t3) -/* 32064: 01e8c821 */ addu $t9,$t7,$t0 -/* 32068: af19003c */ sw $t9,0x3c($t8) -/* 3206c: 8fa80060 */ lw $t0,0x60($sp) -/* 32070: 8fac00a8 */ lw $t4,0xa8($sp) -/* 32074: 3c09800a */ lui $t1,%hi(var8009c334) -/* 32078: 8519003a */ lh $t9,0x3a($t0) -/* 3207c: 85180038 */ lh $t8,0x38($t0) -/* 32080: 918d0002 */ lbu $t5,0x2($t4) -/* 32084: 8d29c334 */ lw $t1,%lo(var8009c334)($t1) -/* 32088: 03380019 */ multu $t9,$t8 -/* 3208c: 31aa001f */ andi $t2,$t5,0x1f -/* 32090: 8fad00ac */ lw $t5,0xac($sp) -/* 32094: 000a7040 */ sll $t6,$t2,0x1 -/* 32098: 012e5821 */ addu $t3,$t1,$t6 -/* 3209c: 91aa000d */ lbu $t2,0xd($t5) -/* 320a0: 24013f01 */ addiu $at,$zero,0x3f01 -/* 320a4: 856f0000 */ lh $t7,0x0($t3) -/* 320a8: 00006012 */ mflo $t4 -/* 320ac: 00000000 */ nop -/* 320b0: 00000000 */ nop -/* 320b4: 018a0019 */ multu $t4,$t2 -/* 320b8: 00004812 */ mflo $t1 -/* 320bc: 00000000 */ nop -/* 320c0: 00000000 */ nop -/* 320c4: 0121001a */ div $zero,$t1,$at -/* 320c8: 00007012 */ mflo $t6 -/* 320cc: 24017fff */ addiu $at,$zero,0x7fff -/* 320d0: 00000000 */ nop -/* 320d4: 01ee0019 */ multu $t7,$t6 -/* 320d8: 00005812 */ mflo $t3 -/* 320dc: 00000000 */ nop -/* 320e0: 00000000 */ nop -/* 320e4: 0161001a */ div $zero,$t3,$at -/* 320e8: 00004012 */ mflo $t0 -/* 320ec: 1d000003 */ bgtz $t0,.L000320fc -/* 320f0: 00000000 */ nop -/* 320f4: 10000023 */ b .L00032184 -/* 320f8: afa00078 */ sw $zero,0x78($sp) -.L000320fc: -/* 320fc: 8fae0060 */ lw $t6,0x60($sp) -/* 32100: 8fb800a8 */ lw $t8,0xa8($sp) -/* 32104: 3c19800a */ lui $t9,%hi(var8009c334) -/* 32108: 85cb003a */ lh $t3,0x3a($t6) -/* 3210c: 85c80038 */ lh $t0,0x38($t6) -/* 32110: 930d0002 */ lbu $t5,0x2($t8) -/* 32114: 8f39c334 */ lw $t9,%lo(var8009c334)($t9) -/* 32118: 01680019 */ multu $t3,$t0 -/* 3211c: 31ac001f */ andi $t4,$t5,0x1f -/* 32120: 8fad00ac */ lw $t5,0xac($sp) -/* 32124: 000c5040 */ sll $t2,$t4,0x1 -/* 32128: 032a4821 */ addu $t1,$t9,$t2 -/* 3212c: 91ac000d */ lbu $t4,0xd($t5) -/* 32130: 24013f01 */ addiu $at,$zero,0x3f01 -/* 32134: 852f0000 */ lh $t7,0x0($t1) -/* 32138: 0000c012 */ mflo $t8 -/* 3213c: 00000000 */ nop -/* 32140: 00000000 */ nop -/* 32144: 030c0019 */ multu $t8,$t4 -/* 32148: 0000c812 */ mflo $t9 -/* 3214c: 00000000 */ nop -/* 32150: 00000000 */ nop -/* 32154: 0321001a */ div $zero,$t9,$at -/* 32158: 00005012 */ mflo $t2 -/* 3215c: 24017fff */ addiu $at,$zero,0x7fff -/* 32160: 00000000 */ nop -/* 32164: 01ea0019 */ multu $t7,$t2 -/* 32168: 00004812 */ mflo $t1 -/* 3216c: 00000000 */ nop -/* 32170: 00000000 */ nop -/* 32174: 0121001a */ div $zero,$t1,$at -/* 32178: 00007012 */ mflo $t6 -/* 3217c: 25cbffff */ addiu $t3,$t6,-1 -/* 32180: afab0078 */ sw $t3,0x78($sp) -.L00032184: -/* 32184: 8fa80060 */ lw $t0,0x60($sp) -/* 32188: 8fb800ac */ lw $t8,0xac($sp) -/* 3218c: 910d0041 */ lbu $t5,0x41($t0) -/* 32190: 930c000c */ lbu $t4,0xc($t8) -/* 32194: 01acc821 */ addu $t9,$t5,$t4 -/* 32198: 272fffc0 */ addiu $t7,$t9,-64 -/* 3219c: afaf0074 */ sw $t7,0x74($sp) -/* 321a0: 8faa0074 */ lw $t2,0x74($sp) -/* 321a4: 19400003 */ blez $t2,.L000321b4 -/* 321a8: 00000000 */ nop -/* 321ac: 10000002 */ b .L000321b8 -/* 321b0: 01408025 */ or $s0,$t2,$zero -.L000321b4: -/* 321b4: 00008025 */ or $s0,$zero,$zero -.L000321b8: -/* 321b8: 2a01007f */ slti $at,$s0,0x7f -/* 321bc: 10200009 */ beqz $at,.L000321e4 -/* 321c0: 00000000 */ nop -/* 321c4: 8fa90074 */ lw $t1,0x74($sp) -/* 321c8: 19200003 */ blez $t1,.L000321d8 -/* 321cc: 00000000 */ nop -/* 321d0: 10000002 */ b .L000321dc -/* 321d4: 01208825 */ or $s1,$t1,$zero -.L000321d8: -/* 321d8: 00008825 */ or $s1,$zero,$zero -.L000321dc: -/* 321dc: 10000003 */ b .L000321ec -/* 321e0: a3b100a7 */ sb $s1,0xa7($sp) -.L000321e4: -/* 321e4: 240e007f */ addiu $t6,$zero,0x7f -/* 321e8: a3ae00a7 */ sb $t6,0xa7($sp) -.L000321ec: -/* 321ec: 8fad00a8 */ lw $t5,0xa8($sp) -/* 321f0: 8fab0060 */ lw $t3,0x60($sp) -/* 321f4: 91ac0003 */ lbu $t4,0x3($t5) -/* 321f8: 91680042 */ lbu $t0,0x42($t3) -/* 321fc: 3199000f */ andi $t9,$t4,0xf -/* 32200: 001978c0 */ sll $t7,$t9,0x3 -/* 32204: 3118007f */ andi $t8,$t0,0x7f -/* 32208: 030f5021 */ addu $t2,$t8,$t7 -/* 3220c: afaa007c */ sw $t2,0x7c($sp) -/* 32210: 8fa9007c */ lw $t1,0x7c($sp) -/* 32214: 05210003 */ bgez $t1,.L00032224 -/* 32218: 00000000 */ nop -/* 3221c: 10000002 */ b .L00032228 -/* 32220: 00008025 */ or $s0,$zero,$zero -.L00032224: -/* 32224: 8fb0007c */ lw $s0,0x7c($sp) -.L00032228: -/* 32228: 2a010080 */ slti $at,$s0,0x80 -/* 3222c: 14200004 */ bnez $at,.L00032240 -/* 32230: 00000000 */ nop -/* 32234: 240e007f */ addiu $t6,$zero,0x7f -/* 32238: 10000008 */ b .L0003225c -/* 3223c: afae007c */ sw $t6,0x7c($sp) -.L00032240: -/* 32240: 8fab007c */ lw $t3,0x7c($sp) -/* 32244: 05610003 */ bgez $t3,.L00032254 -/* 32248: 00000000 */ nop -/* 3224c: 10000002 */ b .L00032258 -/* 32250: 00008825 */ or $s1,$zero,$zero -.L00032254: -/* 32254: 8fb1007c */ lw $s1,0x7c($sp) -.L00032258: -/* 32258: afb1007c */ sw $s1,0x7c($sp) -.L0003225c: -/* 3225c: 8fad0060 */ lw $t5,0x60($sp) -/* 32260: 8fa8007c */ lw $t0,0x7c($sp) -/* 32264: 91ac0042 */ lbu $t4,0x42($t5) -/* 32268: 31990080 */ andi $t9,$t4,0x80 -/* 3226c: 0119c025 */ or $t8,$t0,$t9 -/* 32270: afb8007c */ sw $t8,0x7c($sp) -/* 32274: 8faf0060 */ lw $t7,0x60($sp) -/* 32278: 8faa00ac */ lw $t2,0xac($sp) -/* 3227c: 93a900a7 */ lbu $t1,0xa7($sp) -/* 32280: c5e8002c */ lwc1 $f8,0x2c($t7) -/* 32284: c5ea0028 */ lwc1 $f10,0x28($t7) -/* 32288: 8d450008 */ lw $a1,0x8($t2) -/* 3228c: 8fae007c */ lw $t6,0x7c($sp) -/* 32290: 460a4402 */ mul.s $f16,$f8,$f10 -/* 32294: 44809000 */ mtc1 $zero,$f18 -/* 32298: 8fab0080 */ lw $t3,0x80($sp) -/* 3229c: afa00020 */ sw $zero,0x20($sp) -/* 322a0: afa00018 */ sw $zero,0x18($sp) -/* 322a4: 8fa70078 */ lw $a3,0x78($sp) -/* 322a8: 25e4000c */ addiu $a0,$t7,0xc -/* 322ac: 44068000 */ mfc1 $a2,$f16 -/* 322b0: afa90010 */ sw $t1,0x10($sp) -/* 322b4: afae0014 */ sw $t6,0x14($sp) -/* 322b8: afab0024 */ sw $t3,0x24($sp) -/* 322bc: 0c00f370 */ jal n_alSynStartVoiceParams -/* 322c0: e7b2001c */ swc1 $f18,0x1c($sp) -/* 322c4: 8fac0060 */ lw $t4,0x60($sp) -/* 322c8: 240d0001 */ addiu $t5,$zero,0x1 -/* 322cc: a18d0045 */ sb $t5,0x45($t4) -/* 322d0: 3c088006 */ lui $t0,%hi(var8005f130) -/* 322d4: 8508f130 */ lh $t0,%lo(var8005f130)($t0) -/* 322d8: 3c018006 */ lui $at,%hi(var8005f130) -/* 322dc: 25190001 */ addiu $t9,$t0,0x1 -/* 322e0: a439f130 */ sh $t9,%lo(var8005f130)($at) -/* 322e4: 8fb80060 */ lw $t8,0x60($sp) -/* 322e8: 930a0044 */ lbu $t2,0x44($t8) -/* 322ec: 314f0002 */ andi $t7,$t2,0x2 -/* 322f0: 15e000ac */ bnez $t7,.L000325a4 -/* 322f4: 00000000 */ nop -/* 322f8: 8fa90080 */ lw $t1,0x80($sp) -/* 322fc: 15200085 */ bnez $t1,.L00032514 -/* 32300: 00000000 */ nop -/* 32304: 8fae00ac */ lw $t6,0xac($sp) -/* 32308: 8fac0060 */ lw $t4,0x60($sp) -/* 3230c: 8dcb0000 */ lw $t3,0x0($t6) -/* 32310: 916d000d */ lbu $t5,0xd($t3) -/* 32314: a58d003a */ sh $t5,0x3a($t4) -/* 32318: 8fab0060 */ lw $t3,0x60($sp) -/* 3231c: 8fb900a8 */ lw $t9,0xa8($sp) -/* 32320: 3c08800a */ lui $t0,%hi(var8009c334) -/* 32324: 856d003a */ lh $t5,0x3a($t3) -/* 32328: 856c0038 */ lh $t4,0x38($t3) -/* 3232c: 93380002 */ lbu $t8,0x2($t9) -/* 32330: 8d08c334 */ lw $t0,%lo(var8009c334)($t0) -/* 32334: 01ac0019 */ multu $t5,$t4 -/* 32338: 330a001f */ andi $t2,$t8,0x1f -/* 3233c: 8fb800ac */ lw $t8,0xac($sp) -/* 32340: 000a7840 */ sll $t7,$t2,0x1 -/* 32344: 010f4821 */ addu $t1,$t0,$t7 -/* 32348: 930a000d */ lbu $t2,0xd($t8) -/* 3234c: 24013f01 */ addiu $at,$zero,0x3f01 -/* 32350: 852e0000 */ lh $t6,0x0($t1) -/* 32354: 0000c812 */ mflo $t9 -/* 32358: 00000000 */ nop -/* 3235c: 00000000 */ nop -/* 32360: 032a0019 */ multu $t9,$t2 -/* 32364: 00004012 */ mflo $t0 -/* 32368: 00000000 */ nop -/* 3236c: 00000000 */ nop -/* 32370: 0101001a */ div $zero,$t0,$at -/* 32374: 00007812 */ mflo $t7 -/* 32378: 24017fff */ addiu $at,$zero,0x7fff -/* 3237c: 00000000 */ nop -/* 32380: 01cf0019 */ multu $t6,$t7 -/* 32384: 00004812 */ mflo $t1 -/* 32388: 00000000 */ nop -/* 3238c: 00000000 */ nop -/* 32390: 0121001a */ div $zero,$t1,$at -/* 32394: 00005812 */ mflo $t3 -/* 32398: 1d600003 */ bgtz $t3,.L000323a8 -/* 3239c: 00000000 */ nop -/* 323a0: 10000023 */ b .L00032430 -/* 323a4: afa00078 */ sw $zero,0x78($sp) -.L000323a8: -/* 323a8: 8faf0060 */ lw $t7,0x60($sp) -/* 323ac: 8fac00a8 */ lw $t4,0xa8($sp) -/* 323b0: 3c0d800a */ lui $t5,%hi(var8009c334) -/* 323b4: 85e9003a */ lh $t1,0x3a($t7) -/* 323b8: 85eb0038 */ lh $t3,0x38($t7) -/* 323bc: 91980002 */ lbu $t8,0x2($t4) -/* 323c0: 8dadc334 */ lw $t5,%lo(var8009c334)($t5) -/* 323c4: 012b0019 */ multu $t1,$t3 -/* 323c8: 3319001f */ andi $t9,$t8,0x1f -/* 323cc: 8fb800ac */ lw $t8,0xac($sp) -/* 323d0: 00195040 */ sll $t2,$t9,0x1 -/* 323d4: 01aa4021 */ addu $t0,$t5,$t2 -/* 323d8: 9319000d */ lbu $t9,0xd($t8) -/* 323dc: 24013f01 */ addiu $at,$zero,0x3f01 -/* 323e0: 850e0000 */ lh $t6,0x0($t0) -/* 323e4: 00006012 */ mflo $t4 -/* 323e8: 00000000 */ nop -/* 323ec: 00000000 */ nop -/* 323f0: 01990019 */ multu $t4,$t9 -/* 323f4: 00006812 */ mflo $t5 -/* 323f8: 00000000 */ nop -/* 323fc: 00000000 */ nop -/* 32400: 01a1001a */ div $zero,$t5,$at -/* 32404: 00005012 */ mflo $t2 -/* 32408: 24017fff */ addiu $at,$zero,0x7fff -/* 3240c: 00000000 */ nop -/* 32410: 01ca0019 */ multu $t6,$t2 -/* 32414: 00004012 */ mflo $t0 -/* 32418: 00000000 */ nop -/* 3241c: 00000000 */ nop -/* 32420: 0101001a */ div $zero,$t0,$at -/* 32424: 00007812 */ mflo $t7 -/* 32428: 25e9ffff */ addiu $t1,$t7,-1 -/* 3242c: afa90078 */ sw $t1,0x78($sp) -.L00032430: -/* 32430: 8fab00ac */ lw $t3,0xac($sp) -/* 32434: 8fb90060 */ lw $t9,0x60($sp) -/* 32438: 8d780000 */ lw $t8,0x0($t3) -/* 3243c: c7280028 */ lwc1 $f8,0x28($t9) -/* 32440: c730002c */ lwc1 $f16,0x2c($t9) -/* 32444: 8f0c0004 */ lw $t4,0x4($t8) -/* 32448: 448c2000 */ mtc1 $t4,$f4 -/* 3244c: 00000000 */ nop -/* 32450: 468021a0 */ cvt.s.w $f6,$f4 -/* 32454: 46083283 */ div.s $f10,$f6,$f8 -/* 32458: 46105483 */ div.s $f18,$f10,$f16 -/* 3245c: 4600910d */ trunc.w.s $f4,$f18 -/* 32460: 440e2000 */ mfc1 $t6,$f4 -/* 32464: 00000000 */ nop -/* 32468: afae0080 */ sw $t6,0x80($sp) -/* 3246c: 8faa0080 */ lw $t2,0x80($sp) -/* 32470: 3c010053 */ lui $at,0x53 -/* 32474: 3421ec61 */ ori $at,$at,0xec61 -/* 32478: 0141082a */ slt $at,$t2,$at -/* 3247c: 14200005 */ bnez $at,.L00032494 -/* 32480: 00000000 */ nop -/* 32484: 0c00cc24 */ jal func00033090 -/* 32488: 8fa40060 */ lw $a0,0x60($sp) -/* 3248c: 100002fb */ b .L0003307c -/* 32490: 00000000 */ nop -.L00032494: -/* 32494: 3c088006 */ lui $t0,%hi(g_SndPlayer) -/* 32498: 8d08f12c */ lw $t0,%lo(g_SndPlayer)($t0) -/* 3249c: 8fa90080 */ lw $t1,0x80($sp) -/* 324a0: 8fb80060 */ lw $t8,0x60($sp) -/* 324a4: 8d0f0050 */ lw $t7,0x50($t0) -/* 324a8: 01e95821 */ addu $t3,$t7,$t1 -/* 324ac: af0b003c */ sw $t3,0x3c($t8) -/* 324b0: 8fa40060 */ lw $a0,0x60($sp) -/* 324b4: 8fa50078 */ lw $a1,0x78($sp) -/* 324b8: 8fa60080 */ lw $a2,0x80($sp) -/* 324bc: 0c00f33c */ jal n_alSynSetVol -/* 324c0: 2484000c */ addiu $a0,$a0,0xc -/* 324c4: 240c0002 */ addiu $t4,$zero,0x2 -/* 324c8: a7ac0094 */ sh $t4,0x94($sp) -/* 324cc: 8fb90060 */ lw $t9,0x60($sp) -/* 324d0: afb90098 */ sw $t9,0x98($sp) -/* 324d4: 3c048006 */ lui $a0,%hi(g_SndPlayer) -/* 324d8: 8c84f12c */ lw $a0,%lo(g_SndPlayer)($a0) -/* 324dc: 27a50094 */ addiu $a1,$sp,0x94 -/* 324e0: 8fa60080 */ lw $a2,0x80($sp) -/* 324e4: 00003825 */ or $a3,$zero,$zero -/* 324e8: 0c00f184 */ jal n_alEvtqPostEvent -/* 324ec: 24840014 */ addiu $a0,$a0,20 -/* 324f0: 8fad0060 */ lw $t5,0x60($sp) -/* 324f4: 91ae0044 */ lbu $t6,0x44($t5) -/* 324f8: 31ca0020 */ andi $t2,$t6,0x20 -/* 324fc: 11400003 */ beqz $t2,.L0003250c -/* 32500: 00000000 */ nop -/* 32504: 0c00cc40 */ jal func00033100 -/* 32508: 8fa40060 */ lw $a0,0x60($sp) -.L0003250c: -/* 3250c: 10000025 */ b .L000325a4 -/* 32510: 00000000 */ nop -.L00032514: -/* 32514: 24080040 */ addiu $t0,$zero,0x40 -/* 32518: a7a80094 */ sh $t0,0x94($sp) -/* 3251c: 8faf0060 */ lw $t7,0x60($sp) -/* 32520: afaf0098 */ sw $t7,0x98($sp) -/* 32524: 8fa900ac */ lw $t1,0xac($sp) -/* 32528: 8fac0060 */ lw $t4,0x60($sp) -/* 3252c: 8d2b0000 */ lw $t3,0x0($t1) -/* 32530: c58a002c */ lwc1 $f10,0x2c($t4) -/* 32534: c5920028 */ lwc1 $f18,0x28($t4) -/* 32538: 8d780000 */ lw $t8,0x0($t3) -/* 3253c: 44983000 */ mtc1 $t8,$f6 -/* 32540: 00000000 */ nop -/* 32544: 46803220 */ cvt.s.w $f8,$f6 -/* 32548: 460a4403 */ div.s $f16,$f8,$f10 -/* 3254c: 46128103 */ div.s $f4,$f16,$f18 -/* 32550: 4600218d */ trunc.w.s $f6,$f4 -/* 32554: 440d3000 */ mfc1 $t5,$f6 -/* 32558: 00000000 */ nop -/* 3255c: afad0080 */ sw $t5,0x80($sp) -/* 32560: 8fae0080 */ lw $t6,0x80($sp) -/* 32564: 3c010053 */ lui $at,0x53 -/* 32568: 3421ec61 */ ori $at,$at,0xec61 -/* 3256c: 01c1082a */ slt $at,$t6,$at -/* 32570: 14200005 */ bnez $at,.L00032588 -/* 32574: 00000000 */ nop -/* 32578: 0c00cc24 */ jal func00033090 -/* 3257c: 8fa40060 */ lw $a0,0x60($sp) -/* 32580: 100002be */ b .L0003307c -/* 32584: 00000000 */ nop -.L00032588: -/* 32588: 3c048006 */ lui $a0,%hi(g_SndPlayer) -/* 3258c: 8c84f12c */ lw $a0,%lo(g_SndPlayer)($a0) -/* 32590: 27a50094 */ addiu $a1,$sp,0x94 -/* 32594: 8fa60080 */ lw $a2,0x80($sp) -/* 32598: 00003825 */ or $a3,$zero,$zero -/* 3259c: 0c00f184 */ jal n_alEvtqPostEvent -/* 325a0: 24840014 */ addiu $a0,$a0,20 -.L000325a4: -/* 325a4: 1000029c */ b .L00033018 -/* 325a8: 00000000 */ nop -.L000325ac: -/* 325ac: 8faa00b8 */ lw $t2,0xb8($sp) -/* 325b0: 24011000 */ addiu $at,$zero,0x1000 -/* 325b4: 95480000 */ lhu $t0,0x0($t2) -/* 325b8: 15010006 */ bne $t0,$at,.L000325d4 -/* 325bc: 00000000 */ nop -/* 325c0: 8faf0060 */ lw $t7,0x60($sp) -/* 325c4: 91e90044 */ lbu $t1,0x44($t7) -/* 325c8: 312b0002 */ andi $t3,$t1,0x2 -/* 325cc: 11600056 */ beqz $t3,.L00032728 -/* 325d0: 00000000 */ nop -.L000325d4: -/* 325d4: 8fb80060 */ lw $t8,0x60($sp) -/* 325d8: 24010001 */ addiu $at,$zero,0x1 -/* 325dc: 93100045 */ lbu $s0,0x45($t8) -/* 325e0: 12010009 */ beq $s0,$at,.L00032608 -/* 325e4: 00000000 */ nop -/* 325e8: 24010004 */ addiu $at,$zero,0x4 -/* 325ec: 12010040 */ beq $s0,$at,.L000326f0 -/* 325f0: 00000000 */ nop -/* 325f4: 24010005 */ addiu $at,$zero,0x5 -/* 325f8: 1201003d */ beq $s0,$at,.L000326f0 -/* 325fc: 00000000 */ nop -/* 32600: 1000003f */ b .L00032700 -/* 32604: 00000000 */ nop -.L00032608: -/* 32608: 3c048006 */ lui $a0,%hi(g_SndPlayer) -/* 3260c: 8c84f12c */ lw $a0,%lo(g_SndPlayer)($a0) -/* 32610: 8fa50060 */ lw $a1,0x60($sp) -/* 32614: 24060040 */ addiu $a2,$zero,0x40 -/* 32618: 0c00cc60 */ jal _removeEvents -/* 3261c: 24840014 */ addiu $a0,$a0,20 -/* 32620: 8fac00ac */ lw $t4,0xac($sp) -/* 32624: 8fae0060 */ lw $t6,0x60($sp) -/* 32628: 8d990000 */ lw $t9,0x0($t4) -/* 3262c: c5d00028 */ lwc1 $f16,0x28($t6) -/* 32630: c5c4002c */ lwc1 $f4,0x2c($t6) -/* 32634: 8f2d0008 */ lw $t5,0x8($t9) -/* 32638: 448d4000 */ mtc1 $t5,$f8 -/* 3263c: 00000000 */ nop -/* 32640: 468042a0 */ cvt.s.w $f10,$f8 -/* 32644: 46105483 */ div.s $f18,$f10,$f16 -/* 32648: 46049183 */ div.s $f6,$f18,$f4 -/* 3264c: 4600320d */ trunc.w.s $f8,$f6 -/* 32650: 44084000 */ mfc1 $t0,$f8 -/* 32654: 00000000 */ nop -/* 32658: afa80080 */ sw $t0,0x80($sp) -/* 3265c: 8faf0080 */ lw $t7,0x80($sp) -/* 32660: 3c010053 */ lui $at,0x53 -/* 32664: 3421ec61 */ ori $at,$at,0xec61 -/* 32668: 01e1082a */ slt $at,$t7,$at -/* 3266c: 14200005 */ bnez $at,.L00032684 -/* 32670: 00000000 */ nop -/* 32674: 0c00cc24 */ jal func00033090 -/* 32678: 8fa40060 */ lw $a0,0x60($sp) -/* 3267c: 10000022 */ b .L00032708 -/* 32680: 00000000 */ nop -.L00032684: -/* 32684: 8fa40060 */ lw $a0,0x60($sp) -/* 32688: 00002825 */ or $a1,$zero,$zero -/* 3268c: 8fa60080 */ lw $a2,0x80($sp) -/* 32690: 0c00f33c */ jal n_alSynSetVol -/* 32694: 2484000c */ addiu $a0,$a0,0xc -/* 32698: 8fa90080 */ lw $t1,0x80($sp) -/* 3269c: 11200010 */ beqz $t1,.L000326e0 -/* 326a0: 00000000 */ nop -/* 326a4: 240b0080 */ addiu $t3,$zero,0x80 -/* 326a8: a7ab0094 */ sh $t3,0x94($sp) -/* 326ac: 8fb80060 */ lw $t8,0x60($sp) -/* 326b0: afb80098 */ sw $t8,0x98($sp) -/* 326b4: 3c048006 */ lui $a0,%hi(g_SndPlayer) -/* 326b8: 8c84f12c */ lw $a0,%lo(g_SndPlayer)($a0) -/* 326bc: 27a50094 */ addiu $a1,$sp,0x94 -/* 326c0: 8fa60080 */ lw $a2,0x80($sp) -/* 326c4: 00003825 */ or $a3,$zero,$zero -/* 326c8: 0c00f184 */ jal n_alEvtqPostEvent -/* 326cc: 24840014 */ addiu $a0,$a0,20 -/* 326d0: 8fb90060 */ lw $t9,0x60($sp) -/* 326d4: 240c0002 */ addiu $t4,$zero,0x2 -/* 326d8: 10000003 */ b .L000326e8 -/* 326dc: a32c0045 */ sb $t4,0x45($t9) -.L000326e0: -/* 326e0: 0c00cc24 */ jal func00033090 -/* 326e4: 8fa40060 */ lw $a0,0x60($sp) -.L000326e8: -/* 326e8: 10000007 */ b .L00032708 -/* 326ec: 00000000 */ nop -.L000326f0: -/* 326f0: 0c00cc24 */ jal func00033090 -/* 326f4: 8fa40060 */ lw $a0,0x60($sp) -/* 326f8: 10000003 */ b .L00032708 -/* 326fc: 00000000 */ nop -.L00032700: -/* 32700: 10000001 */ b .L00032708 -/* 32704: 00000000 */ nop -.L00032708: -/* 32708: 8fad00b8 */ lw $t5,0xb8($sp) -/* 3270c: 24010002 */ addiu $at,$zero,0x2 -/* 32710: 95ae0000 */ lhu $t6,0x0($t5) -/* 32714: 15c10004 */ bne $t6,$at,.L00032728 -/* 32718: 00000000 */ nop -/* 3271c: 8fa800b8 */ lw $t0,0xb8($sp) -/* 32720: 240a1000 */ addiu $t2,$zero,0x1000 -/* 32724: a50a0000 */ sh $t2,0x0($t0) -.L00032728: -/* 32728: 1000023b */ b .L00033018 -/* 3272c: 00000000 */ nop -/* 32730: 8faf00b8 */ lw $t7,0xb8($sp) -/* 32734: 8fab0060 */ lw $t3,0x60($sp) -/* 32738: 8de90008 */ lw $t1,0x8($t7) -/* 3273c: a1690041 */ sb $t1,0x41($t3) -/* 32740: 8fb80060 */ lw $t8,0x60($sp) -/* 32744: 24010001 */ addiu $at,$zero,0x1 -/* 32748: 930c0045 */ lbu $t4,0x45($t8) -/* 3274c: 1581001f */ bne $t4,$at,.L000327cc -/* 32750: 00000000 */ nop -/* 32754: 8fb90060 */ lw $t9,0x60($sp) -/* 32758: 8fae00ac */ lw $t6,0xac($sp) -/* 3275c: 932d0041 */ lbu $t5,0x41($t9) -/* 32760: 91ca000c */ lbu $t2,0xc($t6) -/* 32764: 01aa4021 */ addu $t0,$t5,$t2 -/* 32768: 250fffc0 */ addiu $t7,$t0,-64 -/* 3276c: afaf0074 */ sw $t7,0x74($sp) -/* 32770: 8fa90074 */ lw $t1,0x74($sp) -/* 32774: 19200003 */ blez $t1,.L00032784 -/* 32778: 00000000 */ nop -/* 3277c: 10000002 */ b .L00032788 -/* 32780: 01208025 */ or $s0,$t1,$zero -.L00032784: -/* 32784: 00008025 */ or $s0,$zero,$zero -.L00032788: -/* 32788: 2a01007f */ slti $at,$s0,0x7f -/* 3278c: 10200009 */ beqz $at,.L000327b4 -/* 32790: 00000000 */ nop -/* 32794: 8fab0074 */ lw $t3,0x74($sp) -/* 32798: 19600003 */ blez $t3,.L000327a8 -/* 3279c: 00000000 */ nop -/* 327a0: 10000002 */ b .L000327ac -/* 327a4: 01608825 */ or $s1,$t3,$zero -.L000327a8: -/* 327a8: 00008825 */ or $s1,$zero,$zero -.L000327ac: -/* 327ac: 10000003 */ b .L000327bc -/* 327b0: a3b100a7 */ sb $s1,0xa7($sp) -.L000327b4: -/* 327b4: 2418007f */ addiu $t8,$zero,0x7f -/* 327b8: a3b800a7 */ sb $t8,0xa7($sp) -.L000327bc: -/* 327bc: 8fa40060 */ lw $a0,0x60($sp) -/* 327c0: 93a500a7 */ lbu $a1,0xa7($sp) -/* 327c4: 0c00f3bc */ jal n_alSynSetPan -/* 327c8: 2484000c */ addiu $a0,$a0,0xc -.L000327cc: -/* 327cc: 10000212 */ b .L00033018 -/* 327d0: 00000000 */ nop -/* 327d4: 8fac00b8 */ lw $t4,0xb8($sp) -/* 327d8: 8fb90060 */ lw $t9,0x60($sp) -/* 327dc: c58a0008 */ lwc1 $f10,0x8($t4) -/* 327e0: e72a002c */ swc1 $f10,0x2c($t9) -/* 327e4: 8fae0060 */ lw $t6,0x60($sp) -/* 327e8: 24010001 */ addiu $at,$zero,0x1 -/* 327ec: 91cd0045 */ lbu $t5,0x45($t6) -/* 327f0: 15a10010 */ bne $t5,$at,.L00032834 -/* 327f4: 00000000 */ nop -/* 327f8: 8faa0060 */ lw $t2,0x60($sp) -/* 327fc: c550002c */ lwc1 $f16,0x2c($t2) -/* 32800: c5520028 */ lwc1 $f18,0x28($t2) -/* 32804: 2544000c */ addiu $a0,$t2,0xc -/* 32808: 46128102 */ mul.s $f4,$f16,$f18 -/* 3280c: 44052000 */ mfc1 $a1,$f4 -/* 32810: 0c00f3e8 */ jal n_alSynSetPitch -/* 32814: 00000000 */ nop -/* 32818: 8fa80060 */ lw $t0,0x60($sp) -/* 3281c: 910f0044 */ lbu $t7,0x44($t0) -/* 32820: 31e90020 */ andi $t1,$t7,0x20 -/* 32824: 11200003 */ beqz $t1,.L00032834 -/* 32828: 00000000 */ nop -/* 3282c: 0c00cc40 */ jal func00033100 -/* 32830: 8fa40060 */ lw $a0,0x60($sp) -.L00032834: -/* 32834: 100001f8 */ b .L00033018 -/* 32838: 00000000 */ nop -.L0003283c: -/* 3283c: 8fab00b8 */ lw $t3,0xb8($sp) -/* 32840: 8fac0060 */ lw $t4,0x60($sp) -/* 32844: 8d780008 */ lw $t8,0x8($t3) -/* 32848: a1980042 */ sb $t8,0x42($t4) -/* 3284c: 8fb90060 */ lw $t9,0x60($sp) -/* 32850: 24010001 */ addiu $at,$zero,0x1 -/* 32854: 932e0045 */ lbu $t6,0x45($t9) -/* 32858: 15c10027 */ bne $t6,$at,.L000328f8 -/* 3285c: 00000000 */ nop -/* 32860: 8faf00a8 */ lw $t7,0xa8($sp) -/* 32864: 8fad0060 */ lw $t5,0x60($sp) -/* 32868: 91e90003 */ lbu $t1,0x3($t7) -/* 3286c: 91aa0042 */ lbu $t2,0x42($t5) -/* 32870: 312b000f */ andi $t3,$t1,0xf -/* 32874: 000bc0c0 */ sll $t8,$t3,0x3 -/* 32878: 3148007f */ andi $t0,$t2,0x7f -/* 3287c: 01186021 */ addu $t4,$t0,$t8 -/* 32880: afac007c */ sw $t4,0x7c($sp) -/* 32884: 8fb9007c */ lw $t9,0x7c($sp) -/* 32888: 07210003 */ bgez $t9,.L00032898 -/* 3288c: 00000000 */ nop -/* 32890: 10000002 */ b .L0003289c -/* 32894: 00008025 */ or $s0,$zero,$zero -.L00032898: -/* 32898: 8fb0007c */ lw $s0,0x7c($sp) -.L0003289c: -/* 3289c: 2a010080 */ slti $at,$s0,0x80 -/* 328a0: 14200004 */ bnez $at,.L000328b4 -/* 328a4: 00000000 */ nop -/* 328a8: 240e007f */ addiu $t6,$zero,0x7f -/* 328ac: 10000008 */ b .L000328d0 -/* 328b0: afae007c */ sw $t6,0x7c($sp) -.L000328b4: -/* 328b4: 8fad007c */ lw $t5,0x7c($sp) -/* 328b8: 05a10003 */ bgez $t5,.L000328c8 -/* 328bc: 00000000 */ nop -/* 328c0: 10000002 */ b .L000328cc -/* 328c4: 00008825 */ or $s1,$zero,$zero -.L000328c8: -/* 328c8: 8fb1007c */ lw $s1,0x7c($sp) -.L000328cc: -/* 328cc: afb1007c */ sw $s1,0x7c($sp) -.L000328d0: -/* 328d0: 8faf0060 */ lw $t7,0x60($sp) -/* 328d4: 8faa007c */ lw $t2,0x7c($sp) -/* 328d8: 91e90042 */ lbu $t1,0x42($t7) -/* 328dc: 312b0080 */ andi $t3,$t1,0x80 -/* 328e0: 014b4025 */ or $t0,$t2,$t3 -/* 328e4: afa8007c */ sw $t0,0x7c($sp) -/* 328e8: 8fa40060 */ lw $a0,0x60($sp) -/* 328ec: 8fa5007c */ lw $a1,0x7c($sp) -/* 328f0: 0c00f414 */ jal n_alSynSetFXMix -/* 328f4: 2484000c */ addiu $a0,$a0,0xc -.L000328f8: -/* 328f8: 100001c7 */ b .L00033018 -/* 328fc: 00000000 */ nop -.L00032900: -/* 32900: 8fb80060 */ lw $t8,0x60($sp) -/* 32904: 8fad00b8 */ lw $t5,0xb8($sp) -/* 32908: 930c0042 */ lbu $t4,0x42($t8) -/* 3290c: 8daf0008 */ lw $t7,0x8($t5) -/* 32910: 3199007f */ andi $t9,$t4,0x7f -/* 32914: 31e90080 */ andi $t1,$t7,0x80 -/* 32918: 312a00ff */ andi $t2,$t1,0xff -/* 3291c: 332e00ff */ andi $t6,$t9,0xff -/* 32920: 01ca5825 */ or $t3,$t6,$t2 -/* 32924: a30b0042 */ sb $t3,0x42($t8) -/* 32928: 8fa80060 */ lw $t0,0x60($sp) -/* 3292c: 24010001 */ addiu $at,$zero,0x1 -/* 32930: 910c0045 */ lbu $t4,0x45($t0) -/* 32934: 15810027 */ bne $t4,$at,.L000329d4 -/* 32938: 00000000 */ nop -/* 3293c: 8fa900a8 */ lw $t1,0xa8($sp) -/* 32940: 8fb90060 */ lw $t9,0x60($sp) -/* 32944: 912e0003 */ lbu $t6,0x3($t1) -/* 32948: 932d0042 */ lbu $t5,0x42($t9) -/* 3294c: 31ca000f */ andi $t2,$t6,0xf -/* 32950: 000a58c0 */ sll $t3,$t2,0x3 -/* 32954: 31af007f */ andi $t7,$t5,0x7f -/* 32958: 01ebc021 */ addu $t8,$t7,$t3 -/* 3295c: afb8007c */ sw $t8,0x7c($sp) -/* 32960: 8fa8007c */ lw $t0,0x7c($sp) -/* 32964: 05010003 */ bgez $t0,.L00032974 -/* 32968: 00000000 */ nop -/* 3296c: 10000002 */ b .L00032978 -/* 32970: 00008025 */ or $s0,$zero,$zero -.L00032974: -/* 32974: 8fb0007c */ lw $s0,0x7c($sp) -.L00032978: -/* 32978: 2a010080 */ slti $at,$s0,0x80 -/* 3297c: 14200004 */ bnez $at,.L00032990 -/* 32980: 00000000 */ nop -/* 32984: 240c007f */ addiu $t4,$zero,0x7f -/* 32988: 10000008 */ b .L000329ac -/* 3298c: afac007c */ sw $t4,0x7c($sp) -.L00032990: -/* 32990: 8fb9007c */ lw $t9,0x7c($sp) -/* 32994: 07210003 */ bgez $t9,.L000329a4 -/* 32998: 00000000 */ nop -/* 3299c: 10000002 */ b .L000329a8 -/* 329a0: 00008825 */ or $s1,$zero,$zero -.L000329a4: -/* 329a4: 8fb1007c */ lw $s1,0x7c($sp) -.L000329a8: -/* 329a8: afb1007c */ sw $s1,0x7c($sp) -.L000329ac: -/* 329ac: 8fa90060 */ lw $t1,0x60($sp) -/* 329b0: 8fad007c */ lw $t5,0x7c($sp) -/* 329b4: 912e0042 */ lbu $t6,0x42($t1) -/* 329b8: 31ca0080 */ andi $t2,$t6,0x80 -/* 329bc: 01aa7825 */ or $t7,$t5,$t2 -/* 329c0: afaf007c */ sw $t7,0x7c($sp) -/* 329c4: 8fa40060 */ lw $a0,0x60($sp) -/* 329c8: 8fa5007c */ lw $a1,0x7c($sp) -/* 329cc: 0c00f414 */ jal n_alSynSetFXMix -/* 329d0: 2484000c */ addiu $a0,$a0,0xc -.L000329d4: -/* 329d4: 10000190 */ b .L00033018 -/* 329d8: 00000000 */ nop -.L000329dc: -/* 329dc: 8fab00b8 */ lw $t3,0xb8($sp) -/* 329e0: 8fa80060 */ lw $t0,0x60($sp) -/* 329e4: 8d780008 */ lw $t8,0x8($t3) -/* 329e8: a1180043 */ sb $t8,0x43($t0) -/* 329ec: 3c098006 */ lui $t1,%hi(n_syn) -/* 329f0: 8d29f114 */ lw $t1,%lo(n_syn)($t1) -/* 329f4: 8fac0060 */ lw $t4,0x60($sp) -/* 329f8: 8d2e003c */ lw $t6,0x3c($t1) -/* 329fc: 91990043 */ lbu $t9,0x43($t4) -/* 32a00: 032e082a */ slt $at,$t9,$t6 -/* 32a04: 14200003 */ bnez $at,.L00032a14 -/* 32a08: 00000000 */ nop -/* 32a0c: 8fad0060 */ lw $t5,0x60($sp) -/* 32a10: a1a00043 */ sb $zero,0x43($t5) -.L00032a14: -/* 32a14: 8faa0060 */ lw $t2,0x60($sp) -/* 32a18: 24010001 */ addiu $at,$zero,0x1 -/* 32a1c: 914f0045 */ lbu $t7,0x45($t2) -/* 32a20: 15e10004 */ bne $t7,$at,.L00032a34 -/* 32a24: 00000000 */ nop -/* 32a28: 8fab0060 */ lw $t3,0x60($sp) -/* 32a2c: 91780043 */ lbu $t8,0x43($t3) -/* 32a30: a5780024 */ sh $t8,0x24($t3) -.L00032a34: -/* 32a34: 10000178 */ b .L00033018 -/* 32a38: 00000000 */ nop -/* 32a3c: 8fa800b8 */ lw $t0,0xb8($sp) -/* 32a40: 8fa90060 */ lw $t1,0x60($sp) -/* 32a44: 8d0c0008 */ lw $t4,0x8($t0) -/* 32a48: a52c0038 */ sh $t4,0x38($t1) -/* 32a4c: 8fb90060 */ lw $t9,0x60($sp) -/* 32a50: 24010001 */ addiu $at,$zero,0x1 -/* 32a54: 932e0045 */ lbu $t6,0x45($t9) -/* 32a58: 15c1005d */ bne $t6,$at,.L00032bd0 -/* 32a5c: 00000000 */ nop -/* 32a60: 8fa90060 */ lw $t1,0x60($sp) -/* 32a64: 8faa00a8 */ lw $t2,0xa8($sp) -/* 32a68: 3c0d800a */ lui $t5,%hi(var8009c334) -/* 32a6c: 8539003a */ lh $t9,0x3a($t1) -/* 32a70: 852e0038 */ lh $t6,0x38($t1) -/* 32a74: 914f0002 */ lbu $t7,0x2($t2) -/* 32a78: 8dadc334 */ lw $t5,%lo(var8009c334)($t5) -/* 32a7c: 032e0019 */ multu $t9,$t6 -/* 32a80: 31f8001f */ andi $t8,$t7,0x1f -/* 32a84: 8faf00ac */ lw $t7,0xac($sp) -/* 32a88: 00185840 */ sll $t3,$t8,0x1 -/* 32a8c: 01ab4021 */ addu $t0,$t5,$t3 -/* 32a90: 91f8000d */ lbu $t8,0xd($t7) -/* 32a94: 24013f01 */ addiu $at,$zero,0x3f01 -/* 32a98: 850c0000 */ lh $t4,0x0($t0) -/* 32a9c: 00005012 */ mflo $t2 -/* 32aa0: 00000000 */ nop -/* 32aa4: 00000000 */ nop -/* 32aa8: 01580019 */ multu $t2,$t8 -/* 32aac: 00006812 */ mflo $t5 -/* 32ab0: 00000000 */ nop -/* 32ab4: 00000000 */ nop -/* 32ab8: 01a1001a */ div $zero,$t5,$at -/* 32abc: 00005812 */ mflo $t3 -/* 32ac0: 24017fff */ addiu $at,$zero,0x7fff -/* 32ac4: 00000000 */ nop -/* 32ac8: 018b0019 */ multu $t4,$t3 -/* 32acc: 00004012 */ mflo $t0 -/* 32ad0: 00000000 */ nop -/* 32ad4: 00000000 */ nop -/* 32ad8: 0101001a */ div $zero,$t0,$at -/* 32adc: 00004812 */ mflo $t1 -/* 32ae0: 1d200003 */ bgtz $t1,.L00032af0 -/* 32ae4: 00000000 */ nop -/* 32ae8: 10000023 */ b .L00032b78 -/* 32aec: afa00078 */ sw $zero,0x78($sp) -.L00032af0: -/* 32af0: 8fab0060 */ lw $t3,0x60($sp) -/* 32af4: 8fae00a8 */ lw $t6,0xa8($sp) -/* 32af8: 3c19800a */ lui $t9,%hi(var8009c334) -/* 32afc: 8568003a */ lh $t0,0x3a($t3) -/* 32b00: 85690038 */ lh $t1,0x38($t3) -/* 32b04: 91cf0002 */ lbu $t7,0x2($t6) -/* 32b08: 8f39c334 */ lw $t9,%lo(var8009c334)($t9) -/* 32b0c: 01090019 */ multu $t0,$t1 -/* 32b10: 31ea001f */ andi $t2,$t7,0x1f -/* 32b14: 8faf00ac */ lw $t7,0xac($sp) -/* 32b18: 000ac040 */ sll $t8,$t2,0x1 -/* 32b1c: 03386821 */ addu $t5,$t9,$t8 -/* 32b20: 91ea000d */ lbu $t2,0xd($t7) -/* 32b24: 24013f01 */ addiu $at,$zero,0x3f01 -/* 32b28: 85ac0000 */ lh $t4,0x0($t5) -/* 32b2c: 00007012 */ mflo $t6 -/* 32b30: 00000000 */ nop -/* 32b34: 00000000 */ nop -/* 32b38: 01ca0019 */ multu $t6,$t2 -/* 32b3c: 0000c812 */ mflo $t9 -/* 32b40: 00000000 */ nop -/* 32b44: 00000000 */ nop -/* 32b48: 0321001a */ div $zero,$t9,$at -/* 32b4c: 0000c012 */ mflo $t8 -/* 32b50: 24017fff */ addiu $at,$zero,0x7fff -/* 32b54: 00000000 */ nop -/* 32b58: 01980019 */ multu $t4,$t8 -/* 32b5c: 00006812 */ mflo $t5 -/* 32b60: 00000000 */ nop -/* 32b64: 00000000 */ nop -/* 32b68: 01a1001a */ div $zero,$t5,$at -/* 32b6c: 00005812 */ mflo $t3 -/* 32b70: 2568ffff */ addiu $t0,$t3,-1 -/* 32b74: afa80078 */ sw $t0,0x78($sp) -.L00032b78: -/* 32b78: 3c0e8006 */ lui $t6,%hi(g_SndPlayer) -/* 32b7c: 8dcef12c */ lw $t6,%lo(g_SndPlayer)($t6) -/* 32b80: 8fa90060 */ lw $t1,0x60($sp) -/* 32b84: 8dca0050 */ lw $t2,0x50($t6) -/* 32b88: 8d2f003c */ lw $t7,0x3c($t1) -/* 32b8c: 01eac823 */ subu $t9,$t7,$t2 -/* 32b90: 2b2103e8 */ slti $at,$t9,0x3e8 -/* 32b94: 10200003 */ beqz $at,.L00032ba4 -/* 32b98: 00000000 */ nop -/* 32b9c: 10000007 */ b .L00032bbc -/* 32ba0: 241003e8 */ addiu $s0,$zero,0x3e8 -.L00032ba4: -/* 32ba4: 3c0d8006 */ lui $t5,%hi(g_SndPlayer) -/* 32ba8: 8dadf12c */ lw $t5,%lo(g_SndPlayer)($t5) -/* 32bac: 8fac0060 */ lw $t4,0x60($sp) -/* 32bb0: 8dab0050 */ lw $t3,0x50($t5) -/* 32bb4: 8d98003c */ lw $t8,0x3c($t4) -/* 32bb8: 030b8023 */ subu $s0,$t8,$t3 -.L00032bbc: -/* 32bbc: 8fa40060 */ lw $a0,0x60($sp) -/* 32bc0: 8fa50078 */ lw $a1,0x78($sp) -/* 32bc4: 02003025 */ or $a2,$s0,$zero -/* 32bc8: 0c00f33c */ jal n_alSynSetVol -/* 32bcc: 2484000c */ addiu $a0,$a0,0xc -.L00032bd0: -/* 32bd0: 10000111 */ b .L00033018 -/* 32bd4: 00000000 */ nop -.L00032bd8: -/* 32bd8: 8fa80060 */ lw $t0,0x60($sp) -/* 32bdc: 24010001 */ addiu $at,$zero,0x1 -/* 32be0: 91090045 */ lbu $t1,0x45($t0) -/* 32be4: 15210065 */ bne $t1,$at,.L00032d7c -/* 32be8: 00000000 */ nop -/* 32bec: 8fae00ac */ lw $t6,0xac($sp) -/* 32bf0: 8fb90060 */ lw $t9,0x60($sp) -/* 32bf4: 8dcf0000 */ lw $t7,0x0($t6) -/* 32bf8: c72a0028 */ lwc1 $f10,0x28($t9) -/* 32bfc: c732002c */ lwc1 $f18,0x2c($t9) -/* 32c00: 8dea0008 */ lw $t2,0x8($t7) -/* 32c04: 448a3000 */ mtc1 $t2,$f6 -/* 32c08: 00000000 */ nop -/* 32c0c: 46803220 */ cvt.s.w $f8,$f6 -/* 32c10: 460a4403 */ div.s $f16,$f8,$f10 -/* 32c14: 46128103 */ div.s $f4,$f16,$f18 -/* 32c18: 4600218d */ trunc.w.s $f6,$f4 -/* 32c1c: 440d3000 */ mfc1 $t5,$f6 -/* 32c20: 00000000 */ nop -/* 32c24: afad0080 */ sw $t5,0x80($sp) -/* 32c28: 8fb80080 */ lw $t8,0x80($sp) -/* 32c2c: 3c010053 */ lui $at,0x53 -/* 32c30: 3421ec61 */ ori $at,$at,0xec61 -/* 32c34: 0301082a */ slt $at,$t8,$at -/* 32c38: 14200005 */ bnez $at,.L00032c50 -/* 32c3c: 00000000 */ nop -/* 32c40: 0c00cc24 */ jal func00033090 -/* 32c44: 8fa40060 */ lw $a0,0x60($sp) -/* 32c48: 100000f3 */ b .L00033018 -/* 32c4c: 00000000 */ nop -.L00032c50: -/* 32c50: 8fac0060 */ lw $t4,0x60($sp) -/* 32c54: 8fa800a8 */ lw $t0,0xa8($sp) -/* 32c58: 3c0b800a */ lui $t3,%hi(var8009c334) -/* 32c5c: 858d003a */ lh $t5,0x3a($t4) -/* 32c60: 85980038 */ lh $t8,0x38($t4) -/* 32c64: 91090002 */ lbu $t1,0x2($t0) -/* 32c68: 8d6bc334 */ lw $t3,%lo(var8009c334)($t3) -/* 32c6c: 01b80019 */ multu $t5,$t8 -/* 32c70: 312e001f */ andi $t6,$t1,0x1f -/* 32c74: 8fa900ac */ lw $t1,0xac($sp) -/* 32c78: 000e7840 */ sll $t7,$t6,0x1 -/* 32c7c: 016f5021 */ addu $t2,$t3,$t7 -/* 32c80: 912e000d */ lbu $t6,0xd($t1) -/* 32c84: 24013f01 */ addiu $at,$zero,0x3f01 -/* 32c88: 85590000 */ lh $t9,0x0($t2) -/* 32c8c: 00004012 */ mflo $t0 -/* 32c90: 00000000 */ nop -/* 32c94: 00000000 */ nop -/* 32c98: 010e0019 */ multu $t0,$t6 -/* 32c9c: 00005812 */ mflo $t3 -/* 32ca0: 00000000 */ nop -/* 32ca4: 00000000 */ nop -/* 32ca8: 0161001a */ div $zero,$t3,$at -/* 32cac: 00007812 */ mflo $t7 -/* 32cb0: 24017fff */ addiu $at,$zero,0x7fff -/* 32cb4: 00000000 */ nop -/* 32cb8: 032f0019 */ multu $t9,$t7 -/* 32cbc: 00005012 */ mflo $t2 -/* 32cc0: 00000000 */ nop -/* 32cc4: 00000000 */ nop -/* 32cc8: 0141001a */ div $zero,$t2,$at -/* 32ccc: 00006012 */ mflo $t4 -/* 32cd0: 1d800003 */ bgtz $t4,.L00032ce0 -/* 32cd4: 00000000 */ nop -/* 32cd8: 10000023 */ b .L00032d68 -/* 32cdc: afa00078 */ sw $zero,0x78($sp) -.L00032ce0: -/* 32ce0: 8faf0060 */ lw $t7,0x60($sp) -/* 32ce4: 8fb800a8 */ lw $t8,0xa8($sp) -/* 32ce8: 3c0d800a */ lui $t5,%hi(var8009c334) -/* 32cec: 85ea003a */ lh $t2,0x3a($t7) -/* 32cf0: 85ec0038 */ lh $t4,0x38($t7) -/* 32cf4: 93090002 */ lbu $t1,0x2($t8) -/* 32cf8: 8dadc334 */ lw $t5,%lo(var8009c334)($t5) -/* 32cfc: 014c0019 */ multu $t2,$t4 -/* 32d00: 3128001f */ andi $t0,$t1,0x1f -/* 32d04: 8fa900ac */ lw $t1,0xac($sp) -/* 32d08: 00087040 */ sll $t6,$t0,0x1 -/* 32d0c: 01ae5821 */ addu $t3,$t5,$t6 -/* 32d10: 9128000d */ lbu $t0,0xd($t1) -/* 32d14: 24013f01 */ addiu $at,$zero,0x3f01 -/* 32d18: 85790000 */ lh $t9,0x0($t3) -/* 32d1c: 0000c012 */ mflo $t8 -/* 32d20: 00000000 */ nop -/* 32d24: 00000000 */ nop -/* 32d28: 03080019 */ multu $t8,$t0 -/* 32d2c: 00006812 */ mflo $t5 -/* 32d30: 00000000 */ nop -/* 32d34: 00000000 */ nop -/* 32d38: 01a1001a */ div $zero,$t5,$at -/* 32d3c: 00007012 */ mflo $t6 -/* 32d40: 24017fff */ addiu $at,$zero,0x7fff -/* 32d44: 00000000 */ nop -/* 32d48: 032e0019 */ multu $t9,$t6 -/* 32d4c: 00005812 */ mflo $t3 -/* 32d50: 00000000 */ nop -/* 32d54: 00000000 */ nop -/* 32d58: 0161001a */ div $zero,$t3,$at -/* 32d5c: 00007812 */ mflo $t7 -/* 32d60: 25eaffff */ addiu $t2,$t7,-1 -/* 32d64: afaa0078 */ sw $t2,0x78($sp) -.L00032d68: -/* 32d68: 8fa40060 */ lw $a0,0x60($sp) -/* 32d6c: 8fa50078 */ lw $a1,0x78($sp) -/* 32d70: 8fa60080 */ lw $a2,0x80($sp) -/* 32d74: 0c00f33c */ jal n_alSynSetVol -/* 32d78: 2484000c */ addiu $a0,$a0,0xc -.L00032d7c: -/* 32d7c: 100000a6 */ b .L00033018 -/* 32d80: 00000000 */ nop -.L00032d84: -/* 32d84: 8fac0060 */ lw $t4,0x60($sp) -/* 32d88: 91890044 */ lbu $t1,0x44($t4) -/* 32d8c: 31380002 */ andi $t8,$t1,0x2 -/* 32d90: 17000083 */ bnez $t8,.L00032fa0 -/* 32d94: 00000000 */ nop -/* 32d98: 8fa800ac */ lw $t0,0xac($sp) -/* 32d9c: 8fae0060 */ lw $t6,0x60($sp) -/* 32da0: 8d0d0000 */ lw $t5,0x0($t0) -/* 32da4: 91b9000d */ lbu $t9,0xd($t5) -/* 32da8: a5d9003a */ sh $t9,0x3a($t6) -/* 32dac: 8fad0060 */ lw $t5,0x60($sp) -/* 32db0: 8faf00a8 */ lw $t7,0xa8($sp) -/* 32db4: 3c0b800a */ lui $t3,%hi(var8009c334) -/* 32db8: 85b9003a */ lh $t9,0x3a($t5) -/* 32dbc: 85ae0038 */ lh $t6,0x38($t5) -/* 32dc0: 91ea0002 */ lbu $t2,0x2($t7) -/* 32dc4: 8d6bc334 */ lw $t3,%lo(var8009c334)($t3) -/* 32dc8: 032e0019 */ multu $t9,$t6 -/* 32dcc: 314c001f */ andi $t4,$t2,0x1f -/* 32dd0: 8faa00ac */ lw $t2,0xac($sp) -/* 32dd4: 000c4840 */ sll $t1,$t4,0x1 -/* 32dd8: 0169c021 */ addu $t8,$t3,$t1 -/* 32ddc: 914c000d */ lbu $t4,0xd($t2) -/* 32de0: 24013f01 */ addiu $at,$zero,0x3f01 -/* 32de4: 87080000 */ lh $t0,0x0($t8) -/* 32de8: 00007812 */ mflo $t7 -/* 32dec: 00000000 */ nop -/* 32df0: 00000000 */ nop -/* 32df4: 01ec0019 */ multu $t7,$t4 -/* 32df8: 00005812 */ mflo $t3 -/* 32dfc: 00000000 */ nop -/* 32e00: 00000000 */ nop -/* 32e04: 0161001a */ div $zero,$t3,$at -/* 32e08: 00004812 */ mflo $t1 -/* 32e0c: 24017fff */ addiu $at,$zero,0x7fff -/* 32e10: 00000000 */ nop -/* 32e14: 01090019 */ multu $t0,$t1 -/* 32e18: 0000c012 */ mflo $t8 -/* 32e1c: 00000000 */ nop -/* 32e20: 00000000 */ nop -/* 32e24: 0301001a */ div $zero,$t8,$at -/* 32e28: 00006812 */ mflo $t5 -/* 32e2c: 1da00003 */ bgtz $t5,.L00032e3c -/* 32e30: 00000000 */ nop -/* 32e34: 10000023 */ b .L00032ec4 -/* 32e38: afa00078 */ sw $zero,0x78($sp) -.L00032e3c: -/* 32e3c: 8fa90060 */ lw $t1,0x60($sp) -/* 32e40: 8fae00a8 */ lw $t6,0xa8($sp) -/* 32e44: 3c19800a */ lui $t9,%hi(var8009c334) -/* 32e48: 8538003a */ lh $t8,0x3a($t1) -/* 32e4c: 852d0038 */ lh $t5,0x38($t1) -/* 32e50: 91ca0002 */ lbu $t2,0x2($t6) -/* 32e54: 8f39c334 */ lw $t9,%lo(var8009c334)($t9) -/* 32e58: 030d0019 */ multu $t8,$t5 -/* 32e5c: 314f001f */ andi $t7,$t2,0x1f -/* 32e60: 8faa00ac */ lw $t2,0xac($sp) -/* 32e64: 000f6040 */ sll $t4,$t7,0x1 -/* 32e68: 032c5821 */ addu $t3,$t9,$t4 -/* 32e6c: 914f000d */ lbu $t7,0xd($t2) -/* 32e70: 24013f01 */ addiu $at,$zero,0x3f01 -/* 32e74: 85680000 */ lh $t0,0x0($t3) -/* 32e78: 00007012 */ mflo $t6 -/* 32e7c: 00000000 */ nop -/* 32e80: 00000000 */ nop -/* 32e84: 01cf0019 */ multu $t6,$t7 -/* 32e88: 0000c812 */ mflo $t9 -/* 32e8c: 00000000 */ nop -/* 32e90: 00000000 */ nop -/* 32e94: 0321001a */ div $zero,$t9,$at -/* 32e98: 00006012 */ mflo $t4 -/* 32e9c: 24017fff */ addiu $at,$zero,0x7fff -/* 32ea0: 00000000 */ nop -/* 32ea4: 010c0019 */ multu $t0,$t4 -/* 32ea8: 00005812 */ mflo $t3 -/* 32eac: 00000000 */ nop -/* 32eb0: 00000000 */ nop -/* 32eb4: 0161001a */ div $zero,$t3,$at -/* 32eb8: 00004812 */ mflo $t1 -/* 32ebc: 2538ffff */ addiu $t8,$t1,-1 -/* 32ec0: afb80078 */ sw $t8,0x78($sp) -.L00032ec4: -/* 32ec4: 8fad00ac */ lw $t5,0xac($sp) -/* 32ec8: 8faf0060 */ lw $t7,0x60($sp) -/* 32ecc: 8daa0000 */ lw $t2,0x0($t5) -/* 32ed0: c5f00028 */ lwc1 $f16,0x28($t7) -/* 32ed4: c5e4002c */ lwc1 $f4,0x2c($t7) -/* 32ed8: 8d4e0004 */ lw $t6,0x4($t2) -/* 32edc: 448e4000 */ mtc1 $t6,$f8 -/* 32ee0: 00000000 */ nop -/* 32ee4: 468042a0 */ cvt.s.w $f10,$f8 -/* 32ee8: 46105483 */ div.s $f18,$f10,$f16 -/* 32eec: 46049183 */ div.s $f6,$f18,$f4 -/* 32ef0: 4600320d */ trunc.w.s $f8,$f6 -/* 32ef4: 44084000 */ mfc1 $t0,$f8 -/* 32ef8: 00000000 */ nop -/* 32efc: afa80080 */ sw $t0,0x80($sp) -/* 32f00: 8fac0080 */ lw $t4,0x80($sp) -/* 32f04: 3c010053 */ lui $at,0x53 -/* 32f08: 3421ec61 */ ori $at,$at,0xec61 -/* 32f0c: 0181082a */ slt $at,$t4,$at -/* 32f10: 14200005 */ bnez $at,.L00032f28 -/* 32f14: 00000000 */ nop -/* 32f18: 0c00cc24 */ jal func00033090 -/* 32f1c: 8fa40060 */ lw $a0,0x60($sp) -/* 32f20: 1000003d */ b .L00033018 -/* 32f24: 00000000 */ nop -.L00032f28: -/* 32f28: 3c0b8006 */ lui $t3,%hi(g_SndPlayer) -/* 32f2c: 8d6bf12c */ lw $t3,%lo(g_SndPlayer)($t3) -/* 32f30: 8fb80080 */ lw $t8,0x80($sp) -/* 32f34: 8faa0060 */ lw $t2,0x60($sp) -/* 32f38: 8d690050 */ lw $t1,0x50($t3) -/* 32f3c: 01386821 */ addu $t5,$t1,$t8 -/* 32f40: ad4d003c */ sw $t5,0x3c($t2) -/* 32f44: 8fa40060 */ lw $a0,0x60($sp) -/* 32f48: 8fa50078 */ lw $a1,0x78($sp) -/* 32f4c: 8fa60080 */ lw $a2,0x80($sp) -/* 32f50: 0c00f33c */ jal n_alSynSetVol -/* 32f54: 2484000c */ addiu $a0,$a0,0xc -/* 32f58: 240e0002 */ addiu $t6,$zero,0x2 -/* 32f5c: a7ae0094 */ sh $t6,0x94($sp) -/* 32f60: 8faf0060 */ lw $t7,0x60($sp) -/* 32f64: afaf0098 */ sw $t7,0x98($sp) -/* 32f68: 3c048006 */ lui $a0,%hi(g_SndPlayer) -/* 32f6c: 8c84f12c */ lw $a0,%lo(g_SndPlayer)($a0) -/* 32f70: 27a50094 */ addiu $a1,$sp,0x94 -/* 32f74: 8fa60080 */ lw $a2,0x80($sp) -/* 32f78: 00003825 */ or $a3,$zero,$zero -/* 32f7c: 0c00f184 */ jal n_alEvtqPostEvent -/* 32f80: 24840014 */ addiu $a0,$a0,20 -/* 32f84: 8fb90060 */ lw $t9,0x60($sp) -/* 32f88: 93280044 */ lbu $t0,0x44($t9) -/* 32f8c: 310c0020 */ andi $t4,$t0,0x20 -/* 32f90: 11800003 */ beqz $t4,.L00032fa0 -/* 32f94: 00000000 */ nop -/* 32f98: 0c00cc40 */ jal func00033100 -/* 32f9c: 8fa40060 */ lw $a0,0x60($sp) -.L00032fa0: -/* 32fa0: 1000001d */ b .L00033018 -/* 32fa4: 00000000 */ nop -.L00032fa8: -/* 32fa8: 0c00cc24 */ jal func00033090 -/* 32fac: 8fa40060 */ lw $a0,0x60($sp) -/* 32fb0: 10000019 */ b .L00033018 -/* 32fb4: 00000000 */ nop -.L00032fb8: -/* 32fb8: 8fab0060 */ lw $t3,0x60($sp) -/* 32fbc: 91690044 */ lbu $t1,0x44($t3) -/* 32fc0: 31380010 */ andi $t8,$t1,0x10 -/* 32fc4: 13000010 */ beqz $t8,.L00033008 -/* 32fc8: 00000000 */ nop -/* 32fcc: 8faa0060 */ lw $t2,0x60($sp) -/* 32fd0: 8fad00b8 */ lw $t5,0xb8($sp) -/* 32fd4: c54a002c */ lwc1 $f10,0x2c($t2) -/* 32fd8: 85460038 */ lh $a2,0x38($t2) -/* 32fdc: 91470041 */ lbu $a3,0x41($t2) -/* 32fe0: 8da4000c */ lw $a0,0xc($t5) -/* 32fe4: 8da50008 */ lw $a1,0x8($t5) -/* 32fe8: e7aa0010 */ swc1 $f10,0x10($sp) -/* 32fec: 914e0042 */ lbu $t6,0x42($t2) -/* 32ff0: afae0014 */ sw $t6,0x14($sp) -/* 32ff4: 914f0043 */ lbu $t7,0x43($t2) -/* 32ff8: afaf0018 */ sw $t7,0x18($sp) -/* 32ffc: 8d590030 */ lw $t9,0x30($t2) -/* 33000: 0c00ce08 */ jal func00033820 -/* 33004: afb9001c */ sw $t9,0x1c($sp) -.L00033008: -/* 33008: 10000003 */ b .L00033018 -/* 3300c: 00000000 */ nop -.L00033010: -/* 33010: 10000001 */ b .L00033018 -/* 33014: 00000000 */ nop -.L00033018: -/* 33018: 8fa800b8 */ lw $t0,0xb8($sp) -/* 3301c: 950c0000 */ lhu $t4,0x0($t0) -/* 33020: 318b02d1 */ andi $t3,$t4,0x2d1 -/* 33024: afab006c */ sw $t3,0x6c($sp) -/* 33028: 8fa9005c */ lw $t1,0x5c($sp) -/* 3302c: 11200008 */ beqz $t1,.L00033050 -/* 33030: afa90060 */ sw $t1,0x60($sp) -/* 33034: 8fb8006c */ lw $t8,0x6c($sp) -/* 33038: 17000005 */ bnez $t8,.L00033050 -/* 3303c: 00000000 */ nop -/* 33040: 8fad0060 */ lw $t5,0x60($sp) -/* 33044: 91ae0044 */ lbu $t6,0x44($t5) -/* 33048: 31cf0001 */ andi $t7,$t6,0x1 -/* 3304c: afaf0068 */ sw $t7,0x68($sp) -.L00033050: -/* 33050: 8faa0068 */ lw $t2,0x68($sp) -/* 33054: 15400007 */ bnez $t2,.L00033074 -/* 33058: 00000000 */ nop -/* 3305c: 8fb90060 */ lw $t9,0x60($sp) -/* 33060: 13200004 */ beqz $t9,.L00033074 -/* 33064: 00000000 */ nop -/* 33068: 8fa8006c */ lw $t0,0x6c($sp) -/* 3306c: 1100fabb */ beqz $t0,.L00031b5c -/* 33070: 00000000 */ nop -.L00033074: -/* 33074: 10000001 */ b .L0003307c -/* 33078: 00000000 */ nop -.L0003307c: -/* 3307c: 8fbf0034 */ lw $ra,0x34($sp) -/* 33080: 8fb0002c */ lw $s0,0x2c($sp) -/* 33084: 8fb10030 */ lw $s1,0x30($sp) -/* 33088: 03e00008 */ jr $ra -/* 3308c: 27bd00b8 */ addiu $sp,$sp,0xb8 -); + delta = sound->envelope->attackTime / state->pitch / state->basepitch; + + if (state->flags & SNDSTATEFLAG_02) { + state->unk48 = 0; + } else { + sp40 = sound->envelope->decayTime / state->pitch / state->basepitch; + + if (sp40 > 5500000) { + sp40 = 5500000; + } + + state->unk48 = 1000000 + sp40 + g_SndPlayer->curTime; + + if (state->unk48 < 0) { + state->unk48 = 0; + } + } + + if (delta > 5500000) { + func00033090(state); + return; + } + + state->flags |= SNDSTATEFLAG_04; + state->envvol = sound->envelope->attackVolume; + state->fxbus = config.fxBus; + state->endtime = g_SndPlayer->curTime + delta; #else -GLOBAL_ASM( -glabel _n_handleEvent -.late_rodata -glabel var70054740 -.word _n_handleEvent+0x1ac -glabel var70054744 -.word _n_handleEvent+0x940 -glabel var70054748 -.word _n_handleEvent+0x132c -glabel var7005474c -.word _n_handleEvent+0xa9c -glabel var70054750 -.word _n_handleEvent+0x132c -glabel var70054754 -.word _n_handleEvent+0x132c -glabel var70054758 -.word _n_handleEvent+0x132c -glabel var7005475c -.word _n_handleEvent+0xda8 -glabel var70054760 -.word _n_handleEvent+0x132c -glabel var70054764 -.word _n_handleEvent+0x132c -glabel var70054768 -.word _n_handleEvent+0x132c -glabel var7005476c -.word _n_handleEvent+0x132c -glabel var70054770 -.word _n_handleEvent+0x132c -glabel var70054774 -.word _n_handleEvent+0x132c -glabel var70054778 -.word _n_handleEvent+0x132c -glabel var7005477c -.word _n_handleEvent+0xb40 -.text -/* 33274: 27bdff48 */ addiu $sp,$sp,-184 -/* 33278: afbf0034 */ sw $ra,0x34($sp) -/* 3327c: afa400b8 */ sw $a0,0xb8($sp) -/* 33280: afb10030 */ sw $s1,0x30($sp) -/* 33284: afb0002c */ sw $s0,0x2c($sp) -/* 33288: 240e0001 */ addiu $t6,$zero,0x1 -/* 3328c: afae0068 */ sw $t6,0x68($sp) -/* 33290: afa00064 */ sw $zero,0x64($sp) -/* 33294: afa00060 */ sw $zero,0x60($sp) -/* 33298: afa0005c */ sw $zero,0x5c($sp) -.NB0003329c: -/* 3329c: 8faf005c */ lw $t7,0x5c($sp) -/* 332a0: 11e0000b */ beqz $t7,.NB000332d0 -/* 332a4: 00000000 */ sll $zero,$zero,0x0 -/* 332a8: 8fb80060 */ lw $t8,0x60($sp) -/* 332ac: afb80088 */ sw $t8,0x88($sp) -/* 332b0: 8fb900b8 */ lw $t9,0xb8($sp) -/* 332b4: 97280000 */ lhu $t0,0x0($t9) -/* 332b8: a7a80084 */ sh $t0,0x84($sp) -/* 332bc: 8fa900b8 */ lw $t1,0xb8($sp) -/* 332c0: 8d2a0008 */ lw $t2,0x8($t1) -/* 332c4: afaa008c */ sw $t2,0x8c($sp) -/* 332c8: 27ab0084 */ addiu $t3,$sp,0x84 -/* 332cc: afab00b8 */ sw $t3,0xb8($sp) -.NB000332d0: -/* 332d0: 8fac00b8 */ lw $t4,0xb8($sp) -/* 332d4: 8d8d0004 */ lw $t5,0x4($t4) -/* 332d8: afad0060 */ sw $t5,0x60($sp) -/* 332dc: 8fae0060 */ lw $t6,0x60($sp) -/* 332e0: 3c018000 */ lui $at,0x8000 -/* 332e4: 01c17824 */ and $t7,$t6,$at -/* 332e8: 15e00001 */ bnez $t7,.NB000332f0 -/* 332ec: 00000000 */ sll $zero,$zero,0x0 -.NB000332f0: -/* 332f0: 8fb80060 */ lw $t8,0x60($sp) -/* 332f4: 8f190008 */ lw $t9,0x8($t8) -/* 332f8: afb900ac */ sw $t9,0xac($sp) -/* 332fc: 8fa800ac */ lw $t0,0xac($sp) -/* 33300: 15000006 */ bnez $t0,.NB0003331c -/* 33304: 00000000 */ sll $zero,$zero,0x0 -/* 33308: 27a4005a */ addiu $a0,$sp,0x5a -/* 3330c: 0c00d201 */ jal sndpCountStates -/* 33310: 27a50058 */ addiu $a1,$sp,0x58 -/* 33314: 100004bd */ beqz $zero,.NB0003460c -/* 33318: 00000000 */ sll $zero,$zero,0x0 -.NB0003331c: -/* 3331c: 8fa900ac */ lw $t1,0xac($sp) -/* 33320: 8d2a0004 */ lw $t2,0x4($t1) -/* 33324: afaa00a8 */ sw $t2,0xa8($sp) -/* 33328: 8fab0060 */ lw $t3,0x60($sp) -/* 3332c: 8d6c0000 */ lw $t4,0x0($t3) -/* 33330: afac005c */ sw $t4,0x5c($sp) -/* 33334: 8fad00b8 */ lw $t5,0xb8($sp) -/* 33338: 95b00000 */ lhu $s0,0x0($t5) -/* 3333c: 2a010201 */ slti $at,$s0,0x201 -/* 33340: 14200012 */ bnez $at,.NB0003338c -/* 33344: 00000000 */ sll $zero,$zero,0x0 -/* 33348: 24010400 */ addiu $at,$zero,0x400 -/* 3334c: 12010219 */ beq $s0,$at,.NB00033bb4 -/* 33350: 00000000 */ sll $zero,$zero,0x0 -/* 33354: 24010800 */ addiu $at,$zero,0x800 -/* 33358: 12010397 */ beq $s0,$at,.NB000341b8 -/* 3335c: 00000000 */ sll $zero,$zero,0x0 -/* 33360: 24011000 */ addiu $at,$zero,0x1000 -/* 33364: 12010213 */ beq $s0,$at,.NB00033bb4 -/* 33368: 00000000 */ sll $zero,$zero,0x0 -/* 3336c: 24012000 */ addiu $at,$zero,0x2000 -/* 33370: 12010312 */ beq $s0,$at,.NB00033fbc -/* 33374: 00000000 */ sll $zero,$zero,0x0 -/* 33378: 24014000 */ addiu $at,$zero,0x4000 -/* 3337c: 120102d8 */ beq $s0,$at,.NB00033ee0 -/* 33380: 00000000 */ sll $zero,$zero,0x0 -/* 33384: 10000486 */ beqz $zero,.NB000345a0 -/* 33388: 00000000 */ sll $zero,$zero,0x0 -.NB0003338c: -/* 3338c: 2a010081 */ slti $at,$s0,0x81 -/* 33390: 14200009 */ bnez $at,.NB000333b8 -/* 33394: 00000000 */ sll $zero,$zero,0x0 -/* 33398: 24010100 */ addiu $at,$zero,0x100 -/* 3339c: 1201029f */ beq $s0,$at,.NB00033e1c -/* 333a0: 00000000 */ sll $zero,$zero,0x0 -/* 333a4: 24010200 */ addiu $at,$zero,0x200 -/* 333a8: 12010467 */ beq $s0,$at,.NB00034548 -/* 333ac: 00000000 */ sll $zero,$zero,0x0 -/* 333b0: 1000047b */ beqz $zero,.NB000345a0 -/* 333b4: 00000000 */ sll $zero,$zero,0x0 -.NB000333b8: -/* 333b8: 2a010041 */ slti $at,$s0,0x41 -/* 333bc: 14200006 */ bnez $at,.NB000333d8 -/* 333c0: 00000000 */ sll $zero,$zero,0x0 -/* 333c4: 24010080 */ addiu $at,$zero,0x80 -/* 333c8: 1201045b */ beq $s0,$at,.NB00034538 -/* 333cc: 00000000 */ sll $zero,$zero,0x0 -/* 333d0: 10000473 */ beqz $zero,.NB000345a0 -/* 333d4: 00000000 */ sll $zero,$zero,0x0 -.NB000333d8: -/* 333d8: 2a010011 */ slti $at,$s0,0x11 -/* 333dc: 14200006 */ bnez $at,.NB000333f8 -/* 333e0: 00000000 */ sll $zero,$zero,0x0 -/* 333e4: 24010040 */ addiu $at,$zero,0x40 -/* 333e8: 120103d4 */ beq $s0,$at,.NB0003433c -/* 333ec: 00000000 */ sll $zero,$zero,0x0 -/* 333f0: 1000046b */ beqz $zero,.NB000345a0 -/* 333f4: 00000000 */ sll $zero,$zero,0x0 -.NB000333f8: -/* 333f8: 260effff */ addiu $t6,$s0,-1 -/* 333fc: 2dc10010 */ sltiu $at,$t6,0x10 -/* 33400: 10200467 */ beqz $at,.NB000345a0 -/* 33404: 00000000 */ sll $zero,$zero,0x0 -/* 33408: 000e7080 */ sll $t6,$t6,0x2 -/* 3340c: 3c017005 */ lui $at,0x7005 -/* 33410: 002e0821 */ addu $at,$at,$t6 -/* 33414: 8c2e5e70 */ lw $t6,0x5e70($at) -/* 33418: 01c00008 */ jr $t6 -/* 3341c: 00000000 */ sll $zero,$zero,0x0 -/* 33420: 8faf0060 */ lw $t7,0x60($sp) -/* 33424: 24010005 */ addiu $at,$zero,0x5 -/* 33428: 91f80045 */ lbu $t8,0x45($t7) -/* 3342c: 13010006 */ beq $t8,$at,.NB00033448 -/* 33430: 00000000 */ sll $zero,$zero,0x0 -/* 33434: 24010004 */ addiu $at,$zero,0x4 -/* 33438: 13010003 */ beq $t8,$at,.NB00033448 -/* 3343c: 00000000 */ sll $zero,$zero,0x0 -/* 33440: 10000472 */ beqz $zero,.NB0003460c -/* 33444: 00000000 */ sll $zero,$zero,0x0 -.NB00033448: -/* 33448: 8fb90060 */ lw $t9,0x60($sp) -/* 3344c: 93280043 */ lbu $t0,0x43($t9) -/* 33450: a7a800b2 */ sh $t0,0xb2($sp) -/* 33454: 8fa90060 */ lw $t1,0x60($sp) -/* 33458: 912a0040 */ lbu $t2,0x40($t1) -/* 3345c: a7aa00b0 */ sh $t2,0xb0($sp) -/* 33460: a3a000b4 */ sb $zero,0xb4($sp) -/* 33464: 3c0c8006 */ lui $t4,0x8006 -/* 33468: 8d8c163c */ lw $t4,0x163c($t4) -/* 3346c: 3c0b8006 */ lui $t3,0x8006 -/* 33470: 856b1640 */ lh $t3,0x1640($t3) -/* 33474: 8d8d0044 */ lw $t5,0x44($t4) -/* 33478: 016d702a */ slt $t6,$t3,$t5 -/* 3347c: 39ce0001 */ xori $t6,$t6,0x1 -/* 33480: afae0070 */ sw $t6,0x70($sp) -/* 33484: 8faf0070 */ lw $t7,0x70($sp) -/* 33488: 11e00006 */ beqz $t7,.NB000334a4 -/* 3348c: 00000000 */ sll $zero,$zero,0x0 -/* 33490: 8fb80060 */ lw $t8,0x60($sp) -/* 33494: 93190044 */ lbu $t9,0x44($t8) -/* 33498: 33280010 */ andi $t0,$t9,0x10 -/* 3349c: 11000006 */ beqz $t0,.NB000334b8 -/* 334a0: 00000000 */ sll $zero,$zero,0x0 -.NB000334a4: -/* 334a4: 8fa40060 */ lw $a0,0x60($sp) -/* 334a8: 27a500b0 */ addiu $a1,$sp,0xb0 -/* 334ac: 0c00f76c */ jal n_alSynAllocVoice -/* 334b0: 2484000c */ addiu $a0,$a0,0xc -/* 334b4: afa20064 */ sw $v0,0x64($sp) -.NB000334b8: -/* 334b8: 8fa90064 */ lw $t1,0x64($sp) -/* 334bc: 1520005f */ bnez $t1,.NB0003363c -/* 334c0: 00000000 */ sll $zero,$zero,0x0 -/* 334c4: 8faa0060 */ lw $t2,0x60($sp) -/* 334c8: 914c0044 */ lbu $t4,0x44($t2) -/* 334cc: 318b0012 */ andi $t3,$t4,0x12 -/* 334d0: 15600004 */ bnez $t3,.NB000334e4 -/* 334d4: 00000000 */ sll $zero,$zero,0x0 -/* 334d8: 8d4d0034 */ lw $t5,0x34($t2) -/* 334dc: 19a00011 */ blez $t5,.NB00033524 -/* 334e0: 00000000 */ sll $zero,$zero,0x0 -.NB000334e4: -/* 334e4: 8faf0060 */ lw $t7,0x60($sp) -/* 334e8: 240e0004 */ addiu $t6,$zero,0x4 -/* 334ec: a1ee0045 */ sb $t6,0x45($t7) -/* 334f0: 8fb80060 */ lw $t8,0x60($sp) -/* 334f4: 8f190034 */ lw $t9,0x34($t8) -/* 334f8: 2728ffff */ addiu $t0,$t9,-1 -/* 334fc: af080034 */ sw $t0,0x34($t8) -/* 33500: 3c048006 */ lui $a0,0x8006 -/* 33504: 8c84163c */ lw $a0,0x163c($a0) -/* 33508: 8fa500b8 */ lw $a1,0xb8($sp) -/* 3350c: 34068235 */ dli $a2,0x8235 -/* 33510: 00003825 */ or $a3,$zero,$zero -/* 33514: 0c00f678 */ jal n_alEvtqPostEvent -/* 33518: 24840014 */ addiu $a0,$a0,0x14 -/* 3351c: 10000045 */ beqz $zero,.NB00033634 -/* 33520: 00000000 */ sll $zero,$zero,0x0 -.NB00033524: -/* 33524: 8fa90070 */ lw $t1,0x70($sp) -/* 33528: 11200040 */ beqz $t1,.NB0003362c -/* 3352c: 00000000 */ sll $zero,$zero,0x0 -/* 33530: 3c0c8006 */ lui $t4,0x8006 -/* 33534: 8d8c1634 */ lw $t4,0x1634($t4) -/* 33538: afac0054 */ sw $t4,0x54($sp) -.NB0003353c: -/* 3353c: 8fab0054 */ lw $t3,0x54($sp) -/* 33540: 916a0044 */ lbu $t2,0x44($t3) -/* 33544: 314d0012 */ andi $t5,$t2,0x12 -/* 33548: 15a0001c */ bnez $t5,.NB000335bc -/* 3354c: 00000000 */ sll $zero,$zero,0x0 -/* 33550: 314e0004 */ andi $t6,$t2,0x4 -/* 33554: 11c00019 */ beqz $t6,.NB000335bc -/* 33558: 00000000 */ sll $zero,$zero,0x0 -/* 3355c: 916f0045 */ lbu $t7,0x45($t3) -/* 33560: 24010003 */ addiu $at,$zero,0x3 -/* 33564: 11e10015 */ beq $t7,$at,.NB000335bc -/* 33568: 00000000 */ sll $zero,$zero,0x0 -/* 3356c: afa00070 */ sw $zero,0x70($sp) -/* 33570: 24190080 */ addiu $t9,$zero,0x80 -/* 33574: a7b90044 */ sh $t9,0x44($sp) -/* 33578: 8fa80054 */ lw $t0,0x54($sp) -/* 3357c: afa80048 */ sw $t0,0x48($sp) -/* 33580: 8fa90054 */ lw $t1,0x54($sp) -/* 33584: 24180003 */ addiu $t8,$zero,0x3 -/* 33588: a1380045 */ sb $t8,0x45($t1) -/* 3358c: 3c048006 */ lui $a0,0x8006 -/* 33590: 8c84163c */ lw $a0,0x163c($a0) -/* 33594: 27a50044 */ addiu $a1,$sp,0x44 -/* 33598: 240603e8 */ addiu $a2,$zero,0x3e8 -/* 3359c: 00003825 */ or $a3,$zero,$zero -/* 335a0: 0c00f678 */ jal n_alEvtqPostEvent -/* 335a4: 24840014 */ addiu $a0,$a0,0x14 -/* 335a8: 8fa40054 */ lw $a0,0x54($sp) -/* 335ac: 00002825 */ or $a1,$zero,$zero -/* 335b0: 240603e8 */ addiu $a2,$zero,0x3e8 -/* 335b4: 0c00f830 */ jal n_alSynSetVol -/* 335b8: 2484000c */ addiu $a0,$a0,0xc -.NB000335bc: -/* 335bc: 8fac0054 */ lw $t4,0x54($sp) -/* 335c0: 8d8d0004 */ lw $t5,0x4($t4) -/* 335c4: afad0054 */ sw $t5,0x54($sp) -/* 335c8: 8faa0070 */ lw $t2,0x70($sp) -/* 335cc: 11400004 */ beqz $t2,.NB000335e0 -/* 335d0: 00000000 */ sll $zero,$zero,0x0 -/* 335d4: 8fae0054 */ lw $t6,0x54($sp) -/* 335d8: 15c0ffd8 */ bnez $t6,.NB0003353c -/* 335dc: 00000000 */ sll $zero,$zero,0x0 -.NB000335e0: -/* 335e0: 8fab0070 */ lw $t3,0x70($sp) -/* 335e4: 1560000d */ bnez $t3,.NB0003361c -/* 335e8: 00000000 */ sll $zero,$zero,0x0 -/* 335ec: 8fb90060 */ lw $t9,0x60($sp) -/* 335f0: 240f0002 */ addiu $t7,$zero,0x2 -/* 335f4: af2f0034 */ sw $t7,0x34($t9) -/* 335f8: 3c048006 */ lui $a0,0x8006 -/* 335fc: 8c84163c */ lw $a0,0x163c($a0) -/* 33600: 8fa500b8 */ lw $a1,0xb8($sp) -/* 33604: 240603e9 */ addiu $a2,$zero,0x3e9 -/* 33608: 00003825 */ or $a3,$zero,$zero -/* 3360c: 0c00f678 */ jal n_alEvtqPostEvent -/* 33610: 24840014 */ addiu $a0,$a0,0x14 -/* 33614: 10000003 */ beqz $zero,.NB00033624 -/* 33618: 00000000 */ sll $zero,$zero,0x0 -.NB0003361c: -/* 3361c: 0c00d188 */ jal func00033090 -/* 33620: 8fa40060 */ lw $a0,0x60($sp) -.NB00033624: -/* 33624: 10000003 */ beqz $zero,.NB00033634 -/* 33628: 00000000 */ sll $zero,$zero,0x0 -.NB0003362c: -/* 3362c: 0c00d188 */ jal func00033090 -/* 33630: 8fa40060 */ lw $a0,0x60($sp) -.NB00033634: -/* 33634: 100003f5 */ beqz $zero,.NB0003460c -/* 33638: 00000000 */ sll $zero,$zero,0x0 -.NB0003363c: -/* 3363c: 8fa80060 */ lw $t0,0x60($sp) -/* 33640: 91180044 */ lbu $t8,0x44($t0) -/* 33644: 37090004 */ ori $t1,$t8,0x4 -/* 33648: a1090044 */ sb $t1,0x44($t0) -/* 3364c: 8fac00ac */ lw $t4,0xac($sp) -/* 33650: 8fae0060 */ lw $t6,0x60($sp) -/* 33654: 8d8d0000 */ lw $t5,0x0($t4) -/* 33658: 91aa000c */ lbu $t2,0xc($t5) -/* 3365c: a5ca003a */ sh $t2,0x3a($t6) -/* 33660: 87ab00b2 */ lh $t3,0xb2($sp) -/* 33664: 8faf0060 */ lw $t7,0x60($sp) -/* 33668: a1eb0043 */ sb $t3,0x43($t7) -/* 3366c: 8fb900ac */ lw $t9,0xac($sp) -/* 33670: 8fa80060 */ lw $t0,0x60($sp) -/* 33674: 8f380000 */ lw $t8,0x0($t9) -/* 33678: c508002c */ lwc1 $f8,0x2c($t0) -/* 3367c: c5100028 */ lwc1 $f16,0x28($t0) -/* 33680: 8f090000 */ lw $t1,0x0($t8) -/* 33684: 44892000 */ mtc1 $t1,$f4 -/* 33688: 00000000 */ sll $zero,$zero,0x0 -/* 3368c: 468021a0 */ cvt.s.w $f6,$f4 -/* 33690: 46083283 */ div.s $f10,$f6,$f8 -/* 33694: 46105483 */ div.s $f18,$f10,$f16 -/* 33698: 4600910d */ trunc.w.s $f4,$f18 -/* 3369c: 440d2000 */ mfc1 $t5,$f4 -/* 336a0: 00000000 */ sll $zero,$zero,0x0 -/* 336a4: afad0080 */ sw $t5,0x80($sp) -/* 336a8: 3c0a8006 */ lui $t2,0x8006 -/* 336ac: 8d4a163c */ lw $t2,0x163c($t2) -/* 336b0: 8fab0080 */ lw $t3,0x80($sp) -/* 336b4: 8fb90060 */ lw $t9,0x60($sp) -/* 336b8: 8d4e0050 */ lw $t6,0x50($t2) -/* 336bc: 01cb7821 */ addu $t7,$t6,$t3 -/* 336c0: af2f003c */ sw $t7,0x3c($t9) -/* 336c4: 8fab0060 */ lw $t3,0x60($sp) -/* 336c8: 8fa900a8 */ lw $t1,0xa8($sp) -/* 336cc: 3c18800a */ lui $t8,0x800a -/* 336d0: 856f003a */ lh $t7,0x3a($t3) -/* 336d4: 85790038 */ lh $t9,0x38($t3) -/* 336d8: 91280002 */ lbu $t0,0x2($t1) -/* 336dc: 8f180a34 */ lw $t8,0xa34($t8) -/* 336e0: 01f90019 */ multu $t7,$t9 -/* 336e4: 310c001f */ andi $t4,$t0,0x1f -/* 336e8: 8fa800ac */ lw $t0,0xac($sp) -/* 336ec: 000c6840 */ sll $t5,$t4,0x1 -/* 336f0: 030d5021 */ addu $t2,$t8,$t5 -/* 336f4: 910c000d */ lbu $t4,0xd($t0) -/* 336f8: 24013f01 */ addiu $at,$zero,0x3f01 -/* 336fc: 854e0000 */ lh $t6,0x0($t2) -/* 33700: 00004812 */ mflo $t1 -/* 33704: 00000000 */ sll $zero,$zero,0x0 -/* 33708: 00000000 */ sll $zero,$zero,0x0 -/* 3370c: 012c0019 */ multu $t1,$t4 -/* 33710: 0000c012 */ mflo $t8 -/* 33714: 00000000 */ sll $zero,$zero,0x0 -/* 33718: 00000000 */ sll $zero,$zero,0x0 -/* 3371c: 0301001a */ div $zero,$t8,$at -/* 33720: 00006812 */ mflo $t5 -/* 33724: 24017fff */ addiu $at,$zero,0x7fff -/* 33728: 00000000 */ sll $zero,$zero,0x0 -/* 3372c: 01cd0019 */ multu $t6,$t5 -/* 33730: 00005012 */ mflo $t2 -/* 33734: 00000000 */ sll $zero,$zero,0x0 -/* 33738: 00000000 */ sll $zero,$zero,0x0 -/* 3373c: 0141001a */ div $zero,$t2,$at -/* 33740: 00005812 */ mflo $t3 -/* 33744: 1d600003 */ bgtz $t3,.NB00033754 -/* 33748: 00000000 */ sll $zero,$zero,0x0 -/* 3374c: 10000023 */ beqz $zero,.NB000337dc -/* 33750: afa00078 */ sw $zero,0x78($sp) -.NB00033754: -/* 33754: 8fad0060 */ lw $t5,0x60($sp) -/* 33758: 8fb900a8 */ lw $t9,0xa8($sp) -/* 3375c: 3c0f800a */ lui $t7,0x800a -/* 33760: 85aa003a */ lh $t2,0x3a($t5) -/* 33764: 85ab0038 */ lh $t3,0x38($t5) -/* 33768: 93280002 */ lbu $t0,0x2($t9) -/* 3376c: 8def0a34 */ lw $t7,0xa34($t7) -/* 33770: 014b0019 */ multu $t2,$t3 -/* 33774: 3109001f */ andi $t1,$t0,0x1f -/* 33778: 8fa800ac */ lw $t0,0xac($sp) -/* 3377c: 00096040 */ sll $t4,$t1,0x1 -/* 33780: 01ecc021 */ addu $t8,$t7,$t4 -/* 33784: 9109000d */ lbu $t1,0xd($t0) -/* 33788: 24013f01 */ addiu $at,$zero,0x3f01 -/* 3378c: 870e0000 */ lh $t6,0x0($t8) -/* 33790: 0000c812 */ mflo $t9 -/* 33794: 00000000 */ sll $zero,$zero,0x0 -/* 33798: 00000000 */ sll $zero,$zero,0x0 -/* 3379c: 03290019 */ multu $t9,$t1 -/* 337a0: 00007812 */ mflo $t7 -/* 337a4: 00000000 */ sll $zero,$zero,0x0 -/* 337a8: 00000000 */ sll $zero,$zero,0x0 -/* 337ac: 01e1001a */ div $zero,$t7,$at -/* 337b0: 00006012 */ mflo $t4 -/* 337b4: 24017fff */ addiu $at,$zero,0x7fff -/* 337b8: 00000000 */ sll $zero,$zero,0x0 -/* 337bc: 01cc0019 */ multu $t6,$t4 -/* 337c0: 0000c012 */ mflo $t8 -/* 337c4: 00000000 */ sll $zero,$zero,0x0 -/* 337c8: 00000000 */ sll $zero,$zero,0x0 -/* 337cc: 0301001a */ div $zero,$t8,$at -/* 337d0: 00006812 */ mflo $t5 -/* 337d4: 25aaffff */ addiu $t2,$t5,-1 -/* 337d8: afaa0078 */ sw $t2,0x78($sp) -.NB000337dc: -/* 337dc: 8fab0060 */ lw $t3,0x60($sp) -/* 337e0: 8fb900ac */ lw $t9,0xac($sp) -/* 337e4: 91680041 */ lbu $t0,0x41($t3) -/* 337e8: 9329000c */ lbu $t1,0xc($t9) -/* 337ec: 01097821 */ addu $t7,$t0,$t1 -/* 337f0: 25eeffc0 */ addiu $t6,$t7,-64 -/* 337f4: afae0074 */ sw $t6,0x74($sp) -/* 337f8: 8fac0074 */ lw $t4,0x74($sp) -/* 337fc: 19800003 */ blez $t4,.NB0003380c -/* 33800: 00000000 */ sll $zero,$zero,0x0 -/* 33804: 10000002 */ beqz $zero,.NB00033810 -/* 33808: 01808025 */ or $s0,$t4,$zero -.NB0003380c: -/* 3380c: 00008025 */ or $s0,$zero,$zero -.NB00033810: -/* 33810: 2a01007f */ slti $at,$s0,0x7f -/* 33814: 10200009 */ beqz $at,.NB0003383c -/* 33818: 00000000 */ sll $zero,$zero,0x0 -/* 3381c: 8fb80074 */ lw $t8,0x74($sp) -/* 33820: 1b000003 */ blez $t8,.NB00033830 -/* 33824: 00000000 */ sll $zero,$zero,0x0 -/* 33828: 10000002 */ beqz $zero,.NB00033834 -/* 3382c: 03008825 */ or $s1,$t8,$zero -.NB00033830: -/* 33830: 00008825 */ or $s1,$zero,$zero -.NB00033834: -/* 33834: 10000003 */ beqz $zero,.NB00033844 -/* 33838: a3b100a7 */ sb $s1,0xa7($sp) -.NB0003383c: -/* 3383c: 240d007f */ addiu $t5,$zero,0x7f -/* 33840: a3ad00a7 */ sb $t5,0xa7($sp) -.NB00033844: -/* 33844: 8fa800a8 */ lw $t0,0xa8($sp) -/* 33848: 8faa0060 */ lw $t2,0x60($sp) -/* 3384c: 91090003 */ lbu $t1,0x3($t0) -/* 33850: 914b0042 */ lbu $t3,0x42($t2) -/* 33854: 312f000f */ andi $t7,$t1,0xf -/* 33858: 000f70c0 */ sll $t6,$t7,0x3 -/* 3385c: 3179007f */ andi $t9,$t3,0x7f -/* 33860: 032e6021 */ addu $t4,$t9,$t6 -/* 33864: afac007c */ sw $t4,0x7c($sp) -/* 33868: 8fb8007c */ lw $t8,0x7c($sp) -/* 3386c: 07010003 */ bgez $t8,.NB0003387c -/* 33870: 00000000 */ sll $zero,$zero,0x0 -/* 33874: 10000002 */ beqz $zero,.NB00033880 -/* 33878: 00008025 */ or $s0,$zero,$zero -.NB0003387c: -/* 3387c: 8fb0007c */ lw $s0,0x7c($sp) -.NB00033880: -/* 33880: 2a010080 */ slti $at,$s0,0x80 -/* 33884: 14200004 */ bnez $at,.NB00033898 -/* 33888: 00000000 */ sll $zero,$zero,0x0 -/* 3388c: 240d007f */ addiu $t5,$zero,0x7f -/* 33890: 10000008 */ beqz $zero,.NB000338b4 -/* 33894: afad007c */ sw $t5,0x7c($sp) -.NB00033898: -/* 33898: 8faa007c */ lw $t2,0x7c($sp) -/* 3389c: 05410003 */ bgez $t2,.NB000338ac -/* 338a0: 00000000 */ sll $zero,$zero,0x0 -/* 338a4: 10000002 */ beqz $zero,.NB000338b0 -/* 338a8: 00008825 */ or $s1,$zero,$zero -.NB000338ac: -/* 338ac: 8fb1007c */ lw $s1,0x7c($sp) -.NB000338b0: -/* 338b0: afb1007c */ sw $s1,0x7c($sp) -.NB000338b4: -/* 338b4: 8fa80060 */ lw $t0,0x60($sp) -/* 338b8: 8fab007c */ lw $t3,0x7c($sp) -/* 338bc: 91090042 */ lbu $t1,0x42($t0) -/* 338c0: 312f0080 */ andi $t7,$t1,0x80 -/* 338c4: 016fc825 */ or $t9,$t3,$t7 -/* 338c8: afb9007c */ sw $t9,0x7c($sp) -/* 338cc: 8fae0060 */ lw $t6,0x60($sp) -/* 338d0: 8fac00ac */ lw $t4,0xac($sp) -/* 338d4: 93b800a7 */ lbu $t8,0xa7($sp) -/* 338d8: c5c6002c */ lwc1 $f6,0x2c($t6) -/* 338dc: c5c80028 */ lwc1 $f8,0x28($t6) -/* 338e0: 8d850008 */ lw $a1,0x8($t4) -/* 338e4: 8fad007c */ lw $t5,0x7c($sp) -/* 338e8: 46083282 */ mul.s $f10,$f6,$f8 -/* 338ec: 44808000 */ mtc1 $zero,$f16 -/* 338f0: 8faa0080 */ lw $t2,0x80($sp) -/* 338f4: afa00020 */ sw $zero,0x20($sp) -/* 338f8: afa00018 */ sw $zero,0x18($sp) -/* 338fc: 8fa70078 */ lw $a3,0x78($sp) -/* 33900: 25c4000c */ addiu $a0,$t6,0xc -/* 33904: 44065000 */ mfc1 $a2,$f10 -/* 33908: afb80010 */ sw $t8,0x10($sp) -/* 3390c: afad0014 */ sw $t5,0x14($sp) -/* 33910: afaa0024 */ sw $t2,0x24($sp) -/* 33914: 0c00f864 */ jal n_alSynStartVoiceParams -/* 33918: e7b0001c */ swc1 $f16,0x1c($sp) -/* 3391c: 8fa90060 */ lw $t1,0x60($sp) -/* 33920: 24080001 */ addiu $t0,$zero,0x1 -/* 33924: a1280045 */ sb $t0,0x45($t1) -/* 33928: 3c0b8006 */ lui $t3,0x8006 -/* 3392c: 856b1640 */ lh $t3,0x1640($t3) -/* 33930: 3c018006 */ lui $at,0x8006 -/* 33934: 256f0001 */ addiu $t7,$t3,0x1 -/* 33938: a42f1640 */ sh $t7,0x1640($at) -/* 3393c: 8fb90060 */ lw $t9,0x60($sp) -/* 33940: 932c0044 */ lbu $t4,0x44($t9) -/* 33944: 318e0002 */ andi $t6,$t4,0x2 -/* 33948: 15c00098 */ bnez $t6,.NB00033bac -/* 3394c: 00000000 */ sll $zero,$zero,0x0 -/* 33950: 8fb80080 */ lw $t8,0x80($sp) -/* 33954: 1700007b */ bnez $t8,.NB00033b44 -/* 33958: 00000000 */ sll $zero,$zero,0x0 -/* 3395c: 8fad00ac */ lw $t5,0xac($sp) -/* 33960: 8fa90060 */ lw $t1,0x60($sp) -/* 33964: 8daa0000 */ lw $t2,0x0($t5) -/* 33968: 9148000d */ lbu $t0,0xd($t2) -/* 3396c: a528003a */ sh $t0,0x3a($t1) -/* 33970: 8faa0060 */ lw $t2,0x60($sp) -/* 33974: 8faf00a8 */ lw $t7,0xa8($sp) -/* 33978: 3c0b800a */ lui $t3,0x800a -/* 3397c: 8548003a */ lh $t0,0x3a($t2) -/* 33980: 85490038 */ lh $t1,0x38($t2) -/* 33984: 91f90002 */ lbu $t9,0x2($t7) -/* 33988: 8d6b0a34 */ lw $t3,0xa34($t3) -/* 3398c: 01090019 */ multu $t0,$t1 -/* 33990: 332c001f */ andi $t4,$t9,0x1f -/* 33994: 8fb900ac */ lw $t9,0xac($sp) -/* 33998: 000c7040 */ sll $t6,$t4,0x1 -/* 3399c: 016ec021 */ addu $t8,$t3,$t6 -/* 339a0: 932c000d */ lbu $t4,0xd($t9) -/* 339a4: 24013f01 */ addiu $at,$zero,0x3f01 -/* 339a8: 870d0000 */ lh $t5,0x0($t8) -/* 339ac: 00007812 */ mflo $t7 -/* 339b0: 00000000 */ sll $zero,$zero,0x0 -/* 339b4: 00000000 */ sll $zero,$zero,0x0 -/* 339b8: 01ec0019 */ multu $t7,$t4 -/* 339bc: 00005812 */ mflo $t3 -/* 339c0: 00000000 */ sll $zero,$zero,0x0 -/* 339c4: 00000000 */ sll $zero,$zero,0x0 -/* 339c8: 0161001a */ div $zero,$t3,$at -/* 339cc: 00007012 */ mflo $t6 -/* 339d0: 24017fff */ addiu $at,$zero,0x7fff -/* 339d4: 00000000 */ sll $zero,$zero,0x0 -/* 339d8: 01ae0019 */ multu $t5,$t6 -/* 339dc: 0000c012 */ mflo $t8 -/* 339e0: 00000000 */ sll $zero,$zero,0x0 -/* 339e4: 00000000 */ sll $zero,$zero,0x0 -/* 339e8: 0301001a */ div $zero,$t8,$at -/* 339ec: 00005012 */ mflo $t2 -/* 339f0: 1d400003 */ bgtz $t2,.NB00033a00 -/* 339f4: 00000000 */ sll $zero,$zero,0x0 -/* 339f8: 10000023 */ beqz $zero,.NB00033a88 -/* 339fc: afa00078 */ sw $zero,0x78($sp) -.NB00033a00: -/* 33a00: 8fae0060 */ lw $t6,0x60($sp) -/* 33a04: 8fa900a8 */ lw $t1,0xa8($sp) -/* 33a08: 3c08800a */ lui $t0,0x800a -/* 33a0c: 85d8003a */ lh $t8,0x3a($t6) -/* 33a10: 85ca0038 */ lh $t2,0x38($t6) -/* 33a14: 91390002 */ lbu $t9,0x2($t1) -/* 33a18: 8d080a34 */ lw $t0,0xa34($t0) -/* 33a1c: 030a0019 */ multu $t8,$t2 -/* 33a20: 332f001f */ andi $t7,$t9,0x1f -/* 33a24: 8fb900ac */ lw $t9,0xac($sp) -/* 33a28: 000f6040 */ sll $t4,$t7,0x1 -/* 33a2c: 010c5821 */ addu $t3,$t0,$t4 -/* 33a30: 932f000d */ lbu $t7,0xd($t9) -/* 33a34: 24013f01 */ addiu $at,$zero,0x3f01 -/* 33a38: 856d0000 */ lh $t5,0x0($t3) -/* 33a3c: 00004812 */ mflo $t1 -/* 33a40: 00000000 */ sll $zero,$zero,0x0 -/* 33a44: 00000000 */ sll $zero,$zero,0x0 -/* 33a48: 012f0019 */ multu $t1,$t7 -/* 33a4c: 00004012 */ mflo $t0 -/* 33a50: 00000000 */ sll $zero,$zero,0x0 -/* 33a54: 00000000 */ sll $zero,$zero,0x0 -/* 33a58: 0101001a */ div $zero,$t0,$at -/* 33a5c: 00006012 */ mflo $t4 -/* 33a60: 24017fff */ addiu $at,$zero,0x7fff -/* 33a64: 00000000 */ sll $zero,$zero,0x0 -/* 33a68: 01ac0019 */ multu $t5,$t4 -/* 33a6c: 00005812 */ mflo $t3 -/* 33a70: 00000000 */ sll $zero,$zero,0x0 -/* 33a74: 00000000 */ sll $zero,$zero,0x0 -/* 33a78: 0161001a */ div $zero,$t3,$at -/* 33a7c: 00007012 */ mflo $t6 -/* 33a80: 25d8ffff */ addiu $t8,$t6,-1 -/* 33a84: afb80078 */ sw $t8,0x78($sp) -.NB00033a88: -/* 33a88: 8faa00ac */ lw $t2,0xac($sp) -/* 33a8c: 8faf0060 */ lw $t7,0x60($sp) -/* 33a90: 8d590000 */ lw $t9,0x0($t2) -/* 33a94: c5e60028 */ lwc1 $f6,0x28($t7) -/* 33a98: c5ea002c */ lwc1 $f10,0x2c($t7) -/* 33a9c: 8f290004 */ lw $t1,0x4($t9) -/* 33aa0: 44899000 */ mtc1 $t1,$f18 -/* 33aa4: 00000000 */ sll $zero,$zero,0x0 -/* 33aa8: 46809120 */ cvt.s.w $f4,$f18 -/* 33aac: 46062203 */ div.s $f8,$f4,$f6 -/* 33ab0: 460a4403 */ div.s $f16,$f8,$f10 -/* 33ab4: 4600848d */ trunc.w.s $f18,$f16 -/* 33ab8: 440d9000 */ mfc1 $t5,$f18 -/* 33abc: 00000000 */ sll $zero,$zero,0x0 -/* 33ac0: afad0080 */ sw $t5,0x80($sp) -/* 33ac4: 3c0c8006 */ lui $t4,0x8006 -/* 33ac8: 8d8c163c */ lw $t4,0x163c($t4) -/* 33acc: 8fae0080 */ lw $t6,0x80($sp) -/* 33ad0: 8faa0060 */ lw $t2,0x60($sp) -/* 33ad4: 8d8b0050 */ lw $t3,0x50($t4) -/* 33ad8: 016ec021 */ addu $t8,$t3,$t6 -/* 33adc: ad58003c */ sw $t8,0x3c($t2) -/* 33ae0: 8fa40060 */ lw $a0,0x60($sp) -/* 33ae4: 8fa50078 */ lw $a1,0x78($sp) -/* 33ae8: 8fa60080 */ lw $a2,0x80($sp) -/* 33aec: 0c00f830 */ jal n_alSynSetVol -/* 33af0: 2484000c */ addiu $a0,$a0,0xc -/* 33af4: 24190002 */ addiu $t9,$zero,0x2 -/* 33af8: a7b90094 */ sh $t9,0x94($sp) -/* 33afc: 8fa90060 */ lw $t1,0x60($sp) -/* 33b00: afa90098 */ sw $t1,0x98($sp) -/* 33b04: 3c048006 */ lui $a0,0x8006 -/* 33b08: 8c84163c */ lw $a0,0x163c($a0) -/* 33b0c: 27a50094 */ addiu $a1,$sp,0x94 -/* 33b10: 8fa60080 */ lw $a2,0x80($sp) -/* 33b14: 00003825 */ or $a3,$zero,$zero -/* 33b18: 0c00f678 */ jal n_alEvtqPostEvent -/* 33b1c: 24840014 */ addiu $a0,$a0,0x14 -/* 33b20: 8faf0060 */ lw $t7,0x60($sp) -/* 33b24: 91e80044 */ lbu $t0,0x44($t7) -/* 33b28: 310d0020 */ andi $t5,$t0,0x20 -/* 33b2c: 11a00003 */ beqz $t5,.NB00033b3c -/* 33b30: 00000000 */ sll $zero,$zero,0x0 -/* 33b34: 0c00d1a4 */ jal func00033100 -/* 33b38: 8fa40060 */ lw $a0,0x60($sp) -.NB00033b3c: -/* 33b3c: 1000001b */ beqz $zero,.NB00033bac -/* 33b40: 00000000 */ sll $zero,$zero,0x0 -.NB00033b44: -/* 33b44: 240c0040 */ addiu $t4,$zero,0x40 -/* 33b48: a7ac0094 */ sh $t4,0x94($sp) -/* 33b4c: 8fab0060 */ lw $t3,0x60($sp) -/* 33b50: afab0098 */ sw $t3,0x98($sp) -/* 33b54: 8fae00ac */ lw $t6,0xac($sp) -/* 33b58: 8fb90060 */ lw $t9,0x60($sp) -/* 33b5c: 8dd80000 */ lw $t8,0x0($t6) -/* 33b60: c728002c */ lwc1 $f8,0x2c($t9) -/* 33b64: c7300028 */ lwc1 $f16,0x28($t9) -/* 33b68: 8f0a0000 */ lw $t2,0x0($t8) -/* 33b6c: 448a2000 */ mtc1 $t2,$f4 -/* 33b70: 00000000 */ sll $zero,$zero,0x0 -/* 33b74: 468021a0 */ cvt.s.w $f6,$f4 -/* 33b78: 46083283 */ div.s $f10,$f6,$f8 -/* 33b7c: 46105483 */ div.s $f18,$f10,$f16 -/* 33b80: 4600910d */ trunc.w.s $f4,$f18 -/* 33b84: 440f2000 */ mfc1 $t7,$f4 -/* 33b88: 00000000 */ sll $zero,$zero,0x0 -/* 33b8c: afaf0080 */ sw $t7,0x80($sp) -/* 33b90: 3c048006 */ lui $a0,0x8006 -/* 33b94: 8c84163c */ lw $a0,0x163c($a0) -/* 33b98: 27a50094 */ addiu $a1,$sp,0x94 -/* 33b9c: 8fa60080 */ lw $a2,0x80($sp) -/* 33ba0: 00003825 */ or $a3,$zero,$zero -/* 33ba4: 0c00f678 */ jal n_alEvtqPostEvent -/* 33ba8: 24840014 */ addiu $a0,$a0,0x14 -.NB00033bac: -/* 33bac: 1000027e */ beqz $zero,.NB000345a8 -/* 33bb0: 00000000 */ sll $zero,$zero,0x0 -.NB00033bb4: -/* 33bb4: 8fa800b8 */ lw $t0,0xb8($sp) -/* 33bb8: 24011000 */ addiu $at,$zero,0x1000 -/* 33bbc: 950d0000 */ lhu $t5,0x0($t0) -/* 33bc0: 15a10006 */ bne $t5,$at,.NB00033bdc -/* 33bc4: 00000000 */ sll $zero,$zero,0x0 -/* 33bc8: 8fac0060 */ lw $t4,0x60($sp) -/* 33bcc: 918b0044 */ lbu $t3,0x44($t4) -/* 33bd0: 316e0002 */ andi $t6,$t3,0x2 -/* 33bd4: 11c0004c */ beqz $t6,.NB00033d08 -/* 33bd8: 00000000 */ sll $zero,$zero,0x0 -.NB00033bdc: -/* 33bdc: 8fb80060 */ lw $t8,0x60($sp) -/* 33be0: 24010001 */ addiu $at,$zero,0x1 -/* 33be4: 93100045 */ lbu $s0,0x45($t8) -/* 33be8: 12010009 */ beq $s0,$at,.NB00033c10 -/* 33bec: 00000000 */ sll $zero,$zero,0x0 -/* 33bf0: 24010004 */ addiu $at,$zero,0x4 -/* 33bf4: 12010036 */ beq $s0,$at,.NB00033cd0 -/* 33bf8: 00000000 */ sll $zero,$zero,0x0 -/* 33bfc: 24010005 */ addiu $at,$zero,0x5 -/* 33c00: 12010033 */ beq $s0,$at,.NB00033cd0 -/* 33c04: 00000000 */ sll $zero,$zero,0x0 -/* 33c08: 10000035 */ beqz $zero,.NB00033ce0 -/* 33c0c: 00000000 */ sll $zero,$zero,0x0 -.NB00033c10: -/* 33c10: 3c048006 */ lui $a0,0x8006 -/* 33c14: 8c84163c */ lw $a0,0x163c($a0) -/* 33c18: 8fa50060 */ lw $a1,0x60($sp) -/* 33c1c: 24060040 */ addiu $a2,$zero,0x40 -/* 33c20: 0c00d1c4 */ jal _removeEvents -/* 33c24: 24840014 */ addiu $a0,$a0,0x14 -/* 33c28: 8faa00ac */ lw $t2,0xac($sp) -/* 33c2c: 8faf0060 */ lw $t7,0x60($sp) -/* 33c30: 8d590000 */ lw $t9,0x0($t2) -/* 33c34: c5ea0028 */ lwc1 $f10,0x28($t7) -/* 33c38: c5f2002c */ lwc1 $f18,0x2c($t7) -/* 33c3c: 8f290008 */ lw $t1,0x8($t9) -/* 33c40: 44893000 */ mtc1 $t1,$f6 -/* 33c44: 00000000 */ sll $zero,$zero,0x0 -/* 33c48: 46803220 */ cvt.s.w $f8,$f6 -/* 33c4c: 460a4403 */ div.s $f16,$f8,$f10 -/* 33c50: 46128103 */ div.s $f4,$f16,$f18 -/* 33c54: 4600218d */ trunc.w.s $f6,$f4 -/* 33c58: 440d3000 */ mfc1 $t5,$f6 -/* 33c5c: 00000000 */ sll $zero,$zero,0x0 -/* 33c60: afad0080 */ sw $t5,0x80($sp) -/* 33c64: 8fa40060 */ lw $a0,0x60($sp) -/* 33c68: 00002825 */ or $a1,$zero,$zero -/* 33c6c: 8fa60080 */ lw $a2,0x80($sp) -/* 33c70: 0c00f830 */ jal n_alSynSetVol -/* 33c74: 2484000c */ addiu $a0,$a0,0xc -/* 33c78: 8fac0080 */ lw $t4,0x80($sp) -/* 33c7c: 11800010 */ beqz $t4,.NB00033cc0 -/* 33c80: 00000000 */ sll $zero,$zero,0x0 -/* 33c84: 240b0080 */ addiu $t3,$zero,0x80 -/* 33c88: a7ab0094 */ sh $t3,0x94($sp) -/* 33c8c: 8fae0060 */ lw $t6,0x60($sp) -/* 33c90: afae0098 */ sw $t6,0x98($sp) -/* 33c94: 3c048006 */ lui $a0,0x8006 -/* 33c98: 8c84163c */ lw $a0,0x163c($a0) -/* 33c9c: 27a50094 */ addiu $a1,$sp,0x94 -/* 33ca0: 8fa60080 */ lw $a2,0x80($sp) -/* 33ca4: 00003825 */ or $a3,$zero,$zero -/* 33ca8: 0c00f678 */ jal n_alEvtqPostEvent -/* 33cac: 24840014 */ addiu $a0,$a0,0x14 -/* 33cb0: 8faa0060 */ lw $t2,0x60($sp) -/* 33cb4: 24180002 */ addiu $t8,$zero,0x2 -/* 33cb8: 10000003 */ beqz $zero,.NB00033cc8 -/* 33cbc: a1580045 */ sb $t8,0x45($t2) -.NB00033cc0: -/* 33cc0: 0c00d188 */ jal func00033090 -/* 33cc4: 8fa40060 */ lw $a0,0x60($sp) -.NB00033cc8: -/* 33cc8: 10000007 */ beqz $zero,.NB00033ce8 -/* 33ccc: 00000000 */ sll $zero,$zero,0x0 -.NB00033cd0: -/* 33cd0: 0c00d188 */ jal func00033090 -/* 33cd4: 8fa40060 */ lw $a0,0x60($sp) -/* 33cd8: 10000003 */ beqz $zero,.NB00033ce8 -/* 33cdc: 00000000 */ sll $zero,$zero,0x0 -.NB00033ce0: -/* 33ce0: 10000001 */ beqz $zero,.NB00033ce8 -/* 33ce4: 00000000 */ sll $zero,$zero,0x0 -.NB00033ce8: -/* 33ce8: 8fb900b8 */ lw $t9,0xb8($sp) -/* 33cec: 24010002 */ addiu $at,$zero,0x2 -/* 33cf0: 97290000 */ lhu $t1,0x0($t9) -/* 33cf4: 15210004 */ bne $t1,$at,.NB00033d08 -/* 33cf8: 00000000 */ sll $zero,$zero,0x0 -/* 33cfc: 8fa800b8 */ lw $t0,0xb8($sp) -/* 33d00: 240f1000 */ addiu $t7,$zero,0x1000 -/* 33d04: a50f0000 */ sh $t7,0x0($t0) -.NB00033d08: -/* 33d08: 10000227 */ beqz $zero,.NB000345a8 -/* 33d0c: 00000000 */ sll $zero,$zero,0x0 -/* 33d10: 8fad00b8 */ lw $t5,0xb8($sp) -/* 33d14: 8fab0060 */ lw $t3,0x60($sp) -/* 33d18: 8dac0008 */ lw $t4,0x8($t5) -/* 33d1c: a16c0041 */ sb $t4,0x41($t3) -/* 33d20: 8fae0060 */ lw $t6,0x60($sp) -/* 33d24: 24010001 */ addiu $at,$zero,0x1 -/* 33d28: 91d80045 */ lbu $t8,0x45($t6) -/* 33d2c: 1701001f */ bne $t8,$at,.NB00033dac -/* 33d30: 00000000 */ sll $zero,$zero,0x0 -/* 33d34: 8faa0060 */ lw $t2,0x60($sp) -/* 33d38: 8fa900ac */ lw $t1,0xac($sp) -/* 33d3c: 91590041 */ lbu $t9,0x41($t2) -/* 33d40: 912f000c */ lbu $t7,0xc($t1) -/* 33d44: 032f4021 */ addu $t0,$t9,$t7 -/* 33d48: 250dffc0 */ addiu $t5,$t0,-64 -/* 33d4c: afad0074 */ sw $t5,0x74($sp) -/* 33d50: 8fac0074 */ lw $t4,0x74($sp) -/* 33d54: 19800003 */ blez $t4,.NB00033d64 -/* 33d58: 00000000 */ sll $zero,$zero,0x0 -/* 33d5c: 10000002 */ beqz $zero,.NB00033d68 -/* 33d60: 01808025 */ or $s0,$t4,$zero -.NB00033d64: -/* 33d64: 00008025 */ or $s0,$zero,$zero -.NB00033d68: -/* 33d68: 2a01007f */ slti $at,$s0,0x7f -/* 33d6c: 10200009 */ beqz $at,.NB00033d94 -/* 33d70: 00000000 */ sll $zero,$zero,0x0 -/* 33d74: 8fab0074 */ lw $t3,0x74($sp) -/* 33d78: 19600003 */ blez $t3,.NB00033d88 -/* 33d7c: 00000000 */ sll $zero,$zero,0x0 -/* 33d80: 10000002 */ beqz $zero,.NB00033d8c -/* 33d84: 01608825 */ or $s1,$t3,$zero -.NB00033d88: -/* 33d88: 00008825 */ or $s1,$zero,$zero -.NB00033d8c: -/* 33d8c: 10000003 */ beqz $zero,.NB00033d9c -/* 33d90: a3b100a7 */ sb $s1,0xa7($sp) -.NB00033d94: -/* 33d94: 240e007f */ addiu $t6,$zero,0x7f -/* 33d98: a3ae00a7 */ sb $t6,0xa7($sp) -.NB00033d9c: -/* 33d9c: 8fa40060 */ lw $a0,0x60($sp) -/* 33da0: 93a500a7 */ lbu $a1,0xa7($sp) -/* 33da4: 0c00f8b0 */ jal n_alSynSetPan -/* 33da8: 2484000c */ addiu $a0,$a0,0xc -.NB00033dac: -/* 33dac: 100001fe */ beqz $zero,.NB000345a8 -/* 33db0: 00000000 */ sll $zero,$zero,0x0 -/* 33db4: 8fb800b8 */ lw $t8,0xb8($sp) -/* 33db8: 8faa0060 */ lw $t2,0x60($sp) -/* 33dbc: c7080008 */ lwc1 $f8,0x8($t8) -/* 33dc0: e548002c */ swc1 $f8,0x2c($t2) -/* 33dc4: 8fa90060 */ lw $t1,0x60($sp) -/* 33dc8: 24010001 */ addiu $at,$zero,0x1 -/* 33dcc: 91390045 */ lbu $t9,0x45($t1) -/* 33dd0: 17210010 */ bne $t9,$at,.NB00033e14 -/* 33dd4: 00000000 */ sll $zero,$zero,0x0 -/* 33dd8: 8faf0060 */ lw $t7,0x60($sp) -/* 33ddc: c5ea002c */ lwc1 $f10,0x2c($t7) -/* 33de0: c5f00028 */ lwc1 $f16,0x28($t7) -/* 33de4: 25e4000c */ addiu $a0,$t7,0xc -/* 33de8: 46105482 */ mul.s $f18,$f10,$f16 -/* 33dec: 44059000 */ mfc1 $a1,$f18 -/* 33df0: 0c00f8dc */ jal n_alSynSetPitch -/* 33df4: 00000000 */ sll $zero,$zero,0x0 -/* 33df8: 8fa80060 */ lw $t0,0x60($sp) -/* 33dfc: 910d0044 */ lbu $t5,0x44($t0) -/* 33e00: 31ac0020 */ andi $t4,$t5,0x20 -/* 33e04: 11800003 */ beqz $t4,.NB00033e14 -/* 33e08: 00000000 */ sll $zero,$zero,0x0 -/* 33e0c: 0c00d1a4 */ jal func00033100 -/* 33e10: 8fa40060 */ lw $a0,0x60($sp) -.NB00033e14: -/* 33e14: 100001e4 */ beqz $zero,.NB000345a8 -/* 33e18: 00000000 */ sll $zero,$zero,0x0 -.NB00033e1c: -/* 33e1c: 8fab00b8 */ lw $t3,0xb8($sp) -/* 33e20: 8fb80060 */ lw $t8,0x60($sp) -/* 33e24: 8d6e0008 */ lw $t6,0x8($t3) -/* 33e28: a30e0042 */ sb $t6,0x42($t8) -/* 33e2c: 8faa0060 */ lw $t2,0x60($sp) -/* 33e30: 24010001 */ addiu $at,$zero,0x1 -/* 33e34: 91490045 */ lbu $t1,0x45($t2) -/* 33e38: 15210027 */ bne $t1,$at,.NB00033ed8 -/* 33e3c: 00000000 */ sll $zero,$zero,0x0 -/* 33e40: 8fad00a8 */ lw $t5,0xa8($sp) -/* 33e44: 8fb90060 */ lw $t9,0x60($sp) -/* 33e48: 91ac0003 */ lbu $t4,0x3($t5) -/* 33e4c: 932f0042 */ lbu $t7,0x42($t9) -/* 33e50: 318b000f */ andi $t3,$t4,0xf -/* 33e54: 000b70c0 */ sll $t6,$t3,0x3 -/* 33e58: 31e8007f */ andi $t0,$t7,0x7f -/* 33e5c: 010ec021 */ addu $t8,$t0,$t6 -/* 33e60: afb8007c */ sw $t8,0x7c($sp) -/* 33e64: 8faa007c */ lw $t2,0x7c($sp) -/* 33e68: 05410003 */ bgez $t2,.NB00033e78 -/* 33e6c: 00000000 */ sll $zero,$zero,0x0 -/* 33e70: 10000002 */ beqz $zero,.NB00033e7c -/* 33e74: 00008025 */ or $s0,$zero,$zero -.NB00033e78: -/* 33e78: 8fb0007c */ lw $s0,0x7c($sp) -.NB00033e7c: -/* 33e7c: 2a010080 */ slti $at,$s0,0x80 -/* 33e80: 14200004 */ bnez $at,.NB00033e94 -/* 33e84: 00000000 */ sll $zero,$zero,0x0 -/* 33e88: 2409007f */ addiu $t1,$zero,0x7f -/* 33e8c: 10000008 */ beqz $zero,.NB00033eb0 -/* 33e90: afa9007c */ sw $t1,0x7c($sp) -.NB00033e94: -/* 33e94: 8fb9007c */ lw $t9,0x7c($sp) -/* 33e98: 07210003 */ bgez $t9,.NB00033ea8 -/* 33e9c: 00000000 */ sll $zero,$zero,0x0 -/* 33ea0: 10000002 */ beqz $zero,.NB00033eac -/* 33ea4: 00008825 */ or $s1,$zero,$zero -.NB00033ea8: -/* 33ea8: 8fb1007c */ lw $s1,0x7c($sp) -.NB00033eac: -/* 33eac: afb1007c */ sw $s1,0x7c($sp) -.NB00033eb0: -/* 33eb0: 8fad0060 */ lw $t5,0x60($sp) -/* 33eb4: 8faf007c */ lw $t7,0x7c($sp) -/* 33eb8: 91ac0042 */ lbu $t4,0x42($t5) -/* 33ebc: 318b0080 */ andi $t3,$t4,0x80 -/* 33ec0: 01eb4025 */ or $t0,$t7,$t3 -/* 33ec4: afa8007c */ sw $t0,0x7c($sp) -/* 33ec8: 8fa40060 */ lw $a0,0x60($sp) -/* 33ecc: 8fa5007c */ lw $a1,0x7c($sp) -/* 33ed0: 0c00f908 */ jal n_alSynSetFXMix -/* 33ed4: 2484000c */ addiu $a0,$a0,0xc -.NB00033ed8: -/* 33ed8: 100001b3 */ beqz $zero,.NB000345a8 -/* 33edc: 00000000 */ sll $zero,$zero,0x0 -.NB00033ee0: -/* 33ee0: 8fae0060 */ lw $t6,0x60($sp) -/* 33ee4: 8fb900b8 */ lw $t9,0xb8($sp) -/* 33ee8: 91d80042 */ lbu $t8,0x42($t6) -/* 33eec: 8f2d0008 */ lw $t5,0x8($t9) -/* 33ef0: 330a007f */ andi $t2,$t8,0x7f -/* 33ef4: 31ac0080 */ andi $t4,$t5,0x80 -/* 33ef8: 318f00ff */ andi $t7,$t4,0xff -/* 33efc: 314900ff */ andi $t1,$t2,0xff -/* 33f00: 012f5825 */ or $t3,$t1,$t7 -/* 33f04: a1cb0042 */ sb $t3,0x42($t6) -/* 33f08: 8fa80060 */ lw $t0,0x60($sp) -/* 33f0c: 24010001 */ addiu $at,$zero,0x1 -/* 33f10: 91180045 */ lbu $t8,0x45($t0) -/* 33f14: 17010027 */ bne $t8,$at,.NB00033fb4 -/* 33f18: 00000000 */ sll $zero,$zero,0x0 -/* 33f1c: 8fac00a8 */ lw $t4,0xa8($sp) -/* 33f20: 8faa0060 */ lw $t2,0x60($sp) -/* 33f24: 91890003 */ lbu $t1,0x3($t4) -/* 33f28: 91590042 */ lbu $t9,0x42($t2) -/* 33f2c: 312f000f */ andi $t7,$t1,0xf -/* 33f30: 000f58c0 */ sll $t3,$t7,0x3 -/* 33f34: 332d007f */ andi $t5,$t9,0x7f -/* 33f38: 01ab7021 */ addu $t6,$t5,$t3 -/* 33f3c: afae007c */ sw $t6,0x7c($sp) -/* 33f40: 8fa8007c */ lw $t0,0x7c($sp) -/* 33f44: 05010003 */ bgez $t0,.NB00033f54 -/* 33f48: 00000000 */ sll $zero,$zero,0x0 -/* 33f4c: 10000002 */ beqz $zero,.NB00033f58 -/* 33f50: 00008025 */ or $s0,$zero,$zero -.NB00033f54: -/* 33f54: 8fb0007c */ lw $s0,0x7c($sp) -.NB00033f58: -/* 33f58: 2a010080 */ slti $at,$s0,0x80 -/* 33f5c: 14200004 */ bnez $at,.NB00033f70 -/* 33f60: 00000000 */ sll $zero,$zero,0x0 -/* 33f64: 2418007f */ addiu $t8,$zero,0x7f -/* 33f68: 10000008 */ beqz $zero,.NB00033f8c -/* 33f6c: afb8007c */ sw $t8,0x7c($sp) -.NB00033f70: -/* 33f70: 8faa007c */ lw $t2,0x7c($sp) -/* 33f74: 05410003 */ bgez $t2,.NB00033f84 -/* 33f78: 00000000 */ sll $zero,$zero,0x0 -/* 33f7c: 10000002 */ beqz $zero,.NB00033f88 -/* 33f80: 00008825 */ or $s1,$zero,$zero -.NB00033f84: -/* 33f84: 8fb1007c */ lw $s1,0x7c($sp) -.NB00033f88: -/* 33f88: afb1007c */ sw $s1,0x7c($sp) -.NB00033f8c: -/* 33f8c: 8fac0060 */ lw $t4,0x60($sp) -/* 33f90: 8fb9007c */ lw $t9,0x7c($sp) -/* 33f94: 91890042 */ lbu $t1,0x42($t4) -/* 33f98: 312f0080 */ andi $t7,$t1,0x80 -/* 33f9c: 032f6825 */ or $t5,$t9,$t7 -/* 33fa0: afad007c */ sw $t5,0x7c($sp) -/* 33fa4: 8fa40060 */ lw $a0,0x60($sp) -/* 33fa8: 8fa5007c */ lw $a1,0x7c($sp) -/* 33fac: 0c00f908 */ jal n_alSynSetFXMix -/* 33fb0: 2484000c */ addiu $a0,$a0,0xc -.NB00033fb4: -/* 33fb4: 1000017c */ beqz $zero,.NB000345a8 -/* 33fb8: 00000000 */ sll $zero,$zero,0x0 -.NB00033fbc: -/* 33fbc: 8fab00b8 */ lw $t3,0xb8($sp) -/* 33fc0: 8fa80060 */ lw $t0,0x60($sp) -/* 33fc4: 8d6e0008 */ lw $t6,0x8($t3) -/* 33fc8: a10e0043 */ sb $t6,0x43($t0) -/* 33fcc: 3c0c8006 */ lui $t4,0x8006 -/* 33fd0: 8d8c1624 */ lw $t4,0x1624($t4) -/* 33fd4: 8fb80060 */ lw $t8,0x60($sp) -/* 33fd8: 8d89003c */ lw $t1,0x3c($t4) -/* 33fdc: 930a0043 */ lbu $t2,0x43($t8) -/* 33fe0: 0149082a */ slt $at,$t2,$t1 -/* 33fe4: 14200003 */ bnez $at,.NB00033ff4 -/* 33fe8: 00000000 */ sll $zero,$zero,0x0 -/* 33fec: 8fb90060 */ lw $t9,0x60($sp) -/* 33ff0: a3200043 */ sb $zero,0x43($t9) -.NB00033ff4: -/* 33ff4: 8faf0060 */ lw $t7,0x60($sp) -/* 33ff8: 24010001 */ addiu $at,$zero,0x1 -/* 33ffc: 91ed0045 */ lbu $t5,0x45($t7) -/* 34000: 15a10004 */ bne $t5,$at,.NB00034014 -/* 34004: 00000000 */ sll $zero,$zero,0x0 -/* 34008: 8fab0060 */ lw $t3,0x60($sp) -/* 3400c: 916e0043 */ lbu $t6,0x43($t3) -/* 34010: a56e0024 */ sh $t6,0x24($t3) -.NB00034014: -/* 34014: 10000164 */ beqz $zero,.NB000345a8 -/* 34018: 00000000 */ sll $zero,$zero,0x0 -/* 3401c: 8fa800b8 */ lw $t0,0xb8($sp) -/* 34020: 8fac0060 */ lw $t4,0x60($sp) -/* 34024: 8d180008 */ lw $t8,0x8($t0) -/* 34028: a5980038 */ sh $t8,0x38($t4) -/* 3402c: 8faa0060 */ lw $t2,0x60($sp) -/* 34030: 24010001 */ addiu $at,$zero,0x1 -/* 34034: 91490045 */ lbu $t1,0x45($t2) -/* 34038: 1521005d */ bne $t1,$at,.NB000341b0 -/* 3403c: 00000000 */ sll $zero,$zero,0x0 -/* 34040: 8fac0060 */ lw $t4,0x60($sp) -/* 34044: 8faf00a8 */ lw $t7,0xa8($sp) -/* 34048: 3c19800a */ lui $t9,0x800a -/* 3404c: 858a003a */ lh $t2,0x3a($t4) -/* 34050: 85890038 */ lh $t1,0x38($t4) -/* 34054: 91ed0002 */ lbu $t5,0x2($t7) -/* 34058: 8f390a34 */ lw $t9,0xa34($t9) -/* 3405c: 01490019 */ multu $t2,$t1 -/* 34060: 31ae001f */ andi $t6,$t5,0x1f -/* 34064: 8fad00ac */ lw $t5,0xac($sp) -/* 34068: 000e5840 */ sll $t3,$t6,0x1 -/* 3406c: 032b4021 */ addu $t0,$t9,$t3 -/* 34070: 91ae000d */ lbu $t6,0xd($t5) -/* 34074: 24013f01 */ addiu $at,$zero,0x3f01 -/* 34078: 85180000 */ lh $t8,0x0($t0) -/* 3407c: 00007812 */ mflo $t7 -/* 34080: 00000000 */ sll $zero,$zero,0x0 -/* 34084: 00000000 */ sll $zero,$zero,0x0 -/* 34088: 01ee0019 */ multu $t7,$t6 -/* 3408c: 0000c812 */ mflo $t9 -/* 34090: 00000000 */ sll $zero,$zero,0x0 -/* 34094: 00000000 */ sll $zero,$zero,0x0 -/* 34098: 0321001a */ div $zero,$t9,$at -/* 3409c: 00005812 */ mflo $t3 -/* 340a0: 24017fff */ addiu $at,$zero,0x7fff -/* 340a4: 00000000 */ sll $zero,$zero,0x0 -/* 340a8: 030b0019 */ multu $t8,$t3 -/* 340ac: 00004012 */ mflo $t0 -/* 340b0: 00000000 */ sll $zero,$zero,0x0 -/* 340b4: 00000000 */ sll $zero,$zero,0x0 -/* 340b8: 0101001a */ div $zero,$t0,$at -/* 340bc: 00006012 */ mflo $t4 -/* 340c0: 1d800003 */ bgtz $t4,.NB000340d0 -/* 340c4: 00000000 */ sll $zero,$zero,0x0 -/* 340c8: 10000023 */ beqz $zero,.NB00034158 -/* 340cc: afa00078 */ sw $zero,0x78($sp) -.NB000340d0: -/* 340d0: 8fab0060 */ lw $t3,0x60($sp) -/* 340d4: 8fa900a8 */ lw $t1,0xa8($sp) -/* 340d8: 3c0a800a */ lui $t2,0x800a -/* 340dc: 8568003a */ lh $t0,0x3a($t3) -/* 340e0: 856c0038 */ lh $t4,0x38($t3) -/* 340e4: 912d0002 */ lbu $t5,0x2($t1) -/* 340e8: 8d4a0a34 */ lw $t2,0xa34($t2) -/* 340ec: 010c0019 */ multu $t0,$t4 -/* 340f0: 31af001f */ andi $t7,$t5,0x1f -/* 340f4: 8fad00ac */ lw $t5,0xac($sp) -/* 340f8: 000f7040 */ sll $t6,$t7,0x1 -/* 340fc: 014ec821 */ addu $t9,$t2,$t6 -/* 34100: 91af000d */ lbu $t7,0xd($t5) -/* 34104: 24013f01 */ addiu $at,$zero,0x3f01 -/* 34108: 87380000 */ lh $t8,0x0($t9) -/* 3410c: 00004812 */ mflo $t1 -/* 34110: 00000000 */ sll $zero,$zero,0x0 -/* 34114: 00000000 */ sll $zero,$zero,0x0 -/* 34118: 012f0019 */ multu $t1,$t7 -/* 3411c: 00005012 */ mflo $t2 -/* 34120: 00000000 */ sll $zero,$zero,0x0 -/* 34124: 00000000 */ sll $zero,$zero,0x0 -/* 34128: 0141001a */ div $zero,$t2,$at -/* 3412c: 00007012 */ mflo $t6 -/* 34130: 24017fff */ addiu $at,$zero,0x7fff -/* 34134: 00000000 */ sll $zero,$zero,0x0 -/* 34138: 030e0019 */ multu $t8,$t6 -/* 3413c: 0000c812 */ mflo $t9 -/* 34140: 00000000 */ sll $zero,$zero,0x0 -/* 34144: 00000000 */ sll $zero,$zero,0x0 -/* 34148: 0321001a */ div $zero,$t9,$at -/* 3414c: 00005812 */ mflo $t3 -/* 34150: 2568ffff */ addiu $t0,$t3,-1 -/* 34154: afa80078 */ sw $t0,0x78($sp) -.NB00034158: -/* 34158: 3c098006 */ lui $t1,0x8006 -/* 3415c: 8d29163c */ lw $t1,0x163c($t1) -/* 34160: 8fac0060 */ lw $t4,0x60($sp) -/* 34164: 8d2f0050 */ lw $t7,0x50($t1) -/* 34168: 8d8d003c */ lw $t5,0x3c($t4) -/* 3416c: 01af5023 */ subu $t2,$t5,$t7 -/* 34170: 294103e8 */ slti $at,$t2,0x3e8 -/* 34174: 10200003 */ beqz $at,.NB00034184 -/* 34178: 00000000 */ sll $zero,$zero,0x0 -/* 3417c: 10000007 */ beqz $zero,.NB0003419c -/* 34180: 241003e8 */ addiu $s0,$zero,0x3e8 -.NB00034184: -/* 34184: 3c198006 */ lui $t9,0x8006 -/* 34188: 8f39163c */ lw $t9,0x163c($t9) -/* 3418c: 8fb80060 */ lw $t8,0x60($sp) -/* 34190: 8f2b0050 */ lw $t3,0x50($t9) -/* 34194: 8f0e003c */ lw $t6,0x3c($t8) -/* 34198: 01cb8023 */ subu $s0,$t6,$t3 -.NB0003419c: -/* 3419c: 8fa40060 */ lw $a0,0x60($sp) -/* 341a0: 8fa50078 */ lw $a1,0x78($sp) -/* 341a4: 02003025 */ or $a2,$s0,$zero -/* 341a8: 0c00f830 */ jal n_alSynSetVol -/* 341ac: 2484000c */ addiu $a0,$a0,0xc -.NB000341b0: -/* 341b0: 100000fd */ beqz $zero,.NB000345a8 -/* 341b4: 00000000 */ sll $zero,$zero,0x0 -.NB000341b8: -/* 341b8: 8fa80060 */ lw $t0,0x60($sp) -/* 341bc: 24010001 */ addiu $at,$zero,0x1 -/* 341c0: 910c0045 */ lbu $t4,0x45($t0) -/* 341c4: 1581005b */ bne $t4,$at,.NB00034334 -/* 341c8: 00000000 */ sll $zero,$zero,0x0 -/* 341cc: 8fa900ac */ lw $t1,0xac($sp) -/* 341d0: 8faa0060 */ lw $t2,0x60($sp) -/* 341d4: 8d2d0000 */ lw $t5,0x0($t1) -/* 341d8: c5480028 */ lwc1 $f8,0x28($t2) -/* 341dc: c550002c */ lwc1 $f16,0x2c($t2) -/* 341e0: 8daf0008 */ lw $t7,0x8($t5) -/* 341e4: 448f2000 */ mtc1 $t7,$f4 -/* 341e8: 00000000 */ sll $zero,$zero,0x0 -/* 341ec: 468021a0 */ cvt.s.w $f6,$f4 -/* 341f0: 46083283 */ div.s $f10,$f6,$f8 -/* 341f4: 46105483 */ div.s $f18,$f10,$f16 -/* 341f8: 4600910d */ trunc.w.s $f4,$f18 -/* 341fc: 44192000 */ mfc1 $t9,$f4 -/* 34200: 00000000 */ sll $zero,$zero,0x0 -/* 34204: afb90080 */ sw $t9,0x80($sp) -/* 34208: 8faa0060 */ lw $t2,0x60($sp) -/* 3420c: 8fab00a8 */ lw $t3,0xa8($sp) -/* 34210: 3c0e800a */ lui $t6,0x800a -/* 34214: 8558003a */ lh $t8,0x3a($t2) -/* 34218: 85590038 */ lh $t9,0x38($t2) -/* 3421c: 91680002 */ lbu $t0,0x2($t3) -/* 34220: 8dce0a34 */ lw $t6,0xa34($t6) -/* 34224: 03190019 */ multu $t8,$t9 -/* 34228: 310c001f */ andi $t4,$t0,0x1f -/* 3422c: 8fa800ac */ lw $t0,0xac($sp) -/* 34230: 000c4840 */ sll $t1,$t4,0x1 -/* 34234: 01c96821 */ addu $t5,$t6,$t1 -/* 34238: 910c000d */ lbu $t4,0xd($t0) -/* 3423c: 24013f01 */ addiu $at,$zero,0x3f01 -/* 34240: 85af0000 */ lh $t7,0x0($t5) -/* 34244: 00005812 */ mflo $t3 -/* 34248: 00000000 */ sll $zero,$zero,0x0 -/* 3424c: 00000000 */ sll $zero,$zero,0x0 -/* 34250: 016c0019 */ multu $t3,$t4 -/* 34254: 00007012 */ mflo $t6 -/* 34258: 00000000 */ sll $zero,$zero,0x0 -/* 3425c: 00000000 */ sll $zero,$zero,0x0 -/* 34260: 01c1001a */ div $zero,$t6,$at -/* 34264: 00004812 */ mflo $t1 -/* 34268: 24017fff */ addiu $at,$zero,0x7fff -/* 3426c: 00000000 */ sll $zero,$zero,0x0 -/* 34270: 01e90019 */ multu $t7,$t1 -/* 34274: 00006812 */ mflo $t5 -/* 34278: 00000000 */ sll $zero,$zero,0x0 -/* 3427c: 00000000 */ sll $zero,$zero,0x0 -/* 34280: 01a1001a */ div $zero,$t5,$at -/* 34284: 00005012 */ mflo $t2 -/* 34288: 1d400003 */ bgtz $t2,.NB00034298 -/* 3428c: 00000000 */ sll $zero,$zero,0x0 -/* 34290: 10000023 */ beqz $zero,.NB00034320 -/* 34294: afa00078 */ sw $zero,0x78($sp) -.NB00034298: -/* 34298: 8fa90060 */ lw $t1,0x60($sp) -/* 3429c: 8fb900a8 */ lw $t9,0xa8($sp) -/* 342a0: 3c18800a */ lui $t8,0x800a -/* 342a4: 852d003a */ lh $t5,0x3a($t1) -/* 342a8: 852a0038 */ lh $t2,0x38($t1) -/* 342ac: 93280002 */ lbu $t0,0x2($t9) -/* 342b0: 8f180a34 */ lw $t8,0xa34($t8) -/* 342b4: 01aa0019 */ multu $t5,$t2 -/* 342b8: 310b001f */ andi $t3,$t0,0x1f -/* 342bc: 8fa800ac */ lw $t0,0xac($sp) -/* 342c0: 000b6040 */ sll $t4,$t3,0x1 -/* 342c4: 030c7021 */ addu $t6,$t8,$t4 -/* 342c8: 910b000d */ lbu $t3,0xd($t0) -/* 342cc: 24013f01 */ addiu $at,$zero,0x3f01 -/* 342d0: 85cf0000 */ lh $t7,0x0($t6) -/* 342d4: 0000c812 */ mflo $t9 -/* 342d8: 00000000 */ sll $zero,$zero,0x0 -/* 342dc: 00000000 */ sll $zero,$zero,0x0 -/* 342e0: 032b0019 */ multu $t9,$t3 -/* 342e4: 0000c012 */ mflo $t8 -/* 342e8: 00000000 */ sll $zero,$zero,0x0 -/* 342ec: 00000000 */ sll $zero,$zero,0x0 -/* 342f0: 0301001a */ div $zero,$t8,$at -/* 342f4: 00006012 */ mflo $t4 -/* 342f8: 24017fff */ addiu $at,$zero,0x7fff -/* 342fc: 00000000 */ sll $zero,$zero,0x0 -/* 34300: 01ec0019 */ multu $t7,$t4 -/* 34304: 00007012 */ mflo $t6 -/* 34308: 00000000 */ sll $zero,$zero,0x0 -/* 3430c: 00000000 */ sll $zero,$zero,0x0 -/* 34310: 01c1001a */ div $zero,$t6,$at -/* 34314: 00004812 */ mflo $t1 -/* 34318: 252dffff */ addiu $t5,$t1,-1 -/* 3431c: afad0078 */ sw $t5,0x78($sp) -.NB00034320: -/* 34320: 8fa40060 */ lw $a0,0x60($sp) -/* 34324: 8fa50078 */ lw $a1,0x78($sp) -/* 34328: 8fa60080 */ lw $a2,0x80($sp) -/* 3432c: 0c00f830 */ jal n_alSynSetVol -/* 34330: 2484000c */ addiu $a0,$a0,0xc -.NB00034334: -/* 34334: 1000009c */ beqz $zero,.NB000345a8 -/* 34338: 00000000 */ sll $zero,$zero,0x0 -.NB0003433c: -/* 3433c: 8faa0060 */ lw $t2,0x60($sp) -/* 34340: 91480044 */ lbu $t0,0x44($t2) -/* 34344: 31190002 */ andi $t9,$t0,0x2 -/* 34348: 17200079 */ bnez $t9,.NB00034530 -/* 3434c: 00000000 */ sll $zero,$zero,0x0 -/* 34350: 8fab00ac */ lw $t3,0xac($sp) -/* 34354: 8fac0060 */ lw $t4,0x60($sp) -/* 34358: 8d780000 */ lw $t8,0x0($t3) -/* 3435c: 930f000d */ lbu $t7,0xd($t8) -/* 34360: a58f003a */ sh $t7,0x3a($t4) -/* 34364: 8fb80060 */ lw $t8,0x60($sp) -/* 34368: 8fa900a8 */ lw $t1,0xa8($sp) -/* 3436c: 3c0e800a */ lui $t6,0x800a -/* 34370: 870f003a */ lh $t7,0x3a($t8) -/* 34374: 870c0038 */ lh $t4,0x38($t8) -/* 34378: 912d0002 */ lbu $t5,0x2($t1) -/* 3437c: 8dce0a34 */ lw $t6,0xa34($t6) -/* 34380: 01ec0019 */ multu $t7,$t4 -/* 34384: 31aa001f */ andi $t2,$t5,0x1f -/* 34388: 8fad00ac */ lw $t5,0xac($sp) -/* 3438c: 000a4040 */ sll $t0,$t2,0x1 -/* 34390: 01c8c821 */ addu $t9,$t6,$t0 -/* 34394: 91aa000d */ lbu $t2,0xd($t5) -/* 34398: 24013f01 */ addiu $at,$zero,0x3f01 -/* 3439c: 872b0000 */ lh $t3,0x0($t9) -/* 343a0: 00004812 */ mflo $t1 -/* 343a4: 00000000 */ sll $zero,$zero,0x0 -/* 343a8: 00000000 */ sll $zero,$zero,0x0 -/* 343ac: 012a0019 */ multu $t1,$t2 -/* 343b0: 00007012 */ mflo $t6 -/* 343b4: 00000000 */ sll $zero,$zero,0x0 -/* 343b8: 00000000 */ sll $zero,$zero,0x0 -/* 343bc: 01c1001a */ div $zero,$t6,$at -/* 343c0: 00004012 */ mflo $t0 -/* 343c4: 24017fff */ addiu $at,$zero,0x7fff -/* 343c8: 00000000 */ sll $zero,$zero,0x0 -/* 343cc: 01680019 */ multu $t3,$t0 -/* 343d0: 0000c812 */ mflo $t9 -/* 343d4: 00000000 */ sll $zero,$zero,0x0 -/* 343d8: 00000000 */ sll $zero,$zero,0x0 -/* 343dc: 0321001a */ div $zero,$t9,$at -/* 343e0: 0000c012 */ mflo $t8 -/* 343e4: 1f000003 */ bgtz $t8,.NB000343f4 -/* 343e8: 00000000 */ sll $zero,$zero,0x0 -/* 343ec: 10000023 */ beqz $zero,.NB0003447c -/* 343f0: afa00078 */ sw $zero,0x78($sp) -.NB000343f4: -/* 343f4: 8fa80060 */ lw $t0,0x60($sp) -/* 343f8: 8fac00a8 */ lw $t4,0xa8($sp) -/* 343fc: 3c0f800a */ lui $t7,0x800a -/* 34400: 8519003a */ lh $t9,0x3a($t0) -/* 34404: 85180038 */ lh $t8,0x38($t0) -/* 34408: 918d0002 */ lbu $t5,0x2($t4) -/* 3440c: 8def0a34 */ lw $t7,0xa34($t7) -/* 34410: 03380019 */ multu $t9,$t8 -/* 34414: 31a9001f */ andi $t1,$t5,0x1f -/* 34418: 8fad00ac */ lw $t5,0xac($sp) -/* 3441c: 00095040 */ sll $t2,$t1,0x1 -/* 34420: 01ea7021 */ addu $t6,$t7,$t2 -/* 34424: 91a9000d */ lbu $t1,0xd($t5) -/* 34428: 24013f01 */ addiu $at,$zero,0x3f01 -/* 3442c: 85cb0000 */ lh $t3,0x0($t6) -/* 34430: 00006012 */ mflo $t4 -/* 34434: 00000000 */ sll $zero,$zero,0x0 -/* 34438: 00000000 */ sll $zero,$zero,0x0 -/* 3443c: 01890019 */ multu $t4,$t1 -/* 34440: 00007812 */ mflo $t7 -/* 34444: 00000000 */ sll $zero,$zero,0x0 -/* 34448: 00000000 */ sll $zero,$zero,0x0 -/* 3444c: 01e1001a */ div $zero,$t7,$at -/* 34450: 00005012 */ mflo $t2 -/* 34454: 24017fff */ addiu $at,$zero,0x7fff -/* 34458: 00000000 */ sll $zero,$zero,0x0 -/* 3445c: 016a0019 */ multu $t3,$t2 -/* 34460: 00007012 */ mflo $t6 -/* 34464: 00000000 */ sll $zero,$zero,0x0 -/* 34468: 00000000 */ sll $zero,$zero,0x0 -/* 3446c: 01c1001a */ div $zero,$t6,$at -/* 34470: 00004012 */ mflo $t0 -/* 34474: 2519ffff */ addiu $t9,$t0,-1 -/* 34478: afb90078 */ sw $t9,0x78($sp) -.NB0003447c: -/* 3447c: 8fb800ac */ lw $t8,0xac($sp) -/* 34480: 8fa90060 */ lw $t1,0x60($sp) -/* 34484: 8f0d0000 */ lw $t5,0x0($t8) -/* 34488: c52a0028 */ lwc1 $f10,0x28($t1) -/* 3448c: c532002c */ lwc1 $f18,0x2c($t1) -/* 34490: 8dac0004 */ lw $t4,0x4($t5) -/* 34494: 448c3000 */ mtc1 $t4,$f6 -/* 34498: 00000000 */ sll $zero,$zero,0x0 -/* 3449c: 46803220 */ cvt.s.w $f8,$f6 -/* 344a0: 460a4403 */ div.s $f16,$f8,$f10 -/* 344a4: 46128103 */ div.s $f4,$f16,$f18 -/* 344a8: 4600218d */ trunc.w.s $f6,$f4 -/* 344ac: 440b3000 */ mfc1 $t3,$f6 -/* 344b0: 00000000 */ sll $zero,$zero,0x0 -/* 344b4: afab0080 */ sw $t3,0x80($sp) -/* 344b8: 3c0a8006 */ lui $t2,0x8006 -/* 344bc: 8d4a163c */ lw $t2,0x163c($t2) -/* 344c0: 8fa80080 */ lw $t0,0x80($sp) -/* 344c4: 8fb80060 */ lw $t8,0x60($sp) -/* 344c8: 8d4e0050 */ lw $t6,0x50($t2) -/* 344cc: 01c8c821 */ addu $t9,$t6,$t0 -/* 344d0: af19003c */ sw $t9,0x3c($t8) -/* 344d4: 8fa40060 */ lw $a0,0x60($sp) -/* 344d8: 8fa50078 */ lw $a1,0x78($sp) -/* 344dc: 8fa60080 */ lw $a2,0x80($sp) -/* 344e0: 0c00f830 */ jal n_alSynSetVol -/* 344e4: 2484000c */ addiu $a0,$a0,0xc -/* 344e8: 240d0002 */ addiu $t5,$zero,0x2 -/* 344ec: a7ad0094 */ sh $t5,0x94($sp) -/* 344f0: 8fac0060 */ lw $t4,0x60($sp) -/* 344f4: afac0098 */ sw $t4,0x98($sp) -/* 344f8: 3c048006 */ lui $a0,0x8006 -/* 344fc: 8c84163c */ lw $a0,0x163c($a0) -/* 34500: 27a50094 */ addiu $a1,$sp,0x94 -/* 34504: 8fa60080 */ lw $a2,0x80($sp) -/* 34508: 00003825 */ or $a3,$zero,$zero -/* 3450c: 0c00f678 */ jal n_alEvtqPostEvent -/* 34510: 24840014 */ addiu $a0,$a0,0x14 -/* 34514: 8fa90060 */ lw $t1,0x60($sp) -/* 34518: 912f0044 */ lbu $t7,0x44($t1) -/* 3451c: 31eb0020 */ andi $t3,$t7,0x20 -/* 34520: 11600003 */ beqz $t3,.NB00034530 -/* 34524: 00000000 */ sll $zero,$zero,0x0 -/* 34528: 0c00d1a4 */ jal func00033100 -/* 3452c: 8fa40060 */ lw $a0,0x60($sp) -.NB00034530: -/* 34530: 1000001d */ beqz $zero,.NB000345a8 -/* 34534: 00000000 */ sll $zero,$zero,0x0 -.NB00034538: -/* 34538: 0c00d188 */ jal func00033090 -/* 3453c: 8fa40060 */ lw $a0,0x60($sp) -/* 34540: 10000019 */ beqz $zero,.NB000345a8 -/* 34544: 00000000 */ sll $zero,$zero,0x0 -.NB00034548: -/* 34548: 8faa0060 */ lw $t2,0x60($sp) -/* 3454c: 914e0044 */ lbu $t6,0x44($t2) -/* 34550: 31c80010 */ andi $t0,$t6,0x10 -/* 34554: 11000010 */ beqz $t0,.NB00034598 -/* 34558: 00000000 */ sll $zero,$zero,0x0 -/* 3455c: 8fb80060 */ lw $t8,0x60($sp) -/* 34560: 8fb900b8 */ lw $t9,0xb8($sp) -/* 34564: c708002c */ lwc1 $f8,0x2c($t8) -/* 34568: 87060038 */ lh $a2,0x38($t8) -/* 3456c: 93070041 */ lbu $a3,0x41($t8) -/* 34570: 8f24000c */ lw $a0,0xc($t9) -/* 34574: 8f250008 */ lw $a1,0x8($t9) -/* 34578: e7a80010 */ swc1 $f8,0x10($sp) -/* 3457c: 930d0042 */ lbu $t5,0x42($t8) -/* 34580: afad0014 */ sw $t5,0x14($sp) -/* 34584: 930c0043 */ lbu $t4,0x43($t8) -/* 34588: afac0018 */ sw $t4,0x18($sp) -/* 3458c: 8f090030 */ lw $t1,0x30($t8) -/* 34590: 0c00d36c */ jal func00033820 -/* 34594: afa9001c */ sw $t1,0x1c($sp) -.NB00034598: -/* 34598: 10000003 */ beqz $zero,.NB000345a8 -/* 3459c: 00000000 */ sll $zero,$zero,0x0 -.NB000345a0: -/* 345a0: 10000001 */ beqz $zero,.NB000345a8 -/* 345a4: 00000000 */ sll $zero,$zero,0x0 -.NB000345a8: -/* 345a8: 8faf00b8 */ lw $t7,0xb8($sp) -/* 345ac: 95eb0000 */ lhu $t3,0x0($t7) -/* 345b0: 316a02d1 */ andi $t2,$t3,0x2d1 -/* 345b4: afaa006c */ sw $t2,0x6c($sp) -/* 345b8: 8fae005c */ lw $t6,0x5c($sp) -/* 345bc: 11c00008 */ beqz $t6,.NB000345e0 -/* 345c0: afae0060 */ sw $t6,0x60($sp) -/* 345c4: 8fa8006c */ lw $t0,0x6c($sp) -/* 345c8: 15000005 */ bnez $t0,.NB000345e0 -/* 345cc: 00000000 */ sll $zero,$zero,0x0 -/* 345d0: 8fb90060 */ lw $t9,0x60($sp) -/* 345d4: 932d0044 */ lbu $t5,0x44($t9) -/* 345d8: 31ac0001 */ andi $t4,$t5,0x1 -/* 345dc: afac0068 */ sw $t4,0x68($sp) -.NB000345e0: -/* 345e0: 8fb80068 */ lw $t8,0x68($sp) -/* 345e4: 17000007 */ bnez $t8,.NB00034604 -/* 345e8: 00000000 */ sll $zero,$zero,0x0 -/* 345ec: 8fa90060 */ lw $t1,0x60($sp) -/* 345f0: 11200004 */ beqz $t1,.NB00034604 -/* 345f4: 00000000 */ sll $zero,$zero,0x0 -/* 345f8: 8faf006c */ lw $t7,0x6c($sp) -/* 345fc: 11e0fb27 */ beqz $t7,.NB0003329c -/* 34600: 00000000 */ sll $zero,$zero,0x0 -.NB00034604: -/* 34604: 10000001 */ beqz $zero,.NB0003460c -/* 34608: 00000000 */ sll $zero,$zero,0x0 -.NB0003460c: -/* 3460c: 8fbf0034 */ lw $ra,0x34($sp) -/* 34610: 8fb0002c */ lw $s0,0x2c($sp) -/* 34614: 8fb10030 */ lw $s1,0x30($sp) -/* 34618: 03e00008 */ jr $ra -/* 3461c: 27bd00b8 */ addiu $sp,$sp,0xb8 -); + // This is the same as above, but delta is calculated later + state->flags |= SNDSTATEFLAG_04; + state->envvol = sound->envelope->attackVolume; + state->fxbus = config.fxBus; + delta = sound->envelope->attackTime / state->pitch / state->basepitch; + state->endtime = g_SndPlayer->curTime + delta; #endif + vol = MAX(0, (var8009c334[keymap->keyMin & 0x1f] * (state->envvol * state->vol * sound->sampleVolume / 0x3f01)) / 0x7fff - 1); + tmppan = state->pan + sound->samplePan - AL_PAN_CENTER; + pan = MIN(MAX(tmppan, 0), 127); + + fxmix = (state->fxmix & 0x7f) + (keymap->keyMax & 0xf) * 8; + fxmix = MIN(127, MAX(0, fxmix)); + fxmix |= state->fxmix & 0x80; + + n_alSynStartVoiceParams(&state->voice, sound->wavetable, state->pitch * state->basepitch, vol, pan, fxmix, 0, 0, 0, delta); + state->state = AL_PLAYING; + var8005f130++; + + if ((state->flags & SNDSTATEFLAG_02) == 0) { + if (delta == 0) { + state->envvol = sound->envelope->decayVolume; + + vol = MAX(0, (var8009c334[keymap->keyMin & 0x1f] * (state->envvol * state->vol * sound->sampleVolume / 0x3f01)) / 0x7fff - 1); + + delta = sound->envelope->decayTime / state->basepitch / state->pitch; + +#if VERSION >= VERSION_NTSC_1_0 + if (delta > 5500000) { + func00033090(state); + return; + } +#endif + + state->endtime = g_SndPlayer->curTime + delta; + + n_alSynSetVol(&state->voice, vol, delta); + + sp94.common.type = AL_SNDP_STOP_EVT; + sp94.common.state = (N_ALSoundState *)state; + + n_alEvtqPostEvent(&g_SndPlayer->evtq, &sp94.msg, delta, 0); + + if (state->flags & SNDSTATEFLAG_20) { + func00033100(state); + } + } else { + sp94.common.type = AL_SNDP_DECAY_EVT; + sp94.common.state = (N_ALSoundState *)state; + delta = sound->envelope->attackTime / state->pitch / state->basepitch; + +#if VERSION >= VERSION_NTSC_1_0 + if (delta > 5500000) { + func00033090(state); + return; + } +#endif + + n_alEvtqPostEvent(&g_SndPlayer->evtq, &sp94.msg, delta, 0); + } + } + break; + case AL_SNDP_STOP_EVT: + case AL_SNDP_0400_EVT: + case AL_SNDP_1000_EVT: + if (event->common.type != AL_SNDP_1000_EVT || (state->flags & SNDSTATEFLAG_02)) { + switch (state->state) { + case AL_PLAYING: + _removeEvents(&g_SndPlayer->evtq, (N_ALSoundState *)state, AL_SNDP_DECAY_EVT); + delta = sound->envelope->releaseTime / state->basepitch / state->pitch; + +#if VERSION >= VERSION_NTSC_1_0 + if (delta > 5500000) { + func00033090(state); + break; + } +#endif + + n_alSynSetVol(&state->voice, 0, delta); + + if (delta) { + sp94.common.type = AL_SNDP_END_EVT; + sp94.common.state = (N_ALSoundState *)state; + n_alEvtqPostEvent(&g_SndPlayer->evtq, &sp94.msg, delta, 0); + state->state = AL_STOPPING; + } else { + func00033090(state); + } + break; + case AL_STATE4: + case AL_STATE5: + func00033090(state); + break; + default: + break; + } + + if (event->common.type == AL_SNDP_STOP_EVT) { + event->common.type = AL_SNDP_1000_EVT; + } + } + break; + case AL_SNDP_PAN_EVT: + state->pan = event->common.unk08; + + if (state->state == AL_PLAYING) { + tmppan = state->pan - AL_PAN_CENTER + sound->samplePan; + pan = MIN(MAX(tmppan, 0), 127); + + n_alSynSetPan(&state->voice, pan); + } + break; + case AL_SNDP_PITCH_EVT: + state->pitch = event->pitch.pitch; + + if (state->state == AL_PLAYING) { + n_alSynSetPitch(&state->voice, state->pitch * state->basepitch); + + if (state->flags & SNDSTATEFLAG_20) { + func00033100(state); + } + } + break; + case AL_SNDP_FX_EVT: + state->fxmix = event->common.unk08; + + if (state->state == AL_PLAYING) { + fxmix = (state->fxmix & 0x7f) + (keymap->keyMax & 0xf) * 8; + fxmix = MIN(127, MAX(0, fxmix)); + fxmix |= state->fxmix & 0x80; + + n_alSynSetFXMix(&state->voice, fxmix); + } + break; + case AL_SNDP_4000_EVT: + state->fxmix = (u8)(state->fxmix & 0x7f) | (u8)(event->common.unk08 & 0x80); + + if (state->state == AL_PLAYING) { + fxmix = (state->fxmix & 0x7f) + (keymap->keyMax & 0xf) * 8; + fxmix = MIN(127, MAX(0, fxmix)); + fxmix |= state->fxmix & 0x80; + + n_alSynSetFXMix(&state->voice, fxmix); + } + break; + case AL_SNDP_FXBUS_EVT: + state->fxbus = event->common.unk08; + + if (state->fxbus >= n_syn->maxAuxBusses) { + state->fxbus = 0; + } + + if (state->state == AL_PLAYING) { + state->voice.fxBus = state->fxbus; + } + break; + case AL_SNDP_VOL_EVT: + state->vol = event->common.unk08; + + if (state->state == AL_PLAYING) { + vol = MAX(0, (var8009c334[keymap->keyMin & 0x1f] * (state->envvol * state->vol * sound->sampleVolume / 0x3f01)) / 0x7fff - 1); + + n_alSynSetVol(&state->voice, vol, MAX(1000, state->endtime - g_SndPlayer->curTime)); + } + break; + case AL_SNDP_0800_EVT: + if (state->state == AL_PLAYING) { + delta = sound->envelope->releaseTime / state->basepitch / state->pitch; + +#if VERSION >= VERSION_NTSC_1_0 + if (delta > 5500000) { + func00033090(state); + break; + } +#endif + + vol = MAX(0, var8009c334[keymap->keyMin & 0x1f] * (state->envvol * state->vol * sound->sampleVolume / 0x3f01) / 0x7fff - 1); + + n_alSynSetVol(&state->voice, vol, delta); + } + break; + case AL_SNDP_DECAY_EVT: + if ((state->flags & SNDSTATEFLAG_02) == 0) { + state->envvol = sound->envelope->decayVolume; + vol = MAX(0, var8009c334[keymap->keyMin & 0x1f] * (state->envvol * state->vol * sound->sampleVolume / 0x3f01) / 0x7fff - 1); + delta = sound->envelope->decayTime / state->basepitch / state->pitch; + +#if VERSION >= VERSION_NTSC_1_0 + if (delta > 5500000) { + func00033090(state); + break; + } +#endif + + state->endtime = g_SndPlayer->curTime + delta; + + n_alSynSetVol(&state->voice, vol, delta); + + sp94.common.type = AL_SNDP_STOP_EVT; + sp94.common.state = (N_ALSoundState *)state; + + n_alEvtqPostEvent(&g_SndPlayer->evtq, &sp94.msg, delta, 0); + + if (state->flags & SNDSTATEFLAG_20) { + func00033100(state); + } + } + break; + case AL_SNDP_END_EVT: + func00033090(state); + break; + case AL_SNDP_0200_EVT: + if (state->flags & SNDSTATEFLAG_10) { + func00033820(event->msg.msg.generic.data2, event->msg.msg.generic.data, state->vol, state->pan, + state->pitch, state->fxmix, state->fxbus, state->unk30); + } + break; + default: + break; + } + + isspecial = event->common.type & (AL_SNDP_PLAY_EVT + | AL_SNDP_PITCH_EVT + | AL_SNDP_DECAY_EVT + | AL_SNDP_END_EVT + | AL_SNDP_0200_EVT); + + if ((state = nextstate) && !isspecial) { + done = state->flags & SNDSTATEFLAG_01; + } + } while (!done && state && !isspecial); +} + void func00033090(struct sndstate *state) { if (state->flags & SNDSTATEFLAG_04) { @@ -3119,14 +577,14 @@ void func00033378(void *fn) var8005f13c = fn; } -struct sndstate *func00033390(s32 arg0, struct sndstate_08 *arg1) +struct sndstate *func00033390(s32 arg0, ALSound *sound) { struct sndstate *state; - struct sndstate_08_04 *sp20; + ALKeyMap *keymap; OSIntMask mask; s32 sp18; - sp20 = arg1->unk04; + keymap = sound->keyMap; if (++var8005f134 > var8005f138) { var8005f138 = var8005f134; @@ -3157,32 +615,32 @@ struct sndstate *func00033390(s32 arg0, struct sndstate_08 *arg1) osSetIntMask(mask); - sp18 = arg1->unk00->unk04 + 1 == 0; + sp18 = sound->envelope->decayTime + 1 == 0; - state->unk08 = arg1; - state->unk40 = sp18 + 0x40; - state->playing = 5; - state->unk2c = 1; + state->sound = sound; + state->priority = sp18 + 64; + state->state = AL_STATE5; + state->pitch = 1; state->unk34 = 2; - state->flags = sp20->unk03 & 0xf0; - state->unk30 = 0; + state->flags = keymap->keyMax & 0xf0; + state->unk30 = NULL; if (state->flags & SNDSTATEFLAG_20) { - state->unk28 = alCents2Ratio(sp20->unk04 * 100 - 6000); + state->basepitch = alCents2Ratio(keymap->keyBase * 100 - 6000); } else { - state->unk28 = alCents2Ratio(sp20->unk04 * 100 + sp20->unk05 - 6000); + state->basepitch = alCents2Ratio(keymap->keyBase * 100 + keymap->detune - 6000); } if (sp18) { state->flags |= SNDSTATEFLAG_02; } - state->unk42 = 0; - state->unk41 = 0x40; - state->unk38 = 0x7fff; + state->fxmix = 0; + state->pan = AL_PAN_CENTER; + state->vol = 0x7fff; if (var8005f13c != NULL) { - var8005f13c(state->unk08); + var8005f13c(state->sound); } } else { osSetIntMask(mask); @@ -3224,7 +682,7 @@ void sndpFreeState(struct sndstate *state) var8005f130--; } - state->playing = 0; + state->state = AL_STOPPED; if (state->unk30) { if (*state->unk30 == state) { @@ -3235,37 +693,37 @@ void sndpFreeState(struct sndstate *state) } if (var8005f140) { - var8005f140(state->unk08); + var8005f140(state->sound); } } -void func000337c8(struct sndstate *state, u8 arg1) +void sndSetPriority(struct sndstate *state, u8 priority) { if (state) { - state->unk40 = (s16)arg1; + state->priority = (s16)priority; } } -bool audioIsPlaying(struct sndstate *state) +s32 sndGetState(struct sndstate *state) { if (state) { - return state->playing; + return state->state; } else { return false; } } -struct sndstate *func00033820(s32 arg0, s16 soundnum, u16 arg2, u8 arg3, f32 arg4, u8 arg5, u8 arg6, struct sndstate **handleptr) +struct sndstate *func00033820(s32 arg0, s16 soundnum, u16 vol, ALPan pan, f32 pitch, u8 fxmix, u8 fxbus, struct sndstate **handleptr) { struct sndstate *state; struct sndstate *state2 = NULL; - struct sndstate_08_04 *sp54; - struct sndstate_08 *sp50; + ALKeyMap *keymap; + ALSound *sound; s16 sp4e = 0; s32 sp48; s32 sp44; s32 sp40 = 0; - s32 sp3c; + s32 abspan; N_ALEvent evt; N_ALEvent evt2; @@ -3275,32 +733,32 @@ struct sndstate *func00033820(s32 arg0, s16 soundnum, u16 arg2, u8 arg3, f32 arg if (soundnum != 0) { do { - sp50 = snd0000f49c(soundnum); - state = func00033390(arg0, sp50); + sound = snd0000f49c(soundnum); + state = func00033390(arg0, sound); if (state != NULL) { g_SndPlayer->target = state; - evt.type = 1; + evt.type = AL_SNDP_PLAY_EVT; evt.msg.generic.sndstate = state; - sp3c = arg3 + state->unk41 - 0x40; + abspan = pan + state->pan - AL_PAN_CENTER; - if (sp3c > 127) { - sp3c = 127; - } else if (sp3c < 0) { - sp3c = 0; + if (abspan > 127) { + abspan = 127; + } else if (abspan < 0) { + abspan = 0; } - state->unk41 = sp3c; - state->unk38 = (u32)(arg2 * state->unk38) >> 15; - state->unk2c *= arg4; - state->unk42 = arg5; - state->unk43 = arg6; + state->pan = abspan; + state->vol = (u32)(vol * state->vol) >> 15; + state->pitch *= pitch; + state->fxmix = fxmix; + state->fxbus = fxbus; #if VERSION >= VERSION_NTSC_1_0 state->soundnum = soundnum; state->unk48 = 0; #endif - sp44 = sp50->unk04->unk01 * 33333; + sp44 = sound->keyMap->velocityMax * 33333; if (state->flags & SNDSTATEFLAG_10) { state->flags &= ~SNDSTATEFLAG_10; @@ -3315,8 +773,8 @@ struct sndstate *func00033820(s32 arg0, s16 soundnum, u16 arg2, u8 arg3, f32 arg } sp40 += sp44; - sp54 = sp50->unk04; - soundnum = sp54->unk00 + (sp54->unk02 & 0xc0) * 4; + keymap = sound->keyMap; + soundnum = keymap->velocityMin + (keymap->keyMin & 0xc0) * 4; } while (soundnum && state); if (state2 != NULL) { @@ -3326,7 +784,7 @@ struct sndstate *func00033820(s32 arg0, s16 soundnum, u16 arg2, u8 arg3, f32 arg if (sp4e != 0) { state2->flags |= SNDSTATEFLAG_10; - evt2.type = AL_200_EVT; + evt2.type = AL_SNDP_0200_EVT; evt2.msg.generic.sndstate = state2; evt2.msg.generic.data = sp4e; evt2.msg.generic.data2 = arg0; @@ -3351,7 +809,7 @@ void audioStop(struct sndstate *state) if (state && (state->flags & SNDSTATEFLAG_02)) { func00033bc0(state); } else { - evt.type = AL_400_EVT; + evt.type = AL_SNDP_0400_EVT; evt.msg.generic.sndstate = state; if (state != NULL) { @@ -3365,7 +823,7 @@ void audioStop(struct sndstate *state) if (state->flags & SNDSTATEFLAG_02) { func00033bc0(state); } else { - evt.type = AL_400_EVT; + evt.type = AL_SNDP_0400_EVT; evt.msg.generic.sndstate = state; if (state != NULL) { @@ -3375,7 +833,7 @@ void audioStop(struct sndstate *state) } } #else - evt.type = AL_400_EVT; + evt.type = AL_SNDP_0400_EVT; evt.msg.generic.sndstate = state; if (state != NULL) { @@ -3391,7 +849,7 @@ void func00033bc0(struct sndstate *state) { N_ALEvent evt; - evt.type = AL_80_EVT; + evt.type = AL_SNDP_END_EVT; evt.msg.generic.sndstate = state; if (state) { @@ -3409,7 +867,7 @@ void func00033c30(u8 flags) struct sndstate *state = g_SndpAllocStatesHead; while (state) { - evt.type = AL_400_EVT; + evt.type = AL_SNDP_0400_EVT; evt.msg.generic.sndstate = state; if ((state->flags & flags) == flags) { @@ -3431,7 +889,7 @@ void func00033cf0(u8 flags) struct sndstate *state = g_SndpAllocStatesHead; while (state) { - evt.type = AL_80_EVT; + evt.type = AL_SNDP_END_EVT; evt.msg.generic.sndstate = state; if ((state->flags & flags) == flags) { @@ -3513,8 +971,8 @@ void func00033f44(u8 index, u16 volume) var8009c334[index] = volume; for (i = 0; state != NULL; i++, state = (struct sndstate *)state->node.next) { - if ((state->unk08->unk04->unk02 & 0x1f) == index) { - evt.type = AL_800_EVT; + if ((state->sound->keyMap->keyMin & 0x1f) == index) { + evt.type = AL_SNDP_0800_EVT; evt.msg.generic.sndstate = state; n_alEvtqPostEvent(&g_SndPlayer->evtq, &evt, 0, 0); }