From ced6be2cd68fb0d90f9ac250d0aee57366a83544 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 27 Mar 2021 02:16:14 +1000 Subject: [PATCH] Decompile sndInit --- src/include/PR/libaudio.h | 2 +- src/include/bss.h | 2 +- src/include/data.h | 2 +- src/include/lib/audiomgr.h | 8 +- src/include/lib/lib_2faf0.h | 3 - src/include/lib/lib_317f0.h | 6 +- src/include/lib/lib_37650.h | 2 +- src/include/lib/lib_37b00.h | 6 +- src/include/lib/snd.h | 6 +- src/include/types.h | 11 + src/lib/audiomgr.c | 16 +- src/lib/lib_09660.c | 8 +- src/lib/lib_2faf0.c | 4 +- src/lib/lib_30ce0.c | 16 +- src/lib/lib_317f0.c | 18 +- src/lib/lib_34240.c | 12 +- src/lib/lib_37b00.c | 36 +- src/lib/lib_3a100.c | 30 +- src/lib/main.c | 2 +- src/lib/snd.c | 791 ++++++++++-------------------------- 20 files changed, 322 insertions(+), 659 deletions(-) diff --git a/src/include/PR/libaudio.h b/src/include/PR/libaudio.h index 164f46fa4..98023bb09 100644 --- a/src/include/PR/libaudio.h +++ b/src/include/PR/libaudio.h @@ -271,7 +271,7 @@ typedef struct { void *dmaproc; ALHeap *heap; s32 outputRate; /* output sample rate */ - ALFxId fxType; + ALFxId fxTypes[4]; s32 *params; } ALSynConfig; diff --git a/src/include/bss.h b/src/include/bss.h index 4a61ae5d2..9972fae7e 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -37,7 +37,7 @@ extern u32 var80092828; extern u32 var80092870; extern s32 var80094ea8; extern struct var80094ed8 var80094ed8[3]; -extern u32 var800951f0[4]; +extern ALHeap g_SndHeap; extern u32 var80095200; extern u8 var80095210[0x40f0]; extern OSMesgQueue var80099e78; diff --git a/src/include/data.h b/src/include/data.h index 011252cea..c00656cdf 100644 --- a/src/include/data.h +++ b/src/include/data.h @@ -42,7 +42,7 @@ extern s32 var8005dd18; extern u32 var8005dd58; extern bool g_Silent; extern u16 g_SfxVolume; -extern u32 g_SoundMode; +extern s32 g_SoundMode; extern s32 var8005ddd4; extern struct audiorussmapping g_AudioRussMappings[]; extern struct audioconfig g_AudioConfigs[]; diff --git a/src/include/lib/audiomgr.h b/src/include/lib/audiomgr.h index ca6c2f6c0..5dc3d7852 100644 --- a/src/include/lib/audiomgr.h +++ b/src/include/lib/audiomgr.h @@ -5,7 +5,13 @@ #include "types.h" void amgrAllocateStack(void); -u32 amgrCreate(void); + +#if VERSION >= VERSION_PAL_FINAL +void amgrCreate(ALSynConfig *config, u32 *arg1); +#else +void amgrCreate(ALSynConfig *config); +#endif + void amgrStartThread(void); OSMesgQueue *amgr00009118(void); void amgrStopThread(void); diff --git a/src/include/lib/lib_2faf0.h b/src/include/lib/lib_2faf0.h index 5f5d5e6f0..78c340321 100644 --- a/src/include/lib/lib_2faf0.h +++ b/src/include/lib/lib_2faf0.h @@ -4,7 +4,4 @@ #include "data.h" #include "types.h" -u32 func0002faf0(void); -u32 func0002fb14(void); - #endif diff --git a/src/include/lib/lib_317f0.h b/src/include/lib/lib_317f0.h index d027c9bd7..337b10860 100644 --- a/src/include/lib/lib_317f0.h +++ b/src/include/lib/lib_317f0.h @@ -4,15 +4,15 @@ #include "data.h" #include "types.h" -u32 func000317f0(void); +void func000317f0(void *arg0); u32 func00031b34(void); u32 func00033090(void); u32 func00033100(void); u32 func00033180(void); u32 func00033274(void); -u32 func00033378(void); +void func00033378(void *fn); u32 func00033390(void); -u32 func00033634(void); +void func00033634(void *fn); u32 func0003364c(void); u32 audioIsPlaying(struct audiohandle *handle); u32 func00033820(void); diff --git a/src/include/lib/lib_37650.h b/src/include/lib/lib_37650.h index e45787026..ff462ac8b 100644 --- a/src/include/lib/lib_37650.h +++ b/src/include/lib/lib_37650.h @@ -5,7 +5,7 @@ #include "types.h" u32 func00037650(void); -u32 func00037704(void); +void func00037704(void *arg0, void *arg1); u32 func000377e8(void); u32 func00037900(void); u32 func000379c4(void); diff --git a/src/include/lib/lib_37b00.h b/src/include/lib/lib_37b00.h index 48fa0c6f3..f8f351419 100644 --- a/src/include/lib/lib_37b00.h +++ b/src/include/lib/lib_37b00.h @@ -4,14 +4,14 @@ #include "data.h" #include "types.h" -u32 func00037b00(void); +void func00037b00(ALHeap *heap); u32 func00037d88(void); u32 func00037e1c(void); u32 func00037e38(void); u32 func00037e68(void); u32 func00037ea4(void); -u32 func00037f08(void); -u32 func00037f5c(void); +void func00037f08(u16 arg0, s32 arg1); +void func00037f5c(s32 arg0, s32 arg1); u32 func00037fc0(void); u32 func00038924(void); u32 func00038b90(void); diff --git a/src/include/lib/snd.h b/src/include/lib/snd.h index 729bf8295..9dd7b658f 100644 --- a/src/include/lib/snd.h +++ b/src/include/lib/snd.h @@ -10,7 +10,7 @@ u16 snd0000e9dc(void); void sndSetSfxVolume(u16 volume); u32 snd0000ea80(void); void snd0000eadc(void); -u32 snd0000eb2c(void); +void snd0000eb2c(void); u32 snd0000ed14(void); u32 snd0000ed68(void); u32 snd0000ee88(void); @@ -19,8 +19,8 @@ u32 snd0000f0d4(void); u32 snd0000f228(void); void sndSetSoundMode(s32 mode); u32 snd0000f49c(void); -u32 snd0000f67c(void); -u32 snd0000f804(void); +void snd0000f67c(struct var80094ed8 *arg0); +void sndInit(void); bool snd0000fba0(s32 soundnum); void snd0000fbc4(s16 arg0); u32 snd0000fc48(void); diff --git a/src/include/types.h b/src/include/types.h index 35955b822..cbcefe01d 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -7128,4 +7128,15 @@ struct handweaponinfo { struct gunctrl *gunctrl; }; +struct seqtableentry { + u8 *data; + u16 binlen; + u16 ziplen; +}; + +struct seqtable { + u16 count; + struct seqtableentry entries[1]; +}; + #endif diff --git a/src/lib/audiomgr.c b/src/lib/audiomgr.c index 63bf78abd..15f7ef359 100644 --- a/src/lib/audiomgr.c +++ b/src/lib/audiomgr.c @@ -511,7 +511,7 @@ glabel amgrCreate /* 8b00: 0018c8c0 */ sll $t9,$t8,0x3 /* 8b04: afb90010 */ sw $t9,0x10($sp) /* 8b08: 02203025 */ move $a2,$s1 -/* 8b0c: 0c00bd05 */ jal func0002fb14 +/* 8b0c: 0c00bd05 */ jal alHeapDBAlloc /* 8b10: 24070001 */ li $a3,0x1 /* 8b14: 26100004 */ addiu $s0,$s0,0x4 /* 8b18: 0213082b */ sltu $at,$s0,$s3 @@ -527,7 +527,7 @@ glabel amgrCreate /* 8b3c: 00002025 */ move $a0,$zero /* 8b40: 00002825 */ move $a1,$zero /* 8b44: 02203025 */ move $a2,$s1 -/* 8b48: 0c00bd05 */ jal func0002fb14 +/* 8b48: 0c00bd05 */ jal alHeapDBAlloc /* 8b4c: 24070001 */ li $a3,0x1 /* 8b50: ae020008 */ sw $v0,0x8($s0) /* 8b54: a4400004 */ sh $zero,0x4($v0) @@ -536,7 +536,7 @@ glabel amgrCreate /* 8b60: 00002025 */ move $a0,$zero /* 8b64: 00002825 */ move $a1,$zero /* 8b68: 02203025 */ move $a2,$s1 -/* 8b6c: 0c00bd05 */ jal func0002fb14 +/* 8b6c: 0c00bd05 */ jal alHeapDBAlloc /* 8b70: 24070001 */ li $a3,0x1 /* 8b74: 8e0b0008 */ lw $t3,0x8($s0) /* 8b78: 26100004 */ addiu $s0,$s0,0x4 @@ -957,8 +957,8 @@ glabel amgrCreate .L00008bb8: /* 8bb8: 3c108009 */ lui $s0,%hi(g_AudioManager) /* 8bbc: 3c138009 */ lui $s3,%hi(g_AudioManager+0x8) -/* 8bc0: 3c118009 */ lui $s1,%hi(var800951f0) -/* 8bc4: 263151f0 */ addiu $s1,$s1,%lo(var800951f0) +/* 8bc0: 3c118009 */ lui $s1,%hi(g_SndHeap) +/* 8bc4: 263151f0 */ addiu $s1,$s1,%lo(g_SndHeap) /* 8bc8: 267315d0 */ addiu $s3,$s3,%lo(g_AudioManager+0x8) /* 8bcc: 261015c8 */ addiu $s0,$s0,%lo(g_AudioManager) .L00008bd0: @@ -968,7 +968,7 @@ glabel amgrCreate /* 8bdc: 000848c0 */ sll $t1,$t0,0x3 /* 8be0: afa90010 */ sw $t1,0x10($sp) /* 8be4: 02203025 */ or $a2,$s1,$zero -/* 8be8: 0c00bec5 */ jal func0002fb14 +/* 8be8: 0c00bec5 */ jal alHeapDBAlloc /* 8bec: 02803825 */ or $a3,$s4,$zero /* 8bf0: 26100004 */ addiu $s0,$s0,0x4 /* 8bf4: 0213082b */ sltu $at,$s0,$s3 @@ -984,7 +984,7 @@ glabel amgrCreate /* 8c18: 00002025 */ or $a0,$zero,$zero /* 8c1c: 00002825 */ or $a1,$zero,$zero /* 8c20: 02203025 */ or $a2,$s1,$zero -/* 8c24: 0c00bec5 */ jal func0002fb14 +/* 8c24: 0c00bec5 */ jal alHeapDBAlloc /* 8c28: 02803825 */ or $a3,$s4,$zero /* 8c2c: ae020008 */ sw $v0,0x8($s0) /* 8c30: a4400004 */ sh $zero,0x4($v0) @@ -993,7 +993,7 @@ glabel amgrCreate /* 8c3c: 00002025 */ or $a0,$zero,$zero /* 8c40: 00002825 */ or $a1,$zero,$zero /* 8c44: 02203025 */ or $a2,$s1,$zero -/* 8c48: 0c00bec5 */ jal func0002fb14 +/* 8c48: 0c00bec5 */ jal alHeapDBAlloc /* 8c4c: 02803825 */ or $a3,$s4,$zero /* 8c50: 8e0c0008 */ lw $t4,0x8($s0) /* 8c54: 26100004 */ addiu $s0,$s0,0x4 diff --git a/src/lib/lib_09660.c b/src/lib/lib_09660.c index 341a66e55..0a97b887f 100644 --- a/src/lib/lib_09660.c +++ b/src/lib/lib_09660.c @@ -197,7 +197,7 @@ glabel func00009844 /* 97c8: 00002025 */ move $a0,$zero /* 97cc: 00002825 */ move $a1,$zero /* 97d0: 02803025 */ move $a2,$s4 -/* 97d4: 0c00bd05 */ jal func0002fb14 +/* 97d4: 0c00bd05 */ jal alHeapDBAlloc /* 97d8: 24070001 */ li $a3,0x1 /* 97dc: 26310001 */ addiu $s1,$s1,0x1 /* 97e0: 26100014 */ addiu $s0,$s0,0x14 @@ -254,8 +254,8 @@ glabel func00009844 /* 98a4: ac780008 */ sw $t8,0x8($v1) /* 98a8: 3c108009 */ lui $s0,%hi(var80091910) /* 98ac: 3c128009 */ lui $s2,%hi(var80091910+0x14) -/* 98b0: 3c148009 */ lui $s4,%hi(var800951f0) -/* 98b4: 269451f0 */ addiu $s4,$s4,%lo(var800951f0) +/* 98b0: 3c148009 */ lui $s4,%hi(g_SndHeap) +/* 98b4: 269451f0 */ addiu $s4,$s4,%lo(g_SndHeap) /* 98b8: 26521924 */ addiu $s2,$s2,%lo(var80091910+0x14) /* 98bc: 26101910 */ addiu $s0,$s0,%lo(var80091910) .L000098c0: @@ -267,7 +267,7 @@ glabel func00009844 /* 98d4: 00002025 */ or $a0,$zero,$zero /* 98d8: 00002825 */ or $a1,$zero,$zero /* 98dc: 02803025 */ or $a2,$s4,$zero -/* 98e0: 0c00bec5 */ jal func0002fb14 +/* 98e0: 0c00bec5 */ jal alHeapDBAlloc /* 98e4: 24070001 */ addiu $a3,$zero,0x1 /* 98e8: 26310001 */ addiu $s1,$s1,0x1 /* 98ec: 26100014 */ addiu $s0,$s0,0x14 diff --git a/src/lib/lib_2faf0.c b/src/lib/lib_2faf0.c index 449586f63..f5544bfd7 100644 --- a/src/lib/lib_2faf0.c +++ b/src/lib/lib_2faf0.c @@ -5,7 +5,7 @@ #include "types.h" GLOBAL_ASM( -glabel func0002faf0 +glabel alHeapInit /* 2faf0: ac850000 */ sw $a1,0x0($a0) /* 2faf4: ac860008 */ sw $a2,0x8($a0) /* 2faf8: 8c8e0000 */ lw $t6,0x0($a0) @@ -18,7 +18,7 @@ glabel func0002faf0 ); GLOBAL_ASM( -glabel func0002fb14 +glabel alHeapDBAlloc /* 2fb14: 27bdfff8 */ addiu $sp,$sp,-8 /* 2fb18: afa40008 */ sw $a0,0x8($sp) /* 2fb1c: afa5000c */ sw $a1,0xc($sp) diff --git a/src/lib/lib_30ce0.c b/src/lib/lib_30ce0.c index 4e278c092..d95515575 100644 --- a/src/lib/lib_30ce0.c +++ b/src/lib/lib_30ce0.c @@ -91,7 +91,7 @@ glabel func00030ce0 /* 30df4: 8dc7003c */ lw $a3,0x3c($t6) /* 30df8: afaf0010 */ sw $t7,0x10($sp) /* 30dfc: 00002825 */ or $a1,$zero,$zero -/* 30e00: 0c00bec5 */ jal func0002fb14 +/* 30e00: 0c00bec5 */ jal alHeapDBAlloc /* 30e04: 8fa6002c */ lw $a2,0x2c($sp) /* 30e08: 3c188006 */ lui $t8,%hi(var8005f114) /* 30e0c: 8f18f114 */ lw $t8,%lo(var8005f114)($t8) @@ -129,7 +129,7 @@ glabel func00030ce0 /* 30e88: 8d470004 */ lw $a3,0x4($t2) /* 30e8c: afac0010 */ sw $t4,0x10($sp) /* 30e90: 00002825 */ or $a1,$zero,$zero -/* 30e94: 0c00bec5 */ jal func0002fb14 +/* 30e94: 0c00bec5 */ jal alHeapDBAlloc /* 30e98: 8fa6002c */ lw $a2,0x2c($sp) /* 30e9c: 3c0d8006 */ lui $t5,%hi(var8005f114) /* 30ea0: 8dadf114 */ lw $t5,%lo(var8005f114)($t5) @@ -176,7 +176,7 @@ glabel func00030ce0 /* 30f3c: 00002025 */ or $a0,$zero,$zero /* 30f40: 00002825 */ or $a1,$zero,$zero /* 30f44: 8fa6002c */ lw $a2,0x2c($sp) -/* 30f48: 0c00bec5 */ jal func0002fb14 +/* 30f48: 0c00bec5 */ jal alHeapDBAlloc /* 30f4c: 24070001 */ addiu $a3,$zero,0x1 /* 30f50: 3c188006 */ lui $t8,%hi(var8005f114) /* 30f54: 8f18f114 */ lw $t8,%lo(var8005f114)($t8) @@ -202,7 +202,7 @@ glabel func00030ce0 /* 30fa4: 00002025 */ or $a0,$zero,$zero /* 30fa8: 00002825 */ or $a1,$zero,$zero /* 30fac: 8fa6002c */ lw $a2,0x2c($sp) -/* 30fb0: 0c00bec5 */ jal func0002fb14 +/* 30fb0: 0c00bec5 */ jal alHeapDBAlloc /* 30fb4: 24070001 */ addiu $a3,$zero,0x1 /* 30fb8: 3c0d8006 */ lui $t5,%hi(var8005f114) /* 30fbc: 8dadf114 */ lw $t5,%lo(var8005f114)($t5) @@ -219,7 +219,7 @@ glabel func00030ce0 /* 30fe8: 00002025 */ or $a0,$zero,$zero /* 30fec: 00002825 */ or $a1,$zero,$zero /* 30ff0: 8fa6002c */ lw $a2,0x2c($sp) -/* 30ff4: 0c00bec5 */ jal func0002fb14 +/* 30ff4: 0c00bec5 */ jal alHeapDBAlloc /* 30ff8: 24070001 */ addiu $a3,$zero,0x1 /* 30ffc: 3c0c8006 */ lui $t4,%hi(var8005f114) /* 31000: 8d8cf114 */ lw $t4,%lo(var8005f114)($t4) @@ -246,7 +246,7 @@ glabel func00030ce0 /* 31050: 00002025 */ or $a0,$zero,$zero /* 31054: 00002825 */ or $a1,$zero,$zero /* 31058: 8fa6002c */ lw $a2,0x2c($sp) -/* 3105c: 0c00bec5 */ jal func0002fb14 +/* 3105c: 0c00bec5 */ jal alHeapDBAlloc /* 31060: 24070001 */ addiu $a3,$zero,0x1 /* 31064: 3c0e8006 */ lui $t6,%hi(var8005f114) /* 31068: 8dcef114 */ lw $t6,%lo(var8005f114)($t6) @@ -281,7 +281,7 @@ glabel func00030ce0 /* 310dc: 8dc70004 */ lw $a3,0x4($t6) /* 310e0: afad0010 */ sw $t5,0x10($sp) /* 310e4: 00002825 */ or $a1,$zero,$zero -/* 310e8: 0c00bec5 */ jal func0002fb14 +/* 310e8: 0c00bec5 */ jal alHeapDBAlloc /* 310ec: 8fa6002c */ lw $a2,0x2c($sp) /* 310f0: afa20030 */ sw $v0,0x30($sp) /* 310f4: 8fb80040 */ lw $t8,0x40($sp) @@ -367,7 +367,7 @@ glabel func00030ce0 /* 31224: 8d470008 */ lw $a3,0x8($t2) /* 31228: afab0010 */ sw $t3,0x10($sp) /* 3122c: 00002825 */ or $a1,$zero,$zero -/* 31230: 0c00bec5 */ jal func0002fb14 +/* 31230: 0c00bec5 */ jal alHeapDBAlloc /* 31234: 8fa6002c */ lw $a2,0x2c($sp) /* 31238: afa20028 */ sw $v0,0x28($sp) /* 3123c: 3c0e8006 */ lui $t6,%hi(var8005f114) diff --git a/src/lib/lib_317f0.c b/src/lib/lib_317f0.c index 05029bdd0..c2a303546 100644 --- a/src/lib/lib_317f0.c +++ b/src/lib/lib_317f0.c @@ -62,7 +62,7 @@ glabel func000317f0 /* 3184c: 000c6080 */ sll $t4,$t4,0x2 /* 31850: 018b6023 */ subu $t4,$t4,$t3 /* 31854: 000c6080 */ sll $t4,$t4,0x2 -/* 31858: 0c00bec5 */ jal func0002fb14 +/* 31858: 0c00bec5 */ jal alHeapDBAlloc /* 3185c: afac0010 */ sw $t4,0x10($sp) /* 31860: afa20038 */ sw $v0,0x38($sp) /* 31864: 3c0e8006 */ lui $t6,%hi(var8005f12c) @@ -78,7 +78,7 @@ glabel func000317f0 /* 3188c: 0018c8c0 */ sll $t9,$t8,0x3 /* 31890: 0338c823 */ subu $t9,$t9,$t8 /* 31894: 0019c880 */ sll $t9,$t9,0x2 -/* 31898: 0c00bec5 */ jal func0002fb14 +/* 31898: 0c00bec5 */ jal alHeapDBAlloc /* 3189c: afb90010 */ sw $t9,0x10($sp) /* 318a0: afa20038 */ sw $v0,0x38($sp) /* 318a4: 3c048006 */ lui $a0,%hi(var8005f12c) @@ -135,7 +135,7 @@ glabel func000317f0 /* 31968: 95cf0010 */ lhu $t7,0x10($t6) /* 3196c: 8dc6000c */ lw $a2,0xc($t6) /* 31970: 24070002 */ addiu $a3,$zero,0x2 -/* 31974: 0c00bec5 */ jal func0002fb14 +/* 31974: 0c00bec5 */ jal alHeapDBAlloc /* 31978: afaf0010 */ sw $t7,0x10($sp) /* 3197c: 3c01800a */ lui $at,%hi(var8009c334) /* 31980: ac22c334 */ sw $v0,%lo(var8009c334)($at) @@ -229,7 +229,7 @@ glabel func000317f0 /* 3184c: 000c6080 */ sll $t4,$t4,0x2 /* 31850: 018b6023 */ subu $t4,$t4,$t3 /* 31854: 000c6080 */ sll $t4,$t4,0x2 -/* 31858: 0c00bec5 */ jal func0002fb14 +/* 31858: 0c00bec5 */ jal alHeapDBAlloc /* 3185c: afac0010 */ sw $t4,0x10($sp) /* 31860: afa20038 */ sw $v0,0x38($sp) /* 31864: 3c0e8006 */ lui $t6,%hi(var8005f12c) @@ -245,7 +245,7 @@ glabel func000317f0 /* 3188c: 0018c8c0 */ sll $t9,$t8,0x3 /* 31890: 0338c823 */ subu $t9,$t9,$t8 /* 31894: 0019c880 */ sll $t9,$t9,0x2 -/* 31898: 0c00bec5 */ jal func0002fb14 +/* 31898: 0c00bec5 */ jal alHeapDBAlloc /* 3189c: afb90010 */ sw $t9,0x10($sp) /* 318a0: afa20038 */ sw $v0,0x38($sp) /* 318a4: 3c048006 */ lui $a0,%hi(var8005f12c) @@ -302,7 +302,7 @@ glabel func000317f0 /* 31968: 95cf0010 */ lhu $t7,0x10($t6) /* 3196c: 8dc6000c */ lw $a2,0xc($t6) /* 31970: 24070002 */ addiu $a3,$zero,0x2 -/* 31974: 0c00bec5 */ jal func0002fb14 +/* 31974: 0c00bec5 */ jal alHeapDBAlloc /* 31978: afaf0010 */ sw $t7,0x10($sp) /* 3197c: 3c01800a */ lui $at,%hi(var8009c334) /* 31980: ac22c334 */ sw $v0,%lo(var8009c334)($at) @@ -394,7 +394,7 @@ glabel func000317f0 /* 32f94: 000b60c0 */ sll $t4,$t3,0x3 /* 32f98: 018b6021 */ addu $t4,$t4,$t3 /* 32f9c: 000c60c0 */ sll $t4,$t4,0x3 -/* 32fa0: 0c00c499 */ jal func0002fb14 +/* 32fa0: 0c00c499 */ jal alHeapDBAlloc /* 32fa4: afac0010 */ sw $t4,0x10($sp) /* 32fa8: afa20038 */ sw $v0,0x38($sp) /* 32fac: 3c0e8006 */ lui $t6,0x8006 @@ -410,7 +410,7 @@ glabel func000317f0 /* 32fd4: 0018c8c0 */ sll $t9,$t8,0x3 /* 32fd8: 0338c823 */ subu $t9,$t9,$t8 /* 32fdc: 0019c880 */ sll $t9,$t9,0x2 -/* 32fe0: 0c00c499 */ jal func0002fb14 +/* 32fe0: 0c00c499 */ jal alHeapDBAlloc /* 32fe4: afb90010 */ sw $t9,0x10($sp) /* 32fe8: afa20038 */ sw $v0,0x38($sp) /* 32fec: 3c048006 */ lui $a0,0x8006 @@ -465,7 +465,7 @@ glabel func000317f0 /* 330a8: 95cf0010 */ lhu $t7,0x10($t6) /* 330ac: 8dc6000c */ lw $a2,0xc($t6) /* 330b0: 24070002 */ addiu $a3,$zero,0x2 -/* 330b4: 0c00c499 */ jal func0002fb14 +/* 330b4: 0c00c499 */ jal alHeapDBAlloc /* 330b8: afaf0010 */ sw $t7,0x10($sp) /* 330bc: 3c01800a */ lui $at,0x800a /* 330c0: ac220a34 */ sw $v0,0xa34($at) diff --git a/src/lib/lib_34240.c b/src/lib/lib_34240.c index 769639a9c..19955bdbc 100644 --- a/src/lib/lib_34240.c +++ b/src/lib/lib_34240.c @@ -967,7 +967,7 @@ glabel func00034240 /* 34370: 91e70008 */ lbu $a3,0x8($t7) /* 34374: afb80010 */ sw $t8,0x10($sp) /* 34378: 00002825 */ or $a1,$zero,$zero -/* 3437c: 0c00bec5 */ jal func0002fb14 +/* 3437c: 0c00bec5 */ jal alHeapDBAlloc /* 34380: 8fa60024 */ lw $a2,0x24($sp) /* 34384: 8fb90038 */ lw $t9,0x38($sp) /* 34388: af220060 */ sw $v0,0x60($t9) @@ -979,7 +979,7 @@ glabel func00034240 /* 343a0: 8d070000 */ lw $a3,0x0($t0) /* 343a4: afa90010 */ sw $t1,0x10($sp) /* 343a8: 00002825 */ or $a1,$zero,$zero -/* 343ac: 0c00bec5 */ jal func0002fb14 +/* 343ac: 0c00bec5 */ jal alHeapDBAlloc /* 343b0: 8fa60024 */ lw $a2,0x24($sp) /* 343b4: afa20028 */ sw $v0,0x28($sp) /* 343b8: 8faa0038 */ lw $t2,0x38($sp) @@ -1021,7 +1021,7 @@ glabel func00034240 /* 34440: 8d070004 */ lw $a3,0x4($t0) /* 34444: afa90010 */ sw $t1,0x10($sp) /* 34448: 00002825 */ or $a1,$zero,$zero -/* 3444c: 0c00bec5 */ jal func0002fb14 +/* 3444c: 0c00bec5 */ jal alHeapDBAlloc /* 34450: 8fa60024 */ lw $a2,0x24($sp) /* 34454: afa20030 */ sw $v0,0x30($sp) /* 34458: 8fa40038 */ lw $a0,0x38($sp) @@ -1130,7 +1130,7 @@ glabel func00034240 /* 34370: 91e70008 */ lbu $a3,0x8($t7) /* 34374: afb80010 */ sw $t8,0x10($sp) /* 34378: 00002825 */ or $a1,$zero,$zero -/* 3437c: 0c00bec5 */ jal func0002fb14 +/* 3437c: 0c00bec5 */ jal alHeapDBAlloc /* 34380: 8fa60024 */ lw $a2,0x24($sp) /* 34384: 8fb90038 */ lw $t9,0x38($sp) /* 34388: af220060 */ sw $v0,0x60($t9) @@ -1142,7 +1142,7 @@ glabel func00034240 /* 343a0: 8d070000 */ lw $a3,0x0($t0) /* 343a4: afa90010 */ sw $t1,0x10($sp) /* 343a8: 00002825 */ or $a1,$zero,$zero -/* 343ac: 0c00bec5 */ jal func0002fb14 +/* 343ac: 0c00bec5 */ jal alHeapDBAlloc /* 343b0: 8fa60024 */ lw $a2,0x24($sp) /* 343b4: afa20028 */ sw $v0,0x28($sp) /* 343b8: 8faa0038 */ lw $t2,0x38($sp) @@ -1184,7 +1184,7 @@ glabel func00034240 /* 34440: 8d070004 */ lw $a3,0x4($t0) /* 34444: afa90010 */ sw $t1,0x10($sp) /* 34448: 00002825 */ or $a1,$zero,$zero -/* 3444c: 0c00bec5 */ jal func0002fb14 +/* 3444c: 0c00bec5 */ jal alHeapDBAlloc /* 34450: 8fa60024 */ lw $a2,0x24($sp) /* 34454: afa20030 */ sw $v0,0x30($sp) /* 34458: 8fa40038 */ lw $a0,0x38($sp) diff --git a/src/lib/lib_37b00.c b/src/lib/lib_37b00.c index af8347f04..d4c219d39 100644 --- a/src/lib/lib_37b00.c +++ b/src/lib/lib_37b00.c @@ -58,7 +58,7 @@ glabel func00037b00 /* 37b24: 00002025 */ or $a0,$zero,$zero /* 37b28: 00002825 */ or $a1,$zero,$zero /* 37b2c: 8fa60020 */ lw $a2,0x20($sp) -/* 37b30: 0c00bec5 */ jal func0002fb14 +/* 37b30: 0c00bec5 */ jal alHeapDBAlloc /* 37b34: 34078480 */ dli $a3,0x8480 /* 37b38: 3c01800a */ lui $at,%hi(var8009c3f4) /* 37b3c: ac22c3f4 */ sw $v0,%lo(var8009c3f4)($at) @@ -67,7 +67,7 @@ glabel func00037b00 /* 37b48: 00002025 */ or $a0,$zero,$zero /* 37b4c: 00002825 */ or $a1,$zero,$zero /* 37b50: 8fa60020 */ lw $a2,0x20($sp) -/* 37b54: 0c00bec5 */ jal func0002fb14 +/* 37b54: 0c00bec5 */ jal alHeapDBAlloc /* 37b58: 24070001 */ addiu $a3,$zero,0x1 /* 37b5c: 3c018006 */ lui $at,%hi(var8005f6f8) /* 37b60: ac22f6f8 */ sw $v0,%lo(var8005f6f8)($at) @@ -76,7 +76,7 @@ glabel func00037b00 /* 37b6c: 00002025 */ or $a0,$zero,$zero /* 37b70: 00002825 */ or $a1,$zero,$zero /* 37b74: 8fa60020 */ lw $a2,0x20($sp) -/* 37b78: 0c00bec5 */ jal func0002fb14 +/* 37b78: 0c00bec5 */ jal alHeapDBAlloc /* 37b7c: 24070001 */ addiu $a3,$zero,0x1 /* 37b80: 3c018006 */ lui $at,%hi(var8005f6fc) /* 37b84: ac22f6fc */ sw $v0,%lo(var8005f6fc)($at) @@ -85,7 +85,7 @@ glabel func00037b00 /* 37b90: 00002025 */ or $a0,$zero,$zero /* 37b94: 00002825 */ or $a1,$zero,$zero /* 37b98: 8fa60020 */ lw $a2,0x20($sp) -/* 37b9c: 0c00bec5 */ jal func0002fb14 +/* 37b9c: 0c00bec5 */ jal alHeapDBAlloc /* 37ba0: 24070400 */ addiu $a3,$zero,0x400 /* 37ba4: 3c01800a */ lui $at,%hi(var8009c6d8) /* 37ba8: ac22c6d8 */ sw $v0,%lo(var8009c6d8)($at) @@ -94,7 +94,7 @@ glabel func00037b00 /* 37bb4: 00002025 */ or $a0,$zero,$zero /* 37bb8: 00002825 */ or $a1,$zero,$zero /* 37bbc: 8fa60020 */ lw $a2,0x20($sp) -/* 37bc0: 0c00bec5 */ jal func0002fb14 +/* 37bc0: 0c00bec5 */ jal alHeapDBAlloc /* 37bc4: 24070400 */ addiu $a3,$zero,0x400 /* 37bc8: 3c01800a */ lui $at,%hi(var8009c6dc) /* 37bcc: ac22c6dc */ sw $v0,%lo(var8009c6dc)($at) @@ -103,7 +103,7 @@ glabel func00037b00 /* 37bd8: 00002025 */ or $a0,$zero,$zero /* 37bdc: 00002825 */ or $a1,$zero,$zero /* 37be0: 8fa60020 */ lw $a2,0x20($sp) -/* 37be4: 0c00bec5 */ jal func0002fb14 +/* 37be4: 0c00bec5 */ jal alHeapDBAlloc /* 37be8: 3407a410 */ dli $a3,0xa410 /* 37bec: 3c01800a */ lui $at,%hi(var8009c640) /* 37bf0: ac22c640 */ sw $v0,%lo(var8009c640)($at) @@ -112,7 +112,7 @@ glabel func00037b00 /* 37bfc: 00002025 */ or $a0,$zero,$zero /* 37c00: 00002825 */ or $a1,$zero,$zero /* 37c04: 8fa60020 */ lw $a2,0x20($sp) -/* 37c08: 0c00bec5 */ jal func0002fb14 +/* 37c08: 0c00bec5 */ jal alHeapDBAlloc /* 37c0c: 34078000 */ dli $a3,0x8000 /* 37c10: 3c01800a */ lui $at,%hi(var8009c644) /* 37c14: ac22c644 */ sw $v0,%lo(var8009c644)($at) @@ -123,7 +123,7 @@ glabel func00037b00 /* 37c28: 00002025 */ or $a0,$zero,$zero /* 37c2c: 00002825 */ or $a1,$zero,$zero /* 37c30: 8fa60020 */ lw $a2,0x20($sp) -/* 37c34: 0c00bec5 */ jal func0002fb14 +/* 37c34: 0c00bec5 */ jal alHeapDBAlloc /* 37c38: 24070001 */ addiu $a3,$zero,0x1 /* 37c3c: 3c01800a */ lui $at,%hi(var8009c398) /* 37c40: ac22c398 */ sw $v0,%lo(var8009c398)($at) @@ -132,7 +132,7 @@ glabel func00037b00 /* 37c4c: 00002025 */ or $a0,$zero,$zero /* 37c50: 00002825 */ or $a1,$zero,$zero /* 37c54: 8fa60020 */ lw $a2,0x20($sp) -/* 37c58: 0c00bec5 */ jal func0002fb14 +/* 37c58: 0c00bec5 */ jal alHeapDBAlloc /* 37c5c: 24070001 */ addiu $a3,$zero,0x1 /* 37c60: 3c0d800a */ lui $t5,%hi(var8009c390) /* 37c64: 25adc390 */ addiu $t5,$t5,%lo(var8009c390) @@ -231,7 +231,7 @@ glabel func00037b00 /* 38ef4: 00002025 */ or $a0,$zero,$zero /* 38ef8: 00002825 */ or $a1,$zero,$zero /* 38efc: 8fa60020 */ lw $a2,0x20($sp) -/* 38f00: 0c00c499 */ jal func0002fb14 +/* 38f00: 0c00c499 */ jal alHeapDBAlloc /* 38f04: 34078480 */ dli $a3,0x8480 /* 38f08: 3c01800a */ lui $at,0x800a /* 38f0c: ac220af4 */ sw $v0,0xaf4($at) @@ -240,7 +240,7 @@ glabel func00037b00 /* 38f18: 00002025 */ or $a0,$zero,$zero /* 38f1c: 00002825 */ or $a1,$zero,$zero /* 38f20: 8fa60020 */ lw $a2,0x20($sp) -/* 38f24: 0c00c499 */ jal func0002fb14 +/* 38f24: 0c00c499 */ jal alHeapDBAlloc /* 38f28: 24070001 */ addiu $a3,$zero,0x1 /* 38f2c: 3c018006 */ lui $at,0x8006 /* 38f30: ac221c08 */ sw $v0,0x1c08($at) @@ -249,7 +249,7 @@ glabel func00037b00 /* 38f3c: 00002025 */ or $a0,$zero,$zero /* 38f40: 00002825 */ or $a1,$zero,$zero /* 38f44: 8fa60020 */ lw $a2,0x20($sp) -/* 38f48: 0c00c499 */ jal func0002fb14 +/* 38f48: 0c00c499 */ jal alHeapDBAlloc /* 38f4c: 24070001 */ addiu $a3,$zero,0x1 /* 38f50: 3c018006 */ lui $at,0x8006 /* 38f54: ac221c0c */ sw $v0,0x1c0c($at) @@ -258,7 +258,7 @@ glabel func00037b00 /* 38f60: 00002025 */ or $a0,$zero,$zero /* 38f64: 00002825 */ or $a1,$zero,$zero /* 38f68: 8fa60020 */ lw $a2,0x20($sp) -/* 38f6c: 0c00c499 */ jal func0002fb14 +/* 38f6c: 0c00c499 */ jal alHeapDBAlloc /* 38f70: 24070400 */ addiu $a3,$zero,0x400 /* 38f74: 3c01800a */ lui $at,0x800a /* 38f78: ac220dd8 */ sw $v0,0xdd8($at) @@ -267,7 +267,7 @@ glabel func00037b00 /* 38f84: 00002025 */ or $a0,$zero,$zero /* 38f88: 00002825 */ or $a1,$zero,$zero /* 38f8c: 8fa60020 */ lw $a2,0x20($sp) -/* 38f90: 0c00c499 */ jal func0002fb14 +/* 38f90: 0c00c499 */ jal alHeapDBAlloc /* 38f94: 24070400 */ addiu $a3,$zero,0x400 /* 38f98: 3c01800a */ lui $at,0x800a /* 38f9c: ac220ddc */ sw $v0,0xddc($at) @@ -276,7 +276,7 @@ glabel func00037b00 /* 38fa8: 00002025 */ or $a0,$zero,$zero /* 38fac: 00002825 */ or $a1,$zero,$zero /* 38fb0: 8fa60020 */ lw $a2,0x20($sp) -/* 38fb4: 0c00c499 */ jal func0002fb14 +/* 38fb4: 0c00c499 */ jal alHeapDBAlloc /* 38fb8: 3407a410 */ dli $a3,0xa410 /* 38fbc: 3c01800a */ lui $at,0x800a /* 38fc0: ac220d40 */ sw $v0,0xd40($at) @@ -285,7 +285,7 @@ glabel func00037b00 /* 38fcc: 00002025 */ or $a0,$zero,$zero /* 38fd0: 00002825 */ or $a1,$zero,$zero /* 38fd4: 8fa60020 */ lw $a2,0x20($sp) -/* 38fd8: 0c00c499 */ jal func0002fb14 +/* 38fd8: 0c00c499 */ jal alHeapDBAlloc /* 38fdc: 34078000 */ dli $a3,0x8000 /* 38fe0: 3c01800a */ lui $at,0x800a /* 38fe4: ac220d44 */ sw $v0,0xd44($at) @@ -296,7 +296,7 @@ glabel func00037b00 /* 38ff8: 00002025 */ or $a0,$zero,$zero /* 38ffc: 00002825 */ or $a1,$zero,$zero /* 39000: 8fa60020 */ lw $a2,0x20($sp) -/* 39004: 0c00c499 */ jal func0002fb14 +/* 39004: 0c00c499 */ jal alHeapDBAlloc /* 39008: 24070001 */ addiu $a3,$zero,0x1 /* 3900c: 3c01800a */ lui $at,0x800a /* 39010: ac220a98 */ sw $v0,0xa98($at) @@ -305,7 +305,7 @@ glabel func00037b00 /* 3901c: 00002025 */ or $a0,$zero,$zero /* 39020: 00002825 */ or $a1,$zero,$zero /* 39024: 8fa60020 */ lw $a2,0x20($sp) -/* 39028: 0c00c499 */ jal func0002fb14 +/* 39028: 0c00c499 */ jal alHeapDBAlloc /* 3902c: 24070001 */ addiu $a3,$zero,0x1 /* 39030: 3c0d800a */ lui $t5,0x800a /* 39034: 25ad0a90 */ addiu $t5,$t5,0xa90 diff --git a/src/lib/lib_3a100.c b/src/lib/lib_3a100.c index 755c736db..8b9c56a4f 100644 --- a/src/lib/lib_3a100.c +++ b/src/lib/lib_3a100.c @@ -1932,7 +1932,7 @@ glabel var70054ad8 /* 3bc74: 00002025 */ or $a0,$zero,$zero /* 3bc78: 00002825 */ or $a1,$zero,$zero /* 3bc7c: 8fa60044 */ lw $a2,0x44($sp) -/* 3bc80: 0c00bec5 */ jal func0002fb14 +/* 3bc80: 0c00bec5 */ jal alHeapDBAlloc /* 3bc84: 24070001 */ addiu $a3,$zero,0x1 /* 3bc88: afa20024 */ sw $v0,0x24($sp) /* 3bc8c: 8faf0024 */ lw $t7,0x24($sp) @@ -1990,7 +1990,7 @@ glabel var70054ad8 /* 3bd50: 91a70008 */ lbu $a3,0x8($t5) /* 3bd54: afae0010 */ sw $t6,0x10($sp) /* 3bd58: 00002825 */ or $a1,$zero,$zero -/* 3bd5c: 0c00bec5 */ jal func0002fb14 +/* 3bd5c: 0c00bec5 */ jal alHeapDBAlloc /* 3bd60: 8fa60044 */ lw $a2,0x44($sp) /* 3bd64: 8fb80024 */ lw $t8,0x24($sp) /* 3bd68: af020004 */ sw $v0,0x4($t8) @@ -2000,7 +2000,7 @@ glabel var70054ad8 /* 3bd78: 8de70000 */ lw $a3,0x0($t7) /* 3bd7c: afa80010 */ sw $t0,0x10($sp) /* 3bd80: 00002825 */ or $a1,$zero,$zero -/* 3bd84: 0c00bec5 */ jal func0002fb14 +/* 3bd84: 0c00bec5 */ jal alHeapDBAlloc /* 3bd88: 8fa60044 */ lw $a2,0x44($sp) /* 3bd8c: 8fb90024 */ lw $t9,0x24($sp) /* 3bd90: af220020 */ sw $v0,0x20($t9) @@ -2013,7 +2013,7 @@ glabel var70054ad8 /* 3bdac: 8d870000 */ lw $a3,0x0($t4) /* 3bdb0: afab0010 */ sw $t3,0x10($sp) /* 3bdb4: 00002825 */ or $a1,$zero,$zero -/* 3bdb8: 0c00bec5 */ jal func0002fb14 +/* 3bdb8: 0c00bec5 */ jal alHeapDBAlloc /* 3bdbc: 8fa60044 */ lw $a2,0x44($sp) /* 3bdc0: 8fad0024 */ lw $t5,0x24($sp) /* 3bdc4: ada20024 */ sw $v0,0x24($t5) @@ -2183,7 +2183,7 @@ glabel var70054ad8 /* 3c044: 00002025 */ or $a0,$zero,$zero /* 3c048: 00002825 */ or $a1,$zero,$zero /* 3c04c: 8fa60044 */ lw $a2,0x44($sp) -/* 3c050: 0c00bec5 */ jal func0002fb14 +/* 3c050: 0c00bec5 */ jal alHeapDBAlloc /* 3c054: 24070001 */ addiu $a3,$zero,0x1 /* 3c058: 8fac0028 */ lw $t4,0x28($sp) /* 3c05c: ad820024 */ sw $v0,0x24($t4) @@ -2192,7 +2192,7 @@ glabel var70054ad8 /* 3c068: 00002025 */ or $a0,$zero,$zero /* 3c06c: 00002825 */ or $a1,$zero,$zero /* 3c070: 8fa60044 */ lw $a2,0x44($sp) -/* 3c074: 0c00bec5 */ jal func0002fb14 +/* 3c074: 0c00bec5 */ jal alHeapDBAlloc /* 3c078: 24070001 */ addiu $a3,$zero,0x1 /* 3c07c: 8fad0028 */ lw $t5,0x28($sp) /* 3c080: 8da80024 */ lw $t0,0x24($t5) @@ -2202,7 +2202,7 @@ glabel var70054ad8 /* 3c090: 00002025 */ or $a0,$zero,$zero /* 3c094: 00002825 */ or $a1,$zero,$zero /* 3c098: 8fa60044 */ lw $a2,0x44($sp) -/* 3c09c: 0c00bec5 */ jal func0002fb14 +/* 3c09c: 0c00bec5 */ jal alHeapDBAlloc /* 3c0a0: 24070001 */ addiu $a3,$zero,0x1 /* 3c0a4: 8faf0028 */ lw $t7,0x28($sp) /* 3c0a8: 8de90024 */ lw $t1,0x24($t7) @@ -2238,7 +2238,7 @@ glabel var70054ad8 /* 3c118: 00002025 */ or $a0,$zero,$zero /* 3c11c: 00002825 */ or $a1,$zero,$zero /* 3c120: 8fa60044 */ lw $a2,0x44($sp) -/* 3c124: 0c00bec5 */ jal func0002fb14 +/* 3c124: 0c00bec5 */ jal alHeapDBAlloc /* 3c128: 24070001 */ addiu $a3,$zero,0x1 /* 3c12c: 8fa80028 */ lw $t0,0x28($sp) /* 3c130: ad020020 */ sw $v0,0x20($t0) @@ -2247,7 +2247,7 @@ glabel var70054ad8 /* 3c13c: 00002025 */ or $a0,$zero,$zero /* 3c140: 00002825 */ or $a1,$zero,$zero /* 3c144: 8fa60044 */ lw $a2,0x44($sp) -/* 3c148: 0c00bec5 */ jal func0002fb14 +/* 3c148: 0c00bec5 */ jal alHeapDBAlloc /* 3c14c: 24070001 */ addiu $a3,$zero,0x1 /* 3c150: 8faf0028 */ lw $t7,0x28($sp) /* 3c154: 8de90020 */ lw $t1,0x20($t7) @@ -2257,7 +2257,7 @@ glabel var70054ad8 /* 3c164: 00002025 */ or $a0,$zero,$zero /* 3c168: 00002825 */ or $a1,$zero,$zero /* 3c16c: 8fa60044 */ lw $a2,0x44($sp) -/* 3c170: 0c00bec5 */ jal func0002fb14 +/* 3c170: 0c00bec5 */ jal alHeapDBAlloc /* 3c174: 24070001 */ addiu $a3,$zero,0x1 /* 3c178: 8fb90028 */ lw $t9,0x28($sp) /* 3c17c: 8f2c0020 */ lw $t4,0x20($t9) @@ -2316,7 +2316,7 @@ glabel func0003c214 /* 3c230: 00002025 */ or $a0,$zero,$zero /* 3c234: 00002825 */ or $a1,$zero,$zero /* 3c238: 8fa60028 */ lw $a2,0x28($sp) -/* 3c23c: 0c00bec5 */ jal func0002fb14 +/* 3c23c: 0c00bec5 */ jal alHeapDBAlloc /* 3c240: 24070001 */ addiu $a3,$zero,0x1 /* 3c244: 8faf0020 */ lw $t7,0x20($sp) /* 3c248: ade2000c */ sw $v0,0xc($t7) @@ -2325,7 +2325,7 @@ glabel func0003c214 /* 3c254: 00002025 */ or $a0,$zero,$zero /* 3c258: 00002825 */ or $a1,$zero,$zero /* 3c25c: 8fa60028 */ lw $a2,0x28($sp) -/* 3c260: 0c00bec5 */ jal func0002fb14 +/* 3c260: 0c00bec5 */ jal alHeapDBAlloc /* 3c264: 24070001 */ addiu $a3,$zero,0x1 /* 3c268: 8fb90020 */ lw $t9,0x20($sp) /* 3c26c: af220010 */ sw $v0,0x10($t9) @@ -2347,7 +2347,7 @@ glabel func0003c214 /* 3c2ac: 00002025 */ or $a0,$zero,$zero /* 3c2b0: 00002825 */ or $a1,$zero,$zero /* 3c2b4: 8fa60028 */ lw $a2,0x28($sp) -/* 3c2b8: 0c00bec5 */ jal func0002fb14 +/* 3c2b8: 0c00bec5 */ jal alHeapDBAlloc /* 3c2bc: 24070001 */ addiu $a3,$zero,0x1 /* 3c2c0: 8fae0020 */ lw $t6,0x20($sp) /* 3c2c4: adc20040 */ sw $v0,0x40($t6) @@ -2368,7 +2368,7 @@ glabel func0003c214 /* 3c300: 00002025 */ or $a0,$zero,$zero /* 3c304: 00002825 */ or $a1,$zero,$zero /* 3c308: 8fa60028 */ lw $a2,0x28($sp) -/* 3c30c: 0c00bec5 */ jal func0002fb14 +/* 3c30c: 0c00bec5 */ jal alHeapDBAlloc /* 3c310: 24070001 */ addiu $a3,$zero,0x1 /* 3c314: 8fab0020 */ lw $t3,0x20($sp) /* 3c318: ad620054 */ sw $v0,0x54($t3) @@ -2427,7 +2427,7 @@ glabel func0003c214 /* 3c3ec: 00002025 */ or $a0,$zero,$zero /* 3c3f0: 00002825 */ or $a1,$zero,$zero /* 3c3f4: 8fa60028 */ lw $a2,0x28($sp) -/* 3c3f8: 0c00bec5 */ jal func0002fb14 +/* 3c3f8: 0c00bec5 */ jal alHeapDBAlloc /* 3c3fc: 24070001 */ addiu $a3,$zero,0x1 /* 3c400: 8fac0020 */ lw $t4,0x20($sp) /* 3c404: ad8200bc */ sw $v0,0xbc($t4) diff --git a/src/lib/main.c b/src/lib/main.c index d8789bdb3..1b356fb71 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -1723,7 +1723,7 @@ void mainEntry(void) { mainInit(); func0002f8a0(); - snd0000f804(); + sndInit(); while (true) { mainLoop(); diff --git a/src/lib/snd.c b/src/lib/snd.c index f0f6daf0e..6b55c19cd 100644 --- a/src/lib/snd.c +++ b/src/lib/snd.c @@ -5,6 +5,7 @@ #include "game/music.h" #include "bss.h" #include "lib/lib_074f0.h" +#include "lib/args.h" #include "lib/dma.h" #include "lib/snd.h" #include "lib/memory.h" @@ -35,43 +36,15 @@ u32 var80094ecc; u32 var80094ed0; u32 var80094ed4; struct var80094ed8 var80094ed8[3]; -u32 var800951f0[4]; +ALHeap g_SndHeap; u32 var80095200; u32 var80095204; -u32 var80095208; +struct seqtable *g_SeqTable; u32 var8009520c; u8 var80095210[0x40f0]; -const char var70053b20[] = "RUSSES SOUND GUARD STRING"; +const char g_SndGuardString[] = "RUSSES SOUND GUARD STRING"; const char var70053b3c[] = "Snd: SoundHeaderCacheInit\n"; -const char var70053b58[] = "-nomp3"; -const char var70053b60[] = "RWI : Initialising the new and improved MP3 player\n"; -const char var70053b94[] = "RWI : MP3 player Initialising Done\n"; -const char var70053bb8[] = "gsSndpNew\n"; -const char var70053bc4[] = "Set the sample callbacks\n"; - -#if VERSION < VERSION_NTSC_1_0 -const char var70055250nb[] = "DMA-Crash %s %d Ram: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"; -const char var700552a8nb[] = "snd.c"; -const char var700552b0nb[] = "Snd Heap Check FAILED"; -#endif - -const char var70053be0[] = "Snd_Play_Universal : Overriding -> Link = %d\n"; - -#if VERSION < VERSION_NTSC_1_0 -const char var700552f0nb[] = "Snd_Play_Mpeg : sndId=%d, vol=%d, pan=%d\n"; -#endif - -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}; bool g_Silent = false; u32 var8005dda4 = 0x00000000; @@ -84,12 +57,12 @@ u32 var8005ddbc = 0x00000000; u32 var8005ddc0 = 0x00000000; u32 var8005ddc4 = 0x00000000; u16 g_SfxVolume = 32767; -u32 g_SoundMode = SOUNDMODE_STEREO; -u32 var8005ddd0 = 0x00000000; +s32 g_SoundMode = SOUNDMODE_STEREO; +bool g_SndMp3Enabled = false; s32 var8005ddd4 = 0x00000000; u32 var8005ddd8 = 0x00000000; u32 var8005dddc = 0x00000000; -u32 var8005dde0 = 0x00000000; +u8 *g_SndGuardStringPtr = NULL; // 3e04 struct audiorussmapping g_AudioRussMappings[] = { @@ -679,6 +652,11 @@ u32 var8005ede4 = 0x4ccc6ccb; u32 var8005ede8 = 0xffff0000; u32 var8005edec = 0xffffffff; +extern u8 _seqctlSegmentRomStart; +extern u8 _seqctlSegmentRomEnd; +extern u8 _seqtblSegmentRomStart; +extern u8 _sequencesSegmentRomStart; + GLOBAL_ASM( glabel snd0000e9d0 /* e9d0: 3c028009 */ lui $v0,%hi(var80094eb4) @@ -841,8 +819,8 @@ glabel snd0000eb2c /* ebb8: 25294ea0 */ addiu $t1,$t1,%lo(var80094ea0) /* ebbc: ac2b4ea0 */ sw $t3,%lo(var80094ea0)($at) /* ebc0: 8d330000 */ lw $s3,0x0($t1) -/* ebc4: 3c068009 */ lui $a2,%hi(var800951f0) -/* ebc8: 24c651f0 */ addiu $a2,$a2,%lo(var800951f0) +/* ebc4: 3c068009 */ lui $a2,%hi(g_SndHeap) +/* ebc8: 24c651f0 */ addiu $a2,$a2,%lo(g_SndHeap) /* ebcc: 00136080 */ sll $t4,$s3,0x2 /* ebd0: 01809825 */ or $s3,$t4,$zero /* ebd4: 26730023 */ addiu $s3,$s3,0x23 @@ -851,7 +829,7 @@ glabel snd0000eb2c /* ebe0: afb30010 */ sw $s3,0x10($sp) /* ebe4: 00002025 */ or $a0,$zero,$zero /* ebe8: 00002825 */ or $a1,$zero,$zero -/* ebec: 0c00bec5 */ jal func0002fb14 +/* ebec: 0c00bec5 */ jal alHeapDBAlloc /* ebf0: 24070001 */ addiu $a3,$zero,0x1 /* ebf4: ae220000 */ sw $v0,0x0($s1) /* ebf8: 00402025 */ or $a0,$v0,$zero @@ -881,13 +859,13 @@ glabel snd0000eb2c /* ec54: 8e390000 */ lw $t9,0x0($s1) /* ec58: 00001825 */ or $v1,$zero,$zero .L0000ec5c: -/* ec5c: 3c068009 */ lui $a2,%hi(var800951f0) -/* ec60: 24c651f0 */ addiu $a2,$a2,%lo(var800951f0) +/* ec5c: 3c068009 */ lui $a2,%hi(g_SndHeap) +/* ec60: 24c651f0 */ addiu $a2,$a2,%lo(g_SndHeap) /* ec64: 00002025 */ or $a0,$zero,$zero /* ec68: 00002825 */ or $a1,$zero,$zero /* ec6c: 24070002 */ addiu $a3,$zero,0x2 /* ec70: afa80010 */ sw $t0,0x10($sp) -/* ec74: 0c00bec5 */ jal func0002fb14 +/* ec74: 0c00bec5 */ jal alHeapDBAlloc /* ec78: afa3016c */ sw $v1,0x16c($sp) /* ec7c: 3c098009 */ lui $t1,%hi(var80094ea0) /* ec80: 25294ea0 */ addiu $t1,$t1,%lo(var80094ea0) @@ -982,7 +960,7 @@ glabel snd0000eb2c /* f388: afb30010 */ sw $s3,0x10($sp) /* f38c: 00002025 */ or $a0,$zero,$zero /* f390: 00002825 */ or $a1,$zero,$zero -/* f394: 0c00c499 */ jal func0002fb14 +/* f394: 0c00c499 */ jal alHeapDBAlloc /* f398: 24070001 */ addiu $a3,$zero,0x1 /* f39c: ae220000 */ sw $v0,0x0($s1) /* f3a0: 00402025 */ or $a0,$v0,$zero @@ -1018,7 +996,7 @@ glabel snd0000eb2c /* f410: 00002825 */ or $a1,$zero,$zero /* f414: 24070002 */ addiu $a3,$zero,0x2 /* f418: afa80010 */ sw $t0,0x10($sp) -/* f41c: 0c00c499 */ jal func0002fb14 +/* f41c: 0c00c499 */ jal alHeapDBAlloc /* f420: afa3016c */ sw $v1,0x16c($sp) /* f424: 3c098009 */ lui $t1,0x8009 /* f428: 25297e20 */ addiu $t1,$t1,0x7e20 @@ -2083,13 +2061,13 @@ glabel snd0000f49c GLOBAL_ASM( glabel snd0000f67c /* f67c: 27bdffc0 */ addiu $sp,$sp,-64 -/* f680: 3c198009 */ lui $t9,%hi(var800951f0) +/* f680: 3c198009 */ lui $t9,%hi(g_SndHeap) /* f684: afbf001c */ sw $ra,0x1c($sp) /* f688: afa40040 */ sw $a0,0x40($sp) /* f68c: 240e002c */ addiu $t6,$zero,0x2c /* f690: 240f0040 */ addiu $t7,$zero,0x40 /* f694: 24180010 */ addiu $t8,$zero,0x10 -/* f698: 273951f0 */ addiu $t9,$t9,%lo(var800951f0) +/* f698: 273951f0 */ addiu $t9,$t9,%lo(g_SndHeap) /* f69c: afae0020 */ sw $t6,0x20($sp) /* f6a0: afaf0024 */ sw $t7,0x24($sp) /* f6a4: a3b80028 */ sb $t8,0x28($sp) @@ -2115,20 +2093,20 @@ glabel snd0000f67c /* f6f0: ac4a0000 */ sw $t2,0x0($v0) .L0000f6f4: /* f6f4: 8c4b0000 */ lw $t3,0x0($v0) -/* f6f8: 3c068009 */ lui $a2,%hi(var800951f0) -/* f6fc: 24c651f0 */ addiu $a2,$a2,%lo(var800951f0) +/* f6f8: 3c068009 */ lui $a2,%hi(g_SndHeap) +/* f6fc: 24c651f0 */ addiu $a2,$a2,%lo(g_SndHeap) /* f700: 24070001 */ addiu $a3,$zero,0x1 -/* f704: 0c00bec5 */ jal func0002fb14 +/* f704: 0c00bec5 */ jal alHeapDBAlloc /* f708: afab0010 */ sw $t3,0x10($sp) /* f70c: 8fac0040 */ lw $t4,0x40($sp) -/* f710: 3c068009 */ lui $a2,%hi(var800951f0) +/* f710: 3c068009 */ lui $a2,%hi(g_SndHeap) /* f714: 240d008c */ addiu $t5,$zero,0x8c /* f718: ad8200fc */ sw $v0,0xfc($t4) /* f71c: afad0010 */ sw $t5,0x10($sp) -/* f720: 24c651f0 */ addiu $a2,$a2,%lo(var800951f0) +/* f720: 24c651f0 */ addiu $a2,$a2,%lo(g_SndHeap) /* f724: 00002025 */ or $a0,$zero,$zero /* f728: 00002825 */ or $a1,$zero,$zero -/* f72c: 0c00bec5 */ jal func0002fb14 +/* f72c: 0c00bec5 */ jal alHeapDBAlloc /* f730: 24070001 */ addiu $a3,$zero,0x1 /* f734: 8fae0040 */ lw $t6,0x40($sp) /* f738: 00402025 */ or $a0,$v0,$zero @@ -2146,8 +2124,10 @@ glabel snd0000f67c /* f768: 00000000 */ nop ); +void snd0000f76c(void); + GLOBAL_ASM( -glabel func0000f76c +glabel snd0000f76c /* f76c: 3c0e800a */ lui $t6,%hi(var80095210+0x3e14) /* f770: 25ce9024 */ addiu $t6,$t6,%lo(var80095210+0x3e14) /* f774: 008e082b */ sltu $at,$a0,$t6 @@ -2170,8 +2150,10 @@ glabel func0000f76c /* f7b4: 00000000 */ nop ); +void snd0000f7b8(void); + GLOBAL_ASM( -glabel func0000f7b8 +glabel snd0000f7b8 /* f7b8: 3c0e800a */ lui $t6,%hi(var80095210+0x3e14) /* f7bc: 25ce9024 */ addiu $t6,$t6,%lo(var80095210+0x3e14) /* f7c0: 008e082b */ sltu $at,$a0,$t6 @@ -2194,507 +2176,174 @@ glabel func0000f7b8 /* f800: 00000000 */ nop ); +void sndInit(void) +{ + u32 sp7c[5]; + #if VERSION >= VERSION_PAL_FINAL -GLOBAL_ASM( -glabel snd0000f804 -/* f564: 3c0e8009 */ lui $t6,0x8009 -/* f568: 91ce1040 */ lbu $t6,0x1040($t6) -/* f56c: 27bdff60 */ addiu $sp,$sp,-160 -/* f570: afb0001c */ sw $s0,0x1c($sp) -/* f574: 24020001 */ li $v0,0x1 -/* f578: 3c100006 */ lui $s0,0x6 -/* f57c: 3c01800a */ lui $at,0x800a -/* f580: afbf0024 */ sw $ra,0x24($sp) -/* f584: afb10020 */ sw $s1,0x20($sp) -/* f588: 3610f800 */ ori $s0,$s0,0xf800 -/* f58c: 144e000d */ bne $v0,$t6,.PF0000f5c4 -/* f590: a020a9f3 */ sb $zero,-0x560d($at) -/* f594: 3c018009 */ lui $at,0x8009 -/* f598: ac2253f8 */ sw $v0,0x53f8($at) -/* f59c: 3c100006 */ lui $s0,0x6 -/* f5a0: 3c01fffd */ lui $at,0xfffd -/* f5a4: 3610e000 */ ori $s0,$s0,0xe000 -/* f5a8: 3421dc00 */ ori $at,$at,0xdc00 -/* f5ac: 02018021 */ addu $s0,$s0,$at -/* f5b0: 2610d000 */ addiu $s0,$s0,-12288 -/* f5b4: 3c018006 */ lui $at,0x8006 -/* f5b8: 2610a400 */ addiu $s0,$s0,-23552 -/* f5bc: 1000000d */ b .PF0000f5f4 -/* f5c0: ac20da70 */ sw $zero,-0x2590($at) -.PF0000f5c4: -/* f5c4: 3c018006 */ lui $at,0x8006 -/* f5c8: ac22da70 */ sw $v0,-0x2590($at) -/* f5cc: 3c018009 */ lui $at,0x8009 -/* f5d0: 240f0002 */ li $t7,0x2 -/* f5d4: 3c057005 */ lui $a1,0x7005 -/* f5d8: ac2f53f8 */ sw $t7,0x53f8($at) -/* f5dc: 24a537f8 */ addiu $a1,$a1,0x37f8 -/* f5e0: 0c004b68 */ jal argFindByPrefix -/* f5e4: 00402025 */ move $a0,$v0 -/* f5e8: 10400002 */ beqz $v0,.PF0000f5f4 -/* f5ec: 3c018006 */ lui $at,0x8006 -/* f5f0: ac20da70 */ sw $zero,-0x2590($at) -.PF0000f5f4: -/* f5f4: 3c188006 */ lui $t8,0x8006 -/* f5f8: 8f18da40 */ lw $t8,-0x25c0($t8) -/* f5fc: 02002025 */ move $a0,$s0 -/* f600: 570000c2 */ bnezl $t8,.PF0000f90c -/* f604: 8fbf0024 */ lw $ra,0x24($sp) -/* f608: 0c004856 */ jal malloc -/* f60c: 24050006 */ li $a1,0x6 -/* f610: 00502021 */ addu $a0,$v0,$s0 -/* f614: 0044082b */ sltu $at,$v0,$a0 -/* f618: 00401825 */ move $v1,$v0 -/* f61c: 10200005 */ beqz $at,.PF0000f634 -/* f620: 00403825 */ move $a3,$v0 -.PF0000f624: -/* f624: 24630001 */ addiu $v1,$v1,0x1 -/* f628: 0064082b */ sltu $at,$v1,$a0 -/* f62c: 1420fffd */ bnez $at,.PF0000f624 -/* f630: a060ffff */ sb $zero,-0x1($v1) -.PF0000f634: -/* f634: 3c048009 */ lui $a0,0x8009 -/* f638: 24845740 */ addiu $a0,$a0,0x5740 -/* f63c: 00e02825 */ move $a1,$a3 -/* f640: 0c00bcfc */ jal func0002faf0 -/* f644: 02003025 */ move $a2,$s0 -/* f648: 3c068009 */ lui $a2,0x8009 -/* f64c: 24190020 */ li $t9,0x20 -/* f650: afb90010 */ sw $t9,0x10($sp) -/* f654: 24c65740 */ addiu $a2,$a2,0x5740 -/* f658: 00002025 */ move $a0,$zero -/* f65c: 00002825 */ move $a1,$zero -/* f660: 0c00bd05 */ jal func0002fb14 -/* f664: 24070001 */ li $a3,0x1 -/* f668: 3c038006 */ lui $v1,0x8006 -/* f66c: 2463da80 */ addiu $v1,$v1,-9600 -/* f670: 3c057005 */ lui $a1,0x7005 -/* f674: ac620000 */ sw $v0,0x0($v1) -/* f678: 24a537c0 */ addiu $a1,$a1,0x37c0 -/* f67c: 0c004bb0 */ jal strcpy -/* f680: 00402025 */ move $a0,$v0 -/* f684: 0c003a23 */ jal snd0000eb2c -/* f688: 00000000 */ nop -/* f68c: 3c0900cf */ lui $t1,0xcf -/* f690: 3c0a00cf */ lui $t2,0xcf -/* f694: 254aa4c0 */ addiu $t2,$t2,-23360 -/* f698: 25294520 */ addiu $t1,$t1,0x4520 -/* f69c: 2408ffff */ li $t0,-1 -/* f6a0: 3c018009 */ lui $at,0x8009 -/* f6a4: 012a8023 */ subu $s0,$t1,$t2 -/* f6a8: 3c068009 */ lui $a2,0x8009 -/* f6ac: ac285750 */ sw $t0,0x5750($at) -/* f6b0: 24c65740 */ addiu $a2,$a2,0x5740 -/* f6b4: afb00010 */ sw $s0,0x10($sp) -/* f6b8: 00002025 */ move $a0,$zero -/* f6bc: 00002825 */ move $a1,$zero -/* f6c0: 0c00bd05 */ jal func0002fb14 -/* f6c4: 24070001 */ li $a3,0x1 -/* f6c8: 3c0500cf */ lui $a1,0xcf -/* f6cc: 00408825 */ move $s1,$v0 -/* f6d0: 24a5a4c0 */ addiu $a1,$a1,-23360 -/* f6d4: 00402025 */ move $a0,$v0 -/* f6d8: 0c003454 */ jal dmaExec -/* f6dc: 02003025 */ move $a2,$s0 -/* f6e0: 3c0500cf */ lui $a1,0xcf -/* f6e4: 24a54520 */ addiu $a1,$a1,0x4520 -/* f6e8: 0c00dc01 */ jal func00037704 -/* f6ec: 02202025 */ move $a0,$s1 -/* f6f0: 8e2b0004 */ lw $t3,0x4($s1) -/* f6f4: 3c018009 */ lui $at,0x8009 -/* f6f8: 3c068009 */ lui $a2,0x8009 -/* f6fc: 240c0010 */ li $t4,0x10 -/* f700: afac0010 */ sw $t4,0x10($sp) -/* f704: 24c65740 */ addiu $a2,$a2,0x5740 -/* f708: 00002025 */ move $a0,$zero -/* f70c: 00002825 */ move $a1,$zero -/* f710: 24070001 */ li $a3,0x1 -/* f714: 0c00bd05 */ jal func0002fb14 -/* f718: ac2b5754 */ sw $t3,0x5754($at) -/* f71c: 3c108009 */ lui $s0,0x8009 -/* f720: 3c1100e7 */ lui $s1,0xe7 -/* f724: 26105758 */ addiu $s0,$s0,0x5758 -/* f728: 26310590 */ addiu $s1,$s1,0x590 -/* f72c: ae020000 */ sw $v0,0x0($s0) -/* f730: 02202825 */ move $a1,$s1 -/* f734: 00402025 */ move $a0,$v0 -/* f738: 0c003454 */ jal dmaExec -/* f73c: 24060010 */ li $a2,0x10 -/* f740: 8e0d0000 */ lw $t5,0x0($s0) -/* f744: 3c068009 */ lui $a2,0x8009 -/* f748: 24c65740 */ addiu $a2,$a2,0x5740 -/* f74c: 95a30000 */ lhu $v1,0x0($t5) -/* f750: 00002025 */ move $a0,$zero -/* f754: 00002825 */ move $a1,$zero -/* f758: 000370c0 */ sll $t6,$v1,0x3 -/* f75c: 25c30004 */ addiu $v1,$t6,0x4 -/* f760: afa30010 */ sw $v1,0x10($sp) -/* f764: afa30050 */ sw $v1,0x50($sp) -/* f768: 0c00bd05 */ jal func0002fb14 -/* f76c: 24070001 */ li $a3,0x1 -/* f770: 8fa30050 */ lw $v1,0x50($sp) -/* f774: 2401fff0 */ li $at,-16 -/* f778: ae020000 */ sw $v0,0x0($s0) -/* f77c: 2466000f */ addiu $a2,$v1,0xf -/* f780: 00c17824 */ and $t7,$a2,$at -/* f784: 01e03025 */ move $a2,$t7 -/* f788: 00402025 */ move $a0,$v0 -/* f78c: 0c003454 */ jal dmaExec -/* f790: 02202825 */ move $a1,$s1 -/* f794: 8e040000 */ lw $a0,0x0($s0) -/* f798: 00001825 */ move $v1,$zero -/* f79c: 240a002c */ li $t2,0x2c -/* f7a0: 94980000 */ lhu $t8,0x0($a0) -/* f7a4: 240b001e */ li $t3,0x1e -/* f7a8: 240c0040 */ li $t4,0x40 -/* f7ac: 1b00000d */ blez $t8,.PF0000f7e4 -/* f7b0: 3c0d8009 */ lui $t5,0x8009 -/* f7b4: 00002825 */ move $a1,$zero -/* f7b8: 00851021 */ addu $v0,$a0,$a1 -.PF0000f7bc: -/* f7bc: 8c590004 */ lw $t9,0x4($v0) -/* f7c0: 24630001 */ addiu $v1,$v1,0x1 -/* f7c4: 24a50008 */ addiu $a1,$a1,0x8 -/* f7c8: 03314021 */ addu $t0,$t9,$s1 -/* f7cc: ac480004 */ sw $t0,0x4($v0) -/* f7d0: 8e040000 */ lw $a0,0x0($s0) -/* f7d4: 94890000 */ lhu $t1,0x0($a0) -/* f7d8: 0069082a */ slt $at,$v1,$t1 -/* f7dc: 5420fff7 */ bnezl $at,.PF0000f7bc -/* f7e0: 00851021 */ addu $v0,$a0,$a1 -.PF0000f7e4: -/* f7e4: 3c038009 */ lui $v1,0x8009 -/* f7e8: 8c6353f8 */ lw $v1,0x53f8($v1) -/* f7ec: 25ad5740 */ addiu $t5,$t5,0x5740 -/* f7f0: afaa0064 */ sw $t2,0x64($sp) -/* f7f4: afab0068 */ sw $t3,0x68($sp) -/* f7f8: afac006c */ sw $t4,0x6c($sp) -/* f7fc: afa00074 */ sw $zero,0x74($sp) -/* f800: afa0007c */ sw $zero,0x7c($sp) -/* f804: afad0078 */ sw $t5,0x78($sp) -/* f808: 18600008 */ blez $v1,.PF0000f82c -/* f80c: afa30070 */ sw $v1,0x70($sp) -/* f810: 27a20064 */ addiu $v0,$sp,0x64 -/* f814: 00622021 */ addu $a0,$v1,$v0 -/* f818: 24030006 */ li $v1,0x6 -.PF0000f81c: -/* f81c: 24420001 */ addiu $v0,$v0,0x1 -/* f820: 0044082b */ sltu $at,$v0,$a0 -/* f824: 1420fffd */ bnez $at,.PF0000f81c -/* f828: a043001b */ sb $v1,0x1b($v0) -.PF0000f82c: -/* f82c: 3c098009 */ lui $t1,0x8009 -/* f830: 240f0040 */ li $t7,0x40 -/* f834: 24180040 */ li $t8,0x40 -/* f838: 24190014 */ li $t9,0x14 -/* f83c: 24080009 */ li $t0,0x9 -/* f840: 25295740 */ addiu $t1,$t1,0x5740 -/* f844: 240a5604 */ li $t2,0x5604 -/* f848: 240b0001 */ li $t3,0x1 -/* f84c: 240c07d0 */ li $t4,0x7d0 -/* f850: afaf0090 */ sw $t7,0x90($sp) -/* f854: afb8008c */ sw $t8,0x8c($sp) -/* f858: afb90094 */ sw $t9,0x94($sp) -/* f85c: a7a8009c */ sh $t0,0x9c($sp) -/* f860: afa90098 */ sw $t1,0x98($sp) -/* f864: afaa0058 */ sw $t2,0x58($sp) -/* f868: afab005c */ sw $t3,0x5c($sp) -/* f86c: afac0060 */ sw $t4,0x60($sp) -/* f870: 27a40064 */ addiu $a0,$sp,0x64 -/* f874: 0c002262 */ jal amgrCreate -/* f878: 27a50058 */ addiu $a1,$sp,0x58 -/* f87c: 3c0d8006 */ lui $t5,0x8006 -/* f880: 8dadda70 */ lw $t5,-0x2590($t5) -/* f884: 3c048009 */ lui $a0,0x8009 -/* f888: 11a00009 */ beqz $t5,.PF0000f8b0 -/* f88c: 00000000 */ nop -/* f890: 0c00dd00 */ jal func00037b00 -/* f894: 24845740 */ addiu $a0,$a0,0x5740 -/* f898: 24047fff */ li $a0,0x7fff -/* f89c: 0c00de02 */ jal func00037f08 -/* f8a0: 24050001 */ li $a1,0x1 -/* f8a4: 00002025 */ move $a0,$zero -/* f8a8: 0c00de17 */ jal func00037f5c -/* f8ac: 24050001 */ li $a1,0x1 -.PF0000f8b0: -/* f8b0: 3c108009 */ lui $s0,0x8009 -/* f8b4: 26105428 */ addiu $s0,$s0,0x5428 -.PF0000f8b8: -/* f8b8: 0c003cf7 */ jal snd0000f67c -/* f8bc: 02002025 */ move $a0,$s0 -/* f8c0: 3c0e8009 */ lui $t6,0x8009 -/* f8c4: 25ce5740 */ addiu $t6,$t6,0x5740 -/* f8c8: 26100108 */ addiu $s0,$s0,0x108 -/* f8cc: 160efffa */ bne $s0,$t6,.PF0000f8b8 -/* f8d0: 00000000 */ nop -/* f8d4: 0c00c43c */ jal func000317f0 -/* f8d8: 27a4008c */ addiu $a0,$sp,0x8c -/* f8dc: 3c047001 */ lui $a0,0x7001 -/* f8e0: 0c00cb1e */ jal func00033378 -/* f8e4: 2484f4cc */ addiu $a0,$a0,-2868 -/* f8e8: 3c047001 */ lui $a0,0x7001 -/* f8ec: 0c00cbcd */ jal func00033634 -/* f8f0: 2484f518 */ addiu $a0,$a0,-2792 -/* f8f4: 0c002405 */ jal amgrStartThread -/* f8f8: 00000000 */ nop -/* f8fc: 3c048006 */ lui $a0,0x8006 -/* f900: 0c003c3b */ jal sndSetSoundMode -/* f904: 8c84da6c */ lw $a0,-0x2594($a0) -/* f908: 8fbf0024 */ lw $ra,0x24($sp) -.PF0000f90c: -/* f90c: 8fb0001c */ lw $s0,0x1c($sp) -/* f910: 8fb10020 */ lw $s1,0x20($sp) -/* f914: 03e00008 */ jr $ra -/* f918: 27bd00a0 */ addiu $sp,$sp,0xa0 -); + u32 heaplen = 1024 * 446; #else -GLOBAL_ASM( -glabel snd0000f804 -/* f804: 3c0e8009 */ lui $t6,%hi(g_Is4Mb) -/* f808: 91ce0af0 */ lbu $t6,%lo(g_Is4Mb)($t6) -/* f80c: 27bdff70 */ addiu $sp,$sp,-144 -/* f810: afb0001c */ sw $s0,0x1c($sp) -/* f814: 24020001 */ addiu $v0,$zero,0x1 -/* f818: 3c100006 */ lui $s0,0x6 -/* f81c: 3c01800a */ lui $at,%hi(g_Vars+0x4e3) -/* f820: afbf0024 */ sw $ra,0x24($sp) -/* f824: afb10020 */ sw $s1,0x20($sp) -/* f828: 3610e400 */ ori $s0,$s0,0xe400 -/* f82c: 144e000d */ bne $v0,$t6,.L0000f864 -/* f830: a020a4a3 */ sb $zero,%lo(g_Vars+0x4e3)($at) -/* f834: 3c018009 */ lui $at,%hi(var80094ea8) -/* f838: ac224ea8 */ sw $v0,%lo(var80094ea8)($at) -/* f83c: 3c100006 */ lui $s0,0x6 -/* f840: 3c01fffd */ lui $at,0xfffd -/* f844: 36104c00 */ ori $s0,$s0,0x4c00 -/* f848: 3421dc00 */ ori $at,$at,0xdc00 -/* f84c: 02018021 */ addu $s0,$s0,$at -/* f850: 2610d000 */ addiu $s0,$s0,-12288 -/* f854: 3c018006 */ lui $at,%hi(var8005ddd0) -/* f858: 2610a400 */ addiu $s0,$s0,-23552 -/* f85c: 1000000d */ b .L0000f894 -/* f860: ac20ddd0 */ sw $zero,%lo(var8005ddd0)($at) -.L0000f864: -/* f864: 3c018006 */ lui $at,%hi(var8005ddd0) -/* f868: ac22ddd0 */ sw $v0,%lo(var8005ddd0)($at) -/* f86c: 3c018009 */ lui $at,%hi(var80094ea8) -/* f870: 240f0002 */ addiu $t7,$zero,0x2 -/* f874: 3c057005 */ lui $a1,%hi(var70053b58) -/* f878: ac2f4ea8 */ sw $t7,%lo(var80094ea8)($at) -/* f87c: 24a53b58 */ addiu $a1,$a1,%lo(var70053b58) -/* f880: 0c004c04 */ jal argFindByPrefix -/* f884: 00402025 */ or $a0,$v0,$zero -/* f888: 10400002 */ beqz $v0,.L0000f894 -/* f88c: 3c018006 */ lui $at,%hi(var8005ddd0) -/* f890: ac20ddd0 */ sw $zero,%lo(var8005ddd0)($at) -.L0000f894: -/* f894: 3c188006 */ lui $t8,%hi(g_Silent) -/* f898: 8f18dda0 */ lw $t8,%lo(g_Silent)($t8) -/* f89c: 02002025 */ or $a0,$s0,$zero -/* f8a0: 570000bb */ bnezl $t8,.L0000fb90 -/* f8a4: 8fbf0024 */ lw $ra,0x24($sp) -/* f8a8: 0c0048f2 */ jal malloc -/* f8ac: 24050006 */ addiu $a1,$zero,0x6 -/* f8b0: 00502021 */ addu $a0,$v0,$s0 -/* f8b4: 0044082b */ sltu $at,$v0,$a0 -/* f8b8: 00401825 */ or $v1,$v0,$zero -/* f8bc: 10200005 */ beqz $at,.L0000f8d4 -/* f8c0: 00403825 */ or $a3,$v0,$zero -.L0000f8c4: -/* f8c4: 24630001 */ addiu $v1,$v1,0x1 -/* f8c8: 0064082b */ sltu $at,$v1,$a0 -/* f8cc: 1420fffd */ bnez $at,.L0000f8c4 -/* f8d0: a060ffff */ sb $zero,-0x1($v1) -.L0000f8d4: -/* f8d4: 3c048009 */ lui $a0,%hi(var800951f0) -/* f8d8: 248451f0 */ addiu $a0,$a0,%lo(var800951f0) -/* f8dc: 00e02825 */ or $a1,$a3,$zero -/* f8e0: 0c00bebc */ jal func0002faf0 -/* f8e4: 02003025 */ or $a2,$s0,$zero -/* f8e8: 3c068009 */ lui $a2,%hi(var800951f0) -/* f8ec: 24190020 */ addiu $t9,$zero,0x20 -/* f8f0: afb90010 */ sw $t9,0x10($sp) -/* f8f4: 24c651f0 */ addiu $a2,$a2,%lo(var800951f0) -/* f8f8: 00002025 */ or $a0,$zero,$zero -/* f8fc: 00002825 */ or $a1,$zero,$zero -/* f900: 0c00bec5 */ jal func0002fb14 -/* f904: 24070001 */ addiu $a3,$zero,0x1 -/* f908: 3c038006 */ lui $v1,%hi(var8005dde0) -/* f90c: 2463dde0 */ addiu $v1,$v1,%lo(var8005dde0) -/* f910: 3c057005 */ lui $a1,%hi(var70053b20) -/* f914: ac620000 */ sw $v0,0x0($v1) -/* f918: 24a53b20 */ addiu $a1,$a1,%lo(var70053b20) -/* f91c: 0c004c4c */ jal strcpy -/* f920: 00402025 */ or $a0,$v0,$zero -/* f924: 0c003acb */ jal snd0000eb2c -/* f928: 00000000 */ nop -/* f92c: 3c0900d0 */ lui $t1,0xd0 -/* f930: 3c0a00d0 */ lui $t2,0xd0 -/* f934: 254abf30 */ addiu $t2,$t2,-16592 -/* f938: 25295f90 */ addiu $t1,$t1,0x5f90 -/* f93c: 2408ffff */ addiu $t0,$zero,-1 -/* f940: 3c018009 */ lui $at,%hi(var80095200) -/* f944: 012a8023 */ subu $s0,$t1,$t2 -/* f948: 3c068009 */ lui $a2,%hi(var800951f0) -/* f94c: ac285200 */ sw $t0,%lo(var80095200)($at) -/* f950: 24c651f0 */ addiu $a2,$a2,%lo(var800951f0) -/* f954: afb00010 */ sw $s0,0x10($sp) -/* f958: 00002025 */ or $a0,$zero,$zero -/* f95c: 00002825 */ or $a1,$zero,$zero -/* f960: 0c00bec5 */ jal func0002fb14 -/* f964: 24070001 */ addiu $a3,$zero,0x1 -/* f968: 3c0500d0 */ lui $a1,%hi(_seqctlSegmentRomStart) -/* f96c: 00408825 */ or $s1,$v0,$zero -/* f970: 24a5bf30 */ addiu $a1,$a1,%lo(_seqctlSegmentRomStart) -/* f974: 00402025 */ or $a0,$v0,$zero -/* f978: 0c003504 */ jal dmaExec -/* f97c: 02003025 */ or $a2,$s0,$zero -/* f980: 3c0500d0 */ lui $a1,%hi(_seqtblSegmentRomStart) -/* f984: 24a55f90 */ addiu $a1,$a1,%lo(_seqtblSegmentRomStart) -/* f988: 0c00ddc1 */ jal func00037704 -/* f98c: 02202025 */ or $a0,$s1,$zero -/* f990: 8e2b0004 */ lw $t3,0x4($s1) -/* f994: 3c018009 */ lui $at,%hi(var80095204) -/* f998: 3c068009 */ lui $a2,%hi(var800951f0) -/* f99c: 240c0010 */ addiu $t4,$zero,0x10 -/* f9a0: afac0010 */ sw $t4,0x10($sp) -/* f9a4: 24c651f0 */ addiu $a2,$a2,%lo(var800951f0) -/* f9a8: 00002025 */ or $a0,$zero,$zero -/* f9ac: 00002825 */ or $a1,$zero,$zero -/* f9b0: 24070001 */ addiu $a3,$zero,0x1 -/* f9b4: 0c00bec5 */ jal func0002fb14 -/* f9b8: ac2b5204 */ sw $t3,%lo(var80095204)($at) -/* f9bc: 3c108009 */ lui $s0,%hi(var80095208) -/* f9c0: 3c1100e8 */ lui $s1,%hi(_sequencesSegmentRomStart) -/* f9c4: 26105208 */ addiu $s0,$s0,%lo(var80095208) -/* f9c8: 26312000 */ addiu $s1,$s1,%lo(_sequencesSegmentRomStart) -/* f9cc: ae020000 */ sw $v0,0x0($s0) -/* f9d0: 02202825 */ or $a1,$s1,$zero -/* f9d4: 00402025 */ or $a0,$v0,$zero -/* f9d8: 0c003504 */ jal dmaExec -/* f9dc: 24060010 */ addiu $a2,$zero,0x10 -/* f9e0: 8e0d0000 */ lw $t5,0x0($s0) -/* f9e4: 3c068009 */ lui $a2,%hi(var800951f0) -/* f9e8: 24c651f0 */ addiu $a2,$a2,%lo(var800951f0) -/* f9ec: 95a30000 */ lhu $v1,0x0($t5) -/* f9f0: 00002025 */ or $a0,$zero,$zero -/* f9f4: 00002825 */ or $a1,$zero,$zero -/* f9f8: 000370c0 */ sll $t6,$v1,0x3 -/* f9fc: 25c30004 */ addiu $v1,$t6,0x4 -/* fa00: afa30010 */ sw $v1,0x10($sp) -/* fa04: afa3004c */ sw $v1,0x4c($sp) -/* fa08: 0c00bec5 */ jal func0002fb14 -/* fa0c: 24070001 */ addiu $a3,$zero,0x1 -/* fa10: 8fa3004c */ lw $v1,0x4c($sp) -/* fa14: 2401fff0 */ addiu $at,$zero,-16 -/* fa18: ae020000 */ sw $v0,0x0($s0) -/* fa1c: 2466000f */ addiu $a2,$v1,0xf -/* fa20: 00c17824 */ and $t7,$a2,$at -/* fa24: 01e03025 */ or $a2,$t7,$zero -/* fa28: 00402025 */ or $a0,$v0,$zero -/* fa2c: 0c003504 */ jal dmaExec -/* fa30: 02202825 */ or $a1,$s1,$zero -/* fa34: 8e040000 */ lw $a0,0x0($s0) -/* fa38: 00001825 */ or $v1,$zero,$zero -/* fa3c: 240a002c */ addiu $t2,$zero,0x2c -/* fa40: 94980000 */ lhu $t8,0x0($a0) -/* fa44: 240b001e */ addiu $t3,$zero,0x1e -/* fa48: 240c0040 */ addiu $t4,$zero,0x40 -/* fa4c: 1b00000d */ blez $t8,.L0000fa84 -/* fa50: 3c0d8009 */ lui $t5,%hi(var800951f0) -/* fa54: 00002825 */ or $a1,$zero,$zero -/* fa58: 00851021 */ addu $v0,$a0,$a1 -.L0000fa5c: -/* fa5c: 8c590004 */ lw $t9,0x4($v0) -/* fa60: 24630001 */ addiu $v1,$v1,0x1 -/* fa64: 24a50008 */ addiu $a1,$a1,0x8 -/* fa68: 03314021 */ addu $t0,$t9,$s1 -/* fa6c: ac480004 */ sw $t0,0x4($v0) -/* fa70: 8e040000 */ lw $a0,0x0($s0) -/* fa74: 94890000 */ lhu $t1,0x0($a0) -/* fa78: 0069082a */ slt $at,$v1,$t1 -/* fa7c: 5420fff7 */ bnezl $at,.L0000fa5c -/* fa80: 00851021 */ addu $v0,$a0,$a1 -.L0000fa84: -/* fa84: 3c038009 */ lui $v1,%hi(var80094ea8) -/* fa88: 8c634ea8 */ lw $v1,%lo(var80094ea8)($v1) -/* fa8c: 25ad51f0 */ addiu $t5,$t5,%lo(var800951f0) -/* fa90: afaa0054 */ sw $t2,0x54($sp) -/* fa94: afab0058 */ sw $t3,0x58($sp) -/* fa98: afac005c */ sw $t4,0x5c($sp) -/* fa9c: afa00064 */ sw $zero,0x64($sp) -/* faa0: afa0006c */ sw $zero,0x6c($sp) -/* faa4: afad0068 */ sw $t5,0x68($sp) -/* faa8: 18600008 */ blez $v1,.L0000facc -/* faac: afa30060 */ sw $v1,0x60($sp) -/* fab0: 27a20054 */ addiu $v0,$sp,0x54 -/* fab4: 00622021 */ addu $a0,$v1,$v0 -/* fab8: 24030006 */ addiu $v1,$zero,0x6 -.L0000fabc: -/* fabc: 24420001 */ addiu $v0,$v0,0x1 -/* fac0: 0044082b */ sltu $at,$v0,$a0 -/* fac4: 1420fffd */ bnez $at,.L0000fabc -/* fac8: a043001b */ sb $v1,0x1b($v0) -.L0000facc: -/* facc: 3c098009 */ lui $t1,%hi(var800951f0) -/* fad0: 240f0040 */ addiu $t7,$zero,0x40 -/* fad4: 24180040 */ addiu $t8,$zero,0x40 -/* fad8: 24190014 */ addiu $t9,$zero,0x14 -/* fadc: 24080009 */ addiu $t0,$zero,0x9 -/* fae0: 252951f0 */ addiu $t1,$t1,%lo(var800951f0) -/* fae4: afaf0080 */ sw $t7,0x80($sp) -/* fae8: afb8007c */ sw $t8,0x7c($sp) -/* faec: afb90084 */ sw $t9,0x84($sp) -/* faf0: a7a8008c */ sh $t0,0x8c($sp) -/* faf4: afa90088 */ sw $t1,0x88($sp) -/* faf8: 0c002292 */ jal amgrCreate -/* fafc: 27a40054 */ addiu $a0,$sp,0x54 -/* fb00: 3c0a8006 */ lui $t2,%hi(var8005ddd0) -/* fb04: 8d4addd0 */ lw $t2,%lo(var8005ddd0)($t2) -/* fb08: 3c048009 */ lui $a0,%hi(var800951f0) -/* fb0c: 11400009 */ beqz $t2,.L0000fb34 -/* fb10: 00000000 */ nop -/* fb14: 0c00dec0 */ jal func00037b00 -/* fb18: 248451f0 */ addiu $a0,$a0,%lo(var800951f0) -/* fb1c: 24047fff */ addiu $a0,$zero,0x7fff -/* fb20: 0c00dfc2 */ jal func00037f08 -/* fb24: 24050001 */ addiu $a1,$zero,0x1 -/* fb28: 00002025 */ or $a0,$zero,$zero -/* fb2c: 0c00dfd7 */ jal func00037f5c -/* fb30: 24050001 */ addiu $a1,$zero,0x1 -.L0000fb34: -/* fb34: 3c108009 */ lui $s0,%hi(var80094ed8) -/* fb38: 26104ed8 */ addiu $s0,$s0,%lo(var80094ed8) -.L0000fb3c: -/* fb3c: 0c003d9f */ jal snd0000f67c -/* fb40: 02002025 */ or $a0,$s0,$zero -/* fb44: 3c0b8009 */ lui $t3,%hi(var800951f0) -/* fb48: 256b51f0 */ addiu $t3,$t3,%lo(var800951f0) -/* fb4c: 26100108 */ addiu $s0,$s0,0x108 -/* fb50: 160bfffa */ bne $s0,$t3,.L0000fb3c -/* fb54: 00000000 */ nop -/* fb58: 0c00c5fc */ jal func000317f0 -/* fb5c: 27a4007c */ addiu $a0,$sp,0x7c -/* fb60: 3c047001 */ lui $a0,%hi(func0000f76c) -/* fb64: 0c00ccde */ jal func00033378 -/* fb68: 2484f76c */ addiu $a0,$a0,%lo(func0000f76c) -/* fb6c: 3c047001 */ lui $a0,%hi(func0000f7b8) -/* fb70: 0c00cd8d */ jal func00033634 -/* fb74: 2484f7b8 */ addiu $a0,$a0,%lo(func0000f7b8) -/* fb78: 0c00243b */ jal amgrStartThread -/* fb7c: 00000000 */ nop -/* fb80: 3c048006 */ lui $a0,%hi(g_SoundMode) -/* fb84: 0c003ce3 */ jal sndSetSoundMode -/* fb88: 8c84ddcc */ lw $a0,%lo(g_SoundMode)($a0) -/* fb8c: 8fbf0024 */ lw $ra,0x24($sp) -.L0000fb90: -/* fb90: 8fb0001c */ lw $s0,0x1c($sp) -/* fb94: 8fb10020 */ lw $s1,0x20($sp) -/* fb98: 03e00008 */ jr $ra -/* fb9c: 27bd0090 */ addiu $sp,$sp,0x90 -); + u32 heaplen = 1024 * 441; #endif + g_Vars.langfilteron = false; + + if (IS4MB()) { + var80094ea8 = 1; + +#if VERSION >= VERSION_PAL_FINAL + heaplen -= 1024 * 6; +#else + heaplen -= 1024 * 38; +#endif + heaplen -= 1024 * 137; + heaplen -= 1024 * 12; + heaplen -= 1024 * 23; + + g_SndMp3Enabled = false; + } else { + g_SndMp3Enabled = true; + var80094ea8 = 2; + + if (argFindByPrefix(1, "-nomp3")) { + g_SndMp3Enabled = false; + } + } + + if (!g_Silent) { + // Allocate memory for the audio heap, + // clear it and give it to the audio library + ALSynConfig synconfig; +#if VERSION >= VERSION_PAL_FINAL + u32 sp58[3]; +#endif + u8 *ptr = malloc(heaplen, MEMPOOL_PERMANENT); + u32 len = &_seqctlSegmentRomEnd - &_seqctlSegmentRomStart; + s32 i; + u32 seqromaddr = (u32) &_sequencesSegmentRomStart; + u8 *heapstart = ptr; + u8 *end = heapstart + heaplen; + u32 *tmp; + + while (ptr < end) { + *ptr = 0; + ptr++; + } + + alHeapInit(&g_SndHeap, heapstart, heaplen); + + // Allocate some space at the start of the heap for a string identifier. + // This might be used to determine if the heap has overflowed. + g_SndGuardStringPtr = alHeapDBAlloc(0, 0, &g_SndHeap, 1, 32); + strcpy(g_SndGuardStringPtr, g_SndGuardString); + + // Load the sfx I think + snd0000eb2c(); + + // Load seq.ctl + var80095200 = 0xffffffff; + tmp = alHeapDBAlloc(0, 0, &g_SndHeap, 1, len); + dmaExec(tmp, &_seqctlSegmentRomStart, len); + + // Load seq.tbl + func00037704(tmp, &_seqtblSegmentRomStart); + + // Load the sequences table. To do this, load the header of the + // sequences segment and read the number of sequences, then allocate + // enough space for the table and load it. + var80095204 = tmp[1]; + g_SeqTable = alHeapDBAlloc(0, 0, &g_SndHeap, 1, 0x10); + dmaExec(g_SeqTable, (void *) seqromaddr, 0x10); + + len = g_SeqTable->count * sizeof(struct seqtableentry) + 4; + g_SeqTable = alHeapDBAlloc(0, 0, &g_SndHeap, 1, len); + dmaExec(g_SeqTable, (void *) seqromaddr, len + 0xf & 0xfffffff0); + + // Promote segment-relative offsets to real pointers + for (i = 0; i < g_SeqTable->count; i++) { + g_SeqTable->entries[i].data += seqromaddr; + } + + synconfig.maxVVoices = 44; + synconfig.maxPVoices = 30; + synconfig.maxUpdates = 64; + synconfig.dmaproc = NULL; + synconfig.outputRate = 0; + synconfig.heap = &g_SndHeap; + synconfig.maxFXbusses = var80094ea8; + + for (i = 0; i < var80094ea8; i++) { + synconfig.fxTypes[i] = 6; + } + + sp7c[1] = 64; + sp7c[0] = 64; + sp7c[2] = 20; + *(u16 *)&sp7c[4] = 9; + sp7c[3] = (u32) &g_SndHeap; + +#if VERSION >= VERSION_PAL_FINAL + sp58[0] = 22020; + sp58[1] = 1; + sp58[2] = 2000; + + amgrCreate(&synconfig, &sp58); +#else + amgrCreate(&synconfig); +#endif + + if (g_SndMp3Enabled) { + osSyncPrintf("RWI : Initialising the new and improved MP3 player\n"); + + func00037b00(&g_SndHeap); + func00037f08(0x7fff, 1); + func00037f5c(0, 1); + + osSyncPrintf("RWI : MP3 player Initialising Done\n"); + } + + for (i = 0; i < 3; i++) { + snd0000f67c(&var80094ed8[i]); + } + + osSyncPrintf("gsSndpNew\n"); + + func000317f0(&sp7c); + + osSyncPrintf("Set the sample callbacks\n"); + + func00033378(snd0000f76c); + func00033634(snd0000f7b8); + + amgrStartThread(); + + sndSetSoundMode(g_SoundMode); + } +} + +#if VERSION < VERSION_NTSC_1_0 +const char var70055250nb[] = "DMA-Crash %s %d Ram: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"; +const char var700552a8nb[] = "snd.c"; +const char var700552b0nb[] = "Snd Heap Check FAILED"; +#endif + +const char var70053be0[] = "Snd_Play_Universal : Overriding -> Link = %d\n"; + +#if VERSION < VERSION_NTSC_1_0 +const char var700552f0nb[] = "Snd_Play_Mpeg : sndId=%d, vol=%d, pan=%d\n"; +#endif + +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 @@ -2716,8 +2365,8 @@ glabel snd0000fbc4 /* fbd0: afbf0014 */ sw $ra,0x14($sp) /* fbd4: 15c00015 */ bnez $t6,.L0000fc2c /* fbd8: afa40018 */ sw $a0,0x18($sp) -/* fbdc: 3c0f8006 */ lui $t7,%hi(var8005ddd0) -/* fbe0: 8defddd0 */ lw $t7,%lo(var8005ddd0)($t7) +/* fbdc: 3c0f8006 */ lui $t7,%hi(g_SndMp3Enabled) +/* fbe0: 8defddd0 */ lw $t7,%lo(g_SndMp3Enabled)($t7) /* fbe4: 51e00012 */ beqzl $t7,.L0000fc30 /* fbe8: 24020001 */ addiu $v0,$zero,0x1 /* fbec: 0c00dfa9 */ jal func00037ea4 @@ -2761,7 +2410,7 @@ glabel snd0000fc48 /* fc64: 3c0e8006 */ lui $t6,%hi(g_Silent) /* fc68: 8dcedda0 */ lw $t6,%lo(g_Silent)($t6) /* fc6c: 8fa4144c */ lw $a0,0x144c($sp) -/* fc70: 3c038009 */ lui $v1,%hi(var80095208) +/* fc70: 3c038009 */ lui $v1,%hi(g_SeqTable) /* fc74: 51c00004 */ beqzl $t6,.L0000fc88 /* fc78: ae040104 */ sw $a0,0x104($s0) /* fc7c: 10000038 */ b .L0000fd60 @@ -2769,7 +2418,7 @@ glabel snd0000fc48 /* fc84: ae040104 */ sw $a0,0x104($s0) .L0000fc88: /* fc88: 10400003 */ beqz $v0,.L0000fc98 -/* fc8c: 8c635208 */ lw $v1,%lo(var80095208)($v1) +/* fc8c: 8c635208 */ lw $v1,%lo(g_SeqTable)($v1) /* fc90: 10000033 */ b .L0000fd60 /* fc94: 00001025 */ or $v0,$zero,$zero .L0000fc98: @@ -3024,8 +2673,8 @@ void snd0000fe18(void) GLOBAL_ASM( glabel snd0000fe20 -/* fe20: 3c0e8006 */ lui $t6,%hi(var8005ddd0) -/* fe24: 8dceddd0 */ lw $t6,%lo(var8005ddd0)($t6) +/* fe20: 3c0e8006 */ lui $t6,%hi(g_SndMp3Enabled) +/* fe24: 8dceddd0 */ lw $t6,%lo(g_SndMp3Enabled)($t6) /* fe28: 27bdffe8 */ addiu $sp,$sp,-24 /* fe2c: afbf0014 */ sw $ra,0x14($sp) /* fe30: 51c00004 */ beqzl $t6,.L0000fe44 @@ -3041,8 +2690,8 @@ glabel snd0000fe20 GLOBAL_ASM( glabel snd0000fe50 -/* fe50: 3c0e8006 */ lui $t6,%hi(var8005ddd0) -/* fe54: 8dceddd0 */ lw $t6,%lo(var8005ddd0)($t6) +/* fe50: 3c0e8006 */ lui $t6,%hi(g_SndMp3Enabled) +/* fe54: 8dceddd0 */ lw $t6,%lo(g_SndMp3Enabled)($t6) /* fe58: 27bdffe8 */ addiu $sp,$sp,-24 /* fe5c: afbf0014 */ sw $ra,0x14($sp) /* fe60: 51c00004 */ beqzl $t6,.L0000fe74 @@ -3146,7 +2795,7 @@ glabel snd0000fe88 /* ffb8: 3c188006 */ lui $t8,%hi(g_Silent) /* ffbc: 0043082a */ slt $at,$v0,$v1 /* ffc0: 10200003 */ beqz $at,.L0000ffd0 -/* ffc4: 3c198006 */ lui $t9,%hi(var8005ddd0) +/* ffc4: 3c198006 */ lui $t9,%hi(g_SndMp3Enabled) /* ffc8: ac830000 */ sw $v1,0x0($a0) /* ffcc: 00601025 */ or $v0,$v1,$zero .L0000ffd0: @@ -3159,7 +2808,7 @@ glabel snd0000fe88 /* ffe4: 8f18dda0 */ lw $t8,%lo(g_Silent)($t8) /* ffe8: 570000d4 */ bnezl $t8,.L0001033c /* ffec: 8fbf002c */ lw $ra,0x2c($sp) -/* fff0: 8f39ddd0 */ lw $t9,%lo(var8005ddd0)($t9) +/* fff0: 8f39ddd0 */ lw $t9,%lo(g_SndMp3Enabled)($t9) /* fff4: 3c02800a */ lui $v0,%hi(g_Vars+0x4b4) /* fff8: 532000d0 */ beqzl $t9,.L0001033c /* fffc: 8fbf002c */ lw $ra,0x2c($sp) @@ -3213,13 +2862,13 @@ glabel snd0000fe88 /* 100ac: 0c003aa0 */ jal snd0000ea80 /* 100b0: 00000000 */ nop .L000100b4: -/* 100b4: 3c048006 */ lui $a0,%hi(var8005dde0) -/* 100b8: 8c84dde0 */ lw $a0,%lo(var8005dde0)($a0) -/* 100bc: 3c057005 */ lui $a1,%hi(var70053b20) +/* 100b4: 3c048006 */ lui $a0,%hi(g_SndGuardStringPtr) +/* 100b8: 8c84dde0 */ lw $a0,%lo(g_SndGuardStringPtr)($a0) +/* 100bc: 3c057005 */ lui $a1,%hi(g_SndGuardString) /* 100c0: 10800003 */ beqz $a0,.L000100d0 /* 100c4: 00000000 */ nop /* 100c8: 0c004c9d */ jal strcmp -/* 100cc: 24a53b20 */ addiu $a1,$a1,%lo(var70053b20) +/* 100cc: 24a53b20 */ addiu $a1,$a1,%lo(g_SndGuardString) .L000100d0: /* 100d0: 0c00dfa9 */ jal func00037ea4 /* 100d4: 00000000 */ nop @@ -3494,7 +3143,7 @@ glabel snd0000fe88 /* ffb8: 3c188006 */ lui $t8,%hi(g_Silent) /* ffbc: 0043082a */ slt $at,$v0,$v1 /* ffc0: 10200003 */ beqz $at,.L0000ffd0 -/* ffc4: 3c198006 */ lui $t9,%hi(var8005ddd0) +/* ffc4: 3c198006 */ lui $t9,%hi(g_SndMp3Enabled) /* ffc8: ac830000 */ sw $v1,0x0($a0) /* ffcc: 00601025 */ or $v0,$v1,$zero .L0000ffd0: @@ -3507,7 +3156,7 @@ glabel snd0000fe88 /* ffe4: 8f18dda0 */ lw $t8,%lo(g_Silent)($t8) /* ffe8: 570000d4 */ bnezl $t8,.L0001033c /* ffec: 8fbf002c */ lw $ra,0x2c($sp) -/* fff0: 8f39ddd0 */ lw $t9,%lo(var8005ddd0)($t9) +/* fff0: 8f39ddd0 */ lw $t9,%lo(g_SndMp3Enabled)($t9) /* fff4: 3c02800a */ lui $v0,%hi(g_Vars+0x4b4) /* fff8: 532000d0 */ beqzl $t9,.L0001033c /* fffc: 8fbf002c */ lw $ra,0x2c($sp) @@ -3561,13 +3210,13 @@ glabel snd0000fe88 /* 100ac: 0c003aa0 */ jal snd0000ea80 /* 100b0: 00000000 */ nop .L000100b4: -/* 100b4: 3c048006 */ lui $a0,%hi(var8005dde0) -/* 100b8: 8c84dde0 */ lw $a0,%lo(var8005dde0)($a0) -/* 100bc: 3c057005 */ lui $a1,%hi(var70053b20) +/* 100b4: 3c048006 */ lui $a0,%hi(g_SndGuardStringPtr) +/* 100b8: 8c84dde0 */ lw $a0,%lo(g_SndGuardStringPtr)($a0) +/* 100bc: 3c057005 */ lui $a1,%hi(g_SndGuardString) /* 100c0: 10800003 */ beqz $a0,.L000100d0 /* 100c4: 00000000 */ nop /* 100c8: 0c004c9d */ jal strcmp -/* 100cc: 24a53b20 */ addiu $a1,$a1,%lo(var70053b20) +/* 100cc: 24a53b20 */ addiu $a1,$a1,%lo(g_SndGuardString) .L000100d0: /* 100d0: 0c00dfa9 */ jal func00037ea4 /* 100d4: 00000000 */ nop @@ -4043,8 +3692,8 @@ glabel snd0001036c /* 10378: afbf0024 */ sw $ra,0x24($sp) /* 1037c: 15c0001f */ bnez $t6,.L000103fc /* 10380: afa40030 */ sw $a0,0x30($sp) -/* 10384: 3c0f8006 */ lui $t7,%hi(var8005ddd0) -/* 10388: 8defddd0 */ lw $t7,%lo(var8005ddd0)($t7) +/* 10384: 3c0f8006 */ lui $t7,%hi(g_SndMp3Enabled) +/* 10388: 8defddd0 */ lw $t7,%lo(g_SndMp3Enabled)($t7) /* 1038c: 00806025 */ or $t4,$a0,$zero /* 10390: 318d07ff */ andi $t5,$t4,0x7ff /* 10394: 11e00019 */ beqz $t7,.L000103fc