Decompile musicHandlePlayEvent

This commit is contained in:
Ryan Dwyer 2021-10-31 20:09:50 +10:00
parent 1e2e530f04
commit 366314e633
7 changed files with 150 additions and 269 deletions

View File

@ -179,10 +179,10 @@ void musicQueueStartEvent(u32 tracktype, u32 tracknum, f32 arg2, u16 volume)
g_MusicEventQueue[g_MusicEventQueueLength].tracknum = tracknum;
g_MusicEventQueue[g_MusicEventQueueLength].unk0c = arg2;
g_MusicEventQueue[g_MusicEventQueueLength].volume = volume;
g_MusicEventQueue[g_MusicEventQueueLength].eventtype = MUSICEVENTTYPE_START;
g_MusicEventQueue[g_MusicEventQueueLength].eventtype = MUSICEVENTTYPE_PLAY;
g_MusicEventQueue[g_MusicEventQueueLength].id = g_MusicNextEventId++;
g_MusicEventQueue[g_MusicEventQueueLength].numattempts = 0;
g_MusicEventQueue[g_MusicEventQueueLength].unk16 = 0;
g_MusicEventQueue[g_MusicEventQueueLength].failcount = 0;
g_MusicEventQueueLength++;
}
}
@ -194,7 +194,7 @@ void musicQueueStopEvent(s32 tracktype)
g_MusicEventQueue[g_MusicEventQueueLength].eventtype = MUSICEVENTTYPE_STOP;
g_MusicEventQueue[g_MusicEventQueueLength].id = g_MusicNextEventId++;
g_MusicEventQueue[g_MusicEventQueueLength].numattempts = 0;
g_MusicEventQueue[g_MusicEventQueueLength].unk16 = 0;
g_MusicEventQueue[g_MusicEventQueueLength].failcount = 0;
g_MusicEventQueueLength++;
}
}
@ -208,7 +208,7 @@ void musicQueueFadeEvent(s32 tracktype, f32 arg1, bool fadetopause)
g_MusicEventQueue[g_MusicEventQueueLength].eventtype = MUSICEVENTTYPE_FADE;
g_MusicEventQueue[g_MusicEventQueueLength].id = g_MusicNextEventId++;
g_MusicEventQueue[g_MusicEventQueueLength].numattempts = 0;
g_MusicEventQueue[g_MusicEventQueueLength].unk16 = 0;
g_MusicEventQueue[g_MusicEventQueueLength].failcount = 0;
g_MusicEventQueueLength++;
}
}
@ -250,7 +250,7 @@ void musicQueueStopAllEvent(void)
g_MusicEventQueue[0].eventtype = MUSICEVENTTYPE_STOPALL;
g_MusicEventQueue[0].id = g_MusicNextEventId++;
g_MusicEventQueue[0].numattempts = 0;
g_MusicEventQueue[0].unk16 = 0;
g_MusicEventQueue[0].failcount = 0;
g_MusicEventQueueLength = 1;
@ -273,7 +273,7 @@ void musicQueueType5Event(void)
g_MusicEventQueueLength++;
g_MusicEventQueue[0].numattempts = 0;
g_MusicEventQueue[0].unk16 = 0;
g_MusicEventQueue[0].failcount = 0;
}
#endif

View File

@ -2761,7 +2761,7 @@
#define MPWEAPON_SHIELD 0x25
#define MPWEAPON_DISABLED 0x26
#define MUSICEVENTTYPE_START 1
#define MUSICEVENTTYPE_PLAY 1
#define MUSICEVENTTYPE_STOP 2
#define MUSICEVENTTYPE_FADE 3
#define MUSICEVENTTYPE_STOPALL 4

View File

@ -6,6 +6,6 @@
void func00039c80(N_ALCSPlayer *seqp, s16 volume);
void func00039cd0(ALCSPlayer *seqp);
void func00039e5c(N_ALCSPlayer *seqp, s32 arg1, s32 arg2, s32 arg3);
void func00039e5c(N_ALCSPlayer *seqp, s32 arg1, s32 arg2, u8 arg3);
#endif

View File

