Decompile sndTickNosedive

This commit is contained in:
Ryan Dwyer 2021-03-29 22:16:21 +10:00
parent cb0edc7e71
commit efd2e6b316
4 changed files with 119 additions and 408 deletions

View File

@ -8117,7 +8117,7 @@ glabel var7f1b8ed0pf
.PF0f16d82c:
/* f16d82c: 0fc5a302 */ jal lvUpdateMiscSfx
/* f16d830: 00000000 */ nop
/* f16d834: 0c003f01 */ jal snd0000fe88
/* f16d834: 0c003f01 */ jal sndTick
/* f16d838: 00000000 */ nop
/* f16d83c: 0fc474a7 */ jal pakExecuteDebugOperations
/* f16d840: 00000000 */ nop
@ -8505,7 +8505,7 @@ void lvTick(void)
}
lvUpdateMiscSfx();
snd0000fe88();
sndTick();
pakExecuteDebugOperations();
lightingTick();
func0f0b2904();
@ -9717,7 +9717,7 @@ glabel lvTick
.NB0f167798:
/* f167798: 0fc58971 */ jal lvUpdateMiscSfx
/* f16779c: 00000000 */ sll $zero,$zero,0x0
/* f1677a0: 0c0040f6 */ jal snd0000fe88
/* f1677a0: 0c0040f6 */ jal sndTick
/* f1677a4: 00000000 */ sll $zero,$zero,0x0
/* f1677a8: 0fc45920 */ jal pakExecuteDebugOperations
/* f1677ac: 00000000 */ sll $zero,$zero,0x0

View File

@ -29,18 +29,18 @@ void snd0000fd9c(struct var80094ed8 *arg0, u16 volume);
void snd0000fe18(void);
void snd0000fe20(void);
void snd0000fe50(void);
void snd0000fe88(void);
void sndTick(void);
u32 snd00010360(void);
u32 snd0001036c(void);
void sndAdjust(struct audiohandle **handle, u32 arg1, u32 arg2, s32 speakerweight, s16 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8);
void sndAdjust(struct audiohandle **handle, s32 arg1, s32 arg2, s32 speakerweight, s16 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8);
struct audiohandle *snd00010718(struct audiohandle **handle, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8);
struct audiohandle *sndStart(s32 arg0, s16 sound, struct audiohandle **handle, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7);
u32 snd00010ae4(void);
void sndPlayNosedive(s32 value);
void sndPlayNosedive(s32 seconds);
void sndStopNosedive(void);
u32 snd00010e10(void);
void sndTickNosedive(void);
void sndPlayUfoHum(s32 value);
void sndStopUfoHum(void);
u32 snd0001111c(void);
u32 sndTickUfoHum(void);
#endif

View File

@ -366,6 +366,7 @@
#define SFX_MAIAN_05E5 0x05e5
#define SFX_MAIAN_05E6 0x05e6
#define SFX_MAIAN_05E7 0x05e7
#define SFX_NOSEDIVE 0x0608
#define SFX_CASS_HOW_DARE_YOU_DISTURB_ME 0x0af2
#define SFX_CASS_YOU_WILL_REGRET 0x0af3
#define SFX_CASS_LEAVE_NOW 0x0af8

View File

