1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-02 09:34:27 +00:00

Decompile playback.c (#82)

* Decompile playback.c

* Remove rename_sym.sh

* Fixed for loop in pop_node_...

* Address krim's other issues

* Remove rename_sym again

* Address Roman's comments.

* Fix build and remove rename_sym another time.
This commit is contained in:
JoshDuMan 2020-04-21 04:19:33 -04:00 committed by GitHub
parent aecf375b84
commit e050319e07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 2658 additions and 2679 deletions

View file

@ -20,8 +20,8 @@ glabel func_800DACC0
/* B51E6C 800DACCC 01C67023 */ subu $t6, $t6, $a2 /* B51E6C 800DACCC 01C67023 */ subu $t6, $t6, $a2
/* B51E70 800DACD0 000E70C0 */ sll $t6, $t6, 3 /* B51E70 800DACD0 000E70C0 */ sll $t6, $t6, 3
/* B51E74 800DACD4 01C67021 */ addu $t6, $t6, $a2 /* B51E74 800DACD4 01C67021 */ addu $t6, $t6, $a2
/* B51E78 800DACD8 3C0F8017 */ lui $t7, %hi(D_8016F180) # $t7, 0x8017 /* B51E78 800DACD8 3C0F8017 */ lui $t7, %hi(gAudioContext) # $t7, 0x8017
/* B51E7C 800DACDC 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 /* B51E7C 800DACDC 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80
/* B51E80 800DACE0 000E70C0 */ sll $t6, $t6, 3 /* B51E80 800DACE0 000E70C0 */ sll $t6, $t6, 3
/* B51E84 800DACE4 01CF4021 */ addu $t0, $t6, $t7 /* B51E84 800DACE4 01CF4021 */ addu $t0, $t6, $t7
/* B51E88 800DACE8 9118001C */ lbu $t8, 0x1c($t0) /* B51E88 800DACE8 9118001C */ lbu $t8, 0x1c($t0)
@ -258,8 +258,8 @@ glabel func_800DACC0
/* B521D8 800DB038 00000000 */ nop /* B521D8 800DB038 00000000 */ nop
glabel func_800DB03C glabel func_800DB03C
/* B521DC 800DB03C 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B521DC 800DB03C 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B521E0 800DB040 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B521E0 800DB040 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B521E4 800DB044 8CE32894 */ lw $v1, 0x2894($a3) /* B521E4 800DB044 8CE32894 */ lw $v1, 0x2894($a3)
/* B521E8 800DB048 00002825 */ move $a1, $zero /* B521E8 800DB048 00002825 */ move $a1, $zero
/* B521EC 800DB04C 00640019 */ multu $v1, $a0 /* B521EC 800DB04C 00640019 */ multu $v1, $a0
@ -300,8 +300,8 @@ glabel func_800DB03C
glabel func_800DB0C4 glabel func_800DB0C4
/* B52264 800DB0C4 27BDFFC0 */ addiu $sp, $sp, -0x40 /* B52264 800DB0C4 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B52268 800DB0C8 AFB5002C */ sw $s5, 0x2c($sp) /* B52268 800DB0C8 AFB5002C */ sw $s5, 0x2c($sp)
/* B5226C 800DB0CC 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 /* B5226C 800DB0CC 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
/* B52270 800DB0D0 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 /* B52270 800DB0D0 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
/* B52274 800DB0D4 AFB40028 */ sw $s4, 0x28($sp) /* B52274 800DB0D4 AFB40028 */ sw $s4, 0x28($sp)
/* B52278 800DB0D8 86B42854 */ lh $s4, 0x2854($s5) /* B52278 800DB0D8 86B42854 */ lh $s4, 0x2854($s5)
/* B5227C 800DB0DC AFBE0038 */ sw $fp, 0x38($sp) /* B5227C 800DB0DC AFBE0038 */ sw $fp, 0x38($sp)
@ -371,8 +371,8 @@ glabel func_800DB0C4
/* B5235C 800DB1BC 82A20001 */ lb $v0, 1($s5) /* B5235C 800DB1BC 82A20001 */ lb $v0, 1($s5)
/* B52360 800DB1C0 58400011 */ blezl $v0, .L800DB208 /* B52360 800DB1C0 58400011 */ blezl $v0, .L800DB208
/* B52364 800DB1C4 02E02025 */ move $a0, $s7 /* B52364 800DB1C4 02E02025 */ move $a0, $s7
/* B52368 800DB1C8 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B52368 800DB1C8 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B5236C 800DB1CC 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B5236C 800DB1CC 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
.L800DB1D0: .L800DB1D0:
/* B52370 800DB1D0 920F0019 */ lbu $t7, 0x19($s0) /* B52370 800DB1D0 920F0019 */ lbu $t7, 0x19($s0)
/* B52374 800DB1D4 02602025 */ move $a0, $s3 /* B52374 800DB1D4 02602025 */ move $a0, $s3
@ -402,8 +402,8 @@ glabel func_800DB0C4
/* B523CC 800DB22C 02F8B821 */ addu $s7, $s7, $t8 /* B523CC 800DB22C 02F8B821 */ addu $s7, $s7, $t8
.L800DB230: .L800DB230:
/* B523D0 800DB230 82B90001 */ lb $t9, 1($s5) /* B523D0 800DB230 82B90001 */ lb $t9, 1($s5)
/* B523D4 800DB234 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B523D4 800DB234 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B523D8 800DB238 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B523D8 800DB238 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
/* B523DC 800DB23C 1B20000E */ blez $t9, .L800DB278 /* B523DC 800DB23C 1B20000E */ blez $t9, .L800DB278
/* B523E0 800DB240 00008825 */ move $s1, $zero /* B523E0 800DB240 00008825 */ move $s1, $zero
/* B523E4 800DB244 9202001A */ lbu $v0, 0x1a($s0) /* B523E4 800DB244 9202001A */ lbu $v0, 0x1a($s0)
@ -442,8 +442,8 @@ glabel func_800DB0C4
/* B5245C 800DB2BC 27BD0040 */ addiu $sp, $sp, 0x40 /* B5245C 800DB2BC 27BD0040 */ addiu $sp, $sp, 0x40
glabel func_800DB2C0 glabel func_800DB2C0
/* B52460 800DB2C0 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 /* B52460 800DB2C0 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017
/* B52464 800DB2C4 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 /* B52464 800DB2C4 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80
/* B52468 800DB2C8 84CE2854 */ lh $t6, 0x2854($a2) /* B52468 800DB2C8 84CE2854 */ lh $t6, 0x2854($a2)
/* B5246C 800DB2CC 24820001 */ addiu $v0, $a0, 1 /* B5246C 800DB2CC 24820001 */ addiu $v0, $a0, 1
/* B52470 800DB2D0 004E082A */ slt $at, $v0, $t6 /* B52470 800DB2D0 004E082A */ slt $at, $v0, $t6
@ -1001,8 +1001,8 @@ glabel func_800DBAE8
/* B52C90 800DBAF0 AFA5002C */ sw $a1, 0x2c($sp) /* B52C90 800DBAF0 AFA5002C */ sw $a1, 0x2c($sp)
/* B52C94 800DBAF4 AFA60030 */ sw $a2, 0x30($sp) /* B52C94 800DBAF4 AFA60030 */ sw $a2, 0x30($sp)
/* B52C98 800DBAF8 80AF0005 */ lb $t7, 5($a1) /* B52C98 800DBAF8 80AF0005 */ lb $t7, 5($a1)
/* B52C9C 800DBAFC 3C088017 */ lui $t0, %hi(D_8016F180) # $t0, 0x8017 /* B52C9C 800DBAFC 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017
/* B52CA0 800DBB00 2508F180 */ addiu $t0, %lo(D_8016F180) # addiu $t0, $t0, -0xe80 /* B52CA0 800DBB00 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80
/* B52CA4 800DBB04 000FC080 */ sll $t8, $t7, 2 /* B52CA4 800DBB04 000FC080 */ sll $t8, $t7, 2
/* B52CA8 800DBB08 030FC023 */ subu $t8, $t8, $t7 /* B52CA8 800DBB08 030FC023 */ subu $t8, $t8, $t7
/* B52CAC 800DBB0C 0018C080 */ sll $t8, $t8, 2 /* B52CAC 800DBB0C 0018C080 */ sll $t8, $t8, 2
@ -1659,8 +1659,8 @@ glabel func_800DC2DC
glabel func_800DC384 glabel func_800DC384
/* B53524 800DC384 27BDFF08 */ addiu $sp, $sp, -0xf8 /* B53524 800DC384 27BDFF08 */ addiu $sp, $sp, -0xf8
/* B53528 800DC388 AFB5003C */ sw $s5, 0x3c($sp) /* B53528 800DC388 AFB5003C */ sw $s5, 0x3c($sp)
/* B5352C 800DC38C 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 /* B5352C 800DC38C 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
/* B53530 800DC390 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 /* B53530 800DC390 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
/* B53534 800DC394 8EA82894 */ lw $t0, 0x2894($s5) /* B53534 800DC394 8EA82894 */ lw $t0, 0x2894($s5)
/* B53538 800DC398 82A90001 */ lb $t1, 1($s5) /* B53538 800DC398 82A90001 */ lb $t1, 1($s5)
/* B5353C 800DC39C AFBE0048 */ sw $fp, 0x48($sp) /* B5353C 800DC39C AFBE0048 */ sw $fp, 0x48($sp)
@ -3248,9 +3248,9 @@ glabel func_800DD9F4
/* B54BDC 800DDA3C 8CE7F0B0 */ lw $a3, %lo(D_8012F0B0)($a3) /* B54BDC 800DDA3C 8CE7F0B0 */ lw $a3, %lo(D_8012F0B0)($a3)
/* B54BE0 800DDA40 0C036F44 */ jal func_800DBD10 /* B54BE0 800DDA40 0C036F44 */ jal func_800DBD10
/* B54BE4 800DDA44 24050580 */ li $a1, 1408 /* B54BE4 800DDA44 24050580 */ li $a1, 1408
/* B54BE8 800DDA48 3C038013 */ lui $v1, %hi(D_8012F090) # $v1, 0x8013 /* B54BE8 800DDA48 3C038013 */ lui $v1, %hi(gWaveSamples) # $v1, 0x8013
/* B54BEC 800DDA4C 8FA9002C */ lw $t1, 0x2c($sp) /* B54BEC 800DDA4C 8FA9002C */ lw $t1, 0x2c($sp)
/* B54BF0 800DDA50 2463F090 */ addiu $v1, %lo(D_8012F090) # addiu $v1, $v1, -0xf70 /* B54BF0 800DDA50 2463F090 */ addiu $v1, %lo(gWaveSamples) # addiu $v1, $v1, -0xf70
/* B54BF4 800DDA54 8C790020 */ lw $t9, 0x20($v1) /* B54BF4 800DDA54 8C790020 */ lw $t9, 0x20($v1)
/* B54BF8 800DDA58 00095080 */ sll $t2, $t1, 2 /* B54BF8 800DDA58 00095080 */ sll $t2, $t1, 2
/* B54BFC 800DDA5C 02001025 */ move $v0, $s0 /* B54BFC 800DDA5C 02001025 */ move $v0, $s0

View file

@ -28,8 +28,8 @@ glabel func_800DDE3C
/* B54FF4 800DDE54 AFB10018 */ sw $s1, 0x18($sp) /* B54FF4 800DDE54 AFB10018 */ sw $s1, 0x18($sp)
/* B54FF8 800DDE58 0C037788 */ jal func_800DDE20 /* B54FF8 800DDE58 0C037788 */ jal func_800DDE20
/* B54FFC 800DDE5C AFB00014 */ sw $s0, 0x14($sp) /* B54FFC 800DDE5C AFB00014 */ sw $s0, 0x14($sp)
/* B55000 800DDE60 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 /* B55000 800DDE60 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017
/* B55004 800DDE64 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 /* B55004 800DDE64 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80
/* B55008 800DDE68 8E6E3520 */ lw $t6, 0x3520($s3) /* B55008 800DDE68 8E6E3520 */ lw $t6, 0x3520($s3)
/* B5500C 800DDE6C 3C018015 */ lui $at, %hi(D_801493F0) /* B5500C 800DDE6C 3C018015 */ lui $at, %hi(D_801493F0)
/* B55010 800DDE70 E5C003FC */ swc1 $f0, 0x3fc($t6) /* B55010 800DDE70 E5C003FC */ swc1 $f0, 0x3fc($t6)
@ -105,10 +105,10 @@ glabel func_800DDE3C
/* B5511C 800DDF7C 27BD0028 */ addiu $sp, $sp, 0x28 /* B5511C 800DDF7C 27BD0028 */ addiu $sp, $sp, 0x28
glabel func_800DDF80 glabel func_800DDF80
/* B55120 800DDF80 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B55120 800DDF80 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B55124 800DDF84 3C028017 */ lui $v0, %hi(D_8016F1B0) # $v0, 0x8017 /* B55124 800DDF84 3C028017 */ lui $v0, %hi(D_8016F1B0) # $v0, 0x8017
/* B55128 800DDF88 2442F1B0 */ addiu $v0, %lo(D_8016F1B0) # addiu $v0, $v0, -0xe50 /* B55128 800DDF88 2442F1B0 */ addiu $v0, %lo(D_8016F1B0) # addiu $v0, $v0, -0xe50
/* B5512C 800DDF8C 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5512C 800DDF8C 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B55130 800DDF90 24040005 */ li $a0, 5 /* B55130 800DDF90 24040005 */ li $a0, 5
/* B55134 800DDF94 906E3468 */ lbu $t6, 0x3468($v1) /* B55134 800DDF94 906E3468 */ lbu $t6, 0x3468($v1)
.L800DDF98: .L800DDF98:
@ -120,10 +120,10 @@ glabel func_800DDF80
/* B55148 800DDFA8 0062082B */ sltu $at, $v1, $v0 /* B55148 800DDFA8 0062082B */ sltu $at, $v1, $v0
/* B5514C 800DDFAC 5420FFFA */ bnezl $at, .L800DDF98 /* B5514C 800DDFAC 5420FFFA */ bnezl $at, .L800DDF98
/* B55150 800DDFB0 906E3468 */ lbu $t6, 0x3468($v1) /* B55150 800DDFB0 906E3468 */ lbu $t6, 0x3468($v1)
/* B55154 800DDFB4 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B55154 800DDFB4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B55158 800DDFB8 3C028017 */ lui $v0, %hi(D_8016F1B0) # $v0, 0x8017 /* B55158 800DDFB8 3C028017 */ lui $v0, %hi(D_8016F1B0) # $v0, 0x8017
/* B5515C 800DDFBC 2442F1B0 */ addiu $v0, %lo(D_8016F1B0) # addiu $v0, $v0, -0xe50 /* B5515C 800DDFBC 2442F1B0 */ addiu $v0, %lo(D_8016F1B0) # addiu $v0, $v0, -0xe50
/* B55160 800DDFC0 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B55160 800DDFC0 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B55164 800DDFC4 906F3438 */ lbu $t7, 0x3438($v1) /* B55164 800DDFC4 906F3438 */ lbu $t7, 0x3438($v1)
.L800DDFC8: .L800DDFC8:
/* B55168 800DDFC8 508F0003 */ beql $a0, $t7, .L800DDFD8 /* B55168 800DDFC8 508F0003 */ beql $a0, $t7, .L800DDFD8
@ -134,10 +134,10 @@ glabel func_800DDF80
/* B55178 800DDFD8 0062082B */ sltu $at, $v1, $v0 /* B55178 800DDFD8 0062082B */ sltu $at, $v1, $v0
/* B5517C 800DDFDC 5420FFFA */ bnezl $at, .L800DDFC8 /* B5517C 800DDFDC 5420FFFA */ bnezl $at, .L800DDFC8
/* B55180 800DDFE0 906F3438 */ lbu $t7, 0x3438($v1) /* B55180 800DDFE0 906F3438 */ lbu $t7, 0x3438($v1)
/* B55184 800DDFE4 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B55184 800DDFE4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B55188 800DDFE8 3C028017 */ lui $v0, %hi(D_8016F200) # $v0, 0x8017 /* B55188 800DDFE8 3C028017 */ lui $v0, %hi(D_8016F200) # $v0, 0x8017
/* B5518C 800DDFEC 2442F200 */ addiu $v0, %lo(D_8016F200) # addiu $v0, $v0, -0xe00 /* B5518C 800DDFEC 2442F200 */ addiu $v0, %lo(D_8016F200) # addiu $v0, $v0, -0xe00
/* B55190 800DDFF0 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B55190 800DDFF0 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B55194 800DDFF4 90783498 */ lbu $t8, 0x3498($v1) /* B55194 800DDFF4 90783498 */ lbu $t8, 0x3498($v1)
.L800DDFF8: .L800DDFF8:
/* B55198 800DDFF8 50980003 */ beql $a0, $t8, .L800DE008 /* B55198 800DDFF8 50980003 */ beql $a0, $t8, .L800DE008
@ -168,8 +168,8 @@ glabel func_800DDF80
glabel func_800DE048 glabel func_800DE048
/* B551E8 800DE048 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B551E8 800DE048 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B551EC 800DE04C AFB50028 */ sw $s5, 0x28($sp) /* B551EC 800DE04C AFB50028 */ sw $s5, 0x28($sp)
/* B551F0 800DE050 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 /* B551F0 800DE050 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
/* B551F4 800DE054 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 /* B551F4 800DE054 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
/* B551F8 800DE058 8EA22894 */ lw $v0, 0x2894($s5) /* B551F8 800DE058 8EA22894 */ lw $v0, 0x2894($s5)
/* B551FC 800DE05C AFB40024 */ sw $s4, 0x24($sp) /* B551FC 800DE05C AFB40024 */ sw $s4, 0x24($sp)
/* B55200 800DE060 AFB10018 */ sw $s1, 0x18($sp) /* B55200 800DE060 AFB10018 */ sw $s1, 0x18($sp)
@ -180,8 +180,8 @@ glabel func_800DE048
/* B55214 800DE074 AFB00014 */ sw $s0, 0x14($sp) /* B55214 800DE074 AFB00014 */ sw $s0, 0x14($sp)
/* B55218 800DE078 18400023 */ blez $v0, .L800DE108 /* B55218 800DE078 18400023 */ blez $v0, .L800DE108
/* B5521C 800DE07C 00008825 */ move $s1, $zero /* B5521C 800DE07C 00008825 */ move $s1, $zero
/* B55220 800DE080 3C138017 */ lui $s3, %hi(D_80174D18) # $s3, 0x8017 /* B55220 800DE080 3C138017 */ lui $s3, %hi(gNoteFreeLists) # $s3, 0x8017
/* B55224 800DE084 26734D18 */ addiu $s3, %lo(D_80174D18) # addiu $s3, $s3, 0x4d18 /* B55224 800DE084 26734D18 */ addiu $s3, %lo(gNoteFreeLists) # addiu $s3, $s3, 0x4d18
/* B55228 800DE088 00009025 */ move $s2, $zero /* B55228 800DE088 00009025 */ move $s2, $zero
.L800DE08C: .L800DE08C:
/* B5522C 800DE08C 8EAE352C */ lw $t6, 0x352c($s5) /* B5522C 800DE08C 8EAE352C */ lw $t6, 0x352c($s5)
@ -204,12 +204,12 @@ glabel func_800DE048
/* B55270 800DE0D0 356C0040 */ ori $t4, $t3, 0x40 /* B55270 800DE0D0 356C0040 */ ori $t4, $t3, 0x40
/* B55274 800DE0D4 A04C0000 */ sb $t4, ($v0) /* B55274 800DE0D4 A04C0000 */ sb $t4, ($v0)
.L800DE0D8: .L800DE0D8:
/* B55278 800DE0D8 0C039BCA */ jal func_800E6F28 /* B55278 800DE0D8 0C039BCA */ jal Audio_NoteDisable
/* B5527C 800DE0DC 02002025 */ move $a0, $s0 /* B5527C 800DE0DC 02002025 */ move $a0, $s0
/* B55280 800DE0E0 0C03A037 */ jal func_800E80DC /* B55280 800DE0E0 0C03A037 */ jal Audio_AudioListRemove
/* B55284 800DE0E4 02002025 */ move $a0, $s0 /* B55284 800DE0E4 02002025 */ move $a0, $s0
/* B55288 800DE0E8 02602025 */ move $a0, $s3 /* B55288 800DE0E8 02602025 */ move $a0, $s3
/* B5528C 800DE0EC 0C03A70A */ jal func_800E9C28 /* B5528C 800DE0EC 0C03A70A */ jal Audio_AudioListPushBack
/* B55290 800DE0F0 02002825 */ move $a1, $s0 /* B55290 800DE0F0 02002825 */ move $a1, $s0
/* B55294 800DE0F4 8EA22894 */ lw $v0, 0x2894($s5) /* B55294 800DE0F4 8EA22894 */ lw $v0, 0x2894($s5)
/* B55298 800DE0F8 26310001 */ addiu $s1, $s1, 1 /* B55298 800DE0F8 26310001 */ addiu $s1, $s1, 1
@ -229,8 +229,8 @@ glabel func_800DE048
/* B552C8 800DE128 27BD0030 */ addiu $sp, $sp, 0x30 /* B552C8 800DE128 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800DE12C glabel func_800DE12C
/* B552CC 800DE12C 3C088017 */ lui $t0, %hi(D_8016F180) # $t0, 0x8017 /* B552CC 800DE12C 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017
/* B552D0 800DE130 2508F180 */ addiu $t0, %lo(D_8016F180) # addiu $t0, $t0, -0xe80 /* B552D0 800DE130 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80
/* B552D4 800DE134 8D032894 */ lw $v1, 0x2894($t0) /* B552D4 800DE134 8D032894 */ lw $v1, 0x2894($t0)
/* B552D8 800DE138 00803825 */ move $a3, $a0 /* B552D8 800DE138 00803825 */ move $a3, $a0
/* B552DC 800DE13C 00001025 */ move $v0, $zero /* B552DC 800DE13C 00001025 */ move $v0, $zero
@ -278,8 +278,8 @@ glabel func_800DE1B4
/* B55370 800DE1D0 AFB00018 */ sw $s0, 0x18($sp) /* B55370 800DE1D0 AFB00018 */ sw $s0, 0x18($sp)
/* B55374 800DE1D4 18400012 */ blez $v0, .L800DE220 /* B55374 800DE1D4 18400012 */ blez $v0, .L800DE220
/* B55378 800DE1D8 00008825 */ move $s1, $zero /* B55378 800DE1D8 00008825 */ move $s1, $zero
/* B5537C 800DE1DC 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B5537C 800DE1DC 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B55380 800DE1E0 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B55380 800DE1E0 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
.L800DE1E4: .L800DE1E4:
/* B55384 800DE1E4 8E0E3530 */ lw $t6, 0x3530($s0) /* B55384 800DE1E4 8E0E3530 */ lw $t6, 0x3530($s0)
/* B55388 800DE1E8 000E7FC2 */ srl $t7, $t6, 0x1f /* B55388 800DE1E8 000E7FC2 */ srl $t7, $t6, 0x1f
@ -367,7 +367,7 @@ glabel func_800DE2B0
/* B554A0 800DE300 03E00008 */ jr $ra /* B554A0 800DE300 03E00008 */ jr $ra
/* B554A4 800DE304 00000000 */ nop /* B554A4 800DE304 00000000 */ nop
glabel func_800DE308 glabel Audio_SoundAlloc
/* B554A8 800DE308 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B554A8 800DE308 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B554AC 800DE30C AFBF0014 */ sw $ra, 0x14($sp) /* B554AC 800DE30C AFBF0014 */ sw $ra, 0x14($sp)
/* B554B0 800DE310 0C0378F7 */ jal func_800DE3DC /* B554B0 800DE310 0C0378F7 */ jal func_800DE3DC
@ -596,8 +596,8 @@ glabel func_800DE5F0
/* B557A8 800DE608 24841B30 */ addiu $a0, %lo(D_80171B30) # addiu $a0, $a0, 0x1b30 /* B557A8 800DE608 24841B30 */ addiu $a0, %lo(D_80171B30) # addiu $a0, $a0, 0x1b30
/* B557AC 800DE60C 0C03790D */ jal func_800DE434 /* B557AC 800DE60C 0C03790D */ jal func_800DE434
/* B557B0 800DE610 AFA60018 */ sw $a2, 0x18($sp) /* B557B0 800DE610 AFA60018 */ sw $a2, 0x18($sp)
/* B557B4 800DE614 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B557B4 800DE614 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B557B8 800DE618 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B557B8 800DE618 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B557BC 800DE61C 8FA70018 */ lw $a3, 0x18($sp) /* B557BC 800DE61C 8FA70018 */ lw $a3, 0x18($sp)
/* B557C0 800DE620 8C4E3524 */ lw $t6, 0x3524($v0) /* B557C0 800DE620 8C4E3524 */ lw $t6, 0x3524($v0)
/* B557C4 800DE624 8C4F3528 */ lw $t7, 0x3528($v0) /* B557C4 800DE624 8C4F3528 */ lw $t7, 0x3528($v0)
@ -613,8 +613,8 @@ glabel func_800DE5F0
/* B557EC 800DE64C 27BD0018 */ addiu $sp, $sp, 0x18 /* B557EC 800DE64C 27BD0018 */ addiu $sp, $sp, 0x18
glabel func_800DE650 glabel func_800DE650
/* B557F0 800DE650 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B557F0 800DE650 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B557F4 800DE654 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B557F4 800DE654 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B557F8 800DE658 8C4E2990 */ lw $t6, 0x2990($v0) /* B557F8 800DE658 8C4E2990 */ lw $t6, 0x2990($v0)
/* B557FC 800DE65C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B557FC 800DE65C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B55800 800DE660 AFA40018 */ sw $a0, 0x18($sp) /* B55800 800DE660 AFA40018 */ sw $a0, 0x18($sp)
@ -648,8 +648,8 @@ glabel func_800DE650
/* B55870 800DE6D0 00000000 */ nop /* B55870 800DE6D0 00000000 */ nop
glabel func_800DE6D4 glabel func_800DE6D4
/* B55874 800DE6D4 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B55874 800DE6D4 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B55878 800DE6D8 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B55878 800DE6D8 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5587C 800DE6DC 8C4E29F0 */ lw $t6, 0x29f0($v0) /* B5587C 800DE6DC 8C4E29F0 */ lw $t6, 0x29f0($v0)
/* B55880 800DE6E0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B55880 800DE6E0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B55884 800DE6E4 AFA40018 */ sw $a0, 0x18($sp) /* B55884 800DE6E4 AFA40018 */ sw $a0, 0x18($sp)
@ -683,8 +683,8 @@ glabel func_800DE6D4
/* B558F4 800DE754 00000000 */ nop /* B558F4 800DE754 00000000 */ nop
glabel func_800DE758 glabel func_800DE758
/* B558F8 800DE758 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B558F8 800DE758 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B558FC 800DE75C 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B558FC 800DE75C 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B55900 800DE760 8C4E2A00 */ lw $t6, 0x2a00($v0) /* B55900 800DE760 8C4E2A00 */ lw $t6, 0x2a00($v0)
/* B55904 800DE764 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B55904 800DE764 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B55908 800DE768 AFB00018 */ sw $s0, 0x18($sp) /* B55908 800DE768 AFB00018 */ sw $s0, 0x18($sp)
@ -734,8 +734,8 @@ glabel func_800DE758
/* B559B8 800DE818 00000000 */ nop /* B559B8 800DE818 00000000 */ nop
glabel func_800DE81C glabel func_800DE81C
/* B559BC 800DE81C 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B559BC 800DE81C 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B559C0 800DE820 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B559C0 800DE820 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B559C4 800DE824 8C4E2A10 */ lw $t6, 0x2a10($v0) /* B559C4 800DE824 8C4E2A10 */ lw $t6, 0x2a10($v0)
/* B559C8 800DE828 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B559C8 800DE828 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B559CC 800DE82C AFB00018 */ sw $s0, 0x18($sp) /* B559CC 800DE82C AFB00018 */ sw $s0, 0x18($sp)
@ -967,8 +967,8 @@ glabel func_800DE8E0
/* B55CF0 800DEB50 155F0016 */ bne $t2, $ra, .L800DEBAC /* B55CF0 800DEB50 155F0016 */ bne $t2, $ra, .L800DEBAC
/* B55CF4 800DEB54 3C048017 */ lui $a0, %hi(D_801719DC) # $a0, 0x8017 /* B55CF4 800DEB54 3C048017 */ lui $a0, %hi(D_801719DC) # $a0, 0x8017
/* B55CF8 800DEB58 848419DC */ lh $a0, %lo(D_801719DC)($a0) /* B55CF8 800DEB58 848419DC */ lh $a0, %lo(D_801719DC)($a0)
/* B55CFC 800DEB5C 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B55CFC 800DEB5C 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B55D00 800DEB60 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B55D00 800DEB60 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B55D04 800DEB64 1880000D */ blez $a0, .L800DEB9C /* B55D04 800DEB64 1880000D */ blez $a0, .L800DEB9C
/* B55D08 800DEB68 00001825 */ move $v1, $zero /* B55D08 800DEB68 00001825 */ move $v1, $zero
.L800DEB6C: .L800DEB6C:
@ -994,8 +994,8 @@ glabel func_800DE8E0
/* B55D4C 800DEBAC 154C0048 */ bne $t2, $t4, .L800DECD0 /* B55D4C 800DEBAC 154C0048 */ bne $t2, $t4, .L800DECD0
/* B55D50 800DEBB0 3C048017 */ lui $a0, %hi(D_801719DC) # $a0, 0x8017 /* B55D50 800DEBB0 3C048017 */ lui $a0, %hi(D_801719DC) # $a0, 0x8017
/* B55D54 800DEBB4 848419DC */ lh $a0, %lo(D_801719DC)($a0) /* B55D54 800DEBB4 848419DC */ lh $a0, %lo(D_801719DC)($a0)
/* B55D58 800DEBB8 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B55D58 800DEBB8 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B55D5C 800DEBBC 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B55D5C 800DEBBC 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B55D60 800DEBC0 1880000D */ blez $a0, .L800DEBF8 /* B55D60 800DEBC0 1880000D */ blez $a0, .L800DEBF8
/* B55D64 800DEBC4 00001825 */ move $v1, $zero /* B55D64 800DEBC4 00001825 */ move $v1, $zero
.L800DEBC8: .L800DEBC8:
@ -1869,8 +1869,8 @@ glabel func_800DF7BC
/* B56960 800DF7C0 AFA40000 */ sw $a0, ($sp) /* B56960 800DF7C0 AFA40000 */ sw $a0, ($sp)
glabel func_800DF7C4 glabel func_800DF7C4
/* B56964 800DF7C4 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B56964 800DF7C4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B56968 800DF7C8 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B56968 800DF7C8 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5696C 800DF7CC 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B5696C 800DF7CC 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B56970 800DF7D0 846E2848 */ lh $t6, 0x2848($v1) /* B56970 800DF7D0 846E2848 */ lh $t6, 0x2848($v1)
/* B56974 800DF7D4 24010002 */ li $at, 2 /* B56974 800DF7D4 24010002 */ li $at, 2
@ -1899,8 +1899,8 @@ glabel func_800DF7C4
/* B569C4 800DF824 000F78C0 */ sll $t7, $t7, 3 /* B569C4 800DF824 000F78C0 */ sll $t7, $t7, 3
/* B569C8 800DF828 01F37821 */ addu $t7, $t7, $s3 /* B569C8 800DF828 01F37821 */ addu $t7, $t7, $s3
/* B569CC 800DF82C 000F78C0 */ sll $t7, $t7, 3 /* B569CC 800DF82C 000F78C0 */ sll $t7, $t7, 3
/* B569D0 800DF830 3C198017 */ lui $t9, %hi(D_8016F180) # $t9, 0x8017 /* B569D0 800DF830 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017
/* B569D4 800DF834 2739F180 */ addiu $t9, %lo(D_8016F180) # addiu $t9, $t9, -0xe80 /* B569D4 800DF834 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80
/* B569D8 800DF838 25F80018 */ addiu $t8, $t7, 0x18 /* B569D8 800DF838 25F80018 */ addiu $t8, $t7, 0x18
/* B569DC 800DF83C 03198821 */ addu $s1, $t8, $t9 /* B569DC 800DF83C 03198821 */ addu $s1, $t8, $t9
.L800DF840: .L800DF840:
@ -1926,8 +1926,8 @@ glabel func_800DF7C4
/* B56A24 800DF884 27BD0028 */ addiu $sp, $sp, 0x28 /* B56A24 800DF884 27BD0028 */ addiu $sp, $sp, 0x28
glabel func_800DF888 glabel func_800DF888
/* B56A28 800DF888 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 /* B56A28 800DF888 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017
/* B56A2C 800DF88C 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 /* B56A2C 800DF88C 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80
/* B56A30 800DF890 8CC228A8 */ lw $v0, 0x28a8($a2) /* B56A30 800DF890 8CC228A8 */ lw $v0, 0x28a8($a2)
/* B56A34 800DF894 84CE2852 */ lh $t6, 0x2852($a2) /* B56A34 800DF894 84CE2852 */ lh $t6, 0x2852($a2)
/* B56A38 800DF898 00002825 */ move $a1, $zero /* B56A38 800DF898 00002825 */ move $a1, $zero
@ -1958,8 +1958,8 @@ glabel func_800DF888
glabel func_800DF8F4 glabel func_800DF8F4
/* B56A94 800DF8F4 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B56A94 800DF8F4 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B56A98 800DF8F8 AFB10018 */ sw $s1, 0x18($sp) /* B56A98 800DF8F8 AFB10018 */ sw $s1, 0x18($sp)
/* B56A9C 800DF8FC 3C118017 */ lui $s1, %hi(D_8016F180) # $s1, 0x8017 /* B56A9C 800DF8FC 3C118017 */ lui $s1, %hi(gAudioContext) # $s1, 0x8017
/* B56AA0 800DF900 2631F180 */ addiu $s1, %lo(D_8016F180) # addiu $s1, $s1, -0xe80 /* B56AA0 800DF900 2631F180 */ addiu $s1, %lo(gAudioContext) # addiu $s1, $s1, -0xe80
/* B56AA4 800DF904 862E2848 */ lh $t6, 0x2848($s1) /* B56AA4 800DF904 862E2848 */ lh $t6, 0x2848($s1)
/* B56AA8 800DF908 24010002 */ li $at, 2 /* B56AA8 800DF908 24010002 */ li $at, 2
/* B56AAC 800DF90C AFBF001C */ sw $ra, 0x1c($sp) /* B56AAC 800DF90C AFBF001C */ sw $ra, 0x1c($sp)
@ -2131,8 +2131,8 @@ glabel L800DFB18
glabel L800DFB54 glabel L800DFB54
/* B56CF4 800DFB54 0C037EFE */ jal func_800DFBF8 /* B56CF4 800DFB54 0C037EFE */ jal func_800DFBF8
/* B56CF8 800DFB58 00000000 */ nop /* B56CF8 800DFB58 00000000 */ nop
/* B56CFC 800DFB5C 3C0F8017 */ lui $t7, %hi(D_8016F180) /* B56CFC 800DFB5C 3C0F8017 */ lui $t7, %hi(gAudioContext)
/* B56D00 800DFB60 25E3F180 */ addiu $v1, $t7, %lo(D_8016F180) /* B56D00 800DFB60 25E3F180 */ addiu $v1, $t7, %lo(gAudioContext)
/* B56D04 800DFB64 3C078017 */ lui $a3, %hi(D_8016F18C) # $a3, 0x8017 /* B56D04 800DFB64 3C078017 */ lui $a3, %hi(D_8016F18C) # $a3, 0x8017
/* B56D08 800DFB68 A2203518 */ sb $zero, 0x3518($s1) /* B56D08 800DFB68 A2203518 */ sb $zero, 0x3518($s1)
/* B56D0C 800DFB6C 24E7F18C */ addiu $a3, %lo(D_8016F18C) # addiu $a3, $a3, -0xe74 /* B56D0C 800DFB6C 24E7F18C */ addiu $a3, %lo(D_8016F18C) # addiu $a3, $a3, -0xe74
@ -2179,8 +2179,8 @@ glabel L800DFB54
glabel func_800DFBF8 glabel func_800DFBF8
/* B56D98 800DFBF8 27BDFF60 */ addiu $sp, $sp, -0xa0 /* B56D98 800DFBF8 27BDFF60 */ addiu $sp, $sp, -0xa0
/* B56D9C 800DFBFC AFB60030 */ sw $s6, 0x30($sp) /* B56D9C 800DFBFC AFB60030 */ sw $s6, 0x30($sp)
/* B56DA0 800DFC00 3C168017 */ lui $s6, %hi(D_8016F180) # $s6, 0x8017 /* B56DA0 800DFC00 3C168017 */ lui $s6, %hi(gAudioContext) # $s6, 0x8017
/* B56DA4 800DFC04 26D6F180 */ addiu $s6, %lo(D_8016F180) # addiu $s6, $s6, -0xe80 /* B56DA4 800DFC04 26D6F180 */ addiu $s6, %lo(gAudioContext) # addiu $s6, $s6, -0xe80
/* B56DA8 800DFC08 92CE3519 */ lbu $t6, 0x3519($s6) /* B56DA8 800DFC08 92CE3519 */ lbu $t6, 0x3519($s6)
/* B56DAC 800DFC0C 3C188013 */ lui $t8, %hi(D_801337C8) # $t8, 0x8013 /* B56DAC 800DFC0C 3C188013 */ lui $t8, %hi(D_801337C8) # $t8, 0x8013
/* B56DB0 800DFC10 271837C8 */ addiu $t8, %lo(D_801337C8) # addiu $t8, $t8, 0x37c8 /* B56DB0 800DFC10 271837C8 */ addiu $t8, %lo(D_801337C8) # addiu $t8, $t8, 0x37c8
@ -2465,9 +2465,9 @@ glabel func_800DFBF8
/* B571E0 800E0040 00052940 */ sll $a1, $a1, 5 /* B571E0 800E0040 00052940 */ sll $a1, $a1, 5
/* B571E4 800E0044 0C0378E0 */ jal func_800DE380 /* B571E4 800E0044 0C0378E0 */ jal func_800DE380
/* B571E8 800E0048 02602025 */ move $a0, $s3 /* B571E8 800E0048 02602025 */ move $a0, $s3
/* B571EC 800E004C 0C03A1E2 */ jal func_800E8788 /* B571EC 800E004C 0C03A1E2 */ jal Audio_NoteInitAll
/* B571F0 800E0050 AEC2352C */ sw $v0, 0x352c($s6) /* B571F0 800E0050 AEC2352C */ sw $v0, 0x352c($s6)
/* B571F4 800E0054 0C039F57 */ jal func_800E7D5C /* B571F4 800E0054 0C039F57 */ jal Audio_InitNoteFreeList
/* B571F8 800E0058 00000000 */ nop /* B571F8 800E0058 00000000 */ nop
/* B571FC 800E005C 86D82854 */ lh $t8, 0x2854($s6) /* B571FC 800E005C 86D82854 */ lh $t8, 0x2854($s6)
/* B57200 800E0060 8ED92894 */ lw $t9, 0x2894($s6) /* B57200 800E0060 8ED92894 */ lw $t9, 0x2894($s6)
@ -2477,11 +2477,11 @@ glabel func_800DFBF8
/* B57210 800E0070 00052940 */ sll $a1, $a1, 5 /* B57210 800E0070 00052940 */ sll $a1, $a1, 5
/* B57214 800E0074 0C0378E0 */ jal func_800DE380 /* B57214 800E0074 0C0378E0 */ jal func_800DE380
/* B57218 800E0078 00000000 */ nop /* B57218 800E0078 00000000 */ nop
/* B5721C 800E007C 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B5721C 800E007C 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B57220 800E0080 3C118017 */ lui $s1, %hi(D_8016F188) # $s1, 0x8017 /* B57220 800E0080 3C118017 */ lui $s1, %hi(D_8016F188) # $s1, 0x8017
/* B57224 800E0084 AEC20014 */ sw $v0, 0x14($s6) /* B57224 800E0084 AEC20014 */ sw $v0, 0x14($s6)
/* B57228 800E0088 2631F188 */ addiu $s1, %lo(D_8016F188) # addiu $s1, $s1, -0xe78 /* B57228 800E0088 2631F188 */ addiu $s1, %lo(D_8016F188) # addiu $s1, $s1, -0xe78
/* B5722C 800E008C 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B5722C 800E008C 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
.L800E0090: .L800E0090:
/* B57230 800E0090 8EC52890 */ lw $a1, 0x2890($s6) /* B57230 800E0090 8EC52890 */ lw $a1, 0x2890($s6)
/* B57234 800E0094 02602025 */ move $a0, $s3 /* B57234 800E0094 02602025 */ move $a0, $s3
@ -2495,10 +2495,10 @@ glabel func_800DFBF8
/* B57254 800E00B4 24050400 */ li $a1, 1024 /* B57254 800E00B4 24050400 */ li $a1, 1024
/* B57258 800E00B8 0C03778F */ jal func_800DDE3C /* B57258 800E00B8 0C03778F */ jal func_800DDE3C
/* B5725C 800E00BC AEC23520 */ sw $v0, 0x3520($s6) /* B5725C 800E00BC AEC23520 */ sw $v0, 0x3520($s6)
/* B57260 800E00C0 3C148017 */ lui $s4, %hi(D_8016F180) # $s4, 0x8017 /* B57260 800E00C0 3C148017 */ lui $s4, %hi(gAudioContext) # $s4, 0x8017
/* B57264 800E00C4 3C028017 */ lui $v0, %hi(D_8016FCA0) # $v0, 0x8017 /* B57264 800E00C4 3C028017 */ lui $v0, %hi(D_8016FCA0) # $v0, 0x8017
/* B57268 800E00C8 2442FCA0 */ addiu $v0, %lo(D_8016FCA0) # addiu $v0, $v0, -0x360 /* B57268 800E00C8 2442FCA0 */ addiu $v0, %lo(D_8016FCA0) # addiu $v0, $v0, -0x360
/* B5726C 800E00CC 2694F180 */ addiu $s4, %lo(D_8016F180) # addiu $s4, $s4, -0xe80 /* B5726C 800E00CC 2694F180 */ addiu $s4, %lo(gAudioContext) # addiu $s4, $s4, -0xe80
.L800E00D0: .L800E00D0:
/* B57270 800E00D0 269402C8 */ addiu $s4, $s4, 0x2c8 /* B57270 800E00D0 269402C8 */ addiu $s4, $s4, 0x2c8
/* B57274 800E00D4 0282082B */ sltu $at, $s4, $v0 /* B57274 800E00D4 0282082B */ sltu $at, $s4, $v0
@ -2512,12 +2512,12 @@ glabel func_800DFBF8
/* B57294 800E00F4 196000CA */ blez $t3, .L800E0420 /* B57294 800E00F4 196000CA */ blez $t3, .L800E0420
/* B57298 800E00F8 3C0D8017 */ lui $t5, %hi(D_8016F430) # $t5, 0x8017 /* B57298 800E00F8 3C0D8017 */ lui $t5, %hi(D_8016F430) # $t5, 0x8017
/* B5729C 800E00FC 25ADF430 */ addiu $t5, %lo(D_8016F430) # addiu $t5, $t5, -0xbd0 /* B5729C 800E00FC 25ADF430 */ addiu $t5, %lo(D_8016F430) # addiu $t5, $t5, -0xbd0
/* B572A0 800E0100 3C148017 */ lui $s4, %hi(D_8016F180) # $s4, 0x8017 /* B572A0 800E0100 3C148017 */ lui $s4, %hi(gAudioContext) # $s4, 0x8017
/* B572A4 800E0104 3C128017 */ lui $s2, %hi(D_8016F198) # $s2, 0x8017 /* B572A4 800E0104 3C128017 */ lui $s2, %hi(D_8016F198) # $s2, 0x8017
/* B572A8 800E0108 3C1E8017 */ lui $fp, %hi(D_8016F420) # $fp, 0x8017 /* B572A8 800E0108 3C1E8017 */ lui $fp, %hi(D_8016F420) # $fp, 0x8017
/* B572AC 800E010C 27DEF420 */ addiu $fp, %lo(D_8016F420) # addiu $fp, $fp, -0xbe0 /* B572AC 800E010C 27DEF420 */ addiu $fp, %lo(D_8016F420) # addiu $fp, $fp, -0xbe0
/* B572B0 800E0110 2652F198 */ addiu $s2, %lo(D_8016F198) # addiu $s2, $s2, -0xe68 /* B572B0 800E0110 2652F198 */ addiu $s2, %lo(D_8016F198) # addiu $s2, $s2, -0xe68
/* B572B4 800E0114 2694F180 */ addiu $s4, %lo(D_8016F180) # addiu $s4, $s4, -0xe80 /* B572B4 800E0114 2694F180 */ addiu $s4, %lo(gAudioContext) # addiu $s4, $s4, -0xe80
/* B572B8 800E0118 AFAD0044 */ sw $t5, 0x44($sp) /* B572B8 800E0118 AFAD0044 */ sw $t5, 0x44($sp)
/* B572BC 800E011C 0000B825 */ move $s7, $zero /* B572BC 800E011C 0000B825 */ move $s7, $zero
.L800E0120: .L800E0120:
@ -2681,7 +2681,7 @@ glabel func_800DFBF8
/* B57518 800E0378 24050040 */ li $a1, 64 /* B57518 800E0378 24050040 */ li $a1, 64
/* B5751C 800E037C AE420278 */ sw $v0, 0x278($s2) /* B5751C 800E037C AE420278 */ sw $v0, 0x278($s2)
/* B57520 800E0380 02602025 */ move $a0, $s3 /* B57520 800E0380 02602025 */ move $a0, $s3
/* B57524 800E0384 0C0378C2 */ jal func_800DE308 /* B57524 800E0384 0C0378C2 */ jal Audio_SoundAlloc
/* B57528 800E0388 24050010 */ li $a1, 16 /* B57528 800E0388 24050010 */ li $a1, 16
/* B5752C 800E038C AE420270 */ sw $v0, 0x270($s2) /* B5752C 800E038C AE420270 */ sw $v0, 0x270($s2)
/* B57530 800E0390 86A50014 */ lh $a1, 0x14($s5) /* B57530 800E0390 86A50014 */ lh $a1, 0x14($s5)
@ -2700,7 +2700,7 @@ glabel func_800DFBF8
/* B5755C 800E03BC 24050040 */ li $a1, 64 /* B5755C 800E03BC 24050040 */ li $a1, 64
/* B57560 800E03C0 AE42027C */ sw $v0, 0x27c($s2) /* B57560 800E03C0 AE42027C */ sw $v0, 0x27c($s2)
/* B57564 800E03C4 02602025 */ move $a0, $s3 /* B57564 800E03C4 02602025 */ move $a0, $s3
/* B57568 800E03C8 0C0378C2 */ jal func_800DE308 /* B57568 800E03C8 0C0378C2 */ jal Audio_SoundAlloc
/* B5756C 800E03CC 24050010 */ li $a1, 16 /* B5756C 800E03CC 24050010 */ li $a1, 16
/* B57570 800E03D0 AE420274 */ sw $v0, 0x274($s2) /* B57570 800E03D0 AE420274 */ sw $v0, 0x274($s2)
/* B57574 800E03D4 86A50016 */ lh $a1, 0x16($s5) /* B57574 800E03D4 86A50016 */ lh $a1, 0x16($s5)
@ -2782,10 +2782,10 @@ glabel func_800E04E8
/* B57688 800E04E8 3C038017 */ lui $v1, %hi(D_80171EDC) # $v1, 0x8017 /* B57688 800E04E8 3C038017 */ lui $v1, %hi(D_80171EDC) # $v1, 0x8017
/* B5768C 800E04EC 8C631EDC */ lw $v1, %lo(D_80171EDC)($v1) /* B5768C 800E04EC 8C631EDC */ lw $v1, %lo(D_80171EDC)($v1)
/* B57690 800E04F0 00A03025 */ move $a2, $a1 /* B57690 800E04F0 00A03025 */ move $a2, $a1
/* B57694 800E04F4 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B57694 800E04F4 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B57698 800E04F8 1860000E */ blez $v1, .L800E0534 /* B57698 800E04F8 1860000E */ blez $v1, .L800E0534
/* B5769C 800E04FC 00001025 */ move $v0, $zero /* B5769C 800E04FC 00001025 */ move $v0, $zero
/* B576A0 800E0500 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B576A0 800E0500 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
.L800E0504: .L800E0504:
/* B576A4 800E0504 84AE2D68 */ lh $t6, 0x2d68($a1) /* B576A4 800E0504 84AE2D68 */ lh $t6, 0x2d68($a1)
/* B576A8 800E0508 24420001 */ addiu $v0, $v0, 1 /* B576A8 800E0508 24420001 */ addiu $v0, $v0, 1
@ -2820,8 +2820,8 @@ glabel func_800E0540
/* B57708 800E0568 0C0378F7 */ jal func_800DE3DC /* B57708 800E0568 0C0378F7 */ jal func_800DE3DC
/* B5770C 800E056C AFAE0018 */ sw $t6, 0x18($sp) /* B5770C 800E056C AFAE0018 */ sw $t6, 0x18($sp)
/* B57710 800E0570 8FAF0018 */ lw $t7, 0x18($sp) /* B57710 800E0570 8FAF0018 */ lw $t7, 0x18($sp)
/* B57714 800E0574 3C198017 */ lui $t9, %hi(D_8016F180) # $t9, 0x8017 /* B57714 800E0574 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017
/* B57718 800E0578 2739F180 */ addiu $t9, %lo(D_8016F180) # addiu $t9, $t9, -0xe80 /* B57718 800E0578 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80
/* B5771C 800E057C 000FC080 */ sll $t8, $t7, 2 /* B5771C 800E057C 000FC080 */ sll $t8, $t7, 2
/* B57720 800E0580 030FC023 */ subu $t8, $t8, $t7 /* B57720 800E0580 030FC023 */ subu $t8, $t8, $t7
/* B57724 800E0584 0018C080 */ sll $t8, $t8, 2 /* B57724 800E0584 0018C080 */ sll $t8, $t8, 2
@ -2901,8 +2901,8 @@ glabel func_800E0634
/* B5781C 800E067C 24841B40 */ addiu $a0, %lo(D_80171B40) # addiu $a0, $a0, 0x1b40 /* B5781C 800E067C 24841B40 */ addiu $a0, %lo(D_80171B40) # addiu $a0, $a0, 0x1b40
/* B57820 800E0680 0C0378AC */ jal func_800DE2B0 /* B57820 800E0680 0C0378AC */ jal func_800DE2B0
/* B57824 800E0684 8FA5001C */ lw $a1, 0x1c($sp) /* B57824 800E0684 8FA5001C */ lw $a1, 0x1c($sp)
/* B57828 800E0688 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B57828 800E0688 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5782C 800E068C 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5782C 800E068C 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B57830 800E0690 14400003 */ bnez $v0, .L800E06A0 /* B57830 800E0690 14400003 */ bnez $v0, .L800E06A0
/* B57834 800E0694 00402825 */ move $a1, $v0 /* B57834 800E0694 00402825 */ move $a1, $v0
/* B57838 800E0698 10000007 */ b .L800E06B8 /* B57838 800E0698 10000007 */ b .L800E06B8
@ -2912,8 +2912,8 @@ glabel func_800E0634
/* B57844 800E06A4 248422F4 */ addiu $a0, %lo(D_801722F4) # addiu $a0, $a0, 0x22f4 /* B57844 800E06A4 248422F4 */ addiu $a0, %lo(D_801722F4) # addiu $a0, $a0, 0x22f4
/* B57848 800E06A8 0C03790D */ jal func_800DE434 /* B57848 800E06A8 0C03790D */ jal func_800DE434
/* B5784C 800E06AC 8FA6001C */ lw $a2, 0x1c($sp) /* B5784C 800E06AC 8FA6001C */ lw $a2, 0x1c($sp)
/* B57850 800E06B0 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B57850 800E06B0 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B57854 800E06B4 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B57854 800E06B4 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
.L800E06B8: .L800E06B8:
/* B57858 800E06B8 8FBF0014 */ lw $ra, 0x14($sp) /* B57858 800E06B8 8FBF0014 */ lw $ra, 0x14($sp)
/* B5785C 800E06BC AC603170 */ sw $zero, 0x3170($v1) /* B5785C 800E06BC AC603170 */ sw $zero, 0x3170($v1)
@ -2926,8 +2926,8 @@ glabel func_800E06CC
/* B57870 800E06D0 AFB6002C */ sw $s6, 0x2c($sp) /* B57870 800E06D0 AFB6002C */ sw $s6, 0x2c($sp)
/* B57874 800E06D4 AFA40048 */ sw $a0, 0x48($sp) /* B57874 800E06D4 AFA40048 */ sw $a0, 0x48($sp)
/* B57878 800E06D8 3C048017 */ lui $a0, %hi(D_801722F4) # $a0, 0x8017 /* B57878 800E06D8 3C048017 */ lui $a0, %hi(D_801722F4) # $a0, 0x8017
/* B5787C 800E06DC 3C168017 */ lui $s6, %hi(D_8016F180) # $s6, 0x8017 /* B5787C 800E06DC 3C168017 */ lui $s6, %hi(gAudioContext) # $s6, 0x8017
/* B57880 800E06E0 26D6F180 */ addiu $s6, %lo(D_8016F180) # addiu $s6, $s6, -0xe80 /* B57880 800E06E0 26D6F180 */ addiu $s6, %lo(gAudioContext) # addiu $s6, $s6, -0xe80
/* B57884 800E06E4 248422F4 */ addiu $a0, %lo(D_801722F4) # addiu $a0, $a0, 0x22f4 /* B57884 800E06E4 248422F4 */ addiu $a0, %lo(D_801722F4) # addiu $a0, $a0, 0x22f4
/* B57888 800E06E8 AFBF0034 */ sw $ra, 0x34($sp) /* B57888 800E06E8 AFBF0034 */ sw $ra, 0x34($sp)
/* B5788C 800E06EC AFB40024 */ sw $s4, 0x24($sp) /* B5788C 800E06EC AFB40024 */ sw $s4, 0x24($sp)
@ -2969,13 +2969,13 @@ glabel func_800E06CC
/* B57914 800E0774 2415FFFF */ li $s5, -1 /* B57914 800E0774 2415FFFF */ li $s5, -1
/* B57918 800E0778 18E00034 */ blez $a3, .L800E084C /* B57918 800E0778 18E00034 */ blez $a3, .L800E084C
/* B5791C 800E077C 00008825 */ move $s1, $zero /* B5791C 800E077C 00008825 */ move $s1, $zero
/* B57920 800E0780 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 /* B57920 800E0780 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017
/* B57924 800E0784 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 /* B57924 800E0784 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80
/* B57928 800E0788 24170001 */ li $s7, 1 /* B57928 800E0788 24170001 */ li $s7, 1
/* B5792C 800E078C 8CCF0D78 */ lw $t7, 0xd78($a2) /* B5792C 800E078C 8CCF0D78 */ lw $t7, 0xd78($a2)
.L800E0790: .L800E0790:
/* B57930 800E0790 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 /* B57930 800E0790 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017
/* B57934 800E0794 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 /* B57934 800E0794 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80
/* B57938 800E0798 15E00023 */ bnez $t7, .L800E0828 /* B57938 800E0798 15E00023 */ bnez $t7, .L800E0828
/* B5793C 800E079C 24C40D68 */ addiu $a0, $a2, 0xd68 /* B5793C 800E079C 24C40D68 */ addiu $a0, $a2, 0xd68
/* B57940 800E07A0 8C980004 */ lw $t8, 4($a0) /* B57940 800E07A0 8C980004 */ lw $t8, 4($a0)
@ -2993,8 +2993,8 @@ glabel func_800E06CC
/* B57970 800E07D0 10200007 */ beqz $at, .L800E07F0 /* B57970 800E07D0 10200007 */ beqz $at, .L800E07F0
/* B57974 800E07D4 00074880 */ sll $t1, $a3, 2 /* B57974 800E07D4 00074880 */ sll $t1, $a3, 2
/* B57978 800E07D8 01274821 */ addu $t1, $t1, $a3 /* B57978 800E07D8 01274821 */ addu $t1, $t1, $a3
/* B5797C 800E07DC 3C0A8017 */ lui $t2, %hi(D_8016F180) # $t2, 0x8017 /* B5797C 800E07DC 3C0A8017 */ lui $t2, %hi(gAudioContext) # $t2, 0x8017
/* B57980 800E07E0 254AF180 */ addiu $t2, %lo(D_8016F180) # addiu $t2, $t2, -0xe80 /* B57980 800E07E0 254AF180 */ addiu $t2, %lo(gAudioContext) # addiu $t2, $t2, -0xe80
/* B57984 800E07E4 00094880 */ sll $t1, $t1, 2 /* B57984 800E07E4 00094880 */ sll $t1, $t1, 2
/* B57988 800E07E8 10000013 */ b .L800E0838 /* B57988 800E07E8 10000013 */ b .L800E0838
/* B5798C 800E07EC 012A1021 */ addu $v0, $t1, $t2 /* B5798C 800E07EC 012A1021 */ addu $v0, $t1, $t2
@ -3005,8 +3005,8 @@ glabel func_800E06CC
/* B5799C 800E07FC 14200007 */ bnez $at, .L800E081C /* B5799C 800E07FC 14200007 */ bnez $at, .L800E081C
/* B579A0 800E0800 00075880 */ sll $t3, $a3, 2 /* B579A0 800E0800 00075880 */ sll $t3, $a3, 2
/* B579A4 800E0804 01675821 */ addu $t3, $t3, $a3 /* B579A4 800E0804 01675821 */ addu $t3, $t3, $a3
/* B579A8 800E0808 3C0C8017 */ lui $t4, %hi(D_8016F180) # $t4, 0x8017 /* B579A8 800E0808 3C0C8017 */ lui $t4, %hi(gAudioContext) # $t4, 0x8017
/* B579AC 800E080C 258CF180 */ addiu $t4, %lo(D_8016F180) # addiu $t4, $t4, -0xe80 /* B579AC 800E080C 258CF180 */ addiu $t4, %lo(gAudioContext) # addiu $t4, $t4, -0xe80
/* B579B0 800E0810 000B5880 */ sll $t3, $t3, 2 /* B579B0 800E0810 000B5880 */ sll $t3, $t3, 2
/* B579B4 800E0814 10000008 */ b .L800E0838 /* B579B4 800E0814 10000008 */ b .L800E0838
/* B579B8 800E0818 016C1021 */ addu $v0, $t3, $t4 /* B579B8 800E0818 016C1021 */ addu $v0, $t3, $t4
@ -3109,8 +3109,8 @@ glabel func_800E06CC
glabel func_800E0964 glabel func_800E0964
/* B57B04 800E0964 27BDFFC8 */ addiu $sp, $sp, -0x38 /* B57B04 800E0964 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B57B08 800E0968 AFB5002C */ sw $s5, 0x2c($sp) /* B57B08 800E0968 AFB5002C */ sw $s5, 0x2c($sp)
/* B57B0C 800E096C 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 /* B57B0C 800E096C 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
/* B57B10 800E0970 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 /* B57B10 800E0970 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
/* B57B14 800E0974 AFB30024 */ sw $s3, 0x24($sp) /* B57B14 800E0974 AFB30024 */ sw $s3, 0x24($sp)
/* B57B18 800E0978 8EAE2844 */ lw $t6, 0x2844($s5) /* B57B18 800E0978 8EAE2844 */ lw $t6, 0x2844($s5)
/* B57B1C 800E097C 00059880 */ sll $s3, $a1, 2 /* B57B1C 800E097C 00059880 */ sll $s3, $a1, 2
@ -3131,7 +3131,7 @@ glabel func_800E0964
/* B57B58 800E09B8 2416007F */ li $s6, 127 /* B57B58 800E09B8 2416007F */ li $s6, 127
/* B57B5C 800E09BC 02802025 */ move $a0, $s4 /* B57B5C 800E09BC 02802025 */ move $a0, $s4
.L800E09C0: .L800E09C0:
/* B57B60 800E09C0 0C039D26 */ jal func_800E7498 /* B57B60 800E09C0 0C039D26 */ jal Audio_GetInstrumentInner
/* B57B64 800E09C4 02202825 */ move $a1, $s1 /* B57B64 800E09C4 02202825 */ move $a1, $s1
/* B57B68 800E09C8 10400010 */ beqz $v0, .L800E0A0C /* B57B68 800E09C8 10400010 */ beqz $v0, .L800E0A0C
/* B57B6C 800E09CC 00408025 */ move $s0, $v0 /* B57B6C 800E09CC 00408025 */ move $s0, $v0
@ -3166,7 +3166,7 @@ glabel func_800E0964
/* B57BD0 800E0A30 1940000E */ blez $t2, .L800E0A6C /* B57BD0 800E0A30 1940000E */ blez $t2, .L800E0A6C
/* B57BD4 800E0A34 02802025 */ move $a0, $s4 /* B57BD4 800E0A34 02802025 */ move $a0, $s4
.L800E0A38: .L800E0A38:
/* B57BD8 800E0A38 0C039D5B */ jal func_800E756C /* B57BD8 800E0A38 0C039D5B */ jal Audio_GetDrum
/* B57BDC 800E0A3C 02002825 */ move $a1, $s0 /* B57BDC 800E0A3C 02002825 */ move $a1, $s0
/* B57BE0 800E0A40 10400003 */ beqz $v0, .L800E0A50 /* B57BE0 800E0A40 10400003 */ beqz $v0, .L800E0A50
/* B57BE4 800E0A44 02402025 */ move $a0, $s2 /* B57BE4 800E0A44 02402025 */ move $a0, $s2
@ -3186,7 +3186,7 @@ glabel func_800E0964
/* B57C14 800E0A74 19A0000E */ blez $t5, .L800E0AB0 /* B57C14 800E0A74 19A0000E */ blez $t5, .L800E0AB0
/* B57C18 800E0A78 02802025 */ move $a0, $s4 /* B57C18 800E0A78 02802025 */ move $a0, $s4
.L800E0A7C: .L800E0A7C:
/* B57C1C 800E0A7C 0C039D94 */ jal func_800E7650 /* B57C1C 800E0A7C 0C039D94 */ jal Audio_GetUnkInstrument
/* B57C20 800E0A80 02002825 */ move $a1, $s0 /* B57C20 800E0A80 02002825 */ move $a1, $s0
/* B57C24 800E0A84 10400003 */ beqz $v0, .L800E0A94 /* B57C24 800E0A84 10400003 */ beqz $v0, .L800E0A94
/* B57C28 800E0A88 02402025 */ move $a0, $s2 /* B57C28 800E0A88 02402025 */ move $a0, $s2
@ -3215,8 +3215,8 @@ glabel func_800E0964
glabel func_800E0AD8 glabel func_800E0AD8
/* B57C78 800E0AD8 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B57C78 800E0AD8 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B57C7C 800E0ADC AFB50028 */ sw $s5, 0x28($sp) /* B57C7C 800E0ADC AFB50028 */ sw $s5, 0x28($sp)
/* B57C80 800E0AE0 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 /* B57C80 800E0AE0 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
/* B57C84 800E0AE4 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 /* B57C84 800E0AE4 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
/* B57C88 800E0AE8 8EAE2834 */ lw $t6, 0x2834($s5) /* B57C88 800E0AE8 8EAE2834 */ lw $t6, 0x2834($s5)
/* B57C8C 800E0AEC AFBF002C */ sw $ra, 0x2c($sp) /* B57C8C 800E0AEC AFBF002C */ sw $ra, 0x2c($sp)
/* B57C90 800E0AF0 AFB40024 */ sw $s4, 0x24($sp) /* B57C90 800E0AF0 AFB40024 */ sw $s4, 0x24($sp)
@ -3356,8 +3356,8 @@ glabel func_800E0C80
glabel func_800E0CBC glabel func_800E0CBC
/* B57E5C 800E0CBC 27BDFFC0 */ addiu $sp, $sp, -0x40 /* B57E5C 800E0CBC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B57E60 800E0CC0 AFB5002C */ sw $s5, 0x2c($sp) /* B57E60 800E0CC0 AFB5002C */ sw $s5, 0x2c($sp)
/* B57E64 800E0CC4 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 /* B57E64 800E0CC4 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
/* B57E68 800E0CC8 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 /* B57E68 800E0CC8 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
/* B57E6C 800E0CCC 8EAE2834 */ lw $t6, 0x2834($s5) /* B57E6C 800E0CCC 8EAE2834 */ lw $t6, 0x2834($s5)
/* B57E70 800E0CD0 AFBF003C */ sw $ra, 0x3c($sp) /* B57E70 800E0CD0 AFBF003C */ sw $ra, 0x3c($sp)
/* B57E74 800E0CD4 AFBE0038 */ sw $fp, 0x38($sp) /* B57E74 800E0CD4 AFBE0038 */ sw $fp, 0x38($sp)
@ -3499,8 +3499,8 @@ glabel func_800E0E90
glabel func_800E0EB4 glabel func_800E0EB4
/* B58054 800E0EB4 27BDFF60 */ addiu $sp, $sp, -0xa0 /* B58054 800E0EB4 27BDFF60 */ addiu $sp, $sp, -0xa0
/* B58058 800E0EB8 AFB70034 */ sw $s7, 0x34($sp) /* B58058 800E0EB8 AFB70034 */ sw $s7, 0x34($sp)
/* B5805C 800E0EBC 3C178017 */ lui $s7, %hi(D_8016F180) # $s7, 0x8017 /* B5805C 800E0EBC 3C178017 */ lui $s7, %hi(gAudioContext) # $s7, 0x8017
/* B58060 800E0EC0 26F7F180 */ addiu $s7, %lo(D_8016F180) # addiu $s7, $s7, -0xe80 /* B58060 800E0EC0 26F7F180 */ addiu $s7, %lo(gAudioContext) # addiu $s7, $s7, -0xe80
/* B58064 800E0EC4 8EEE2834 */ lw $t6, 0x2834($s7) /* B58064 800E0EC4 8EEE2834 */ lw $t6, 0x2834($s7)
/* B58068 800E0EC8 AFBF003C */ sw $ra, 0x3c($sp) /* B58068 800E0EC8 AFBF003C */ sw $ra, 0x3c($sp)
/* B5806C 800E0ECC AFBE0038 */ sw $fp, 0x38($sp) /* B5806C 800E0ECC AFBE0038 */ sw $fp, 0x38($sp)
@ -3595,7 +3595,7 @@ glabel func_800E0EB4
/* B581B4 800E1014 1B20001B */ blez $t9, .L800E1084 /* B581B4 800E1014 1B20001B */ blez $t9, .L800E1084
/* B581B8 800E1018 02A02025 */ move $a0, $s5 /* B581B8 800E1018 02A02025 */ move $a0, $s5
.L800E101C: .L800E101C:
/* B581BC 800E101C 0C039D26 */ jal func_800E7498 /* B581BC 800E101C 0C039D26 */ jal Audio_GetInstrumentInner
/* B581C0 800E1020 02202825 */ move $a1, $s1 /* B581C0 800E1020 02202825 */ move $a1, $s1
/* B581C4 800E1024 10400010 */ beqz $v0, .L800E1068 /* B581C4 800E1024 10400010 */ beqz $v0, .L800E1068
/* B581C8 800E1028 00408025 */ move $s0, $v0 /* B581C8 800E1028 00408025 */ move $s0, $v0
@ -3629,7 +3629,7 @@ glabel func_800E0EB4
/* B58228 800E1088 1980000E */ blez $t4, .L800E10C4 /* B58228 800E1088 1980000E */ blez $t4, .L800E10C4
/* B5822C 800E108C 02A02025 */ move $a0, $s5 /* B5822C 800E108C 02A02025 */ move $a0, $s5
.L800E1090: .L800E1090:
/* B58230 800E1090 0C039D5B */ jal func_800E756C /* B58230 800E1090 0C039D5B */ jal Audio_GetDrum
/* B58234 800E1094 02402825 */ move $a1, $s2 /* B58234 800E1094 02402825 */ move $a1, $s2
/* B58238 800E1098 10400003 */ beqz $v0, .L800E10A8 /* B58238 800E1098 10400003 */ beqz $v0, .L800E10A8
/* B5823C 800E109C 02802025 */ move $a0, $s4 /* B5823C 800E109C 02802025 */ move $a0, $s4
@ -3648,7 +3648,7 @@ glabel func_800E0EB4
/* B58268 800E10C8 19E0000E */ blez $t7, .L800E1104 /* B58268 800E10C8 19E0000E */ blez $t7, .L800E1104
/* B5826C 800E10CC 02A02025 */ move $a0, $s5 /* B5826C 800E10CC 02A02025 */ move $a0, $s5
.L800E10D0: .L800E10D0:
/* B58270 800E10D0 0C039D94 */ jal func_800E7650 /* B58270 800E10D0 0C039D94 */ jal Audio_GetUnkInstrument
/* B58274 800E10D4 02602825 */ move $a1, $s3 /* B58274 800E10D4 02602825 */ move $a1, $s3
/* B58278 800E10D8 10400003 */ beqz $v0, .L800E10E8 /* B58278 800E10D8 10400003 */ beqz $v0, .L800E10E8
/* B5827C 800E10DC 02802025 */ move $a0, $s4 /* B5827C 800E10DC 02802025 */ move $a0, $s4

View file

@ -10,8 +10,8 @@
.align 4 .align 4
glabel func_800E11F0 glabel func_800E11F0
/* B58390 800E11F0 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 /* B58390 800E11F0 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017
/* B58394 800E11F4 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 /* B58394 800E11F4 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80
/* B58398 800E11F8 8CC32624 */ lw $v1, 0x2624($a2) /* B58398 800E11F8 8CC32624 */ lw $v1, 0x2624($a2)
/* B5839C 800E11FC 00001025 */ move $v0, $zero /* B5839C 800E11FC 00001025 */ move $v0, $zero
/* B583A0 800E1200 00002025 */ move $a0, $zero /* B583A0 800E1200 00002025 */ move $a0, $zero
@ -87,16 +87,16 @@ glabel func_800E12DC
/* B58498 800E12F8 AFA7005C */ sw $a3, 0x5c($sp) /* B58498 800E12F8 AFA7005C */ sw $a3, 0x5c($sp)
/* B5849C 800E12FC 14C00008 */ bnez $a2, .L800E1320 /* B5849C 800E12FC 14C00008 */ bnez $a2, .L800E1320
/* B584A0 800E1300 00005825 */ move $t3, $zero /* B584A0 800E1300 00005825 */ move $t3, $zero
/* B584A4 800E1304 3C098017 */ lui $t1, %hi(D_8016F180) # $t1, 0x8017 /* B584A4 800E1304 3C098017 */ lui $t1, %hi(gAudioContext) # $t1, 0x8017
/* B584A8 800E1308 2529F180 */ addiu $t1, %lo(D_8016F180) # addiu $t1, $t1, -0xe80 /* B584A8 800E1308 2529F180 */ addiu $t1, %lo(gAudioContext) # addiu $t1, $t1, -0xe80
/* B584AC 800E130C 8D262624 */ lw $a2, 0x2624($t1) /* B584AC 800E130C 8D262624 */ lw $a2, 0x2624($t1)
/* B584B0 800E1310 90E20000 */ lbu $v0, ($a3) /* B584B0 800E1310 90E20000 */ lbu $v0, ($a3)
/* B584B4 800E1314 0046082B */ sltu $at, $v0, $a2 /* B584B4 800E1314 0046082B */ sltu $at, $v0, $a2
/* B584B8 800E1318 54200057 */ bnezl $at, .L800E1478 /* B584B8 800E1318 54200057 */ bnezl $at, .L800E1478
/* B584BC 800E131C 8D25261C */ lw $a1, 0x261c($t1) /* B584BC 800E131C 8D25261C */ lw $a1, 0x261c($t1)
.L800E1320: .L800E1320:
/* B584C0 800E1320 3C098017 */ lui $t1, %hi(D_8016F180) # $t1, 0x8017 /* B584C0 800E1320 3C098017 */ lui $t1, %hi(gAudioContext) # $t1, 0x8017
/* B584C4 800E1324 2529F180 */ addiu $t1, %lo(D_8016F180) # addiu $t1, $t1, -0xe80 /* B584C4 800E1324 2529F180 */ addiu $t1, %lo(gAudioContext) # addiu $t1, $t1, -0xe80
/* B584C8 800E1328 8D262624 */ lw $a2, 0x2624($t1) /* B584C8 800E1328 8D262624 */ lw $a2, 0x2624($t1)
/* B584CC 800E132C 8D252620 */ lw $a1, 0x2620($t1) /* B584CC 800E132C 8D252620 */ lw $a1, 0x2620($t1)
/* B584D0 800E1330 00C02025 */ move $a0, $a2 /* B584D0 800E1330 00C02025 */ move $a0, $a2
@ -305,8 +305,8 @@ glabel func_800E12DC
glabel func_800E1618 glabel func_800E1618
/* B587B8 800E1618 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B587B8 800E1618 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B587BC 800E161C AFB20020 */ sw $s2, 0x20($sp) /* B587BC 800E161C AFB20020 */ sw $s2, 0x20($sp)
/* B587C0 800E1620 3C128017 */ lui $s2, %hi(D_8016F180) # $s2, 0x8017 /* B587C0 800E1620 3C128017 */ lui $s2, %hi(gAudioContext) # $s2, 0x8017
/* B587C4 800E1624 2652F180 */ addiu $s2, %lo(D_8016F180) # addiu $s2, $s2, -0xe80 /* B587C4 800E1624 2652F180 */ addiu $s2, %lo(gAudioContext) # addiu $s2, $s2, -0xe80
/* B587C8 800E1628 8E582894 */ lw $t8, 0x2894($s2) /* B587C8 800E1628 8E582894 */ lw $t8, 0x2894($s2)
/* B587CC 800E162C 86482848 */ lh $t0, 0x2848($s2) /* B587CC 800E162C 86482848 */ lh $t0, 0x2848($s2)
/* B587D0 800E1630 AFB40028 */ sw $s4, 0x28($sp) /* B587D0 800E1630 AFB40028 */ sw $s4, 0x28($sp)
@ -366,8 +366,8 @@ glabel func_800E1618
.L800E1700: .L800E1700:
/* B588A0 800E1700 8E442620 */ lw $a0, 0x2620($s2) /* B588A0 800E1700 8E442620 */ lw $a0, 0x2620($s2)
.L800E1704: .L800E1704:
/* B588A4 800E1704 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B588A4 800E1704 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B588A8 800E1708 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B588A8 800E1708 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B588AC 800E170C 1080000C */ beqz $a0, .L800E1740 /* B588AC 800E170C 1080000C */ beqz $a0, .L800E1740
/* B588B0 800E1710 00001825 */ move $v1, $zero /* B588B0 800E1710 00001825 */ move $v1, $zero
/* B588B4 800E1714 A051262C */ sb $s1, 0x262c($v0) /* B588B4 800E1714 A051262C */ sb $s1, 0x262c($v0)
@ -593,8 +593,8 @@ glabel func_800E19A0
glabel func_800E1A18 glabel func_800E1A18
/* B58BB8 800E1A18 240100FF */ li $at, 255 /* B58BB8 800E1A18 240100FF */ li $at, 255
/* B58BBC 800E1A1C 10810008 */ beq $a0, $at, .L800E1A40 /* B58BBC 800E1A1C 10810008 */ beq $a0, $at, .L800E1A40
/* B58BC0 800E1A20 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 /* B58BC0 800E1A20 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017
/* B58BC4 800E1A24 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 /* B58BC4 800E1A24 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80
/* B58BC8 800E1A28 008E1021 */ addu $v0, $a0, $t6 /* B58BC8 800E1A28 008E1021 */ addu $v0, $a0, $t6
/* B58BCC 800E1A2C 904F3468 */ lbu $t7, 0x3468($v0) /* B58BCC 800E1A2C 904F3468 */ lbu $t7, 0x3468($v0)
/* B58BD0 800E1A30 24010005 */ li $at, 5 /* B58BD0 800E1A30 24010005 */ li $at, 5
@ -608,8 +608,8 @@ glabel func_800E1A18
glabel func_800E1A48 glabel func_800E1A48
/* B58BE8 800E1A48 240100FF */ li $at, 255 /* B58BE8 800E1A48 240100FF */ li $at, 255
/* B58BEC 800E1A4C 10810008 */ beq $a0, $at, .L800E1A70 /* B58BEC 800E1A4C 10810008 */ beq $a0, $at, .L800E1A70
/* B58BF0 800E1A50 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 /* B58BF0 800E1A50 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017
/* B58BF4 800E1A54 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 /* B58BF4 800E1A54 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80
/* B58BF8 800E1A58 008E1021 */ addu $v0, $a0, $t6 /* B58BF8 800E1A58 008E1021 */ addu $v0, $a0, $t6
/* B58BFC 800E1A5C 904F3498 */ lbu $t7, 0x3498($v0) /* B58BFC 800E1A5C 904F3498 */ lbu $t7, 0x3498($v0)
/* B58C00 800E1A60 24010005 */ li $at, 5 /* B58C00 800E1A60 24010005 */ li $at, 5
@ -625,8 +625,8 @@ glabel func_800E1A78
/* B58C1C 800E1A7C 240100FF */ li $at, 255 /* B58C1C 800E1A7C 240100FF */ li $at, 255
/* B58C20 800E1A80 10810011 */ beq $a0, $at, .L800E1AC8 /* B58C20 800E1A80 10810011 */ beq $a0, $at, .L800E1AC8
/* B58C24 800E1A84 AFBF0014 */ sw $ra, 0x14($sp) /* B58C24 800E1A84 AFBF0014 */ sw $ra, 0x14($sp)
/* B58C28 800E1A88 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 /* B58C28 800E1A88 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017
/* B58C2C 800E1A8C 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 /* B58C2C 800E1A8C 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80
/* B58C30 800E1A90 008E1821 */ addu $v1, $a0, $t6 /* B58C30 800E1A90 008E1821 */ addu $v1, $a0, $t6
/* B58C34 800E1A94 90623438 */ lbu $v0, 0x3438($v1) /* B58C34 800E1A94 90623438 */ lbu $v0, 0x3438($v1)
/* B58C38 800E1A98 24060005 */ li $a2, 5 /* B58C38 800E1A98 24060005 */ li $a2, 5
@ -653,8 +653,8 @@ glabel func_800E1A78
glabel func_800E1AD8 glabel func_800E1AD8
/* B58C78 800E1AD8 240100FF */ li $at, 255 /* B58C78 800E1AD8 240100FF */ li $at, 255
/* B58C7C 800E1ADC 10810008 */ beq $a0, $at, .L800E1B00 /* B58C7C 800E1ADC 10810008 */ beq $a0, $at, .L800E1B00
/* B58C80 800E1AE0 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 /* B58C80 800E1AE0 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017
/* B58C84 800E1AE4 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 /* B58C84 800E1AE4 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80
/* B58C88 800E1AE8 008E1021 */ addu $v0, $a0, $t6 /* B58C88 800E1AE8 008E1021 */ addu $v0, $a0, $t6
/* B58C8C 800E1AEC 904F3438 */ lbu $t7, 0x3438($v0) /* B58C8C 800E1AEC 904F3438 */ lbu $t7, 0x3438($v0)
/* B58C90 800E1AF0 24010005 */ li $at, 5 /* B58C90 800E1AF0 24010005 */ li $at, 5
@ -697,8 +697,8 @@ glabel func_800E1B08
glabel func_800E1B68 glabel func_800E1B68
/* B58D08 800E1B68 27BDFFC8 */ addiu $sp, $sp, -0x38 /* B58D08 800E1B68 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B58D0C 800E1B6C AFB30020 */ sw $s3, 0x20($sp) /* B58D0C 800E1B6C AFB30020 */ sw $s3, 0x20($sp)
/* B58D10 800E1B70 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 /* B58D10 800E1B70 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017
/* B58D14 800E1B74 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 /* B58D14 800E1B74 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80
/* B58D18 800E1B78 966E2840 */ lhu $t6, 0x2840($s3) /* B58D18 800E1B78 966E2840 */ lhu $t6, 0x2840($s3)
/* B58D1C 800E1B7C AFBF0024 */ sw $ra, 0x24($sp) /* B58D1C 800E1B7C AFBF0024 */ sw $ra, 0x24($sp)
/* B58D20 800E1B80 AFB2001C */ sw $s2, 0x1c($sp) /* B58D20 800E1B80 AFB2001C */ sw $s2, 0x1c($sp)
@ -846,7 +846,7 @@ glabel func_800E1D64
/* B58F10 800E1D70 00808025 */ move $s0, $a0 /* B58F10 800E1D70 00808025 */ move $s0, $a0
/* B58F14 800E1D74 1020001D */ beqz $at, .L800E1DEC /* B58F14 800E1D74 1020001D */ beqz $at, .L800E1DEC
/* B58F18 800E1D78 AFBF001C */ sw $ra, 0x1c($sp) /* B58F18 800E1D78 AFBF001C */ sw $ra, 0x1c($sp)
/* B58F1C 800E1D7C 0C039D26 */ jal func_800E7498 /* B58F1C 800E1D7C 0C039D26 */ jal Audio_GetInstrumentInner
/* B58F20 800E1D80 00000000 */ nop /* B58F20 800E1D80 00000000 */ nop
/* B58F24 800E1D84 14400003 */ bnez $v0, .L800E1D94 /* B58F24 800E1D84 14400003 */ bnez $v0, .L800E1D94
/* B58F28 800E1D88 00401825 */ move $v1, $v0 /* B58F28 800E1D88 00401825 */ move $v1, $v0
@ -880,7 +880,7 @@ glabel func_800E1D64
/* B58F8C 800E1DEC 2401007F */ li $at, 127 /* B58F8C 800E1DEC 2401007F */ li $at, 127
/* B58F90 800E1DF0 14A1000B */ bne $a1, $at, .L800E1E20 /* B58F90 800E1DF0 14A1000B */ bne $a1, $at, .L800E1E20
/* B58F94 800E1DF4 02002025 */ move $a0, $s0 /* B58F94 800E1DF4 02002025 */ move $a0, $s0
/* B58F98 800E1DF8 0C039D5B */ jal func_800E756C /* B58F98 800E1DF8 0C039D5B */ jal Audio_GetDrum
/* B58F9C 800E1DFC 00C02825 */ move $a1, $a2 /* B58F9C 800E1DFC 00C02825 */ move $a1, $a2
/* B58FA0 800E1E00 14400003 */ bnez $v0, .L800E1E10 /* B58FA0 800E1E00 14400003 */ bnez $v0, .L800E1E10
/* B58FA4 800E1E04 00401825 */ move $v1, $v0 /* B58FA4 800E1E04 00401825 */ move $v1, $v0
@ -974,8 +974,8 @@ glabel func_800E1EF4
/* B590D4 800E1F34 00000000 */ nop /* B590D4 800E1F34 00000000 */ nop
glabel func_800E1F38 glabel func_800E1F38
/* B590D8 800E1F38 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 /* B590D8 800E1F38 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017
/* B590DC 800E1F3C 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 /* B590DC 800E1F3C 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80
/* B590E0 800E1F40 8CC2283C */ lw $v0, 0x283c($a2) /* B590E0 800E1F40 8CC2283C */ lw $v0, 0x283c($a2)
/* B590E4 800E1F44 00047040 */ sll $t6, $a0, 1 /* B590E4 800E1F44 00047040 */ sll $t6, $a0, 1
/* B590E8 800E1F48 004E7821 */ addu $t7, $v0, $t6 /* B590E8 800E1F48 004E7821 */ addu $t7, $v0, $t6
@ -997,8 +997,8 @@ glabel func_800E1F38
glabel func_800E1F7C glabel func_800E1F7C
/* B5911C 800E1F7C 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B5911C 800E1F7C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B59120 800E1F80 AFB30020 */ sw $s3, 0x20($sp) /* B59120 800E1F80 AFB30020 */ sw $s3, 0x20($sp)
/* B59124 800E1F84 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 /* B59124 800E1F84 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017
/* B59128 800E1F88 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 /* B59128 800E1F88 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80
/* B5912C 800E1F8C 8E62283C */ lw $v0, 0x283c($s3) /* B5912C 800E1F8C 8E62283C */ lw $v0, 0x283c($s3)
/* B59130 800E1F90 00047040 */ sll $t6, $a0, 1 /* B59130 800E1F90 00047040 */ sll $t6, $a0, 1
/* B59134 800E1F94 AFBF0024 */ sw $ra, 0x24($sp) /* B59134 800E1F94 AFBF0024 */ sw $ra, 0x24($sp)
@ -1093,8 +1093,8 @@ glabel func_800E202C
/* B59270 800E20D0 00000000 */ nop /* B59270 800E20D0 00000000 */ nop
glabel func_800E20D4 glabel func_800E20D4
/* B59274 800E20D4 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B59274 800E20D4 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B59278 800E20D8 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B59278 800E20D8 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5927C 800E20DC 8C4E2984 */ lw $t6, 0x2984($v0) /* B5927C 800E20DC 8C4E2984 */ lw $t6, 0x2984($v0)
/* B59280 800E20E0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B59280 800E20E0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B59284 800E20E4 AFBF0014 */ sw $ra, 0x14($sp) /* B59284 800E20E4 AFBF0014 */ sw $ra, 0x14($sp)
@ -1117,8 +1117,8 @@ glabel func_800E20D4
/* B592C0 800E2120 00000000 */ nop /* B592C0 800E2120 00000000 */ nop
glabel func_800E2124 glabel func_800E2124
/* B592C4 800E2124 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B592C4 800E2124 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B592C8 800E2128 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B592C8 800E2128 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B592CC 800E212C 8C4E2984 */ lw $t6, 0x2984($v0) /* B592CC 800E212C 8C4E2984 */ lw $t6, 0x2984($v0)
/* B592D0 800E2130 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B592D0 800E2130 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B592D4 800E2134 AFBF0014 */ sw $ra, 0x14($sp) /* B592D4 800E2134 AFBF0014 */ sw $ra, 0x14($sp)
@ -1145,8 +1145,8 @@ glabel func_800E2124
glabel func_800E217C glabel func_800E217C
/* B5931C 800E217C 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B5931C 800E217C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B59320 800E2180 AFB30024 */ sw $s3, 0x24($sp) /* B59320 800E2180 AFB30024 */ sw $s3, 0x24($sp)
/* B59324 800E2184 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 /* B59324 800E2184 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017
/* B59328 800E2188 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 /* B59328 800E2188 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80
/* B5932C 800E218C 966F2840 */ lhu $t7, 0x2840($s3) /* B5932C 800E218C 966F2840 */ lhu $t7, 0x2840($s3)
/* B59330 800E2190 AFBF002C */ sw $ra, 0x2c($sp) /* B59330 800E2190 AFBF002C */ sw $ra, 0x2c($sp)
/* B59334 800E2194 AFB40028 */ sw $s4, 0x28($sp) /* B59334 800E2194 AFB40028 */ sw $s4, 0x28($sp)
@ -1352,8 +1352,8 @@ glabel func_800E2454
/* B59600 800E2460 8FA50048 */ lw $a1, 0x48($sp) /* B59600 800E2460 8FA50048 */ lw $a1, 0x48($sp)
/* B59604 800E2464 0C0389DA */ jal func_800E2768 /* B59604 800E2464 0C0389DA */ jal func_800E2768
/* B59608 800E2468 24040001 */ li $a0, 1 /* B59608 800E2468 24040001 */ li $a0, 1
/* B5960C 800E246C 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B5960C 800E246C 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B59610 800E2470 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B59610 800E2470 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
/* B59614 800E2474 00A27021 */ addu $t6, $a1, $v0 /* B59614 800E2474 00A27021 */ addu $t6, $a1, $v0
/* B59618 800E2478 91CF3468 */ lbu $t7, 0x3468($t6) /* B59618 800E2478 91CF3468 */ lbu $t7, 0x3468($t6)
/* B5961C 800E247C 24010001 */ li $at, 1 /* B5961C 800E247C 24010001 */ li $at, 1
@ -1895,8 +1895,8 @@ glabel func_800E2BCC
/* B59D7C 800E2BDC AFA7000C */ sw $a3, 0xc($sp) /* B59D7C 800E2BDC AFA7000C */ sw $a3, 0xc($sp)
glabel func_800E2BE0 glabel func_800E2BE0
/* B59D80 800E2BE0 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B59D80 800E2BE0 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B59D84 800E2BE4 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B59D84 800E2BE4 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B59D88 800E2BE8 8C4E2984 */ lw $t6, 0x2984($v0) /* B59D88 800E2BE8 8C4E2984 */ lw $t6, 0x2984($v0)
/* B59D8C 800E2BEC 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B59D8C 800E2BEC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B59D90 800E2BF0 AFB00018 */ sw $s0, 0x18($sp) /* B59D90 800E2BF0 AFB00018 */ sw $s0, 0x18($sp)
@ -2212,8 +2212,8 @@ glabel func_800E3028
/* B5A1D0 800E3030 AC2404D4 */ sw $a0, %lo(D_801304D4)($at) /* B5A1D0 800E3030 AC2404D4 */ sw $a0, %lo(D_801304D4)($at)
glabel func_800E3034 glabel func_800E3034
/* B5A1D4 800E3034 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B5A1D4 800E3034 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B5A1D8 800E3038 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B5A1D8 800E3038 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
/* B5A1DC 800E303C 8CB82834 */ lw $t8, 0x2834($a1) /* B5A1DC 800E303C 8CB82834 */ lw $t8, 0x2834($a1)
/* B5A1E0 800E3040 0004C900 */ sll $t9, $a0, 4 /* B5A1E0 800E3040 0004C900 */ sll $t9, $a0, 4
/* B5A1E4 800E3044 8CAF2844 */ lw $t7, 0x2844($a1) /* B5A1E4 800E3044 8CAF2844 */ lw $t7, 0x2844($a1)
@ -2240,8 +2240,8 @@ glabel func_800E3034
glabel func_800E3094 glabel func_800E3094
/* B5A234 800E3094 27BDFF90 */ addiu $sp, $sp, -0x70 /* B5A234 800E3094 27BDFF90 */ addiu $sp, $sp, -0x70
/* B5A238 800E3098 AFB10018 */ sw $s1, 0x18($sp) /* B5A238 800E3098 AFB10018 */ sw $s1, 0x18($sp)
/* B5A23C 800E309C 3C118017 */ lui $s1, %hi(D_8016F180) # $s1, 0x8017 /* B5A23C 800E309C 3C118017 */ lui $s1, %hi(gAudioContext) # $s1, 0x8017
/* B5A240 800E30A0 2631F180 */ addiu $s1, %lo(D_8016F180) # addiu $s1, $s1, -0xe80 /* B5A240 800E30A0 2631F180 */ addiu $s1, %lo(gAudioContext) # addiu $s1, $s1, -0xe80
/* B5A244 800E30A4 3C018017 */ lui $at, %hi(D_801755D0) # $at, 0x8017 /* B5A244 800E30A4 3C018017 */ lui $at, %hi(D_801755D0) # $at, 0x8017
/* B5A248 800E30A8 AC2055D0 */ sw $zero, %lo(D_801755D0)($at) /* B5A248 800E30A8 AC2055D0 */ sw $zero, %lo(D_801755D0)($at)
/* B5A24C 800E30AC AFBF001C */ sw $ra, 0x1c($sp) /* B5A24C 800E30AC AFBF001C */ sw $ra, 0x1c($sp)
@ -2288,10 +2288,10 @@ glabel func_800E3094
.L800E3140: .L800E3140:
/* B5A2E0 800E3140 0C039A06 */ jal func_800E6818 /* B5A2E0 800E3140 0C039A06 */ jal func_800E6818
/* B5A2E4 800E3144 00000000 */ nop /* B5A2E4 800E3144 00000000 */ nop
/* B5A2E8 800E3148 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B5A2E8 800E3148 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B5A2EC 800E314C 3C048017 */ lui $a0, %hi(D_8016F186) # $a0, 0x8017 /* B5A2EC 800E314C 3C048017 */ lui $a0, %hi(D_8016F186) # $a0, 0x8017
/* B5A2F0 800E3150 2484F186 */ addiu $a0, %lo(D_8016F186) # addiu $a0, $a0, -0xe7a /* B5A2F0 800E3150 2484F186 */ addiu $a0, %lo(D_8016F186) # addiu $a0, $a0, -0xe7a
/* B5A2F4 800E3154 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B5A2F4 800E3154 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5A2F8 800E3158 240300A0 */ li $v1, 160 /* B5A2F8 800E3158 240300A0 */ li $v1, 160
.L800E315C: .L800E315C:
/* B5A2FC 800E315C 24420002 */ addiu $v0, $v0, 2 /* B5A2FC 800E315C 24420002 */ addiu $v0, $v0, 2
@ -2378,8 +2378,8 @@ glabel func_800E3094
.L800E328C: .L800E328C:
/* B5A42C 800E328C 0C03797C */ jal func_800DE5F0 /* B5A42C 800E328C 0C03797C */ jal func_800DE5F0
/* B5A430 800E3290 8C84A6C8 */ lw $a0, %lo(D_8014A6C8)($a0) /* B5A430 800E3290 8C84A6C8 */ lw $a0, %lo(D_8014A6C8)($a0)
/* B5A434 800E3294 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B5A434 800E3294 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B5A438 800E3298 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B5A438 800E3298 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
.L800E329C: .L800E329C:
/* B5A43C 800E329C 3C048017 */ lui $a0, %hi(D_80171B30) # $a0, 0x8017 /* B5A43C 800E329C 3C048017 */ lui $a0, %hi(D_80171B30) # $a0, 0x8017
/* B5A440 800E32A0 24841B30 */ addiu $a0, %lo(D_80171B30) # addiu $a0, $a0, 0x1b30 /* B5A440 800E32A0 24841B30 */ addiu $a0, %lo(D_80171B30) # addiu $a0, $a0, 0x1b30
@ -2475,8 +2475,8 @@ glabel func_800E3094
/* B5A59C 800E33FC 27BD0070 */ addiu $sp, $sp, 0x70 /* B5A59C 800E33FC 27BD0070 */ addiu $sp, $sp, 0x70
glabel func_800E3400 glabel func_800E3400
/* B5A5A0 800E3400 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B5A5A0 800E3400 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B5A5A4 800E3404 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B5A5A4 800E3404 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5A5A8 800E3408 AC401D64 */ sw $zero, 0x1d64($v0) /* B5A5A8 800E3408 AC401D64 */ sw $zero, 0x1d64($v0)
/* B5A5AC 800E340C 03E00008 */ jr $ra /* B5A5AC 800E340C 03E00008 */ jr $ra
/* B5A5B0 800E3410 AC401DC8 */ sw $zero, 0x1dc8($v0) /* B5A5B0 800E3410 AC401DC8 */ sw $zero, 0x1dc8($v0)
@ -2496,12 +2496,12 @@ glabel func_800E3414
/* B5A5E0 800E3440 2402FFFF */ li $v0, -1 /* B5A5E0 800E3440 2402FFFF */ li $v0, -1
.L800E3444: .L800E3444:
/* B5A5E4 800E3444 8C4E0000 */ lw $t6, ($v0) /* B5A5E4 800E3444 8C4E0000 */ lw $t6, ($v0)
/* B5A5E8 800E3448 3C098017 */ lui $t1, %hi(D_8016F180) # $t1, 0x8017 /* B5A5E8 800E3448 3C098017 */ lui $t1, %hi(gAudioContext) # $t1, 0x8017
/* B5A5EC 800E344C 24190002 */ li $t9, 2 /* B5A5EC 800E344C 24190002 */ li $t9, 2
/* B5A5F0 800E3450 000E7900 */ sll $t7, $t6, 4 /* B5A5F0 800E3450 000E7900 */ sll $t7, $t6, 4
/* B5A5F4 800E3454 000FC782 */ srl $t8, $t7, 0x1e /* B5A5F4 800E3454 000FC782 */ srl $t8, $t7, 0x1e
/* B5A5F8 800E3458 17000004 */ bnez $t8, .L800E346C /* B5A5F8 800E3458 17000004 */ bnez $t8, .L800E346C
/* B5A5FC 800E345C 2529F180 */ addiu $t1, %lo(D_8016F180) # addiu $t1, $t1, -0xe80 /* B5A5FC 800E345C 2529F180 */ addiu $t1, %lo(gAudioContext) # addiu $t1, $t1, -0xe80
/* B5A600 800E3460 A2190000 */ sb $t9, ($s0) /* B5A600 800E3460 A2190000 */ sb $t9, ($s0)
/* B5A604 800E3464 10000059 */ b .L800E35CC /* B5A604 800E3464 10000059 */ b .L800E35CC
/* B5A608 800E3468 00001025 */ move $v0, $zero /* B5A608 800E3468 00001025 */ move $v0, $zero
@ -2545,8 +2545,8 @@ glabel func_800E3414
/* B5A698 800E34F8 00412024 */ and $a0, $v0, $at /* B5A698 800E34F8 00412024 */ and $a0, $v0, $at
/* B5A69C 800E34FC 8FA30028 */ lw $v1, 0x28($sp) /* B5A69C 800E34FC 8FA30028 */ lw $v1, 0x28($sp)
/* B5A6A0 800E3500 8FA8002C */ lw $t0, 0x2c($sp) /* B5A6A0 800E3500 8FA8002C */ lw $t0, 0x2c($sp)
/* B5A6A4 800E3504 3C098017 */ lui $t1, %hi(D_8016F180) # $t1, 0x8017 /* B5A6A4 800E3504 3C098017 */ lui $t1, %hi(gAudioContext) # $t1, 0x8017
/* B5A6A8 800E3508 2529F180 */ addiu $t1, %lo(D_8016F180) # addiu $t1, $t1, -0xe80 /* B5A6A8 800E3508 2529F180 */ addiu $t1, %lo(gAudioContext) # addiu $t1, $t1, -0xe80
/* B5A6AC 800E350C 14400010 */ bnez $v0, .L800E3550 /* B5A6AC 800E350C 14400010 */ bnez $v0, .L800E3550
/* B5A6B0 800E3510 AC62000C */ sw $v0, 0xc($v1) /* B5A6B0 800E3510 AC62000C */ sw $v0, 0xc($v1)
/* B5A6B4 800E3514 8D020000 */ lw $v0, ($t0) /* B5A6B4 800E3514 8D020000 */ lw $v0, ($t0)
@ -2612,7 +2612,7 @@ glabel func_800E35E0
/* B5A788 800E35E8 AFBF0014 */ sw $ra, 0x14($sp) /* B5A788 800E35E8 AFBF0014 */ sw $ra, 0x14($sp)
/* B5A78C 800E35EC 10200009 */ beqz $at, .L800E3614 /* B5A78C 800E35EC 10200009 */ beqz $at, .L800E3614
/* B5A790 800E35F0 00A03025 */ move $a2, $a1 /* B5A790 800E35F0 00A03025 */ move $a2, $a1
/* B5A794 800E35F4 0C039D26 */ jal func_800E7498 /* B5A794 800E35F4 0C039D26 */ jal Audio_GetInstrumentInner
/* B5A798 800E35F8 00000000 */ nop /* B5A798 800E35F8 00000000 */ nop
/* B5A79C 800E35FC 14400003 */ bnez $v0, .L800E360C /* B5A79C 800E35FC 14400003 */ bnez $v0, .L800E360C
/* B5A7A0 800E3600 00000000 */ nop /* B5A7A0 800E3600 00000000 */ nop
@ -2625,7 +2625,7 @@ glabel func_800E35E0
/* B5A7B4 800E3614 28C10100 */ slti $at, $a2, 0x100 /* B5A7B4 800E3614 28C10100 */ slti $at, $a2, 0x100
/* B5A7B8 800E3618 10200009 */ beqz $at, .L800E3640 /* B5A7B8 800E3618 10200009 */ beqz $at, .L800E3640
/* B5A7BC 800E361C 00000000 */ nop /* B5A7BC 800E361C 00000000 */ nop
/* B5A7C0 800E3620 0C039D5B */ jal func_800E756C /* B5A7C0 800E3620 0C039D5B */ jal Audio_GetDrum
/* B5A7C4 800E3624 24C5FF80 */ addiu $a1, $a2, -0x80 /* B5A7C4 800E3624 24C5FF80 */ addiu $a1, $a2, -0x80
/* B5A7C8 800E3628 14400003 */ bnez $v0, .L800E3638 /* B5A7C8 800E3628 14400003 */ bnez $v0, .L800E3638
/* B5A7CC 800E362C 00000000 */ nop /* B5A7CC 800E362C 00000000 */ nop
@ -2635,7 +2635,7 @@ glabel func_800E35E0
/* B5A7D8 800E3638 10000008 */ b .L800E365C /* B5A7D8 800E3638 10000008 */ b .L800E365C
/* B5A7DC 800E363C 8C430004 */ lw $v1, 4($v0) /* B5A7DC 800E363C 8C430004 */ lw $v1, 4($v0)
.L800E3640: .L800E3640:
/* B5A7E0 800E3640 0C039D94 */ jal func_800E7650 /* B5A7E0 800E3640 0C039D94 */ jal Audio_GetUnkInstrument
/* B5A7E4 800E3644 24C5FF00 */ addiu $a1, $a2, -0x100 /* B5A7E4 800E3644 24C5FF00 */ addiu $a1, $a2, -0x100
/* B5A7E8 800E3648 54400004 */ bnezl $v0, .L800E365C /* B5A7E8 800E3648 54400004 */ bnezl $v0, .L800E365C
/* B5A7EC 800E364C 8C430000 */ lw $v1, ($v0) /* B5A7EC 800E364C 8C430000 */ lw $v1, ($v0)
@ -2695,14 +2695,14 @@ glabel func_800E36EC
/* B5A89C 800E36FC AFB50028 */ sw $s5, 0x28($sp) /* B5A89C 800E36FC AFB50028 */ sw $s5, 0x28($sp)
/* B5A8A0 800E3700 AFB40024 */ sw $s4, 0x24($sp) /* B5A8A0 800E3700 AFB40024 */ sw $s4, 0x24($sp)
/* B5A8A4 800E3704 AFB30020 */ sw $s3, 0x20($sp) /* B5A8A4 800E3704 AFB30020 */ sw $s3, 0x20($sp)
/* B5A8A8 800E3708 3C128017 */ lui $s2, %hi(D_8016F180) # $s2, 0x8017 /* B5A8A8 800E3708 3C128017 */ lui $s2, %hi(gAudioContext) # $s2, 0x8017
/* B5A8AC 800E370C 3C178017 */ lui $s7, %hi(D_8016F248) # $s7, 0x8017 /* B5A8AC 800E370C 3C178017 */ lui $s7, %hi(D_8016F248) # $s7, 0x8017
/* B5A8B0 800E3710 0080B025 */ move $s6, $a0 /* B5A8B0 800E3710 0080B025 */ move $s6, $a0
/* B5A8B4 800E3714 AFBF0034 */ sw $ra, 0x34($sp) /* B5A8B4 800E3714 AFBF0034 */ sw $ra, 0x34($sp)
/* B5A8B8 800E3718 AFB10018 */ sw $s1, 0x18($sp) /* B5A8B8 800E3718 AFB10018 */ sw $s1, 0x18($sp)
/* B5A8BC 800E371C AFB00014 */ sw $s0, 0x14($sp) /* B5A8BC 800E371C AFB00014 */ sw $s0, 0x14($sp)
/* B5A8C0 800E3720 26F7F248 */ addiu $s7, %lo(D_8016F248) # addiu $s7, $s7, -0xdb8 /* B5A8C0 800E3720 26F7F248 */ addiu $s7, %lo(D_8016F248) # addiu $s7, $s7, -0xdb8
/* B5A8C4 800E3724 2652F180 */ addiu $s2, %lo(D_8016F180) # addiu $s2, $s2, -0xe80 /* B5A8C4 800E3724 2652F180 */ addiu $s2, %lo(gAudioContext) # addiu $s2, $s2, -0xe80
/* B5A8C8 800E3728 24130001 */ li $s3, 1 /* B5A8C8 800E3728 24130001 */ li $s3, 1
/* B5A8CC 800E372C 24140002 */ li $s4, 2 /* B5A8CC 800E372C 24140002 */ li $s4, 2
/* B5A8D0 800E3730 24150003 */ li $s5, 3 /* B5A8D0 800E3730 24150003 */ li $s5, 3
@ -2840,8 +2840,8 @@ glabel func_800E38F8
/* B5AAA8 800E3908 AFA7000C */ sw $a3, 0xc($sp) /* B5AAA8 800E3908 AFA7000C */ sw $a3, 0xc($sp)
glabel func_800E390C glabel func_800E390C
/* B5AAAC 800E390C 3C088017 */ lui $t0, %hi(D_8016F180) # $t0, 0x8017 /* B5AAAC 800E390C 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017
/* B5AAB0 800E3910 2508F180 */ addiu $t0, %lo(D_8016F180) # addiu $t0, $t0, -0xe80 /* B5AAB0 800E3910 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80
/* B5AAB4 800E3914 950E2840 */ lhu $t6, 0x2840($t0) /* B5AAB4 800E3914 950E2840 */ lhu $t6, 0x2840($t0)
/* B5AAB8 800E3918 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B5AAB8 800E3918 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B5AABC 800E391C AFBF0014 */ sw $ra, 0x14($sp) /* B5AABC 800E391C AFBF0014 */ sw $ra, 0x14($sp)
@ -2860,8 +2860,8 @@ glabel func_800E390C
/* B5AAEC 800E394C 00002025 */ move $a0, $zero /* B5AAEC 800E394C 00002025 */ move $a0, $zero
/* B5AAF0 800E3950 0C0389FE */ jal func_800E27F8 /* B5AAF0 800E3950 0C0389FE */ jal func_800E27F8
/* B5AAF4 800E3954 AFA20018 */ sw $v0, 0x18($sp) /* B5AAF4 800E3954 AFA20018 */ sw $v0, 0x18($sp)
/* B5AAF8 800E3958 3C088017 */ lui $t0, %hi(D_8016F180) # $t0, 0x8017 /* B5AAF8 800E3958 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017
/* B5AAFC 800E395C 2508F180 */ addiu $t0, %lo(D_8016F180) # addiu $t0, $t0, -0xe80 /* B5AAFC 800E395C 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80
/* B5AB00 800E3960 8D181D4C */ lw $t8, 0x1d4c($t0) /* B5AB00 800E3960 8D181D4C */ lw $t8, 0x1d4c($t0)
/* B5AB04 800E3964 8FA70018 */ lw $a3, 0x18($sp) /* B5AB04 800E3964 8FA70018 */ lw $a3, 0x18($sp)
/* B5AB08 800E3968 24010003 */ li $at, 3 /* B5AB08 800E3968 24010003 */ li $at, 3
@ -2912,10 +2912,10 @@ glabel func_800E390C
/* B5ABB0 800E3A10 00000000 */ nop /* B5ABB0 800E3A10 00000000 */ nop
glabel func_800E3A14 glabel func_800E3A14
/* B5ABB4 800E3A14 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5ABB4 800E3A14 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5ABB8 800E3A18 3C028017 */ lui $v0, %hi(D_8016F700) # $v0, 0x8017 /* B5ABB8 800E3A18 3C028017 */ lui $v0, %hi(D_8016F700) # $v0, 0x8017
/* B5ABBC 800E3A1C 2442F700 */ addiu $v0, %lo(D_8016F700) # addiu $v0, $v0, -0x900 /* B5ABBC 800E3A1C 2442F700 */ addiu $v0, %lo(D_8016F700) # addiu $v0, $v0, -0x900
/* B5ABC0 800E3A20 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5ABC0 800E3A20 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
.L800E3A24: .L800E3A24:
/* B5ABC4 800E3A24 24630160 */ addiu $v1, $v1, 0x160 /* B5ABC4 800E3A24 24630160 */ addiu $v1, $v1, 0x160
/* B5ABC8 800E3A28 A0601668 */ sb $zero, 0x1668($v1) /* B5ABC8 800E3A28 A0601668 */ sb $zero, 0x1668($v1)
@ -2965,12 +2965,12 @@ glabel func_800E3A44
glabel func_800E3AC8 glabel func_800E3AC8
/* B5AC68 800E3AC8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B5AC68 800E3AC8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B5AC6C 800E3ACC 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B5AC6C 800E3ACC 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B5AC70 800E3AD0 3C038017 */ lui $v1, %hi(D_8016F700) # $v1, 0x8017 /* B5AC70 800E3AD0 3C038017 */ lui $v1, %hi(D_8016F700) # $v1, 0x8017
/* B5AC74 800E3AD4 AFBF0014 */ sw $ra, 0x14($sp) /* B5AC74 800E3AD4 AFBF0014 */ sw $ra, 0x14($sp)
/* B5AC78 800E3AD8 AFA40020 */ sw $a0, 0x20($sp) /* B5AC78 800E3AD8 AFA40020 */ sw $a0, 0x20($sp)
/* B5AC7C 800E3ADC 2463F700 */ addiu $v1, %lo(D_8016F700) # addiu $v1, $v1, -0x900 /* B5AC7C 800E3ADC 2463F700 */ addiu $v1, %lo(D_8016F700) # addiu $v1, $v1, -0x900
/* B5AC80 800E3AE0 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B5AC80 800E3AE0 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5AC84 800E3AE4 804E1770 */ lb $t6, 0x1770($v0) /* B5AC84 800E3AE4 804E1770 */ lb $t6, 0x1770($v0)
.L800E3AE8: .L800E3AE8:
/* B5AC88 800E3AE8 55C00004 */ bnezl $t6, .L800E3AFC /* B5AC88 800E3AE8 55C00004 */ bnezl $t6, .L800E3AFC
@ -3049,8 +3049,8 @@ glabel func_800E3AC8
/* B5AD88 800E3BE8 00000000 */ nop /* B5AD88 800E3BE8 00000000 */ nop
glabel func_800E3BEC glabel func_800E3BEC
/* B5AD8C 800E3BEC 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5AD8C 800E3BEC 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5AD90 800E3BF0 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5AD90 800E3BF0 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5AD94 800E3BF4 27BDFFC8 */ addiu $sp, $sp, -0x38 /* B5AD94 800E3BF4 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B5AD98 800E3BF8 8C6E2984 */ lw $t6, 0x2984($v1) /* B5AD98 800E3BF8 8C6E2984 */ lw $t6, 0x2984($v1)
/* B5AD9C 800E3BFC AFB30020 */ sw $s3, 0x20($sp) /* B5AD9C 800E3BFC AFB30020 */ sw $s3, 0x20($sp)
@ -3085,10 +3085,10 @@ glabel func_800E3BEC
/* B5AE08 800E3C68 27A50034 */ addiu $a1, $sp, 0x34 /* B5AE08 800E3C68 27A50034 */ addiu $a1, $sp, 0x34
/* B5AE0C 800E3C6C 0C000CA0 */ jal osRecvMesg /* B5AE0C 800E3C6C 0C000CA0 */ jal osRecvMesg
/* B5AE10 800E3C70 00003025 */ move $a2, $zero /* B5AE10 800E3C70 00003025 */ move $a2, $zero
/* B5AE14 800E3C74 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5AE14 800E3C74 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5AE18 800E3C78 2412FFFF */ li $s2, -1 /* B5AE18 800E3C78 2412FFFF */ li $s2, -1
/* B5AE1C 800E3C7C 14520004 */ bne $v0, $s2, .L800E3C90 /* B5AE1C 800E3C7C 14520004 */ bne $v0, $s2, .L800E3C90
/* B5AE20 800E3C80 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5AE20 800E3C80 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5AE24 800E3C84 AC601D48 */ sw $zero, 0x1d48($v1) /* B5AE24 800E3C84 AC601D48 */ sw $zero, 0x1d48($v1)
/* B5AE28 800E3C88 10000003 */ b .L800E3C98 /* B5AE28 800E3C88 10000003 */ b .L800E3C98
/* B5AE2C 800E3C8C 00002025 */ move $a0, $zero /* B5AE2C 800E3C8C 00002025 */ move $a0, $zero
@ -3101,10 +3101,10 @@ glabel func_800E3BEC
/* B5AE40 800E3CA0 0C038F44 */ jal func_800E3D10 /* B5AE40 800E3CA0 0C038F44 */ jal func_800E3D10
/* B5AE44 800E3CA4 02602825 */ move $a1, $s3 /* B5AE44 800E3CA4 02602825 */ move $a1, $s3
.L800E3CA8: .L800E3CA8:
/* B5AE48 800E3CA8 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B5AE48 800E3CA8 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B5AE4C 800E3CAC 3C128017 */ lui $s2, %hi(D_8016F700) # $s2, 0x8017 /* B5AE4C 800E3CAC 3C128017 */ lui $s2, %hi(D_8016F700) # $s2, 0x8017
/* B5AE50 800E3CB0 2652F700 */ addiu $s2, %lo(D_8016F700) # addiu $s2, $s2, -0x900 /* B5AE50 800E3CB0 2652F700 */ addiu $s2, %lo(D_8016F700) # addiu $s2, $s2, -0x900
/* B5AE54 800E3CB4 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B5AE54 800E3CB4 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
/* B5AE58 800E3CB8 24110001 */ li $s1, 1 /* B5AE58 800E3CB8 24110001 */ li $s1, 1
/* B5AE5C 800E3CBC 82181770 */ lb $t8, 0x1770($s0) /* B5AE5C 800E3CBC 82181770 */ lb $t8, 0x1770($s0)
.L800E3CC0: .L800E3CC0:
@ -3446,8 +3446,8 @@ glabel func_800E4058
/* B5B300 800E4160 00026900 */ sll $t5, $v0, 4 /* B5B300 800E4160 00026900 */ sll $t5, $v0, 4
/* B5B304 800E4164 000DC782 */ srl $t8, $t5, 0x1e /* B5B304 800E4164 000DC782 */ srl $t8, $t5, 0x1e
/* B5B308 800E4168 13000009 */ beqz $t8, .L800E4190 /* B5B308 800E4168 13000009 */ beqz $t8, .L800E4190
/* B5B30C 800E416C 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B5B30C 800E416C 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B5B310 800E4170 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B5B310 800E4170 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5B314 800E4174 8C4E1768 */ lw $t6, 0x1768($v0) /* B5B314 800E4174 8C4E1768 */ lw $t6, 0x1768($v0)
/* B5B318 800E4178 000E7880 */ sll $t7, $t6, 2 /* B5B318 800E4178 000E7880 */ sll $t7, $t6, 2
/* B5B31C 800E417C 004FC821 */ addu $t9, $v0, $t7 /* B5B31C 800E417C 004FC821 */ addu $t9, $v0, $t7
@ -3462,8 +3462,8 @@ glabel func_800E4058
glabel func_800E4198 glabel func_800E4198
/* B5B338 800E4198 27BDFF98 */ addiu $sp, $sp, -0x68 /* B5B338 800E4198 27BDFF98 */ addiu $sp, $sp, -0x68
/* B5B33C 800E419C AFB30030 */ sw $s3, 0x30($sp) /* B5B33C 800E419C AFB30030 */ sw $s3, 0x30($sp)
/* B5B340 800E41A0 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 /* B5B340 800E41A0 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017
/* B5B344 800E41A4 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 /* B5B344 800E41A4 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80
/* B5B348 800E41A8 8E6E176C */ lw $t6, 0x176c($s3) /* B5B348 800E41A8 8E6E176C */ lw $t6, 0x176c($s3)
/* B5B34C 800E41AC AFB50038 */ sw $s5, 0x38($sp) /* B5B34C 800E41AC AFB50038 */ sw $s5, 0x38($sp)
/* B5B350 800E41B0 AFB2002C */ sw $s2, 0x2c($sp) /* B5B350 800E41B0 AFB2002C */ sw $s2, 0x2c($sp)
@ -3491,8 +3491,8 @@ glabel func_800E4198
/* B5B3A0 800E4200 00002825 */ move $a1, $zero /* B5B3A0 800E4200 00002825 */ move $a1, $zero
/* B5B3A4 800E4204 0000A025 */ move $s4, $zero /* B5B3A4 800E4204 0000A025 */ move $s4, $zero
/* B5B3A8 800E4208 18800011 */ blez $a0, .L800E4250 /* B5B3A8 800E4208 18800011 */ blez $a0, .L800E4250
/* B5B3AC 800E420C 3C0F8017 */ lui $t7, %hi(D_8016F180) /* B5B3AC 800E420C 3C0F8017 */ lui $t7, %hi(gAudioContext)
/* B5B3B0 800E4210 25E2F180 */ addiu $v0, $t7, %lo(D_8016F180) /* B5B3B0 800E4210 25E2F180 */ addiu $v0, $t7, %lo(gAudioContext)
/* B5B3B4 800E4214 0004C080 */ sll $t8, $a0, 2 /* B5B3B4 800E4214 0004C080 */ sll $t8, $a0, 2
/* B5B3B8 800E4218 03023021 */ addu $a2, $t8, $v0 /* B5B3B8 800E4218 03023021 */ addu $a2, $t8, $v0
/* B5B3BC 800E421C 2403FFF0 */ li $v1, -16 /* B5B3BC 800E421C 2403FFF0 */ li $v1, -16
@ -3737,8 +3737,8 @@ glabel func_800E4198
/* B5B72C 800E458C 27BD0068 */ addiu $sp, $sp, 0x68 /* B5B72C 800E458C 27BD0068 */ addiu $sp, $sp, 0x68
glabel func_800E4590 glabel func_800E4590
/* B5B730 800E4590 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5B730 800E4590 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5B734 800E4594 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5B734 800E4594 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5B738 800E4598 8CEE176C */ lw $t6, 0x176c($a3) /* B5B738 800E4598 8CEE176C */ lw $t6, 0x176c($a3)
/* B5B73C 800E459C 27BDFFA8 */ addiu $sp, $sp, -0x58 /* B5B73C 800E459C 27BDFFA8 */ addiu $sp, $sp, -0x58
/* B5B740 800E45A0 AFBF002C */ sw $ra, 0x2c($sp) /* B5B740 800E45A0 AFBF002C */ sw $ra, 0x2c($sp)
@ -3751,8 +3751,8 @@ glabel func_800E4590
/* B5B75C 800E45BC 27A5004C */ addiu $a1, $sp, 0x4c /* B5B75C 800E45BC 27A5004C */ addiu $a1, $sp, 0x4c
/* B5B760 800E45C0 0C000CA0 */ jal osRecvMesg /* B5B760 800E45C0 0C000CA0 */ jal osRecvMesg
/* B5B764 800E45C4 00003025 */ move $a2, $zero /* B5B764 800E45C4 00003025 */ move $a2, $zero
/* B5B768 800E45C8 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5B768 800E45C8 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5B76C 800E45CC 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5B76C 800E45CC 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5B770 800E45D0 ACE0176C */ sw $zero, 0x176c($a3) /* B5B770 800E45D0 ACE0176C */ sw $zero, 0x176c($a3)
/* B5B774 800E45D4 10000056 */ b .L800E4730 /* B5B774 800E45D4 10000056 */ b .L800E4730
/* B5B778 800E45D8 00001025 */ move $v0, $zero /* B5B778 800E45D8 00001025 */ move $v0, $zero
@ -3761,10 +3761,10 @@ glabel func_800E4590
/* B5B780 800E45E0 24840FF8 */ addiu $a0, %lo(D_80170FF8) # addiu $a0, $a0, 0xff8 /* B5B780 800E45E0 24840FF8 */ addiu $a0, %lo(D_80170FF8) # addiu $a0, $a0, 0xff8
/* B5B784 800E45E4 0C000CA0 */ jal osRecvMesg /* B5B784 800E45E4 0C000CA0 */ jal osRecvMesg
/* B5B788 800E45E8 00003025 */ move $a2, $zero /* B5B788 800E45E8 00003025 */ move $a2, $zero
/* B5B78C 800E45EC 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5B78C 800E45EC 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5B790 800E45F0 2401FFFF */ li $at, -1 /* B5B790 800E45F0 2401FFFF */ li $at, -1
/* B5B794 800E45F4 14410003 */ bne $v0, $at, .L800E4604 /* B5B794 800E45F4 14410003 */ bne $v0, $at, .L800E4604
/* B5B798 800E45F8 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5B798 800E45F8 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5B79C 800E45FC 1000004C */ b .L800E4730 /* B5B79C 800E45FC 1000004C */ b .L800E4730
/* B5B7A0 800E4600 00001025 */ move $v0, $zero /* B5B7A0 800E4600 00001025 */ move $v0, $zero
.L800E4604: .L800E4604:
@ -3903,7 +3903,7 @@ glabel func_800E478C
/* B5B980 800E47E0 00009025 */ move $s2, $zero /* B5B980 800E47E0 00009025 */ move $s2, $zero
/* B5B984 800E47E4 02802025 */ move $a0, $s4 /* B5B984 800E47E4 02802025 */ move $a0, $s4
.L800E47E8: .L800E47E8:
/* B5B988 800E47E8 0C039D5B */ jal func_800E756C /* B5B988 800E47E8 0C039D5B */ jal Audio_GetDrum
/* B5B98C 800E47EC 02402825 */ move $a1, $s2 /* B5B98C 800E47EC 02402825 */ move $a1, $s2
/* B5B990 800E47F0 10400005 */ beqz $v0, .L800E4808 /* B5B990 800E47F0 10400005 */ beqz $v0, .L800E4808
/* B5B994 800E47F4 02202825 */ move $a1, $s1 /* B5B994 800E47F4 02202825 */ move $a1, $s1
@ -3921,7 +3921,7 @@ glabel func_800E478C
/* B5B9BC 800E481C 2415007F */ li $s5, 127 /* B5B9BC 800E481C 2415007F */ li $s5, 127
/* B5B9C0 800E4820 02802025 */ move $a0, $s4 /* B5B9C0 800E4820 02802025 */ move $a0, $s4
.L800E4824: .L800E4824:
/* B5B9C4 800E4824 0C039D26 */ jal func_800E7498 /* B5B9C4 800E4824 0C039D26 */ jal Audio_GetInstrumentInner
/* B5B9C8 800E4828 02402825 */ move $a1, $s2 /* B5B9C8 800E4828 02402825 */ move $a1, $s2
/* B5B9CC 800E482C 10400016 */ beqz $v0, .L800E4888 /* B5B9CC 800E482C 10400016 */ beqz $v0, .L800E4888
/* B5B9D0 800E4830 00408025 */ move $s0, $v0 /* B5B9D0 800E4830 00408025 */ move $s0, $v0
@ -3977,8 +3977,8 @@ glabel func_800E48C0
/* B5BA80 800E48E0 0003C900 */ sll $t9, $v1, 4 /* B5BA80 800E48E0 0003C900 */ sll $t9, $v1, 4
/* B5BA84 800E48E4 00194782 */ srl $t0, $t9, 0x1e /* B5BA84 800E48E4 00194782 */ srl $t0, $t9, 0x1e
/* B5BA88 800E48E8 11000009 */ beqz $t0, .L800E4910 /* B5BA88 800E48E8 11000009 */ beqz $t0, .L800E4910
/* B5BA8C 800E48EC 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5BA8C 800E48EC 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5BA90 800E48F0 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5BA90 800E48F0 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5BA94 800E48F4 8C691768 */ lw $t1, 0x1768($v1) /* B5BA94 800E48F4 8C691768 */ lw $t1, 0x1768($v1)
/* B5BA98 800E48F8 00095080 */ sll $t2, $t1, 2 /* B5BA98 800E48F8 00095080 */ sll $t2, $t1, 2
/* B5BA9C 800E48FC 006A5821 */ addu $t3, $v1, $t2 /* B5BA9C 800E48FC 006A5821 */ addu $t3, $v1, $t2
@ -3993,8 +3993,8 @@ glabel func_800E48C0
glabel func_800E4918 glabel func_800E4918
/* B5BAB8 800E4918 27BDFF88 */ addiu $sp, $sp, -0x78 /* B5BAB8 800E4918 27BDFF88 */ addiu $sp, $sp, -0x78
/* B5BABC 800E491C AFB40034 */ sw $s4, 0x34($sp) /* B5BABC 800E491C AFB40034 */ sw $s4, 0x34($sp)
/* B5BAC0 800E4920 3C148017 */ lui $s4, %hi(D_8016F180) # $s4, 0x8017 /* B5BAC0 800E4920 3C148017 */ lui $s4, %hi(gAudioContext) # $s4, 0x8017
/* B5BAC4 800E4924 2694F180 */ addiu $s4, %lo(D_8016F180) # addiu $s4, $s4, -0xe80 /* B5BAC4 800E4924 2694F180 */ addiu $s4, %lo(gAudioContext) # addiu $s4, $s4, -0xe80
/* B5BAC8 800E4928 8E8E176C */ lw $t6, 0x176c($s4) /* B5BAC8 800E4928 8E8E176C */ lw $t6, 0x176c($s4)
/* B5BACC 800E492C AFB50038 */ sw $s5, 0x38($sp) /* B5BACC 800E492C AFB50038 */ sw $s5, 0x38($sp)
/* B5BAD0 800E4930 AFB30030 */ sw $s3, 0x30($sp) /* B5BAD0 800E4930 AFB30030 */ sw $s3, 0x30($sp)
@ -4026,7 +4026,7 @@ glabel func_800E4918
/* B5BB34 800E4994 AFA30070 */ sw $v1, 0x70($sp) /* B5BB34 800E4994 AFA30070 */ sw $v1, 0x70($sp)
/* B5BB38 800E4998 02202025 */ move $a0, $s1 /* B5BB38 800E4998 02202025 */ move $a0, $s1
.L800E499C: .L800E499C:
/* B5BB3C 800E499C 0C039D26 */ jal func_800E7498 /* B5BB3C 800E499C 0C039D26 */ jal Audio_GetInstrumentInner
/* B5BB40 800E49A0 02402825 */ move $a1, $s2 /* B5BB40 800E49A0 02402825 */ move $a1, $s2
/* B5BB44 800E49A4 1040000E */ beqz $v0, .L800E49E0 /* B5BB44 800E49A4 1040000E */ beqz $v0, .L800E49E0
/* B5BB48 800E49A8 00408025 */ move $s0, $v0 /* B5BB48 800E49A8 00408025 */ move $s0, $v0
@ -4056,7 +4056,7 @@ glabel func_800E4918
/* B5BB98 800E49F8 19E0000C */ blez $t7, .L800E4A2C /* B5BB98 800E49F8 19E0000C */ blez $t7, .L800E4A2C
/* B5BB9C 800E49FC 02202025 */ move $a0, $s1 /* B5BB9C 800E49FC 02202025 */ move $a0, $s1
.L800E4A00: .L800E4A00:
/* B5BBA0 800E4A00 0C039D5B */ jal func_800E756C /* B5BBA0 800E4A00 0C039D5B */ jal Audio_GetDrum
/* B5BBA4 800E4A04 02402825 */ move $a1, $s2 /* B5BBA4 800E4A04 02402825 */ move $a1, $s2
/* B5BBA8 800E4A08 50400004 */ beql $v0, $zero, .L800E4A1C /* B5BBA8 800E4A08 50400004 */ beql $v0, $zero, .L800E4A1C
/* B5BBAC 800E4A0C 8FB80074 */ lw $t8, 0x74($sp) /* B5BBAC 800E4A0C 8FB80074 */ lw $t8, 0x74($sp)
@ -4073,7 +4073,7 @@ glabel func_800E4918
/* B5BBD0 800E4A30 1B20000B */ blez $t9, .L800E4A60 /* B5BBD0 800E4A30 1B20000B */ blez $t9, .L800E4A60
/* B5BBD4 800E4A34 02202025 */ move $a0, $s1 /* B5BBD4 800E4A34 02202025 */ move $a0, $s1
.L800E4A38: .L800E4A38:
/* B5BBD8 800E4A38 0C039D94 */ jal func_800E7650 /* B5BBD8 800E4A38 0C039D94 */ jal Audio_GetUnkInstrument
/* B5BBDC 800E4A3C 02402825 */ move $a1, $s2 /* B5BBDC 800E4A3C 02402825 */ move $a1, $s2
/* B5BBE0 800E4A40 10400003 */ beqz $v0, .L800E4A50 /* B5BBE0 800E4A40 10400003 */ beqz $v0, .L800E4A50
/* B5BBE4 800E4A44 00402025 */ move $a0, $v0 /* B5BBE4 800E4A44 00402025 */ move $a0, $v0
@ -4092,8 +4092,8 @@ glabel func_800E4918
/* B5BC10 800E4A70 8FBF003C */ lw $ra, 0x3c($sp) /* B5BC10 800E4A70 8FBF003C */ lw $ra, 0x3c($sp)
/* B5BC14 800E4A74 18A00012 */ blez $a1, .L800E4AC0 /* B5BC14 800E4A74 18A00012 */ blez $a1, .L800E4AC0
/* B5BC18 800E4A78 8E88176C */ lw $t0, 0x176c($s4) /* B5BC18 800E4A78 8E88176C */ lw $t0, 0x176c($s4)
/* B5BC1C 800E4A7C 3C0B8017 */ lui $t3, %hi(D_8016F180) /* B5BC1C 800E4A7C 3C0B8017 */ lui $t3, %hi(gAudioContext)
/* B5BC20 800E4A80 2562F180 */ addiu $v0, $t3, %lo(D_8016F180) /* B5BC20 800E4A80 2562F180 */ addiu $v0, $t3, %lo(gAudioContext)
/* B5BC24 800E4A84 00056080 */ sll $t4, $a1, 2 /* B5BC24 800E4A84 00056080 */ sll $t4, $a1, 2
/* B5BC28 800E4A88 01823021 */ addu $a2, $t4, $v0 /* B5BC28 800E4A88 01823021 */ addu $a2, $t4, $v0
/* B5BC2C 800E4A8C 2404FFF0 */ li $a0, -16 /* B5BC2C 800E4A8C 2404FFF0 */ li $a0, -16
@ -4323,14 +4323,14 @@ glabel func_800E4D94
/* B5BF5C 800E4DBC AFB00018 */ sw $s0, 0x18($sp) /* B5BF5C 800E4DBC AFB00018 */ sw $s0, 0x18($sp)
/* B5BF60 800E4DC0 0C0389FE */ jal func_800E27F8 /* B5BF60 800E4DC0 0C0389FE */ jal func_800E27F8
/* B5BF64 800E4DC4 24040002 */ li $a0, 2 /* B5BF64 800E4DC4 24040002 */ li $a0, 2
/* B5BF68 800E4DC8 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 /* B5BF68 800E4DC8 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
/* B5BF6C 800E4DCC 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 /* B5BF6C 800E4DCC 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
/* B5BF70 800E4DD0 8EA32D5C */ lw $v1, 0x2d5c($s5) /* B5BF70 800E4DD0 8EA32D5C */ lw $v1, 0x2d5c($s5)
/* B5BF74 800E4DD4 00409825 */ move $s3, $v0 /* B5BF74 800E4DD4 00409825 */ move $s3, $v0
/* B5BF78 800E4DD8 00008825 */ move $s1, $zero /* B5BF78 800E4DD8 00008825 */ move $s1, $zero
/* B5BF7C 800E4DDC 18600031 */ blez $v1, .L800E4EA4 /* B5BF7C 800E4DDC 18600031 */ blez $v1, .L800E4EA4
/* B5BF80 800E4DE0 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B5BF80 800E4DE0 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B5BF84 800E4DE4 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B5BF84 800E4DE4 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
/* B5BF88 800E4DE8 27BE004C */ addiu $fp, $sp, 0x4c /* B5BF88 800E4DE8 27BE004C */ addiu $fp, $sp, 0x4c
/* B5BF8C 800E4DEC 24170014 */ li $s7, 20 /* B5BF8C 800E4DEC 24170014 */ li $s7, 20
/* B5BF90 800E4DF0 24160001 */ li $s6, 1 /* B5BF90 800E4DF0 24160001 */ li $s6, 1
@ -4491,8 +4491,8 @@ glabel func_800E4FE0
glabel func_800E5000 glabel func_800E5000
/* B5C1A0 800E5000 27BDFF90 */ addiu $sp, $sp, -0x70 /* B5C1A0 800E5000 27BDFF90 */ addiu $sp, $sp, -0x70
/* B5C1A4 800E5004 AFB20020 */ sw $s2, 0x20($sp) /* B5C1A4 800E5004 AFB20020 */ sw $s2, 0x20($sp)
/* B5C1A8 800E5008 3C128017 */ lui $s2, %hi(D_8016F180) # $s2, 0x8017 /* B5C1A8 800E5008 3C128017 */ lui $s2, %hi(gAudioContext) # $s2, 0x8017
/* B5C1AC 800E500C 2652F180 */ addiu $s2, %lo(D_8016F180) # addiu $s2, $s2, -0xe80 /* B5C1AC 800E500C 2652F180 */ addiu $s2, %lo(gAudioContext) # addiu $s2, $s2, -0xe80
/* B5C1B0 800E5010 8E4E289C */ lw $t6, 0x289c($s2) /* B5C1B0 800E5010 8E4E289C */ lw $t6, 0x289c($s2)
/* B5C1B4 800E5014 86432848 */ lh $v1, 0x2848($s2) /* B5C1B4 800E5014 86432848 */ lh $v1, 0x2848($s2)
/* B5C1B8 800E5018 AFBF0024 */ sw $ra, 0x24($sp) /* B5C1B8 800E5018 AFBF0024 */ sw $ra, 0x24($sp)
@ -4928,8 +4928,8 @@ glabel L800E5624
/* B5C7D8 800E5638 8FBF001C */ lw $ra, 0x1c($sp) /* B5C7D8 800E5638 8FBF001C */ lw $ra, 0x1c($sp)
glabel L800E563C glabel L800E563C
/* B5C7DC 800E563C 92020001 */ lbu $v0, 1($s0) /* B5C7DC 800E563C 92020001 */ lbu $v0, 1($s0)
/* B5C7E0 800E5640 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5C7E0 800E5640 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5C7E4 800E5644 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5C7E4 800E5644 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5C7E8 800E5648 0002C080 */ sll $t8, $v0, 2 /* B5C7E8 800E5648 0002C080 */ sll $t8, $v0, 2
/* B5C7EC 800E564C 0302C023 */ subu $t8, $t8, $v0 /* B5C7EC 800E564C 0302C023 */ subu $t8, $t8, $v0
/* B5C7F0 800E5650 0018C080 */ sll $t8, $t8, 2 /* B5C7F0 800E5650 0018C080 */ sll $t8, $t8, 2
@ -4954,17 +4954,17 @@ glabel L800E563C
/* B5C838 800E5698 8FBF001C */ lw $ra, 0x1c($sp) /* B5C838 800E5698 8FBF001C */ lw $ra, 0x1c($sp)
glabel L800E569C glabel L800E569C
/* B5C83C 800E569C 8E090004 */ lw $t1, 4($s0) /* B5C83C 800E569C 8E090004 */ lw $t1, 4($s0)
/* B5C840 800E56A0 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5C840 800E56A0 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5C844 800E56A4 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5C844 800E56A4 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
glabel L00E5944 glabel L00E5944
/* B5C848 800E56A8 100000A6 */ b .L800E5944 /* B5C848 800E56A8 100000A6 */ b .L800E5944
/* B5C84C 800E56AC A0E9289A */ sb $t1, 0x289a($a3) /* B5C84C 800E56AC A0E9289A */ sb $t1, 0x289a($a3)
glabel L800E56B0 glabel L800E56B0
/* B5C850 800E56B0 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5C850 800E56B0 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5C854 800E56B4 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5C854 800E56B4 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5C858 800E56B8 84EA285C */ lh $t2, 0x285c($a3) /* B5C858 800E56B8 84EA285C */ lh $t2, 0x285c($a3)
/* B5C85C 800E56BC 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B5C85C 800E56BC 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B5C860 800E56C0 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B5C860 800E56C0 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
/* B5C864 800E56C4 1940009F */ blez $t2, .L800E5944 /* B5C864 800E56C4 1940009F */ blez $t2, .L800E5944
/* B5C868 800E56C8 00002825 */ move $a1, $zero /* B5C868 800E56C8 00002825 */ move $a1, $zero
/* B5C86C 800E56CC 920C3530 */ lbu $t4, 0x3530($s0) /* B5C86C 800E56CC 920C3530 */ lbu $t4, 0x3530($s0)
@ -4984,9 +4984,9 @@ glabel L800E56B0
glabel L800E5700 glabel L800E5700
/* B5C8A0 800E5700 8E080004 */ lw $t0, 4($s0) /* B5C8A0 800E5700 8E080004 */ lw $t0, 4($s0)
/* B5C8A4 800E5704 24010001 */ li $at, 1 /* B5C8A4 800E5704 24010001 */ li $at, 1
/* B5C8A8 800E5708 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5C8A8 800E5708 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5C8AC 800E570C 1501001E */ bne $t0, $at, .L800E5788 /* B5C8AC 800E570C 1501001E */ bne $t0, $at, .L800E5788
/* B5C8B0 800E5710 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5C8B0 800E5710 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5C8B4 800E5714 8CE62894 */ lw $a2, 0x2894($a3) /* B5C8B4 800E5714 8CE62894 */ lw $a2, 0x2894($a3)
/* B5C8B8 800E5718 00002825 */ move $a1, $zero /* B5C8B8 800E5718 00002825 */ move $a1, $zero
/* B5C8BC 800E571C 00002025 */ move $a0, $zero /* B5C8BC 800E571C 00002025 */ move $a0, $zero
@ -5019,11 +5019,11 @@ glabel L800E5700
/* B5C920 800E5780 1420FFE9 */ bnez $at, .L800E5728 /* B5C920 800E5780 1420FFE9 */ bnez $at, .L800E5728
/* B5C924 800E5784 248400E0 */ addiu $a0, $a0, 0xe0 /* B5C924 800E5784 248400E0 */ addiu $a0, $a0, 0xe0
.L800E5788: .L800E5788:
/* B5C928 800E5788 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5C928 800E5788 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5C92C 800E578C 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5C92C 800E578C 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5C930 800E5790 84EA285C */ lh $t2, 0x285c($a3) /* B5C930 800E5790 84EA285C */ lh $t2, 0x285c($a3)
/* B5C934 800E5794 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B5C934 800E5794 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B5C938 800E5798 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B5C938 800E5798 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
/* B5C93C 800E579C 19400069 */ blez $t2, .L800E5944 /* B5C93C 800E579C 19400069 */ blez $t2, .L800E5944
/* B5C940 800E57A0 00002825 */ move $a1, $zero /* B5C940 800E57A0 00002825 */ move $a1, $zero
/* B5C944 800E57A4 920B3530 */ lbu $t3, 0x3530($s0) /* B5C944 800E57A4 920B3530 */ lbu $t3, 0x3530($s0)
@ -5081,16 +5081,16 @@ glabel L800E5850
/* B5C9FC 800E585C 8FBF001C */ lw $ra, 0x1c($sp) /* B5C9FC 800E585C 8FBF001C */ lw $ra, 0x1c($sp)
glabel L800E5860 glabel L800E5860
/* B5CA00 800E5860 92080001 */ lbu $t0, 1($s0) /* B5CA00 800E5860 92080001 */ lbu $t0, 1($s0)
/* B5CA04 800E5864 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5CA04 800E5864 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5CA08 800E5868 96190004 */ lhu $t9, 4($s0) /* B5CA08 800E5868 96190004 */ lhu $t9, 4($s0)
/* B5CA0C 800E586C 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5CA0C 800E586C 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5CA10 800E5870 00084840 */ sll $t1, $t0, 1 /* B5CA10 800E5870 00084840 */ sll $t1, $t0, 1
/* B5CA14 800E5874 00E95021 */ addu $t2, $a3, $t1 /* B5CA14 800E5874 00E95021 */ addu $t2, $a3, $t1
/* B5CA18 800E5878 10000032 */ b .L800E5944 /* B5CA18 800E5878 10000032 */ b .L800E5944
/* B5CA1C 800E587C A5595BDC */ sh $t9, 0x5bdc($t2) /* B5CA1C 800E587C A5595BDC */ sh $t9, 0x5bdc($t2)
glabel L800E5880 glabel L800E5880
/* B5CA20 800E5880 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5CA20 800E5880 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5CA24 800E5884 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5CA24 800E5884 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5CA28 800E5888 240B0005 */ li $t3, 5 /* B5CA28 800E5888 240B0005 */ li $t3, 5
/* B5CA2C 800E588C A0EB3518 */ sb $t3, 0x3518($a3) /* B5CA2C 800E588C A0EB3518 */ sb $t3, 0x3518($a3)
/* B5CA30 800E5890 8E0C0004 */ lw $t4, 4($s0) /* B5CA30 800E5890 8E0C0004 */ lw $t4, 4($s0)
@ -5112,13 +5112,13 @@ glabel L800E58AC
glabel L800E58C8 glabel L800E58C8
/* B5CA68 800E58C8 8E0E0004 */ lw $t6, 4($s0) /* B5CA68 800E58C8 8E0E0004 */ lw $t6, 4($s0)
/* B5CA6C 800E58CC 24010001 */ li $at, 1 /* B5CA6C 800E58CC 24010001 */ li $at, 1
/* B5CA70 800E58D0 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 /* B5CA70 800E58D0 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017
/* B5CA74 800E58D4 15C10015 */ bne $t6, $at, .L800E592C /* B5CA74 800E58D4 15C10015 */ bne $t6, $at, .L800E592C
/* B5CA78 800E58D8 AFAE0024 */ sw $t6, 0x24($sp) /* B5CA78 800E58D8 AFAE0024 */ sw $t6, 0x24($sp)
/* B5CA7C 800E58DC 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 /* B5CA7C 800E58DC 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80
/* B5CA80 800E58E0 84E2285C */ lh $v0, 0x285c($a3) /* B5CA80 800E58E0 84E2285C */ lh $v0, 0x285c($a3)
/* B5CA84 800E58E4 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B5CA84 800E58E4 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B5CA88 800E58E8 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B5CA88 800E58E8 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
/* B5CA8C 800E58EC 1840000F */ blez $v0, .L800E592C /* B5CA8C 800E58EC 1840000F */ blez $v0, .L800E592C
/* B5CA90 800E58F0 00002825 */ move $a1, $zero /* B5CA90 800E58F0 00002825 */ move $a1, $zero
.L800E58F4: .L800E58F4:
@ -5165,8 +5165,8 @@ glabel func_800E5958
/* B5CB10 800E5970 01C47023 */ subu $t6, $t6, $a0 /* B5CB10 800E5970 01C47023 */ subu $t6, $t6, $a0
/* B5CB14 800E5974 46803220 */ cvt.s.w $f8, $f6 /* B5CB14 800E5974 46803220 */ cvt.s.w $f8, $f6
/* B5CB18 800E5978 000E7140 */ sll $t6, $t6, 5 /* B5CB18 800E5978 000E7140 */ sll $t6, $t6, 5
/* B5CB1C 800E597C 3C188017 */ lui $t8, %hi(D_8016F180) # $t8, 0x8017 /* B5CB1C 800E597C 3C188017 */ lui $t8, %hi(gAudioContext) # $t8, 0x8017
/* B5CB20 800E5980 2718F180 */ addiu $t8, %lo(D_8016F180) # addiu $t8, $t8, -0xe80 /* B5CB20 800E5980 2718F180 */ addiu $t8, %lo(gAudioContext) # addiu $t8, $t8, -0xe80
/* B5CB24 800E5984 25CF3530 */ addiu $t7, $t6, 0x3530 /* B5CB24 800E5984 25CF3530 */ addiu $t7, $t6, 0x3530
/* B5CB28 800E5988 01F81021 */ addu $v0, $t7, $t8 /* B5CB28 800E5988 01F81021 */ addu $v0, $t7, $t8
/* B5CB2C 800E598C C444001C */ lwc1 $f4, 0x1c($v0) /* B5CB2C 800E598C C444001C */ lwc1 $f4, 0x1c($v0)
@ -5184,8 +5184,8 @@ glabel func_800E59AC
/* B5CB54 800E59B4 01C47023 */ subu $t6, $t6, $a0 /* B5CB54 800E59B4 01C47023 */ subu $t6, $t6, $a0
/* B5CB58 800E59B8 000E7080 */ sll $t6, $t6, 2 /* B5CB58 800E59B8 000E7080 */ sll $t6, $t6, 2
/* B5CB5C 800E59BC 01C47023 */ subu $t6, $t6, $a0 /* B5CB5C 800E59BC 01C47023 */ subu $t6, $t6, $a0
/* B5CB60 800E59C0 3C0F8017 */ lui $t7, %hi(D_8016F180) /* B5CB60 800E59C0 3C0F8017 */ lui $t7, %hi(gAudioContext)
/* B5CB64 800E59C4 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 /* B5CB64 800E59C4 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80
/* B5CB68 800E59C8 000E7140 */ sll $t6, $t6, 5 /* B5CB68 800E59C8 000E7140 */ sll $t6, $t6, 5
/* B5CB6C 800E59CC 01CF1021 */ addu $v0, $t6, $t7 /* B5CB6C 800E59CC 01CF1021 */ addu $v0, $t6, $t7
/* B5CB70 800E59D0 44800000 */ mtc1 $zero, $f0 /* B5CB70 800E59D0 44800000 */ mtc1 $zero, $f0
@ -5200,8 +5200,8 @@ glabel func_800E59AC
/* B5CB90 800E59F0 00000000 */ nop /* B5CB90 800E59F0 00000000 */ nop
glabel func_800E59F4 glabel func_800E59F4
/* B5CB94 800E59F4 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B5CB94 800E59F4 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B5CB98 800E59F8 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B5CB98 800E59F8 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5CB9C 800E59FC 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B5CB9C 800E59FC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B5CBA0 800E5A00 3C0E8017 */ lui $t6, %hi(D_80174D70) /* B5CBA0 800E5A00 3C0E8017 */ lui $t6, %hi(D_80174D70)
/* B5CBA4 800E5A04 3C0F8017 */ lui $t7, %hi(D_80174D88) # $t7, 0x8017 /* B5CBA4 800E5A04 3C0F8017 */ lui $t7, %hi(D_80174D88) # $t7, 0x8017
@ -5220,15 +5220,15 @@ glabel func_800E59F4
/* B5CBD8 800E5A38 24A54DB8 */ addiu $a1, %lo(D_80174DB8) # addiu $a1, $a1, 0x4db8 /* B5CBD8 800E5A38 24A54DB8 */ addiu $a1, %lo(D_80174DB8) # addiu $a1, $a1, 0x4db8
/* B5CBDC 800E5A3C 0C001874 */ jal osCreateMesgQueue /* B5CBDC 800E5A3C 0C001874 */ jal osCreateMesgQueue
/* B5CBE0 800E5A40 24060001 */ li $a2, 1 /* B5CBE0 800E5A40 24060001 */ li $a2, 1
/* B5CBE4 800E5A44 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B5CBE4 800E5A44 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B5CBE8 800E5A48 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B5CBE8 800E5A48 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5CBEC 800E5A4C 3C058017 */ lui $a1, %hi(D_80174DC0) # $a1, 0x8017 /* B5CBEC 800E5A4C 3C058017 */ lui $a1, %hi(D_80174DC0) # $a1, 0x8017
/* B5CBF0 800E5A50 24A54DC0 */ addiu $a1, %lo(D_80174DC0) # addiu $a1, $a1, 0x4dc0 /* B5CBF0 800E5A50 24A54DC0 */ addiu $a1, %lo(D_80174DC0) # addiu $a1, $a1, 0x4dc0
/* B5CBF4 800E5A54 8C445BEC */ lw $a0, 0x5bec($v0) /* B5CBF4 800E5A54 8C445BEC */ lw $a0, 0x5bec($v0)
/* B5CBF8 800E5A58 0C001874 */ jal osCreateMesgQueue /* B5CBF8 800E5A58 0C001874 */ jal osCreateMesgQueue
/* B5CBFC 800E5A5C 24060004 */ li $a2, 4 /* B5CBFC 800E5A5C 24060004 */ li $a2, 4
/* B5CC00 800E5A60 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B5CC00 800E5A60 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B5CC04 800E5A64 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B5CC04 800E5A64 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5CC08 800E5A68 3C058017 */ lui $a1, %hi(D_80174DBC) # $a1, 0x8017 /* B5CC08 800E5A68 3C058017 */ lui $a1, %hi(D_80174DBC) # $a1, 0x8017
/* B5CC0C 800E5A6C 24A54DBC */ addiu $a1, %lo(D_80174DBC) # addiu $a1, $a1, 0x4dbc /* B5CC0C 800E5A6C 24A54DBC */ addiu $a1, %lo(D_80174DBC) # addiu $a1, $a1, 0x4dbc
/* B5CC10 800E5A70 8C445BE4 */ lw $a0, 0x5be4($v0) /* B5CC10 800E5A70 8C445BE4 */ lw $a0, 0x5be4($v0)
@ -5240,8 +5240,8 @@ glabel func_800E59F4
/* B5CC28 800E5A88 00000000 */ nop /* B5CC28 800E5A88 00000000 */ nop
glabel func_800E5A8C glabel func_800E5A8C
/* B5CC2C 800E5A8C 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 /* B5CC2C 800E5A8C 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017
/* B5CC30 800E5A90 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 /* B5CC30 800E5A90 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80
/* B5CC34 800E5A94 90CF5BD8 */ lbu $t7, 0x5bd8($a2) /* B5CC34 800E5A94 90CF5BD8 */ lbu $t7, 0x5bd8($a2)
/* B5CC38 800E5A98 000FC0C0 */ sll $t8, $t7, 3 /* B5CC38 800E5A98 000FC0C0 */ sll $t8, $t7, 3
/* B5CC3C 800E5A9C 00D81021 */ addu $v0, $a2, $t8 /* B5CC3C 800E5A9C 00D81021 */ addu $v0, $a2, $t8
@ -5312,8 +5312,8 @@ glabel func_800E5B50
/* B5CD1C 800E5B7C 00000000 */ nop /* B5CD1C 800E5B7C 00000000 */ nop
glabel func_800E5B80 glabel func_800E5B80
/* B5CD20 800E5B80 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5CD20 800E5B80 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5CD24 800E5B84 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5CD24 800E5B84 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5CD28 800E5B88 90625BD8 */ lbu $v0, 0x5bd8($v1) /* B5CD28 800E5B88 90625BD8 */ lbu $v0, 0x5bd8($v1)
/* B5CD2C 800E5B8C 90675BD9 */ lbu $a3, 0x5bd9($v1) /* B5CD2C 800E5B8C 90675BD9 */ lbu $a3, 0x5bd9($v1)
/* B5CD30 800E5B90 3C0E8013 */ lui $t6, %hi(D_801304E8) # $t6, 0x8013 /* B5CD30 800E5B90 3C0E8013 */ lui $t6, %hi(D_801304E8) # $t6, 0x8013
@ -5335,10 +5335,10 @@ glabel func_800E5B80
/* B5CD6C 800E5BCC 8C645BEC */ lw $a0, 0x5bec($v1) /* B5CD6C 800E5BCC 8C645BEC */ lw $a0, 0x5bec($v1)
/* B5CD70 800E5BD0 0C000C18 */ jal osSendMesg /* B5CD70 800E5BD0 0C000C18 */ jal osSendMesg
/* B5CD74 800E5BD4 00003025 */ move $a2, $zero /* B5CD74 800E5BD4 00003025 */ move $a2, $zero
/* B5CD78 800E5BD8 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5CD78 800E5BD8 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5CD7C 800E5BDC 2401FFFF */ li $at, -1 /* B5CD7C 800E5BDC 2401FFFF */ li $at, -1
/* B5CD80 800E5BE0 10410005 */ beq $v0, $at, .L800E5BF8 /* B5CD80 800E5BE0 10410005 */ beq $v0, $at, .L800E5BF8
/* B5CD84 800E5BE4 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5CD84 800E5BE4 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5CD88 800E5BE8 90685BD8 */ lbu $t0, 0x5bd8($v1) /* B5CD88 800E5BE8 90685BD8 */ lbu $t0, 0x5bd8($v1)
/* B5CD8C 800E5BEC 00001025 */ move $v0, $zero /* B5CD8C 800E5BEC 00001025 */ move $v0, $zero
/* B5CD90 800E5BF0 10000003 */ b .L800E5C00 /* B5CD90 800E5BF0 10000003 */ b .L800E5C00
@ -5353,8 +5353,8 @@ glabel func_800E5B80
/* B5CDAC 800E5C0C 00000000 */ nop /* B5CDAC 800E5C0C 00000000 */ nop
glabel func_800E5C10 glabel func_800E5C10
/* B5CDB0 800E5C10 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B5CDB0 800E5C10 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B5CDB4 800E5C14 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B5CDB4 800E5C14 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B5CDB8 800E5C18 904E5BD8 */ lbu $t6, 0x5bd8($v0) /* B5CDB8 800E5C18 904E5BD8 */ lbu $t6, 0x5bd8($v0)
/* B5CDBC 800E5C1C A0405BDA */ sb $zero, 0x5bda($v0) /* B5CDBC 800E5C1C A0405BDA */ sb $zero, 0x5bda($v0)
/* B5CDC0 800E5C20 03E00008 */ jr $ra /* B5CDC0 800E5C20 03E00008 */ jr $ra
@ -5373,14 +5373,14 @@ glabel func_800E5C28
/* B5CDEC 800E5C4C 00809825 */ move $s3, $a0 /* B5CDEC 800E5C4C 00809825 */ move $s3, $a0
/* B5CDF0 800E5C50 304E00F0 */ andi $t6, $v0, 0xf0 /* B5CDF0 800E5C50 304E00F0 */ andi $t6, $v0, 0xf0
/* B5CDF4 800E5C54 15C10005 */ bne $t6, $at, .L800E5C6C /* B5CDF4 800E5C54 15C10005 */ bne $t6, $at, .L800E5C6C
/* B5CDF8 800E5C58 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B5CDF8 800E5C58 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B5CDFC 800E5C5C 0C039561 */ jal func_800E5584 /* B5CDFC 800E5C5C 0C039561 */ jal func_800E5584
/* B5CE00 800E5C60 00000000 */ nop /* B5CE00 800E5C60 00000000 */ nop
/* B5CE04 800E5C64 1000003A */ b .L800E5D50 /* B5CE04 800E5C64 1000003A */ b .L800E5D50
/* B5CE08 800E5C68 8FBF002C */ lw $ra, 0x2c($sp) /* B5CE08 800E5C68 8FBF002C */ lw $ra, 0x2c($sp)
.L800E5C6C: .L800E5C6C:
/* B5CE0C 800E5C6C 92640001 */ lbu $a0, 1($s3) /* B5CE0C 800E5C6C 92640001 */ lbu $a0, 1($s3)
/* B5CE10 800E5C70 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B5CE10 800E5C70 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
/* B5CE14 800E5C74 84AF285C */ lh $t7, 0x285c($a1) /* B5CE14 800E5C74 84AF285C */ lh $t7, 0x285c($a1)
/* B5CE18 800E5C78 0004C080 */ sll $t8, $a0, 2 /* B5CE18 800E5C78 0004C080 */ sll $t8, $a0, 2
/* B5CE1C 800E5C7C 0304C023 */ subu $t8, $t8, $a0 /* B5CE1C 800E5C7C 0304C023 */ subu $t8, $t8, $a0
@ -5454,8 +5454,8 @@ glabel func_800E5C28
glabel func_800E5D6C glabel func_800E5D6C
/* B5CF0C 800E5D6C 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B5CF0C 800E5D6C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B5CF10 800E5D70 AFB30020 */ sw $s3, 0x20($sp) /* B5CF10 800E5D70 AFB30020 */ sw $s3, 0x20($sp)
/* B5CF14 800E5D74 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 /* B5CF14 800E5D74 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017
/* B5CF18 800E5D78 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 /* B5CF18 800E5D78 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80
/* B5CF1C 800E5D7C 926E5BDA */ lbu $t6, 0x5bda($s3) /* B5CF1C 800E5D7C 926E5BDA */ lbu $t6, 0x5bda($s3)
/* B5CF20 800E5D80 AFBF0024 */ sw $ra, 0x24($sp) /* B5CF20 800E5D80 AFBF0024 */ sw $ra, 0x24($sp)
/* B5CF24 800E5D84 AFB2001C */ sw $s2, 0x1c($sp) /* B5CF24 800E5D84 AFB2001C */ sw $s2, 0x1c($sp)
@ -5543,8 +5543,8 @@ glabel func_800E5E84
/* B5D040 800E5EA0 00000000 */ nop /* B5D040 800E5EA0 00000000 */ nop
glabel func_800E5EA4 glabel func_800E5EA4
/* B5D044 800E5EA4 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5D044 800E5EA4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5D048 800E5EA8 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5D048 800E5EA8 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5D04C 800E5EAC 8C6E2844 */ lw $t6, 0x2844($v1) /* B5D04C 800E5EAC 8C6E2844 */ lw $t6, 0x2844($v1)
/* B5D050 800E5EB0 00041080 */ sll $v0, $a0, 2 /* B5D050 800E5EB0 00041080 */ sll $v0, $a0, 2
/* B5D054 800E5EB4 00441021 */ addu $v0, $v0, $a0 /* B5D054 800E5EB4 00441021 */ addu $v0, $v0, $a0
@ -5589,9 +5589,9 @@ glabel func_800E5F34
/* B5D0D8 800E5F38 AFB1001C */ sw $s1, 0x1c($sp) /* B5D0D8 800E5F38 AFB1001C */ sw $s1, 0x1c($sp)
/* B5D0DC 800E5F3C AFB20020 */ sw $s2, 0x20($sp) /* B5D0DC 800E5F3C AFB20020 */ sw $s2, 0x20($sp)
/* B5D0E0 800E5F40 AFB00018 */ sw $s0, 0x18($sp) /* B5D0E0 800E5F40 AFB00018 */ sw $s0, 0x18($sp)
/* B5D0E4 800E5F44 3C118017 */ lui $s1, %hi(D_8016F180) # $s1, 0x8017 /* B5D0E4 800E5F44 3C118017 */ lui $s1, %hi(gAudioContext) # $s1, 0x8017
/* B5D0E8 800E5F48 AFBF0024 */ sw $ra, 0x24($sp) /* B5D0E8 800E5F48 AFBF0024 */ sw $ra, 0x24($sp)
/* B5D0EC 800E5F4C 2631F180 */ addiu $s1, %lo(D_8016F180) # addiu $s1, $s1, -0xe80 /* B5D0EC 800E5F4C 2631F180 */ addiu $s1, %lo(gAudioContext) # addiu $s1, $s1, -0xe80
/* B5D0F0 800E5F50 2410FFFF */ li $s0, -1 /* B5D0F0 800E5F50 2410FFFF */ li $s0, -1
/* B5D0F4 800E5F54 27B20028 */ addiu $s2, $sp, 0x28 /* B5D0F4 800E5F54 27B20028 */ addiu $s2, $sp, 0x28
/* B5D0F8 800E5F58 8E245BE4 */ lw $a0, 0x5be4($s1) /* B5D0F8 800E5F58 8E245BE4 */ lw $a0, 0x5be4($s1)
@ -5613,15 +5613,15 @@ glabel func_800E5F88
/* B5D12C 800E5F8C AFBF0014 */ sw $ra, 0x14($sp) /* B5D12C 800E5F8C AFBF0014 */ sw $ra, 0x14($sp)
/* B5D130 800E5F90 0C0397CD */ jal func_800E5F34 /* B5D130 800E5F90 0C0397CD */ jal func_800E5F34
/* B5D134 800E5F94 AFA40028 */ sw $a0, 0x28($sp) /* B5D134 800E5F94 AFA40028 */ sw $a0, 0x28($sp)
/* B5D138 800E5F98 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5D138 800E5F98 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5D13C 800E5F9C 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5D13C 800E5F9C 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5D140 800E5FA0 90623518 */ lbu $v0, 0x3518($v1) /* B5D140 800E5FA0 90623518 */ lbu $v0, 0x3518($v1)
/* B5D144 800E5FA4 10400014 */ beqz $v0, .L800E5FF8 /* B5D144 800E5FA4 10400014 */ beqz $v0, .L800E5FF8
/* B5D148 800E5FA8 00000000 */ nop /* B5D148 800E5FA8 00000000 */ nop
/* B5D14C 800E5FAC 0C039704 */ jal func_800E5C10 /* B5D14C 800E5FAC 0C039704 */ jal func_800E5C10
/* B5D150 800E5FB0 AFA20024 */ sw $v0, 0x24($sp) /* B5D150 800E5FB0 AFA20024 */ sw $v0, 0x24($sp)
/* B5D154 800E5FB4 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B5D154 800E5FB4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B5D158 800E5FB8 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B5D158 800E5FB8 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B5D15C 800E5FBC 8FA70028 */ lw $a3, 0x28($sp) /* B5D15C 800E5FBC 8FA70028 */ lw $a3, 0x28($sp)
/* B5D160 800E5FC0 906E3519 */ lbu $t6, 0x3519($v1) /* B5D160 800E5FC0 906E3519 */ lbu $t6, 0x3519($v1)
/* B5D164 800E5FC4 8FA20024 */ lw $v0, 0x24($sp) /* B5D164 800E5FC4 8FA20024 */ lw $v0, 0x24($sp)
@ -5655,9 +5655,9 @@ glabel func_800E5F88
glabel func_800E6024 glabel func_800E6024
/* B5D1C4 800E6024 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B5D1C4 800E6024 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B5D1C8 800E6028 3C0F8017 */ lui $t7, %hi(D_8016F180) # $t7, 0x8017 /* B5D1C8 800E6028 3C0F8017 */ lui $t7, %hi(gAudioContext) # $t7, 0x8017
/* B5D1CC 800E602C AFBF0014 */ sw $ra, 0x14($sp) /* B5D1CC 800E602C AFBF0014 */ sw $ra, 0x14($sp)
/* B5D1D0 800E6030 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 /* B5D1D0 800E6030 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80
/* B5D1D4 800E6034 240E0001 */ li $t6, 1 /* B5D1D4 800E6034 240E0001 */ li $t6, 1
/* B5D1D8 800E6038 ADEE2984 */ sw $t6, 0x2984($t7) /* B5D1D8 800E6038 ADEE2984 */ sw $t6, 0x2984($t7)
/* B5D1DC 800E603C 3C188013 */ lui $t8, %hi(D_801304D8) # $t8, 0x8013 /* B5D1DC 800E603C 3C188013 */ lui $t8, %hi(D_801304D8) # $t8, 0x8013
@ -5666,8 +5666,8 @@ glabel func_800E6024
/* B5D1E8 800E6048 8FBF0014 */ lw $ra, 0x14($sp) /* B5D1E8 800E6048 8FBF0014 */ lw $ra, 0x14($sp)
/* B5D1EC 800E604C 0C0397E2 */ jal func_800E5F88 /* B5D1EC 800E604C 0C0397E2 */ jal func_800E5F88
/* B5D1F0 800E6050 00002025 */ move $a0, $zero /* B5D1F0 800E6050 00002025 */ move $a0, $zero
/* B5D1F4 800E6054 3C198017 */ lui $t9, %hi(D_8016F180) # $t9, 0x8017 /* B5D1F4 800E6054 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017
/* B5D1F8 800E6058 2739F180 */ addiu $t9, %lo(D_8016F180) # addiu $t9, $t9, -0xe80 /* B5D1F8 800E6058 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80
/* B5D1FC 800E605C A3203518 */ sb $zero, 0x3518($t9) /* B5D1FC 800E605C A3203518 */ sb $zero, 0x3518($t9)
/* B5D200 800E6060 8FBF0014 */ lw $ra, 0x14($sp) /* B5D200 800E6060 8FBF0014 */ lw $ra, 0x14($sp)
.L800E6064: .L800E6064:
@ -5680,8 +5680,8 @@ glabel func_800E6070
/* B5D214 800E6074 01C47023 */ subu $t6, $t6, $a0 /* B5D214 800E6074 01C47023 */ subu $t6, $t6, $a0
/* B5D218 800E6078 000E7080 */ sll $t6, $t6, 2 /* B5D218 800E6078 000E7080 */ sll $t6, $t6, 2
/* B5D21C 800E607C 01C47023 */ subu $t6, $t6, $a0 /* B5D21C 800E607C 01C47023 */ subu $t6, $t6, $a0
/* B5D220 800E6080 3C0F8017 */ lui $t7, %hi(D_8016F180) # $t7, 0x8017 /* B5D220 800E6080 3C0F8017 */ lui $t7, %hi(gAudioContext) # $t7, 0x8017
/* B5D224 800E6084 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 /* B5D224 800E6084 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80
/* B5D228 800E6088 000E7140 */ sll $t6, $t6, 5 /* B5D228 800E6088 000E7140 */ sll $t6, $t6, 5
/* B5D22C 800E608C 01CF1821 */ addu $v1, $t6, $t7 /* B5D22C 800E608C 01CF1821 */ addu $v1, $t6, $t7
/* B5D230 800E6090 8C783530 */ lw $t8, 0x3530($v1) /* B5D230 800E6090 8C783530 */ lw $t8, 0x3530($v1)
@ -6060,8 +6060,8 @@ glabel func_800E6590
/* B5D734 800E6594 01C47023 */ subu $t6, $t6, $a0 /* B5D734 800E6594 01C47023 */ subu $t6, $t6, $a0
/* B5D738 800E6598 000E7080 */ sll $t6, $t6, 2 /* B5D738 800E6598 000E7080 */ sll $t6, $t6, 2
/* B5D73C 800E659C 01C47023 */ subu $t6, $t6, $a0 /* B5D73C 800E659C 01C47023 */ subu $t6, $t6, $a0
/* B5D740 800E65A0 3C0F8017 */ lui $t7, %hi(D_8016F180) # $t7, 0x8017 /* B5D740 800E65A0 3C0F8017 */ lui $t7, %hi(gAudioContext) # $t7, 0x8017
/* B5D744 800E65A4 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 /* B5D744 800E65A4 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80
/* B5D748 800E65A8 000E7140 */ sll $t6, $t6, 5 /* B5D748 800E65A8 000E7140 */ sll $t6, $t6, 5
/* B5D74C 800E65AC 01CF1021 */ addu $v0, $t6, $t7 /* B5D74C 800E65AC 01CF1021 */ addu $v0, $t6, $t7
/* B5D750 800E65B0 8C583530 */ lw $t8, 0x3530($v0) /* B5D750 800E65B0 8C583530 */ lw $t8, 0x3530($v0)
@ -6144,8 +6144,8 @@ glabel func_800E66A0
/* B5D85C 800E66BC 00000000 */ nop /* B5D85C 800E66BC 00000000 */ nop
glabel func_800E66C0 glabel func_800E66C0
/* B5D860 800E66C0 3C0A8017 */ lui $t2, %hi(D_8016F180) # $t2, 0x8017 /* B5D860 800E66C0 3C0A8017 */ lui $t2, %hi(gAudioContext) # $t2, 0x8017
/* B5D864 800E66C4 254AF180 */ addiu $t2, %lo(D_8016F180) # addiu $t2, $t2, -0xe80 /* B5D864 800E66C4 254AF180 */ addiu $t2, %lo(gAudioContext) # addiu $t2, $t2, -0xe80
/* B5D868 800E66C8 8D452894 */ lw $a1, 0x2894($t2) /* B5D868 800E66C8 8D452894 */ lw $a1, 0x2894($t2)
/* B5D86C 800E66CC 27BDFFF8 */ addiu $sp, $sp, -8 /* B5D86C 800E66CC 27BDFFF8 */ addiu $sp, $sp, -8
/* B5D870 800E66D0 AFB00004 */ sw $s0, 4($sp) /* B5D870 800E66D0 AFB00004 */ sw $s0, 4($sp)
@ -6223,8 +6223,8 @@ glabel func_800E67C0
/* B5D964 800E67C4 AFBF0014 */ sw $ra, 0x14($sp) /* B5D964 800E67C4 AFBF0014 */ sw $ra, 0x14($sp)
/* B5D968 800E67C8 0C001BA8 */ jal osGetCount /* B5D968 800E67C8 0C001BA8 */ jal osGetCount
/* B5D96C 800E67CC 00000000 */ nop /* B5D96C 800E67CC 00000000 */ nop
/* B5D970 800E67D0 3C048017 */ lui $a0, %hi(D_8016F180) # $a0, 0x8017 /* B5D970 800E67D0 3C048017 */ lui $a0, %hi(gAudioContext) # $a0, 0x8017
/* B5D974 800E67D4 2484F180 */ addiu $a0, %lo(D_8016F180) # addiu $a0, $a0, -0xe80 /* B5D974 800E67D4 2484F180 */ addiu $a0, %lo(gAudioContext) # addiu $a0, $a0, -0xe80
/* B5D978 800E67D8 3C038013 */ lui $v1, %hi(D_801304F0) # $v1, 0x8013 /* B5D978 800E67D8 3C038013 */ lui $v1, %hi(D_801304F0) # $v1, 0x8013
/* B5D97C 800E67DC 8C6304F0 */ lw $v1, %lo(D_801304F0)($v1) /* B5D97C 800E67DC 8C6304F0 */ lw $v1, %lo(D_801304F0)($v1)
/* B5D980 800E67E0 8C8F289C */ lw $t7, 0x289c($a0) /* B5D980 800E67E0 8C8F289C */ lw $t7, 0x289c($a0)

File diff suppressed because it is too large Load diff

View file

@ -521,7 +521,7 @@ glabel func_800E8FB8
/* B6017C 800E8FDC 03E00008 */ jr $ra /* B6017C 800E8FDC 03E00008 */ jr $ra
/* B60180 800E8FE0 AC980098 */ sw $t8, 0x98($a0) /* B60180 800E8FE0 AC980098 */ sw $t8, 0x98($a0)
glabel func_800E8FE4 glabel Audio_AdsrInit
/* B60184 800E8FE4 AFA60008 */ sw $a2, 8($sp) /* B60184 800E8FE4 AFA60008 */ sw $a2, 8($sp)
/* B60188 800E8FE8 44800000 */ mtc1 $zero, $f0 /* B60188 800E8FE8 44800000 */ mtc1 $zero, $f0
/* B6018C 800E8FEC A0800000 */ sb $zero, ($a0) /* B6018C 800E8FEC A0800000 */ sb $zero, ($a0)

View file

@ -180,8 +180,8 @@ glabel L800E9530
/* B60720 800E9580 00000000 */ nop /* B60720 800E9580 00000000 */ nop
glabel func_800E9584 glabel func_800E9584
/* B60724 800E9584 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 /* B60724 800E9584 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017
/* B60728 800E9588 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 /* B60728 800E9588 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80
/* B6072C 800E958C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B6072C 800E958C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B60730 800E9590 25CF5AB0 */ addiu $t7, $t6, 0x5ab0 /* B60730 800E9590 25CF5AB0 */ addiu $t7, $t6, 0x5ab0
/* B60734 800E9594 AFBF0014 */ sw $ra, 0x14($sp) /* B60734 800E9594 AFBF0014 */ sw $ra, 0x14($sp)
@ -260,7 +260,7 @@ glabel func_800E9584
/* B60854 800E96B4 90B90000 */ lbu $t9, ($a1) /* B60854 800E96B4 90B90000 */ lbu $t9, ($a1)
/* B60858 800E96B8 24A40084 */ addiu $a0, $a1, 0x84 /* B60858 800E96B8 24A40084 */ addiu $a0, $a1, 0x84
/* B6085C 800E96BC 3328FFFE */ andi $t0, $t9, 0xfffe /* B6085C 800E96BC 3328FFFE */ andi $t0, $t9, 0xfffe
/* B60860 800E96C0 0C039F43 */ jal func_800E7D0C /* B60860 800E96C0 0C039F43 */ jal Audio_InitNoteLists
/* B60864 800E96C4 A0A80000 */ sb $t0, ($a1) /* B60864 800E96C4 A0A80000 */ sb $t0, ($a1)
.L800E96C8: .L800E96C8:
/* B60868 800E96C8 8FBF0014 */ lw $ra, 0x14($sp) /* B60868 800E96C8 8FBF0014 */ lw $ra, 0x14($sp)
@ -279,7 +279,7 @@ glabel func_800E96D8
/* B60894 800E96F4 00E02025 */ move $a0, $a3 /* B60894 800E96F4 00E02025 */ move $a0, $a3
/* B60898 800E96F8 3C048017 */ lui $a0, %hi(D_80174D08) /* B60898 800E96F8 3C048017 */ lui $a0, %hi(D_80174D08)
/* B6089C 800E96FC 24844D08 */ addiu $a0, %lo(D_80174D08) # addiu $a0, $a0, 0x4d08 /* B6089C 800E96FC 24844D08 */ addiu $a0, %lo(D_80174D08) # addiu $a0, $a0, 0x4d08
/* B608A0 800E9700 0C03A71A */ jal func_800E9C68 /* B608A0 800E9700 0C03A71A */ jal Audio_AudioListPopBack
/* B608A4 800E9704 AFA6001C */ sw $a2, 0x1c($sp) /* B608A4 800E9704 AFA6001C */ sw $a2, 0x1c($sp)
/* B608A8 800E9708 8FA6001C */ lw $a2, 0x1c($sp) /* B608A8 800E9708 8FA6001C */ lw $a2, 0x1c($sp)
/* B608AC 800E970C 14400007 */ bnez $v0, .L800E972C /* B608AC 800E970C 14400007 */ bnez $v0, .L800E972C
@ -288,7 +288,7 @@ glabel func_800E96D8
/* B608B8 800E9718 10000034 */ b .L800E97EC /* B608B8 800E9718 10000034 */ b .L800E97EC
/* B608BC 800E971C 2402FFFF */ li $v0, -1 /* B608BC 800E971C 2402FFFF */ li $v0, -1
.L800E9720: .L800E9720:
/* B608C0 800E9720 0C039ED8 */ jal func_800E7B60 /* B608C0 800E9720 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay
/* B608C4 800E9724 AFA6001C */ sw $a2, 0x1c($sp) /* B608C4 800E9724 AFA6001C */ sw $a2, 0x1c($sp)
/* B608C8 800E9728 8FA6001C */ lw $a2, 0x1c($sp) /* B608C8 800E9728 8FA6001C */ lw $a2, 0x1c($sp)
.L800E972C: .L800E972C:
@ -362,12 +362,12 @@ glabel func_800E97FC
/* B609CC 800E982C 001947C2 */ srl $t0, $t9, 0x1f /* B609CC 800E982C 001947C2 */ srl $t0, $t9, 0x1f
/* B609D0 800E9830 15010005 */ bne $t0, $at, .L800E9848 /* B609D0 800E9830 15010005 */ bne $t0, $at, .L800E9848
/* B609D4 800E9834 00000000 */ nop /* B609D4 800E9834 00000000 */ nop
/* B609D8 800E9838 0C039EE0 */ jal func_800E7B80 /* B609D8 800E9838 0C039EE0 */ jal Audio_SeqChanLayerNoteRelease
/* B609DC 800E983C AFA40018 */ sw $a0, 0x18($sp) /* B609DC 800E983C AFA40018 */ sw $a0, 0x18($sp)
/* B609E0 800E9840 10000004 */ b .L800E9854 /* B609E0 800E9840 10000004 */ b .L800E9854
/* B609E4 800E9844 8FA40018 */ lw $a0, 0x18($sp) /* B609E4 800E9844 8FA40018 */ lw $a0, 0x18($sp)
.L800E9848: .L800E9848:
/* B609E8 800E9848 0C039ED8 */ jal func_800E7B60 /* B609E8 800E9848 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay
/* B609EC 800E984C AFA40018 */ sw $a0, 0x18($sp) /* B609EC 800E984C AFA40018 */ sw $a0, 0x18($sp)
/* B609F0 800E9850 8FA40018 */ lw $a0, 0x18($sp) /* B609F0 800E9850 8FA40018 */ lw $a0, 0x18($sp)
.L800E9854: .L800E9854:
@ -393,7 +393,7 @@ glabel func_800E9878
/* B60A34 800E9894 10C00008 */ beqz $a2, .L800E98B8 /* B60A34 800E9894 10C00008 */ beqz $a2, .L800E98B8
/* B60A38 800E9898 24C50070 */ addiu $a1, $a2, 0x70 /* B60A38 800E9898 24C50070 */ addiu $a1, $a2, 0x70
/* B60A3C 800E989C AFA20018 */ sw $v0, 0x18($sp) /* B60A3C 800E989C AFA20018 */ sw $v0, 0x18($sp)
/* B60A40 800E98A0 0C03A70A */ jal func_800E9C28 /* B60A40 800E98A0 0C03A70A */ jal Audio_AudioListPushBack
/* B60A44 800E98A4 AFA6001C */ sw $a2, 0x1c($sp) /* B60A44 800E98A4 AFA6001C */ sw $a2, 0x1c($sp)
/* B60A48 800E98A8 0C03A5FF */ jal func_800E97FC /* B60A48 800E98A8 0C03A5FF */ jal func_800E97FC
/* B60A4C 800E98AC 8FA4001C */ lw $a0, 0x1c($sp) /* B60A4C 800E98AC 8FA4001C */ lw $a0, 0x1c($sp)
@ -421,7 +421,7 @@ glabel func_800E98C8
/* B60A94 800E98F4 26100001 */ addiu $s0, $s0, 1 /* B60A94 800E98F4 26100001 */ addiu $s0, $s0, 1
/* B60A98 800E98F8 5612FFFC */ bnel $s0, $s2, .L800E98EC /* B60A98 800E98F8 5612FFFC */ bnel $s0, $s2, .L800E98EC
/* B60A9C 800E98FC 02202025 */ move $a0, $s1 /* B60A9C 800E98FC 02202025 */ move $a0, $s1
/* B60AA0 800E9900 0C039F80 */ jal func_800E7E00 /* B60AA0 800E9900 0C039F80 */ jal Audio_NotePoolClear
/* B60AA4 800E9904 26240084 */ addiu $a0, $s1, 0x84 /* B60AA4 800E9904 26240084 */ addiu $a0, $s1, 0x84
/* B60AA8 800E9908 922E0000 */ lbu $t6, ($s1) /* B60AA8 800E9908 922E0000 */ lbu $t6, ($s1)
/* B60AAC 800E990C 31D9FF7F */ andi $t9, $t6, 0xff7f /* B60AAC 800E990C 31D9FF7F */ andi $t9, $t6, 0xff7f
@ -601,7 +601,7 @@ glabel func_800E9B6C
/* B60D18 800E9B78 00808025 */ move $s0, $a0 /* B60D18 800E9B78 00808025 */ move $s0, $a0
/* B60D1C 800E9B7C 0C03A68B */ jal func_800E9A2C /* B60D1C 800E9B7C 0C03A68B */ jal func_800E9A2C
/* B60D20 800E9B80 3405FFFF */ li $a1, 65535 /* B60D20 800E9B80 3405FFFF */ li $a1, 65535
/* B60D24 800E9B84 0C039F80 */ jal func_800E7E00 /* B60D24 800E9B84 0C039F80 */ jal Audio_NotePoolClear
/* B60D28 800E9B88 2604009C */ addiu $a0, $s0, 0x9c /* B60D28 800E9B88 2604009C */ addiu $a0, $s0, 0x9c
/* B60D2C 800E9B8C 8E0E0000 */ lw $t6, ($s0) /* B60D2C 800E9B8C 8E0E0000 */ lw $t6, ($s0)
/* B60D30 800E9B90 000E7FC2 */ srl $t7, $t6, 0x1f /* B60D30 800E9B90 000E7FC2 */ srl $t7, $t6, 0x1f
@ -626,8 +626,8 @@ glabel func_800E9B6C
/* B60D78 800E9BD8 0C038686 */ jal func_800E1A18 /* B60D78 800E9BD8 0C038686 */ jal func_800E1A18
/* B60D7C 800E9BDC 92040005 */ lbu $a0, 5($s0) /* B60D7C 800E9BDC 92040005 */ lbu $a0, 5($s0)
.L800E9BE0: .L800E9BE0:
/* B60D80 800E9BE0 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B60D80 800E9BE0 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B60D84 800E9BE4 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B60D84 800E9BE4 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B60D88 800E9BE8 846B2C22 */ lh $t3, 0x2c22($v1) /* B60D88 800E9BE8 846B2C22 */ lh $t3, 0x2c22($v1)
/* B60D8C 800E9BEC 92020005 */ lbu $v0, 5($s0) /* B60D8C 800E9BEC 92020005 */ lbu $v0, 5($s0)
/* B60D90 800E9BF0 544B0004 */ bnel $v0, $t3, .L800E9C04 /* B60D90 800E9BF0 544B0004 */ bnel $v0, $t3, .L800E9C04
@ -648,7 +648,7 @@ glabel func_800E9B6C
/* B60DC0 800E9C20 03E00008 */ jr $ra /* B60DC0 800E9C20 03E00008 */ jr $ra
/* B60DC4 800E9C24 00000000 */ nop /* B60DC4 800E9C24 00000000 */ nop
glabel func_800E9C28 glabel Audio_AudioListPushBack
/* B60DC8 800E9C28 8CAE0000 */ lw $t6, ($a1) /* B60DC8 800E9C28 8CAE0000 */ lw $t6, ($a1)
/* B60DCC 800E9C2C 15C0000C */ bnez $t6, .L800E9C60 /* B60DCC 800E9C2C 15C0000C */ bnez $t6, .L800E9C60
/* B60DD0 800E9C30 00000000 */ nop /* B60DD0 800E9C30 00000000 */ nop
@ -667,7 +667,7 @@ glabel func_800E9C28
/* B60E00 800E9C60 03E00008 */ jr $ra /* B60E00 800E9C60 03E00008 */ jr $ra
/* B60E04 800E9C64 00000000 */ nop /* B60E04 800E9C64 00000000 */ nop
glabel func_800E9C68 glabel Audio_AudioListPopBack
/* B60E08 800E9C68 8C830000 */ lw $v1, ($a0) /* B60E08 800E9C68 8C830000 */ lw $v1, ($a0)
/* B60E0C 800E9C6C 54640004 */ bnel $v1, $a0, .L800E9C80 /* B60E0C 800E9C6C 54640004 */ bnel $v1, $a0, .L800E9C80
/* B60E10 800E9C70 8C6E0000 */ lw $t6, ($v1) /* B60E10 800E9C70 8C6E0000 */ lw $t6, ($v1)
@ -688,8 +688,8 @@ glabel func_800E9C68
glabel func_800E9CA8 glabel func_800E9CA8
/* B60E48 800E9CA8 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B60E48 800E9CA8 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B60E4C 800E9CAC 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B60E4C 800E9CAC 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B60E50 800E9CB0 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B60E50 800E9CB0 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B60E54 800E9CB4 AFB30024 */ sw $s3, 0x24($sp) /* B60E54 800E9CB4 AFB30024 */ sw $s3, 0x24($sp)
/* B60E58 800E9CB8 3C138017 */ lui $s3, %hi(D_80174D08) # $s3, 0x8017 /* B60E58 800E9CB8 3C138017 */ lui $s3, %hi(D_80174D08) # $s3, 0x8017
/* B60E5C 800E9CBC 26734D08 */ addiu $s3, %lo(D_80174D08) # addiu $s3, $s3, 0x4d08 /* B60E5C 800E9CBC 26734D08 */ addiu $s3, %lo(D_80174D08) # addiu $s3, $s3, 0x4d08
@ -697,7 +697,7 @@ glabel func_800E9CA8
/* B60E64 800E9CC4 AFB20020 */ sw $s2, 0x20($sp) /* B60E64 800E9CC4 AFB20020 */ sw $s2, 0x20($sp)
/* B60E68 800E9CC8 AFB1001C */ sw $s1, 0x1c($sp) /* B60E68 800E9CC8 AFB1001C */ sw $s1, 0x1c($sp)
/* B60E6C 800E9CCC AFB00018 */ sw $s0, 0x18($sp) /* B60E6C 800E9CCC AFB00018 */ sw $s0, 0x18($sp)
/* B60E70 800E9CD0 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 /* B60E70 800E9CD0 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
/* B60E74 800E9CD4 3C118017 */ lui $s1, %hi(D_80172CA0) # $s1, 0x8017 /* B60E74 800E9CD4 3C118017 */ lui $s1, %hi(D_80172CA0) # $s1, 0x8017
/* B60E78 800E9CD8 3C128017 */ lui $s2, %hi(D_80172C30) # $s2, 0x8017 /* B60E78 800E9CD8 3C128017 */ lui $s2, %hi(D_80172C30) # $s2, 0x8017
/* B60E7C 800E9CDC 3C148017 */ lui $s4, %hi(D_80174CA0) # $s4, 0x8017 /* B60E7C 800E9CDC 3C148017 */ lui $s4, %hi(D_80174CA0) # $s4, 0x8017
@ -709,12 +709,12 @@ glabel func_800E9CA8
/* B60E94 800E9CF4 26944CA0 */ addiu $s4, %lo(D_80174CA0) # addiu $s4, $s4, 0x4ca0 /* B60E94 800E9CF4 26944CA0 */ addiu $s4, %lo(D_80174CA0) # addiu $s4, $s4, 0x4ca0
/* B60E98 800E9CF8 26522C30 */ addiu $s2, %lo(D_80172C30) # addiu $s2, $s2, 0x2c30 /* B60E98 800E9CF8 26522C30 */ addiu $s2, %lo(D_80172C30) # addiu $s2, $s2, 0x2c30
/* B60E9C 800E9CFC 26312CA0 */ addiu $s1, %lo(D_80172CA0) # addiu $s1, $s1, 0x2ca0 /* B60E9C 800E9CFC 26312CA0 */ addiu $s1, %lo(D_80172CA0) # addiu $s1, $s1, 0x2ca0
/* B60EA0 800E9D00 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 /* B60EA0 800E9D00 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
.L800E9D04: .L800E9D04:
/* B60EA4 800E9D04 AE123B28 */ sw $s2, 0x3b28($s0) /* B60EA4 800E9D04 AE123B28 */ sw $s2, 0x3b28($s0)
/* B60EA8 800E9D08 AE003B20 */ sw $zero, 0x3b20($s0) /* B60EA8 800E9D08 AE003B20 */ sw $zero, 0x3b20($s0)
/* B60EAC 800E9D0C 02602025 */ move $a0, $s3 /* B60EAC 800E9D0C 02602025 */ move $a0, $s3
/* B60EB0 800E9D10 0C03A70A */ jal func_800E9C28 /* B60EB0 800E9D10 0C03A70A */ jal Audio_AudioListPushBack
/* B60EB4 800E9D14 02202825 */ move $a1, $s1 /* B60EB4 800E9D14 02202825 */ move $a1, $s1
/* B60EB8 800E9D18 26310080 */ addiu $s1, $s1, 0x80 /* B60EB8 800E9D18 26310080 */ addiu $s1, $s1, 0x80
/* B60EBC 800E9D1C 26100080 */ addiu $s0, $s0, 0x80 /* B60EBC 800E9D1C 26100080 */ addiu $s0, $s0, 0x80
@ -792,7 +792,7 @@ glabel func_800E9DD4
/* B60FB8 800E9E18 0109082A */ slt $at, $t0, $t1 /* B60FB8 800E9E18 0109082A */ slt $at, $t0, $t1
/* B60FBC 800E9E1C 5420002A */ bnezl $at, .L800E9EC8 /* B60FBC 800E9E1C 5420002A */ bnezl $at, .L800E9EC8
/* B60FC0 800E9E20 8FBF001C */ lw $ra, 0x1c($sp) /* B60FC0 800E9E20 8FBF001C */ lw $ra, 0x1c($sp)
/* B60FC4 800E9E24 0C039ED8 */ jal func_800E7B60 /* B60FC4 800E9E24 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay
/* B60FC8 800E9E28 00000000 */ nop /* B60FC8 800E9E28 00000000 */ nop
/* B60FCC 800E9E2C 920B0000 */ lbu $t3, ($s0) /* B60FCC 800E9E2C 920B0000 */ lbu $t3, ($s0)
/* B60FD0 800E9E30 356C0020 */ ori $t4, $t3, 0x20 /* B60FD0 800E9E30 356C0020 */ ori $t4, $t3, 0x20
@ -834,7 +834,7 @@ glabel func_800E9DD4
/* B61054 800E9EB4 07230004 */ bgezl $t9, .L800E9EC8 /* B61054 800E9EB4 07230004 */ bgezl $t9, .L800E9EC8
/* B61058 800E9EB8 8FBF001C */ lw $ra, 0x1c($sp) /* B61058 800E9EB8 8FBF001C */ lw $ra, 0x1c($sp)
.L800E9EBC: .L800E9EBC:
/* B6105C 800E9EBC 0C039ED8 */ jal func_800E7B60 /* B6105C 800E9EBC 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay
/* B61060 800E9EC0 02002025 */ move $a0, $s0 /* B61060 800E9EC0 02002025 */ move $a0, $s0
.L800E9EC4: .L800E9EC4:
/* B61064 800E9EC4 8FBF001C */ lw $ra, 0x1c($sp) /* B61064 800E9EC4 8FBF001C */ lw $ra, 0x1c($sp)
@ -851,7 +851,7 @@ glabel func_800E9ED8
/* B61084 800E9EE4 000EC0C0 */ sll $t8, $t6, 3 /* B61084 800E9EE4 000EC0C0 */ sll $t8, $t6, 3
/* B61088 800E9EE8 07020006 */ bltzl $t8, .L800E9F04 /* B61088 800E9EE8 07020006 */ bltzl $t8, .L800E9F04
/* B6108C 800E9EEC 8C82002C */ lw $v0, 0x2c($a0) /* B6108C 800E9EEC 8C82002C */ lw $v0, 0x2c($a0)
/* B61090 800E9EF0 0C039ED8 */ jal func_800E7B60 /* B61090 800E9EF0 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay
/* B61094 800E9EF4 AFA40018 */ sw $a0, 0x18($sp) /* B61094 800E9EF4 AFA40018 */ sw $a0, 0x18($sp)
/* B61098 800E9EF8 1000000A */ b .L800E9F24 /* B61098 800E9EF8 1000000A */ b .L800E9F24
/* B6109C 800E9EFC 8FA40018 */ lw $a0, 0x18($sp) /* B6109C 800E9EFC 8FA40018 */ lw $a0, 0x18($sp)
@ -862,7 +862,7 @@ glabel func_800E9ED8
/* B610AC 800E9F0C 8C590048 */ lw $t9, 0x48($v0) /* B610AC 800E9F0C 8C590048 */ lw $t9, 0x48($v0)
/* B610B0 800E9F10 54990005 */ bnel $a0, $t9, .L800E9F28 /* B610B0 800E9F10 54990005 */ bnel $a0, $t9, .L800E9F28
/* B610B4 800E9F14 90820020 */ lbu $v0, 0x20($a0) /* B610B4 800E9F14 90820020 */ lbu $v0, 0x20($a0)
/* B610B8 800E9F18 0C039ED8 */ jal func_800E7B60 /* B610B8 800E9F18 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay
/* B610BC 800E9F1C AFA40018 */ sw $a0, 0x18($sp) /* B610BC 800E9F1C AFA40018 */ sw $a0, 0x18($sp)
/* B610C0 800E9F20 8FA40018 */ lw $a0, 0x18($sp) /* B610C0 800E9F20 8FA40018 */ lw $a0, 0x18($sp)
.L800E9F24: .L800E9F24:
@ -942,19 +942,19 @@ glabel func_800E9F64
/* B611C8 800EA028 00E02825 */ move $a1, $a3 /* B611C8 800EA028 00E02825 */ move $a1, $a3
/* B611CC 800EA02C 55000018 */ bnezl $t0, .L800EA090 /* B611CC 800EA02C 55000018 */ bnezl $t0, .L800EA090
/* B611D0 800EA030 8CE6002C */ lw $a2, 0x2c($a3) /* B611D0 800EA030 8CE6002C */ lw $a2, 0x2c($a3)
/* B611D4 800EA034 0C039F29 */ jal func_800E7CA4 /* B611D4 800EA034 0C039F29 */ jal Audio_InitSyntheticWave
/* B611D8 800EA038 AFA70018 */ sw $a3, 0x18($sp) /* B611D8 800EA038 AFA70018 */ sw $a3, 0x18($sp)
/* B611DC 800EA03C 10000013 */ b .L800EA08C /* B611DC 800EA03C 10000013 */ b .L800EA08C
/* B611E0 800EA040 8FA70018 */ lw $a3, 0x18($sp) /* B611E0 800EA040 8FA70018 */ lw $a3, 0x18($sp)
.L800EA044: .L800EA044:
/* B611E4 800EA044 14A00004 */ bnez $a1, .L800EA058 /* B611E4 800EA044 14A00004 */ bnez $a1, .L800EA058
/* B611E8 800EA048 00E02025 */ move $a0, $a3 /* B611E8 800EA048 00E02025 */ move $a0, $a3
/* B611EC 800EA04C 0C039ED8 */ jal func_800E7B60 /* B611EC 800EA04C 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay
/* B611F0 800EA050 AFA70018 */ sw $a3, 0x18($sp) /* B611F0 800EA050 AFA70018 */ sw $a3, 0x18($sp)
/* B611F4 800EA054 8FA70018 */ lw $a3, 0x18($sp) /* B611F4 800EA054 8FA70018 */ lw $a3, 0x18($sp)
.L800EA058: .L800EA058:
/* B611F8 800EA058 00E02025 */ move $a0, $a3 /* B611F8 800EA058 00E02025 */ move $a0, $a3
/* B611FC 800EA05C 0C03A12D */ jal func_800E84B4 /* B611FC 800EA05C 0C03A12D */ jal Audio_AllocNote
/* B61200 800EA060 AFA70018 */ sw $a3, 0x18($sp) /* B61200 800EA060 AFA70018 */ sw $a3, 0x18($sp)
/* B61204 800EA064 8FA70018 */ lw $a3, 0x18($sp) /* B61204 800EA064 8FA70018 */ lw $a3, 0x18($sp)
/* B61208 800EA068 10400008 */ beqz $v0, .L800EA08C /* B61208 800EA068 10400008 */ beqz $v0, .L800EA08C
@ -1081,7 +1081,7 @@ glabel L800EA1E8
/* B613B0 800EA210 922D0000 */ lbu $t5, ($s1) /* B613B0 800EA210 922D0000 */ lbu $t5, ($s1)
/* B613B4 800EA214 02202025 */ move $a0, $s1 /* B613B4 800EA214 02202025 */ move $a0, $s1
/* B613B8 800EA218 31AEFFFD */ andi $t6, $t5, 0xfffd /* B613B8 800EA218 31AEFFFD */ andi $t6, $t5, 0xfffd
/* B613BC 800EA21C 0C039ED8 */ jal func_800E7B60 /* B613BC 800EA21C 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay
/* B613C0 800EA220 A22E0000 */ sb $t6, ($s1) /* B613C0 800EA220 A22E0000 */ sb $t6, ($s1)
/* B613C4 800EA224 1000FFB4 */ b .L800EA0F8 /* B613C4 800EA224 1000FFB4 */ b .L800EA0F8
/* B613C8 800EA228 00000000 */ nop /* B613C8 800EA228 00000000 */ nop
@ -1274,7 +1274,7 @@ glabel func_800EA440
/* B61658 800EA4B8 90640007 */ lbu $a0, 7($v1) /* B61658 800EA4B8 90640007 */ lbu $a0, 7($v1)
/* B6165C 800EA4BC AFAB0074 */ sw $t3, 0x74($sp) /* B6165C 800EA4BC AFAB0074 */ sw $t3, 0x74($sp)
/* B61660 800EA4C0 AFAA0040 */ sw $t2, 0x40($sp) /* B61660 800EA4C0 AFAA0040 */ sw $t2, 0x40($sp)
/* B61664 800EA4C4 0C039D5B */ jal func_800E756C /* B61664 800EA4C4 0C039D5B */ jal Audio_GetDrum
/* B61668 800EA4C8 AFA60078 */ sw $a2, 0x78($sp) /* B61668 800EA4C8 AFA60078 */ sw $a2, 0x78($sp)
/* B6166C 800EA4CC 8FA60078 */ lw $a2, 0x78($sp) /* B6166C 800EA4CC 8FA60078 */ lw $a2, 0x78($sp)
/* B61670 800EA4D0 8FAA0040 */ lw $t2, 0x40($sp) /* B61670 800EA4D0 8FAA0040 */ lw $t2, 0x40($sp)
@ -1301,8 +1301,8 @@ glabel func_800EA440
.L800EA520: .L800EA520:
/* B616C0 800EA520 ACC3004C */ sw $v1, 0x4c($a2) /* B616C0 800EA520 ACC3004C */ sw $v1, 0x4c($a2)
/* B616C4 800EA524 C4640004 */ lwc1 $f4, 4($v1) /* B616C4 800EA524 C4640004 */ lwc1 $f4, 4($v1)
/* B616C8 800EA528 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B616C8 800EA528 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B616CC 800EA52C 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B616CC 800EA52C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
/* B616D0 800EA530 10000103 */ b .L800EA940 /* B616D0 800EA530 10000103 */ b .L800EA940
/* B616D4 800EA534 E4C40030 */ swc1 $f4, 0x30($a2) /* B616D4 800EA534 E4C40030 */ swc1 $f4, 0x30($a2)
.L800EA538: .L800EA538:
@ -1315,7 +1315,7 @@ glabel func_800EA440
/* B616F0 800EA550 30E5FFFF */ andi $a1, $a3, 0xffff /* B616F0 800EA550 30E5FFFF */ andi $a1, $a3, 0xffff
/* B616F4 800EA554 AFAB0074 */ sw $t3, 0x74($sp) /* B616F4 800EA554 AFAB0074 */ sw $t3, 0x74($sp)
/* B616F8 800EA558 AFAA0040 */ sw $t2, 0x40($sp) /* B616F8 800EA558 AFAA0040 */ sw $t2, 0x40($sp)
/* B616FC 800EA55C 0C039D94 */ jal func_800E7650 /* B616FC 800EA55C 0C039D94 */ jal Audio_GetUnkInstrument
/* B61700 800EA560 AFA60078 */ sw $a2, 0x78($sp) /* B61700 800EA560 AFA60078 */ sw $a2, 0x78($sp)
/* B61704 800EA564 8FA60078 */ lw $a2, 0x78($sp) /* B61704 800EA564 8FA60078 */ lw $a2, 0x78($sp)
/* B61708 800EA568 8FAA0040 */ lw $t2, 0x40($sp) /* B61708 800EA568 8FAA0040 */ lw $t2, 0x40($sp)
@ -1332,8 +1332,8 @@ glabel func_800EA440
.L800EA594: .L800EA594:
/* B61734 800EA594 ACC2004C */ sw $v0, 0x4c($a2) /* B61734 800EA594 ACC2004C */ sw $v0, 0x4c($a2)
/* B61738 800EA598 C4460004 */ lwc1 $f6, 4($v0) /* B61738 800EA598 C4460004 */ lwc1 $f6, 4($v0)
/* B6173C 800EA59C 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B6173C 800EA59C 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B61740 800EA5A0 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B61740 800EA5A0 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
/* B61744 800EA5A4 100000E6 */ b .L800EA940 /* B61744 800EA5A4 100000E6 */ b .L800EA940
/* B61748 800EA5A8 E4C60030 */ swc1 $f6, 0x30($a2) /* B61748 800EA5A8 E4C60030 */ swc1 $f6, 0x30($a2)
/* B6174C 800EA5AC 854F000E */ lh $t7, 0xe($t2) /* B6174C 800EA5AC 854F000E */ lh $t7, 0xe($t2)
@ -1379,7 +1379,7 @@ glabel func_800EA440
/* B617DC 800EA63C AFA70020 */ sw $a3, 0x20($sp) /* B617DC 800EA63C AFA70020 */ sw $a3, 0x20($sp)
/* B617E0 800EA640 AFA8001C */ sw $t0, 0x1c($sp) /* B617E0 800EA640 AFA8001C */ sw $t0, 0x1c($sp)
/* B617E4 800EA644 A3A9003F */ sb $t1, 0x3f($sp) /* B617E4 800EA644 A3A9003F */ sb $t1, 0x3f($sp)
/* B617E8 800EA648 0C039D17 */ jal func_800E745C /* B617E8 800EA648 0C039D17 */ jal Audio_InstrumentGetAudioBankSound
/* B617EC 800EA64C AFAA0040 */ sw $t2, 0x40($sp) /* B617EC 800EA64C AFAA0040 */ sw $t2, 0x40($sp)
/* B617F0 800EA650 8FA60078 */ lw $a2, 0x78($sp) /* B617F0 800EA650 8FA60078 */ lw $a2, 0x78($sp)
/* B617F4 800EA654 8FA70020 */ lw $a3, 0x20($sp) /* B617F4 800EA654 8FA70020 */ lw $a3, 0x20($sp)
@ -1402,9 +1402,9 @@ glabel func_800EA440
/* B61834 800EA694 000E7080 */ sll $t6, $t6, 2 /* B61834 800EA694 000E7080 */ sll $t6, $t6, 2
/* B61838 800EA698 01C27023 */ subu $t6, $t6, $v0 /* B61838 800EA698 01C27023 */ subu $t6, $t6, $v0
/* B6183C 800EA69C 000E70C0 */ sll $t6, $t6, 3 /* B6183C 800EA69C 000E70C0 */ sll $t6, $t6, 3
/* B61840 800EA6A0 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B61840 800EA6A0 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B61844 800EA6A4 01C27021 */ addu $t6, $t6, $v0 /* B61844 800EA6A4 01C27021 */ addu $t6, $t6, $v0
/* B61848 800EA6A8 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B61848 800EA6A8 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
/* B6184C 800EA6AC 000E70C0 */ sll $t6, $t6, 3 /* B6184C 800EA6AC 000E70C0 */ sll $t6, $t6, 3
/* B61850 800EA6B0 3C01FFFD */ lui $at, (0xFFFDEC98 >> 16) # lui $at, 0xfffd /* B61850 800EA6B0 3C01FFFD */ lui $at, (0xFFFDEC98 >> 16) # lui $at, 0xfffd
/* B61854 800EA6B4 3421EC98 */ ori $at, (0xFFFDEC98 & 0xFFFF) # ori $at, $at, 0xec98 /* B61854 800EA6B4 3421EC98 */ ori $at, (0xFFFDEC98 & 0xFFFF) # ori $at, $at, 0xec98
@ -1426,11 +1426,11 @@ glabel func_800EA440
/* B61890 800EA6F0 2404FF7F */ li $a0, -129 /* B61890 800EA6F0 2404FF7F */ li $a0, -129
/* B61894 800EA6F4 0044C024 */ and $t8, $v0, $a0 /* B61894 800EA6F4 0044C024 */ and $t8, $v0, $a0
/* B61898 800EA6F8 2719FFFF */ addiu $t9, $t8, -1 /* B61898 800EA6F8 2719FFFF */ addiu $t9, $t8, -1
/* B6189C 800EA6FC 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B6189C 800EA6FC 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B618A0 800EA700 2F210005 */ sltiu $at, $t9, 5 /* B618A0 800EA700 2F210005 */ sltiu $at, $t9, 5
/* B618A4 800EA704 46005382 */ mul.s $f14, $f10, $f0 /* B618A4 800EA704 46005382 */ mul.s $f14, $f10, $f0
/* B618A8 800EA708 1020000D */ beqz $at, .L800EA740 /* B618A8 800EA708 1020000D */ beqz $at, .L800EA740
/* B618AC 800EA70C 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B618AC 800EA70C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
/* B618B0 800EA710 0019C880 */ sll $t9, $t9, 2 /* B618B0 800EA710 0019C880 */ sll $t9, $t9, 2
/* B618B4 800EA714 3C018015 */ lui $at, %hi(jtbl_80149698) /* B618B4 800EA714 3C018015 */ lui $at, %hi(jtbl_80149698)
/* B618B8 800EA718 00390821 */ addu $at, $at, $t9 /* B618B8 800EA718 00390821 */ addu $at, $at, $t9
@ -1544,7 +1544,7 @@ glabel L800EA734
/* B61A28 800EA888 00E02825 */ move $a1, $a3 /* B61A28 800EA888 00E02825 */ move $a1, $a3
/* B61A2C 800EA88C AFA60078 */ sw $a2, 0x78($sp) /* B61A2C 800EA88C AFA60078 */ sw $a2, 0x78($sp)
/* B61A30 800EA890 AFA70020 */ sw $a3, 0x20($sp) /* B61A30 800EA890 AFA70020 */ sw $a3, 0x20($sp)
/* B61A34 800EA894 0C039D17 */ jal func_800E745C /* B61A34 800EA894 0C039D17 */ jal Audio_InstrumentGetAudioBankSound
/* B61A38 800EA898 AFAA0040 */ sw $t2, 0x40($sp) /* B61A38 800EA898 AFAA0040 */ sw $t2, 0x40($sp)
/* B61A3C 800EA89C 8FA60078 */ lw $a2, 0x78($sp) /* B61A3C 800EA89C 8FA60078 */ lw $a2, 0x78($sp)
/* B61A40 800EA8A0 8FA70020 */ lw $a3, 0x20($sp) /* B61A40 800EA8A0 8FA70020 */ lw $a3, 0x20($sp)
@ -1577,9 +1577,9 @@ glabel L800EA734
/* B61AA8 800EA908 000C6080 */ sll $t4, $t4, 2 /* B61AA8 800EA908 000C6080 */ sll $t4, $t4, 2
/* B61AAC 800EA90C 01826023 */ subu $t4, $t4, $v0 /* B61AAC 800EA90C 01826023 */ subu $t4, $t4, $v0
/* B61AB0 800EA910 000C60C0 */ sll $t4, $t4, 3 /* B61AB0 800EA910 000C60C0 */ sll $t4, $t4, 3
/* B61AB4 800EA914 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 /* B61AB4 800EA914 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
/* B61AB8 800EA918 01826021 */ addu $t4, $t4, $v0 /* B61AB8 800EA918 01826021 */ addu $t4, $t4, $v0
/* B61ABC 800EA91C 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B61ABC 800EA91C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
/* B61AC0 800EA920 000C60C0 */ sll $t4, $t4, 3 /* B61AC0 800EA920 000C60C0 */ sll $t4, $t4, 3
/* B61AC4 800EA924 3C01FFFD */ li $at, 0xFFFD0000 # 0.000000 /* B61AC4 800EA924 3C01FFFD */ li $at, 0xFFFD0000 # 0.000000
/* B61AC8 800EA928 3421EC98 */ ori $at, (0xFFFDEC98 & 0xFFFF) # ori $at, $at, 0xec98 /* B61AC8 800EA928 3421EC98 */ ori $at, (0xFFFDEC98 & 0xFFFF) # ori $at, $at, 0xec98
@ -1587,8 +1587,8 @@ glabel L800EA734
/* B61AD0 800EA930 01A17021 */ addu $t6, $t5, $at /* B61AD0 800EA930 01A17021 */ addu $t6, $t5, $at
/* B61AD4 800EA934 ACCE004C */ sw $t6, 0x4c($a2) /* B61AD4 800EA934 ACCE004C */ sw $t6, 0x4c($a2)
.L800EA938: .L800EA938:
/* B61AD8 800EA938 3C058017 */ lui $a1, %hi(D_8016F180) /* B61AD8 800EA938 3C058017 */ lui $a1, %hi(gAudioContext)
/* B61ADC 800EA93C 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 /* B61ADC 800EA93C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
.L800EA940: .L800EA940:
/* B61AE0 800EA940 C4D20030 */ lwc1 $f18, 0x30($a2) /* B61AE0 800EA940 C4D20030 */ lwc1 $f18, 0x30($a2)
.L800EA944: .L800EA944:
@ -2027,7 +2027,7 @@ glabel func_800EAF24
/* B620D8 800EAF38 AFA60028 */ sw $a2, 0x28($sp) /* B620D8 800EAF38 AFA60028 */ sw $a2, 0x28($sp)
/* B620DC 800EAF3C AFA7002C */ sw $a3, 0x2c($sp) /* B620DC 800EAF3C AFA7002C */ sw $a3, 0x2c($sp)
/* B620E0 800EAF40 90840007 */ lbu $a0, 7($a0) /* B620E0 800EAF40 90840007 */ lbu $a0, 7($a0)
/* B620E4 800EAF44 0C039D26 */ jal func_800E7498 /* B620E4 800EAF44 0C039D26 */ jal Audio_GetInstrumentInner
/* B620E8 800EAF48 AFA50018 */ sw $a1, 0x18($sp) /* B620E8 800EAF48 AFA50018 */ sw $a1, 0x18($sp)
/* B620EC 800EAF4C 8FA50018 */ lw $a1, 0x18($sp) /* B620EC 800EAF4C 8FA50018 */ lw $a1, 0x18($sp)
/* B620F0 800EAF50 8FA60028 */ lw $a2, 0x28($sp) /* B620F0 800EAF50 8FA60028 */ lw $a2, 0x28($sp)
@ -2225,15 +2225,15 @@ glabel L800EB1E0
/* B6238C 800EB1EC A28A0000 */ sb $t2, ($s4) /* B6238C 800EB1EC A28A0000 */ sb $t2, ($s4)
glabel L800EB1F0 glabel L800EB1F0
/* B62390 800EB1F0 26900084 */ addiu $s0, $s4, 0x84 /* B62390 800EB1F0 26900084 */ addiu $s0, $s4, 0x84
/* B62394 800EB1F4 0C039F80 */ jal func_800E7E00 /* B62394 800EB1F4 0C039F80 */ jal Audio_NotePoolClear
/* B62398 800EB1F8 02002025 */ move $a0, $s0 /* B62398 800EB1F8 02002025 */ move $a0, $s0
/* B6239C 800EB1FC 93A50063 */ lbu $a1, 0x63($sp) /* B6239C 800EB1FC 93A50063 */ lbu $a1, 0x63($sp)
/* B623A0 800EB200 0C039FD8 */ jal func_800E7F60 /* B623A0 800EB200 0C039FD8 */ jal Audio_NotePoolFill
/* B623A4 800EB204 02002025 */ move $a0, $s0 /* B623A4 800EB204 02002025 */ move $a0, $s0
/* B623A8 800EB208 1000FFBA */ b .L800EB0F4 /* B623A8 800EB208 1000FFBA */ b .L800EB0F4
/* B623AC 800EB20C 00000000 */ nop /* B623AC 800EB20C 00000000 */ nop
glabel L800EB210 glabel L800EB210
/* B623B0 800EB210 0C039F80 */ jal func_800E7E00 /* B623B0 800EB210 0C039F80 */ jal Audio_NotePoolClear
/* B623B4 800EB214 26840084 */ addiu $a0, $s4, 0x84 /* B623B4 800EB214 26840084 */ addiu $a0, $s4, 0x84
/* B623B8 800EB218 1000FFB6 */ b .L800EB0F4 /* B623B8 800EB218 1000FFB6 */ b .L800EB0F4
/* B623BC 800EB21C 00000000 */ nop /* B623BC 800EB21C 00000000 */ nop
@ -3166,19 +3166,19 @@ glabel L800EBE68
/* B63098 800EBEF8 00000000 */ nop /* B63098 800EBEF8 00000000 */ nop
glabel L800EBEFC glabel L800EBEFC
/* B6309C 800EBEFC 2650009C */ addiu $s0, $s2, 0x9c /* B6309C 800EBEFC 2650009C */ addiu $s0, $s2, 0x9c
/* B630A0 800EBF00 0C039F80 */ jal func_800E7E00 /* B630A0 800EBF00 0C039F80 */ jal Audio_NotePoolClear
/* B630A4 800EBF04 02002025 */ move $a0, $s0 /* B630A4 800EBF04 02002025 */ move $a0, $s0
/* B630A8 800EBF08 0C03A752 */ jal func_800E9D48 /* B630A8 800EBF08 0C03A752 */ jal func_800E9D48
/* B630AC 800EBF0C 02202025 */ move $a0, $s1 /* B630AC 800EBF0C 02202025 */ move $a0, $s1
/* B630B0 800EBF10 02002025 */ move $a0, $s0 /* B630B0 800EBF10 02002025 */ move $a0, $s0
/* B630B4 800EBF14 0C039FD8 */ jal func_800E7F60 /* B630B4 800EBF14 0C039FD8 */ jal Audio_NotePoolFill
/* B630B8 800EBF18 00402825 */ move $a1, $v0 /* B630B8 800EBF18 00402825 */ move $a1, $v0
/* B630BC 800EBF1C 1000FFD2 */ b .L800EBE68 /* B630BC 800EBF1C 1000FFD2 */ b .L800EBE68
/* B630C0 800EBF20 00000000 */ nop /* B630C0 800EBF20 00000000 */ nop
/* B630C4 800EBF24 1000FFD0 */ b .L800EBE68 /* B630C4 800EBF24 1000FFD0 */ b .L800EBE68
/* B630C8 800EBF28 00000000 */ nop /* B630C8 800EBF28 00000000 */ nop
glabel L800EBF2C glabel L800EBF2C
/* B630CC 800EBF2C 0C039F80 */ jal func_800E7E00 /* B630CC 800EBF2C 0C039F80 */ jal Audio_NotePoolClear
/* B630D0 800EBF30 2644009C */ addiu $a0, $s2, 0x9c /* B630D0 800EBF30 2644009C */ addiu $a0, $s2, 0x9c
/* B630D4 800EBF34 1000FFCC */ b .L800EBE68 /* B630D4 800EBF34 1000FFCC */ b .L800EBE68
/* B630D8 800EBF38 00000000 */ nop /* B630D8 800EBF38 00000000 */ nop
@ -3629,8 +3629,8 @@ glabel L800EC4E4
/* B63700 800EC560 27BD0068 */ addiu $sp, $sp, 0x68 /* B63700 800EC560 27BD0068 */ addiu $sp, $sp, 0x68
glabel func_800EC564 glabel func_800EC564
/* B63704 800EC564 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 /* B63704 800EC564 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
/* B63708 800EC568 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 /* B63708 800EC568 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
/* B6370C 800EC56C 846E2854 */ lh $t6, 0x2854($v1) /* B6370C 800EC56C 846E2854 */ lh $t6, 0x2854($v1)
/* B63710 800EC570 8C792894 */ lw $t9, 0x2894($v1) /* B63710 800EC570 8C792894 */ lw $t9, 0x2894($v1)
/* B63714 800EC574 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B63714 800EC574 27BDFFD8 */ addiu $sp, $sp, -0x28
@ -3641,10 +3641,10 @@ glabel func_800EC564
/* B63728 800EC588 AFB10018 */ sw $s1, 0x18($sp) /* B63728 800EC588 AFB10018 */ sw $s1, 0x18($sp)
/* B6372C 800EC58C AFB30020 */ sw $s3, 0x20($sp) /* B6372C 800EC58C AFB30020 */ sw $s3, 0x20($sp)
/* B63730 800EC590 AFB2001C */ sw $s2, 0x1c($sp) /* B63730 800EC590 AFB2001C */ sw $s2, 0x1c($sp)
/* B63734 800EC594 3C118017 */ lui $s1, %hi(D_8016F180) # $s1, 0x8017 /* B63734 800EC594 3C118017 */ lui $s1, %hi(gAudioContext) # $s1, 0x8017
/* B63738 800EC598 AFBF0024 */ sw $ra, 0x24($sp) /* B63738 800EC598 AFBF0024 */ sw $ra, 0x24($sp)
/* B6373C 800EC59C AFB00014 */ sw $s0, 0x14($sp) /* B6373C 800EC59C AFB00014 */ sw $s0, 0x14($sp)
/* B63740 800EC5A0 2631F180 */ addiu $s1, %lo(D_8016F180) # addiu $s1, $s1, -0xe80 /* B63740 800EC5A0 2631F180 */ addiu $s1, %lo(gAudioContext) # addiu $s1, $s1, -0xe80
/* B63744 800EC5A4 00009025 */ move $s2, $zero /* B63744 800EC5A4 00009025 */ move $s2, $zero
/* B63748 800EC5A8 00004012 */ mflo $t0 /* B63748 800EC5A8 00004012 */ mflo $t0
/* B6374C 800EC5AC AC685B84 */ sw $t0, 0x5b84($v1) /* B6374C 800EC5AC AC685B84 */ sw $t0, 0x5b84($v1)
@ -3668,7 +3668,7 @@ glabel func_800EC564
/* B6378C 800EC5EC 1420FFF2 */ bnez $at, .L800EC5B8 /* B6378C 800EC5EC 1420FFF2 */ bnez $at, .L800EC5B8
/* B63790 800EC5F0 26310160 */ addiu $s1, $s1, 0x160 /* B63790 800EC5F0 26310160 */ addiu $s1, $s1, 0x160
.L800EC5F4: .L800EC5F4:
/* B63794 800EC5F4 0C039BE3 */ jal func_800E6F8C /* B63794 800EC5F4 0C039BE3 */ jal Audio_ProcessNotes
/* B63798 800EC5F8 00000000 */ nop /* B63798 800EC5F8 00000000 */ nop
/* B6379C 800EC5FC 8FBF0024 */ lw $ra, 0x24($sp) /* B6379C 800EC5FC 8FBF0024 */ lw $ra, 0x24($sp)
/* B637A0 800EC600 8FB00014 */ lw $s0, 0x14($sp) /* B637A0 800EC600 8FB00014 */ lw $s0, 0x14($sp)
@ -3763,11 +3763,11 @@ glabel func_800EC734
/* B638E0 800EC740 000E7080 */ sll $t6, $t6, 2 /* B638E0 800EC740 000E7080 */ sll $t6, $t6, 2
/* B638E4 800EC744 01C47023 */ subu $t6, $t6, $a0 /* B638E4 800EC744 01C47023 */ subu $t6, $t6, $a0
/* B638E8 800EC748 000E7140 */ sll $t6, $t6, 5 /* B638E8 800EC748 000E7140 */ sll $t6, $t6, 5
/* B638EC 800EC74C 3C188017 */ lui $t8, %hi(D_8016F180) # $t8, 0x8017 /* B638EC 800EC74C 3C188017 */ lui $t8, %hi(gAudioContext) # $t8, 0x8017
/* B638F0 800EC750 AFB40024 */ sw $s4, 0x24($sp) /* B638F0 800EC750 AFB40024 */ sw $s4, 0x24($sp)
/* B638F4 800EC754 AFB30020 */ sw $s3, 0x20($sp) /* B638F4 800EC754 AFB30020 */ sw $s3, 0x20($sp)
/* B638F8 800EC758 AFB2001C */ sw $s2, 0x1c($sp) /* B638F8 800EC758 AFB2001C */ sw $s2, 0x1c($sp)
/* B638FC 800EC75C 2718F180 */ addiu $t8, %lo(D_8016F180) # addiu $t8, $t8, -0xe80 /* B638FC 800EC75C 2718F180 */ addiu $t8, %lo(gAudioContext) # addiu $t8, $t8, -0xe80
/* B63900 800EC760 25CF3530 */ addiu $t7, $t6, 0x3530 /* B63900 800EC760 25CF3530 */ addiu $t7, $t6, 0x3530
/* B63904 800EC764 AFB50028 */ sw $s5, 0x28($sp) /* B63904 800EC764 AFB50028 */ sw $s5, 0x28($sp)
/* B63908 800EC768 AFB10018 */ sw $s1, 0x18($sp) /* B63908 800EC768 AFB10018 */ sw $s1, 0x18($sp)
@ -3862,7 +3862,7 @@ glabel func_800EC80C
/* B63A50 800EC8B0 E4C0002C */ swc1 $f0, 0x2c($a2) /* B63A50 800EC8B0 E4C0002C */ swc1 $f0, 0x2c($a2)
/* B63A54 800EC8B4 E4C00034 */ swc1 $f0, 0x34($a2) /* B63A54 800EC8B4 E4C00034 */ swc1 $f0, 0x34($a2)
/* B63A58 800EC8B8 AFA60018 */ sw $a2, 0x18($sp) /* B63A58 800EC8B8 AFA60018 */ sw $a2, 0x18($sp)
/* B63A5C 800EC8BC 0C039F43 */ jal func_800E7D0C /* B63A5C 800EC8BC 0C039F43 */ jal Audio_InitNoteLists
/* B63A60 800EC8C0 24C4009C */ addiu $a0, $a2, 0x9c /* B63A60 800EC8C0 24C4009C */ addiu $a0, $a2, 0x9c
/* B63A64 800EC8C4 0C03B19A */ jal func_800EC668 /* B63A64 800EC8C4 0C03B19A */ jal func_800EC668
/* B63A68 800EC8C8 8FA40018 */ lw $a0, 0x18($sp) /* B63A68 800EC8C8 8FA40018 */ lw $a0, 0x18($sp)
@ -3877,10 +3877,10 @@ glabel func_800EC8DC
/* B63A84 800EC8E4 AFB10018 */ sw $s1, 0x18($sp) /* B63A84 800EC8E4 AFB10018 */ sw $s1, 0x18($sp)
/* B63A88 800EC8E8 0C03A72A */ jal func_800E9CA8 /* B63A88 800EC8E8 0C03A72A */ jal func_800E9CA8
/* B63A8C 800EC8EC AFB00014 */ sw $s0, 0x14($sp) /* B63A8C 800EC8EC AFB00014 */ sw $s0, 0x14($sp)
/* B63A90 800EC8F0 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B63A90 800EC8F0 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B63A94 800EC8F4 3C038017 */ lui $v1, %hi(D_80171180) # $v1, 0x8017 /* B63A94 800EC8F4 3C038017 */ lui $v1, %hi(D_80171180) # $v1, 0x8017
/* B63A98 800EC8F8 24631180 */ addiu $v1, %lo(D_80171180) # addiu $v1, $v1, 0x1180 /* B63A98 800EC8F8 24631180 */ addiu $v1, %lo(D_80171180) # addiu $v1, $v1, 0x1180
/* B63A9C 800EC8FC 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B63A9C 800EC8FC 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
.L800EC900: .L800EC900:
/* B63AA0 800EC900 904E3AB0 */ lbu $t6, 0x3ab0($v0) /* B63AA0 800EC900 904E3AB0 */ lbu $t6, 0x3ab0($v0)
/* B63AA4 800EC904 24420080 */ addiu $v0, $v0, 0x80 /* B63AA4 800EC904 24420080 */ addiu $v0, $v0, 0x80

View file

@ -5020,8 +5020,8 @@ glabel L800F1014
/* B6840C 800F126C 24050003 */ li $a1, 3 /* B6840C 800F126C 24050003 */ li $a1, 3
/* B68410 800F1270 0C03ED07 */ jal GfxPrint_SetPos /* B68410 800F1270 0C03ED07 */ jal GfxPrint_SetPos
/* B68414 800F1274 2406000C */ li $a2, 12 /* B68414 800F1274 2406000C */ li $a2, 12
/* B68418 800F1278 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B68418 800F1278 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B6841C 800F127C 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B6841C 800F127C 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B68420 800F1280 904E368A */ lbu $t6, 0x368a($v0) /* B68420 800F1280 904E368A */ lbu $t6, 0x368a($v0)
/* B68424 800F1284 904C368B */ lbu $t4, 0x368b($v0) /* B68424 800F1284 904C368B */ lbu $t4, 0x368b($v0)
/* B68428 800F1288 3C058015 */ lui $a1, %hi(D_8014A268) # $a1, 0x8015 /* B68428 800F1288 3C058015 */ lui $a1, %hi(D_8014A268) # $a1, 0x8015
@ -5036,8 +5036,8 @@ glabel L800F1014
/* B6844C 800F12AC 24050003 */ li $a1, 3 /* B6844C 800F12AC 24050003 */ li $a1, 3
/* B68450 800F12B0 0C03ED07 */ jal GfxPrint_SetPos /* B68450 800F12B0 0C03ED07 */ jal GfxPrint_SetPos
/* B68454 800F12B4 2406000D */ li $a2, 13 /* B68454 800F12B4 2406000D */ li $a2, 13
/* B68458 800F12B8 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 /* B68458 800F12B8 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
/* B6845C 800F12BC 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 /* B6845C 800F12BC 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
/* B68460 800F12C0 904D368E */ lbu $t5, 0x368e($v0) /* B68460 800F12C0 904D368E */ lbu $t5, 0x368e($v0)
/* B68464 800F12C4 9058368F */ lbu $t8, 0x368f($v0) /* B68464 800F12C4 9058368F */ lbu $t8, 0x368f($v0)
/* B68468 800F12C8 3C058015 */ lui $a1, %hi(D_8014A27C) # $a1, 0x8015 /* B68468 800F12C8 3C058015 */ lui $a1, %hi(D_8014A27C) # $a1, 0x8015
@ -8913,10 +8913,10 @@ glabel func_800F491C
/* B6BB30 800F4990 34210F00 */ ori $at, (0x80040F00 & 0xFFFF) # ori $at, $at, 0xf00 /* B6BB30 800F4990 34210F00 */ ori $at, (0x80040F00 & 0xFFFF) # ori $at, $at, 0xf00
/* B6BB34 800F4994 0C03E803 */ jal Audio_SetBGM /* B6BB34 800F4994 0C03E803 */ jal Audio_SetBGM
/* B6BB38 800F4998 00412025 */ or $a0, $v0, $at /* B6BB38 800F4998 00412025 */ or $a0, $v0, $at
/* B6BB3C 800F499C 3C128017 */ lui $s2, %hi(D_8016F180) # $s2, 0x8017 /* B6BB3C 800F499C 3C128017 */ lui $s2, %hi(gAudioContext) # $s2, 0x8017
/* B6BB40 800F49A0 3C118017 */ lui $s1, %hi(D_80174C30) # $s1, 0x8017 /* B6BB40 800F49A0 3C118017 */ lui $s1, %hi(D_80174C30) # $s1, 0x8017
/* B6BB44 800F49A4 26314C30 */ addiu $s1, %lo(D_80174C30) # addiu $s1, $s1, 0x4c30 /* B6BB44 800F49A4 26314C30 */ addiu $s1, %lo(D_80174C30) # addiu $s1, $s1, 0x4c30
/* B6BB48 800F49A8 2652F180 */ addiu $s2, %lo(D_8016F180) # addiu $s2, $s2, -0xe80 /* B6BB48 800F49A8 2652F180 */ addiu $s2, %lo(gAudioContext) # addiu $s2, $s2, -0xe80
/* B6BB4C 800F49AC 00008025 */ move $s0, $zero /* B6BB4C 800F49AC 00008025 */ move $s0, $zero
/* B6BB50 800F49B0 3C140500 */ lui $s4, 0x500 /* B6BB50 800F49B0 3C140500 */ lui $s4, 0x500
/* B6BB54 800F49B4 241300FF */ li $s3, 255 /* B6BB54 800F49B4 241300FF */ li $s3, 255
@ -9507,8 +9507,8 @@ glabel func_800F510C
.L800F51EC: .L800F51EC:
/* B6C38C 800F51EC 03B03821 */ addu $a3, $sp, $s0 /* B6C38C 800F51EC 03B03821 */ addu $a3, $sp, $s0
/* B6C390 800F51F0 90E70040 */ lbu $a3, 0x40($a3) /* B6C390 800F51F0 90E70040 */ lbu $a3, 0x40($a3)
/* B6C394 800F51F4 3C198017 */ lui $t9, %hi(D_8016F180) # $t9, 0x8017 /* B6C394 800F51F4 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017
/* B6C398 800F51F8 2739F180 */ addiu $t9, %lo(D_8016F180) # addiu $t9, $t9, -0xe80 /* B6C398 800F51F8 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80
/* B6C39C 800F51FC 0007C080 */ sll $t8, $a3, 2 /* B6C39C 800F51FC 0007C080 */ sll $t8, $a3, 2
/* B6C3A0 800F5200 0307C023 */ subu $t8, $t8, $a3 /* B6C3A0 800F5200 0307C023 */ subu $t8, $t8, $a3
/* B6C3A4 800F5204 0018C080 */ sll $t8, $t8, 2 /* B6C3A4 800F5204 0018C080 */ sll $t8, $t8, 2

View file

@ -1379,8 +1379,8 @@ glabel func_800FA3DC
/* B717C0 800FA620 01D57023 */ subu $t6, $t6, $s5 /* B717C0 800FA620 01D57023 */ subu $t6, $t6, $s5
/* B717C4 800FA624 000E7080 */ sll $t6, $t6, 2 /* B717C4 800FA624 000E7080 */ sll $t6, $t6, 2
/* B717C8 800FA628 01D57023 */ subu $t6, $t6, $s5 /* B717C8 800FA628 01D57023 */ subu $t6, $t6, $s5
/* B717CC 800FA62C 3C0F8017 */ lui $t7, %hi(D_8016F180) /* B717CC 800FA62C 3C0F8017 */ lui $t7, %hi(gAudioContext)
/* B717D0 800FA630 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 /* B717D0 800FA630 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80
/* B717D4 800FA634 000E7140 */ sll $t6, $t6, 5 /* B717D4 800FA634 000E7140 */ sll $t6, $t6, 5
/* B717D8 800FA638 01CF2821 */ addu $a1, $t6, $t7 /* B717D8 800FA638 01CF2821 */ addu $a1, $t6, $t7
/* B717DC 800FA63C 8CB93530 */ lw $t9, 0x3530($a1) /* B717DC 800FA63C 8CB93530 */ lw $t9, 0x3530($a1)

View file

@ -0,0 +1,333 @@
.rdata
glabel D_801495C0
.float 0.707
glabel D_801495C4
.float 4095.999
.text
glabel Audio_NoteSetVelPanReverb
/* B5DAE0 800E6940 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B5DAE4 800E6944 AFBF0014 */ sw $ra, 0x14($sp)
/* B5DAE8 800E6948 AFA40048 */ sw $a0, 0x48($sp)
/* B5DAEC 800E694C 90CF0002 */ lbu $t7, 2($a2)
/* B5DAF0 800E6950 90820035 */ lbu $v0, 0x35($a0)
/* B5DAF4 800E6954 C4C20008 */ lwc1 $f2, 8($a2)
/* B5DAF8 800E6958 A3AF0027 */ sb $t7, 0x27($sp)
/* B5DAFC 800E695C 90D80000 */ lbu $t8, ($a2)
/* B5DB00 800E6960 27B90024 */ addiu $t9, $sp, 0x24
/* B5DB04 800E6964 00A03825 */ move $a3, $a1
/* B5DB08 800E6968 A3B80026 */ sb $t8, 0x26($sp)
/* B5DB0C 800E696C 90C90003 */ lbu $t1, 3($a2)
/* B5DB10 800E6970 00A02025 */ move $a0, $a1
/* B5DB14 800E6974 A3290000 */ sb $t1, ($t9)
# Saving stuff on sub
/* B5DB18 800E6978 8FAA0048 */ lw $t2, 0x48($sp)
/* B5DB1C 800E697C 914C00C0 */ lbu $t4, 0xc0($t2)
/* B5DB20 800E6980 A0AC0000 */ sb $t4, ($a1)
/* B5DB24 800E6984 8FAD0048 */ lw $t5, 0x48($sp)
/* B5DB28 800E6988 91AF00C1 */ lbu $t7, 0xc1($t5)
/* B5DB2C 800E698C A0AF0001 */ sb $t7, 1($a1)
/* B5DB30 800E6990 8FB80048 */ lw $t8, 0x48($sp)
/* B5DB34 800E6994 8F1900D0 */ lw $t9, 0xd0($t8)
/* B5DB38 800E6998 ACB90010 */ sw $t9, 0x10($a1)
/* B5DB3C 800E699C 8FA80048 */ lw $t0, 0x48($sp)
/* B5DB40 800E69A0 910900C6 */ lbu $t1, 0xc6($t0)
/* B5DB44 800E69A4 A0A90006 */ sb $t1, 6($a1)
# Audio_NoteSetResamplingRate setup
/* B5DB48 800E69A8 8CC50004 */ lw $a1, 4($a2)
/* B5DB4C 800E69AC AFA7004C */ sw $a3, 0x4c($sp)
/* B5DB50 800E69B0 AFA60050 */ sw $a2, 0x50($sp)
/* B5DB54 800E69B4 AFA20020 */ sw $v0, 0x20($sp)
/* B5DB58 800E69B8 0C039B6E */ jal Audio_NoteSetResamplingRate
/* B5DB5C 800E69BC E7A20028 */ swc1 $f2, 0x28($sp)
/* B5DB60 800E69C0 93AA0027 */ lbu $t2, 0x27($sp)
/* B5DB64 800E69C4 8FA7004C */ lw $a3, 0x4c($sp)
/* B5DB68 800E69C8 8FA20020 */ lw $v0, 0x20($sp)
/* B5DB6C 800E69CC 314B007F */ andi $t3, $t2, 0x7f
/* B5DB70 800E69D0 A3AB0027 */ sb $t3, 0x27($sp)
/* B5DB74 800E69D4 90EC0000 */ lbu $t4, ($a3)
/* B5DB78 800E69D8 8FA60050 */ lw $a2, 0x50($sp)
/* B5DB7C 800E69DC C7A20028 */ lwc1 $f2, 0x28($sp)
/* B5DB80 800E69E0 318EFFF7 */ andi $t6, $t4, 0xfff7
/* B5DB84 800E69E4 31CB00FB */ andi $t3, $t6, 0xfb
/* B5DB88 800E69E8 A0EE0000 */ sb $t6, ($a3)
/* B5DB8C 800E69EC A0EB0000 */ sb $t3, ($a3)
/* B5DB90 800E69F0 8FB80024 */ lw $t8, 0x24($sp)
/* B5DB94 800E69F4 316C00FD */ andi $t4, $t3, 0xfd
/* B5DB98 800E69F8 44800000 */ mtc1 $zero, $f0
/* B5DB9C 800E69FC 0018C980 */ sll $t9, $t8, 6
/* B5DBA0 800E6A00 001947C2 */ srl $t0, $t9, 0x1f
/* B5DBA4 800E6A04 00084840 */ sll $t1, $t0, 1
/* B5DBA8 800E6A08 312A0002 */ andi $t2, $t1, 2
/* B5DBAC 800E6A0C 014CC825 */ or $t9, $t2, $t4
/* B5DBB0 800E6A10 A0F90000 */ sb $t9, ($a3)
/* B5DBB4 800E6A14 93AF0024 */ lbu $t7, 0x24($sp)
/* B5DBB8 800E6A18 332800FE */ andi $t0, $t9, 0xfe
/* B5DBBC 800E6A1C 3C0B8017 */ lui $t3, %hi(gSoundMode) # $t3, 0x8017
/* B5DBC0 800E6A20 31F80001 */ andi $t8, $t7, 1
/* B5DBC4 800E6A24 03084825 */ or $t1, $t8, $t0
/* B5DBC8 800E6A28 10400021 */ beqz $v0, .ELSE_IF
/* B5DBCC 800E6A2C A0E90000 */ sb $t1, ($a3)
/* B5DBD0 800E6A30 816B1A1A */ lb $t3, %lo(gSoundMode)($t3)
/* B5DBD4 800E6A34 93A30027 */ lbu $v1, 0x27($sp)
/* B5DBD8 800E6A38 24010001 */ li $at, 1
/* B5DBDC 800E6A3C 1561001C */ bne $t3, $at, .ELSE_IF
/* B5DBE0 800E6A40 00031843 */ sra $v1, $v1, 1
# Inside first if
# s32 smallPanIndex = reverb->pan >> 3;
# if (smallPanIndex > 0xf) {
# smallPanIndex = 0xf;
# }
/* B5DBE4 800E6A44 28610040 */ slti $at, $v1, 0x40
/* B5DBE8 800E6A48 14200002 */ bnez $at, .SMALL_PAN_IF
/* B5DBEC 800E6A4C 3C0A8013 */ lui $t2, %hi(gHeadsetPanQuantization)
/* B5DBF0 800E6A50 2403003F */ li $v1, 63
.SMALL_PAN_IF:
/* B5DBF4 800E6A54 00031040 */ sll $v0, $v1, 1
/* B5DBF8 800E6A58 01425021 */ addu $t2, $t2, $v0
/* B5DBFC 800E6A5C 954AFB24 */ lhu $t2, %lo(gHeadsetPanQuantization)($t2)
/* B5DC00 800E6A60 00026023 */ negu $t4, $v0
/* B5DC04 800E6A64 3C0D8013 */ lui $t5, %hi(gHeadsetPanQuantization + 0x7E)
/* B5DC08 800E6A68 90EF0001 */ lbu $t7, 1($a3)
/* B5DC0C 800E6A6C 01AC6821 */ addu $t5, $t5, $t4
/* B5DC10 800E6A70 A0EA0004 */ sb $t2, 4($a3)
/* B5DC14 800E6A74 95ADFBA2 */ lhu $t5, %lo(gHeadsetPanQuantization + 0x7E)($t5)
/* B5DC18 800E6A78 35F90001 */ ori $t9, $t7, 1
/* B5DC1C 800E6A7C A0F90001 */ sb $t9, 1($a3)
/* B5DC20 800E6A80 A0ED0003 */ sb $t5, 3($a3)
/* B5DC24 800E6A84 93B80027 */ lbu $t8, 0x27($sp)
/* B5DC28 800E6A88 3C018013 */ lui $at, %hi(gHeadsetPanVolume)
/* B5DC2C 800E6A8C 00184080 */ sll $t0, $t8, 2
/* B5DC30 800E6A90 00280821 */ addu $at, $at, $t0
/* B5DC34 800E6A94 C42CFC28 */ lwc1 $f12, %lo(gHeadsetPanVolume)($at)
/* B5DC38 800E6A98 00184880 */ sll $t1, $t8, 2
/* B5DC3C 800E6A9C 00095823 */ negu $t3, $t1
/* B5DC40 800E6AA0 3C018013 */ lui $at, %hi(gHeadsetPanVolume + 0x1fc)
/* B5DC44 800E6AA4 002B0821 */ addu $at, $at, $t3
/* B5DC48 800E6AA8 1000009A */ b .MAIN_COND_END
/* B5DC4C 800E6AAC C42EFE24 */ lwc1 $f14, %lo(gHeadsetPanVolume + 0x1fc)($at)
.ELSE_IF:
/* B5DC50 800E6AB0 3C038017 */ lui $v1, %hi(gSoundMode) # $v1, 0x8017
/* B5DC54 800E6AB4 10400071 */ beqz $v0, .L800E6C7C
/* B5DC58 800E6AB8 80631A1A */ lb $v1, %lo(gSoundMode)($v1)
/* B5DC5C 800E6ABC 54600070 */ bnezl $v1, .L800E6C80
/* B5DC60 800E6AC0 24010003 */ li $at, 3
/* B5DC64 800E6AC4 90EA0001 */ lbu $t2, 1($a3)
/* B5DC68 800E6AC8 A0E00003 */ sb $zero, 3($a3)
/* B5DC6C 800E6ACC A0E00004 */ sb $zero, 4($a3)
/* B5DC70 800E6AD0 314CFFFE */ andi $t4, $t2, 0xfffe
/* B5DC74 800E6AD4 A0EC0001 */ sb $t4, 1($a3)
/* B5DC78 800E6AD8 93AD0027 */ lbu $t5, 0x27($sp)
/* B5DC7C 800E6ADC 3C018013 */ lui $at, %hi(gStereoPanVolume)
/* B5DC80 800E6AE0 00001825 */ move $v1, $zero
/* B5DC84 800E6AE4 000D7080 */ sll $t6, $t5, 2
/* B5DC88 800E6AE8 002E0821 */ addu $at, $at, $t6
/* B5DC8C 800E6AEC C42CFE28 */ lwc1 $f12, %lo(gStereoPanVolume)($at)
/* B5DC90 800E6AF0 000D7880 */ sll $t7, $t5, 2
/* B5DC94 800E6AF4 000FC823 */ negu $t9, $t7
/* B5DC98 800E6AF8 3C018013 */ lui $at, %hi(gStereoPanVolume + 0x1FC)
/* B5DC9C 800E6AFC 00390821 */ addu $at, $at, $t9
/* B5DCA0 800E6B00 C42E0024 */ lwc1 $f14, %lo(gStereoPanVolume + 0x1FC)($at)
/* B5DCA4 800E6B04 29A10020 */ slti $at, $t5, 0x20
/* B5DCA8 800E6B08 10200003 */ beqz $at, .L800E6B18
/* B5DCAC 800E6B0C 00002025 */ move $a0, $zero
/* B5DCB0 800E6B10 10000006 */ b .L800E6B2C
/* B5DCB4 800E6B14 24040001 */ li $a0, 1
.L800E6B18:
/* B5DCB8 800E6B18 93A80027 */ lbu $t0, 0x27($sp)
/* B5DCBC 800E6B1C 29010061 */ slti $at, $t0, 0x61
/* B5DCC0 800E6B20 54200003 */ bnezl $at, .L800E6B30
/* B5DCC4 800E6B24 90EA0000 */ lbu $t2, ($a3)
/* B5DCC8 800E6B28 24030001 */ li $v1, 1
.L800E6B2C:
/* B5DCCC 800E6B2C 90EA0000 */ lbu $t2, ($a3)
.L800E6B30:
/* B5DCD0 800E6B30 000348C0 */ sll $t1, $v1, 3
/* B5DCD4 800E6B34 312B0008 */ andi $t3, $t1, 8
/* B5DCD8 800E6B38 314CFFF7 */ andi $t4, $t2, 0xfff7
/* B5DCDC 800E6B3C 016C4025 */ or $t0, $t3, $t4
/* B5DCE0 800E6B40 0004C880 */ sll $t9, $a0, 2
/* B5DCE4 800E6B44 332D0004 */ andi $t5, $t9, 4
/* B5DCE8 800E6B48 311800FB */ andi $t8, $t0, 0xfb
/* B5DCEC 800E6B4C A0E80000 */ sb $t0, ($a3)
/* B5DCF0 800E6B50 01B84825 */ or $t1, $t5, $t8
/* B5DCF4 800E6B54 A0E90000 */ sb $t1, ($a3)
# Oh boy we in a switch now.
/* B5DCF8 800E6B58 8FA20024 */ lw $v0, 0x24($sp)
/* B5DCFC 800E6B5C 24010001 */ li $at, 1
/* B5DD00 800E6B60 00021080 */ sll $v0, $v0, 2
/* B5DD04 800E6B64 00021782 */ srl $v0, $v0, 0x1e
/* B5DD08 800E6B68 5040006B */ beql $v0, $zero, .DEFAULT
/* B5DD0C 800E6B6C 4600103C */ c.lt.s $f2, $f0
/* B5DD10 800E6B70 10410009 */ beq $v0, $at, .CASE1
/* B5DD14 800E6B74 8FAA0024 */ lw $t2, 0x24($sp)
/* B5DD18 800E6B78 24010002 */ li $at, 2
/* B5DD1C 800E6B7C 10410017 */ beq $v0, $at, .CASE2
/* B5DD20 800E6B80 8FA80024 */ lw $t0, 0x24($sp)
/* B5DD24 800E6B84 24010003 */ li $at, 3
/* B5DD28 800E6B88 10410028 */ beq $v0, $at, .CASE3
/* B5DD2C 800E6B8C 8FA80024 */ lw $t0, 0x24($sp)
/* B5DD30 800E6B90 10000061 */ b .DEFAULT
/* B5DD34 800E6B94 4600103C */ c.lt.s $f2, $f0
.CASE1:
/* B5DD38 800E6B98 90F90000 */ lbu $t9, ($a3)
/* B5DD3C 800E6B9C 000A5900 */ sll $t3, $t2, 4
/* B5DD40 800E6BA0 000B67C2 */ srl $t4, $t3, 0x1f
/* B5DD44 800E6BA4 000C70C0 */ sll $t6, $t4, 3
/* B5DD48 800E6BA8 31CF0008 */ andi $t7, $t6, 8
/* B5DD4C 800E6BAC 3328FFF7 */ andi $t0, $t9, 0xfff7
/* B5DD50 800E6BB0 01E87025 */ or $t6, $t7, $t0
/* B5DD54 800E6BB4 A0EE0000 */ sb $t6, ($a3)
/* B5DD58 800E6BB8 8FB80024 */ lw $t8, 0x24($sp)
/* B5DD5C 800E6BBC 31D900FB */ andi $t9, $t6, 0xfb
/* B5DD60 800E6BC0 00184940 */ sll $t1, $t8, 5
/* B5DD64 800E6BC4 000957C2 */ srl $t2, $t1, 0x1f
/* B5DD68 800E6BC8 000A5880 */ sll $t3, $t2, 2
/* B5DD6C 800E6BCC 316C0004 */ andi $t4, $t3, 4
/* B5DD70 800E6BD0 01997825 */ or $t7, $t4, $t9
/* B5DD74 800E6BD4 1000004F */ b .MAIN_COND_END
/* B5DD78 800E6BD8 A0EF0000 */ sb $t7, ($a3)
.CASE2:
/* B5DD7C 800E6BDC 00086900 */ sll $t5, $t0, 4
/* B5DD80 800E6BE0 90EC0000 */ lbu $t4, ($a3)
/* B5DD84 800E6BE4 000DC7C2 */ srl $t8, $t5, 0x1f
/* B5DD88 800E6BE8 03035025 */ or $t2, $t8, $v1
/* B5DD8C 800E6BEC 000A58C0 */ sll $t3, $t2, 3
/* B5DD90 800E6BF0 316E0008 */ andi $t6, $t3, 8
/* B5DD94 800E6BF4 3199FFF7 */ andi $t9, $t4, 0xfff7
/* B5DD98 800E6BF8 01D97825 */ or $t7, $t6, $t9
/* B5DD9C 800E6BFC A0EF0000 */ sb $t7, ($a3)
/* B5DDA0 800E6C00 8FA80024 */ lw $t0, 0x24($sp)
/* B5DDA4 800E6C04 01E07025 */ move $t6, $t7
/* B5DDA8 800E6C08 31D900FB */ andi $t9, $t6, 0xfb
/* B5DDAC 800E6C0C 00086940 */ sll $t5, $t0, 5
/* B5DDB0 800E6C10 000DC7C2 */ srl $t8, $t5, 0x1f
/* B5DDB4 800E6C14 03045025 */ or $t2, $t8, $a0
/* B5DDB8 800E6C18 000A5880 */ sll $t3, $t2, 2
/* B5DDBC 800E6C1C 316C0004 */ andi $t4, $t3, 4
/* B5DDC0 800E6C20 01997825 */ or $t7, $t4, $t9
/* B5DDC4 800E6C24 1000003B */ b .MAIN_COND_END
/* B5DDC8 800E6C28 A0EF0000 */ sb $t7, ($a3)
.CASE3:
/* B5DDCC 800E6C2C 00086900 */ sll $t5, $t0, 4
/* B5DDD0 800E6C30 90EC0000 */ lbu $t4, ($a3)
/* B5DDD4 800E6C34 000DC7C2 */ srl $t8, $t5, 0x1f
/* B5DDD8 800E6C38 03035026 */ xor $t2, $t8, $v1
/* B5DDDC 800E6C3C 000A58C0 */ sll $t3, $t2, 3
/* B5DDE0 800E6C40 316E0008 */ andi $t6, $t3, 8
/* B5DDE4 800E6C44 3199FFF7 */ andi $t9, $t4, 0xfff7
/* B5DDE8 800E6C48 01D97825 */ or $t7, $t6, $t9
/* B5DDEC 800E6C4C A0EF0000 */ sb $t7, ($a3)
/* B5DDF0 800E6C50 8FA80024 */ lw $t0, 0x24($sp)
/* B5DDF4 800E6C54 01E07025 */ move $t6, $t7
/* B5DDF8 800E6C58 31D900FB */ andi $t9, $t6, 0xfb
/* B5DDFC 800E6C5C 00086940 */ sll $t5, $t0, 5
/* B5DE00 800E6C60 000DC7C2 */ srl $t8, $t5, 0x1f
/* B5DE04 800E6C64 03045026 */ xor $t2, $t8, $a0
/* B5DE08 800E6C68 000A5880 */ sll $t3, $t2, 2
/* B5DE0C 800E6C6C 316C0004 */ andi $t4, $t3, 4
/* B5DE10 800E6C70 01997825 */ or $t7, $t4, $t9
/* B5DE14 800E6C74 10000027 */ b .MAIN_COND_END
/* B5DE18 800E6C78 A0EF0000 */ sb $t7, ($a3)
# gSoundMode == 3
.L800E6C7C:
/* B5DE1C 800E6C7C 24010003 */ li $at, 3
.L800E6C80:
/* B5DE20 800E6C80 1461000A */ bne $v1, $at, .L800E6CAC
/* B5DE24 800E6C84 8FAA0024 */ lw $t2, 0x24($sp)
/* B5DE28 800E6C88 90E80000 */ lbu $t0, ($a3)
/* B5DE2C 800E6C8C 3C018015 */ lui $at, %hi(D_801495C0)
/* B5DE30 800E6C90 C42E95C0 */ lwc1 $f14, %lo(D_801495C0)($at)
/* B5DE34 800E6C94 3118FFFD */ andi $t8, $t0, 0xfffd
/* B5DE38 800E6C98 A0F80000 */ sb $t8, ($a3)
/* B5DE3C 800E6C9C 330900FE */ andi $t1, $t8, 0xfe
/* B5DE40 800E6CA0 A0E90000 */ sb $t1, ($a3)
/* B5DE44 800E6CA4 1000001B */ b .MAIN_COND_END
/* B5DE48 800E6CA8 46007306 */ mov.s $f12, $f14
# Last Else
.L800E6CAC:
/* B5DE4C 800E6CAC 90EF0000 */ lbu $t7, ($a3)
/* B5DE50 800E6CB0 000A5900 */ sll $t3, $t2, 4
/* B5DE54 800E6CB4 000B77C2 */ srl $t6, $t3, 0x1f
/* B5DE58 800E6CB8 000E60C0 */ sll $t4, $t6, 3
/* B5DE5C 800E6CBC 31990008 */ andi $t9, $t4, 8
/* B5DE60 800E6CC0 31E8FFF7 */ andi $t0, $t7, 0xfff7
/* B5DE64 800E6CC4 03286025 */ or $t4, $t9, $t0
/* B5DE68 800E6CC8 A0EC0000 */ sb $t4, ($a3)
/* B5DE6C 800E6CCC 8FB80024 */ lw $t8, 0x24($sp)
/* B5DE70 800E6CD0 318F00FB */ andi $t7, $t4, 0xfb
/* B5DE74 800E6CD4 3C018013 */ lui $at, %hi(gDefaultPanVolume)
/* B5DE78 800E6CD8 00184940 */ sll $t1, $t8, 5
/* B5DE7C 800E6CDC 000957C2 */ srl $t2, $t1, 0x1f
/* B5DE80 800E6CE0 000A5880 */ sll $t3, $t2, 2
/* B5DE84 800E6CE4 316E0004 */ andi $t6, $t3, 4
/* B5DE88 800E6CE8 01CFC825 */ or $t9, $t6, $t7
/* B5DE8C 800E6CEC A0F90000 */ sb $t9, ($a3)
/* B5DE90 800E6CF0 93A80027 */ lbu $t0, 0x27($sp)
/* B5DE94 800E6CF4 00086880 */ sll $t5, $t0, 2
/* B5DE98 800E6CF8 002D0821 */ addu $at, $at, $t5
/* B5DE9C 800E6CFC C42C0028 */ lwc1 $f12, %lo(gDefaultPanVolume)($at)
/* B5DEA0 800E6D00 0008C080 */ sll $t8, $t0, 2
/* B5DEA4 800E6D04 00184823 */ negu $t1, $t8
/* B5DEA8 800E6D08 3C018013 */ lui $at, %hi(gDefaultPanVolume + 0x1FC)
/* B5DEAC 800E6D0C 00290821 */ addu $at, $at, $t1
/* B5DEB0 800E6D10 C42E0224 */ lwc1 $f14, %lo(gDefaultPanVolume + 0x1FC)($at)
.MAIN_COND_END:
/* B5DEB4 800E6D14 4600103C */ c.lt.s $f2, $f0
.DEFAULT:
/* B5DEB8 800E6D18 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5DEBC 800E6D1C 45020003 */ bc1fl .L800E6D2C
/* B5DEC0 800E6D20 44810000 */ mtc1 $at, $f0
/* B5DEC4 800E6D24 46000086 */ mov.s $f2, $f0
/* B5DEC8 800E6D28 44810000 */ mtc1 $at, $f0
.L800E6D2C:
/* B5DECC 800E6D2C 00000000 */ nop
/* B5DED0 800E6D30 4602003C */ c.lt.s $f0, $f2
/* B5DED4 800E6D34 00000000 */ nop
/* B5DED8 800E6D38 45000002 */ bc1f .L800E6D44
/* B5DEDC 800E6D3C 00000000 */ nop
/* B5DEE0 800E6D40 46000086 */ mov.s $f2, $f0
.L800E6D44:
/* B5DEE4 800E6D44 460C1102 */ mul.s $f4, $f2, $f12
/* B5DEE8 800E6D48 3C018015 */ lui $at, %hi(D_801495C4)
/* B5DEEC 800E6D4C C42095C4 */ lwc1 $f0, %lo(D_801495C4)($at)
/* B5DEF0 800E6D50 46002182 */ mul.s $f6, $f4, $f0
/* B5DEF4 800E6D54 00000000 */ nop
/* B5DEF8 800E6D58 460E1282 */ mul.s $f10, $f2, $f14
/* B5DEFC 800E6D5C 4600320D */ trunc.w.s $f8, $f6
/* B5DF00 800E6D60 46005402 */ mul.s $f16, $f10, $f0
/* B5DF04 800E6D64 440B4000 */ mfc1 $t3, $f8
/* B5DF08 800E6D68 00000000 */ nop
/* B5DF0C 800E6D6C A4EB0008 */ sh $t3, 8($a3)
/* B5DF10 800E6D70 4600848D */ trunc.w.s $f18, $f16
/* B5DF14 800E6D74 440E9000 */ mfc1 $t6, $f18
/* B5DF18 800E6D78 00000000 */ nop
/* B5DF1C 800E6D7C A4EE000A */ sh $t6, 0xa($a3)
/* B5DF20 800E6D80 90CF0001 */ lbu $t7, 1($a2)
/* B5DF24 800E6D84 A0EF0002 */ sb $t7, 2($a3)
/* B5DF28 800E6D88 8CD90010 */ lw $t9, 0x10($a2)
/* B5DF2C 800E6D8C ACF90014 */ sw $t9, 0x14($a3)
/* B5DF30 800E6D90 90CD0014 */ lbu $t5, 0x14($a2)
/* B5DF34 800E6D94 A0ED0007 */ sb $t5, 7($a3)
/* B5DF38 800E6D98 94C80016 */ lhu $t0, 0x16($a2)
/* B5DF3C 800E6D9C A4E8000E */ sh $t0, 0xe($a3)
/* B5DF40 800E6DA0 93B80026 */ lbu $t8, 0x26($sp)
/* B5DF44 800E6DA4 A0F80005 */ sb $t8, 5($a3)
/* B5DF48 800E6DA8 8FBF0014 */ lw $ra, 0x14($sp)
/* B5DF4C 800E6DAC 27BD0048 */ addiu $sp, $sp, 0x48
/* B5DF50 800E6DB0 03E00008 */ jr $ra
/* B5DF54 800E6DB4 00000000 */ nop

View file

@ -0,0 +1,336 @@
glabel Audio_ProcessNotes
/* B5E12C 800E6F8C 27BDFF60 */ addiu $sp, $sp, -0xa0
/* B5E130 800E6F90 AFB40028 */ sw $s4, 0x28($sp)
/* B5E134 800E6F94 3C148017 */ lui $s4, %hi(gAudioContext)
/* B5E138 800E6F98 2694F180 */ addiu $s4, %lo(gAudioContext)
/* B5E13C 800E6F9C 8E822894 */ lw $v0, 0x2894($s4)
/* B5E140 800E6FA0 AFB5002C */ sw $s5, 0x2c($sp)
/* B5E144 800E6FA4 AFBF003C */ sw $ra, 0x3c($sp)
/* B5E148 800E6FA8 AFBE0038 */ sw $fp, 0x38($sp)
/* B5E14C 800E6FAC AFB70034 */ sw $s7, 0x34($sp)
/* B5E150 800E6FB0 AFB60030 */ sw $s6, 0x30($sp)
/* B5E154 800E6FB4 AFB30024 */ sw $s3, 0x24($sp)
/* B5E158 800E6FB8 AFB20020 */ sw $s2, 0x20($sp)
/* B5E15C 800E6FBC AFB1001C */ sw $s1, 0x1c($sp)
/* B5E160 800E6FC0 AFB00018 */ sw $s0, 0x18($sp)
/* B5E164 800E6FC4 18400119 */ blez $v0, .L800E742C
/* B5E168 800E6FC8 0000A825 */ move $s5, $zero
/* B5E16C 800E6FCC 0000B825 */ move $s7, $zero
/* B5E170 800E6FD0 27BE006F */ addiu $fp, $sp, 0x6f
/* B5E174 800E6FD4 24160001 */ li $s6, 1
/* B5E178 800E6FD8 2413FFFF */ li $s3, -1
.L800E6FDC:
/* B5E17C 800E6FDC 8E8F5B84 */ lw $t7, 0x5b84($s4)
/* B5E180 800E6FE0 8E880014 */ lw $t0, 0x14($s4)
/* B5E184 800E6FE4 8E8E352C */ lw $t6, 0x352c($s4)
/* B5E188 800E6FE8 01F5C021 */ addu $t8, $t7, $s5
/* B5E18C 800E6FEC 0018C940 */ sll $t9, $t8, 5
/* B5E190 800E6FF0 03284821 */ addu $t1, $t9, $t0
/* B5E194 800E6FF4 AFA90090 */ sw $t1, 0x90($sp)
/* B5E198 800E6FF8 02EE8821 */ addu $s1, $s7, $t6
/* B5E19C 800E6FFC 8E2A0044 */ lw $t2, 0x44($s1)
/* B5E1A0 800E7000 26300030 */ addiu $s0, $s1, 0x30
/* B5E1A4 800E7004 526A0043 */ beql $s3, $t2, .L800E7114
/* B5E1A8 800E7008 92190004 */ lbu $t9, 4($s0)
/* B5E1AC 800E700C 26300030 */ addiu $s0, $s1, 0x30
/* B5E1B0 800E7010 8E040014 */ lw $a0, 0x14($s0)
/* B5E1B4 800E7014 3C017FFF */ li $at, 0x7FFF0000 # 0.000000
/* B5E1B8 800E7018 3421FFFF */ ori $at, (0x7FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* B5E1BC 800E701C 0081082B */ sltu $at, $a0, $at
/* B5E1C0 800E7020 542000FF */ bnezl $at, .L800E7420
/* B5E1C4 800E7024 26B50001 */ addiu $s5, $s5, 1
/* B5E1C8 800E7028 8C8B002C */ lw $t3, 0x2c($a0)
/* B5E1CC 800E702C 522B000F */ beql $s1, $t3, .L800E706C
/* B5E1D0 800E7030 8C990000 */ lw $t9, ($a0)
/* B5E1D4 800E7034 920C0004 */ lbu $t4, 4($s0)
/* B5E1D8 800E7038 5580000C */ bnezl $t4, .L800E706C
/* B5E1DC 800E703C 8C990000 */ lw $t9, ($a0)
/* B5E1E0 800E7040 920E0040 */ lbu $t6, 0x40($s0)
/* B5E1E4 800E7044 24180002 */ li $t8, 2
/* B5E1E8 800E7048 32C200FF */ andi $v0, $s6, 0xff
/* B5E1EC 800E704C 35CF0010 */ ori $t7, $t6, 0x10
/* B5E1F0 800E7050 A20F0040 */ sb $t7, 0x40($s0)
/* B5E1F4 800E7054 C6842864 */ lwc1 $f4, 0x2864($s4)
/* B5E1F8 800E7058 A2160000 */ sb $s6, ($s0)
/* B5E1FC 800E705C A2180004 */ sb $t8, 4($s0)
/* B5E200 800E7060 10000032 */ b .L800E712C
/* B5E204 800E7064 E604004C */ swc1 $f4, 0x4c($s0)
/* B5E208 800E7068 8C990000 */ lw $t9, ($a0)
.L800E706C:
/* B5E20C 800E706C 001947C2 */ srl $t0, $t9, 0x1f
/* B5E210 800E7070 55000008 */ bnezl $t0, .L800E7094
/* B5E214 800E7074 8C850050 */ lw $a1, 0x50($a0)
/* B5E218 800E7078 92090004 */ lbu $t1, 4($s0)
/* B5E21C 800E707C 55200005 */ bnezl $t1, .L800E7094
/* B5E220 800E7080 8C850050 */ lw $a1, 0x50($a0)
/* B5E224 800E7084 920A0000 */ lbu $t2, ($s0)
/* B5E228 800E7088 1D400015 */ bgtz $t2, .L800E70E0
/* B5E22C 800E708C 00000000 */ nop
/* B5E230 800E7090 8C850050 */ lw $a1, 0x50($a0)
.L800E7094:
/* B5E234 800E7094 8CA2004C */ lw $v0, 0x4c($a1)
/* B5E238 800E7098 54400008 */ bnezl $v0, .L800E70BC
/* B5E23C 800E709C 8C4B0000 */ lw $t3, ($v0)
/* B5E240 800E70A0 0C03A632 */ jal func_800E98C8
/* B5E244 800E70A4 00A02025 */ move $a0, $a1
/* B5E248 800E70A8 A2160000 */ sb $s6, ($s0)
/* B5E24C 800E70AC A2160004 */ sb $s6, 4($s0)
/* B5E250 800E70B0 100000DA */ b .L800E741C
/* B5E254 800E70B4 8E822894 */ lw $v0, 0x2894($s4)
/* B5E258 800E70B8 8C4B0000 */ lw $t3, ($v0)
.L800E70BC:
/* B5E25C 800E70BC 000B6880 */ sll $t5, $t3, 2
/* B5E260 800E70C0 05A10005 */ bgez $t5, .L800E70D8
/* B5E264 800E70C4 00000000 */ nop
/* B5E268 800E70C8 90AE0003 */ lbu $t6, 3($a1)
/* B5E26C 800E70CC 31CF0040 */ andi $t7, $t6, 0x40
/* B5E270 800E70D0 15E00003 */ bnez $t7, .L800E70E0
/* B5E274 800E70D4 00000000 */ nop
.L800E70D8:
/* B5E278 800E70D8 10000014 */ b .L800E712C
/* B5E27C 800E70DC 92020000 */ lbu $v0, ($s0)
.L800E70E0:
/* B5E280 800E70E0 0C039EE0 */ jal Audio_SeqChanLayerNoteRelease
/* B5E284 800E70E4 00000000 */ nop
/* B5E288 800E70E8 0C03A037 */ jal Audio_AudioListRemove
/* B5E28C 800E70EC 02202025 */ move $a0, $s1
/* B5E290 800E70F0 8E24000C */ lw $a0, 0xc($s1)
/* B5E294 800E70F4 02202825 */ move $a1, $s1
/* B5E298 800E70F8 0C03A027 */ jal Audio_AudioListPushFront
/* B5E29C 800E70FC 24840010 */ addiu $a0, $a0, 0x10
/* B5E2A0 800E7100 24180002 */ li $t8, 2
/* B5E2A4 800E7104 A2160000 */ sb $s6, ($s0)
/* B5E2A8 800E7108 10000007 */ b .L800E7128
/* B5E2AC 800E710C A2180004 */ sb $t8, 4($s0)
/* B5E2B0 800E7110 92190004 */ lbu $t9, 4($s0)
.L800E7114:
/* B5E2B4 800E7114 57200005 */ bnezl $t9, .L800E712C
/* B5E2B8 800E7118 92020000 */ lbu $v0, ($s0)
/* B5E2BC 800E711C 92080000 */ lbu $t0, ($s0)
/* B5E2C0 800E7120 5D0000BF */ bgtzl $t0, .L800E7420
/* B5E2C4 800E7124 26B50001 */ addiu $s5, $s5, 1
.L800E7128:
/* B5E2C8 800E7128 92020000 */ lbu $v0, ($s0)
.L800E712C:
/* B5E2CC 800E712C 504000BB */ beql $v0, $zero, .L800E741C
/* B5E2D0 800E7130 8E822894 */ lw $v0, 0x2894($s4)
/* B5E2D4 800E7134 92020004 */ lbu $v0, 4($s0)
/* B5E2D8 800E7138 263200C0 */ addiu $s2, $s1, 0xc0
/* B5E2DC 800E713C 5C400006 */ bgtzl $v0, .L800E7158
/* B5E2E0 800E7140 920C0040 */ lbu $t4, 0x40($s0)
/* B5E2E4 800E7144 8E490000 */ lw $t1, ($s2)
/* B5E2E8 800E7148 00095880 */ sll $t3, $t1, 2
/* B5E2EC 800E714C 0563003B */ bgezl $t3, .L800E723C
/* B5E2F0 800E7150 920C0040 */ lbu $t4, 0x40($s0)
/* B5E2F4 800E7154 920C0040 */ lbu $t4, 0x40($s0)
.L800E7158:
/* B5E2F8 800E7158 263200C0 */ addiu $s2, $s1, 0xc0
/* B5E2FC 800E715C 318D000F */ andi $t5, $t4, 0xf
/* B5E300 800E7160 51A00006 */ beql $t5, $zero, .L800E717C
/* B5E304 800E7164 8E190018 */ lw $t9, 0x18($s0)
/* B5E308 800E7168 8E4E0000 */ lw $t6, ($s2)
/* B5E30C 800E716C 000EC080 */ sll $t8, $t6, 2
/* B5E310 800E7170 07010044 */ bgez $t8, .L800E7284
/* B5E314 800E7174 00000000 */ nop
/* B5E318 800E7178 8E190018 */ lw $t9, 0x18($s0)
.L800E717C:
/* B5E31C 800E717C 52790020 */ beql $s3, $t9, .L800E7200
/* B5E320 800E7180 8E040014 */ lw $a0, 0x14($s0)
/* B5E324 800E7184 0C039BCA */ jal Audio_NoteDisable
/* B5E328 800E7188 02202025 */ move $a0, $s1
/* B5E32C 800E718C 8E050018 */ lw $a1, 0x18($s0)
/* B5E330 800E7190 02202025 */ move $a0, $s1
/* B5E334 800E7194 8CA80050 */ lw $t0, 0x50($a1)
/* B5E338 800E7198 1100000F */ beqz $t0, .L800E71D8
/* B5E33C 800E719C 00000000 */ nop
/* B5E340 800E71A0 0C03A062 */ jal Audio_NoteInitForLayer
/* B5E344 800E71A4 263200C0 */ addiu $s2, $s1, 0xc0
/* B5E348 800E71A8 0C03A3C0 */ jal func_800E8F00
/* B5E34C 800E71AC 02202025 */ move $a0, $s1
/* B5E350 800E71B0 0C03A3EE */ jal func_800E8FB8
/* B5E354 800E71B4 02202025 */ move $a0, $s1
/* B5E358 800E71B8 0C03A037 */ jal Audio_AudioListRemove
/* B5E35C 800E71BC 02202025 */ move $a0, $s1
/* B5E360 800E71C0 8E24000C */ lw $a0, 0xc($s1)
/* B5E364 800E71C4 02202825 */ move $a1, $s1
/* B5E368 800E71C8 0C03A70A */ jal Audio_AudioListPushBack
/* B5E36C 800E71CC 24840030 */ addiu $a0, $a0, 0x30
/* B5E370 800E71D0 1000002C */ b .L800E7284
/* B5E374 800E71D4 AE130018 */ sw $s3, 0x18($s0)
.L800E71D8:
/* B5E378 800E71D8 0C039BCA */ jal Audio_NoteDisable
/* B5E37C 800E71DC 02202025 */ move $a0, $s1
/* B5E380 800E71E0 0C03A037 */ jal Audio_AudioListRemove
/* B5E384 800E71E4 02202025 */ move $a0, $s1
/* B5E388 800E71E8 8E24000C */ lw $a0, 0xc($s1)
/* B5E38C 800E71EC 0C03A70A */ jal Audio_AudioListPushBack
/* B5E390 800E71F0 02202825 */ move $a1, $s1
/* B5E394 800E71F4 10000088 */ b .L800E7418
/* B5E398 800E71F8 AE130018 */ sw $s3, 0x18($s0)
/* B5E39C 800E71FC 8E040014 */ lw $a0, 0x14($s0)
.L800E7200:
/* B5E3A0 800E7200 12640004 */ beq $s3, $a0, .L800E7214
/* B5E3A4 800E7204 00000000 */ nop
/* B5E3A8 800E7208 908A0000 */ lbu $t2, ($a0)
/* B5E3AC 800E720C 354B0002 */ ori $t3, $t2, 2
/* B5E3B0 800E7210 A08B0000 */ sb $t3, ($a0)
.L800E7214:
/* B5E3B4 800E7214 0C039BCA */ jal Audio_NoteDisable
/* B5E3B8 800E7218 02202025 */ move $a0, $s1
/* B5E3BC 800E721C 0C03A037 */ jal Audio_AudioListRemove
/* B5E3C0 800E7220 02202025 */ move $a0, $s1
/* B5E3C4 800E7224 8E24000C */ lw $a0, 0xc($s1)
/* B5E3C8 800E7228 0C03A70A */ jal Audio_AudioListPushBack
/* B5E3CC 800E722C 02202825 */ move $a1, $s1
/* B5E3D0 800E7230 1000007A */ b .L800E741C
/* B5E3D4 800E7234 8E822894 */ lw $v0, 0x2894($s4)
/* B5E3D8 800E7238 920C0040 */ lbu $t4, 0x40($s0)
.L800E723C:
/* B5E3DC 800E723C 318D000F */ andi $t5, $t4, 0xf
/* B5E3E0 800E7240 15A00010 */ bnez $t5, .L800E7284
/* B5E3E4 800E7244 00000000 */ nop
/* B5E3E8 800E7248 8E040014 */ lw $a0, 0x14($s0)
/* B5E3EC 800E724C 12640004 */ beq $s3, $a0, .L800E7260
/* B5E3F0 800E7250 00000000 */ nop
/* B5E3F4 800E7254 908F0000 */ lbu $t7, ($a0)
/* B5E3F8 800E7258 35F80002 */ ori $t8, $t7, 2
/* B5E3FC 800E725C A0980000 */ sb $t8, ($a0)
.L800E7260:
/* B5E400 800E7260 0C039BCA */ jal Audio_NoteDisable
/* B5E404 800E7264 02202025 */ move $a0, $s1
/* B5E408 800E7268 0C03A037 */ jal Audio_AudioListRemove
/* B5E40C 800E726C 02202025 */ move $a0, $s1
/* B5E410 800E7270 8E24000C */ lw $a0, 0xc($s1)
/* B5E414 800E7274 0C03A70A */ jal Audio_AudioListPushBack
/* B5E418 800E7278 02202825 */ move $a1, $s1
/* B5E41C 800E727C 10000067 */ b .L800E741C
/* B5E420 800E7280 8E822894 */ lw $v0, 0x2894($s4)
.L800E7284:
/* B5E424 800E7284 0C03A401 */ jal func_800E9004
/* B5E428 800E7288 26040040 */ addiu $a0, $s0, 0x40
/* B5E42C 800E728C E7A00064 */ swc1 $f0, 0x64($sp)
/* B5E430 800E7290 0C03A3A9 */ jal func_800E8EA4
/* B5E434 800E7294 02202025 */ move $a0, $s1
/* B5E438 800E7298 92020004 */ lbu $v0, 4($s0)
/* B5E43C 800E729C 24010001 */ li $at, 1
/* B5E440 800E72A0 10410002 */ beq $v0, $at, .L800E72AC
/* B5E444 800E72A4 24010002 */ li $at, 2
/* B5E448 800E72A8 14410018 */ bne $v0, $at, .L800E730C
.L800E72AC:
/* B5E44C 800E72AC 2602001C */ addiu $v0, $s0, 0x1c
/* B5E450 800E72B0 C4460008 */ lwc1 $f6, 8($v0)
/* B5E454 800E72B4 E7A60070 */ swc1 $f6, 0x70($sp)
/* B5E458 800E72B8 C448000C */ lwc1 $f8, 0xc($v0)
/* B5E45C 800E72BC E7A80074 */ swc1 $f8, 0x74($sp)
/* B5E460 800E72C0 90590002 */ lbu $t9, 2($v0)
/* B5E464 800E72C4 A3B9006E */ sb $t9, 0x6e($sp)
/* B5E468 800E72C8 90480000 */ lbu $t0, ($v0)
/* B5E46C 800E72CC A3A8006C */ sb $t0, 0x6c($sp)
/* B5E470 800E72D0 904A0003 */ lbu $t2, 3($v0)
/* B5E474 800E72D4 A3CA0000 */ sb $t2, ($fp)
/* B5E478 800E72D8 904B0001 */ lbu $t3, 1($v0)
/* B5E47C 800E72DC A3AB006D */ sb $t3, 0x6d($sp)
/* B5E480 800E72E0 8C4C0010 */ lw $t4, 0x10($v0)
/* B5E484 800E72E4 AFAC007C */ sw $t4, 0x7c($sp)
/* B5E488 800E72E8 904D0004 */ lbu $t5, 4($v0)
/* B5E48C 800E72EC A3AD0080 */ sb $t5, 0x80($sp)
/* B5E490 800E72F0 944E0006 */ lhu $t6, 6($v0)
/* B5E494 800E72F4 A7AE0082 */ sh $t6, 0x82($sp)
/* B5E498 800E72F8 8E430000 */ lw $v1, ($s2)
/* B5E49C 800E72FC 00031AC0 */ sll $v1, $v1, 0xb
/* B5E4A0 800E7300 00031F82 */ srl $v1, $v1, 0x1e
/* B5E4A4 800E7304 1000002B */ b .L800E73B4
/* B5E4A8 800E7308 306300FF */ andi $v1, $v1, 0xff
.L800E730C:
/* B5E4AC 800E730C 8E030014 */ lw $v1, 0x14($s0)
/* B5E4B0 800E7310 C46A0044 */ lwc1 $f10, 0x44($v1)
/* B5E4B4 800E7314 8C620050 */ lw $v0, 0x50($v1)
/* B5E4B8 800E7318 E7AA0070 */ swc1 $f10, 0x70($sp)
/* B5E4BC 800E731C C4700040 */ lwc1 $f16, 0x40($v1)
/* B5E4C0 800E7320 E7B00074 */ swc1 $f16, 0x74($sp)
/* B5E4C4 800E7324 906F0007 */ lbu $t7, 7($v1)
/* B5E4C8 800E7328 A3AF006E */ sb $t7, 0x6e($sp)
/* B5E4CC 800E732C 90780001 */ lbu $t8, 1($v1)
/* B5E4D0 800E7330 57000005 */ bnezl $t8, .L800E7348
/* B5E4D4 800E7334 906A0001 */ lbu $t2, 1($v1)
/* B5E4D8 800E7338 904800D0 */ lbu $t0, 0xd0($v0)
/* B5E4DC 800E733C 10000003 */ b .L800E734C
/* B5E4E0 800E7340 A3C80000 */ sb $t0, ($fp)
/* B5E4E4 800E7344 906A0001 */ lbu $t2, 1($v1)
.L800E7348:
/* B5E4E8 800E7348 A3CA0000 */ sb $t2, ($fp)
.L800E734C:
/* B5E4EC 800E734C 904B0004 */ lbu $t3, 4($v0)
/* B5E4F0 800E7350 A3AB006C */ sb $t3, 0x6c($sp)
/* B5E4F4 800E7354 904C000C */ lbu $t4, 0xc($v0)
/* B5E4F8 800E7358 A3AC006D */ sb $t4, 0x6d($sp)
/* B5E4FC 800E735C 8C4D00CC */ lw $t5, 0xcc($v0)
/* B5E500 800E7360 AFAD007C */ sw $t5, 0x7c($sp)
/* B5E504 800E7364 904E000F */ lbu $t6, 0xf($v0)
/* B5E508 800E7368 A3AE0080 */ sb $t6, 0x80($sp)
/* B5E50C 800E736C 944F0020 */ lhu $t7, 0x20($v0)
/* B5E510 800E7370 A7AF0082 */ sh $t7, 0x82($sp)
/* B5E514 800E7374 8C58004C */ lw $t8, 0x4c($v0)
/* B5E518 800E7378 90430009 */ lbu $v1, 9($v0)
/* B5E51C 800E737C 8F190000 */ lw $t9, ($t8)
/* B5E520 800E7380 30630007 */ andi $v1, $v1, 7
/* B5E524 800E7384 306300FF */ andi $v1, $v1, 0xff
/* B5E528 800E7388 00194880 */ sll $t1, $t9, 2
/* B5E52C 800E738C 0523000A */ bgezl $t1, .L800E73B8
/* B5E530 800E7390 C606000C */ lwc1 $f6, 0xc($s0)
/* B5E534 800E7394 904A0003 */ lbu $t2, 3($v0)
/* B5E538 800E7398 314B0008 */ andi $t3, $t2, 8
/* B5E53C 800E739C 51600006 */ beql $t3, $zero, .L800E73B8
/* B5E540 800E73A0 C606000C */ lwc1 $f6, 0xc($s0)
/* B5E544 800E73A4 44809000 */ mtc1 $zero, $f18
/* B5E548 800E73A8 44802000 */ mtc1 $zero, $f4
/* B5E54C 800E73AC E7B20070 */ swc1 $f18, 0x70($sp)
/* B5E550 800E73B0 E7A40074 */ swc1 $f4, 0x74($sp)
.L800E73B4:
/* B5E554 800E73B4 C606000C */ lwc1 $f6, 0xc($s0)
.L800E73B8:
/* B5E558 800E73B8 C6080008 */ lwc1 $f8, 8($s0)
/* B5E55C 800E73BC C7B00070 */ lwc1 $f16, 0x70($sp)
/* B5E560 800E73C0 C6842860 */ lwc1 $f4, 0x2860($s4)
/* B5E564 800E73C4 46083282 */ mul.s $f10, $f6, $f8
/* B5E568 800E73C8 C7A80074 */ lwc1 $f8, 0x74($sp)
/* B5E56C 800E73CC A3A3006B */ sb $v1, 0x6b($sp)
/* B5E570 800E73D0 02202025 */ move $a0, $s1
/* B5E574 800E73D4 8FA50090 */ lw $a1, 0x90($sp)
/* B5E578 800E73D8 27A6006C */ addiu $a2, $sp, 0x6c
/* B5E57C 800E73DC 460A8482 */ mul.s $f18, $f16, $f10
/* B5E580 800E73E0 C7B00064 */ lwc1 $f16, 0x64($sp)
/* B5E584 800E73E4 46049182 */ mul.s $f6, $f18, $f4
/* B5E588 800E73E8 E7B20070 */ swc1 $f18, 0x70($sp)
/* B5E58C 800E73EC 46104282 */ mul.s $f10, $f8, $f16
/* B5E590 800E73F0 E7A60070 */ swc1 $f6, 0x70($sp)
/* B5E594 800E73F4 0C039A50 */ jal Audio_NoteSetVelPanReverb
/* B5E598 800E73F8 E7AA0074 */ swc1 $f10, 0x74($sp)
/* B5E59C 800E73FC 93AC006B */ lbu $t4, 0x6b($sp)
/* B5E5A0 800E7400 924F0001 */ lbu $t7, 1($s2)
/* B5E5A4 800E7404 000C68C0 */ sll $t5, $t4, 3
/* B5E5A8 800E7408 31AE0018 */ andi $t6, $t5, 0x18
/* B5E5AC 800E740C 31F8FFE7 */ andi $t8, $t7, 0xffe7
/* B5E5B0 800E7410 01D8C825 */ or $t9, $t6, $t8
/* B5E5B4 800E7414 A2590001 */ sb $t9, 1($s2)
.L800E7418:
/* B5E5B8 800E7418 8E822894 */ lw $v0, 0x2894($s4)
.L800E741C:
/* B5E5BC 800E741C 26B50001 */ addiu $s5, $s5, 1
.L800E7420:
/* B5E5C0 800E7420 02A2082A */ slt $at, $s5, $v0
/* B5E5C4 800E7424 1420FEED */ bnez $at, .L800E6FDC
/* B5E5C8 800E7428 26F700E0 */ addiu $s7, $s7, 0xe0
.L800E742C:
/* B5E5CC 800E742C 8FBF003C */ lw $ra, 0x3c($sp)
/* B5E5D0 800E7430 8FB00018 */ lw $s0, 0x18($sp)
/* B5E5D4 800E7434 8FB1001C */ lw $s1, 0x1c($sp)
/* B5E5D8 800E7438 8FB20020 */ lw $s2, 0x20($sp)
/* B5E5DC 800E743C 8FB30024 */ lw $s3, 0x24($sp)
/* B5E5E0 800E7440 8FB40028 */ lw $s4, 0x28($sp)
/* B5E5E4 800E7444 8FB5002C */ lw $s5, 0x2c($sp)
/* B5E5E8 800E7448 8FB60030 */ lw $s6, 0x30($sp)
/* B5E5EC 800E744C 8FB70034 */ lw $s7, 0x34($sp)
/* B5E5F0 800E7450 8FBE0038 */ lw $fp, 0x38($sp)
/* B5E5F4 800E7454 03E00008 */ jr $ra
/* B5E5F8 800E7458 27BD00A0 */ addiu $sp, $sp, 0xa0

View file

@ -0,0 +1,199 @@
glabel Audio_SeqChanLayerDecayRelease
/* B5EA28 800E7888 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B5EA2C 800E788C AFB00018 */ sw $s0, 0x18($sp)
/* B5EA30 800E7890 2408FFFF */ li $t0, -1
/* B5EA34 800E7894 00808025 */ move $s0, $a0
/* B5EA38 800E7898 AFBF001C */ sw $ra, 0x1c($sp)
/* B5EA3C 800E789C 108800AB */ beq $a0, $t0, .L800E7B4C
/* B5EA40 800E78A0 AFA5002C */ sw $a1, 0x2c($sp)
/* B5EA44 800E78A4 908E0000 */ lbu $t6, ($a0)
/* B5EA48 800E78A8 8C82002C */ lw $v0, 0x2c($a0)
/* B5EA4C 800E78AC 31CFFFF7 */ andi $t7, $t6, 0xfff7
/* B5EA50 800E78B0 104000A6 */ beqz $v0, .L800E7B4C
/* B5EA54 800E78B4 A08F0000 */ sb $t7, ($a0)
/* B5EA58 800E78B8 8C580048 */ lw $t8, 0x48($v0)
/* B5EA5C 800E78BC 00403025 */ move $a2, $v0
/* B5EA60 800E78C0 54980003 */ bnel $a0, $t8, .L800E78D0
/* B5EA64 800E78C4 8CC20044 */ lw $v0, 0x44($a2)
/* B5EA68 800E78C8 AC480048 */ sw $t0, 0x48($v0)
/* B5EA6C 800E78CC 8CC20044 */ lw $v0, 0x44($a2)
.L800E78D0:
/* B5EA70 800E78D0 52020014 */ beql $s0, $v0, .L800E7924
/* B5EA74 800E78D4 90CF0070 */ lbu $t7, 0x70($a2)
/* B5EA78 800E78D8 5502009D */ bnel $t0, $v0, .L800E7B50
/* B5EA7C 800E78DC 8FBF001C */ lw $ra, 0x1c($sp)
/* B5EA80 800E78E0 8CD90048 */ lw $t9, 0x48($a2)
/* B5EA84 800E78E4 5519009A */ bnel $t0, $t9, .L800E7B50
/* B5EA88 800E78E8 8FBF001C */ lw $ra, 0x1c($sp)
/* B5EA8C 800E78EC 8CCA0040 */ lw $t2, 0x40($a2)
/* B5EA90 800E78F0 8FAB002C */ lw $t3, 0x2c($sp)
/* B5EA94 800E78F4 160A0095 */ bne $s0, $t2, .L800E7B4C
/* B5EA98 800E78F8 24090006 */ li $t1, 6
/* B5EA9C 800E78FC 51690094 */ beql $t3, $t1, .L800E7B50
/* B5EAA0 800E7900 8FBF001C */ lw $ra, 0x1c($sp)
/* B5EAA4 800E7904 90CD0070 */ lbu $t5, 0x70($a2)
/* B5EAA8 800E7908 3C018017 */ lui $at, %hi(D_801719E4)
/* B5EAAC 800E790C C42419E4 */ lwc1 $f4, %lo(D_801719E4)($at)
/* B5EAB0 800E7910 35AE0010 */ ori $t6, $t5, 0x10
/* B5EAB4 800E7914 A0CE0070 */ sb $t6, 0x70($a2)
/* B5EAB8 800E7918 1000008C */ b .L800E7B4C
/* B5EABC 800E791C E4C4007C */ swc1 $f4, 0x7c($a2)
/* B5EAC0 800E7920 90CF0070 */ lbu $t7, 0x70($a2)
.L800E7924:
/* B5EAC4 800E7924 24090006 */ li $t1, 6
/* B5EAC8 800E7928 31F8000F */ andi $t8, $t7, 0xf
/* B5EACC 800E792C 5138007E */ beql $t1, $t8, .L800E7B28
/* B5EAD0 800E7930 8FB9002C */ lw $t9, 0x2c($sp)
/* B5EAD4 800E7934 C6060044 */ lwc1 $f6, 0x44($s0)
/* B5EAD8 800E7938 24C4004C */ addiu $a0, $a2, 0x4c
/* B5EADC 800E793C E4860008 */ swc1 $f6, 8($a0)
/* B5EAE0 800E7940 C6080040 */ lwc1 $f8, 0x40($s0)
/* B5EAE4 800E7944 E488000C */ swc1 $f8, 0xc($a0)
/* B5EAE8 800E7948 92190007 */ lbu $t9, 7($s0)
/* B5EAEC 800E794C A0990002 */ sb $t9, 2($a0)
/* B5EAF0 800E7950 8E020050 */ lw $v0, 0x50($s0)
/* B5EAF4 800E7954 5040003D */ beql $v0, $zero, .L800E7A4C
/* B5EAF8 800E7958 920D0001 */ lbu $t5, 1($s0)
/* B5EAFC 800E795C 904A0004 */ lbu $t2, 4($v0)
/* B5EB00 800E7960 00403825 */ move $a3, $v0
/* B5EB04 800E7964 00801825 */ move $v1, $a0
/* B5EB08 800E7968 A08A0000 */ sb $t2, ($a0)
/* B5EB0C 800E796C 904B000C */ lbu $t3, 0xc($v0)
/* B5EB10 800E7970 24050010 */ li $a1, 16
/* B5EB14 800E7974 A08B0001 */ sb $t3, 1($a0)
/* B5EB18 800E7978 8C4C00CC */ lw $t4, 0xcc($v0)
/* B5EB1C 800E797C 00001025 */ move $v0, $zero
/* B5EB20 800E7980 11800016 */ beqz $t4, .L800E79DC
/* B5EB24 800E7984 AC8C0010 */ sw $t4, 0x10($a0)
.L800E7988:
/* B5EB28 800E7988 8C8E0010 */ lw $t6, 0x10($a0)
/* B5EB2C 800E798C 24630008 */ addiu $v1, $v1, 8
/* B5EB30 800E7990 01C27821 */ addu $t7, $t6, $v0
/* B5EB34 800E7994 85F80000 */ lh $t8, ($t7)
/* B5EB38 800E7998 A478000C */ sh $t8, 0xc($v1)
/* B5EB3C 800E799C 8C990010 */ lw $t9, 0x10($a0)
/* B5EB40 800E79A0 03225021 */ addu $t2, $t9, $v0
/* B5EB44 800E79A4 854B0002 */ lh $t3, 2($t2)
/* B5EB48 800E79A8 A46B000E */ sh $t3, 0xe($v1)
/* B5EB4C 800E79AC 8C8C0010 */ lw $t4, 0x10($a0)
/* B5EB50 800E79B0 01826821 */ addu $t5, $t4, $v0
/* B5EB54 800E79B4 85AE0004 */ lh $t6, 4($t5)
/* B5EB58 800E79B8 A46E0010 */ sh $t6, 0x10($v1)
/* B5EB5C 800E79BC 8C8F0010 */ lw $t7, 0x10($a0)
/* B5EB60 800E79C0 01E2C021 */ addu $t8, $t7, $v0
/* B5EB64 800E79C4 87190006 */ lh $t9, 6($t8)
/* B5EB68 800E79C8 24420008 */ addiu $v0, $v0, 8
/* B5EB6C 800E79CC 1445FFEE */ bne $v0, $a1, .L800E7988
/* B5EB70 800E79D0 A4790012 */ sh $t9, 0x12($v1)
/* B5EB74 800E79D4 248A0014 */ addiu $t2, $a0, 0x14
/* B5EB78 800E79D8 AC8A0010 */ sw $t2, 0x10($a0)
.L800E79DC:
/* B5EB7C 800E79DC 94EB0020 */ lhu $t3, 0x20($a3)
/* B5EB80 800E79E0 A48B0006 */ sh $t3, 6($a0)
/* B5EB84 800E79E4 90EC000F */ lbu $t4, 0xf($a3)
/* B5EB88 800E79E8 A08C0004 */ sb $t4, 4($a0)
/* B5EB8C 800E79EC 8CED004C */ lw $t5, 0x4c($a3)
/* B5EB90 800E79F0 8DAE0000 */ lw $t6, ($t5)
/* B5EB94 800E79F4 000EC080 */ sll $t8, $t6, 2
/* B5EB98 800E79F8 07030009 */ bgezl $t8, .L800E7A20
/* B5EB9C 800E79FC 920E0001 */ lbu $t6, 1($s0)
/* B5EBA0 800E7A00 90F90003 */ lbu $t9, 3($a3)
/* B5EBA4 800E7A04 332A0008 */ andi $t2, $t9, 8
/* B5EBA8 800E7A08 51400005 */ beql $t2, $zero, .L800E7A20
/* B5EBAC 800E7A0C 920E0001 */ lbu $t6, 1($s0)
/* B5EBB0 800E7A10 90CC00C0 */ lbu $t4, 0xc0($a2)
/* B5EBB4 800E7A14 358D0020 */ ori $t5, $t4, 0x20
/* B5EBB8 800E7A18 A0CD00C0 */ sb $t5, 0xc0($a2)
/* B5EBBC 800E7A1C 920E0001 */ lbu $t6, 1($s0)
.L800E7A20:
/* B5EBC0 800E7A20 55C00005 */ bnezl $t6, .L800E7A38
/* B5EBC4 800E7A24 920A0001 */ lbu $t2, 1($s0)
/* B5EBC8 800E7A28 90F800D0 */ lbu $t8, 0xd0($a3)
/* B5EBCC 800E7A2C 10000003 */ b .L800E7A3C
/* B5EBD0 800E7A30 A0980003 */ sb $t8, 3($a0)
/* B5EBD4 800E7A34 920A0001 */ lbu $t2, 1($s0)
.L800E7A38:
/* B5EBD8 800E7A38 A08A0003 */ sb $t2, 3($a0)
.L800E7A3C:
/* B5EBDC 800E7A3C 90EB0006 */ lbu $t3, 6($a3)
/* B5EBE0 800E7A40 10000005 */ b .L800E7A58
/* B5EBE4 800E7A44 A0CB0030 */ sb $t3, 0x30($a2)
/* B5EBE8 800E7A48 920D0001 */ lbu $t5, 1($s0)
.L800E7A4C:
/* B5EBEC 800E7A4C 240E0001 */ li $t6, 1
/* B5EBF0 800E7A50 A08D0003 */ sb $t5, 3($a0)
/* B5EBF4 800E7A54 A0CE0030 */ sb $t6, 0x30($a2)
.L800E7A58:
/* B5EBF8 800E7A58 8CCF0044 */ lw $t7, 0x44($a2)
/* B5EBFC 800E7A5C ACC80044 */ sw $t0, 0x44($a2)
/* B5EC00 800E7A60 24010007 */ li $at, 7
/* B5EC04 800E7A64 ACCF0040 */ sw $t7, 0x40($a2)
/* B5EC08 800E7A68 8FB8002C */ lw $t8, 0x2c($sp)
/* B5EC0C 800E7A6C 240C0002 */ li $t4, 2
/* B5EC10 800E7A70 5701000A */ bnel $t8, $at, .L800E7A9C
/* B5EC14 800E7A74 90CF0070 */ lbu $t7, 0x70($a2)
/* B5EC18 800E7A78 90CA0070 */ lbu $t2, 0x70($a2)
/* B5EC1C 800E7A7C 3C018017 */ lui $at, %hi(D_801719E4)
/* B5EC20 800E7A80 C42A19E4 */ lwc1 $f10, %lo(D_801719E4)($at)
/* B5EC24 800E7A84 354B0010 */ ori $t3, $t2, 0x10
/* B5EC28 800E7A88 A0CB0070 */ sb $t3, 0x70($a2)
/* B5EC2C 800E7A8C A0CC0034 */ sb $t4, 0x34($a2)
/* B5EC30 800E7A90 10000024 */ b .L800E7B24
/* B5EC34 800E7A94 E4CA007C */ swc1 $f10, 0x7c($a2)
/* B5EC38 800E7A98 90CF0070 */ lbu $t7, 0x70($a2)
.L800E7A9C:
/* B5EC3C 800E7A9C 240D0001 */ li $t5, 1
/* B5EC40 800E7AA0 A0CD0034 */ sb $t5, 0x34($a2)
/* B5EC44 800E7AA4 35F80020 */ ori $t8, $t7, 0x20
/* B5EC48 800E7AA8 A0D80070 */ sb $t8, 0x70($a2)
/* B5EC4C 800E7AAC 92020018 */ lbu $v0, 0x18($s0)
/* B5EC50 800E7AB0 3C0E8017 */ lui $t6, %hi(D_801726A0) # $t6, 0x8017
/* B5EC54 800E7AB4 1440000A */ bnez $v0, .L800E7AE0
/* B5EC58 800E7AB8 00000000 */ nop
/* B5EC5C 800E7ABC 8E0A0050 */ lw $t2, 0x50($s0)
/* B5EC60 800E7AC0 3C198017 */ lui $t9, %hi(D_801726A0) # $t9, 0x8017
/* B5EC64 800E7AC4 8F3926A0 */ lw $t9, %lo(D_801726A0)($t9)
/* B5EC68 800E7AC8 914B007C */ lbu $t3, 0x7c($t2)
/* B5EC6C 800E7ACC 000B6080 */ sll $t4, $t3, 2
/* B5EC70 800E7AD0 032C6821 */ addu $t5, $t9, $t4
/* B5EC74 800E7AD4 C5B00000 */ lwc1 $f16, ($t5)
/* B5EC78 800E7AD8 10000006 */ b .L800E7AF4
/* B5EC7C 800E7ADC E4D0007C */ swc1 $f16, 0x7c($a2)
.L800E7AE0:
/* B5EC80 800E7AE0 8DCE26A0 */ lw $t6, %lo(D_801726A0)($t6)
/* B5EC84 800E7AE4 00027880 */ sll $t7, $v0, 2
/* B5EC88 800E7AE8 01CFC021 */ addu $t8, $t6, $t7
/* B5EC8C 800E7AEC C7120000 */ lwc1 $f18, ($t8)
/* B5EC90 800E7AF0 E4D2007C */ swc1 $f18, 0x7c($a2)
.L800E7AF4:
/* B5EC94 800E7AF4 8E0A0050 */ lw $t2, 0x50($s0)
/* B5EC98 800E7AF8 C4C80080 */ lwc1 $f8, 0x80($a2)
/* B5EC9C 800E7AFC 3C013B80 */ li $at, 0x3B800000 # 0.000000
/* B5ECA0 800E7B00 914B007D */ lbu $t3, 0x7d($t2)
/* B5ECA4 800E7B04 44818000 */ mtc1 $at, $f16
/* B5ECA8 800E7B08 448B2000 */ mtc1 $t3, $f4
/* B5ECAC 800E7B0C 00000000 */ nop
/* B5ECB0 800E7B10 468021A0 */ cvt.s.w $f6, $f4
/* B5ECB4 800E7B14 46083282 */ mul.s $f10, $f6, $f8
/* B5ECB8 800E7B18 00000000 */ nop
/* B5ECBC 800E7B1C 46105482 */ mul.s $f18, $f10, $f16
/* B5ECC0 800E7B20 E4D20074 */ swc1 $f18, 0x74($a2)
.L800E7B24:
/* B5ECC4 800E7B24 8FB9002C */ lw $t9, 0x2c($sp)
.L800E7B28:
/* B5ECC8 800E7B28 00C02025 */ move $a0, $a2
/* B5ECCC 800E7B2C 57290008 */ bnel $t9, $t1, .L800E7B50
/* B5ECD0 800E7B30 8FBF001C */ lw $ra, 0x1c($sp)
/* B5ECD4 800E7B34 0C03A037 */ jal Audio_AudioListRemove
/* B5ECD8 800E7B38 AFA60024 */ sw $a2, 0x24($sp)
/* B5ECDC 800E7B3C 8FA50024 */ lw $a1, 0x24($sp)
/* B5ECE0 800E7B40 8CA4000C */ lw $a0, 0xc($a1)
/* B5ECE4 800E7B44 0C03A027 */ jal Audio_AudioListPushFront
/* B5ECE8 800E7B48 24840010 */ addiu $a0, $a0, 0x10
.L800E7B4C:
/* B5ECEC 800E7B4C 8FBF001C */ lw $ra, 0x1c($sp)
.L800E7B50:
/* B5ECF0 800E7B50 8FB00018 */ lw $s0, 0x18($sp)
/* B5ECF4 800E7B54 27BD0028 */ addiu $sp, $sp, 0x28
/* B5ECF8 800E7B58 03E00008 */ jr $ra
/* B5ECFC 800E7B5C 00000000 */ nop

View file

@ -0,0 +1,116 @@
glabel func_800E7744
# if (bankId == 0xFF)
# return -1;
/* B5E8E4 800E7744 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B5E8E8 800E7748 240100FF */ li $at, 255
/* B5E8EC 800E774C AFBF0014 */ sw $ra, 0x14($sp)
/* B5E8F0 800E7750 14A10003 */ bne $a1, $at, .BANKCHECK
/* B5E8F4 800E7754 AFA40018 */ sw $a0, 0x18($sp)
/* B5E8F8 800E7758 10000047 */ b .RETURN
/* B5E8FC 800E775C 2402FFFF */ li $v0, -1
.BANKCHECK:
# if (func_800E18B0(bankId) == 0) {
# return -2;
# }
/* B5E900 800E7760 00A02025 */ move $a0, $a1
/* B5E904 800E7764 AFA5001C */ sw $a1, 0x1c($sp)
/* B5E908 800E7768 AFA60020 */ sw $a2, 0x20($sp)
/* B5E90C 800E776C 0C03862C */ jal func_800E18B0
/* B5E910 800E7770 AFA70024 */ sw $a3, 0x24($sp)
/* B5E914 800E7774 8FA30018 */ lw $v1, 0x18($sp)
/* B5E918 800E7778 8FA5001C */ lw $a1, 0x1c($sp)
/* B5E91C 800E777C 8FA60020 */ lw $a2, 0x20($sp)
/* B5E920 800E7780 14400003 */ bnez $v0, .MAINCHECK
/* B5E924 800E7784 8FA70024 */ lw $a3, 0x24($sp)
/* B5E928 800E7788 1000003B */ b .RETURN
/* B5E92C 800E778C 2402FFFE */ li $v0, -2
.MAINCHECK:
# if (arg0 != 0) {
/* B5E930 800E7790 10600006 */ beqz $v1, .SWITCH0
/* B5E934 800E7794 3C0E8017 */ lui $t6, %hi(D_801719C4) # $t6, 0x8017
# if (arg0 != 1) {
/* B5E938 800E7798 24010001 */ li $at, 1
/* B5E93C 800E779C 10610013 */ beq $v1, $at, .SWITCH1
/* B5E940 800E77A0 3C0A8017 */ lui $t2, %hi(D_801719C4) # $t2, 0x8017
/* B5E944 800E77A4 10000024 */ b .SWITCH2
/* B5E948 800E77A8 3C088017 */ lui $t0, %hi(D_801719C4) # $t0, 0x8017
.SWITCH0:
# if (instId >= gAudioContext.gCtlEntries[bankId].numDrums) {
# return -3;
# }
/* B5E94C 800E77AC 8DCE19C4 */ lw $t6, %lo(D_801719C4)($t6)
/* B5E950 800E77B0 00057880 */ sll $t7, $a1, 2
/* B5E954 800E77B4 01E57821 */ addu $t7, $t7, $a1
/* B5E958 800E77B8 000F7880 */ sll $t7, $t7, 2
/* B5E95C 800E77BC 01CF1021 */ addu $v0, $t6, $t7
/* B5E960 800E77C0 90580001 */ lbu $t8, 1($v0)
/* B5E964 800E77C4 00D8082A */ slt $at, $a2, $t8
/* B5E968 800E77C8 54200004 */ bnezl $at, .MAINELSERET0
/* B5E96C 800E77CC 8C59000C */ lw $t9, 0xc($v0)
/* B5E970 800E77D0 10000029 */ b .RETURN
/* B5E974 800E77D4 2402FFFD */ li $v0, -3
/* B5E978 800E77D8 8C59000C */ lw $t9, 0xc($v0)
.MAINELSERET0:
/* B5E97C 800E77DC 00064080 */ sll $t0, $a2, 2
/* B5E980 800E77E0 03284821 */ addu $t1, $t9, $t0
/* B5E984 800E77E4 10000023 */ b .RETURN0
/* B5E988 800E77E8 AD270000 */ sw $a3, ($t1)
.SWITCH1:
# if (instId >= gAudioContext.gCtlEntries[bankId].numUnkInstruments) {
# return -3;
# }
/* B5E98C 800E77EC 8D4A19C4 */ lw $t2, %lo(D_801719C4)($t2)
/* B5E990 800E77F0 00055880 */ sll $t3, $a1, 2
/* B5E994 800E77F4 01655821 */ addu $t3, $t3, $a1
/* B5E998 800E77F8 000B5880 */ sll $t3, $t3, 2
/* B5E99C 800E77FC 014B1021 */ addu $v0, $t2, $t3
/* B5E9A0 800E7800 944C0004 */ lhu $t4, 4($v0)
/* B5E9A4 800E7804 00CC082A */ slt $at, $a2, $t4
/* B5E9A8 800E7808 54200004 */ bnezl $at, .TEMPS
/* B5E9AC 800E780C 8C4D0010 */ lw $t5, 0x10($v0)
/* B5E9B0 800E7810 10000019 */ b .RETURN
/* B5E9B4 800E7814 2402FFFD */ li $v0, -3
/* B5E9B8 800E7818 8C4D0010 */ lw $t5, 0x10($v0)
.TEMPS:
/* B5E9BC 800E781C 8CF90000 */ lw $t9, ($a3)
/* B5E9C0 800E7820 000670C0 */ sll $t6, $a2, 3
/* B5E9C4 800E7824 01AE7821 */ addu $t7, $t5, $t6
/* B5E9C8 800E7828 ADF90000 */ sw $t9, ($t7)
/* B5E9CC 800E782C 8CF80004 */ lw $t8, 4($a3)
/* B5E9D0 800E7830 10000010 */ b .RETURN0
/* B5E9D4 800E7834 ADF80004 */ sw $t8, 4($t7)
.SWITCH2:
/* B5E9D8 800E7838 8D0819C4 */ lw $t0, %lo(D_801719C4)($t0)
/* B5E9DC 800E783C 00054880 */ sll $t1, $a1, 2
/* B5E9E0 800E7840 01254821 */ addu $t1, $t1, $a1
/* B5E9E4 800E7844 00094880 */ sll $t1, $t1, 2
/* B5E9E8 800E7848 01091021 */ addu $v0, $t0, $t1
/* B5E9EC 800E784C 904A0000 */ lbu $t2, ($v0)
/* B5E9F0 800E7850 00CA082A */ slt $at, $a2, $t2
/* B5E9F4 800E7854 54200004 */ bnezl $at, .L800E7868
/* B5E9F8 800E7858 8C4B0008 */ lw $t3, 8($v0)
/* B5E9FC 800E785C 10000006 */ b .RETURN
/* B5EA00 800E7860 2402FFFD */ li $v0, -3
/* B5EA04 800E7864 8C4B0008 */ lw $t3, 8($v0)
.L800E7868:
/* B5EA08 800E7868 00066080 */ sll $t4, $a2, 2
/* B5EA0C 800E786C 016C6821 */ addu $t5, $t3, $t4
/* B5EA10 800E7870 ADA70000 */ sw $a3, ($t5)
.RETURN0:
/* B5EA14 800E7874 00001025 */ move $v0, $zero
.RETURN:
/* B5EA18 800E7878 8FBF0014 */ lw $ra, 0x14($sp)
/* B5EA1C 800E787C 27BD0018 */ addiu $sp, $sp, 0x18
/* B5EA20 800E7880 03E00008 */ jr $ra
/* B5EA24 800E7884 00000000 */ nop

View file

@ -238,7 +238,7 @@ glabel D_8016E9A4
glabel D_8016EE8B glabel D_8016EE8B
.space 0x2F5 .space 0x2F5
glabel D_8016F180 glabel gAudioContext
.space 0x1 .space 0x1
glabel D_8016F181 glabel D_8016F181
@ -364,7 +364,7 @@ glabel D_80171A14
glabel D_80171A18 glabel D_80171A18
.space 0x2 .space 0x2
glabel D_80171A1A glabel gSoundMode
.space 0x2 .space 0x2
glabel D_80171A1C glabel D_80171A1C
@ -610,7 +610,7 @@ glabel D_80174CA0
glabel D_80174D08 glabel D_80174D08
.space 0x10 .space 0x10
glabel D_80174D18 glabel gNoteFreeLists
.space 0x10 .space 0x10
glabel D_80174D28 glabel D_80174D28

View file

@ -7,7 +7,7 @@
.section .data .section .data
glabel D_8012F090 glabel gWaveSamples
.incbin "baserom.z64", 0xBA6230, 0x8 .incbin "baserom.z64", 0xBA6230, 0x8
glabel D_8012F098 glabel D_8012F098
@ -40,13 +40,13 @@ glabel D_8012FAC4
glabel D_8012FAD4 glabel D_8012FAD4
.incbin "baserom.z64", 0xBA6C74, 0x10 .incbin "baserom.z64", 0xBA6C74, 0x10
glabel D_8012FAE4 glabel gZeroNoteSub
.incbin "baserom.z64", 0xBA6C84, 0x20 .incbin "baserom.z64", 0xBA6C84, 0x20
glabel D_8012FB04 glabel gDefaultNoteSub
.incbin "baserom.z64", 0xBA6CA4, 0x20 .incbin "baserom.z64", 0xBA6CA4, 0x20
glabel D_8012FB24 glabel gHeadsetPanQuantization
.incbin "baserom.z64", 0xBA6CC4, 0x7E .incbin "baserom.z64", 0xBA6CC4, 0x7E
glabel D_8012FBA2 glabel D_8012FBA2
@ -55,13 +55,13 @@ glabel D_8012FBA2
glabel D_8012FBAA glabel D_8012FBAA
.incbin "baserom.z64", 0xBA6D4A, 0x7E .incbin "baserom.z64", 0xBA6D4A, 0x7E
glabel D_8012FC28 glabel gHeadsetPanVolume
.incbin "baserom.z64", 0xBA6DC8, 0x1FC .incbin "baserom.z64", 0xBA6DC8, 0x1FC
glabel D_8012FE24 glabel D_8012FE24
.incbin "baserom.z64", 0xBA6FC4, 0x4 .incbin "baserom.z64", 0xBA6FC4, 0x4
glabel D_8012FE28 glabel gStereoPanVolume
.incbin "baserom.z64", 0xBA6FC8, 0x1D7 .incbin "baserom.z64", 0xBA6FC8, 0x1D7
glabel D_8012FFFF glabel D_8012FFFF
@ -82,7 +82,7 @@ glabel D_80130006
glabel D_80130024 glabel D_80130024
.incbin "baserom.z64", 0xBA71C4, 0x4 .incbin "baserom.z64", 0xBA71C4, 0x4
glabel D_80130028 glabel gDefaultPanVolume
.incbin "baserom.z64", 0xBA71C8, 0x1FC .incbin "baserom.z64", 0xBA71C8, 0x1FC
glabel D_80130224 glabel D_80130224

View file

@ -1,46 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .rodata
.align 4
glabel D_801495C0
.float 0.707
glabel D_801495C4
.float 4095.999
glabel D_801495C8
.float 1.99998
glabel D_801495CC
.float 3.99996
glabel D_801495D0
.float 1.99998
glabel D_801495D4
.float 0.99999
glabel D_801495D8
.float 1.0465
glabel D_801495DC
.float 1.99999
glabel D_801495E0
.float 0.52325
glabel D_801495E4
.float 3.99999
glabel D_801495E8
.float 0.26263
glabel D_801495EC
.float 0.13081

View file

@ -1847,7 +1847,7 @@ void FaultDrawer_SetDefault();
// ? func_800DE238(?); // ? func_800DE238(?);
// ? func_800DE258(?); // ? func_800DE258(?);
// ? func_800DE2B0(?); // ? func_800DE2B0(?);
// ? func_800DE308(?); void* Audio_SoundAlloc(SoundAllocPool* pool, u32 size);
// ? func_800DE344(?); // ? func_800DE344(?);
// ? func_800DE380(?); // ? func_800DE380(?);
// ? func_800DE3DC(?); // ? func_800DE3DC(?);
@ -1890,7 +1890,7 @@ void FaultDrawer_SetDefault();
// ? func_800E11F0(?); // ? func_800E11F0(?);
// ? func_800E12DC(?); // ? func_800E12DC(?);
// ? func_800E1618(?); // ? func_800E1618(?);
// ? func_800E18B0(?); s32 func_800E18B0(s32);
// ? func_800E1928(?); // ? func_800E1928(?);
// ? func_800E1A18(?); // ? func_800E1A18(?);
// ? func_800E1A48(?); // ? func_800E1A48(?);
@ -1985,37 +1985,37 @@ void FaultDrawer_SetDefault();
// ? func_800E6840(?); // ? func_800E6840(?);
// ? func_800E6880(?); // ? func_800E6880(?);
// ? func_800E68C0(?); // ? func_800E68C0(?);
// ? func_800E6940(?); void Audio_NoteSetVelPanReverb(Note* note, NoteSubEu* sub, Reverb* reverb);
// ? func_800E6DB8(?); void Audio_NoteSetResamplingRate(NoteSubEu* noteSubEu, f32 resamplingRateInput);
// ? func_800E6E68(?); void Audio_NoteInit(Note* note);
// ? func_800E6F28(?); void Audio_NoteDisable(Note* note);
// ? func_800E6F8C(?); void Audio_ProcessNotes(void);
// ? func_800E745C(?); AudioBankSound* Audio_InstrumentGetAudioBankSound(Instrument* instrument, s32 semitone);
// ? func_800E7498(?); Instrument* Audio_GetInstrumentInner(s32 bankId, s32 instId);
// ? func_800E756C(?); Drum* Audio_GetDrum(s32 bankId, s32 drumId);
// ? func_800E7650(?); UnkInstrument* Audio_GetUnkInstrument(s32 bankId, s32 unkInstrumentId);
// ? func_800E7744(?); s32 func_800E7744(s32 instrument, s32 bankId, s32 instId, UnkInstrument* arg3);
// ? func_800E7888(?); void Audio_SeqChanLayerDecayRelease(SequenceChannelLayer* seqLayer, s32 target);
// ? func_800E7B60(?); void Audio_SeqChanLayerNoteDecay(SequenceChannelLayer* seqLayer);
// ? func_800E7B80(?); void Audio_SeqChanLayerNoteRelease(SequenceChannelLayer* seqLayer);
// ? func_800E7BA0(?); s32 Audio_BuildSyntheticWave(Note* note, SequenceChannelLayer* seqLayer, s32 waveId);
// ? func_800E7CA4(?); void Audio_InitSyntheticWave(Note* note, SequenceChannelLayer* seqLayer);
// ? func_800E7CFC(?); void Audio_InitNoteList(AudioListItem* list);
// ? func_800E7D0C(?); void Audio_InitNoteLists(NotePool* pool);
// ? func_800E7D5C(?); void Audio_InitNoteFreeList(void);
// ? func_800E7E00(?); void Audio_NotePoolClear(NotePool* pool);
// ? func_800E7F60(?); void Audio_NotePoolFill(NotePool* pool, s32 count);
// ? func_800E809C(?); void Audio_AudioListPushFront(AudioListItem* list, AudioListItem* item);
// ? func_800E80DC(?); void Audio_AudioListRemove(AudioListItem* item);
// ? func_800E8108(?); Note* Audio_PopNodeWithValueLessEqual(AudioListItem* list, s32 limit);
// ? func_800E8188(?); void Audio_NoteInitForLayer(Note* note, SequenceChannelLayer* seqLayer);
// ? func_800E82C0(?); void func_800E82C0(Note* note, SequenceChannelLayer* seqLayer);
// ? func_800E82F4(?); void Audio_NoteReleaseAndTakeOwnership(Note* note, SequenceChannelLayer* seqLayer);
// ? func_800E8320(?); Note* Audio_AllocNoteFromDisabled(NotePool* pool, SequenceChannelLayer* seqLayer);
// ? func_800E836C(?); Note* Audio_AllocNoteFromDecaying(NotePool* pool, SequenceChannelLayer* seqLayer);
// ? func_800E83BC(?); Note* Audio_AllocNoteFromActive(NotePool* pool, SequenceChannelLayer* seqLayer);
// ? func_800E84B4(?); Note* Audio_AllocNote(SequenceChannelLayer* seqLayer);
// ? func_800E8788(?); void Audio_NoteInitAll(void);
// ? func_800E88C0(?); // ? func_800E88C0(?);
// ? func_800E8A88(?); // ? func_800E8A88(?);
// ? func_800E8BD4(?); // ? func_800E8BD4(?);
@ -2024,7 +2024,7 @@ void FaultDrawer_SetDefault();
// ? func_800E8EA4(?); // ? func_800E8EA4(?);
// ? func_800E8F00(?); // ? func_800E8F00(?);
// ? func_800E8FB8(?); // ? func_800E8FB8(?);
// ? func_800E8FE4(?); void Audio_AdsrInit(AdsrState* adsr, AdsrEnvelope* envelope, s16* volOut);
// ? func_800E9004(?); // ? func_800E9004(?);
// ? func_800E9340(?); // ? func_800E9340(?);
// ? func_800E93A8(?); // ? func_800E93A8(?);
@ -2038,8 +2038,8 @@ void FaultDrawer_SetDefault();
// ? func_800E9AAC(?); // ? func_800E9AAC(?);
// ? func_800E9B44(?); // ? func_800E9B44(?);
// ? func_800E9B6C(?); // ? func_800E9B6C(?);
// ? func_800E9C28(?); void Audio_AudioListPushBack(AudioListItem* list, AudioListItem* item);
// ? func_800E9C68(?); void* Audio_AudioListPopBack(AudioListItem* list);
// ? func_800E9CA8(?); // ? func_800E9CA8(?);
// ? func_800E9D48(?); // ? func_800E9D48(?);
// ? func_800E9D5C(?); // ? func_800E9D5C(?);

View file

@ -644,20 +644,25 @@ extern s32 gDebugArenaLogSeverity;
//extern ? D_8012DDDC; //extern ? D_8012DDDC;
//extern ? D_8012DE1C; //extern ? D_8012DE1C;
//extern ? D_8012E02C; //extern ? D_8012E02C;
//extern ? D_8012F090; extern s16* gWaveSamples[6];
//extern ? D_8012F098; //extern ? D_8012F098;
//extern ? D_8012F0B0; //extern ? D_8012F0B0;
//extern ? D_8012F8B4; //extern ? D_8012F8B4;
//extern ? D_8012FAB4; //extern ? D_8012FAB4;
//extern ? D_8012FAC4; //extern ? D_8012FAC4;
//extern ? D_8012FAD4; //extern ? D_8012FAD4;
//extern ? D_8012FB04; extern NoteSubEu gZeroNoteSub;
extern NoteSubEu gDefaultNoteSub;
extern u16 gHeadsetPanQuantization[0x10];
extern f32 gHeadsetPanVolume[128];
extern f32 gStereoPanVolume[128];
//extern ? D_8012FBAA; //extern ? D_8012FBAA;
//extern ? D_8012FFFF; //extern ? D_8012FFFF;
//extern ? D_80130001; //extern ? D_80130001;
//extern ? D_80130002; //extern ? D_80130002;
//extern ? D_80130004; //extern ? D_80130004;
//extern ? D_80130006; //extern ? D_80130006;
extern f32 gDefaultPanVolume[128];
//extern ? D_80130228; //extern ? D_80130228;
//extern ? D_80130328; //extern ? D_80130328;
//extern ? D_801304A0; //extern ? D_801304A0;
@ -3645,7 +3650,7 @@ extern FaultThreadStruct gFaultStruct;
//extern ? D_8016E750; //extern ? D_8016E750;
//extern ? D_8016E9A4; //extern ? D_8016E9A4;
//extern ? D_8016EE8B; //extern ? D_8016EE8B;
//extern ? D_8016F180; extern AudioContext gAudioContext;
//extern ? D_8016F181; //extern ? D_8016F181;
//extern ? D_8016F186; //extern ? D_8016F186;
//extern ? D_8016F188; //extern ? D_8016F188;
@ -3683,7 +3688,7 @@ extern FaultThreadStruct gFaultStruct;
//extern ? D_801719DC; //extern ? D_801719DC;
//extern ? D_80171A14; //extern ? D_80171A14;
//extern ? D_80171A18; //extern ? D_80171A18;
//extern ? D_80171A1A; extern s8 gSoundMode;
//extern ? D_80171A1C; //extern ? D_80171A1C;
//extern ? D_80171AFC; //extern ? D_80171AFC;
//extern ? D_80171B10; //extern ? D_80171B10;
@ -3760,7 +3765,7 @@ extern FaultThreadStruct gFaultStruct;
//extern ? D_80174C30; //extern ? D_80174C30;
//extern ? D_80174CA0; //extern ? D_80174CA0;
//extern ? D_80174D08; //extern ? D_80174D08;
//extern ? D_80174D18; extern NotePool gNoteFreeLists;
//extern ? D_80174D28; //extern ? D_80174D28;
//extern ? D_80174D38; //extern ? D_80174D38;
//extern ? D_80174D48; //extern ? D_80174D48;

View file

@ -7,6 +7,7 @@
#include <ultra64/controller.h> #include <ultra64/controller.h>
#include <z64light.h> #include <z64light.h>
#include <z64actor.h> #include <z64actor.h>
#include <z64audio.h>
#include <z64object.h> #include <z64object.h>
#include <z64cutscene.h> #include <z64cutscene.h>
#include <z64scene.h> #include <z64scene.h>

492
include/z64audio.h Normal file
View file

@ -0,0 +1,492 @@
#ifndef _Z64_AUDIO_H_
#define _Z64_AUDIO_H_
/**
* Structs in this repository have primarily been imported from the SM64 Decompilation.
* Many things likely still need shifted around and structs need adjusted.
* Take sizes and locations of structs as very volatile.
*/
struct Note;
struct NotePool;
struct SequenceChannel;
struct SequenceChannelLayer;
typedef struct AudioListItem {
// A node in a circularly linked list. Each node is either a head or an item:
// - Items can be either detached (prev = NULL), or attached to a list.
// 'value' points to something of interest.
// - List heads are always attached; if a list is empty, its head points
// to itself. 'count' contains the size of the list.
// If the list holds notes, 'pool' points back to the pool where it lives.
// Otherwise, that member is NULL.
/* 0x00 */ struct AudioListItem* prev;
/* 0x04 */ struct AudioListItem* next;
/* 0x08 */ union {
void* value; // either Note* or SequenceChannelLayer*
s32 count;
} u;
/* 0x0C */struct NotePool* pool;
} AudioListItem; // size = 0x10
// UNCHANGED
typedef struct NotePool {
AudioListItem disabled;
AudioListItem decaying;
AudioListItem releasing;
AudioListItem active;
} NotePool;
// Pitch sliding by up to one octave in the positive direction. Negative
// direction is "supported" by setting extent to be negative. The code
// exterpolates exponentially in the wrong direction in that case, but that
// doesn't prevent seqplayer from doing it, AFAICT.
typedef struct {
u8 mode; // bit 0x80 denotes something; the rest are an index 0-5
f32 cur;
f32 speed;
// f32 extent;
// struct Note *note; // Changed from extent to note? Shortened Struct maybe?
} Portamento; // size = 0x0C
typedef struct {
s16 delay;
s16 arg;
} AdsrEnvelope; // size = 0x4
typedef struct {
u32 start;
u32 end;
u32 count;
char unk_0C[0x4];
s16 state[16]; // only exists if count != 0. 8-byte aligned
} AdpcmLoop;
typedef struct {
s32 order;
s32 npredictors;
s16 book[1]; // size 8 * order * npredictors. 8-byte aligned
} AdpcmBook;
typedef struct {
u8 unused;
u8 loaded;
u8* sampleAddr;
AdpcmLoop* loop;
AdpcmBook* book;
u32 sampleSize; // never read. either 0 or 1 mod 9, depending on padding
} AudioBankSample;
typedef struct {
AudioBankSample* sample;
f32 tuning; // frequency scale factor
} AudioBankSound; // size = 0x8
typedef struct {
/* 0x00 */ u8 loaded;
/* 0x01 */ u8 normalRangeLo;
/* 0x02 */ u8 normalRangeHi;
/* 0x03 */ u8 releaseRate;
/* 0x04 */ AdsrEnvelope* envelope;
/* 0x08 */ AudioBankSound lowNotesSound;
/* 0x10 */ AudioBankSound normalNotesSound;
/* 0x18 */ AudioBankSound highNotesSound;
} Instrument; // size = 0x20
typedef struct {
u32 drum0;
u32 drum4;
// u8 releaseRate;
// u8 pan;
// u8 loaded;
// AudioBankSound sound;
// AdsrEnvelope *envelope;
} Drum; // OOT size = 0x8, TODO figure out what is still used.
typedef struct {
u32 unk_0;
u32 unk_4;
} UnkInstrument; // size = 0x8, new struct to OOT
typedef struct {
/* 0x00 */ u8 numInstruments;
/* 0x01 */ u8 numDrums;
/* 0x02 */ char unk_02[0x02];
/* 0x04 */ u16 numUnkInstruments;
/* 0x08 */ Instrument** instruments;
/* 0x10 */ Drum** drums;
/* 0x1C */ UnkInstrument* unkInstruments;
} CtlEntry; // size = 0x14
typedef struct {
u8* pc;
u8* stack[4];
u8 remLoopIters[4];
u8 depth;
} M64ScriptState; // size = 0x1C
typedef struct {
/* 0x000 */ u8 enabled : 1;
/* 0x000 */ u8 finished : 1; // never read
/* 0x000 */ u8 muted : 1;
/* 0x000 */ u8 seqDmaInProgress : 1;
/* 0x000 */ u8 bankDmaInProgress : 1;
/* 0x000 */ u8 recalculateVolume : 1;
/* 0x001 */ u8 state;
/* 0x002 */ u8 noteAllocPolicy;
/* 0x003 */ u8 muteBehavior;
/* 0x004 */ u8 seqId;
/* 0x005 */ u8 defaultBank[1]; // must be an array to get a comparison
// to match; other u8's might also be part of that array
/* 0x006 */ u8 loadingBankId;
/* 0x007 */ s8 seqVariationEu[1];
/* 0x008 */ u16 tempo; // beats per minute in JP, tatums per minute in US/EU
/* 0x00A */ u16 tempoAcc;
/* 0x00C */ s16 transposition;
/* 0x00E */ u16 delay;
/* 0x010 */ u16 fadeTimer;
/* 0x012 */ u16 fadeTimerUnkEu;
/* 0x014 */ u8* seqData; // buffer of some sort
/* 0x018 */ f32 fadeVolume; // set to 1.0f
/* 0x01C */ f32 fadeVelocity; // set to 0.0f
/* 0x020 */ f32 volume; // set to 0.0f
/* 0x024 */ f32 muteVolumeScale; // set to 0.5f
/* 0x028 */ f32 fadeVolumeScale;
/* 0x02C */ f32 appliedFadeVolume;
/* 0x030 */ struct SequenceChannel* channels[16];
/* 0x070 */ M64ScriptState scriptState;
/* 0x08C */ u8* shortNoteVelocityTable;
/* 0x090 */ u8* shortNoteDurationTable;
/* 0x094 */ char unk_094[0x8]; // NotePool shifted down 0x8
/* 0x09C */ NotePool notePool;
/* 0x0DC */ OSMesgQueue seqDmaMesgQueue;
/* 0x0F4 */ OSMesg seqDmaMesg;
/* 0x0F8 */ OSIoMesg seqDmaIoMesg;
/* 0x110 */ OSMesgQueue bankDmaMesgQueue;
/* 0x128 */ OSMesg bankDmaMesg;
/* 0x12C */ OSIoMesg bankDmaIoMesg;
/* 0x144 */ u8* bankDmaCurrMemAddr;
/* 0x148 */ u32 bankDmaCurrDevAddr;
/* 0x14C */ s32 bankDmaRemaining;
} SequencePlayer;
typedef struct {
u8 releaseRate;
u8 sustain;
AdsrEnvelope* envelope;
} AdsrSettings; // size = 0x8
typedef struct {
union {
struct {
/* 0x00 */ u8 bits7 : 1; // pad
/* 0x00 */ u8 bits6 : 1; // pad
/* 0x00 */ u8 bits5 : 1; // pad
/* 0x00 */ u8 bits4 : 1;
/* 0x00 */ u8 bits0 : 4;
} adsrBits;
/* 0x00 */ u8 action; // Must be unionized to zero all bitfields at once.
} adsrAction;
u8 state; // Could be in the upper union in a struct with action.
s16 envIndex; // Could be in the upper union in a struct with action.
s16 delay;
f32 sustain;
f32 velocity;
f32 fadeOutVel;
f32 current;
f32 target;
AdsrEnvelope *envelope;
} AdsrState;
typedef struct {
/* 0x00 */ s8 reverb;
/* 0x01 */ u8 pan;
/* 0x02 */ char unk_02[0x6];
/* 0x08 */ f32 freqScale;
/* 0x0C */ f32 velocity;
/* 0x10 */ char unk_10[0x8];
} NoteAttributes; // size = 0x1C
typedef struct SequenceChannel {
/* 0x00 */ u8 enabled : 1;
/* 0x00 */ u8 finished : 1;
/* 0x00 */ u8 stopScript : 1;
/* 0x00 */ u8 stopSomething2 : 1; // sets SequenceChannelLayer.stopSomething
/* 0x00 */ u8 hasInstrument : 1;
/* 0x00 */ u8 stereoHeadsetEffects : 1;
/* 0x00 */ u8 largeNotes : 1; // notes specify duration and velocity
/* 0x00 */ u8 unused : 1; // never read, set to 0
/* 0x01 */ union {
struct {
u8 freqScale : 1;
u8 volume : 1;
u8 pan : 1;
} asBitfields;
u8 asByte;
} changes;
/* 0x02 */ u8 noteAllocPolicy;
/* 0x03 */ u8 muteBehavior;
/* 0x04 */ u8 reverb; // or dry/wet mix
/* 0x05 */ u8 notePriority; // 0-3
/* 0x06 */ char unk_06[0x1];
/* 0x07 */ u8 bankId;
/* 0x08 */ u8 reverbIndex;
/* 0x09 */ u8 bookOffset;
/* 0x0A */ u8 newPan;
/* 0x0B */ u8 panChannelWeight; // proportion of pan that comes from the channel (0..128)
/* 0x0C */ u16 vibratoRateStart; // initially 0x800
/* 0x0E */ u16 vibratoExtentStart;
/* 0x10 */ u16 vibratoRateTarget; // initially 0x800
/* 0x12 */ u16 vibratoExtentTarget;
/* 0x14 */ u16 vibratoRateChangeDelay;
/* 0x16 */ u16 vibratoExtentChangeDelay;
/* 0x18 */ u16 vibratoDelay;
/* 0x1A */ u16 delay;
/* 0x1C */ f32 volumeScale;
/* 0x20 */ f32 volume;
/* 0x24 */ s16 instOrWave; // either 0 (none), instrument index + 1, or
// 0x80..0x83 for sawtooth/triangle/sine/square waves.
/* 0x26 */ s16 transposition;
/* 0x28 */ s32 pan;
/* 0x2C */ f32 appliedVolume;
/* 0x30 */ f32 freqScale;
/* 0x34 */ u8 (*dynTable)[][2];
/* 0x3C */ char unk_3C[0x8];
/* 0x44 */ struct Note* noteUnused; // never read
/* 0x48 */ struct SequenceChannelLayer* layerUnused; // never read
/* 0x4C */ Instrument* instrument;
/* 0x50 */ SequencePlayer* seqPlayer;
//! Changed this to shift the struct, likely incorrect. (Notice the above pad[2])
/* 0x54 */ struct SequenceChannelLayer* layers[2];
/* 0x5C */ s8 soundScriptIO[8]; // bridge between sound script and audio lib. For player 2,
// [0] contains enabled, [4] contains sound ID, [5] contains reverb adjustment
/* 0x64 */ M64ScriptState scriptState;
/* */ AdsrSettings adsr;
/* */ NotePool notePool;
/* 0xCC */ struct Note* test;
/* 0xD0 */ char unk_D0[0x4];
} SequenceChannel;
// Maybe SequenceTrack?
typedef struct SequenceChannelLayer {
/* 0x00 */ u8 enabled : 1;
/* 0x00 */ u8 finished : 1;
/* 0x00 */ u8 stopSomething : 1; // ?
/* 0x00 */ u8 continuousNotes : 1; // keep the same note for consecutive notes with the same sound
/* 0x00 */ u8 unusedEu0b8 : 1;
/* 0x00 */ u8 notePropertiesNeedInit : 1;
/* 0x00 */ u8 ignoreDrumPan : 1;
/* 0x00 */ u8 bit0 : 1;
/* 0x01 */ char unk_01[0x1];
/* 0x02 */ u8 instOrWave;
/* 0x03 */ u8 status;
/* 0x04 */ u8 noteDuration; // set to 0x80
/* 0x05 */ u8 portamentoTargetNote;
/* 0x06 */ u8 pan; // 0..128
/* 0x07 */ u8 notePan;
/* 0x08 */ u16 portamentoTime;
/* 0x0A */ s16 transposition; // #semitones added to play commands
// (m64 instruction encoding only allows referring to the limited range
// 0..0x3f; this makes 0x40..0x7f accessible as well)
/* 0x0C */ f32 freqScale;
/* 0x10 */ f32 velocitySquare;
/* 0x14 */ f32 noteVelocity;
/* 0x18 */ AdsrSettings adsr;
/* 0x20 */ Portamento portamento;
/* 0x2C */ struct Note* note;
/* 0x30 */ f32 noteFreqScale;
/* 0x34 */ s16 shortNoteDefaultPlayPercentage;
/* 0x36 */ s16 playPercentage; // it's not really a percentage...
/* 0x38 */ s16 delay;
/* 0x3A */ s16 duration;
/* 0x3C */ s16 delayUnused; // set to 'delay', never read
/* 0x40 */ f32 unk_40;
/* 0x44 */ char unk_44[0x4];
/* 0x48 */ Instrument* instrument;
/* 0x4C */ AudioBankSound* sound;
/* 0x50 */ SequenceChannel* seqChannel;
/* 0x54 */ M64ScriptState scriptState;
/* 0x70 */ AudioListItem listItem;
/* 0x80 */ char unk_80[0x10];
} SequenceChannelLayer;
typedef struct {
s16 adpcmdecState[0x10];
s16 finalResampleState[0x10];
s16 mixEnvelopeState[0x28];
s16 panResampleState[0x10];
s16 panSamplesBuffer[0x20];
s16 dummyResampleState[0x10];
} NoteSynthesisBuffers;
typedef struct {
/* 0x00 */ u8 restart;
/* 0x01 */ u8 sampleDmaIndex;
/* 0x02 */ u8 prevHeadsetPanRight;
/* 0x03 */ u8 prevHeadsetPanLeft;
/* 0x04 */ u16 samplePosFrac;
/* 0x08 */ s32 samplePosInt;
/* 0x0C */ NoteSynthesisBuffers* synthesisBuffers;
/* 0x10 */ s16 curVolLeft;
/* 0x12 */ s16 curVolRight;
} NoteSynthesisState;
typedef struct {
/* 0x00 */ struct SequenceChannel* seqChannel;
/* 0x04 */ u32 time;
/* 0x08 */ s16* curve;
/* 0x0C */ f32 extent;
/* 0x10 */ f32 rate;
/* 0x14 */ u8 active;
/* 0x16 */ u16 rateChangeTimer;
/* 0x18 */ u16 extentChangeTimer;
/* 0x1A */ u16 delay;
} VibratoState; // size = 0x1C
typedef struct {
/* 0x00 */ u8 priority;
/* 0x01 */ u8 waveId;
/* 0x02 */ u8 sampleCountIndex;
/* 0x03 */ u8 bankId;
/* 0x04 */ u8 unk_04;
/* 0x05 */ u8 stereoHeadsetEffects;
/* 0x06 */ s16 adsrVolScale;
/* 0x08 */ f32 portamentoFreqScale;
/* 0x0C */ f32 vibratoFreqScale;
/* 0x10 */ SequenceChannelLayer* prevParentLayer;
/* 0x14 */ SequenceChannelLayer* parentLayer;
/* 0x18 */ SequenceChannelLayer* wantedParentLayer;
/* 0x1C */ NoteAttributes attributes;
/* 0x38 */ char unk_38[0xC];
/* 0x44 */ AdsrState adsr;
// /* 0x4C */ Portamento portamento;
// /* 0x5C */ VibratoState vibratoState;
} NotePlaybackState;
typedef struct {
union {
struct {
/* 0x00 */ volatile u8 enabled : 1;
/* 0x00 */ u8 needsInit : 1;
/* 0x00 */ u8 finished : 1;
/* 0x00 */ u8 envMixerNeedsInit : 1;
/* 0x00 */ u8 stereoStrongRight : 1;
/* 0x00 */ u8 stereoStrongLeft : 1;
/* 0x00 */ u8 stereoHeadsetEffects : 1;
/* 0x00 */ u8 usesHeadsetPanEffects : 1;
} asBitfields;
u8 asByte;
} bitField0;
union {
struct {
/* 0x01 */ u8 reverbIndex : 3;
/* 0x01 */ u8 bookOffset : 2;
/* 0x01 */ u8 bit2 : 1;
/* 0x01 */ u8 isSyntheticWave : 1;
/* 0x01 */ u8 hasTwoAdpcmParts : 1;
} asBitfields;
u8 asByte;
} bitField1;
/* 0x02 */ u8 bankId;
/* 0x03 */ u8 headsetPanRight;
/* 0x04 */ u8 headsetPanLeft;
/* 0x05 */ u8 reverbVol;
/* 0x06 */ u8 unk_06; // sound shifted by 4.
/* 0x07 */ u8 unk_07; // sound shifted by 4.
/* 0x08 */ u16 targetVolLeft;
/* 0x0A */ u16 targetVolRight;
/* 0x0C */ u16 resamplingRateFixedPoint; // stored as signed but loaded as u16
/* 0x0E */ s16 unk_10;
/* 0x10 */ union {
s16* samples;
AudioBankSound* audioBankSound;
} sound;
/* 0x14 */ u32 unk_14;
/* 0x18 */ char unk_18[0x8];
} NoteSubEu;
typedef struct Note {
/* 0x00 */ AudioListItem listItem;
/* 0x10 */ NoteSynthesisState synthesisState;
/* 0x24 */ char unk_24[0xC];
/* 0x30 */ NotePlaybackState playbackState;
/* 0x90 */ char unk_90[0x2];
/* 0x92 */ u16 unk_92;
/* 0x94 */ u16 unk_94;
/* 0x96 */ char unk_96[0x1A];
/* 0xB0 */ u8 unk_B0;
/* 0xB4 */ char unk_B4[0xB];
/* 0xBC */ u32 unk_BC;
/* 0xC0 */ NoteSubEu noteSubEu;
// Possibly removed? Changed? Likely needs fit within this all here.
// /* 0x74, 0x7C */ Portamento portamento;
// /* 0x84, 0x8C */ VibratoState vibratoState;
} Note;
typedef struct {
/* 0x00 */ s16 presetUnk4; // audio frames per vsync?
/* 0x02 */ u16 frequency;
/* 0x04 */ u16 aiFrequency; // ?16
/* 0x06 */ s16 samplesPerFrameTarget;
/* 0x08 */ s16 maxAiBufferLength;
/* 0x0A */ s16 minAiBufferLength;
/* 0x0C */ s16 updatesPerFrame;
/* 0x0E */ s16 samplesPerUpdate;
/* 0x10 */ s16 samplesPerUpdateMax;
/* 0x12 */ s16 samplesPerUpdateMin;
/* 0x14 */ f32 resampleRate; // contains 32000.0f / frequency
/* 0x18 */ f32 updatesPerFrameInv; // 1.0f / updatesPerFrame
/* 0x1C */ f32 unkUpdatesPerFrameScaled; // 3.0f / (1280.0f * updatesPerFrame)
} AudioBufferParametersEU;
typedef struct {
u8* start;
u8* cur;
u32 size;
s32 unused; // set to 0, never read
} SoundAllocPool;
typedef struct {
/* 0x0000 */ char unk_0000[0x2844];
/* 0x2844 */ CtlEntry* gCtlEntries;
/* 0x2848 */ char unk_2848[0x4];
/* 0x284C */ AudioBufferParametersEU gAudioBufferParameters;
/* 0x286C */ char unk_286C[0x28];
/* 0x2894 */ s32 gMaxSimultaneousNotes;
/* 0x2898 */ char unk_2898[0xE8];
/* 0x2980 */ s32 gAudioErrorFlags;
/* 0x2984 */ char unk_2984[0x3C];
/* 0x29C0 */ SoundAllocPool gNotesAndBuffersPool;
/* 0x29D0 */ char unk_29D0[0x0B5C];
/* 0x352C */ Note* gNotes;
} AudioContext;
// These two are similar to NoteSubEu. ReverbBits may be shared in both.
typedef struct {
u8 bit0 : 1;
u8 bit1 : 1;
u8 bit2 : 2;
u8 strongRight : 1;
u8 strongLeft : 1;
u8 stereoHeadsetEffects : 1;
u8 usesHeadsetPanEffects : 1;
} ReverbBits;
typedef struct {
/* 0x00 */ u8 reverb;
/* 0x01 */ u8 bankId;
/* 0x02 */ u8 pan;
/* 0x03 */ ReverbBits reverbBits;
/* 0x04 */ f32 velocity;
/* 0x08 */ f32 unk_8;
/* 0x0C */ char unk_0C[0x4];
/* 0x10 */ u32 unk_10;
/* 0x14 */ u8 unk_14;
/* 0x16 */ u16 unk_16;
} Reverb; // size = 0x1C (May be longer)
#define NO_LAYER ((SequenceChannelLayer*)(-1))
#endif

3
spec
View file

@ -461,8 +461,7 @@ beginseg
include "build/data/code_800E11F0.rodata.o" include "build/data/code_800E11F0.rodata.o"
include "build/asm/code_800E6840.o" include "build/asm/code_800E6840.o"
include "build/data/code_800E6840.data.o" include "build/data/code_800E6840.data.o"
include "build/asm/code_800E6940.o" include "build/src/code/audio_playback.o"
include "build/data/code_800E6940.rodata.o"
include "build/asm/code_800E88C0.o" include "build/asm/code_800E88C0.o"
include "build/data/code_800E88C0.data.o" include "build/data/code_800E88C0.data.o"
include "build/data/code_800E88C0.rodata.o" include "build/data/code_800E88C0.rodata.o"

785
src/code/audio_playback.c Normal file
View file

@ -0,0 +1,785 @@
#include <ultra64.h>
#include <global.h>
#ifdef NON_MATCHING
// 630 score, primarily regalloc left. Issues seem based around the usage of pan.
// Currently the array of pan and reverb solves a lot, but doesn't make a ton of logical sense.
void Audio_NoteSetVelPanReverb(Note* note, NoteSubEu* sub, Reverb* reverb) {
f32 volRight, volLeft;
// u16 unkMask = 0x7F;
s32 stereoHeadsetEffects = note->playbackState.stereoHeadsetEffects;
// u8 reverbT = reverb->reverb;
Note* tNote = note;
ReverbBits sp24;
u8 pan[2];
f32 vel = reverb->unk_8;
u32 temp;
pan[1] = reverb->pan;
pan[0] = reverb->reverb;
sp24 = reverb->reverbBits;
sub->bitField0.asByte = tNote->noteSubEu.bitField0.asByte & 0xFF;
sub->bitField1.asByte = tNote->noteSubEu.bitField1.asByte & 0xFF;
sub->sound.samples = tNote->noteSubEu.sound.samples;
sub->unk_06 = tNote->noteSubEu.unk_06;
Audio_NoteSetResamplingRate(sub, reverb->velocity);
pan[1] &= 0x7F;
sub->bitField0.asBitfields.stereoStrongRight = 0;
sub->bitField0.asBitfields.stereoStrongLeft = 0;
sub->bitField0.asBitfields.stereoHeadsetEffects = sp24.stereoHeadsetEffects;
sub->bitField0.asBitfields.usesHeadsetPanEffects = sp24.usesHeadsetPanEffects;
if (stereoHeadsetEffects && gSoundMode == 1) {
s32 smallPanIndex = pan[1] >> 1;
if (smallPanIndex >= 0x40) {
smallPanIndex = 0x3f;
}
sub->headsetPanLeft = gHeadsetPanQuantization[smallPanIndex];
sub->headsetPanRight = gHeadsetPanQuantization[15 - smallPanIndex];
sub->bitField1.asBitfields.hasTwoAdpcmParts = 1;
volLeft = gHeadsetPanVolume[pan[1]];
volRight = gHeadsetPanVolume[127 - pan[1]];
} else if (stereoHeadsetEffects && gSoundMode == 0) {
u8 strongLeft = 0;
u8 strongRight = 0;
sub->headsetPanRight = 0;
sub->headsetPanLeft = 0;
sub->bitField1.asBitfields.hasTwoAdpcmParts = 0;
volLeft = gStereoPanVolume[pan[1]];
volRight = gStereoPanVolume[127 - pan[1]];
temp = pan[1];
if ((s32)temp < 0x20) {
strongLeft = 1;
} else if ((s32)(u8)temp > 0x60) {
strongRight = 1;
}
sub->bitField0.asBitfields.stereoStrongRight = strongRight;
sub->bitField0.asBitfields.stereoStrongLeft = strongLeft;
switch (sp24.bit2) {
case 0:
break;
case 1:
sub->bitField0.asBitfields.stereoStrongRight = sp24.strongRight;
sub->bitField0.asBitfields.stereoStrongLeft = sp24.strongLeft;
break;
case 2:
sub->bitField0.asBitfields.stereoStrongRight = sp24.strongRight | strongRight;
sub->bitField0.asBitfields.stereoStrongLeft = sp24.strongLeft | strongLeft;
break;
case 3:
sub->bitField0.asBitfields.stereoStrongRight = sp24.strongRight ^ strongRight;
sub->bitField0.asBitfields.stereoStrongLeft = sp24.strongLeft ^ strongLeft;
break;
}
} else if (gSoundMode == 3) {
sub->bitField0.asBitfields.stereoHeadsetEffects = 0;
sub->bitField0.asBitfields.usesHeadsetPanEffects = 0;
volLeft = 0.707f;
volRight = 0.707f;
} else {
sub->bitField0.asBitfields.stereoStrongRight = sp24.strongRight;
sub->bitField0.asBitfields.stereoStrongLeft = sp24.strongLeft;
volLeft = gDefaultPanVolume[pan[1]];
volRight = gDefaultPanVolume[127 - pan[1]];
}
vel = 0.0f > vel ? 0.0f : vel;
vel = 1.0f < vel ? 1.0f : vel;
sub->targetVolLeft = (s32)((vel * volLeft) * 4095.999f);
sub->targetVolRight = (s32)((vel * volRight) * 4095.999f);
sub->bankId = reverb->bankId;
sub->unk_14 = reverb->unk_10;
sub->unk_07 = reverb->unk_14;
sub->unk_10 = reverb->unk_16;
sub->reverbVol = pan[1];
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_playback/Audio_NoteSetVelPanReverb.s")
#endif
void Audio_NoteSetResamplingRate(NoteSubEu* noteSubEu, f32 resamplingRateInput) {
f32 resamplingRate = 0.0f;
if (resamplingRateInput < 2.0f) {
noteSubEu->bitField1.asBitfields.isSyntheticWave = 0;
if (1.99998f < resamplingRateInput) {
resamplingRate = 1.99998f;
} else {
resamplingRate = resamplingRateInput;
}
} else {
noteSubEu->bitField1.asBitfields.isSyntheticWave = 1;
if (3.99996f < resamplingRateInput) {
resamplingRate = 1.99998f;
} else {
resamplingRate = resamplingRateInput * 0.5f;
}
}
noteSubEu->resamplingRateFixedPoint = (s32)(resamplingRate * 32768.0f);
}
void Audio_NoteInit(Note* note) {
if (note->playbackState.parentLayer->adsr.releaseRate == 0) {
Audio_AdsrInit(&note->playbackState.adsr, note->playbackState.parentLayer->seqChannel->adsr.envelope,
&note->playbackState.adsrVolScale);
} else {
Audio_AdsrInit(&note->playbackState.adsr, note->playbackState.parentLayer->adsr.envelope,
&note->playbackState.adsrVolScale);
}
note->playbackState.unk_04 = 0;
note->playbackState.adsr.adsrAction.adsrBits.bits0 = 1;
note->noteSubEu = gDefaultNoteSub;
}
void Audio_NoteDisable(Note* note) {
if (note->noteSubEu.bitField0.asBitfields.needsInit == 1) {
note->noteSubEu.bitField0.asBitfields.needsInit = 0;
}
note->playbackState.priority = 0;
note->noteSubEu.bitField0.asBitfields.enabled = 0;
note->playbackState.unk_04 = 0;
note->noteSubEu.bitField0.asBitfields.finished = 0;
note->playbackState.parentLayer = NO_LAYER;
note->playbackState.prevParentLayer = NO_LAYER;
note->playbackState.adsr.adsrAction.adsrBits.bits0 = 0;
note->playbackState.adsr.fadeOutVel = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_playback/Audio_ProcessNotes.s")
AudioBankSound* Audio_InstrumentGetAudioBankSound(Instrument* instrument, s32 semitone) {
AudioBankSound* sound;
if (semitone < instrument->normalRangeLo) {
sound = &instrument->lowNotesSound;
} else if (semitone <= instrument->normalRangeHi) {
sound = &instrument->normalNotesSound;
} else {
sound = &instrument->highNotesSound;
}
return sound;
}
Instrument* Audio_GetInstrumentInner(s32 bankId, s32 instId) {
Instrument* inst;
if (bankId == 0xFF) {
return NULL;
}
if (func_800E18B0(bankId) == 0) {
gAudioContext.gAudioErrorFlags = bankId + 0x10000000;
return NULL;
}
if (instId >= gAudioContext.gCtlEntries[bankId].numInstruments) {
gAudioContext.gAudioErrorFlags = ((bankId << 8) + instId) + 0x3000000;
return NULL;
}
inst = gAudioContext.gCtlEntries[bankId].instruments[instId];
if (inst == NULL) {
gAudioContext.gAudioErrorFlags = ((bankId << 8) + instId) + 0x1000000;
return inst;
}
return inst;
}
Drum* Audio_GetDrum(s32 bankId, s32 drumId) {
Drum* drum;
if (bankId == 0xFF) {
return NULL;
}
if (func_800E18B0(bankId) == 0) {
gAudioContext.gAudioErrorFlags = bankId + 0x10000000;
return NULL;
}
if (drumId >= gAudioContext.gCtlEntries[bankId].numDrums) {
gAudioContext.gAudioErrorFlags = ((bankId << 8) + drumId) + 0x4000000;
return NULL;
}
if ((u32)gAudioContext.gCtlEntries[bankId].drums < 0x80000000U) {
return NULL;
}
drum = gAudioContext.gCtlEntries[bankId].drums[drumId];
if (drum == NULL) {
gAudioContext.gAudioErrorFlags = ((bankId << 8) + drumId) + 0x5000000;
}
return drum;
}
UnkInstrument* Audio_GetUnkInstrument(s32 bankId, s32 unkInstrumentId) {
UnkInstrument* unkInstrument;
if (bankId == 0xFF) {
return NULL;
}
if (func_800E18B0(bankId) == 0) {
gAudioContext.gAudioErrorFlags = bankId + 0x10000000;
return NULL;
}
if (unkInstrumentId >= gAudioContext.gCtlEntries[bankId].numUnkInstruments) {
gAudioContext.gAudioErrorFlags = ((bankId << 8) + unkInstrumentId) + 0x4000000;
return NULL;
}
if ((u32)gAudioContext.gCtlEntries[bankId].unkInstruments < 0x80000000U) {
return NULL;
}
unkInstrument = &gAudioContext.gCtlEntries[bankId].unkInstruments[unkInstrumentId];
if (unkInstrument == NULL) {
gAudioContext.gAudioErrorFlags = ((bankId << 8) + unkInstrumentId) + 0x5000000;
}
if (unkInstrument->unk_0 == 0) {
return NULL;
}
return unkInstrument;
}
#ifdef NON_MATCHING
// Regalloc in case 1.
s32 func_800E7744(s32 instrument, s32 bankId, s32 instId, UnkInstrument* arg3) {
UnkInstrument* temp_t7;
if (bankId == 0xFF) {
return -1;
}
if (func_800E18B0(bankId) == 0) {
return -2;
}
switch (instrument) {
case 0:
if (instId >= (gAudioContext.gCtlEntries[bankId].numDrums)) {
return -3;
}
gAudioContext.gCtlEntries[bankId].drums[instId] = arg3;
break;
case 1:
if (instId >= (gAudioContext.gCtlEntries[bankId].numUnkInstruments)) {
return -3;
}
temp_t7 = &gAudioContext.gCtlEntries[bankId].unkInstruments[instId];
temp_t7->unk_0 = arg3->unk_0;
temp_t7->unk_4 = arg3->unk_4;
break;
default:
if (instId >= (gAudioContext.gCtlEntries[bankId].numInstruments)) {
return -3;
}
gAudioContext.gCtlEntries[bankId].instruments[instId] = arg3;
break;
}
return 0;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_playback/func_800E7744.s")
#endif
#if 0
// This code is SM64 PAL's version with changes made to build here (and a couple legitimate changes made in the function).
// This function needs massive work, hence why it is not set for NON_MATCHING
void Audio_SeqChanLayerDecayRelease(SequenceChannelLayer* seqLayer, s32 target) {
Note* note;
NoteAttributes* attributes;
if (seqLayer == NO_LAYER) {
return;
}
seqLayer->unusedEu0b8 = 0;
if (seqLayer->note == NULL) {
return;
}
note = seqLayer->note;
attributes = &note->playbackState.attributes;
if (note->playbackState.wantedParentLayer == seqLayer) {
note->playbackState.wantedParentLayer = NO_LAYER;
}
if (note->playbackState.parentLayer != seqLayer) {
if (note->playbackState.parentLayer == NO_LAYER && note->playbackState.wantedParentLayer == NO_LAYER && note->playbackState.prevParentLayer == seqLayer && target != 6) {
note->playbackState.adsr.fadeOutVel = gAudioContext.gAudioBufferParameters.updatesPerFrameInv;
note->playbackState.adsr.adsrAction.action |= 0x10;
}
return;
}
seqLayer->status = 0;
if (note->playbackState.adsr.state != 6) {
attributes->freqScale = seqLayer->noteFreqScale;
attributes->velocity = seqLayer->noteVelocity;
attributes->pan = seqLayer->notePan;
if (seqLayer->seqChannel != NULL) {
attributes->reverb = seqLayer->seqChannel->reverb;
}
note->playbackState.priority = 1;
note->playbackState.prevParentLayer = note->playbackState.parentLayer;
note->playbackState.parentLayer = NO_LAYER;
if (target == 7) {
note->playbackState.adsr.fadeOutVel = gAudioContext.gAudioBufferParameters.updatesPerFrameInv;
note->playbackState.adsr.adsrAction.action |= 0x10;
} else {
note->playbackState.adsr.adsrAction.action |= 0x20;
if (seqLayer->adsr.releaseRate == 0) {
note->playbackState.adsr.fadeOutVel = seqLayer->seqChannel->adsr.releaseRate * gAudioContext.gAudioBufferParameters.unkUpdatesPerFrameScaled;
} else {
note->playbackState.adsr.fadeOutVel = seqLayer->adsr.releaseRate * gAudioContext.gAudioBufferParameters.unkUpdatesPerFrameScaled;
}
note->playbackState.adsr.sustain = ((f32) (s32) (seqLayer->seqChannel->adsr.sustain) * note->playbackState.adsr.current) / 256.0f;
}
}
if (target == 6) {
Audio_AudioListRemove(&note->listItem);
Audio_AudioListPushFront(&note->listItem.pool->decaying, &note->listItem);
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_playback/Audio_SeqChanLayerDecayRelease.s")
#endif
void Audio_SeqChanLayerNoteDecay(SequenceChannelLayer* seqLayer) {
Audio_SeqChanLayerDecayRelease(seqLayer, 6);
}
void Audio_SeqChanLayerNoteRelease(SequenceChannelLayer* seqLayer) {
Audio_SeqChanLayerDecayRelease(seqLayer, 7);
}
s32 Audio_BuildSyntheticWave(Note* note, SequenceChannelLayer* seqLayer, s32 waveId) {
f32 freqScale;
f32 ratio;
u8 sampleCountIndex;
if (waveId < 128) {
waveId = 128;
}
freqScale = seqLayer->noteFreqScale;
if (seqLayer->portamento.mode != 0 && 0.0f < seqLayer->portamento.speed) {
freqScale *= (seqLayer->portamento.speed + 1.0f);
}
if (freqScale < 0.99999f) {
sampleCountIndex = 0;
ratio = 1.0465f;
} else if (freqScale < 1.99999f) {
sampleCountIndex = 1;
ratio = 0.52325f;
} else if (freqScale < 3.99999f) {
sampleCountIndex = 2;
ratio = 0.26263f;
} else {
sampleCountIndex = 3;
ratio = 0.13081f;
}
seqLayer->noteFreqScale *= ratio;
note->playbackState.waveId = waveId;
note->playbackState.sampleCountIndex = sampleCountIndex;
note->noteSubEu.sound.samples = &gWaveSamples[waveId - 128][sampleCountIndex * 64];
return sampleCountIndex;
}
void Audio_InitSyntheticWave(Note* note, SequenceChannelLayer* seqLayer) {
s32 sampleCountIndex;
s32 waveSampleCountIndex;
s32 waveId = seqLayer->instOrWave;
if (waveId == 0xff) {
waveId = seqLayer->seqChannel->instOrWave;
}
sampleCountIndex = note->playbackState.sampleCountIndex;
waveSampleCountIndex = Audio_BuildSyntheticWave(note, seqLayer, waveId);
if (waveSampleCountIndex != sampleCountIndex) {
note->noteSubEu.unk_06 = waveSampleCountIndex * 4 + sampleCountIndex;
}
}
void Audio_InitNoteList(AudioListItem* list) {
list->prev = list;
list->next = list;
list->u.count = 0;
}
void Audio_InitNoteLists(NotePool* pool) {
Audio_InitNoteList(&pool->disabled);
Audio_InitNoteList(&pool->decaying);
Audio_InitNoteList(&pool->releasing);
Audio_InitNoteList(&pool->active);
pool->disabled.pool = pool;
pool->decaying.pool = pool;
pool->releasing.pool = pool;
pool->active.pool = pool;
}
void Audio_InitNoteFreeList(void) {
s32 i;
Audio_InitNoteLists(&gNoteFreeLists);
for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) {
gAudioContext.gNotes[i].listItem.u.value = &gAudioContext.gNotes[i];
gAudioContext.gNotes[i].listItem.prev = NULL;
Audio_AudioListPushBack(&gNoteFreeLists.disabled, &gAudioContext.gNotes[i].listItem);
}
}
void Audio_NotePoolClear(NotePool* pool) {
s32 i;
AudioListItem* source;
AudioListItem* cur;
AudioListItem* dest;
for (i = 0; i < 4; i++) {
switch (i) {
case 0:
source = &pool->disabled;
dest = &gNoteFreeLists.disabled;
break;
case 1:
source = &pool->decaying;
dest = &gNoteFreeLists.decaying;
break;
case 2:
source = &pool->releasing;
dest = &gNoteFreeLists.releasing;
break;
case 3:
source = &pool->active;
dest = &gNoteFreeLists.active;
break;
}
for (;;) {
cur = source->next;
if (cur == source || cur == NULL) {
break;
}
Audio_AudioListRemove(cur);
Audio_AudioListPushBack(dest, cur);
}
}
}
void Audio_NotePoolFill(NotePool* pool, s32 count) {
s32 i;
s32 j;
Note* note;
AudioListItem* source;
AudioListItem* dest;
Audio_NotePoolClear(pool);
for (i = 0, j = 0; j < count; i++) {
if (i == 4) {
return;
}
switch (i) {
case 0:
source = &gNoteFreeLists.disabled;
dest = &pool->disabled;
break;
case 1:
source = &gNoteFreeLists.decaying;
dest = &pool->decaying;
break;
case 2:
source = &gNoteFreeLists.releasing;
dest = &pool->releasing;
break;
case 3:
source = &gNoteFreeLists.active;
dest = &pool->active;
break;
}
while (j < count) {
note = Audio_AudioListPopBack(source);
if (note == NULL) {
break;
}
Audio_AudioListPushBack(dest, &note->listItem);
j++;
}
}
}
void Audio_AudioListPushFront(AudioListItem* list, AudioListItem* item) {
// add 'item' to the front of the list given by 'list', if it's not in any list
if (item->prev == NULL) {
item->prev = list;
item->next = list->next;
list->next->prev = item;
list->next = item;
list->u.count++;
item->pool = list->pool;
}
}
void Audio_AudioListRemove(AudioListItem* item) {
// remove 'item' from the list it's in, if any
if (item->prev != NULL) {
item->prev->next = item->next;
item->next->prev = item->prev;
item->prev = NULL;
}
}
Note* Audio_PopNodeWithValueLessEqual(AudioListItem* list, s32 limit) {
AudioListItem* cur = list->next;
AudioListItem* best;
if (cur == list) {
return NULL;
}
for (best = cur; cur != list; cur = cur->next) {
if (((Note*)best->u.value)->playbackState.priority >=
((Note*)cur->u.value)->playbackState.priority) {
best = cur;
}
}
if (best == NULL) {
return NULL;
}
if (limit <= ((Note*)best->u.value)->playbackState.priority) {
return NULL;
}
return best->u.value;
}
void Audio_NoteInitForLayer(Note* note, SequenceChannelLayer* seqLayer) {
s32 pad[3];
s16 instId;
NotePlaybackState* playback = &note->playbackState;
NoteSubEu* sub = &note->noteSubEu;
note->playbackState.prevParentLayer = NO_LAYER;
note->playbackState.parentLayer = seqLayer;
playback->priority = seqLayer->seqChannel->notePriority;
seqLayer->bit0 = 1;
seqLayer->unusedEu0b8 = 1;
seqLayer->note = note;
seqLayer->seqChannel->noteUnused = note;
seqLayer->seqChannel->layerUnused = seqLayer;
seqLayer->unk_40 = 0.0f;
Audio_NoteInit(note);
instId = seqLayer->instOrWave;
if (instId == 0xff) {
instId = seqLayer->seqChannel->instOrWave;
}
sub->sound.audioBankSound = seqLayer->sound;
if (instId >= 0x80 && instId < 0xC0) {
sub->bitField1.asBitfields.bit2 = 1;
} else {
sub->bitField1.asBitfields.bit2 = 0;
}
if (sub->bitField1.asBitfields.bit2) {
Audio_BuildSyntheticWave(note, seqLayer, instId);
}
playback->bankId = seqLayer->seqChannel->bankId;
playback->stereoHeadsetEffects = seqLayer->seqChannel->stereoHeadsetEffects;
sub->bitField1.asBitfields.reverbIndex = seqLayer->seqChannel->reverbIndex & 3;
}
void func_800E82C0(Note* note, SequenceChannelLayer* seqLayer) {
Audio_SeqChanLayerNoteRelease(note->playbackState.parentLayer);
note->playbackState.wantedParentLayer = seqLayer;
}
void Audio_NoteReleaseAndTakeOwnership(Note* note, SequenceChannelLayer* seqLayer) {
note->playbackState.wantedParentLayer = seqLayer;
note->playbackState.priority = seqLayer->seqChannel->notePriority;
note->playbackState.adsr.velocity = gAudioContext.gAudioBufferParameters.updatesPerFrameInv;
note->playbackState.adsr.adsrAction.adsrBits.bits4 = 1;
}
Note* Audio_AllocNoteFromDisabled(NotePool* pool, SequenceChannelLayer* seqLayer) {
Note* note = Audio_AudioListPopBack(&pool->disabled);
if (note != NULL) {
Audio_NoteInitForLayer(note, seqLayer);
Audio_AudioListPushFront(&pool->active, &note->listItem);
}
return note;
}
Note* Audio_AllocNoteFromDecaying(NotePool* pool, SequenceChannelLayer* seqLayer) {
Note* note = Audio_AudioListPopBack(&pool->decaying);
if (note != NULL) {
Audio_NoteReleaseAndTakeOwnership(note, seqLayer);
Audio_AudioListPushBack(&pool->releasing, &note->listItem);
}
return note;
}
Note* Audio_AllocNoteFromActive(NotePool* pool, SequenceChannelLayer* seqLayer) {
Note* rNote;
Note* aNote;
s32 rPriority, aPriority;
rPriority = aPriority = 0x10;
rNote = Audio_PopNodeWithValueLessEqual(&pool->releasing, seqLayer->seqChannel->notePriority);
if (rNote != NULL) {
rPriority = rNote->playbackState.priority;
}
aNote = Audio_PopNodeWithValueLessEqual(&pool->active, seqLayer->seqChannel->notePriority);
if (aNote != NULL) {
aPriority = aNote->playbackState.priority;
}
if (rNote == NULL && aNote == NULL) {
return NULL;
}
if (aPriority < rPriority) {
Audio_AudioListRemove(&aNote->listItem);
func_800E82C0(aNote, seqLayer);
Audio_AudioListPushBack(&pool->releasing, &aNote->listItem);
aNote->playbackState.priority = seqLayer->seqChannel->notePriority;
return aNote;
}
rNote->playbackState.wantedParentLayer = seqLayer;
rNote->playbackState.priority = seqLayer->seqChannel->notePriority;
return rNote;
}
Note* Audio_AllocNote(SequenceChannelLayer* seqLayer) {
Note* ret;
u32 policy = seqLayer->seqChannel->noteAllocPolicy;
if (policy & 1) {
ret = seqLayer->note;
if (ret != NULL && ret->playbackState.prevParentLayer == seqLayer &&
ret->playbackState.wantedParentLayer == NO_LAYER) {
Audio_NoteReleaseAndTakeOwnership(ret, seqLayer);
Audio_AudioListRemove(&ret->listItem);
Audio_AudioListPushBack(&ret->listItem.pool->releasing, &ret->listItem);
return ret;
}
}
if (policy & 2) {
if (!(ret = Audio_AllocNoteFromDisabled(&seqLayer->seqChannel->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromDecaying(&seqLayer->seqChannel->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromActive(&seqLayer->seqChannel->notePool, seqLayer))) {
goto null_return;
}
return ret;
}
if (policy & 4) {
if (!(ret = Audio_AllocNoteFromDisabled(&seqLayer->seqChannel->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromDisabled(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromDecaying(&seqLayer->seqChannel->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromDecaying(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromActive(&seqLayer->seqChannel->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromActive(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer))) {
goto null_return;
}
return ret;
}
if (policy & 8) {
if (!(ret = Audio_AllocNoteFromDisabled(&gNoteFreeLists, seqLayer)) &&
!(ret = Audio_AllocNoteFromDecaying(&gNoteFreeLists, seqLayer)) &&
!(ret = Audio_AllocNoteFromActive(&gNoteFreeLists, seqLayer))) {
goto null_return;
}
return ret;
}
if (!(ret = Audio_AllocNoteFromDisabled(&seqLayer->seqChannel->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromDisabled(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromDisabled(&gNoteFreeLists, seqLayer)) &&
!(ret = Audio_AllocNoteFromDecaying(&seqLayer->seqChannel->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromDecaying(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromDecaying(&gNoteFreeLists, seqLayer)) &&
!(ret = Audio_AllocNoteFromActive(&seqLayer->seqChannel->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromActive(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer)) &&
!(ret = Audio_AllocNoteFromActive(&gNoteFreeLists, seqLayer))) {
goto null_return;
}
return ret;
null_return:
seqLayer->unusedEu0b8 = 1;
return NULL;
}
void Audio_NoteInitAll(void) {
Note* note;
s32 i;
for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) {
note = &gAudioContext.gNotes[i];
note->noteSubEu = gZeroNoteSub;
note->playbackState.priority = 0;
note->playbackState.unk_04 = 0;
note->playbackState.parentLayer = NO_LAYER;
note->playbackState.wantedParentLayer = NO_LAYER;
note->playbackState.prevParentLayer = NO_LAYER;
note->playbackState.waveId = 0;
note->playbackState.attributes.velocity = 0.0f;
note->playbackState.adsrVolScale = 0;
note->playbackState.adsr.adsrAction.action = 0;
note->unk_B0 = 0;
note->unk_92 = 0;
note->unk_94 = 0;
note->playbackState.stereoHeadsetEffects = 0;
note->unk_BC = 0;
note->synthesisState.synthesisBuffers = Audio_SoundAlloc(&gAudioContext.gNotesAndBuffersPool, 0x1E0);
}
}