@ -4,11 +4,11 @@
#include "data.h"
#include "types.h"
s32 musicHandleStartEvent(struct musicevent *event, u32 arg1);
s32 musicHandleStopEvent(struct musicevent *event, u32 arg1);
s32 musicHandleFadeEvent(struct musicevent *event, u32 arg1);
s32 musicHandleStopAllEvent(u32 arg0);
s32 musicHandleEvent5(struct musicevent *event, u32 arg1);
s32 musicHandlePlayEvent(struct musicevent *event, s32 result);
s32 musicHandleStopEvent(struct musicevent *event, s32 result);
s32 musicHandleFadeEvent(struct musicevent *event, s32 result);
s32 musicHandleStopAllEvent(s32 result);
s32 musicHandleEvent5(struct musicevent *event, s32 result);
void musicTickEvents(void);
void musicTick(void);

View File

@ -23,7 +23,7 @@ void snd0000f67c(struct var80094ed8 *arg0);
void sndInit(void);
bool sndIsMp3(u16 soundnum);
bool snd0000fbc4(s16 arg0);
u32 snd0000fc48(void);
bool snd0000fc48(struct var80094ed8 *arg0, s32 tracknum);
u32 snd0000fd74(void);
void sndSetMusicChannelVolume(struct var80094ed8 *arg0, u16 volume);
void snd0000fe18(void);

View File

