diff --git a/Makefile b/Makefile index f3c70801c..c7260ab26 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ default: all VERSION ?= us # If COMPARE is 1, check the output sha1sum when building 'all' COMPARE ?= 1 +export LANG := C ifeq ($(VERSION),us) VERSION_CFLAGS := -DVERSION_US diff --git a/asm/non_matchings/audio/external/func_800C13FC.s b/asm/non_matchings/audio/external/func_800C13FC.s deleted file mode 100644 index 9ed7e344d..000000000 --- a/asm/non_matchings/audio/external/func_800C13FC.s +++ /dev/null @@ -1,35 +0,0 @@ -glabel func_800C13FC -/* 0C1FFC 800C13FC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0C2000 800C1400 AFA40038 */ sw $a0, 0x38($sp) -/* 0C2004 800C1404 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C2008 800C1408 AFBE0028 */ sw $fp, 0x28($sp) -/* 0C200C 800C140C 3C04800F */ lui $a0, %hi(D_800EA3B4) # $a0, 0x800f -/* 0C2010 800C1410 03A0F025 */ move $fp, $sp -/* 0C2014 800C1414 8C84A3B4 */ lw $a0, %lo(D_800EA3B4)($a0) -/* 0C2018 800C1418 27A50034 */ addiu $a1, $sp, 0x34 -/* 0C201C 800C141C 0C0335D4 */ jal osRecvMesg -/* 0C2020 800C1420 00003025 */ move $a2, $zero -/* 0C2024 800C1424 3C04800F */ lui $a0, %hi(D_800EA3B0) # $a0, 0x800f -/* 0C2028 800C1428 8C84A3B0 */ lw $a0, %lo(D_800EA3B0)($a0) -/* 0C202C 800C142C 8FC50038 */ lw $a1, 0x38($fp) -/* 0C2030 800C1430 0C033630 */ jal osSendMesg -/* 0C2034 800C1434 00003025 */ move $a2, $zero -/* 0C2038 800C1438 3C04800F */ lui $a0, %hi(D_800EA3B4) # $a0, 0x800f -/* 0C203C 800C143C 8C84A3B4 */ lw $a0, %lo(D_800EA3B4)($a0) -/* 0C2040 800C1440 27C50034 */ addiu $a1, $fp, 0x34 -/* 0C2044 800C1444 0C0335D4 */ jal osRecvMesg -/* 0C2048 800C1448 24060001 */ li $a2, 1 -/* 0C204C 800C144C 8FCE0034 */ lw $t6, 0x34($fp) -/* 0C2050 800C1450 8FCF0038 */ lw $t7, 0x38($fp) -/* 0C2054 800C1454 3C04800F */ lui $a0, %hi(D_800EA3B4) # $a0, 0x800f -/* 0C2058 800C1458 27C50034 */ addiu $a1, $fp, 0x34 -/* 0C205C 800C145C 11CF0003 */ beq $t6, $t7, .L800C146C -/* 0C2060 800C1460 24060001 */ li $a2, 1 -/* 0C2064 800C1464 0C0335D4 */ jal osRecvMesg -/* 0C2068 800C1468 8C84A3B4 */ lw $a0, %lo(D_800EA3B4)($a0) -.L800C146C: -/* 0C206C 800C146C 8FDF002C */ lw $ra, 0x2c($fp) -/* 0C2070 800C1470 03C0E825 */ move $sp, $fp -/* 0C2074 800C1474 8FDE0028 */ lw $fp, 0x28($fp) -/* 0C2078 800C1478 03E00008 */ jr $ra -/* 0C207C 800C147C 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/audio/heap/func_800B90F0.s b/asm/non_matchings/audio/heap/func_800B90F0.s deleted file mode 100644 index 963b3bcc1..000000000 --- a/asm/non_matchings/audio/heap/func_800B90F0.s +++ /dev/null @@ -1,24 +0,0 @@ -glabel func_800B90F0 -/* 0B9CF0 800B90F0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0B9CF4 800B90F4 00803025 */ move $a2, $a0 -/* 0B9CF8 800B90F8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0B9CFC 800B90FC 3C04803B */ lui $a0, %hi(gAudioInitPool) # $a0, 0x803b -/* 0B9D00 800B9100 3C05803B */ lui $a1, %hi(D_803B71B0) # $a1, 0x803b -/* 0B9D04 800B9104 24A571B0 */ addiu $a1, %lo(D_803B71B0) # addiu $a1, $a1, 0x71b0 -/* 0B9D08 800B9108 2484FBD8 */ addiu $a0, %lo(gAudioInitPool) # addiu $a0, $a0, -0x428 -/* 0B9D0C 800B910C 0C02E41F */ jal sound_alloc_pool_init -/* 0B9D10 800B9110 AFA60018 */ sw $a2, 0x18($sp) -/* 0B9D14 800B9114 8FA70018 */ lw $a3, 0x18($sp) -/* 0B9D18 800B9118 3C0F800F */ lui $t7, %hi(D_800EA5D0) # $t7, 0x800f -/* 0B9D1C 800B911C 8DEFA5D0 */ lw $t7, %lo(D_800EA5D0)($t7) -/* 0B9D20 800B9120 3C0E803B */ lui $t6, %hi(D_803B71B0) # $t6, 0x803b -/* 0B9D24 800B9124 25CE71B0 */ addiu $t6, %lo(D_803B71B0) # addiu $t6, $t6, 0x71b0 -/* 0B9D28 800B9128 3C04803B */ lui $a0, %hi(gLeftVolRampings) # $a0, 0x803b -/* 0B9D2C 800B912C 2484FBC8 */ addiu $a0, %lo(gLeftVolRampings) # addiu $a0, $a0, -0x438 -/* 0B9D30 800B9130 00EE2821 */ addu $a1, $a3, $t6 -/* 0B9D34 800B9134 0C02E41F */ jal sound_alloc_pool_init -/* 0B9D38 800B9138 01E73023 */ subu $a2, $t7, $a3 -/* 0B9D3C 800B913C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B9D40 800B9140 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0B9D44 800B9144 03E00008 */ jr $ra -/* 0B9D48 800B9148 00000000 */ nop diff --git a/asm/non_matchings/audio/heap/func_800B914C.s b/asm/non_matchings/audio/heap/func_800B914C.s deleted file mode 100644 index 318b358f8..000000000 --- a/asm/non_matchings/audio/heap/func_800B914C.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_800B914C -/* 0B9D4C 800B914C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0B9D50 800B9150 AFA40018 */ sw $a0, 0x18($sp) -/* 0B9D54 800B9154 3C04803B */ lui $a0, %hi(gLeftVolRampings) # $a0, 0x803b -/* 0B9D58 800B9158 2484FBC8 */ addiu $a0, %lo(gLeftVolRampings) # addiu $a0, $a0, -0x438 -/* 0B9D5C 800B915C 8C8E0000 */ lw $t6, ($a0) -/* 0B9D60 800B9160 8FAF0018 */ lw $t7, 0x18($sp) -/* 0B9D64 800B9164 AFBF0014 */ sw $ra, 0x14($sp) -/* 0B9D68 800B9168 AC8E0004 */ sw $t6, 4($a0) -/* 0B9D6C 800B916C 0C02E3FF */ jal soundAlloc -/* 0B9D70 800B9170 8DE50000 */ lw $a1, ($t7) -/* 0B9D74 800B9174 8FB80018 */ lw $t8, 0x18($sp) -/* 0B9D78 800B9178 3C04803B */ lui $a0, %hi(gNotesAndBuffersPool) # $a0, 0x803b -/* 0B9D7C 800B917C 2484FBE8 */ addiu $a0, %lo(gNotesAndBuffersPool) # addiu $a0, $a0, -0x418 -/* 0B9D80 800B9180 00402825 */ move $a1, $v0 -/* 0B9D84 800B9184 0C02E41F */ jal sound_alloc_pool_init -/* 0B9D88 800B9188 8F060000 */ lw $a2, ($t8) -/* 0B9D8C 800B918C 8FB90018 */ lw $t9, 0x18($sp) -/* 0B9D90 800B9190 3C04803B */ lui $a0, %hi(gLeftVolRampings) # $a0, 0x803b -/* 0B9D94 800B9194 2484FBC8 */ addiu $a0, %lo(gLeftVolRampings) # addiu $a0, $a0, -0x438 -/* 0B9D98 800B9198 0C02E3FF */ jal soundAlloc -/* 0B9D9C 800B919C 8F25000C */ lw $a1, 0xc($t9) -/* 0B9DA0 800B91A0 8FA80018 */ lw $t0, 0x18($sp) -/* 0B9DA4 800B91A4 3C04803B */ lui $a0, %hi(gSeqAndBankPool) # $a0, 0x803b -/* 0B9DA8 800B91A8 2484FC18 */ addiu $a0, %lo(gSeqAndBankPool) # addiu $a0, $a0, -0x3e8 -/* 0B9DAC 800B91AC 00402825 */ move $a1, $v0 -/* 0B9DB0 800B91B0 0C02E41F */ jal sound_alloc_pool_init -/* 0B9DB4 800B91B4 8D06000C */ lw $a2, 0xc($t0) -/* 0B9DB8 800B91B8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B9DBC 800B91BC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0B9DC0 800B91C0 03E00008 */ jr $ra -/* 0B9DC4 800B91C4 00000000 */ nop diff --git a/asm/non_matchings/audio/heap/func_800B9FB8.s b/asm/non_matchings/audio/heap/func_800B9FB8.s deleted file mode 100644 index fff2ea18c..000000000 --- a/asm/non_matchings/audio/heap/func_800B9FB8.s +++ /dev/null @@ -1,25 +0,0 @@ -glabel func_800B9FB8 -/* 0BABB8 800B9FB8 3C03803B */ lui $v1, %hi(gNumSynthesisReverbs) # $v1, 0x803b -/* 0BABBC 800B9FBC 8063FBC3 */ lb $v1, %lo(gNumSynthesisReverbs)($v1) -/* 0BABC0 800B9FC0 3C0E803B */ lui $t6, %hi(gSynthesisReverbs) # 0x803b -/* 0BABC4 800B9FC4 25C2F790 */ addiu $v0, $t6, %lo(gSynthesisReverbs) # -0x870 -/* 0BABC8 800B9FC8 1860000E */ blez $v1, .L800BA004 -/* 0BABCC 800B9FCC 00037940 */ sll $t7, $v1, 5 -/* 0BABD0 800B9FD0 01E37821 */ addu $t7, $t7, $v1 -/* 0BABD4 800B9FD4 000F78C0 */ sll $t7, $t7, 3 -/* 0BABD8 800B9FD8 01E22021 */ addu $a0, $t7, $v0 -.L800B9FDC: -/* 0BABDC 800B9FDC 94430008 */ lhu $v1, 8($v0) -/* 0BABE0 800B9FE0 24420108 */ addiu $v0, $v0, 0x108 -/* 0BABE4 800B9FE4 04610003 */ bgez $v1, .L800B9FF4 -/* 0BABE8 800B9FE8 0003C083 */ sra $t8, $v1, 2 -/* 0BABEC 800B9FEC 24610003 */ addiu $at, $v1, 3 -/* 0BABF0 800B9FF0 0001C083 */ sra $t8, $at, 2 -.L800B9FF4: -/* 0BABF4 800B9FF4 0044082B */ sltu $at, $v0, $a0 -/* 0BABF8 800B9FF8 0078C823 */ subu $t9, $v1, $t8 -/* 0BABFC 800B9FFC 1420FFF7 */ bnez $at, .L800B9FDC -/* 0BAC00 800BA000 A459FF00 */ sh $t9, -0x100($v0) -.L800BA004: -/* 0BAC04 800BA004 03E00008 */ jr $ra -/* 0BAC08 800BA008 00000000 */ nop diff --git a/asm/non_matchings/audio/port_eu/func_800CBAB4.s b/asm/non_matchings/audio/port_eu/func_800CBAB4.s deleted file mode 100644 index a31f6c996..000000000 --- a/asm/non_matchings/audio/port_eu/func_800CBAB4.s +++ /dev/null @@ -1,38 +0,0 @@ -glabel func_800CBAB4 -/* 0CC6B4 800CBAB4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0CC6B8 800CBAB8 3C01800F */ lui $at, %hi(D_800EA3A0) # $at, 0x800f -/* 0CC6BC 800CBABC A020A3A0 */ sb $zero, %lo(D_800EA3A0)($at) -/* 0CC6C0 800CBAC0 AFBF002C */ sw $ra, 0x2c($sp) -/* 0CC6C4 800CBAC4 AFBE0028 */ sw $fp, 0x28($sp) -/* 0CC6C8 800CBAC8 3C01800F */ lui $at, %hi(D_800EA3A4) # $at, 0x800f -/* 0CC6CC 800CBACC 3C04800F */ lui $a0, %hi(D_800EA3A8) # $a0, 0x800f -/* 0CC6D0 800CBAD0 3C058019 */ lui $a1, %hi(D_80194020) # $a1, 0x8019 -/* 0CC6D4 800CBAD4 03A0F025 */ move $fp, $sp -/* 0CC6D8 800CBAD8 A020A3A4 */ sb $zero, %lo(D_800EA3A4)($at) -/* 0CC6DC 800CBADC 24A54020 */ addiu $a1, %lo(D_80194020) # addiu $a1, $a1, 0x4020 -/* 0CC6E0 800CBAE0 8C84A3A8 */ lw $a0, %lo(D_800EA3A8)($a0) -/* 0CC6E4 800CBAE4 0C033358 */ jal osCreateMesgQueue -/* 0CC6E8 800CBAE8 24060001 */ li $a2, 1 -/* 0CC6EC 800CBAEC 3C04800F */ lui $a0, %hi(D_800EA3AC) # $a0, 0x800f -/* 0CC6F0 800CBAF0 3C058019 */ lui $a1, %hi(D_80194028) # $a1, 0x8019 -/* 0CC6F4 800CBAF4 24A54028 */ addiu $a1, %lo(D_80194028) # addiu $a1, $a1, 0x4028 -/* 0CC6F8 800CBAF8 8C84A3AC */ lw $a0, %lo(D_800EA3AC)($a0) -/* 0CC6FC 800CBAFC 0C033358 */ jal osCreateMesgQueue -/* 0CC700 800CBB00 24060004 */ li $a2, 4 -/* 0CC704 800CBB04 3C04800F */ lui $a0, %hi(D_800EA3B0) # $a0, 0x800f -/* 0CC708 800CBB08 3C058019 */ lui $a1, %hi(D_80194038) # $a1, 0x8019 -/* 0CC70C 800CBB0C 24A54038 */ addiu $a1, %lo(D_80194038) # addiu $a1, $a1, 0x4038 -/* 0CC710 800CBB10 8C84A3B0 */ lw $a0, %lo(D_800EA3B0)($a0) -/* 0CC714 800CBB14 0C033358 */ jal osCreateMesgQueue -/* 0CC718 800CBB18 24060001 */ li $a2, 1 -/* 0CC71C 800CBB1C 3C04800F */ lui $a0, %hi(D_800EA3B4) # $a0, 0x800f -/* 0CC720 800CBB20 3C058019 */ lui $a1, %hi(D_8019403C) # $a1, 0x8019 -/* 0CC724 800CBB24 24A5403C */ addiu $a1, %lo(D_8019403C) # addiu $a1, $a1, 0x403c -/* 0CC728 800CBB28 8C84A3B4 */ lw $a0, %lo(D_800EA3B4)($a0) -/* 0CC72C 800CBB2C 0C033358 */ jal osCreateMesgQueue -/* 0CC730 800CBB30 24060001 */ li $a2, 1 -/* 0CC734 800CBB34 8FDF002C */ lw $ra, 0x2c($fp) -/* 0CC738 800CBB38 03C0E825 */ move $sp, $fp -/* 0CC73C 800CBB3C 8FDE0028 */ lw $fp, 0x28($fp) -/* 0CC740 800CBB40 03E00008 */ jr $ra -/* 0CC744 800CBB44 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/audio/port_eu/func_800CBB48.s b/asm/non_matchings/audio/port_eu/func_800CBB48.s deleted file mode 100644 index 986aa1c77..000000000 --- a/asm/non_matchings/audio/port_eu/func_800CBB48.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel func_800CBB48 -/* 0CC748 800CBB48 3C03800F */ lui $v1, %hi(D_800EA3A0) # $v1, 0x800f -/* 0CC74C 800CBB4C 2463A3A0 */ addiu $v1, %lo(D_800EA3A0) # addiu $v1, $v1, -0x5c60 -/* 0CC750 800CBB50 906F0000 */ lbu $t7, ($v1) -/* 0CC754 800CBB54 3C198019 */ lui $t9, %hi(D_80193820) # $t9, 0x8019 -/* 0CC758 800CBB58 27393820 */ addiu $t9, %lo(D_80193820) # addiu $t9, $t9, 0x3820 -/* 0CC75C 800CBB5C 000FC0C0 */ sll $t8, $t7, 3 -/* 0CC760 800CBB60 03191021 */ addu $v0, $t8, $t9 -/* 0CC764 800CBB64 AC440000 */ sw $a0, ($v0) -/* 0CC768 800CBB68 8CA80000 */ lw $t0, ($a1) -/* 0CC76C 800CBB6C 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 0CC770 800CBB70 AC480004 */ sw $t0, 4($v0) -/* 0CC774 800CBB74 90690000 */ lbu $t1, ($v1) -/* 0CC778 800CBB78 27BD0010 */ addiu $sp, $sp, 0x10 -/* 0CC77C 800CBB7C 252A0001 */ addiu $t2, $t1, 1 -/* 0CC780 800CBB80 03E00008 */ jr $ra -/* 0CC784 800CBB84 A06A0000 */ sb $t2, ($v1) diff --git a/asm/non_matchings/audio/port_eu/func_800CBB88.s b/asm/non_matchings/audio/port_eu/func_800CBB88.s deleted file mode 100644 index 0baaf3763..000000000 --- a/asm/non_matchings/audio/port_eu/func_800CBB88.s +++ /dev/null @@ -1,13 +0,0 @@ -glabel func_800CBB88 -/* 0CC788 800CBB88 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0CC78C 800CBB8C AFBF002C */ sw $ra, 0x2c($sp) -/* 0CC790 800CBB90 AFBE0028 */ sw $fp, 0x28($sp) -/* 0CC794 800CBB94 AFA50034 */ sw $a1, 0x34($sp) -/* 0CC798 800CBB98 03A0F025 */ move $fp, $sp -/* 0CC79C 800CBB9C 0C032ED2 */ jal func_800CBB48 -/* 0CC7A0 800CBBA0 27A50034 */ addiu $a1, $sp, 0x34 -/* 0CC7A4 800CBBA4 8FDF002C */ lw $ra, 0x2c($fp) -/* 0CC7A8 800CBBA8 03C0E825 */ move $sp, $fp -/* 0CC7AC 800CBBAC 8FDE0028 */ lw $fp, 0x28($fp) -/* 0CC7B0 800CBBB0 03E00008 */ jr $ra -/* 0CC7B4 800CBBB4 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/audio/port_eu/func_800CBBB8.s b/asm/non_matchings/audio/port_eu/func_800CBBB8.s deleted file mode 100644 index ca8897b88..000000000 --- a/asm/non_matchings/audio/port_eu/func_800CBBB8.s +++ /dev/null @@ -1,13 +0,0 @@ -glabel func_800CBBB8 -/* 0CC7B8 800CBBB8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0CC7BC 800CBBBC AFBF002C */ sw $ra, 0x2c($sp) -/* 0CC7C0 800CBBC0 AFBE0028 */ sw $fp, 0x28($sp) -/* 0CC7C4 800CBBC4 AFA50034 */ sw $a1, 0x34($sp) -/* 0CC7C8 800CBBC8 03A0F025 */ move $fp, $sp -/* 0CC7CC 800CBBCC 0C032ED2 */ jal func_800CBB48 -/* 0CC7D0 800CBBD0 27A50034 */ addiu $a1, $sp, 0x34 -/* 0CC7D4 800CBBD4 8FDF002C */ lw $ra, 0x2c($fp) -/* 0CC7D8 800CBBD8 03C0E825 */ move $sp, $fp -/* 0CC7DC 800CBBDC 8FDE0028 */ lw $fp, 0x28($fp) -/* 0CC7E0 800CBBE0 03E00008 */ jr $ra -/* 0CC7E4 800CBBE4 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/audio/port_eu/func_800CBBE8.s b/asm/non_matchings/audio/port_eu/func_800CBBE8.s deleted file mode 100644 index a3daf763a..000000000 --- a/asm/non_matchings/audio/port_eu/func_800CBBE8.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_800CBBE8 -/* 0CC7E8 800CBBE8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0CC7EC 800CBBEC 00A07025 */ move $t6, $a1 -/* 0CC7F0 800CBBF0 AFBF002C */ sw $ra, 0x2c($sp) -/* 0CC7F4 800CBBF4 AFBE0028 */ sw $fp, 0x28($sp) -/* 0CC7F8 800CBBF8 AFA5003C */ sw $a1, 0x3c($sp) -/* 0CC7FC 800CBBFC 000E7E00 */ sll $t7, $t6, 0x18 -/* 0CC800 800CBC00 03A0F025 */ move $fp, $sp -/* 0CC804 800CBC04 AFAF0034 */ sw $t7, 0x34($sp) -/* 0CC808 800CBC08 0C032ED2 */ jal func_800CBB48 -/* 0CC80C 800CBC0C 27A50034 */ addiu $a1, $sp, 0x34 -/* 0CC810 800CBC10 8FDF002C */ lw $ra, 0x2c($fp) -/* 0CC814 800CBC14 03C0E825 */ move $sp, $fp -/* 0CC818 800CBC18 8FDE0028 */ lw $fp, 0x28($fp) -/* 0CC81C 800CBC1C 03E00008 */ jr $ra -/* 0CC820 800CBC20 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/audio/port_eu/func_800CBF48.s b/asm/non_matchings/audio/port_eu/func_800CBF48.s deleted file mode 100644 index 7c1b2ca66..000000000 --- a/asm/non_matchings/audio/port_eu/func_800CBF48.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_800CBF48 -/* 0CCB48 800CBF48 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0CCB4C 800CBF4C AFBF0024 */ sw $ra, 0x24($sp) -/* 0CCB50 800CBF50 AFBE0020 */ sw $fp, 0x20($sp) -/* 0CCB54 800CBF54 0C032EAD */ jal func_800CBAB4 -/* 0CCB58 800CBF58 03A0F025 */ move $fp, $sp -/* 0CCB5C 800CBF5C 8FDF0024 */ lw $ra, 0x24($fp) -/* 0CCB60 800CBF60 03C0E825 */ move $sp, $fp -/* 0CCB64 800CBF64 8FDE0020 */ lw $fp, 0x20($fp) -/* 0CCB68 800CBF68 03E00008 */ jr $ra -/* 0CCB6C 800CBF6C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/audio/external.c b/src/audio/external.c index fdb0b1069..82ca2603c 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -12,25 +12,19 @@ void func_800C13F0(void) { } - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 extern OSMesgQueue *D_800EA3B0; extern OSMesgQueue *D_800EA3B4; -void func_800C13FC(void *arg0) { - void *sp34; - - osRecvMesg(D_800EA3B4, &sp34, 0); - osSendMesg(D_800EA3B0, arg0, 0); - osRecvMesg(D_800EA3B4, &sp34, 1); - if (sp34 != arg0) { - osRecvMesg(D_800EA3B4, &sp34, 1); +void func_800C13FC(OSMesg presetId) { + OSMesg mesg; + osRecvMesg(D_800EA3B4, &mesg, 0); + osSendMesg(D_800EA3B0, presetId, 0); + osRecvMesg(D_800EA3B4, &mesg, 1); + if (mesg != presetId) { + osRecvMesg(D_800EA3B4, &mesg, 1); } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C13FC.s") -#endif + f32 func_800C1480(u8 bank, u8 soundId) { f32 temp_f0; diff --git a/src/audio/heap.c b/src/audio/heap.c index dcf11b483..8ccaa6461 100644 --- a/src/audio/heap.c +++ b/src/audio/heap.c @@ -2,6 +2,7 @@ #include #include "audio/heap.h" #include "audio/load.h" +#include "audio/synthesis.h" #include "audio/playback.h" #include "audio/seqplayer.h" @@ -139,42 +140,21 @@ void func_800B90E0(struct SoundAllocPool *pool) { pool->cur = pool->start; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void sound_alloc_pool_init(? *, ? *, s32, s32); // extern extern s32 D_800EA5D0; -extern ? gAudioSessionPool; -extern ? gAudioInitPool; -extern ? D_803B71B0; +extern u8 D_803B71B0[]; +// inspired by sound_init_main_pools in sm64 void func_800B90F0(s32 arg0) { - s32 temp_a2; - - temp_a2 = arg0; - arg0 = temp_a2; - sound_alloc_pool_init(&gAudioInitPool, &D_803B71B0, temp_a2); - sound_alloc_pool_init(&gAudioSessionPool, arg0 + &D_803B71B0, D_800EA5D0 - arg0, arg0); + sound_alloc_pool_init(&gAudioInitPool, &D_803B71B0, arg0); + sound_alloc_pool_init(&gLeftVolRampings, D_803B71B0 + arg0, D_800EA5D0 - arg0); } -#else -GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B90F0.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 soundAlloc(? *, s32); // extern -void sound_alloc_pool_init(? *, s32, s32); // extern -extern ? gAudioSessionPool; -extern ? gNotesAndBuffersPool; -extern ? gSeqAndBankPool; - -void func_800B914C(void *arg0) { - gAudioSessionPool.unk4 = gAudioSessionPool.unk0; - sound_alloc_pool_init(&gNotesAndBuffersPool, soundAlloc(&gAudioSessionPool, arg0->unk0), arg0->unk0); - sound_alloc_pool_init(&gSeqAndBankPool, soundAlloc(&gAudioSessionPool, arg0->unkC), arg0->unkC); +// inspired by session_pools_init in sm64 +void func_800B914C(struct PoolSplit *arg0) { + gLeftVolRampings.cur = gLeftVolRampings.start; + sound_alloc_pool_init(&gNotesAndBuffersPool, soundAlloc(&gLeftVolRampings, arg0->wantSeq), arg0->wantSeq); + sound_alloc_pool_init(&gSeqAndBankPool, soundAlloc(&gLeftVolRampings, arg0->wantCustom), arg0->wantCustom); } -#else -GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B914C.s") -#endif void seq_and_bank_pool_init(struct PoolSplit2 *a) { gSeqAndBankPool.cur = gSeqAndBankPool.start; @@ -603,78 +583,40 @@ void *get_bank_or_seq_inner(s32 poolIdx, s32 arg1, s32 bankId) { return NULL; } -#ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c +#ifdef NEEDS_RODATA +// inspired by func_eu_802e27e4_unused from SM64 void func_800B9BE4(f32 arg0, f32 arg1, u16 *arg2) { - ? sp4C; - f32 sp30; - f32 sp2C; - ? sp14; - f32 sp10; - f32 spC; - ? *var_a0; - f32 *var_a0_2; - f32 temp_f10; - f32 temp_f6; - f32 temp_f8; - u16 *var_v1; - u16 *var_v1_2; + s32 i; + f32 tmp[16]; - var_a0 = &sp14; - var_v1 = arg2 + 4; - spC = arg1 * 262159.0f; - sp2C = arg0 * 262159.0f; - sp10 = arg1 * arg0 * 262159.0f; - sp30 = ((arg0 * arg0) + arg1) * 262159.0f; - do { - *var_v1 = (u16) (u32) ((var_a0->unk-4 * arg0) + (arg1 * var_a0->unk-8)); - temp_f8 = var_a0->unk18; - temp_f10 = var_a0->unk1C * arg0; - var_a0 += 4; - var_v1 += 2; - var_v1->unkE = (s16) (u32) (temp_f10 + (arg1 * temp_f8)); - } while ((u32) var_a0 < (u32) &sp2C); - var_v1_2 = arg2; - var_a0_2 = &spC; - do { - var_v1_2->unk0 = (u16) (u32) var_a0_2->unk0; - var_v1_2->unk2 = (s16) (u32) var_a0_2->unk4; - var_v1_2->unk4 = (s16) (u32) var_a0_2->unk8; - temp_f6 = var_a0_2->unkC; - var_a0_2 += 0x10; - var_v1_2->unk6 = (s16) (u32) temp_f6; - var_v1_2 += 8; - } while (var_a0_2 != &sp4C); + tmp[0] = arg1 * 262159.0f; + tmp[8] = arg0 * 262159.0f; + tmp[1] = (arg1 * arg0) * 262159.0f; + tmp[9] = ((arg0 * arg0) + arg1) * 262159.0f; + + for (i = 2; i < 8; i++) { + //! @bug they probably meant to store the value to tmp[i] and tmp[8 + i] + arg2[i] = arg1 * tmp[i - 2] + arg0 * tmp[i - 1]; + arg2[8 + i] = arg1 * tmp[6 + i] + arg0 * tmp[7 + i]; + } + + for (i = 0; i < 16; i++) { + arg2[i] = tmp[i]; + } } #else GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B9BE4.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_803AF790; -extern s8 D_803AFBC3; +extern s8 gNumSynthesisReverbs; +// inspired by decrease_reverb_gain from SM64 void func_800B9FB8(void) { - ? *temp_v0; - s8 temp_v1; - u16 temp_v1_2; - ? *phi_v0; - - temp_v1 = D_803AFBC3; - phi_v0 = &D_803AF790; - if (temp_v1 > 0) { - do { - temp_v1_2 = phi_v0->unk8; - temp_v0 = phi_v0 + 0x108; - temp_v0->unk-100 = temp_v1_2 - (temp_v1_2 / 4); - phi_v0 = temp_v0; - } while (temp_v0 < ((temp_v1 * 0x108) + &D_803AF790)); + s32 i; + for (i = 0; i < gNumSynthesisReverbs; i++) { + gSynthesisReverbs[i].reverbGain -= gSynthesisReverbs[i].reverbGain / 4; } } -#else -GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B9FB8.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 diff --git a/src/audio/heap.h b/src/audio/heap.h index f3e32c08a..ddece44b1 100644 --- a/src/audio/heap.h +++ b/src/audio/heap.h @@ -108,6 +108,7 @@ void *unk_pool1_lookup(s32 poolIdx, s32 id); // Note: In some .asm files D_803AFBC8 has been replaced with gLeftVolRampings // That is almost certainly incorrect, but I don't know how to fix it at this point +extern struct SoundAllocPool gLeftVolRampings; extern struct SoundAllocPool gAudioSessionPool; // D_803AFBC8 extern struct SoundAllocPool gAudioInitPool; // D_803AFBD8 extern struct SoundAllocPool gNotesAndBuffersPool; diff --git a/src/audio/port_eu.c b/src/audio/port_eu.c index 95a12753e..70e5a8636 100644 --- a/src/audio/port_eu.c +++ b/src/audio/port_eu.c @@ -288,14 +288,10 @@ void func_800CBA64(s32 playerIndex, s32 fadeInTime) { } } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s8 D_800EA3A0; -extern s8 D_800EA3A4; -extern OSMesgQueue *D_800EA3A8; -extern OSMesgQueue *D_800EA3AC; -extern OSMesgQueue *D_800EA3B0; -extern OSMesgQueue *D_800EA3B4; +extern u8 D_800EA3A0; +extern u8 D_800EA3A4; + +extern OSMesgQueue *D_800EA3A8[4]; extern void *D_80194020; extern void *D_80194028; extern void *D_80194038; @@ -304,88 +300,54 @@ extern void *D_8019403C; void func_800CBAB4(void) { D_800EA3A0 = 0; D_800EA3A4 = 0; - osCreateMesgQueue(D_800EA3A8, &D_80194020, 1); - osCreateMesgQueue(D_800EA3AC, &D_80194028, 4); - osCreateMesgQueue(D_800EA3B0, &D_80194038, 1); - osCreateMesgQueue(D_800EA3B4, &D_8019403C, 1); + osCreateMesgQueue(D_800EA3A8[0], &D_80194020, 1); + osCreateMesgQueue(D_800EA3A8[1], &D_80194028, 4); + osCreateMesgQueue(D_800EA3A8[2], &D_80194038, 1); + osCreateMesgQueue(D_800EA3A8[3], &D_8019403C, 1); +} + +extern struct EuAudioCmd D_80193820[0x100]; + +void func_800CBB48(s32 arg0, s32 *arg1){ + struct EuAudioCmd *cmd = &D_80193820[D_800EA3A0 & 0xff]; + cmd->u.first = arg0; + cmd->u2.as_u32 = *arg1; + D_800EA3A0++; +} + +void func_800CBB88(u32 arg0, f32 arg1) { + func_800CBB48(arg0, (s32*) &arg1); +} + +void func_800CBBB8(u32 arg0, u32 arg1) { + func_800CBB48(arg0, &arg1); +} + +void func_800CBBE8(u32 arg0, s8 arg1) { + s32 sp34 = arg1 << 24; + func_800CBB48(arg0, &sp34); } -#else -GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBAB4.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern u8 D_800EA3A0; -extern ? D_80193820; - -void func_800CBB48(s32 arg0, s32 *arg1) { - void *temp_v0; - - temp_v0 = (D_800EA3A0 * 8) + &D_80193820; - temp_v0->unk0 = arg0; - temp_v0->unk4 = *arg1; - D_800EA3A0 = D_800EA3A0 + 1; -} -#else -GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBB48.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800CBB48(? *); // extern - -void func_800CBB88(? arg1) { - func_800CBB48(&arg1); -} -#else -GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBB88.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800CBB48(? *); // extern - -void func_800CBBB8(? arg1) { - func_800CBB48(&arg1); -} -#else -GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBBB8.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800CBB48(s32 *); // extern - -void func_800CBBE8(s32 arg1) { - s32 sp34; - - sp34 = arg1 << 0x18; - func_800CBB48(&sp34); -} -#else -GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBBE8.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern u8 D_800EA3A0; -extern u8 D_800EA3A4; -extern OSMesgQueue *D_800EA3AC; +// link of progress : https://decomp.me/scratch/1N93O +extern OSMesgQueue *D_800EA3A8[4]; extern s32 D_800EA4A4; -void func_800CBC24(void) { - s32 temp_t6; - u8 temp_v0; - u8 temp_v1; +void func_800CBC24(void) +{ + s32 temp_t6; + s8 temp_v0; + s8 temp_v1; + u32 tmp; + temp_t6 = ((D_800EA3A0 - D_800EA3A4) + 0x100) & 0xFF; + if (D_800EA4A4 < temp_t6) + { + D_800EA4A4 = temp_t6; + } - temp_v1 = D_800EA3A4; - temp_v0 = D_800EA3A0; - temp_t6 = ((temp_v0 - temp_v1) + 0x100) & 0xFF; - if (D_800EA4A4 < temp_t6) { - D_800EA4A4 = temp_t6; - } - osSendMesg(D_800EA3AC, ((temp_v1 & 0xFF) << 8) | (temp_v0 & 0xFF), 0); - D_800EA3A4 = D_800EA3A0; + tmp = ((D_800EA3A0 & 0xFF) << 8) | (D_800EA3A4 & 0xFF); + osSendMesg(D_800EA3A8[1], tmp, 0); + D_800EA3A4 = D_800EA3A0; } #else GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBC24.s") @@ -498,13 +460,7 @@ void func_800CBCB0(u32 arg0) { GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBCB0.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c -? func_800CBAB4(); /* extern */ -void func_800CBF48(void) { +void func_800CBF48() { func_800CBAB4(); } -#else -GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBF48.s") -#endif