Refresh 13 2

This commit is contained in:
n64 2020-12-03 20:57:48 -05:00
parent 6d87c424b8
commit a53de1e70c
7 changed files with 105 additions and 1324 deletions

View File

@ -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).

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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) {

View File

@ -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) {

View File

@ -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)