@ -6134,7 +6134,7 @@ struct musicevent {
s16 volume;
u16 eventtype;
s16 id;
s16 unk16;
u16 failcount;
u16 numattempts;
};
@ -6188,7 +6188,7 @@ struct var800a4ce8 {
};
struct var800aaa38 {
u32 tracktype;
s32 tracktype;
u32 unk04;
u32 unk08;
u32 unk0c;

View File

@ -16,23 +16,128 @@
const u8 var70053ca0[] = {0, 0, 0, 0, 0, 5};
const char var70053ca8[] = "OFF";
const char var70053cac[] = "LEVELTUNE";
const char var70053cb8[] = "NRGTUNE";
const char var70053cc0[] = "WATCHTUNE";
const char var70053ccc[] = "MPDEATHTUNE";
const char var70053cd8[] = "AMBIENCE";
const char var70053ce4[] = " after %d %s\n";
const char var70053cf4[] = "Attempts";
const char var70053d00[] = "Attempt";
const char var70053d08[] = "MUSIC(Play) : Unpaused midi channel %d for state %d\n";
const char var70053d40[] = "MUSIC(Play) : Starting, Guid=%u, Midi=%d, Tune=%d\n";
const char var70053d74[] = "MUSIC(Play) : Done\n";
const char var70053d88[] = "MUSIC(Play) : About to dump the fading channel %d as a same state play request is waiting\n";
const char var70053de4[] = "MUSIC(Play) : About to dump the ambience channel %d\n";
const char var70053e1c[] = "MUSIC(Play) : Reason : A play request is waiting - State = %d\n";
const char var70053e5c[] = "MUSIC(Play) : SERIOUS -> Out of MIDI channels - Attempt = %d\n";
const char var70053e9c[] = "MUSIC(Play) : SERIOUS -> Tried %d times to play tune : Giving up\n";
s32 g_MusicNextAmbientTick240 = -1;
s32 musicHandlePlayEvent(struct musicevent *event, s32 result)
{
s32 i;
u8 value;
s32 j;
s32 index;
switch (event->tracktype) {
case TRACKTYPE_NONE:
osSyncPrintf("OFF");
break;
case TRACKTYPE_PRIMARY:
osSyncPrintf("LEVELTUNE");
break;
case TRACKTYPE_NRG:
osSyncPrintf("NRGTUNE");
break;
case TRACKTYPE_MENU:
osSyncPrintf("WATCHTUNE");
break;
case TRACKTYPE_DEATH:
osSyncPrintf("MPDEATHTUNE");
break;
case TRACKTYPE_AMBIENT:
osSyncPrintf("AMBIENCE");
break;
}
osSyncPrintf(" after %d %s\n", event->failcount, event->failcount != 1 ? "Attempts" : "Attempt");
// Check if this tracktype is currently in use. If it is then that's
// an error - the caller should have stopped the existing track first.
for (i = 0; i < 3; i++) {
if (event->tracktype == var800aaa38[i].tracktype && n_alCSPGetState(var80094ed8[i].seqp) == AL_PLAYING) {
value = event->tracktype == TRACKTYPE_AMBIENT ? 24 : 32;
for (j = 0; j < 16; j++) {
func00039e5c(var80094ed8[i].seqp, j, 0xff, value);
osSyncPrintf("MUSIC(Play) : Unpaused midi channel %d for state %d\n", j, event->tracktype);
}
var800aaa38[i].unk08 = 0;
var800aaa38[i].unk0c = 0;
event->eventtype = 0;
result = RESULT_OK_BREAK;
break;
}
}
if (result == RESULT_FAIL) {
// Find an unused channel
for (i = 0; i < 3; i++) {
if (n_alCSPGetState(var80094ed8[i].seqp) == AL_STOPPED) {
osSyncPrintf("MUSIC(Play) : Starting, Guid=%u, Midi=%d, Tune=%d\n", event->id, 0, event->tracktype);
if (snd0000fc48(&var80094ed8[i], event->tracknum)) {
sndSetMusicChannelVolume(&var80094ed8[i], event->volume);
var800aaa38[i].tracktype = event->tracktype;
var800aaa38[i].unk04 = 1;
var800aaa38[i].unk08 = 0;
var800aaa38[i].unk0c = 0;
osSyncPrintf("MUSIC(Play) : Done\n");
result = RESULT_OK_BREAK;
}
break;
}
}
if (result == RESULT_FAIL) {
index = -1;
for (i = 0; i < 3; i++) {
if ((var800aaa38[i].tracktype == TRACKTYPE_NONE || event->tracktype == var800aaa38[i].tracktype)
&& n_alCSPGetState(var80094ed8[i].seqp) != AL_STOPPED) {
index = i;
osSyncPrintf("MUSIC(Play) : About to dump the fading channel %d as a same state play request is waiting\n", index);
break;
}
}
if (index == -1) {
if (event->failcount >= 3) {
for (i = 0; i < 3; i++) {
if (var800aaa38[i].tracktype == TRACKTYPE_AMBIENT
&& n_alCSPGetState(var80094ed8[i].seqp) != AL_STOPPED) {
index = i;
osSyncPrintf("MUSIC(Play) : About to dump the ambience channel %d\n", index);
osSyncPrintf("MUSIC(Play) : Reason : A play request is waiting - State = %d\n", event->tracktype);
break;
}
}
}
}
if (index != -1) {
n_alSeqpStop((N_ALSeqPlayer *)var80094ed8[index].seqp);
var800aaa38[index].tracktype = TRACKTYPE_NONE;
var800aaa38[index].unk04 = 0;
var800aaa38[index].unk08 = 0;
var800aaa38[index].unk0c = 0;
} else {
event->failcount++;
osSyncPrintf("MUSIC(Play) : SERIOUS -> Out of MIDI channels - Attempt = %d\n", event->failcount);
if (event->failcount >= 6) {
osSyncPrintf("MUSIC(Play) : SERIOUS -> Tried %d times to play tune : Giving up\n", event->failcount);
result = RESULT_OK_BREAK;
}
}
}
}
return result;
}
const char var70053ee0[] = "MUSIC : Fading to pause\n";
const char var70053efc[] = "Music : Update Rate = %d";
const char var70053f18[] = "MUSIC TICK : Queue size = %d\n";
@ -40,231 +145,7 @@ const char var70053f38[] = "MUSIC : Tick -> Channel %d (State=%d) has faded to s
const char var70053f7c[] = "MUSIC : WARNING -> Force fade termination\n";
const char var70053fa8[] = "MUSIC TICK : Job Guid = %u\n";
s32 g_MusicNextAmbientTick240 = -1;
GLOBAL_ASM(
glabel musicHandleStartEvent
.late_rodata
glabel var70053fc4
.word musicHandleStartEvent+0x50
glabel var70053fc8
.word musicHandleStartEvent+0x50
glabel var70053fcc
.word musicHandleStartEvent+0x50
glabel var70053fd0
.word musicHandleStartEvent+0x50
glabel var70053fd4
.word musicHandleStartEvent+0x50
glabel var70053fd8
.word musicHandleStartEvent+0x50
.text
/* 11420: 27bdffc0 */ addiu $sp,$sp,-64
/* 11424: afbf0034 */ sw $ra,0x34($sp)
/* 11428: afb60030 */ sw $s6,0x30($sp)
/* 1142c: afb5002c */ sw $s5,0x2c($sp)
/* 11430: afb40028 */ sw $s4,0x28($sp)
/* 11434: afb30024 */ sw $s3,0x24($sp)
/* 11438: afb20020 */ sw $s2,0x20($sp)
/* 1143c: afb1001c */ sw $s1,0x1c($sp)
/* 11440: afb00018 */ sw $s0,0x18($sp)
/* 11444: afa50044 */ sw $a1,0x44($sp)
/* 11448: 8c8e0000 */ lw $t6,0x0($a0)
/* 1144c: 0080a825 */ or $s5,$a0,$zero
/* 11450: 2dc10006 */ sltiu $at,$t6,0x6
/* 11454: 10200006 */ beqz $at,.L00011470
/* 11458: 000e7080 */ sll $t6,$t6,0x2
/* 1145c: 3c017005 */ lui $at,%hi(var70053fc4)
/* 11460: 002e0821 */ addu $at,$at,$t6
/* 11464: 8c2e3fc4 */ lw $t6,%lo(var70053fc4)($at)
/* 11468: 01c00008 */ jr $t6
/* 1146c: 00000000 */ nop
.L00011470:
/* 11470: 3c12800b */ lui $s2,%hi(var800aaa38)
/* 11474: 3c138009 */ lui $s3,%hi(var80094ed8)
/* 11478: 26734ed8 */ addiu $s3,$s3,%lo(var80094ed8)
/* 1147c: 2652aa38 */ addiu $s2,$s2,%lo(var800aaa38)
/* 11480: 00008025 */ or $s0,$zero,$zero
/* 11484: 24160003 */ addiu $s6,$zero,0x3
/* 11488: 24140108 */ addiu $s4,$zero,0x108
.L0001148c:
/* 1148c: 8eaf0000 */ lw $t7,0x0($s5)
/* 11490: 8e580000 */ lw $t8,0x0($s2)
/* 11494: 55f80022 */ bnel $t7,$t8,.L00011520
/* 11498: 26100001 */ addiu $s0,$s0,0x1
/* 1149c: 02140019 */ multu $s0,$s4
/* 114a0: 0000c812 */ mflo $t9
/* 114a4: 02798821 */ addu $s1,$s3,$t9
/* 114a8: 0c00e344 */ jal n_alCSPGetState
/* 114ac: 8e2400f8 */ lw $a0,0xf8($s1)
/* 114b0: 24010001 */ addiu $at,$zero,0x1
/* 114b4: 5441001a */ bnel $v0,$at,.L00011520
/* 114b8: 26100001 */ addiu $s0,$s0,0x1
/* 114bc: 8ea80000 */ lw $t0,0x0($s5)
/* 114c0: 24010005 */ addiu $at,$zero,0x5
/* 114c4: 24090020 */ addiu $t1,$zero,0x20
/* 114c8: 15010004 */ bne $t0,$at,.L000114dc
/* 114cc: 00008025 */ or $s0,$zero,$zero
/* 114d0: 24070018 */ addiu $a3,$zero,0x18
/* 114d4: 10000002 */ b .L000114e0
/* 114d8: a3a7003b */ sb $a3,0x3b($sp)
.L000114dc:
/* 114dc: a3a9003b */ sb $t1,0x3b($sp)
.L000114e0:
/* 114e0: 93a7003b */ lbu $a3,0x3b($sp)
.L000114e4:
/* 114e4: 8e2400f8 */ lw $a0,0xf8($s1)
/* 114e8: 02002825 */ or $a1,$s0,$zero
/* 114ec: 0c00e797 */ jal func00039e5c
/* 114f0: 240600ff */ addiu $a2,$zero,0xff
/* 114f4: 26100001 */ addiu $s0,$s0,0x1
/* 114f8: 24010010 */ addiu $at,$zero,0x10
/* 114fc: 5601fff9 */ bnel $s0,$at,.L000114e4
/* 11500: 93a7003b */ lbu $a3,0x3b($sp)
/* 11504: ae400008 */ sw $zero,0x8($s2)
/* 11508: ae40000c */ sw $zero,0xc($s2)
/* 1150c: a6a00012 */ sh $zero,0x12($s5)
/* 11510: 240a0002 */ addiu $t2,$zero,0x2
/* 11514: 10000004 */ b .L00011528
/* 11518: afaa0044 */ sw $t2,0x44($sp)
/* 1151c: 26100001 */ addiu $s0,$s0,0x1
.L00011520:
/* 11520: 1616ffda */ bne $s0,$s6,.L0001148c
/* 11524: 26520010 */ addiu $s2,$s2,0x10
.L00011528:
/* 11528: 8fab0044 */ lw $t3,0x44($sp)
/* 1152c: 3c118009 */ lui $s1,%hi(var80094ed8)
/* 11530: 26314ed8 */ addiu $s1,$s1,%lo(var80094ed8)
/* 11534: 15600067 */ bnez $t3,.L000116d4
/* 11538: 00008025 */ or $s0,$zero,$zero
.L0001153c:
/* 1153c: 0c00e344 */ jal n_alCSPGetState
/* 11540: 8e2400f8 */ lw $a0,0xf8($s1)
/* 11544: 14400014 */ bnez $v0,.L00011598
/* 11548: 02202025 */ or $a0,$s1,$zero
/* 1154c: 0c003f12 */ jal snd0000fc48
/* 11550: 8ea50004 */ lw $a1,0x4($s5)
/* 11554: 10400014 */ beqz $v0,.L000115a8
/* 11558: 02202025 */ or $a0,$s1,$zero
/* 1155c: 96a50010 */ lhu $a1,0x10($s5)
/* 11560: 240c0002 */ addiu $t4,$zero,0x2
/* 11564: 0c003f67 */ jal sndSetMusicChannelVolume
/* 11568: afac0044 */ sw $t4,0x44($sp)
/* 1156c: 3c0e800b */ lui $t6,%hi(var800aaa38)
/* 11570: 25ceaa38 */ addiu $t6,$t6,%lo(var800aaa38)
/* 11574: 00106900 */ sll $t5,$s0,0x4
/* 11578: 8eaf0000 */ lw $t7,0x0($s5)
/* 1157c: 01ae9021 */ addu $s2,$t5,$t6
/* 11580: 24180001 */ addiu $t8,$zero,0x1
/* 11584: ae580004 */ sw $t8,0x4($s2)
/* 11588: ae400008 */ sw $zero,0x8($s2)
/* 1158c: ae40000c */ sw $zero,0xc($s2)
/* 11590: 10000005 */ b .L000115a8
/* 11594: ae4f0000 */ sw $t7,0x0($s2)
.L00011598:
/* 11598: 26100001 */ addiu $s0,$s0,0x1
/* 1159c: 2a010003 */ slti $at,$s0,0x3
/* 115a0: 1420ffe6 */ bnez $at,.L0001153c
/* 115a4: 26310108 */ addiu $s1,$s1,0x108
.L000115a8:
/* 115a8: 8fb90044 */ lw $t9,0x44($sp)
/* 115ac: 2411ffff */ addiu $s1,$zero,-1
/* 115b0: 00008025 */ or $s0,$zero,$zero
/* 115b4: 17200047 */ bnez $t9,.L000116d4
/* 115b8: 3c12800b */ lui $s2,%hi(var800aaa38)
/* 115bc: 2652aa38 */ addiu $s2,$s2,%lo(var800aaa38)
.L000115c0:
/* 115c0: 8e420000 */ lw $v0,0x0($s2)
/* 115c4: 10400004 */ beqz $v0,.L000115d8
/* 115c8: 00000000 */ nop
/* 115cc: 8ea80000 */ lw $t0,0x0($s5)
/* 115d0: 5502000b */ bnel $t0,$v0,.L00011600
/* 115d4: 26100001 */ addiu $s0,$s0,0x1
.L000115d8:
/* 115d8: 02140019 */ multu $s0,$s4
/* 115dc: 00004812 */ mflo $t1
/* 115e0: 02695021 */ addu $t2,$s3,$t1
/* 115e4: 0c00e344 */ jal n_alCSPGetState
/* 115e8: 8d4400f8 */ lw $a0,0xf8($t2)
/* 115ec: 50400004 */ beqzl $v0,.L00011600
/* 115f0: 26100001 */ addiu $s0,$s0,0x1
/* 115f4: 10000005 */ b .L0001160c
/* 115f8: 02008825 */ or $s1,$s0,$zero
/* 115fc: 26100001 */ addiu $s0,$s0,0x1
.L00011600:
/* 11600: 2a010003 */ slti $at,$s0,0x3
/* 11604: 1420ffee */ bnez $at,.L000115c0
/* 11608: 26520010 */ addiu $s2,$s2,0x10
.L0001160c:
/* 1160c: 2401ffff */ addiu $at,$zero,-1
/* 11610: 56210018 */ bnel $s1,$at,.L00011674
/* 11614: 2401ffff */ addiu $at,$zero,-1
/* 11618: 96ab0016 */ lhu $t3,0x16($s5)
/* 1161c: 3c12800b */ lui $s2,%hi(var800aaa38)
/* 11620: 2652aa38 */ addiu $s2,$s2,%lo(var800aaa38)
/* 11624: 29610003 */ slti $at,$t3,0x3
/* 11628: 14200011 */ bnez $at,.L00011670
/* 1162c: 00008025 */ or $s0,$zero,$zero
.L00011630:
/* 11630: 8e4c0000 */ lw $t4,0x0($s2)
/* 11634: 24010005 */ addiu $at,$zero,0x5
/* 11638: 5581000b */ bnel $t4,$at,.L00011668
/* 1163c: 26100001 */ addiu $s0,$s0,0x1
/* 11640: 02140019 */ multu $s0,$s4
/* 11644: 00006812 */ mflo $t5
/* 11648: 026d7021 */ addu $t6,$s3,$t5
/* 1164c: 0c00e344 */ jal n_alCSPGetState
/* 11650: 8dc400f8 */ lw $a0,0xf8($t6)
/* 11654: 50400004 */ beqzl $v0,.L00011668
/* 11658: 26100001 */ addiu $s0,$s0,0x1
/* 1165c: 10000004 */ b .L00011670
/* 11660: 02008825 */ or $s1,$s0,$zero
/* 11664: 26100001 */ addiu $s0,$s0,0x1
.L00011668:
/* 11668: 1616fff1 */ bne $s0,$s6,.L00011630
/* 1166c: 26520010 */ addiu $s2,$s2,0x10
.L00011670:
/* 11670: 2401ffff */ addiu $at,$zero,-1
.L00011674:
/* 11674: 52210010 */ beql $s1,$at,.L000116b8
/* 11678: 96a90016 */ lhu $t1,0x16($s5)
/* 1167c: 02340019 */ multu $s1,$s4
/* 11680: 00007812 */ mflo $t7
/* 11684: 026fc021 */ addu $t8,$s3,$t7
/* 11688: 0c00e7dc */ jal n_alSeqpStop
/* 1168c: 8f0400f8 */ lw $a0,0xf8($t8)
/* 11690: 3c08800b */ lui $t0,%hi(var800aaa38)
/* 11694: 2508aa38 */ addiu $t0,$t0,%lo(var800aaa38)
/* 11698: 0011c900 */ sll $t9,$s1,0x4
/* 1169c: 03281021 */ addu $v0,$t9,$t0
/* 116a0: ac400000 */ sw $zero,0x0($v0)
/* 116a4: ac400004 */ sw $zero,0x4($v0)
/* 116a8: ac400008 */ sw $zero,0x8($v0)
/* 116ac: 10000009 */ b .L000116d4
/* 116b0: ac40000c */ sw $zero,0xc($v0)
/* 116b4: 96a90016 */ lhu $t1,0x16($s5)
.L000116b8:
/* 116b8: 252a0001 */ addiu $t2,$t1,0x1
/* 116bc: 314bffff */ andi $t3,$t2,0xffff
/* 116c0: 29610006 */ slti $at,$t3,0x6
/* 116c4: 14200003 */ bnez $at,.L000116d4
/* 116c8: a6aa0016 */ sh $t2,0x16($s5)
/* 116cc: 240c0002 */ addiu $t4,$zero,0x2
/* 116d0: afac0044 */ sw $t4,0x44($sp)
.L000116d4:
/* 116d4: 8fbf0034 */ lw $ra,0x34($sp)
/* 116d8: 8fa20044 */ lw $v0,0x44($sp)
/* 116dc: 8fb00018 */ lw $s0,0x18($sp)
/* 116e0: 8fb1001c */ lw $s1,0x1c($sp)
/* 116e4: 8fb20020 */ lw $s2,0x20($sp)
/* 116e8: 8fb30024 */ lw $s3,0x24($sp)
/* 116ec: 8fb40028 */ lw $s4,0x28($sp)
/* 116f0: 8fb5002c */ lw $s5,0x2c($sp)
/* 116f4: 8fb60030 */ lw $s6,0x30($sp)
/* 116f8: 03e00008 */ jr $ra
/* 116fc: 27bd0040 */ addiu $sp,$sp,0x40
);
s32 musicHandleStopEvent(struct musicevent *event, u32 arg1)
s32 musicHandleStopEvent(struct musicevent *event, s32 result)
{
s32 i;
@ -284,7 +165,7 @@ s32 musicHandleStopEvent(struct musicevent *event, u32 arg1)
return RESULT_OK_NEXT;
}
s32 musicHandleFadeEvent(struct musicevent *event, u32 arg1)
s32 musicHandleFadeEvent(struct musicevent *event, s32 result)
{
s32 i;
s32 j;
@ -304,7 +185,7 @@ s32 musicHandleFadeEvent(struct musicevent *event, u32 arg1)
return RESULT_OK_NEXT;
}
s32 musicHandleStopAllEvent(u32 arg0)
s32 musicHandleStopAllEvent(s32 result)
{
s32 i;
@ -321,7 +202,7 @@ s32 musicHandleStopAllEvent(u32 arg0)
}
#if VERSION >= VERSION_NTSC_1_0
s32 musicHandleEvent5(struct musicevent *event, u32 arg1)
s32 musicHandleEvent5(struct musicevent *event, s32 result)
{
var800840e0 = event->tracknum;
return RESULT_OK_NEXT;
@ -567,7 +448,7 @@ glabel var70053fec
/* 11c28: 03000008 */ jr $t8
/* 11c2c: 00000000 */ nop
/* 11c30: 02402025 */ or $a0,$s2,$zero
/* 11c34: 0c004508 */ jal musicHandleStartEvent
/* 11c34: 0c004508 */ jal musicHandlePlayEvent
/* 11c38: 00002825 */ or $a1,$zero,$zero
/* 11c3c: 10000013 */ b .L00011c8c
/* 11c40: 00402025 */ or $a0,$v0,$zero
@ -888,7 +769,7 @@ glabel musicTickEvents
/* 11fd8: 10000010 */ beqz $zero,.NB0001201c
/* 11fdc: 00000000 */ sll $zero,$zero,0x0
.NB00011fe0:
/* 11fe0: 0c0045f8 */ jal musicHandleStartEvent
/* 11fe0: 0c0045f8 */ jal musicHandlePlayEvent
/* 11fe4: 02a02025 */ or $a0,$s5,$zero
/* 11fe8: 1000000c */ beqz $zero,.NB0001201c
/* 11fec: 00402025 */ or $a0,$v0,$zero
@ -1051,9 +932,9 @@ glabel musicTickEvents
// case MUSICEVENTTYPE_STOP:
// earlier->tracktype = TRACKTYPE_NONE;
// break;
// case MUSICEVENTTYPE_START:
// case MUSICEVENTTYPE_PLAY:
// switch (earlier->eventtype) {
// case MUSICEVENTTYPE_START:
// case MUSICEVENTTYPE_PLAY:
// case MUSICEVENTTYPE_FADE:
// earlier->tracktype = TRACKTYPE_NONE;
// break;
@ -1093,8 +974,8 @@ glabel musicTickEvents
// result = RESULT_FAIL;
//
// switch (event->eventtype) {
// case MUSICEVENTTYPE_START:
// result = musicHandleStartEvent(event, 0);
// case MUSICEVENTTYPE_PLAY:
// result = musicHandlePlayEvent(event, 0);
// break;
// case MUSICEVENTTYPE_STOP:
// result = musicHandleStopEvent(event, 0);
@ -1145,8 +1026,8 @@ void musicTick(void)
if (!g_SndDisabled) {
if (g_MusicDeathTimer240 > 0
&& (g_Vars.normmplayerisrunning
|| (g_Vars.antiplayernum >= 0 && !g_Vars.bond->isdead)
|| (g_Vars.coopplayernum >= 0 && (!g_Vars.bond->isdead || !g_Vars.coop->isdead)))) {
|| (g_Vars.antiplayernum >= 0 && !g_Vars.bond->isdead)
|| (g_Vars.coopplayernum >= 0 && (!g_Vars.bond->isdead || !g_Vars.coop->isdead)))) {
// Someone is dying in MP, or anti is dying, or *one* person is dying in coop
g_MusicSilenceTimer60 = 0;
g_MusicDeathTimer240 -= g_Vars.lvupdate240;