From a53de1e70c44493dc43bb9bbc50f4c5103f2fd9c Mon Sep 17 00:00:00 2001 From: n64 Date: Thu, 3 Dec 2020 20:57:48 -0500 Subject: [PATCH] Refresh 13 2 --- CHANGES | 8 + .../sh/audio/load/func_sh_802f4e50.s | 190 ----- .../sequence_player_process_sequence.s | 723 ------------------ .../sh/audio/synthesis/process_envelope.s | 303 -------- src/audio/load.c | 134 ++-- src/audio/seqplayer.c | 39 +- src/audio/synthesis.c | 32 +- 7 files changed, 105 insertions(+), 1324 deletions(-) delete mode 100644 asm/non_matchings/sh/audio/load/func_sh_802f4e50.s delete mode 100644 asm/non_matchings/sh/audio/seqplayer/sequence_player_process_sequence.s delete mode 100644 asm/non_matchings/sh/audio/synthesis/process_envelope.s diff --git a/CHANGES b/CHANGES index 1d32945c..67053301 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,11 @@ +Refresh 13 2 + +- No more nonmatchings remain for all builds including Shindou. + +1.) Shindou OK (#1118) +2.) Match shindou sequence_player_process_sequence (#1117) +3.) Match func_sh_802f4e50 (#1116) + Refresh 13 - No more nonmatchings remain for US, JP, or EU builds. Three(!!!) remain for Shindou (SH). diff --git a/asm/non_matchings/sh/audio/load/func_sh_802f4e50.s b/asm/non_matchings/sh/audio/load/func_sh_802f4e50.s deleted file mode 100644 index 9e478304..00000000 --- a/asm/non_matchings/sh/audio/load/func_sh_802f4e50.s +++ /dev/null @@ -1,190 +0,0 @@ -glabel func_sh_802f4e50 -/* 0ACE50 80200000 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0ACE54 80200004 AFBF001C */ sw $ra, 0x1c($sp) -/* 0ACE58 80200008 AFB00018 */ sw $s0, 0x18($sp) -/* 0ACE5C 8020000C 80820001 */ lb $v0, 1($a0) -/* 0ACE60 80200010 3C038035 */ lui $v1, %hi(gAlTbl) # $v1, 0x8035 -/* 0ACE64 80200014 00808025 */ move $s0, $a0 -/* 0ACE68 80200018 28410002 */ slti $at, $v0, 2 -/* 0ACE6C 8020001C 14200004 */ bnez $at, .L85_80200030 -/* 0ACE70 80200020 8C6305EC */ lw $v1, %lo(gAlTbl)($v1) -/* 0ACE74 80200024 244EFFFF */ addiu $t6, $v0, -1 -/* 0ACE78 80200028 10000097 */ b .L85_80200288 -/* 0ACE7C 8020002C A08E0001 */ sb $t6, 1($a0) -.L85_80200030: -/* 0ACE80 80200030 24070001 */ li $a3, 1 -/* 0ACE84 80200034 14E20003 */ bne $a3, $v0, .L85_80200044 -/* 0ACE88 80200038 00000000 */ nop -/* 0ACE8C 8020003C 10000011 */ b .L85_80200084 -/* 0ACE90 80200040 A2000001 */ sb $zero, 1($s0) -.L85_80200044: -/* 0ACE94 80200044 10A00007 */ beqz $a1, .L85_80200064 -/* 0ACE98 80200048 26040020 */ addiu $a0, $s0, 0x20 -/* 0ACE9C 8020004C 26040020 */ addiu $a0, $s0, 0x20 -/* 0ACEA0 80200050 00002825 */ move $a1, $zero -/* 0ACEA4 80200054 0C0C0540 */ jal osRecvMesg -/* 0ACEA8 80200058 24060001 */ li $a2, 1 -/* 0ACEAC 8020005C 1000008A */ b .L85_80200288 -/* 0ACEB0 80200060 A2000000 */ sb $zero, ($s0) -.L85_80200064: -/* 0ACEB4 80200064 00002825 */ move $a1, $zero -/* 0ACEB8 80200068 00003025 */ move $a2, $zero -/* 0ACEBC 8020006C 0C0C0540 */ jal osRecvMesg -/* 0ACEC0 80200070 AFA3005C */ sw $v1, 0x5c($sp) -/* 0ACEC4 80200074 2401FFFF */ li $at, -1 -/* 0ACEC8 80200078 8FA3005C */ lw $v1, 0x5c($sp) -/* 0ACECC 8020007C 10410082 */ beq $v0, $at, .L85_80200288 -/* 0ACED0 80200080 24070001 */ li $a3, 1 -.L85_80200084: -/* 0ACED4 80200084 8E0F0010 */ lw $t7, 0x10($s0) -/* 0ACED8 80200088 15E00055 */ bnez $t7, .L85_802001E0 -/* 0ACEDC 8020008C AFAF0024 */ sw $t7, 0x24($sp) -/* 0ACEE0 80200090 8E050018 */ lw $a1, 0x18($s0) -/* 0ACEE4 80200094 3C0A8035 */ lui $t2, %hi(gSeqLoadStatus) # $t2, 0x8035 -/* 0ACEE8 80200098 254A8C28 */ addiu $t2, %lo(gSeqLoadStatus) # addiu $t2, $t2, -0x73d8 -/* 0ACEEC 8020009C 00051C02 */ srl $v1, $a1, 0x10 -/* 0ACEF0 802000A0 307900FF */ andi $t9, $v1, 0xff -/* 0ACEF4 802000A4 13200008 */ beqz $t9, .L85_802000C8 -/* 0ACEF8 802000A8 00A01025 */ move $v0, $a1 -/* 0ACEFC 802000AC 1327001B */ beq $t9, $a3, .L85_8020011C -/* 0ACF00 802000B0 00024202 */ srl $t0, $v0, 8 -/* 0ACF04 802000B4 24010002 */ li $at, 2 -/* 0ACF08 802000B8 1321000D */ beq $t9, $at, .L85_802000F0 -/* 0ACF0C 802000BC 00026A02 */ srl $t5, $v0, 8 -/* 0ACF10 802000C0 10000042 */ b .L85_802001CC -/* 0ACF14 802000C4 A2000000 */ sb $zero, ($s0) -.L85_802000C8: -/* 0ACF18 802000C8 00024202 */ srl $t0, $v0, 8 -/* 0ACF1C 802000CC 310900FF */ andi $t1, $t0, 0xff -/* 0ACF20 802000D0 012A1821 */ addu $v1, $t1, $t2 -/* 0ACF24 802000D4 906B0000 */ lbu $t3, ($v1) -/* 0ACF28 802000D8 24010005 */ li $at, 5 -/* 0ACF2C 802000DC 5161003B */ beql $t3, $at, .L85_802001CC -/* 0ACF30 802000E0 A2000000 */ sb $zero, ($s0) -/* 0ACF34 802000E4 A0620000 */ sb $v0, ($v1) -/* 0ACF38 802000E8 10000037 */ b .L85_802001C8 -/* 0ACF3C 802000EC 8E050018 */ lw $a1, 0x18($s0) -.L85_802000F0: -/* 0ACF40 802000F0 3C0F8035 */ lui $t7, %hi(gUnkLoadStatus) # $t7, 0x8035 -/* 0ACF44 802000F4 25EF8BA8 */ addiu $t7, %lo(gUnkLoadStatus) # addiu $t7, $t7, -0x7458 -/* 0ACF48 802000F8 31AE00FF */ andi $t6, $t5, 0xff -/* 0ACF4C 802000FC 01CF1821 */ addu $v1, $t6, $t7 -/* 0ACF50 80200100 90780000 */ lbu $t8, ($v1) -/* 0ACF54 80200104 24010005 */ li $at, 5 -/* 0ACF58 80200108 53010030 */ beql $t8, $at, .L85_802001CC -/* 0ACF5C 8020010C A2000000 */ sb $zero, ($s0) -/* 0ACF60 80200110 A0620000 */ sb $v0, ($v1) -/* 0ACF64 80200114 1000002C */ b .L85_802001C8 -/* 0ACF68 80200118 8E050018 */ lw $a1, 0x18($s0) -.L85_8020011C: -/* 0ACF6C 8020011C 3C0A8035 */ lui $t2, %hi(gBankLoadStatus) # $t2, 0x8035 -/* 0ACF70 80200120 254A8BE8 */ addiu $t2, %lo(gBankLoadStatus) # addiu $t2, $t2, -0x7418 -/* 0ACF74 80200124 310900FF */ andi $t1, $t0, 0xff -/* 0ACF78 80200128 012A1821 */ addu $v1, $t1, $t2 -/* 0ACF7C 8020012C 906B0000 */ lbu $t3, ($v1) -/* 0ACF80 80200130 24010005 */ li $at, 5 -/* 0ACF84 80200134 AFA90024 */ sw $t1, 0x24($sp) -/* 0ACF88 80200138 11610002 */ beq $t3, $at, .L85_80200144 -/* 0ACF8C 8020013C 27A5003C */ addiu $a1, $sp, 0x3c -/* 0ACF90 80200140 A0620000 */ sb $v0, ($v1) -.L85_80200144: -/* 0ACF94 80200144 8FAE0024 */ lw $t6, 0x24($sp) -/* 0ACF98 80200148 3C0D8035 */ lui $t5, %hi(gCtlEntries) # $t5, 0x8035 -/* 0ACF9C 8020014C 8DAD05F8 */ lw $t5, %lo(gCtlEntries)($t5) -/* 0ACFA0 80200150 000E7880 */ sll $t7, $t6, 2 -/* 0ACFA4 80200154 01EE7823 */ subu $t7, $t7, $t6 -/* 0ACFA8 80200158 000F7880 */ sll $t7, $t7, 2 -/* 0ACFAC 8020015C 01AF1021 */ addu $v0, $t5, $t7 -/* 0ACFB0 80200160 90440002 */ lbu $a0, 2($v0) -/* 0ACFB4 80200164 90460003 */ lbu $a2, 3($v0) -/* 0ACFB8 80200168 240100FF */ li $at, 255 -/* 0ACFBC 8020016C AFA4002C */ sw $a0, 0x2c($sp) -/* 0ACFC0 80200170 10810006 */ beq $a0, $at, .L85_8020018C -/* 0ACFC4 80200174 AFA60030 */ sw $a2, 0x30($sp) -/* 0ACFC8 80200178 0C0BCD66 */ jal func_sh_802f3598 -/* 0ACFCC 8020017C AFA60044 */ sw $a2, 0x44($sp) -/* 0ACFD0 80200180 8FA60044 */ lw $a2, 0x44($sp) -/* 0ACFD4 80200184 10000002 */ b .L85_80200190 -/* 0ACFD8 80200188 AFA20034 */ sw $v0, 0x34($sp) -.L85_8020018C: -/* 0ACFDC 8020018C AFA00034 */ sw $zero, 0x34($sp) -.L85_80200190: -/* 0ACFE0 80200190 240100FF */ li $at, 255 -/* 0ACFE4 80200194 10C10005 */ beq $a2, $at, .L85_802001AC -/* 0ACFE8 80200198 00C02025 */ move $a0, $a2 -/* 0ACFEC 8020019C 0C0BCD66 */ jal func_sh_802f3598 -/* 0ACFF0 802001A0 27A50040 */ addiu $a1, $sp, 0x40 -/* 0ACFF4 802001A4 10000002 */ b .L85_802001B0 -/* 0ACFF8 802001A8 AFA20038 */ sw $v0, 0x38($sp) -.L85_802001AC: -/* 0ACFFC 802001AC AFA00038 */ sw $zero, 0x38($sp) -.L85_802001B0: -/* 0AD000 802001B0 8FA40024 */ lw $a0, 0x24($sp) -/* 0AD004 802001B4 8E050004 */ lw $a1, 4($s0) -/* 0AD008 802001B8 27A6002C */ addiu $a2, $sp, 0x2c -/* 0AD00C 802001BC 0C0BD4C4 */ jal func_sh_802f5310 -/* 0AD010 802001C0 24070001 */ li $a3, 1 -/* 0AD014 802001C4 8E050018 */ lw $a1, 0x18($s0) -.L85_802001C8: -/* 0AD018 802001C8 A2000000 */ sb $zero, ($s0) -.L85_802001CC: -/* 0AD01C 802001CC 8E04001C */ lw $a0, 0x1c($s0) -/* 0AD020 802001D0 0C0C07A0 */ jal osSendMesg -/* 0AD024 802001D4 00003025 */ move $a2, $zero -/* 0AD028 802001D8 1000002C */ b .L85_8020028C -/* 0AD02C 802001DC 8FBF001C */ lw $ra, 0x1c($sp) -.L85_802001E0: -/* 0AD030 802001E0 8E060014 */ lw $a2, 0x14($s0) -/* 0AD034 802001E4 8FB80024 */ lw $t8, 0x24($sp) -/* 0AD038 802001E8 0306082B */ sltu $at, $t8, $a2 -/* 0AD03C 802001EC 50200011 */ beql $at, $zero, .L85_80200234 -/* 0AD040 802001F0 82080002 */ lb $t0, 2($s0) -/* 0AD044 802001F4 82190002 */ lb $t9, 2($s0) -/* 0AD048 802001F8 03003025 */ move $a2, $t8 -/* 0AD04C 802001FC 02002025 */ move $a0, $s0 -/* 0AD050 80200200 14F90007 */ bne $a3, $t9, .L85_80200220 -/* 0AD054 80200204 00000000 */ nop -/* 0AD058 80200208 8E040008 */ lw $a0, 8($s0) -/* 0AD05C 8020020C 8E05000C */ lw $a1, 0xc($s0) -/* 0AD060 80200210 0C0BD45F */ jal func_sh_802f517c -/* 0AD064 80200214 84670002 */ lh $a3, 2($v1) -/* 0AD068 80200218 10000003 */ b .L85_80200228 -/* 0AD06C 8020021C 00000000 */ nop -.L85_80200220: -/* 0AD070 80200220 0C0BD43B */ jal func_sh_802f50ec -/* 0AD074 80200224 8FA50024 */ lw $a1, 0x24($sp) -.L85_80200228: -/* 0AD078 80200228 10000017 */ b .L85_80200288 -/* 0AD07C 8020022C AE000010 */ sw $zero, 0x10($s0) -/* 0AD080 80200230 82080002 */ lb $t0, 2($s0) -.L85_80200234: -/* 0AD084 80200234 02002025 */ move $a0, $s0 -/* 0AD088 80200238 14E80007 */ bne $a3, $t0, .L85_80200258 -/* 0AD08C 8020023C 00000000 */ nop -/* 0AD090 80200240 8E040008 */ lw $a0, 8($s0) -/* 0AD094 80200244 8E05000C */ lw $a1, 0xc($s0) -/* 0AD098 80200248 0C0BD45F */ jal func_sh_802f517c -/* 0AD09C 8020024C 84670002 */ lh $a3, 2($v1) -/* 0AD0A0 80200250 10000004 */ b .L85_80200264 -/* 0AD0A4 80200254 8E060014 */ lw $a2, 0x14($s0) -.L85_80200258: -/* 0AD0A8 80200258 0C0BD43B */ jal func_sh_802f50ec -/* 0AD0AC 8020025C 00C02825 */ move $a1, $a2 -/* 0AD0B0 80200260 8E060014 */ lw $a2, 0x14($s0) -.L85_80200264: -/* 0AD0B4 80200264 8E090010 */ lw $t1, 0x10($s0) -/* 0AD0B8 80200268 8E0B0008 */ lw $t3, 8($s0) -/* 0AD0BC 8020026C 8E0E000C */ lw $t6, 0xc($s0) -/* 0AD0C0 80200270 01265023 */ subu $t2, $t1, $a2 -/* 0AD0C4 80200274 01666021 */ addu $t4, $t3, $a2 -/* 0AD0C8 80200278 01C66821 */ addu $t5, $t6, $a2 -/* 0AD0CC 8020027C AE0A0010 */ sw $t2, 0x10($s0) -/* 0AD0D0 80200280 AE0C0008 */ sw $t4, 8($s0) -/* 0AD0D4 80200284 AE0D000C */ sw $t5, 0xc($s0) -.L85_80200288: -/* 0AD0D8 80200288 8FBF001C */ lw $ra, 0x1c($sp) -.L85_8020028C: -/* 0AD0DC 8020028C 8FB00018 */ lw $s0, 0x18($sp) -/* 0AD0E0 80200290 27BD0060 */ addiu $sp, $sp, 0x60 -/* 0AD0E4 80200294 03E00008 */ jr $ra -/* 0AD0E8 80200298 00000000 */ nop diff --git a/asm/non_matchings/sh/audio/seqplayer/sequence_player_process_sequence.s b/asm/non_matchings/sh/audio/seqplayer/sequence_player_process_sequence.s deleted file mode 100644 index 223a9c51..00000000 --- a/asm/non_matchings/sh/audio/seqplayer/sequence_player_process_sequence.s +++ /dev/null @@ -1,723 +0,0 @@ -.late_rodata -glabel jtbl_8031A7BC -.word .L802FBBF0 -.word .L802FBBB8 -.word .L802FBBA8 -.word .L802FBB98 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FBB88 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FBB78 -.word .L802FBB4C -.word .L802FBB4C -.word .L802FBB3C -.word .L802FBB2C -.word .L802FBB00 -.word .L802FBAE4 -.word .L802FBAC8 -.word .L802FB6A8 -.word .L802FBA9C -.word .L802FB988 -.word .L802FBA04 -.word .L802FB964 -.word .L802FB910 -.word .L802FB8F0 -.word .L802FB8EC -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB8DC -.word .L802FB8B4 -.word .L802FB86C -.word .L802FB86C -.word .L802FB86C -.word .L802FB814 -.word .L802FB6A8 -.word .L802FB7CC -.word .L802FB794 -.word .L802FB814 -.word .L802FB814 -.word .L802FB814 -.word .L802FB750 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -glabel jtbl_8031A8A4 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FBC80 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FBC8C -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FBC94 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FBC9C -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 -.word .L802FB6A8 - -.text -glabel sequence_player_process_sequence -/* 0B356C 802FB56C 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0B3570 802FB570 AFBF0024 */ sw $ra, 0x24($sp) -/* 0B3574 802FB574 AFB30020 */ sw $s3, 0x20($sp) -/* 0B3578 802FB578 AFB2001C */ sw $s2, 0x1c($sp) -/* 0B357C 802FB57C AFB10018 */ sw $s1, 0x18($sp) -/* 0B3580 802FB580 AFB00014 */ sw $s0, 0x14($sp) -/* 0B3584 802FB584 8C8E0000 */ lw $t6, ($a0) -/* 0B3588 802FB588 00808825 */ move $s1, $a0 -/* 0B358C 802FB58C 000E7FC2 */ srl $t7, $t6, 0x1f -/* 0B3590 802FB590 51E001E2 */ beql $t7, $zero, .L802FBD1C -/* 0B3594 802FB594 8FBF0024 */ lw $ra, 0x24($sp) -/* 0B3598 802FB598 90980004 */ lbu $t8, 4($a0) -/* 0B359C 802FB59C 3C198035 */ lui $t9, %hi(gSeqLoadStatus) # $t9, 0x8035 -/* 0B35A0 802FB5A0 27398C28 */ addiu $t9, %lo(gSeqLoadStatus) # addiu $t9, $t9, -0x73d8 -/* 0B35A4 802FB5A4 03191821 */ addu $v1, $t8, $t9 -/* 0B35A8 802FB5A8 90640000 */ lbu $a0, ($v1) -/* 0B35AC 802FB5AC 28880002 */ slti $t0, $a0, 2 -/* 0B35B0 802FB5B0 1500000A */ bnez $t0, .L802FB5DC -/* 0B35B4 802FB5B4 00000000 */ nop -/* 0B35B8 802FB5B8 92220005 */ lbu $v0, 5($s1) -/* 0B35BC 802FB5BC 240100FF */ li $at, 255 -/* 0B35C0 802FB5C0 3C098035 */ lui $t1, %hi(gBankLoadStatus) -/* 0B35C4 802FB5C4 10410009 */ beq $v0, $at, .L802FB5EC -/* 0B35C8 802FB5C8 01224821 */ addu $t1, $t1, $v0 -/* 0B35CC 802FB5CC 91298BE8 */ lbu $t1, %lo(gBankLoadStatus)($t1) -/* 0B35D0 802FB5D0 292A0002 */ slti $t2, $t1, 2 -/* 0B35D4 802FB5D4 51400006 */ beql $t2, $zero, .L802FB5F0 -/* 0B35D8 802FB5D8 24050005 */ li $a1, 5 -.L802FB5DC: -/* 0B35DC 802FB5DC 0C0BE5E9 */ jal sequence_player_disable -/* 0B35E0 802FB5E0 02202025 */ move $a0, $s1 -/* 0B35E4 802FB5E4 100001CD */ b .L802FBD1C -/* 0B35E8 802FB5E8 8FBF0024 */ lw $ra, 0x24($sp) -.L802FB5EC: -/* 0B35EC 802FB5EC 24050005 */ li $a1, 5 -.L802FB5F0: -/* 0B35F0 802FB5F0 10A40004 */ beq $a1, $a0, .L802FB604 -/* 0B35F4 802FB5F4 3C0C8035 */ lui $t4, %hi(gBankLoadStatus) # $t4, 0x8035 -/* 0B35F8 802FB5F8 240B0002 */ li $t3, 2 -/* 0B35FC 802FB5FC A06B0000 */ sb $t3, ($v1) -/* 0B3600 802FB600 92220005 */ lbu $v0, 5($s1) -.L802FB604: -/* 0B3604 802FB604 258C8BE8 */ addiu $t4, %lo(gBankLoadStatus) # addiu $t4, $t4, -0x7418 -/* 0B3608 802FB608 004C1821 */ addu $v1, $v0, $t4 -/* 0B360C 802FB60C 906D0000 */ lbu $t5, ($v1) -/* 0B3610 802FB610 240E0002 */ li $t6, 2 -/* 0B3614 802FB614 50AD0003 */ beql $a1, $t5, .L802FB624 -/* 0B3618 802FB618 8E2F0000 */ lw $t7, ($s1) -/* 0B361C 802FB61C A06E0000 */ sb $t6, ($v1) -/* 0B3620 802FB620 8E2F0000 */ lw $t7, ($s1) -.L802FB624: -/* 0B3624 802FB624 000FC880 */ sll $t9, $t7, 2 -/* 0B3628 802FB628 07230006 */ bgezl $t9, .L802FB644 -/* 0B362C 802FB62C 962A000A */ lhu $t2, 0xa($s1) -/* 0B3630 802FB630 92280003 */ lbu $t0, 3($s1) -/* 0B3634 802FB634 31090080 */ andi $t1, $t0, 0x80 -/* 0B3638 802FB638 552001B8 */ bnezl $t1, .L802FBD1C -/* 0B363C 802FB63C 8FBF0024 */ lw $ra, 0x24($sp) -/* 0B3640 802FB640 962A000A */ lhu $t2, 0xa($s1) -.L802FB644: -/* 0B3644 802FB644 962B0008 */ lhu $t3, 8($s1) -/* 0B3648 802FB648 862E000C */ lh $t6, 0xc($s1) -/* 0B364C 802FB64C 3C048035 */ lui $a0, %hi(gTempoInternalToExternal) # $a0, 0x8035 -/* 0B3650 802FB650 014B6821 */ addu $t5, $t2, $t3 -/* 0B3654 802FB654 A62D000A */ sh $t5, 0xa($s1) -/* 0B3658 802FB658 01AE7821 */ addu $t7, $t5, $t6 -/* 0B365C 802FB65C A62F000A */ sh $t7, 0xa($s1) -/* 0B3660 802FB660 8484062C */ lh $a0, %lo(gTempoInternalToExternal)($a0) -/* 0B3664 802FB664 31E2FFFF */ andi $v0, $t7, 0xffff -/* 0B3668 802FB668 0044082A */ slt $at, $v0, $a0 -/* 0B366C 802FB66C 542001AB */ bnezl $at, .L802FBD1C -/* 0B3670 802FB670 8FBF0024 */ lw $ra, 0x24($sp) -/* 0B3674 802FB674 96230010 */ lhu $v1, 0x10($s1) -/* 0B3678 802FB678 0044C823 */ subu $t9, $v0, $a0 -/* 0B367C 802FB67C A639000A */ sh $t9, 0xa($s1) -/* 0B3680 802FB680 28610002 */ slti $at, $v1, 2 -/* 0B3684 802FB684 14200003 */ bnez $at, .L802FB694 -/* 0B3688 802FB688 2468FFFF */ addiu $t0, $v1, -1 -/* 0B368C 802FB68C 1000018F */ b .L802FBCCC -/* 0B3690 802FB690 A6280010 */ sh $t0, 0x10($s1) -.L802FB694: -/* 0B3694 802FB694 922A0000 */ lbu $t2, ($s1) -/* 0B3698 802FB698 26300074 */ addiu $s0, $s1, 0x74 -/* 0B369C 802FB69C 354B0004 */ ori $t3, $t2, 4 -/* 0B36A0 802FB6A0 A22B0000 */ sb $t3, ($s1) -/* 0B36A4 802FB6A4 8FB30050 */ lw $s3, 0x50($sp) -.L802FB6A8: -/* 0B36A8 802FB6A8 0C0BE660 */ jal m64_read_u8 -/* 0B36AC 802FB6AC 02002025 */ move $a0, $s0 -/* 0B36B0 802FB6B0 240100FF */ li $at, 255 -/* 0B36B4 802FB6B4 305200FF */ andi $s2, $v0, 0xff -/* 0B36B8 802FB6B8 1441000E */ bne $v0, $at, .L802FB6F4 -/* 0B36BC 802FB6BC 00402825 */ move $a1, $v0 -/* 0B36C0 802FB6C0 92040018 */ lbu $a0, 0x18($s0) -/* 0B36C4 802FB6C4 14800005 */ bnez $a0, .L802FB6DC -/* 0B36C8 802FB6C8 2483FFFF */ addiu $v1, $a0, -1 -/* 0B36CC 802FB6CC 0C0BE5E9 */ jal sequence_player_disable -/* 0B36D0 802FB6D0 02202025 */ move $a0, $s1 -/* 0B36D4 802FB6D4 1000017D */ b .L802FBCCC -/* 0B36D8 802FB6D8 00000000 */ nop -.L802FB6DC: -/* 0B36DC 802FB6DC 306C00FF */ andi $t4, $v1, 0xff -/* 0B36E0 802FB6E0 000C6880 */ sll $t5, $t4, 2 -/* 0B36E4 802FB6E4 020D7021 */ addu $t6, $s0, $t5 -/* 0B36E8 802FB6E8 A20C0018 */ sb $t4, 0x18($s0) -/* 0B36EC 802FB6EC 8DCF0004 */ lw $t7, 4($t6) -/* 0B36F0 802FB6F0 AE0F0000 */ sw $t7, ($s0) -.L802FB6F4: -/* 0B36F4 802FB6F4 240100FD */ li $at, 253 -/* 0B36F8 802FB6F8 14A10005 */ bne $a1, $at, .L802FB710 -/* 0B36FC 802FB6FC 30A300F0 */ andi $v1, $a1, 0xf0 -/* 0B3700 802FB700 0C0BE671 */ jal m64_read_compressed_u16 -/* 0B3704 802FB704 02002025 */ move $a0, $s0 -/* 0B3708 802FB708 10000170 */ b .L802FBCCC -/* 0B370C 802FB70C A6220010 */ sh $v0, 0x10($s1) -.L802FB710: -/* 0B3710 802FB710 240100FE */ li $at, 254 -/* 0B3714 802FB714 14A10004 */ bne $a1, $at, .L802FB728 -/* 0B3718 802FB718 24B9FF3A */ addiu $t9, $a1, -0xc6 -/* 0B371C 802FB71C 24180001 */ li $t8, 1 -/* 0B3720 802FB720 1000016A */ b .L802FBCCC -/* 0B3724 802FB724 A6380010 */ sh $t8, 0x10($s1) -.L802FB728: -/* 0B3728 802FB728 28A100C0 */ slti $at, $a1, 0xc0 -/* 0B372C 802FB72C 14200134 */ bnez $at, .L802FBC00 -/* 0B3730 802FB730 2F21003A */ sltiu $at, $t9, 0x3a -/* 0B3734 802FB734 1020FFDC */ beqz $at, .L802FB6A8 -/* 0B3738 802FB738 0019C880 */ sll $t9, $t9, 2 -/* 0B373C 802FB73C 3C018032 */ lui $at, %hi(jtbl_8031A7BC) -/* 0B3740 802FB740 00390821 */ addu $at, $at, $t9 -/* 0B3744 802FB744 8C39A7BC */ lw $t9, %lo(jtbl_8031A7BC)($at) -/* 0B3748 802FB748 03200008 */ jr $t9 -/* 0B374C 802FB74C 00000000 */ nop -.L802FB750: -/* 0B3750 802FB750 0C0BE665 */ jal m64_read_s16 -/* 0B3754 802FB754 02002025 */ move $a0, $s0 -/* 0B3758 802FB758 92090018 */ lbu $t1, 0x18($s0) -/* 0B375C 802FB75C 8E080000 */ lw $t0, ($s0) -/* 0B3760 802FB760 304FFFFF */ andi $t7, $v0, 0xffff -/* 0B3764 802FB764 00095080 */ sll $t2, $t1, 2 -/* 0B3768 802FB768 020A5821 */ addu $t3, $s0, $t2 -/* 0B376C 802FB76C AD680004 */ sw $t0, 4($t3) -/* 0B3770 802FB770 920C0018 */ lbu $t4, 0x18($s0) -/* 0B3774 802FB774 258D0001 */ addiu $t5, $t4, 1 -/* 0B3778 802FB778 A20D0018 */ sb $t5, 0x18($s0) -/* 0B377C 802FB77C 8E2E0018 */ lw $t6, 0x18($s1) -/* 0B3780 802FB780 01CFC021 */ addu $t8, $t6, $t7 -/* 0B3784 802FB784 1000FFC8 */ b .L802FB6A8 -/* 0B3788 802FB788 AE180000 */ sw $t8, ($s0) -/* 0B378C 802FB78C 1000FFC6 */ b .L802FB6A8 -/* 0B3790 802FB790 00000000 */ nop -.L802FB794: -/* 0B3794 802FB794 0C0BE660 */ jal m64_read_u8 -/* 0B3798 802FB798 02002025 */ move $a0, $s0 -/* 0B379C 802FB79C 92190018 */ lbu $t9, 0x18($s0) -/* 0B37A0 802FB7A0 02194821 */ addu $t1, $s0, $t9 -/* 0B37A4 802FB7A4 A1220014 */ sb $v0, 0x14($t1) -/* 0B37A8 802FB7A8 92080018 */ lbu $t0, 0x18($s0) -/* 0B37AC 802FB7AC 8E0A0000 */ lw $t2, ($s0) -/* 0B37B0 802FB7B0 00085880 */ sll $t3, $t0, 2 -/* 0B37B4 802FB7B4 020B6021 */ addu $t4, $s0, $t3 -/* 0B37B8 802FB7B8 AD8A0004 */ sw $t2, 4($t4) -/* 0B37BC 802FB7BC 920D0018 */ lbu $t5, 0x18($s0) -/* 0B37C0 802FB7C0 25AE0001 */ addiu $t6, $t5, 1 -/* 0B37C4 802FB7C4 1000FFB8 */ b .L802FB6A8 -/* 0B37C8 802FB7C8 A20E0018 */ sb $t6, 0x18($s0) -.L802FB7CC: -/* 0B37CC 802FB7CC 920F0018 */ lbu $t7, 0x18($s0) -/* 0B37D0 802FB7D0 020F1021 */ addu $v0, $s0, $t7 -/* 0B37D4 802FB7D4 90580013 */ lbu $t8, 0x13($v0) -/* 0B37D8 802FB7D8 2719FFFF */ addiu $t9, $t8, -1 -/* 0B37DC 802FB7DC A0590013 */ sb $t9, 0x13($v0) -/* 0B37E0 802FB7E0 92040018 */ lbu $a0, 0x18($s0) -/* 0B37E4 802FB7E4 02044821 */ addu $t1, $s0, $a0 -/* 0B37E8 802FB7E8 91280013 */ lbu $t0, 0x13($t1) -/* 0B37EC 802FB7EC 00801825 */ move $v1, $a0 -/* 0B37F0 802FB7F0 00035880 */ sll $t3, $v1, 2 -/* 0B37F4 802FB7F4 11000005 */ beqz $t0, .L802FB80C -/* 0B37F8 802FB7F8 248DFFFF */ addiu $t5, $a0, -1 -/* 0B37FC 802FB7FC 020B5021 */ addu $t2, $s0, $t3 -/* 0B3800 802FB800 8D4C0000 */ lw $t4, ($t2) -/* 0B3804 802FB804 1000FFA8 */ b .L802FB6A8 -/* 0B3808 802FB808 AE0C0000 */ sw $t4, ($s0) -.L802FB80C: -/* 0B380C 802FB80C 1000FFA6 */ b .L802FB6A8 -/* 0B3810 802FB810 A20D0018 */ sb $t5, 0x18($s0) -.L802FB814: -/* 0B3814 802FB814 0C0BE665 */ jal m64_read_s16 -/* 0B3818 802FB818 02002025 */ move $a0, $s0 -/* 0B381C 802FB81C 240100FA */ li $at, 250 -/* 0B3820 802FB820 16410003 */ bne $s2, $at, .L802FB830 -/* 0B3824 802FB824 02401825 */ move $v1, $s2 -/* 0B3828 802FB828 1660FF9F */ bnez $s3, .L802FB6A8 -/* 0B382C 802FB82C 00000000 */ nop -.L802FB830: -/* 0B3830 802FB830 240100F9 */ li $at, 249 -/* 0B3834 802FB834 54610004 */ bnel $v1, $at, .L802FB848 -/* 0B3838 802FB838 240100F5 */ li $at, 245 -/* 0B383C 802FB83C 0661FF9A */ bgez $s3, .L802FB6A8 -/* 0B3840 802FB840 00000000 */ nop -/* 0B3844 802FB844 240100F5 */ li $at, 245 -.L802FB848: -/* 0B3848 802FB848 54610004 */ bnel $v1, $at, .L802FB85C -/* 0B384C 802FB84C 8E2E0018 */ lw $t6, 0x18($s1) -/* 0B3850 802FB850 0660FF95 */ bltz $s3, .L802FB6A8 -/* 0B3854 802FB854 00000000 */ nop -/* 0B3858 802FB858 8E2E0018 */ lw $t6, 0x18($s1) -.L802FB85C: -/* 0B385C 802FB85C 304FFFFF */ andi $t7, $v0, 0xffff -/* 0B3860 802FB860 01CFC021 */ addu $t8, $t6, $t7 -/* 0B3864 802FB864 1000FF90 */ b .L802FB6A8 -/* 0B3868 802FB868 AE180000 */ sw $t8, ($s0) -.L802FB86C: -/* 0B386C 802FB86C 0C0BE660 */ jal m64_read_u8 -/* 0B3870 802FB870 02002025 */ move $a0, $s0 -/* 0B3874 802FB874 240100F3 */ li $at, 243 -/* 0B3878 802FB878 16410003 */ bne $s2, $at, .L802FB888 -/* 0B387C 802FB87C 02401825 */ move $v1, $s2 -/* 0B3880 802FB880 1660FF89 */ bnez $s3, .L802FB6A8 -/* 0B3884 802FB884 00000000 */ nop -.L802FB888: -/* 0B3888 802FB888 240100F2 */ li $at, 242 -/* 0B388C 802FB88C 54610004 */ bnel $v1, $at, .L802FB8A0 -/* 0B3890 802FB890 8E190000 */ lw $t9, ($s0) -/* 0B3894 802FB894 0661FF84 */ bgez $s3, .L802FB6A8 -/* 0B3898 802FB898 00000000 */ nop -/* 0B389C 802FB89C 8E190000 */ lw $t9, ($s0) -.L802FB8A0: -/* 0B38A0 802FB8A0 00024E00 */ sll $t1, $v0, 0x18 -/* 0B38A4 802FB8A4 00094603 */ sra $t0, $t1, 0x18 -/* 0B38A8 802FB8A8 03285821 */ addu $t3, $t9, $t0 -/* 0B38AC 802FB8AC 1000FF7E */ b .L802FB6A8 -/* 0B38B0 802FB8B0 AE0B0000 */ sw $t3, ($s0) -.L802FB8B4: -/* 0B38B4 802FB8B4 26240098 */ addiu $a0, $s1, 0x98 -/* 0B38B8 802FB8B8 0C0BDF00 */ jal note_pool_clear -/* 0B38BC 802FB8BC AFA40030 */ sw $a0, 0x30($sp) -/* 0B38C0 802FB8C0 0C0BE660 */ jal m64_read_u8 -/* 0B38C4 802FB8C4 02002025 */ move $a0, $s0 -/* 0B38C8 802FB8C8 8FA40030 */ lw $a0, 0x30($sp) -/* 0B38CC 802FB8CC 0C0BDF58 */ jal note_pool_fill -/* 0B38D0 802FB8D0 00402825 */ move $a1, $v0 -/* 0B38D4 802FB8D4 1000FF74 */ b .L802FB6A8 -/* 0B38D8 802FB8D8 00000000 */ nop -.L802FB8DC: -/* 0B38DC 802FB8DC 0C0BDF00 */ jal note_pool_clear -/* 0B38E0 802FB8E0 26240098 */ addiu $a0, $s1, 0x98 -/* 0B38E4 802FB8E4 1000FF70 */ b .L802FB6A8 -/* 0B38E8 802FB8E8 00000000 */ nop -.L802FB8EC: -/* 0B38EC 802FB8EC A620000E */ sh $zero, 0xe($s1) -.L802FB8F0: -/* 0B38F0 802FB8F0 0C0BE660 */ jal m64_read_u8 -/* 0B38F4 802FB8F4 02002025 */ move $a0, $s0 -/* 0B38F8 802FB8F8 862A000E */ lh $t2, 0xe($s1) -/* 0B38FC 802FB8FC 00026600 */ sll $t4, $v0, 0x18 -/* 0B3900 802FB900 000C6E03 */ sra $t5, $t4, 0x18 -/* 0B3904 802FB904 014D7021 */ addu $t6, $t2, $t5 -/* 0B3908 802FB908 1000FF67 */ b .L802FB6A8 -/* 0B390C 802FB90C A62E000E */ sh $t6, 0xe($s1) -.L802FB910: -/* 0B3910 802FB910 0C0BE660 */ jal m64_read_u8 -/* 0B3914 802FB914 02002025 */ move $a0, $s0 -/* 0B3918 802FB918 00027880 */ sll $t7, $v0, 2 -/* 0B391C 802FB91C 01E27823 */ subu $t7, $t7, $v0 -/* 0B3920 802FB920 000F7900 */ sll $t7, $t7, 4 -/* 0B3924 802FB924 A62F0008 */ sh $t7, 8($s1) -/* 0B3928 802FB928 3C048035 */ lui $a0, %hi(gTempoInternalToExternal) # $a0, 0x8035 -/* 0B392C 802FB92C 8484062C */ lh $a0, %lo(gTempoInternalToExternal)($a0) -/* 0B3930 802FB930 31E3FFFF */ andi $v1, $t7, 0xffff -/* 0B3934 802FB934 24190001 */ li $t9, 1 -/* 0B3938 802FB938 0083082A */ slt $at, $a0, $v1 -/* 0B393C 802FB93C 50200004 */ beql $at, $zero, .L802FB950 -/* 0B3940 802FB940 0003C400 */ sll $t8, $v1, 0x10 -/* 0B3944 802FB944 A6240008 */ sh $a0, 8($s1) -/* 0B3948 802FB948 3083FFFF */ andi $v1, $a0, 0xffff -/* 0B394C 802FB94C 0003C400 */ sll $t8, $v1, 0x10 -.L802FB950: -/* 0B3950 802FB950 00184C03 */ sra $t1, $t8, 0x10 -/* 0B3954 802FB954 1D20FF54 */ bgtz $t1, .L802FB6A8 -/* 0B3958 802FB958 00000000 */ nop -/* 0B395C 802FB95C 1000FF52 */ b .L802FB6A8 -/* 0B3960 802FB960 A6390008 */ sh $t9, 8($s1) -.L802FB964: -/* 0B3964 802FB964 0C0BE660 */ jal m64_read_u8 -/* 0B3968 802FB968 02002025 */ move $a0, $s0 -/* 0B396C 802FB96C 00024600 */ sll $t0, $v0, 0x18 -/* 0B3970 802FB970 00085E03 */ sra $t3, $t0, 0x18 -/* 0B3974 802FB974 000B6080 */ sll $t4, $t3, 2 -/* 0B3978 802FB978 018B6023 */ subu $t4, $t4, $t3 -/* 0B397C 802FB97C 000C6100 */ sll $t4, $t4, 4 -/* 0B3980 802FB980 1000FF49 */ b .L802FB6A8 -/* 0B3984 802FB984 A62C000C */ sh $t4, 0xc($s1) -.L802FB988: -/* 0B3988 802FB988 0C0BE660 */ jal m64_read_u8 -/* 0B398C 802FB98C 02002025 */ move $a0, $s0 -/* 0B3990 802FB990 305200FF */ andi $s2, $v0, 0xff -/* 0B3994 802FB994 0C0BE665 */ jal m64_read_s16 -/* 0B3998 802FB998 02002025 */ move $a0, $s0 -/* 0B399C 802FB99C 12400008 */ beqz $s2, .L802FB9C0 -/* 0B39A0 802FB9A0 02401825 */ move $v1, $s2 -/* 0B39A4 802FB9A4 24010001 */ li $at, 1 -/* 0B39A8 802FB9A8 10610005 */ beq $v1, $at, .L802FB9C0 -/* 0B39AC 802FB9AC 24010002 */ li $at, 2 -/* 0B39B0 802FB9B0 1061000A */ beq $v1, $at, .L802FB9DC -/* 0B39B4 802FB9B4 304DFFFF */ andi $t5, $v0, 0xffff -/* 0B39B8 802FB9B8 1000FF3B */ b .L802FB6A8 -/* 0B39BC 802FB9BC 00000000 */ nop -.L802FB9C0: -/* 0B39C0 802FB9C0 922A0001 */ lbu $t2, 1($s1) -/* 0B39C4 802FB9C4 24010002 */ li $at, 2 -/* 0B39C8 802FB9C8 1141FF37 */ beq $t2, $at, .L802FB6A8 -/* 0B39CC 802FB9CC 00000000 */ nop -/* 0B39D0 802FB9D0 A6220014 */ sh $v0, 0x14($s1) -/* 0B39D4 802FB9D4 1000FF34 */ b .L802FB6A8 -/* 0B39D8 802FB9D8 A2320001 */ sb $s2, 1($s1) -.L802FB9DC: -/* 0B39DC 802FB9DC 448D5000 */ mtc1 $t5, $f10 -/* 0B39E0 802FB9E0 44802000 */ mtc1 $zero, $f4 -/* 0B39E4 802FB9E4 C626001C */ lwc1 $f6, 0x1c($s1) -/* 0B39E8 802FB9E8 46805420 */ cvt.s.w $f16, $f10 -/* 0B39EC 802FB9EC A6220012 */ sh $v0, 0x12($s1) -/* 0B39F0 802FB9F0 A2320001 */ sb $s2, 1($s1) -/* 0B39F4 802FB9F4 46062201 */ sub.s $f8, $f4, $f6 -/* 0B39F8 802FB9F8 46104483 */ div.s $f18, $f8, $f16 -/* 0B39FC 802FB9FC 1000FF2A */ b .L802FB6A8 -/* 0B3A00 802FBA00 E6320020 */ swc1 $f18, 0x20($s1) -.L802FBA04: -/* 0B3A04 802FBA04 0C0BE660 */ jal m64_read_u8 -/* 0B3A08 802FBA08 02002025 */ move $a0, $s0 -/* 0B3A0C 802FBA0C 92230001 */ lbu $v1, 1($s1) -/* 0B3A10 802FBA10 24010001 */ li $at, 1 -/* 0B3A14 802FBA14 5060000B */ beql $v1, $zero, .L802FBA44 -/* 0B3A18 802FBA18 96230014 */ lhu $v1, 0x14($s1) -/* 0B3A1C 802FBA1C 10610005 */ beq $v1, $at, .L802FBA34 -/* 0B3A20 802FBA20 24010002 */ li $at, 2 -/* 0B3A24 802FBA24 1061FF20 */ beq $v1, $at, .L802FB6A8 -/* 0B3A28 802FBA28 00000000 */ nop -/* 0B3A2C 802FBA2C 1000FF1E */ b .L802FB6A8 -/* 0B3A30 802FBA30 00000000 */ nop -.L802FBA34: -/* 0B3A34 802FBA34 44802000 */ mtc1 $zero, $f4 -/* 0B3A38 802FBA38 A2200001 */ sb $zero, 1($s1) -/* 0B3A3C 802FBA3C E624001C */ swc1 $f4, 0x1c($s1) -/* 0B3A40 802FBA40 96230014 */ lhu $v1, 0x14($s1) -.L802FBA44: -/* 0B3A44 802FBA44 1060000E */ beqz $v1, .L802FBA80 -/* 0B3A48 802FBA48 A6230012 */ sh $v1, 0x12($s1) -/* 0B3A4C 802FBA4C 44823000 */ mtc1 $v0, $f6 -/* 0B3A50 802FBA50 3C0142FE */ li $at, 0x42FE0000 # 127.000000 -/* 0B3A54 802FBA54 44814000 */ mtc1 $at, $f8 -/* 0B3A58 802FBA58 468032A0 */ cvt.s.w $f10, $f6 -/* 0B3A5C 802FBA5C 306EFFFF */ andi $t6, $v1, 0xffff -/* 0B3A60 802FBA60 448E3000 */ mtc1 $t6, $f6 -/* 0B3A64 802FBA64 C632001C */ lwc1 $f18, 0x1c($s1) -/* 0B3A68 802FBA68 46085403 */ div.s $f16, $f10, $f8 -/* 0B3A6C 802FBA6C 468032A0 */ cvt.s.w $f10, $f6 -/* 0B3A70 802FBA70 46128101 */ sub.s $f4, $f16, $f18 -/* 0B3A74 802FBA74 460A2203 */ div.s $f8, $f4, $f10 -/* 0B3A78 802FBA78 1000FF0B */ b .L802FB6A8 -/* 0B3A7C 802FBA7C E6280020 */ swc1 $f8, 0x20($s1) -.L802FBA80: -/* 0B3A80 802FBA80 44828000 */ mtc1 $v0, $f16 -/* 0B3A84 802FBA84 3C0142FE */ li $at, 0x42FE0000 # 127.000000 -/* 0B3A88 802FBA88 44813000 */ mtc1 $at, $f6 -/* 0B3A8C 802FBA8C 468084A0 */ cvt.s.w $f18, $f16 -/* 0B3A90 802FBA90 46069103 */ div.s $f4, $f18, $f6 -/* 0B3A94 802FBA94 1000FF04 */ b .L802FB6A8 -/* 0B3A98 802FBA98 E624001C */ swc1 $f4, 0x1c($s1) -.L802FBA9C: -/* 0B3A9C 802FBA9C 0C0BE660 */ jal m64_read_u8 -/* 0B3AA0 802FBAA0 02002025 */ move $a0, $s0 -/* 0B3AA4 802FBAA4 00027E00 */ sll $t7, $v0, 0x18 -/* 0B3AA8 802FBAA8 000FC603 */ sra $t8, $t7, 0x18 -/* 0B3AAC 802FBAAC 44985000 */ mtc1 $t8, $f10 -/* 0B3AB0 802FBAB0 3C0142FE */ li $at, 0x42FE0000 # 127.000000 -/* 0B3AB4 802FBAB4 44818000 */ mtc1 $at, $f16 -/* 0B3AB8 802FBAB8 46805220 */ cvt.s.w $f8, $f10 -/* 0B3ABC 802FBABC 46104483 */ div.s $f18, $f8, $f16 -/* 0B3AC0 802FBAC0 1000FEF9 */ b .L802FB6A8 -/* 0B3AC4 802FBAC4 E632002C */ swc1 $f18, 0x2c($s1) -.L802FBAC8: -/* 0B3AC8 802FBAC8 0C0BE665 */ jal m64_read_s16 -/* 0B3ACC 802FBACC 02002025 */ move $a0, $s0 -/* 0B3AD0 802FBAD0 02202025 */ move $a0, $s1 -/* 0B3AD4 802FBAD4 0C0BE541 */ jal sequence_player_init_channels -/* 0B3AD8 802FBAD8 3045FFFF */ andi $a1, $v0, 0xffff -/* 0B3ADC 802FBADC 1000FEF2 */ b .L802FB6A8 -/* 0B3AE0 802FBAE0 00000000 */ nop -.L802FBAE4: -/* 0B3AE4 802FBAE4 0C0BE665 */ jal m64_read_s16 -/* 0B3AE8 802FBAE8 02002025 */ move $a0, $s0 -/* 0B3AEC 802FBAEC 02202025 */ move $a0, $s1 -/* 0B3AF0 802FBAF0 0C0BE58C */ jal sequence_player_disable_channels -/* 0B3AF4 802FBAF4 3045FFFF */ andi $a1, $v0, 0xffff -/* 0B3AF8 802FBAF8 1000FEEB */ b .L802FB6A8 -/* 0B3AFC 802FBAFC 00000000 */ nop -.L802FBB00: -/* 0B3B00 802FBB00 0C0BE660 */ jal m64_read_u8 -/* 0B3B04 802FBB04 02002025 */ move $a0, $s0 -/* 0B3B08 802FBB08 00024E00 */ sll $t1, $v0, 0x18 -/* 0B3B0C 802FBB0C 0009CE03 */ sra $t9, $t1, 0x18 -/* 0B3B10 802FBB10 44993000 */ mtc1 $t9, $f6 -/* 0B3B14 802FBB14 3C0142FE */ li $at, 0x42FE0000 # 127.000000 -/* 0B3B18 802FBB18 44815000 */ mtc1 $at, $f10 -/* 0B3B1C 802FBB1C 46803120 */ cvt.s.w $f4, $f6 -/* 0B3B20 802FBB20 460A2203 */ div.s $f8, $f4, $f10 -/* 0B3B24 802FBB24 1000FEE0 */ b .L802FB6A8 -/* 0B3B28 802FBB28 E6280028 */ swc1 $f8, 0x28($s1) -.L802FBB2C: -/* 0B3B2C 802FBB2C 922B0000 */ lbu $t3, ($s1) -/* 0B3B30 802FBB30 356C0020 */ ori $t4, $t3, 0x20 -/* 0B3B34 802FBB34 1000FEDC */ b .L802FB6A8 -/* 0B3B38 802FBB38 A22C0000 */ sb $t4, ($s1) -.L802FBB3C: -/* 0B3B3C 802FBB3C 0C0BE660 */ jal m64_read_u8 -/* 0B3B40 802FBB40 02002025 */ move $a0, $s0 -/* 0B3B44 802FBB44 1000FED8 */ b .L802FB6A8 -/* 0B3B48 802FBB48 A2220003 */ sb $v0, 3($s1) -.L802FBB4C: -/* 0B3B4C 802FBB4C 0C0BE665 */ jal m64_read_s16 -/* 0B3B50 802FBB50 02002025 */ move $a0, $s0 -/* 0B3B54 802FBB54 8E2A0018 */ lw $t2, 0x18($s1) -/* 0B3B58 802FBB58 304DFFFF */ andi $t5, $v0, 0xffff -/* 0B3B5C 802FBB5C 240100D2 */ li $at, 210 -/* 0B3B60 802FBB60 16410003 */ bne $s2, $at, .L802FBB70 -/* 0B3B64 802FBB64 014D1821 */ addu $v1, $t2, $t5 -/* 0B3B68 802FBB68 1000FECF */ b .L802FB6A8 -/* 0B3B6C 802FBB6C AE230090 */ sw $v1, 0x90($s1) -.L802FBB70: -/* 0B3B70 802FBB70 1000FECD */ b .L802FB6A8 -/* 0B3B74 802FBB74 AE230094 */ sw $v1, 0x94($s1) -.L802FBB78: -/* 0B3B78 802FBB78 0C0BE660 */ jal m64_read_u8 -/* 0B3B7C 802FBB7C 02002025 */ move $a0, $s0 -/* 0B3B80 802FBB80 1000FEC9 */ b .L802FB6A8 -/* 0B3B84 802FBB84 A2220002 */ sb $v0, 2($s1) -.L802FBB88: -/* 0B3B88 802FBB88 0C0BE660 */ jal m64_read_u8 -/* 0B3B8C 802FBB8C 02002025 */ move $a0, $s0 -/* 0B3B90 802FBB90 1000FEC5 */ b .L802FB6A8 -/* 0B3B94 802FBB94 00409825 */ move $s3, $v0 -.L802FBB98: -/* 0B3B98 802FBB98 0C0BE660 */ jal m64_read_u8 -/* 0B3B9C 802FBB9C 02002025 */ move $a0, $s0 -/* 0B3BA0 802FBBA0 1000FEC1 */ b .L802FB6A8 -/* 0B3BA4 802FBBA4 02629824 */ and $s3, $s3, $v0 -.L802FBBA8: -/* 0B3BA8 802FBBA8 0C0BE660 */ jal m64_read_u8 -/* 0B3BAC 802FBBAC 02002025 */ move $a0, $s0 -/* 0B3BB0 802FBBB0 1000FEBD */ b .L802FB6A8 -/* 0B3BB4 802FBBB4 02629823 */ subu $s3, $s3, $v0 -.L802FBBB8: -/* 0B3BB8 802FBBB8 326E00FF */ andi $t6, $s3, 0xff -/* 0B3BBC 802FBBBC AFAE0030 */ sw $t6, 0x30($sp) -/* 0B3BC0 802FBBC0 0C0BE660 */ jal m64_read_u8 -/* 0B3BC4 802FBBC4 02002025 */ move $a0, $s0 -/* 0B3BC8 802FBBC8 305200FF */ andi $s2, $v0, 0xff -/* 0B3BCC 802FBBCC 0C0BE665 */ jal m64_read_s16 -/* 0B3BD0 802FBBD0 02002025 */ move $a0, $s0 -/* 0B3BD4 802FBBD4 8E2F0018 */ lw $t7, 0x18($s1) -/* 0B3BD8 802FBBD8 8FA90030 */ lw $t1, 0x30($sp) -/* 0B3BDC 802FBBDC 3058FFFF */ andi $t8, $v0, 0xffff -/* 0B3BE0 802FBBE0 01F81821 */ addu $v1, $t7, $t8 -/* 0B3BE4 802FBBE4 0132C821 */ addu $t9, $t1, $s2 -/* 0B3BE8 802FBBE8 1000FEAF */ b .L802FB6A8 -/* 0B3BEC 802FBBEC A0790000 */ sb $t9, ($v1) -.L802FBBF0: -/* 0B3BF0 802FBBF0 922B0000 */ lbu $t3, ($s1) -/* 0B3BF4 802FBBF4 356C0002 */ ori $t4, $t3, 2 -/* 0B3BF8 802FBBF8 10000047 */ b .L802FBD18 -/* 0B3BFC 802FBBFC A22C0000 */ sb $t4, ($s1) -.L802FBC00: -/* 0B3C00 802FBC00 28610011 */ slti $at, $v1, 0x11 -/* 0B3C04 802FBC04 14200010 */ bnez $at, .L802FBC48 -/* 0B3C08 802FBC08 28610021 */ slti $at, $v1, 0x21 -/* 0B3C0C 802FBC0C 14200009 */ bnez $at, .L802FBC34 -/* 0B3C10 802FBC10 246AFFC0 */ addiu $t2, $v1, -0x40 -/* 0B3C14 802FBC14 2D410061 */ sltiu $at, $t2, 0x61 -/* 0B3C18 802FBC18 1020FEA3 */ beqz $at, .L802FB6A8 -/* 0B3C1C 802FBC1C 000A5080 */ sll $t2, $t2, 2 -/* 0B3C20 802FBC20 3C018032 */ lui $at, %hi(jtbl_8031A8A4) -/* 0B3C24 802FBC24 002A0821 */ addu $at, $at, $t2 -/* 0B3C28 802FBC28 8C2AA8A4 */ lw $t2, %lo(jtbl_8031A8A4)($at) -/* 0B3C2C 802FBC2C 01400008 */ jr $t2 -/* 0B3C30 802FBC30 00000000 */ nop -.L802FBC34: -/* 0B3C34 802FBC34 24010020 */ li $at, 32 -/* 0B3C38 802FBC38 1061FE9B */ beq $v1, $at, .L802FB6A8 -/* 0B3C3C 802FBC3C 00000000 */ nop -/* 0B3C40 802FBC40 1000FE99 */ b .L802FB6A8 -/* 0B3C44 802FBC44 00000000 */ nop -.L802FBC48: -/* 0B3C48 802FBC48 10600006 */ beqz $v1, .L802FBC64 -/* 0B3C4C 802FBC4C 30AE000F */ andi $t6, $a1, 0xf -/* 0B3C50 802FBC50 24010010 */ li $at, 16 -/* 0B3C54 802FBC54 1061FE94 */ beq $v1, $at, .L802FB6A8 -/* 0B3C58 802FBC58 00000000 */ nop -/* 0B3C5C 802FBC5C 1000FE92 */ b .L802FB6A8 -/* 0B3C60 802FBC60 00000000 */ nop -.L802FBC64: -/* 0B3C64 802FBC64 000E7880 */ sll $t7, $t6, 2 -/* 0B3C68 802FBC68 022FC021 */ addu $t8, $s1, $t7 -/* 0B3C6C 802FBC6C 8F090034 */ lw $t1, 0x34($t8) -/* 0B3C70 802FBC70 8D330000 */ lw $s3, ($t1) -/* 0B3C74 802FBC74 0013C840 */ sll $t9, $s3, 1 -/* 0B3C78 802FBC78 1000FE8B */ b .L802FB6A8 -/* 0B3C7C 802FBC7C 00199FC2 */ srl $s3, $t9, 0x1f -.L802FBC80: -/* 0B3C80 802FBC80 822B0007 */ lb $t3, 7($s1) -/* 0B3C84 802FBC84 1000FE88 */ b .L802FB6A8 -/* 0B3C88 802FBC88 026B9823 */ subu $s3, $s3, $t3 -.L802FBC8C: -/* 0B3C8C 802FBC8C 1000FE86 */ b .L802FB6A8 -/* 0B3C90 802FBC90 A2330007 */ sb $s3, 7($s1) -.L802FBC94: -/* 0B3C94 802FBC94 1000FE84 */ b .L802FB6A8 -/* 0B3C98 802FBC98 82330007 */ lb $s3, 7($s1) -.L802FBC9C: -/* 0B3C9C 802FBC9C 0C0BE665 */ jal m64_read_s16 -/* 0B3CA0 802FBCA0 02002025 */ move $a0, $s0 -/* 0B3CA4 802FBCA4 8E2A0018 */ lw $t2, 0x18($s1) -/* 0B3CA8 802FBCA8 02402825 */ move $a1, $s2 -/* 0B3CAC 802FBCAC 30AC000F */ andi $t4, $a1, 0xf -/* 0B3CB0 802FBCB0 304DFFFF */ andi $t5, $v0, 0xffff -/* 0B3CB4 802FBCB4 01802825 */ move $a1, $t4 -/* 0B3CB8 802FBCB8 02202025 */ move $a0, $s1 -/* 0B3CBC 802FBCBC 0C0BE5C0 */ jal sequence_channel_enable -/* 0B3CC0 802FBCC0 014D3021 */ addu $a2, $t2, $t5 -/* 0B3CC4 802FBCC4 1000FE78 */ b .L802FB6A8 -/* 0B3CC8 802FBCC8 00000000 */ nop -.L802FBCCC: -/* 0B3CCC 802FBCCC 3C108035 */ lui $s0, %hi(gSequenceChannelNone) # $s0, 0x8035 -/* 0B3CD0 802FBCD0 02201825 */ move $v1, $s1 -/* 0B3CD4 802FBCD4 24110040 */ li $s1, 64 -/* 0B3CD8 802FBCD8 2610E968 */ addiu $s0, %lo(gSequenceChannelNone) # addiu $s0, $s0, -0x1698 -/* 0B3CDC 802FBCDC 00001025 */ move $v0, $zero -.L802FBCE0: -/* 0B3CE0 802FBCE0 8C640034 */ lw $a0, 0x34($v1) -/* 0B3CE4 802FBCE4 24010001 */ li $at, 1 -/* 0B3CE8 802FBCE8 02047026 */ xor $t6, $s0, $a0 -/* 0B3CEC 802FBCEC 000E702B */ sltu $t6, $zero, $t6 -/* 0B3CF0 802FBCF0 55C10007 */ bnel $t6, $at, .L802FBD10 -/* 0B3CF4 802FBCF4 24420004 */ addiu $v0, $v0, 4 -/* 0B3CF8 802FBCF8 AFA2002C */ sw $v0, 0x2c($sp) -/* 0B3CFC 802FBCFC 0C0BEA15 */ jal sequence_channel_process_script -/* 0B3D00 802FBD00 AFA30028 */ sw $v1, 0x28($sp) -/* 0B3D04 802FBD04 8FA2002C */ lw $v0, 0x2c($sp) -/* 0B3D08 802FBD08 8FA30028 */ lw $v1, 0x28($sp) -/* 0B3D0C 802FBD0C 24420004 */ addiu $v0, $v0, 4 -.L802FBD10: -/* 0B3D10 802FBD10 1451FFF3 */ bne $v0, $s1, .L802FBCE0 -/* 0B3D14 802FBD14 24630004 */ addiu $v1, $v1, 4 -.L802FBD18: -/* 0B3D18 802FBD18 8FBF0024 */ lw $ra, 0x24($sp) -.L802FBD1C: -/* 0B3D1C 802FBD1C 8FB00014 */ lw $s0, 0x14($sp) -/* 0B3D20 802FBD20 8FB10018 */ lw $s1, 0x18($sp) -/* 0B3D24 802FBD24 8FB2001C */ lw $s2, 0x1c($sp) -/* 0B3D28 802FBD28 8FB30020 */ lw $s3, 0x20($sp) -/* 0B3D2C 802FBD2C 03E00008 */ jr $ra -/* 0B3D30 802FBD30 27BD0060 */ addiu $sp, $sp, 0x60 diff --git a/asm/non_matchings/sh/audio/synthesis/process_envelope.s b/asm/non_matchings/sh/audio/synthesis/process_envelope.s deleted file mode 100644 index 40c52bbe..00000000 --- a/asm/non_matchings/sh/audio/synthesis/process_envelope.s +++ /dev/null @@ -1,303 +0,0 @@ -glabel process_envelope -/* 0A7404 802EF404 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 0A7408 802EF408 AFB2000C */ sw $s2, 0xc($sp) -/* 0A740C 802EF40C AFB10008 */ sw $s1, 8($sp) -/* 0A7410 802EF410 AFB00004 */ sw $s0, 4($sp) -/* 0A7414 802EF414 94A20006 */ lhu $v0, 6($a1) -/* 0A7418 802EF418 94A30008 */ lhu $v1, 8($a1) -/* 0A741C 802EF41C 94C90010 */ lhu $t1, 0x10($a2) -/* 0A7420 802EF420 00027100 */ sll $t6, $v0, 4 -/* 0A7424 802EF424 31CFFFFF */ andi $t7, $t6, 0xffff -/* 0A7428 802EF428 0003C100 */ sll $t8, $v1, 4 -/* 0A742C 802EF42C 3319FFFF */ andi $t9, $t8, 0xffff -/* 0A7430 802EF430 00A08025 */ move $s0, $a1 -/* 0A7434 802EF434 00E08825 */ move $s1, $a3 -/* 0A7438 802EF438 00C09025 */ move $s2, $a2 -/* 0A743C 802EF43C 94CA0012 */ lhu $t2, 0x12($a2) -/* 0A7440 802EF440 01E01025 */ move $v0, $t7 -/* 0A7444 802EF444 03201825 */ move $v1, $t9 -/* 0A7448 802EF448 01E05825 */ move $t3, $t7 -/* 0A744C 802EF44C 112F0013 */ beq $t1, $t7, .L802EF49C -/* 0A7450 802EF450 01206025 */ move $t4, $t1 -/* 0A7454 802EF454 001168C3 */ sra $t5, $s1, 3 -/* 0A7458 802EF458 016C7023 */ subu $t6, $t3, $t4 -/* 0A745C 802EF45C 01CD001A */ div $zero, $t6, $t5 -/* 0A7460 802EF460 00004012 */ mflo $t0 -/* 0A7464 802EF464 00087C00 */ sll $t7, $t0, 0x10 -/* 0A7468 802EF468 000FC403 */ sra $t8, $t7, 0x10 -/* 0A746C 802EF46C 15A00002 */ bnez $t5, .L802EF478 -/* 0A7470 802EF470 00000000 */ nop -/* 0A7474 802EF474 0007000D */ break 7 -.L802EF478: -/* 0A7478 802EF478 2401FFFF */ li $at, -1 -/* 0A747C 802EF47C 15A10004 */ bne $t5, $at, .L802EF490 -/* 0A7480 802EF480 3C018000 */ lui $at, 0x8000 -/* 0A7484 802EF484 15C10002 */ bne $t6, $at, .L802EF490 -/* 0A7488 802EF488 00000000 */ nop -/* 0A748C 802EF48C 0006000D */ break 6 -.L802EF490: -/* 0A7490 802EF490 03004025 */ move $t0, $t8 -/* 0A7494 802EF494 10000004 */ b .L802EF4A8 -/* 0A7498 802EF498 01405825 */ move $t3, $t2 -.L802EF49C: -/* 0A749C 802EF49C 00004025 */ move $t0, $zero -/* 0A74A0 802EF4A0 001168C3 */ sra $t5, $s1, 3 -/* 0A74A4 802EF4A4 01405825 */ move $t3, $t2 -.L802EF4A8: -/* 0A74A8 802EF4A8 11430012 */ beq $t2, $v1, .L802EF4F4 -/* 0A74AC 802EF4AC 00601025 */ move $v0, $v1 -/* 0A74B0 802EF4B0 006BC823 */ subu $t9, $v1, $t3 -/* 0A74B4 802EF4B4 032D001A */ div $zero, $t9, $t5 -/* 0A74B8 802EF4B8 00003812 */ mflo $a3 -/* 0A74BC 802EF4BC 00077400 */ sll $t6, $a3, 0x10 -/* 0A74C0 802EF4C0 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A74C4 802EF4C4 15A00002 */ bnez $t5, .L802EF4D0 -/* 0A74C8 802EF4C8 00000000 */ nop -/* 0A74CC 802EF4CC 0007000D */ break 7 -.L802EF4D0: -/* 0A74D0 802EF4D0 2401FFFF */ li $at, -1 -/* 0A74D4 802EF4D4 15A10004 */ bne $t5, $at, .L802EF4E8 -/* 0A74D8 802EF4D8 3C018000 */ lui $at, 0x8000 -/* 0A74DC 802EF4DC 17210002 */ bne $t9, $at, .L802EF4E8 -/* 0A74E0 802EF4E0 00000000 */ nop -/* 0A74E4 802EF4E4 0006000D */ break 6 -.L802EF4E8: -/* 0A74E8 802EF4E8 01E03825 */ move $a3, $t7 -/* 0A74EC 802EF4EC 10000003 */ b .L802EF4FC -/* 0A74F0 802EF4F0 92180005 */ lbu $t8, 5($s0) -.L802EF4F4: -/* 0A74F4 802EF4F4 00003825 */ move $a3, $zero -/* 0A74F8 802EF4F8 92180005 */ lbu $t8, 5($s0) -.L802EF4FC: -/* 0A74FC 802EF4FC 92450004 */ lbu $a1, 4($s2) -/* 0A7500 802EF500 AFB80014 */ sw $t8, 0x14($sp) -/* 0A7504 802EF504 AFB80024 */ sw $t8, 0x24($sp) -/* 0A7508 802EF508 10B80016 */ beq $a1, $t8, .L802EF564 -/* 0A750C 802EF50C 0300C825 */ move $t9, $t8 -/* 0A7510 802EF510 30A3007F */ andi $v1, $a1, 0x7f -/* 0A7514 802EF514 330E007F */ andi $t6, $t8, 0x7f -/* 0A7518 802EF518 01C31023 */ subu $v0, $t6, $v1 -/* 0A751C 802EF51C 00027A40 */ sll $t7, $v0, 9 -/* 0A7520 802EF520 01ED001A */ div $zero, $t7, $t5 -/* 0A7524 802EF524 01E01025 */ move $v0, $t7 -/* 0A7528 802EF528 00003012 */ mflo $a2 -/* 0A752C 802EF52C 0006C400 */ sll $t8, $a2, 0x10 -/* 0A7530 802EF530 00187403 */ sra $t6, $t8, 0x10 -/* 0A7534 802EF534 15A00002 */ bnez $t5, .L802EF540 -/* 0A7538 802EF538 00000000 */ nop -/* 0A753C 802EF53C 0007000D */ break 7 -.L802EF540: -/* 0A7540 802EF540 2401FFFF */ li $at, -1 -/* 0A7544 802EF544 15A10004 */ bne $t5, $at, .L802EF558 -/* 0A7548 802EF548 3C018000 */ lui $at, 0x8000 -/* 0A754C 802EF54C 14410002 */ bne $v0, $at, .L802EF558 -/* 0A7550 802EF550 00000000 */ nop -/* 0A7554 802EF554 0006000D */ break 6 -.L802EF558: -/* 0A7558 802EF558 01C03025 */ move $a2, $t6 -/* 0A755C 802EF55C 10000003 */ b .L802EF56C -/* 0A7560 802EF560 A2590004 */ sb $t9, 4($s2) -.L802EF564: -/* 0A7564 802EF564 00003025 */ move $a2, $zero -/* 0A7568 802EF568 30A3007F */ andi $v1, $a1, 0x7f -.L802EF56C: -/* 0A756C 802EF56C 010D0019 */ multu $t0, $t5 -/* 0A7570 802EF570 00801025 */ move $v0, $a0 -/* 0A7574 802EF574 3C011200 */ lui $at, 0x1200 -/* 0A7578 802EF578 00007812 */ mflo $t7 -/* 0A757C 802EF57C 018FC021 */ addu $t8, $t4, $t7 -/* 0A7580 802EF580 A6580010 */ sh $t8, 0x10($s2) -/* 0A7584 802EF584 00ED0019 */ multu $a3, $t5 -/* 0A7588 802EF588 00007012 */ mflo $t6 -/* 0A758C 802EF58C 016EC821 */ addu $t9, $t3, $t6 -/* 0A7590 802EF590 A6590012 */ sh $t9, 0x12($s2) -/* 0A7594 802EF594 920F0000 */ lbu $t7, ($s0) -/* 0A7598 802EF598 8FAD007C */ lw $t5, 0x7c($sp) -/* 0A759C 802EF59C 00037040 */ sll $t6, $v1, 1 -/* 0A75A0 802EF5A0 31F80001 */ andi $t8, $t7, 1 -/* 0A75A4 802EF5A4 1300007E */ beqz $t8, .L802EF7A0 -/* 0A75A8 802EF5A8 00805825 */ move $t3, $a0 -/* 0A75AC 802EF5AC 3C0E0200 */ lui $t6, (0x02000650 >> 16) # lui $t6, 0x200 -/* 0A75B0 802EF5B0 35CE0650 */ ori $t6, (0x02000650 & 0xFFFF) # ori $t6, $t6, 0x650 -/* 0A75B4 802EF5B4 00037840 */ sll $t7, $v1, 1 -/* 0A75B8 802EF5B8 AC4E0000 */ sw $t6, ($v0) -/* 0A75BC 802EF5BC 24190180 */ li $t9, 384 -/* 0A75C0 802EF5C0 31F800FF */ andi $t8, $t7, 0xff -/* 0A75C4 802EF5C4 AC590004 */ sw $t9, 4($v0) -/* 0A75C8 802EF5C8 00187400 */ sll $t6, $t8, 0x10 -/* 0A75CC 802EF5CC 3C011200 */ lui $at, 0x1200 -/* 0A75D0 802EF5D0 01C1C825 */ or $t9, $t6, $at -/* 0A75D4 802EF5D4 30CFFFFF */ andi $t7, $a2, 0xffff -/* 0A75D8 802EF5D8 032FC025 */ or $t8, $t9, $t7 -/* 0A75DC 802EF5DC 24840008 */ addiu $a0, $a0, 8 -/* 0A75E0 802EF5E0 00805825 */ move $t3, $a0 -/* 0A75E4 802EF5E4 AD780000 */ sw $t8, ($t3) -/* 0A75E8 802EF5E8 30EFFFFF */ andi $t7, $a3, 0xffff -/* 0A75EC 802EF5EC 0008CC00 */ sll $t9, $t0, 0x10 -/* 0A75F0 802EF5F0 032FC025 */ or $t8, $t9, $t7 -/* 0A75F4 802EF5F4 AD780004 */ sw $t8, 4($t3) -/* 0A75F8 802EF5F8 24840008 */ addiu $a0, $a0, 8 -/* 0A75FC 802EF5FC 00806025 */ move $t4, $a0 -/* 0A7600 802EF600 3C0E1600 */ lui $t6, 0x1600 -/* 0A7604 802EF604 AD8E0000 */ sw $t6, ($t4) -/* 0A7608 802EF608 3158FFFF */ andi $t8, $t2, 0xffff -/* 0A760C 802EF60C 00097C00 */ sll $t7, $t1, 0x10 -/* 0A7610 802EF610 01F87025 */ or $t6, $t7, $t8 -/* 0A7614 802EF614 24010001 */ li $at, 1 -/* 0A7618 802EF618 AD8E0004 */ sw $t6, 4($t4) -/* 0A761C 802EF61C 11A10023 */ beq $t5, $at, .L802EF6AC -/* 0A7620 802EF620 24840008 */ addiu $a0, $a0, 8 -/* 0A7624 802EF624 24010002 */ li $at, 2 -/* 0A7628 802EF628 11A1003F */ beq $t5, $at, .L802EF728 -/* 0A762C 802EF62C 00801825 */ move $v1, $a0 -/* 0A7630 802EF630 97B9007A */ lhu $t9, 0x7a($sp) -/* 0A7634 802EF634 3C011300 */ lui $at, 0x1300 -/* 0A7638 802EF638 8E020000 */ lw $v0, ($s0) -/* 0A763C 802EF63C 00197903 */ sra $t7, $t9, 4 -/* 0A7640 802EF640 31F800FF */ andi $t8, $t7, 0xff -/* 0A7644 802EF644 00187400 */ sll $t6, $t8, 0x10 -/* 0A7648 802EF648 322F00FF */ andi $t7, $s1, 0xff -/* 0A764C 802EF64C 000FC200 */ sll $t8, $t7, 8 -/* 0A7650 802EF650 01C1C825 */ or $t9, $t6, $at -/* 0A7654 802EF654 03387025 */ or $t6, $t9, $t8 -/* 0A7658 802EF658 30AF0080 */ andi $t7, $a1, 0x80 -/* 0A765C 802EF65C 000FC9C3 */ sra $t9, $t7, 7 -/* 0A7660 802EF660 33380001 */ andi $t8, $t9, 1 -/* 0A7664 802EF664 00187880 */ sll $t7, $t8, 2 -/* 0A7668 802EF668 01CFC825 */ or $t9, $t6, $t7 -/* 0A766C 802EF66C 0002C100 */ sll $t8, $v0, 4 -/* 0A7670 802EF670 001877C2 */ srl $t6, $t8, 0x1f -/* 0A7674 802EF674 31CF0001 */ andi $t7, $t6, 1 -/* 0A7678 802EF678 000FC040 */ sll $t8, $t7, 1 -/* 0A767C 802EF67C 03387025 */ or $t6, $t9, $t8 -/* 0A7680 802EF680 00027940 */ sll $t7, $v0, 5 -/* 0A7684 802EF684 000FCFC2 */ srl $t9, $t7, 0x1f -/* 0A7688 802EF688 33380001 */ andi $t8, $t9, 1 -/* 0A768C 802EF68C 3C1999B1 */ lui $t9, (0x99B1C9E1 >> 16) # lui $t9, 0x99b1 -/* 0A7690 802EF690 00801825 */ move $v1, $a0 -/* 0A7694 802EF694 3739C9E1 */ ori $t9, (0x99B1C9E1 & 0xFFFF) # ori $t9, $t9, 0xc9e1 -/* 0A7698 802EF698 01D87825 */ or $t7, $t6, $t8 -/* 0A769C 802EF69C AC6F0000 */ sw $t7, ($v1) -/* 0A76A0 802EF6A0 AC790004 */ sw $t9, 4($v1) -/* 0A76A4 802EF6A4 1000006F */ b .L802EF864 -/* 0A76A8 802EF6A8 24840008 */ addiu $a0, $a0, 8 -.L802EF6AC: -/* 0A76AC 802EF6AC 97AE007A */ lhu $t6, 0x7a($sp) -/* 0A76B0 802EF6B0 3C011300 */ lui $at, 0x1300 -/* 0A76B4 802EF6B4 8E020000 */ lw $v0, ($s0) -/* 0A76B8 802EF6B8 000EC103 */ sra $t8, $t6, 4 -/* 0A76BC 802EF6BC 330F00FF */ andi $t7, $t8, 0xff -/* 0A76C0 802EF6C0 000FCC00 */ sll $t9, $t7, 0x10 -/* 0A76C4 802EF6C4 323800FF */ andi $t8, $s1, 0xff -/* 0A76C8 802EF6C8 00187A00 */ sll $t7, $t8, 8 -/* 0A76CC 802EF6CC 03217025 */ or $t6, $t9, $at -/* 0A76D0 802EF6D0 01CFC825 */ or $t9, $t6, $t7 -/* 0A76D4 802EF6D4 30B80080 */ andi $t8, $a1, 0x80 -/* 0A76D8 802EF6D8 001871C3 */ sra $t6, $t8, 7 -/* 0A76DC 802EF6DC 31CF0001 */ andi $t7, $t6, 1 -/* 0A76E0 802EF6E0 000FC080 */ sll $t8, $t7, 2 -/* 0A76E4 802EF6E4 03387025 */ or $t6, $t9, $t8 -/* 0A76E8 802EF6E8 00027900 */ sll $t7, $v0, 4 -/* 0A76EC 802EF6EC 000FCFC2 */ srl $t9, $t7, 0x1f -/* 0A76F0 802EF6F0 33380001 */ andi $t8, $t9, 1 -/* 0A76F4 802EF6F4 00187840 */ sll $t7, $t8, 1 -/* 0A76F8 802EF6F8 01CFC825 */ or $t9, $t6, $t7 -/* 0A76FC 802EF6FC 0002C140 */ sll $t8, $v0, 5 -/* 0A7700 802EF700 001877C2 */ srl $t6, $t8, 0x1f -/* 0A7704 802EF704 31CF0001 */ andi $t7, $t6, 1 -/* 0A7708 802EF708 3C0E65B1 */ lui $t6, (0x65B1C9E1 >> 16) # lui $t6, 0x65b1 -/* 0A770C 802EF70C 00801825 */ move $v1, $a0 -/* 0A7710 802EF710 35CEC9E1 */ ori $t6, (0x65B1C9E1 & 0xFFFF) # ori $t6, $t6, 0xc9e1 -/* 0A7714 802EF714 032FC025 */ or $t8, $t9, $t7 -/* 0A7718 802EF718 AC780000 */ sw $t8, ($v1) -/* 0A771C 802EF71C AC6E0004 */ sw $t6, 4($v1) -/* 0A7720 802EF720 10000050 */ b .L802EF864 -/* 0A7724 802EF724 24840008 */ addiu $a0, $a0, 8 -.L802EF728: -/* 0A7728 802EF728 97B9007A */ lhu $t9, 0x7a($sp) -/* 0A772C 802EF72C 3C011300 */ lui $at, 0x1300 -/* 0A7730 802EF730 8E020000 */ lw $v0, ($s0) -/* 0A7734 802EF734 00197903 */ sra $t7, $t9, 4 -/* 0A7738 802EF738 31F800FF */ andi $t8, $t7, 0xff -/* 0A773C 802EF73C 00187400 */ sll $t6, $t8, 0x10 -/* 0A7740 802EF740 322F00FF */ andi $t7, $s1, 0xff -/* 0A7744 802EF744 000FC200 */ sll $t8, $t7, 8 -/* 0A7748 802EF748 01C1C825 */ or $t9, $t6, $at -/* 0A774C 802EF74C 03387025 */ or $t6, $t9, $t8 -/* 0A7750 802EF750 30AF0080 */ andi $t7, $a1, 0x80 -/* 0A7754 802EF754 000FC9C3 */ sra $t9, $t7, 7 -/* 0A7758 802EF758 33380001 */ andi $t8, $t9, 1 -/* 0A775C 802EF75C 00187880 */ sll $t7, $t8, 2 -/* 0A7760 802EF760 01CFC825 */ or $t9, $t6, $t7 -/* 0A7764 802EF764 0002C100 */ sll $t8, $v0, 4 -/* 0A7768 802EF768 001877C2 */ srl $t6, $t8, 0x1f -/* 0A776C 802EF76C 31CF0001 */ andi $t7, $t6, 1 -/* 0A7770 802EF770 000FC040 */ sll $t8, $t7, 1 -/* 0A7774 802EF774 03387025 */ or $t6, $t9, $t8 -/* 0A7778 802EF778 00027940 */ sll $t7, $v0, 5 -/* 0A777C 802EF77C 000FCFC2 */ srl $t9, $t7, 0x1f -/* 0A7780 802EF780 33380001 */ andi $t8, $t9, 1 -/* 0A7784 802EF784 3C199965 */ lui $t9, (0x9965C9E1 >> 16) # lui $t9, 0x9965 -/* 0A7788 802EF788 3739C9E1 */ ori $t9, (0x9965C9E1 & 0xFFFF) # ori $t9, $t9, 0xc9e1 -/* 0A778C 802EF78C 01D87825 */ or $t7, $t6, $t8 -/* 0A7790 802EF790 AC6F0000 */ sw $t7, ($v1) -/* 0A7794 802EF794 AC790004 */ sw $t9, 4($v1) -/* 0A7798 802EF798 10000032 */ b .L802EF864 -/* 0A779C 802EF79C 24840008 */ addiu $a0, $a0, 8 -.L802EF7A0: -/* 0A77A0 802EF7A0 31D800FF */ andi $t8, $t6, 0xff -/* 0A77A4 802EF7A4 00187C00 */ sll $t7, $t8, 0x10 -/* 0A77A8 802EF7A8 01E1C825 */ or $t9, $t7, $at -/* 0A77AC 802EF7AC 30CEFFFF */ andi $t6, $a2, 0xffff -/* 0A77B0 802EF7B0 032EC025 */ or $t8, $t9, $t6 -/* 0A77B4 802EF7B4 AD780000 */ sw $t8, ($t3) -/* 0A77B8 802EF7B8 30EEFFFF */ andi $t6, $a3, 0xffff -/* 0A77BC 802EF7BC 0008CC00 */ sll $t9, $t0, 0x10 -/* 0A77C0 802EF7C0 032EC025 */ or $t8, $t9, $t6 -/* 0A77C4 802EF7C4 AD780004 */ sw $t8, 4($t3) -/* 0A77C8 802EF7C8 24840008 */ addiu $a0, $a0, 8 -/* 0A77CC 802EF7CC 00806025 */ move $t4, $a0 -/* 0A77D0 802EF7D0 3C0F1600 */ lui $t7, 0x1600 -/* 0A77D4 802EF7D4 AD8F0000 */ sw $t7, ($t4) -/* 0A77D8 802EF7D8 3158FFFF */ andi $t8, $t2, 0xffff -/* 0A77DC 802EF7DC 00097400 */ sll $t6, $t1, 0x10 -/* 0A77E0 802EF7E0 01D87825 */ or $t7, $t6, $t8 -/* 0A77E4 802EF7E4 AD8F0004 */ sw $t7, 4($t4) -/* 0A77E8 802EF7E8 97B9007A */ lhu $t9, 0x7a($sp) -/* 0A77EC 802EF7EC 3C011300 */ lui $at, 0x1300 -/* 0A77F0 802EF7F0 8E020000 */ lw $v0, ($s0) -/* 0A77F4 802EF7F4 00197103 */ sra $t6, $t9, 4 -/* 0A77F8 802EF7F8 31D800FF */ andi $t8, $t6, 0xff -/* 0A77FC 802EF7FC 00187C00 */ sll $t7, $t8, 0x10 -/* 0A7800 802EF800 322E00FF */ andi $t6, $s1, 0xff -/* 0A7804 802EF804 000EC200 */ sll $t8, $t6, 8 -/* 0A7808 802EF808 01E1C825 */ or $t9, $t7, $at -/* 0A780C 802EF80C 03387825 */ or $t7, $t9, $t8 -/* 0A7810 802EF810 30AE0080 */ andi $t6, $a1, 0x80 -/* 0A7814 802EF814 000EC9C3 */ sra $t9, $t6, 7 -/* 0A7818 802EF818 33380001 */ andi $t8, $t9, 1 -/* 0A781C 802EF81C 00187080 */ sll $t6, $t8, 2 -/* 0A7820 802EF820 01EEC825 */ or $t9, $t7, $t6 -/* 0A7824 802EF824 0002C100 */ sll $t8, $v0, 4 -/* 0A7828 802EF828 00187FC2 */ srl $t7, $t8, 0x1f -/* 0A782C 802EF82C 31EE0001 */ andi $t6, $t7, 1 -/* 0A7830 802EF830 000EC040 */ sll $t8, $t6, 1 -/* 0A7834 802EF834 03387825 */ or $t7, $t9, $t8 -/* 0A7838 802EF838 00027140 */ sll $t6, $v0, 5 -/* 0A783C 802EF83C 24840008 */ addiu $a0, $a0, 8 -/* 0A7840 802EF840 000ECFC2 */ srl $t9, $t6, 0x1f -/* 0A7844 802EF844 33380001 */ andi $t8, $t9, 1 -/* 0A7848 802EF848 00806825 */ move $t5, $a0 -/* 0A784C 802EF84C 3C1999B1 */ lui $t9, (0x99B1C9E1 >> 16) # lui $t9, 0x99b1 -/* 0A7850 802EF850 3739C9E1 */ ori $t9, (0x99B1C9E1 & 0xFFFF) # ori $t9, $t9, 0xc9e1 -/* 0A7854 802EF854 01F87025 */ or $t6, $t7, $t8 -/* 0A7858 802EF858 ADAE0000 */ sw $t6, ($t5) -/* 0A785C 802EF85C ADB90004 */ sw $t9, 4($t5) -/* 0A7860 802EF860 24840008 */ addiu $a0, $a0, 8 -.L802EF864: -/* 0A7864 802EF864 8FB00004 */ lw $s0, 4($sp) -/* 0A7868 802EF868 8FB10008 */ lw $s1, 8($sp) -/* 0A786C 802EF86C 8FB2000C */ lw $s2, 0xc($sp) -/* 0A7870 802EF870 27BD0068 */ addiu $sp, $sp, 0x68 -/* 0A7874 802EF874 03E00008 */ jr $ra -/* 0A7878 802EF878 00801025 */ move $v0, $a0 diff --git a/src/audio/load.c b/src/audio/load.c index ba3323b4..24a2424f 100644 --- a/src/audio/load.c +++ b/src/audio/load.c @@ -53,7 +53,7 @@ struct PendingDmaAudioBank { struct AudioBank *audioBank; uintptr_t devAddr; void *vAddr; - s32 remaining; + u32 remaining; u32 transferSize; u32 encodedInfo; OSMesgQueue *retQueue; @@ -155,7 +155,7 @@ void func_sh_802f4bd8(struct PendingDmaSample *arg0, s32 len); void func_sh_802f4c5c(uintptr_t devAddr, void *vAddr, size_t nbytes, s32 arg3); struct PendingDmaAudioBank *func_sh_802f4cb4(uintptr_t devAddr, void *vAddr, s32 size, s32 medium, s32 numChunks, OSMesgQueue *retQueue, s32 encodedInfo); void func_sh_802f4dcc(s32 audioResetStatus); -void func_sh_802f4e50(struct PendingDmaAudioBank *arg0, u32 arg1); +void func_sh_802f4e50(struct PendingDmaAudioBank *audioBank, s32 audioResetStatus); void func_sh_802f50ec(struct PendingDmaAudioBank *arg0, size_t len); void func_sh_802f517c(uintptr_t devAddr, void *vAddr, size_t nbytes, s32 arg3); s32 func_sh_802f5310(s32 bankId, struct AudioBank *mem, struct PatchStruct *patchInfo, s32 arg3); @@ -2168,99 +2168,95 @@ void func_sh_802f4dcc(s32 audioResetStatus) { } } -#ifndef NON_MATCHING -GLOBAL_ASM("asm/non_matchings/sh/audio/load/func_sh_802f4e50.s") -#else -void func_sh_802f4e50(struct PendingDmaAudioBank *arg0, u32 arg1) { - ALSeqFile *sp5C; - s32 temp_a0; - s32 sp44; - s32 id; - struct PatchStruct sp2C; - u8 t0; - u32 sp24; - - sp5C = gAlTbl; - if (arg0->timer >= 2) { - arg0->timer = arg0->timer - 1; +void func_sh_802f4e50(struct PendingDmaAudioBank *audioBank, s32 audioResetStatus) { + ALSeqFile *alSeqFile; + u32 *encodedInfo; + OSMesg mesg; + u32 temp; + u32 seqId; + s32 bankId1; + s32 bankId2; + struct PatchStruct patchStruct; + alSeqFile = gAlTbl; + if (audioBank->timer >= 2) { + audioBank->timer--; return; } - if (arg0->timer == 1) { - arg0->timer = 0; + if (audioBank->timer == 1) { + audioBank->timer = 0; } else { - if (arg1 != 0) { - osRecvMesg(&arg0->dmaRetQueue, NULL, OS_MESG_BLOCK); - arg0->inProgress = 0; + if (audioResetStatus != 0) { + osRecvMesg(&audioBank->dmaRetQueue, NULL, OS_MESG_BLOCK); + audioBank->inProgress = 0; return; } - if (osRecvMesg(&arg0->dmaRetQueue, NULL, OS_MESG_NOBLOCK) == -1) { + if (osRecvMesg(&audioBank->dmaRetQueue, NULL, OS_MESG_NOBLOCK) == -1) { return; } } - sp24 = arg0->remaining; - if (sp24 == 0) { - arg1 = arg0->encodedInfo; - sp24 = (arg1 >> 8) & 0xff; - t0 = (arg0->encodedInfo) >> 0x10; - switch (t0) { + + encodedInfo = &audioBank->encodedInfo; + if (audioBank->remaining == 0) { + mesg = (OSMesg) audioBank->encodedInfo; + mesg = mesg; //! needs an extra read from mesg here to match... + temp = *encodedInfo; + seqId = (temp >> 8) & 0xFF; + switch ((u8) (temp >> 0x10)) { case 0: - if (gSeqLoadStatus[sp24] != 5) { - gSeqLoadStatus[sp24] = (arg0->encodedInfo) & 0xff; + if (gSeqLoadStatus[seqId] != 5) { + gSeqLoadStatus[seqId] = (u8) (temp & 0xFF); } break; case 2: - if (gUnkLoadStatus[sp24] != 5) { - gUnkLoadStatus[sp24] = (arg0->encodedInfo) & 0xff; + if (gUnkLoadStatus[seqId] != 5) { + gUnkLoadStatus[seqId] = (u8) (temp & 0xFF); } break; case 1: - if (gBankLoadStatus[sp24] != 5) { - gBankLoadStatus[sp24] = (arg0->encodedInfo) & 0xff; + if (gBankLoadStatus[seqId] != 5) { + gBankLoadStatus[seqId] = (u8) (temp & 0xFF); } - temp_a0 = gCtlEntries[sp24].bankId1; - sp44 = gCtlEntries[sp24].bankId2; - sp2C.bankId1 = temp_a0; - sp2C.bankId2 = sp44; - if (temp_a0 != 0xFF) { - sp2C.baseAddr1 = func_sh_802f3598(temp_a0, &sp2C.medium1); + bankId1 = gCtlEntries[seqId].bankId1; + bankId2 = gCtlEntries[seqId].bankId2; + patchStruct.bankId1 = bankId1; + patchStruct.bankId2 = bankId2; + if (bankId1 != 0xFF) { + patchStruct.baseAddr1 = func_sh_802f3598(bankId1, &patchStruct.medium1); } else { - sp2C.baseAddr1 = NULL; + patchStruct.baseAddr1 = NULL; } - if (sp44 != 0xFF) { - sp2C.baseAddr2 = func_sh_802f3598(sp44, &sp2C.medium2); + if (bankId2 != 0xFF) { + patchStruct.baseAddr2 = func_sh_802f3598(bankId2, &patchStruct.medium2); } else { - sp2C.baseAddr2 = NULL; + patchStruct.baseAddr2 = NULL; } - func_sh_802f5310(sp24, arg0->audioBank, &sp2C, 1); + + func_sh_802f5310(seqId, audioBank->audioBank, &patchStruct, 1); break; - } - arg1 = arg0->encodedInfo; - arg0->inProgress = 0; - osSendMesg(arg0->retQueue, (OSMesg) arg1, 0); - } else { - sp24 = arg0->remaining; - if (sp24 < arg0->transferSize) { - if (1 == arg0->medium) { - func_sh_802f517c(arg0->devAddr, arg0->vAddr, sp24, sp5C->unk2); - } else { - func_sh_802f50ec(arg0, sp24); - } - arg0->remaining = 0; + mesg = (OSMesg) audioBank->encodedInfo; + audioBank->inProgress = 0; + osSendMesg(audioBank->retQueue, mesg, OS_MESG_NOBLOCK); + } else if (audioBank->remaining < audioBank->transferSize) { + if (audioBank->medium == 1) { + func_sh_802f517c(audioBank->devAddr, audioBank->vAddr, audioBank->remaining, alSeqFile->unk2); } else { - if (1 == arg0->medium) { - func_sh_802f517c(arg0->devAddr, arg0->vAddr, arg0->transferSize, sp5C->unk2); - } else { - func_sh_802f50ec(arg0, arg0->transferSize); - } - - arg0->remaining = arg0->remaining - arg0->transferSize; - arg0->devAddr = arg0->devAddr + arg0->transferSize; - arg0->vAddr = ((u8 *) arg0->vAddr) + arg0->transferSize; + func_sh_802f50ec(audioBank, audioBank->remaining); } + + audioBank->remaining = 0; + } else { + if (audioBank->medium == 1) { + func_sh_802f517c(audioBank->devAddr, audioBank->vAddr, audioBank->transferSize, alSeqFile->unk2); + } else { + func_sh_802f50ec(audioBank, audioBank->transferSize); + } + + audioBank->remaining -= audioBank->transferSize; + audioBank->devAddr += audioBank->transferSize; + audioBank->vAddr = ((u8 *) audioBank->vAddr) + audioBank->transferSize; } } -#endif extern char shindouDebugPrint110[]; void func_sh_802f50ec(struct PendingDmaAudioBank *arg0, size_t len) { diff --git a/src/audio/seqplayer.c b/src/audio/seqplayer.c index 38bb5c38..a5a92b84 100644 --- a/src/audio/seqplayer.c +++ b/src/audio/seqplayer.c @@ -2228,18 +2228,17 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } } -#if defined(VERSION_SH) && !defined(NON_MATCHING) // regalloc -void sequence_player_process_sequence(struct SequencePlayer *seqPlayer); -GLOBAL_ASM("asm/non_matchings/sh/audio/seqplayer/sequence_player_process_sequence.s") -#else void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { u8 cmd; +#ifdef VERSION_SH + UNUSED u32 pad; +#endif u8 loBits; u8 temp; s32 value; s32 i; u16 u16v; - u8 *tempPtr; + u8 *seqData; struct M64ScriptState *state; #if defined(VERSION_EU) || defined(VERSION_SH) s32 temp32; @@ -2518,19 +2517,19 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { #if defined(VERSION_EU) || defined(VERSION_SH) case 0xda: - temp = m64_read_u8(state); + cmd = m64_read_u8(state); u16v = m64_read_s16(state); - switch (temp) { + switch (cmd) { case SEQUENCE_PLAYER_STATE_0: case SEQUENCE_PLAYER_STATE_FADE_OUT: if (seqPlayer->state != SEQUENCE_PLAYER_STATE_2) { seqPlayer->fadeTimerUnkEu = u16v; - seqPlayer->state = temp; + seqPlayer->state = cmd; } break; case SEQUENCE_PLAYER_STATE_2: seqPlayer->fadeRemainingFrames = u16v; - seqPlayer->state = temp; + seqPlayer->state = cmd; seqPlayer->fadeVelocity = (0.0f - seqPlayer->fadeVolume) / (s32)(u16v & 0xFFFFu); break; @@ -2557,22 +2556,22 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { break; #else case 0xdb: // seq_setvol - temp = m64_read_u8(state); + cmd = m64_read_u8(state); switch (seqPlayer->state) { case SEQUENCE_PLAYER_STATE_2: if (seqPlayer->fadeRemainingFrames != 0) { - f32 targetVolume = FLOAT_CAST(temp) / US_FLOAT(127.0); + f32 targetVolume = FLOAT_CAST(cmd) / US_FLOAT(127.0); seqPlayer->fadeVelocity = (targetVolume - seqPlayer->fadeVolume) / FLOAT_CAST(seqPlayer->fadeRemainingFrames); break; } // fallthrough case SEQUENCE_PLAYER_STATE_0: - seqPlayer->fadeVolume = FLOAT_CAST(temp) / US_FLOAT(127.0); + seqPlayer->fadeVolume = FLOAT_CAST(cmd) / US_FLOAT(127.0); break; case SEQUENCE_PLAYER_STATE_FADE_OUT: case SEQUENCE_PLAYER_STATE_4: - seqPlayer->volume = FLOAT_CAST(temp) / US_FLOAT(127.0); + seqPlayer->volume = FLOAT_CAST(cmd) / US_FLOAT(127.0); break; } break; @@ -2617,11 +2616,11 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { case 0xd2: // seq_setshortnotevelocitytable case 0xd1: // seq_setshortnotedurationtable u16v = m64_read_s16(state); - tempPtr = seqPlayer->seqData + u16v; + seqData = seqPlayer->seqData + u16v; if (cmd == 0xd2) { - seqPlayer->shortNoteVelocityTable = tempPtr; + seqPlayer->shortNoteVelocityTable = seqData; } else { - seqPlayer->shortNoteDurationTable = tempPtr; + seqPlayer->shortNoteDurationTable = seqData; } break; @@ -2647,14 +2646,15 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { #ifdef VERSION_SH case 0xc7: - temp = m64_read_u8(state); + cmd = m64_read_u8(state); u16v = m64_read_s16(state); - seqPlayer->seqData[u16v] = (u8) value + temp; + seqData = seqPlayer->seqData + u16v; + *seqData = (u8)value + cmd; break; case 0xc6: seqPlayer->unkSh = TRUE; - break; + return; #endif default: @@ -2735,7 +2735,6 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { #endif } } -#endif // This runs 240 times per second. void process_sequences(UNUSED s32 iterationsRemaining) { diff --git a/src/audio/synthesis.c b/src/audio/synthesis.c index f6aec70e..b9f73753 100644 --- a/src/audio/synthesis.c +++ b/src/audio/synthesis.c @@ -5,6 +5,7 @@ #include "data.h" #include "load.h" #include "seqplayer.h" +#include "internal.h" #include "external.h" @@ -1858,8 +1859,7 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat } #elif defined(VERSION_SH) -#ifdef NON_MATCHING // regalloc -u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisState *synthesisState, s32 nSamples, u16 inBuf, s32 headsetPanSettings, u32 flags) { +u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisState *synthesisState, s32 nSamples, u16 inBuf, s32 headsetPanSettings, UNUSED u32 flags) { u16 sourceRight; u16 sourceLeft; u16 targetLeft; @@ -1868,10 +1868,7 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat s16 rampRight; s32 sourceReverbVol; s16 reverbVol; - s32 bit; - s32 sourceVol; - s32 targetVol; - UNUSED s32 pad[2]; + s32 temp = 0; sourceLeft = synthesisState->curVolLeft; sourceRight = synthesisState->curVolRight; @@ -1879,6 +1876,7 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat targetRight = note->targetVolRight; targetLeft <<= 4; targetRight <<= 4; + if (targetLeft != sourceLeft) { rampLeft = (targetLeft - sourceLeft) / (nSamples >> 3); } else { @@ -1889,12 +1887,11 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat } else { rampRight = 0; } + sourceReverbVol = synthesisState->reverbVol; - targetVol = note->reverbVol & 0x7f; - sourceVol = sourceReverbVol & 0x7f; - bit = (sourceReverbVol & 0x80) >> 7; if (note->reverbVol != sourceReverbVol) { - reverbVol = ((targetVol - sourceVol) << 9) / (nSamples >> 3); + temp = ((note->reverbVol & 0x7f) - (sourceReverbVol & 0x7f)) << 9; + reverbVol = temp / (nSamples >> 3); synthesisState->reverbVol = note->reverbVol; } else { reverbVol = 0; @@ -1904,14 +1901,14 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat if (note->usesHeadsetPanEffects) { aClearBuffer(cmd++, DMEM_ADDR_NOTE_PAN_TEMP, DEFAULT_LEN_1CH); - aEnvSetup1(cmd++, (sourceVol * 2), reverbVol, rampLeft, rampRight); + aEnvSetup1(cmd++, (sourceReverbVol & 0x7f) * 2, reverbVol, rampLeft, rampRight); aEnvSetup2(cmd++, sourceLeft, sourceRight); switch (headsetPanSettings) { case 1: aEnvMixer(cmd++, inBuf, nSamples, - bit, + (sourceReverbVol & 0x80) >> 7, note->stereoStrongRight, note->stereoStrongLeft, DMEM_ADDR_NOTE_PAN_TEMP, DMEM_ADDR_RIGHT_CH, @@ -1921,7 +1918,7 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat case 2: aEnvMixer(cmd++, inBuf, nSamples, - bit, + (sourceReverbVol & 0x80) >> 7, note->stereoStrongRight, note->stereoStrongLeft, DMEM_ADDR_LEFT_CH, DMEM_ADDR_NOTE_PAN_TEMP, @@ -1931,7 +1928,7 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat default: aEnvMixer(cmd++, inBuf, nSamples, - bit, + (sourceReverbVol & 0x80) >> 7, note->stereoStrongRight, note->stereoStrongLeft, DMEM_ADDR_LEFT_CH, DMEM_ADDR_RIGHT_CH, @@ -1940,11 +1937,11 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat break; } } else { - aEnvSetup1(cmd++, (sourceVol * 2), reverbVol, rampLeft, rampRight); + aEnvSetup1(cmd++, (sourceReverbVol & 0x7f) * 2, reverbVol, rampLeft, rampRight); aEnvSetup2(cmd++, sourceLeft, sourceRight); aEnvMixer(cmd++, inBuf, nSamples, - bit, + (sourceReverbVol & 0x80) >> 7, note->stereoStrongRight, note->stereoStrongLeft, DMEM_ADDR_LEFT_CH, DMEM_ADDR_RIGHT_CH, @@ -1953,9 +1950,6 @@ u64 *process_envelope(u64 *cmd, struct NoteSubEu *note, struct NoteSynthesisStat } return cmd; } -#else -GLOBAL_ASM("asm/non_matchings/sh/audio/synthesis/process_envelope.s") -#endif #endif #if defined(VERSION_EU) || defined(VERSION_SH)