@ -47,13 +47,13 @@ const char var70053b3c[] = "Snd: SoundHeaderCacheInit\n";
bool g_Silent = false;
u32 var8005dda4 = 0x00000000;
u32 var8005dda8 = 0x00000000;
u32 var8005ddac = 0xffffffff;
u32 var8005ddb0 = 0x00000000;
s32 g_SndNosediveVolume = 0;
s32 g_SndNosediveAge240 = -1;
s32 g_SndNosediveDuration240 = 0;
u32 var8005ddb4 = 0x00000000;
u32 var8005ddb8 = 0xffffffff;
u32 var8005ddbc = 0x00000000;
u32 var8005ddc0 = 0x00000000;
struct audiohandle *g_SndNosediveHandle = NULL;
u32 var8005ddc4 = 0x00000000;
u16 g_SfxVolume = 32767;
s32 g_SoundMode = SOUNDMODE_STEREO;
@ -2336,13 +2336,6 @@ const char var70053c10[] = "Snd_Play_Mpeg : SYSTEM IS DISABLED\n";
const char var70053c34[] = "Snd_Play_Mpeg : Lib called -> Adr=%x\n";
const char var70053c5c[] = "Snd_Play_Mpeg : Chunk size -> Adr=%x\n";
const u32 var70053c84[] = {0x3ee147ae};
const u32 var70053c88[] = {0x3f266666};
const u32 var70053c8c[] = {0x3e99999a};
const u32 var70053c90[] = {0x3f333333};
const u32 var70053c94[] = {0x3eb33333};
const u32 var70053c98[] = {0x3f4ccccd};
GLOBAL_ASM(
glabel snd0000fba0
/* fba0: 27bdfff8 */ addiu $sp,$sp,-8
@ -2708,7 +2701,7 @@ glabel snd0000fe50
#if PAL
GLOBAL_ASM(
glabel snd0000fe88
glabel sndTick
/* fe88: 27bdeb98 */ addiu $sp,$sp,-5224
/* fe8c: afbf002c */ sw $ra,0x2c($sp)
/* fe90: 0c003b45 */ jal snd0000ed14
@ -2815,7 +2808,7 @@ glabel snd0000fe88
/* 10004: 24010031 */ addiu $at,$zero,0x31
/* 10008: 54410006 */ bnel $v0,$at,.L00010024
/* 1000c: 24010019 */ addiu $at,$zero,0x19
/* 10010: 0c004384 */ jal snd00010e10
/* 10010: 0c004384 */ jal sndTickNosedive
/* 10014: 00000000 */ nop
/* 10018: 10000006 */ b .L00010034
/* 1001c: 00000000 */ nop
@ -2823,7 +2816,7 @@ glabel snd0000fe88
.L00010024:
/* 10024: 14410003 */ bne $v0,$at,.L00010034
/* 10028: 00000000 */ nop
/* 1002c: 0c004447 */ jal snd0001111c
/* 1002c: 0c004447 */ jal sndTickUfoHum
/* 10030: 00000000 */ nop
.L00010034:
/* 10034: 3c0a800a */ lui $t2,%hi(g_Vars+0x2ac)
@ -3056,7 +3049,7 @@ glabel snd0000fe88
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000fe88
glabel sndTick
/* fe88: 27bdeb98 */ addiu $sp,$sp,-5224
/* fe8c: afbf002c */ sw $ra,0x2c($sp)
/* fe90: 0c003b45 */ jal snd0000ed14
@ -3163,7 +3156,7 @@ glabel snd0000fe88
/* 10004: 24010031 */ addiu $at,$zero,0x31
/* 10008: 54410006 */ bnel $v0,$at,.L00010024
/* 1000c: 24010019 */ addiu $at,$zero,0x19
/* 10010: 0c004384 */ jal snd00010e10
/* 10010: 0c004384 */ jal sndTickNosedive
/* 10014: 00000000 */ nop
/* 10018: 10000006 */ b .L00010034
/* 1001c: 00000000 */ nop
@ -3171,7 +3164,7 @@ glabel snd0000fe88
.L00010024:
/* 10024: 14410003 */ bne $v0,$at,.L00010034
/* 10028: 00000000 */ nop
/* 1002c: 0c004447 */ jal snd0001111c
/* 1002c: 0c004447 */ jal sndTickUfoHum
/* 10030: 00000000 */ nop
.L00010034:
/* 10034: 3c0a800a */ lui $t2,%hi(g_Vars+0x2ac)
@ -3404,7 +3397,7 @@ glabel snd0000fe88
);
#else
GLOBAL_ASM(
glabel snd0000fe88
glabel sndTick
/* 103d8: 3c0e8006 */ lui $t6,0x8006
/* 103dc: 8dcef6c0 */ lw $t6,-0x940($t6)
/* 103e0: 27bdffc0 */ addiu $sp,$sp,-64
@ -3420,7 +3413,7 @@ glabel snd0000fe88
/* 10408: 24010031 */ addiu $at,$zero,0x31
/* 1040c: 54410006 */ bnel $v0,$at,.NB00010428
/* 10410: 24010019 */ addiu $at,$zero,0x19
/* 10414: 0c004474 */ jal snd00010e10
/* 10414: 0c004474 */ jal sndTickNosedive
/* 10418: 00000000 */ sll $zero,$zero,0x0
/* 1041c: 10000006 */ beqz $zero,.NB00010438
/* 10420: 00000000 */ sll $zero,$zero,0x0
@ -3428,7 +3421,7 @@ glabel snd0000fe88
.NB00010428:
/* 10428: 14410003 */ bne $v0,$at,.NB00010438
/* 1042c: 00000000 */ sll $zero,$zero,0x0
/* 10430: 0c004537 */ jal snd0001111c
/* 10430: 0c004537 */ jal sndTickUfoHum
/* 10434: 00000000 */ sll $zero,$zero,0x0
.NB00010438:
/* 10438: 3c18800a */ lui $t8,0x800a
@ -4938,392 +4931,85 @@ glabel snd00010ae4
/* 10dac: 00000000 */ nop
);
void sndPlayNosedive(s32 arg0)
void sndPlayNosedive(s32 seconds)
{
var8005ddb0 = arg0 * PALDOWN(240);
var8005ddac = 0;
var8005dda8 = 0;
var8005ddc0 = 0;
g_SndNosediveDuration240 = seconds * PALDOWN(240);
g_SndNosediveAge240 = 0;
g_SndNosediveVolume = 0;
g_SndNosediveHandle = NULL;
}
void sndStopNosedive(void)
{
if (var8005ddac != -1) {
var8005ddac = var8005ddb0 + 1;
if (g_SndNosediveAge240 != -1) {
g_SndNosediveAge240 = g_SndNosediveDuration240 + 1;
}
}
#if VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel snd00010e10
/* 10e10: 3c038006 */ lui $v1,%hi(var8005ddac)
/* 10e14: 2463ddac */ addiu $v1,$v1,%lo(var8005ddac)
/* 10e18: 8c620000 */ lw $v0,0x0($v1)
/* 10e1c: 27bdffc8 */ addiu $sp,$sp,-56
/* 10e20: 2401ffff */ addiu $at,$zero,-1
/* 10e24: 104100a1 */ beq $v0,$at,.L000110ac
/* 10e28: afbf002c */ sw $ra,0x2c($sp)
/* 10e2c: 3c08800a */ lui $t0,%hi(g_Vars)
/* 10e30: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* 10e34: 8d0e0034 */ lw $t6,0x34($t0)
/* 10e38: 3c198006 */ lui $t9,%hi(var8005ddb0)
/* 10e3c: 3c013f80 */ lui $at,0x3f80
/* 10e40: 004ec021 */ addu $t8,$v0,$t6
/* 10e44: ac780000 */ sw $t8,0x0($v1)
/* 10e48: 8f39ddb0 */ lw $t9,%lo(var8005ddb0)($t9)
/* 10e4c: 44982000 */ mtc1 $t8,$f4
/* 10e50: 44818000 */ mtc1 $at,$f16
/* 10e54: 44994000 */ mtc1 $t9,$f8
/* 10e58: 468021a0 */ cvt.s.w $f6,$f4
/* 10e5c: 3c028006 */ lui $v0,%hi(var8005dda8)
/* 10e60: 3c017005 */ lui $at,%hi(var70053c84)
/* 10e64: 2442dda8 */ addiu $v0,$v0,%lo(var8005dda8)
/* 10e68: 468042a0 */ cvt.s.w $f10,$f8
/* 10e6c: 460a3003 */ div.s $f0,$f6,$f10
/* 10e70: 4610003c */ c.lt.s $f0,$f16
/* 10e74: 00000000 */ nop
/* 10e78: 45020067 */ bc1fl .L00011018
/* 10e7c: 8c460000 */ lw $a2,0x0($v0)
/* 10e80: c4323c84 */ lwc1 $f18,%lo(var70053c84)($at)
/* 10e84: 46120000 */ add.s $f0,$f0,$f18
/* 10e88: 0fc5b364 */ jal lvIsPaused
/* 10e8c: e7a00034 */ swc1 $f0,0x34($sp)
/* 10e90: 3c08800a */ lui $t0,%hi(g_Vars)
/* 10e94: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* 10e98: 10400028 */ beqz $v0,.L00010f3c
/* 10e9c: c7a00034 */ lwc1 $f0,0x34($sp)
/* 10ea0: 3c028006 */ lui $v0,%hi(var8005dda8)
/* 10ea4: 2442dda8 */ addiu $v0,$v0,%lo(var8005dda8)
/* 10ea8: 8c460000 */ lw $a2,0x0($v0)
/* 10eac: 00002825 */ or $a1,$zero,$zero
/* 10eb0: 24070040 */ addiu $a3,$zero,0x40
/* 10eb4: 18c0000b */ blez $a2,.L00010ee4
/* 10eb8: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 10ebc: 8d090040 */ lw $t1,0x40($t0)
/* 10ec0: 00095080 */ sll $t2,$t1,0x2
/* 10ec4: 01495023 */ subu $t2,$t2,$t1
/* 10ec8: 000a5140 */ sll $t2,$t2,0x5
/* 10ecc: 00ca5823 */ subu $t3,$a2,$t2
/* 10ed0: ac4b0000 */ sw $t3,0x0($v0)
/* 10ed4: 05610003 */ bgez $t3,.L00010ee4
/* 10ed8: 01603025 */ or $a2,$t3,$zero
/* 10edc: ac400000 */ sw $zero,0x0($v0)
/* 10ee0: 00003025 */ or $a2,$zero,$zero
.L00010ee4:
/* 10ee4: 10c0000d */ beqz $a2,.L00010f1c
/* 10ee8: 240cffff */ addiu $t4,$zero,-1
/* 10eec: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 10ef0: 240dffff */ addiu $t5,$zero,-1
/* 10ef4: 240e0001 */ addiu $t6,$zero,0x1
/* 10ef8: afae0020 */ sw $t6,0x20($sp)
/* 10efc: afad001c */ sw $t5,0x1c($sp)
/* 10f00: 2484ddc0 */ addiu $a0,$a0,%lo(var8005ddc0)
/* 10f04: afac0010 */ sw $t4,0x10($sp)
/* 10f08: e7a00014 */ swc1 $f0,0x14($sp)
/* 10f0c: 0c004128 */ jal sndAdjust
/* 10f10: afa00018 */ sw $zero,0x18($sp)
/* 10f14: 10000066 */ b .L000110b0
/* 10f18: 8fbf002c */ lw $ra,0x2c($sp)
.L00010f1c:
/* 10f1c: 8c84ddc0 */ lw $a0,%lo(var8005ddc0)($a0)
/* 10f20: 50800063 */ beqzl $a0,.L000110b0
/* 10f24: 8fbf002c */ lw $ra,0x2c($sp)
/* 10f28: 0c00cec9 */ jal audioStop
/* 10f2c: 00000000 */ nop
/* 10f30: 3c018006 */ lui $at,%hi(var8005ddc0)
/* 10f34: 1000005d */ b .L000110ac
/* 10f38: ac20ddc0 */ sw $zero,%lo(var8005ddc0)($at)
.L00010f3c:
/* 10f3c: 3c0f8006 */ lui $t7,%hi(var8005ddc0)
/* 10f40: 8defddc0 */ lw $t7,%lo(var8005ddc0)($t7)
/* 10f44: 3c048009 */ lui $a0,%hi(var80095200)
/* 10f48: 24050608 */ addiu $a1,$zero,0x608
/* 10f4c: 15e00012 */ bnez $t7,.L00010f98
/* 10f50: 3c068006 */ lui $a2,%hi(var8005ddc0)
/* 10f54: 3c01bf80 */ lui $at,0xbf80
/* 10f58: 44812000 */ mtc1 $at,$f4
/* 10f5c: 2418ffff */ addiu $t8,$zero,-1
/* 10f60: 2419ffff */ addiu $t9,$zero,-1
/* 10f64: 2409ffff */ addiu $t1,$zero,-1
/* 10f68: afa9001c */ sw $t1,0x1c($sp)
/* 10f6c: afb90018 */ sw $t9,0x18($sp)
/* 10f70: afb80010 */ sw $t8,0x10($sp)
/* 10f74: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* 10f78: 24c6ddc0 */ addiu $a2,$a2,%lo(var8005ddc0)
/* 10f7c: 2407ffff */ addiu $a3,$zero,-1
/* 10f80: e7a00034 */ swc1 $f0,0x34($sp)
/* 10f84: 0c004241 */ jal sndStart
/* 10f88: e7a40014 */ swc1 $f4,0x14($sp)
/* 10f8c: 3c08800a */ lui $t0,%hi(g_Vars)
/* 10f90: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* 10f94: c7a00034 */ lwc1 $f0,0x34($sp)
.L00010f98:
/* 10f98: 3c028006 */ lui $v0,%hi(var8005dda8)
/* 10f9c: 2442dda8 */ addiu $v0,$v0,%lo(var8005dda8)
/* 10fa0: 8c460000 */ lw $a2,0x0($v0)
/* 10fa4: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 10fa8: 2484ddc0 */ addiu $a0,$a0,%lo(var8005ddc0)
/* 10fac: 28c14e20 */ slti $at,$a2,0x4e20
/* 10fb0: 1020000c */ beqz $at,.L00010fe4
/* 10fb4: 00002825 */ or $a1,$zero,$zero
/* 10fb8: 8d0a0040 */ lw $t2,0x40($t0)
/* 10fbc: 000a5880 */ sll $t3,$t2,0x2
/* 10fc0: 016a5823 */ subu $t3,$t3,$t2
/* 10fc4: 000b5900 */ sll $t3,$t3,0x4
/* 10fc8: 00cb6021 */ addu $t4,$a2,$t3
/* 10fcc: 29814e21 */ slti $at,$t4,0x4e21
/* 10fd0: ac4c0000 */ sw $t4,0x0($v0)
/* 10fd4: 14200003 */ bnez $at,.L00010fe4
/* 10fd8: 01803025 */ or $a2,$t4,$zero
/* 10fdc: 24064e20 */ addiu $a2,$zero,0x4e20
/* 10fe0: ac460000 */ sw $a2,0x0($v0)
.L00010fe4:
/* 10fe4: 240effff */ addiu $t6,$zero,-1
/* 10fe8: 240fffff */ addiu $t7,$zero,-1
/* 10fec: 24180001 */ addiu $t8,$zero,0x1
/* 10ff0: afb80020 */ sw $t8,0x20($sp)
/* 10ff4: afaf001c */ sw $t7,0x1c($sp)
/* 10ff8: afae0010 */ sw $t6,0x10($sp)
/* 10ffc: 24070040 */ addiu $a3,$zero,0x40
/* 11000: e7a00014 */ swc1 $f0,0x14($sp)
/* 11004: 0c004128 */ jal sndAdjust
/* 11008: afa00018 */ sw $zero,0x18($sp)
/* 1100c: 10000028 */ b .L000110b0
/* 11010: 8fbf002c */ lw $ra,0x2c($sp)
/* 11014: 8c460000 */ lw $a2,0x0($v0)
.L00011018:
/* 11018: 00002825 */ or $a1,$zero,$zero
/* 1101c: 24070040 */ addiu $a3,$zero,0x40
/* 11020: 18c0000b */ blez $a2,.L00011050
/* 11024: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 11028: 8d190040 */ lw $t9,0x40($t0)
/* 1102c: 00194880 */ sll $t1,$t9,0x2
/* 11030: 01394823 */ subu $t1,$t1,$t9
/* 11034: 00094940 */ sll $t1,$t1,0x5
/* 11038: 00c95023 */ subu $t2,$a2,$t1
/* 1103c: ac4a0000 */ sw $t2,0x0($v0)
/* 11040: 05410003 */ bgez $t2,.L00011050
/* 11044: 01403025 */ or $a2,$t2,$zero
/* 11048: ac400000 */ sw $zero,0x0($v0)
/* 1104c: 00003025 */ or $a2,$zero,$zero
.L00011050:
/* 11050: 10c0000f */ beqz $a2,.L00011090
/* 11054: 240bffff */ addiu $t3,$zero,-1
/* 11058: 3c01bf80 */ lui $at,0xbf80
/* 1105c: 44814000 */ mtc1 $at,$f8
/* 11060: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 11064: 240cffff */ addiu $t4,$zero,-1
/* 11068: 240d0001 */ addiu $t5,$zero,0x1
/* 1106c: afad0020 */ sw $t5,0x20($sp)
/* 11070: afac001c */ sw $t4,0x1c($sp)
/* 11074: 2484ddc0 */ addiu $a0,$a0,%lo(var8005ddc0)
/* 11078: afab0010 */ sw $t3,0x10($sp)
/* 1107c: afa00018 */ sw $zero,0x18($sp)
/* 11080: 0c004128 */ jal sndAdjust
/* 11084: e7a80014 */ swc1 $f8,0x14($sp)
/* 11088: 10000009 */ b .L000110b0
/* 1108c: 8fbf002c */ lw $ra,0x2c($sp)
.L00011090:
/* 11090: 8c84ddc0 */ lw $a0,%lo(var8005ddc0)($a0)
/* 11094: 50800006 */ beqzl $a0,.L000110b0
/* 11098: 8fbf002c */ lw $ra,0x2c($sp)
/* 1109c: 0c00cec9 */ jal audioStop
/* 110a0: 00000000 */ nop
/* 110a4: 3c018006 */ lui $at,%hi(var8005ddc0)
/* 110a8: ac20ddc0 */ sw $zero,%lo(var8005ddc0)($at)
.L000110ac:
/* 110ac: 8fbf002c */ lw $ra,0x2c($sp)
.L000110b0:
/* 110b0: 27bd0038 */ addiu $sp,$sp,0x38
/* 110b4: 03e00008 */ jr $ra
/* 110b8: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel snd00010e10
/* 10e10: 3c038006 */ lui $v1,%hi(var8005ddac)
/* 10e14: 2463ddac */ addiu $v1,$v1,%lo(var8005ddac)
/* 10e18: 8c620000 */ lw $v0,0x0($v1)
/* 10e1c: 27bdffc8 */ addiu $sp,$sp,-56
/* 10e20: 2401ffff */ addiu $at,$zero,-1
/* 10e24: 104100a1 */ beq $v0,$at,.L000110ac
/* 10e28: afbf002c */ sw $ra,0x2c($sp)
/* 10e2c: 3c08800a */ lui $t0,%hi(g_Vars)
/* 10e30: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* 10e34: 8d0e0034 */ lw $t6,0x34($t0)
/* 10e38: 3c198006 */ lui $t9,%hi(var8005ddb0)
/* 10e3c: 3c013f80 */ lui $at,0x3f80
/* 10e40: 004ec021 */ addu $t8,$v0,$t6
/* 10e44: ac780000 */ sw $t8,0x0($v1)
/* 10e48: 8f39ddb0 */ lw $t9,%lo(var8005ddb0)($t9)
/* 10e4c: 44982000 */ mtc1 $t8,$f4
/* 10e50: 44818000 */ mtc1 $at,$f16
/* 10e54: 44994000 */ mtc1 $t9,$f8
/* 10e58: 468021a0 */ cvt.s.w $f6,$f4
/* 10e5c: 3c028006 */ lui $v0,%hi(var8005dda8)
/* 10e60: 3c017005 */ lui $at,%hi(var70053c84)
/* 10e64: 2442dda8 */ addiu $v0,$v0,%lo(var8005dda8)
/* 10e68: 468042a0 */ cvt.s.w $f10,$f8
/* 10e6c: 460a3003 */ div.s $f0,$f6,$f10
/* 10e70: 4610003c */ c.lt.s $f0,$f16
/* 10e74: 00000000 */ nop
/* 10e78: 45020067 */ bc1fl .L00011018
/* 10e7c: 8c460000 */ lw $a2,0x0($v0)
/* 10e80: c4323c84 */ lwc1 $f18,%lo(var70053c84)($at)
/* 10e84: 46120000 */ add.s $f0,$f0,$f18
/* 10e88: 0fc5b364 */ jal lvIsPaused
/* 10e8c: e7a00034 */ swc1 $f0,0x34($sp)
/* 10e90: 3c08800a */ lui $t0,%hi(g_Vars)
/* 10e94: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* 10e98: 10400028 */ beqz $v0,.L00010f3c
/* 10e9c: c7a00034 */ lwc1 $f0,0x34($sp)
/* 10ea0: 3c028006 */ lui $v0,%hi(var8005dda8)
/* 10ea4: 2442dda8 */ addiu $v0,$v0,%lo(var8005dda8)
/* 10ea8: 8c460000 */ lw $a2,0x0($v0)
/* 10eac: 00002825 */ or $a1,$zero,$zero
/* 10eb0: 24070040 */ addiu $a3,$zero,0x40
/* 10eb4: 18c0000b */ blez $a2,.L00010ee4
/* 10eb8: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 10ebc: 8d090040 */ lw $t1,0x40($t0)
/* 10ec0: 00095080 */ sll $t2,$t1,0x2
/* 10ec4: 01495021 */ addu $t2,$t2,$t1
/* 10ec8: 000a5100 */ sll $t2,$t2,0x4
/* 10ecc: 00ca5823 */ subu $t3,$a2,$t2
/* 10ed0: ac4b0000 */ sw $t3,0x0($v0)
/* 10ed4: 05610003 */ bgez $t3,.L00010ee4
/* 10ed8: 01603025 */ or $a2,$t3,$zero
/* 10edc: ac400000 */ sw $zero,0x0($v0)
/* 10ee0: 00003025 */ or $a2,$zero,$zero
.L00010ee4:
/* 10ee4: 10c0000d */ beqz $a2,.L00010f1c
/* 10ee8: 240cffff */ addiu $t4,$zero,-1
/* 10eec: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 10ef0: 240dffff */ addiu $t5,$zero,-1
/* 10ef4: 240e0001 */ addiu $t6,$zero,0x1
/* 10ef8: afae0020 */ sw $t6,0x20($sp)
/* 10efc: afad001c */ sw $t5,0x1c($sp)
/* 10f00: 2484ddc0 */ addiu $a0,$a0,%lo(var8005ddc0)
/* 10f04: afac0010 */ sw $t4,0x10($sp)
/* 10f08: e7a00014 */ swc1 $f0,0x14($sp)
/* 10f0c: 0c004128 */ jal sndAdjust
/* 10f10: afa00018 */ sw $zero,0x18($sp)
/* 10f14: 10000066 */ b .L000110b0
/* 10f18: 8fbf002c */ lw $ra,0x2c($sp)
.L00010f1c:
/* 10f1c: 8c84ddc0 */ lw $a0,%lo(var8005ddc0)($a0)
/* 10f20: 50800063 */ beqzl $a0,.L000110b0
/* 10f24: 8fbf002c */ lw $ra,0x2c($sp)
/* 10f28: 0c00cec9 */ jal audioStop
/* 10f2c: 00000000 */ nop
/* 10f30: 3c018006 */ lui $at,%hi(var8005ddc0)
/* 10f34: 1000005d */ b .L000110ac
/* 10f38: ac20ddc0 */ sw $zero,%lo(var8005ddc0)($at)
.L00010f3c:
/* 10f3c: 3c0f8006 */ lui $t7,%hi(var8005ddc0)
/* 10f40: 8defddc0 */ lw $t7,%lo(var8005ddc0)($t7)
/* 10f44: 3c048009 */ lui $a0,%hi(var80095200)
/* 10f48: 24050608 */ addiu $a1,$zero,0x608
/* 10f4c: 15e00012 */ bnez $t7,.L00010f98
/* 10f50: 3c068006 */ lui $a2,%hi(var8005ddc0)
/* 10f54: 3c01bf80 */ lui $at,0xbf80
/* 10f58: 44812000 */ mtc1 $at,$f4
/* 10f5c: 2418ffff */ addiu $t8,$zero,-1
/* 10f60: 2419ffff */ addiu $t9,$zero,-1
/* 10f64: 2409ffff */ addiu $t1,$zero,-1
/* 10f68: afa9001c */ sw $t1,0x1c($sp)
/* 10f6c: afb90018 */ sw $t9,0x18($sp)
/* 10f70: afb80010 */ sw $t8,0x10($sp)
/* 10f74: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* 10f78: 24c6ddc0 */ addiu $a2,$a2,%lo(var8005ddc0)
/* 10f7c: 2407ffff */ addiu $a3,$zero,-1
/* 10f80: e7a00034 */ swc1 $f0,0x34($sp)
/* 10f84: 0c004241 */ jal sndStart
/* 10f88: e7a40014 */ swc1 $f4,0x14($sp)
/* 10f8c: 3c08800a */ lui $t0,%hi(g_Vars)
/* 10f90: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* 10f94: c7a00034 */ lwc1 $f0,0x34($sp)
.L00010f98:
/* 10f98: 3c028006 */ lui $v0,%hi(var8005dda8)
/* 10f9c: 2442dda8 */ addiu $v0,$v0,%lo(var8005dda8)
/* 10fa0: 8c460000 */ lw $a2,0x0($v0)
/* 10fa4: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 10fa8: 2484ddc0 */ addiu $a0,$a0,%lo(var8005ddc0)
/* 10fac: 28c14e20 */ slti $at,$a2,0x4e20
/* 10fb0: 1020000c */ beqz $at,.L00010fe4
/* 10fb4: 00002825 */ or $a1,$zero,$zero
/* 10fb8: 8d0a0040 */ lw $t2,0x40($t0)
/* 10fbc: 000a5880 */ sll $t3,$t2,0x2
/* 10fc0: 016a5821 */ addu $t3,$t3,$t2
/* 10fc4: 000b58c0 */ sll $t3,$t3,0x3
/* 10fc8: 00cb6021 */ addu $t4,$a2,$t3
/* 10fcc: 29814e21 */ slti $at,$t4,0x4e21
/* 10fd0: ac4c0000 */ sw $t4,0x0($v0)
/* 10fd4: 14200003 */ bnez $at,.L00010fe4
/* 10fd8: 01803025 */ or $a2,$t4,$zero
/* 10fdc: 24064e20 */ addiu $a2,$zero,0x4e20
/* 10fe0: ac460000 */ sw $a2,0x0($v0)
.L00010fe4:
/* 10fe4: 240effff */ addiu $t6,$zero,-1
/* 10fe8: 240fffff */ addiu $t7,$zero,-1
/* 10fec: 24180001 */ addiu $t8,$zero,0x1
/* 10ff0: afb80020 */ sw $t8,0x20($sp)
/* 10ff4: afaf001c */ sw $t7,0x1c($sp)
/* 10ff8: afae0010 */ sw $t6,0x10($sp)
/* 10ffc: 24070040 */ addiu $a3,$zero,0x40
/* 11000: e7a00014 */ swc1 $f0,0x14($sp)
/* 11004: 0c004128 */ jal sndAdjust
/* 11008: afa00018 */ sw $zero,0x18($sp)
/* 1100c: 10000028 */ b .L000110b0
/* 11010: 8fbf002c */ lw $ra,0x2c($sp)
/* 11014: 8c460000 */ lw $a2,0x0($v0)
.L00011018:
/* 11018: 00002825 */ or $a1,$zero,$zero
/* 1101c: 24070040 */ addiu $a3,$zero,0x40
/* 11020: 18c0000b */ blez $a2,.L00011050
/* 11024: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 11028: 8d190040 */ lw $t9,0x40($t0)
/* 1102c: 00194880 */ sll $t1,$t9,0x2
/* 11030: 01394821 */ addu $t1,$t1,$t9
/* 11034: 00094900 */ sll $t1,$t1,0x4
/* 11038: 00c95023 */ subu $t2,$a2,$t1
/* 1103c: ac4a0000 */ sw $t2,0x0($v0)
/* 11040: 05410003 */ bgez $t2,.L00011050
/* 11044: 01403025 */ or $a2,$t2,$zero
/* 11048: ac400000 */ sw $zero,0x0($v0)
/* 1104c: 00003025 */ or $a2,$zero,$zero
.L00011050:
/* 11050: 10c0000f */ beqz $a2,.L00011090
/* 11054: 240bffff */ addiu $t3,$zero,-1
/* 11058: 3c01bf80 */ lui $at,0xbf80
/* 1105c: 44814000 */ mtc1 $at,$f8
/* 11060: 3c048006 */ lui $a0,%hi(var8005ddc0)
/* 11064: 240cffff */ addiu $t4,$zero,-1
/* 11068: 240d0001 */ addiu $t5,$zero,0x1
/* 1106c: afad0020 */ sw $t5,0x20($sp)
/* 11070: afac001c */ sw $t4,0x1c($sp)
/* 11074: 2484ddc0 */ addiu $a0,$a0,%lo(var8005ddc0)
/* 11078: afab0010 */ sw $t3,0x10($sp)
/* 1107c: afa00018 */ sw $zero,0x18($sp)
/* 11080: 0c004128 */ jal sndAdjust
/* 11084: e7a80014 */ swc1 $f8,0x14($sp)
/* 11088: 10000009 */ b .L000110b0
/* 1108c: 8fbf002c */ lw $ra,0x2c($sp)
.L00011090:
/* 11090: 8c84ddc0 */ lw $a0,%lo(var8005ddc0)($a0)
/* 11094: 50800006 */ beqzl $a0,.L000110b0
/* 11098: 8fbf002c */ lw $ra,0x2c($sp)
/* 1109c: 0c00cec9 */ jal audioStop
/* 110a0: 00000000 */ nop
/* 110a4: 3c018006 */ lui $at,%hi(var8005ddc0)
/* 110a8: ac20ddc0 */ sw $zero,%lo(var8005ddc0)($at)
.L000110ac:
/* 110ac: 8fbf002c */ lw $ra,0x2c($sp)
.L000110b0:
/* 110b0: 27bd0038 */ addiu $sp,$sp,0x38
/* 110b4: 03e00008 */ jr $ra
/* 110b8: 00000000 */ nop
);
#endif
void sndTickNosedive(void)
{
f32 percentage;
if (g_SndNosediveAge240 != -1) {
g_SndNosediveAge240 += g_Vars.lvupdate240;
percentage = (f32)g_SndNosediveAge240 / (f32)g_SndNosediveDuration240;
if (percentage < 1.0f) { // less than 100% complete
percentage += 0.44f;
if (lvIsPaused()) {
// Fade out volume during pause instead of stopping abruptly
if (g_SndNosediveVolume > 0) {
g_SndNosediveVolume -= g_Vars.diffframe240 * PALUP(80);
if (g_SndNosediveVolume < 0) {
g_SndNosediveVolume = 0;
}
}
if (g_SndNosediveVolume) {
sndAdjust(&g_SndNosediveHandle, 0, g_SndNosediveVolume, 64, -1, percentage, 0, -1, 1);
} else if (g_SndNosediveHandle != NULL) {
audioStop(g_SndNosediveHandle);
g_SndNosediveHandle = NULL;
}
} else {
// Not paused
if (g_SndNosediveHandle == NULL) {
sndStart(var80095200, SFX_NOSEDIVE, &g_SndNosediveHandle, -1, -1, -1, -1, -1);
}
// Fade in over about 2 seconds
if (g_SndNosediveVolume < 20000) {
g_SndNosediveVolume += g_Vars.diffframe240 * PALUP(40);
if (g_SndNosediveVolume > 20000) {
g_SndNosediveVolume = 20000;
}
}
sndAdjust(&g_SndNosediveHandle, 0, g_SndNosediveVolume, 64, -1, percentage, 0, -1, 1);
}
} else {
// Reached the configured fade out point
if (g_SndNosediveVolume > 0) {
g_SndNosediveVolume -= g_Vars.diffframe240 * PALUP(80);
if (g_SndNosediveVolume < 0) {
g_SndNosediveVolume = 0;
}
}
if (g_SndNosediveVolume) {
sndAdjust(&g_SndNosediveHandle, 0, g_SndNosediveVolume, 64, -1, -1, 0, -1, 1);
} else if (g_SndNosediveHandle != NULL) {
audioStop(g_SndNosediveHandle);
g_SndNosediveHandle = NULL;
}
}
}
}
void sndPlayUfoHum(s32 arg0)
{
@ -5342,7 +5028,19 @@ void sndStopUfoHum(void)
#if VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel snd0001111c
glabel sndTickUfoHum
.late_rodata
glabel var70053c88
.word 0x3f266666
glabel var70053c8c
.word 0x3e99999a
glabel var70053c90
.word 0x3f333333
glabel var70053c94
.word 0x3eb33333
glabel var70053c98
.word 0x3f4ccccd
.text
/* 1111c: 3c038006 */ lui $v1,%hi(var8005ddb8)
/* 11120: 2463ddb8 */ addiu $v1,$v1,%lo(var8005ddb8)
/* 11124: 8c620000 */ lw $v0,0x0($v1)
@ -5549,7 +5247,19 @@ glabel snd0001111c
);
#else
GLOBAL_ASM(
glabel snd0001111c
glabel sndTickUfoHum
.late_rodata
glabel var70053c88
.word 0x3f266666
glabel var70053c8c
.word 0x3e99999a
glabel var70053c90
.word 0x3f333333
glabel var70053c94
.word 0x3eb33333
glabel var70053c98
.word 0x3f4ccccd
.text
/* 1111c: 3c038006 */ lui $v1,%hi(var8005ddb8)
/* 11120: 2463ddb8 */ addiu $v1,$v1,%lo(var8005ddb8)
/* 11124: 8c620000 */ lw $v0,0x0($v1)