diff --git a/asm/code_800DACC0.s b/asm/code_800DACC0.s index 4170fcac6c..6575eec9ab 100644 --- a/asm/code_800DACC0.s +++ b/asm/code_800DACC0.s @@ -20,8 +20,8 @@ glabel func_800DACC0 /* B51E6C 800DACCC 01C67023 */ subu $t6, $t6, $a2 /* B51E70 800DACD0 000E70C0 */ sll $t6, $t6, 3 /* B51E74 800DACD4 01C67021 */ addu $t6, $t6, $a2 -/* B51E78 800DACD8 3C0F8017 */ lui $t7, %hi(D_8016F180) # $t7, 0x8017 -/* B51E7C 800DACDC 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 +/* B51E78 800DACD8 3C0F8017 */ lui $t7, %hi(gAudioContext) # $t7, 0x8017 +/* B51E7C 800DACDC 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80 /* B51E80 800DACE0 000E70C0 */ sll $t6, $t6, 3 /* B51E84 800DACE4 01CF4021 */ addu $t0, $t6, $t7 /* B51E88 800DACE8 9118001C */ lbu $t8, 0x1c($t0) @@ -258,8 +258,8 @@ glabel func_800DACC0 /* B521D8 800DB038 00000000 */ nop glabel func_800DB03C -/* B521DC 800DB03C 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B521E0 800DB040 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 +/* B521DC 800DB03C 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 +/* B521E0 800DB040 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 /* B521E4 800DB044 8CE32894 */ lw $v1, 0x2894($a3) /* B521E8 800DB048 00002825 */ move $a1, $zero /* B521EC 800DB04C 00640019 */ multu $v1, $a0 @@ -300,8 +300,8 @@ glabel func_800DB03C glabel func_800DB0C4 /* B52264 800DB0C4 27BDFFC0 */ addiu $sp, $sp, -0x40 /* B52268 800DB0C8 AFB5002C */ sw $s5, 0x2c($sp) -/* B5226C 800DB0CC 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 -/* B52270 800DB0D0 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 +/* B5226C 800DB0CC 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017 +/* B52270 800DB0D0 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80 /* B52274 800DB0D4 AFB40028 */ sw $s4, 0x28($sp) /* B52278 800DB0D8 86B42854 */ lh $s4, 0x2854($s5) /* B5227C 800DB0DC AFBE0038 */ sw $fp, 0x38($sp) @@ -371,8 +371,8 @@ glabel func_800DB0C4 /* B5235C 800DB1BC 82A20001 */ lb $v0, 1($s5) /* B52360 800DB1C0 58400011 */ blezl $v0, .L800DB208 /* B52364 800DB1C4 02E02025 */ move $a0, $s7 -/* B52368 800DB1C8 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 -/* B5236C 800DB1CC 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 +/* B52368 800DB1C8 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017 +/* B5236C 800DB1CC 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80 .L800DB1D0: /* B52370 800DB1D0 920F0019 */ lbu $t7, 0x19($s0) /* B52374 800DB1D4 02602025 */ move $a0, $s3 @@ -402,8 +402,8 @@ glabel func_800DB0C4 /* B523CC 800DB22C 02F8B821 */ addu $s7, $s7, $t8 .L800DB230: /* B523D0 800DB230 82B90001 */ lb $t9, 1($s5) -/* B523D4 800DB234 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 -/* B523D8 800DB238 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 +/* B523D4 800DB234 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017 +/* B523D8 800DB238 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80 /* B523DC 800DB23C 1B20000E */ blez $t9, .L800DB278 /* B523E0 800DB240 00008825 */ move $s1, $zero /* B523E4 800DB244 9202001A */ lbu $v0, 0x1a($s0) @@ -442,8 +442,8 @@ glabel func_800DB0C4 /* B5245C 800DB2BC 27BD0040 */ addiu $sp, $sp, 0x40 glabel func_800DB2C0 -/* B52460 800DB2C0 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 -/* B52464 800DB2C4 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 +/* B52460 800DB2C0 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017 +/* B52464 800DB2C4 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80 /* B52468 800DB2C8 84CE2854 */ lh $t6, 0x2854($a2) /* B5246C 800DB2CC 24820001 */ addiu $v0, $a0, 1 /* B52470 800DB2D0 004E082A */ slt $at, $v0, $t6 @@ -1001,8 +1001,8 @@ glabel func_800DBAE8 /* B52C90 800DBAF0 AFA5002C */ sw $a1, 0x2c($sp) /* B52C94 800DBAF4 AFA60030 */ sw $a2, 0x30($sp) /* B52C98 800DBAF8 80AF0005 */ lb $t7, 5($a1) -/* B52C9C 800DBAFC 3C088017 */ lui $t0, %hi(D_8016F180) # $t0, 0x8017 -/* B52CA0 800DBB00 2508F180 */ addiu $t0, %lo(D_8016F180) # addiu $t0, $t0, -0xe80 +/* B52C9C 800DBAFC 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017 +/* B52CA0 800DBB00 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80 /* B52CA4 800DBB04 000FC080 */ sll $t8, $t7, 2 /* B52CA8 800DBB08 030FC023 */ subu $t8, $t8, $t7 /* B52CAC 800DBB0C 0018C080 */ sll $t8, $t8, 2 @@ -1659,8 +1659,8 @@ glabel func_800DC2DC glabel func_800DC384 /* B53524 800DC384 27BDFF08 */ addiu $sp, $sp, -0xf8 /* B53528 800DC388 AFB5003C */ sw $s5, 0x3c($sp) -/* B5352C 800DC38C 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 -/* B53530 800DC390 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 +/* B5352C 800DC38C 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017 +/* B53530 800DC390 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80 /* B53534 800DC394 8EA82894 */ lw $t0, 0x2894($s5) /* B53538 800DC398 82A90001 */ lb $t1, 1($s5) /* B5353C 800DC39C AFBE0048 */ sw $fp, 0x48($sp) @@ -3248,9 +3248,9 @@ glabel func_800DD9F4 /* B54BDC 800DDA3C 8CE7F0B0 */ lw $a3, %lo(D_8012F0B0)($a3) /* B54BE0 800DDA40 0C036F44 */ jal func_800DBD10 /* 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) -/* 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) /* B54BF8 800DDA58 00095080 */ sll $t2, $t1, 2 /* B54BFC 800DDA5C 02001025 */ move $v0, $s0 diff --git a/asm/code_800DDE20.s b/asm/code_800DDE20.s index a296d8ad6a..157e00e4df 100644 --- a/asm/code_800DDE20.s +++ b/asm/code_800DDE20.s @@ -28,8 +28,8 @@ glabel func_800DDE3C /* B54FF4 800DDE54 AFB10018 */ sw $s1, 0x18($sp) /* B54FF8 800DDE58 0C037788 */ jal func_800DDE20 /* B54FFC 800DDE5C AFB00014 */ sw $s0, 0x14($sp) -/* B55000 800DDE60 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 -/* B55004 800DDE64 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 +/* B55000 800DDE60 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017 +/* B55004 800DDE64 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80 /* B55008 800DDE68 8E6E3520 */ lw $t6, 0x3520($s3) /* B5500C 800DDE6C 3C018015 */ lui $at, %hi(D_801493F0) /* B55010 800DDE70 E5C003FC */ swc1 $f0, 0x3fc($t6) @@ -105,10 +105,10 @@ glabel func_800DDE3C /* B5511C 800DDF7C 27BD0028 */ addiu $sp, $sp, 0x28 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 /* 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 /* B55134 800DDF94 906E3468 */ lbu $t6, 0x3468($v1) .L800DDF98: @@ -120,10 +120,10 @@ glabel func_800DDF80 /* B55148 800DDFA8 0062082B */ sltu $at, $v1, $v0 /* B5514C 800DDFAC 5420FFFA */ bnezl $at, .L800DDF98 /* 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 /* 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) .L800DDFC8: /* B55168 800DDFC8 508F0003 */ beql $a0, $t7, .L800DDFD8 @@ -134,10 +134,10 @@ glabel func_800DDF80 /* B55178 800DDFD8 0062082B */ sltu $at, $v1, $v0 /* B5517C 800DDFDC 5420FFFA */ bnezl $at, .L800DDFC8 /* 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 /* 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) .L800DDFF8: /* B55198 800DDFF8 50980003 */ beql $a0, $t8, .L800DE008 @@ -168,8 +168,8 @@ glabel func_800DDF80 glabel func_800DE048 /* B551E8 800DE048 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B551EC 800DE04C AFB50028 */ sw $s5, 0x28($sp) -/* B551F0 800DE050 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 -/* B551F4 800DE054 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 +/* B551F0 800DE050 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017 +/* B551F4 800DE054 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80 /* B551F8 800DE058 8EA22894 */ lw $v0, 0x2894($s5) /* B551FC 800DE05C AFB40024 */ sw $s4, 0x24($sp) /* B55200 800DE060 AFB10018 */ sw $s1, 0x18($sp) @@ -180,8 +180,8 @@ glabel func_800DE048 /* B55214 800DE074 AFB00014 */ sw $s0, 0x14($sp) /* B55218 800DE078 18400023 */ blez $v0, .L800DE108 /* B5521C 800DE07C 00008825 */ move $s1, $zero -/* B55220 800DE080 3C138017 */ lui $s3, %hi(D_80174D18) # $s3, 0x8017 -/* B55224 800DE084 26734D18 */ addiu $s3, %lo(D_80174D18) # addiu $s3, $s3, 0x4d18 +/* B55220 800DE080 3C138017 */ lui $s3, %hi(gNoteFreeLists) # $s3, 0x8017 +/* B55224 800DE084 26734D18 */ addiu $s3, %lo(gNoteFreeLists) # addiu $s3, $s3, 0x4d18 /* B55228 800DE088 00009025 */ move $s2, $zero .L800DE08C: /* B5522C 800DE08C 8EAE352C */ lw $t6, 0x352c($s5) @@ -204,12 +204,12 @@ glabel func_800DE048 /* B55270 800DE0D0 356C0040 */ ori $t4, $t3, 0x40 /* B55274 800DE0D4 A04C0000 */ sb $t4, ($v0) .L800DE0D8: -/* B55278 800DE0D8 0C039BCA */ jal func_800E6F28 +/* B55278 800DE0D8 0C039BCA */ jal Audio_NoteDisable /* B5527C 800DE0DC 02002025 */ move $a0, $s0 -/* B55280 800DE0E0 0C03A037 */ jal func_800E80DC +/* B55280 800DE0E0 0C03A037 */ jal Audio_AudioListRemove /* B55284 800DE0E4 02002025 */ move $a0, $s0 /* B55288 800DE0E8 02602025 */ move $a0, $s3 -/* B5528C 800DE0EC 0C03A70A */ jal func_800E9C28 +/* B5528C 800DE0EC 0C03A70A */ jal Audio_AudioListPushBack /* B55290 800DE0F0 02002825 */ move $a1, $s0 /* B55294 800DE0F4 8EA22894 */ lw $v0, 0x2894($s5) /* B55298 800DE0F8 26310001 */ addiu $s1, $s1, 1 @@ -229,8 +229,8 @@ glabel func_800DE048 /* B552C8 800DE128 27BD0030 */ addiu $sp, $sp, 0x30 glabel func_800DE12C -/* B552CC 800DE12C 3C088017 */ lui $t0, %hi(D_8016F180) # $t0, 0x8017 -/* B552D0 800DE130 2508F180 */ addiu $t0, %lo(D_8016F180) # addiu $t0, $t0, -0xe80 +/* B552CC 800DE12C 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017 +/* B552D0 800DE130 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80 /* B552D4 800DE134 8D032894 */ lw $v1, 0x2894($t0) /* B552D8 800DE138 00803825 */ move $a3, $a0 /* B552DC 800DE13C 00001025 */ move $v0, $zero @@ -278,8 +278,8 @@ glabel func_800DE1B4 /* B55370 800DE1D0 AFB00018 */ sw $s0, 0x18($sp) /* B55374 800DE1D4 18400012 */ blez $v0, .L800DE220 /* B55378 800DE1D8 00008825 */ move $s1, $zero -/* B5537C 800DE1DC 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 -/* B55380 800DE1E0 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 +/* B5537C 800DE1DC 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017 +/* B55380 800DE1E0 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80 .L800DE1E4: /* B55384 800DE1E4 8E0E3530 */ lw $t6, 0x3530($s0) /* B55388 800DE1E8 000E7FC2 */ srl $t7, $t6, 0x1f @@ -367,7 +367,7 @@ glabel func_800DE2B0 /* B554A0 800DE300 03E00008 */ jr $ra /* B554A4 800DE304 00000000 */ nop -glabel func_800DE308 +glabel Audio_SoundAlloc /* B554A8 800DE308 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B554AC 800DE30C AFBF0014 */ sw $ra, 0x14($sp) /* 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 /* B557AC 800DE60C 0C03790D */ jal func_800DE434 /* B557B0 800DE610 AFA60018 */ sw $a2, 0x18($sp) -/* B557B4 800DE614 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B557B8 800DE618 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B557B4 800DE614 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B557B8 800DE618 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B557BC 800DE61C 8FA70018 */ lw $a3, 0x18($sp) /* B557C0 800DE620 8C4E3524 */ lw $t6, 0x3524($v0) /* B557C4 800DE624 8C4F3528 */ lw $t7, 0x3528($v0) @@ -613,8 +613,8 @@ glabel func_800DE5F0 /* B557EC 800DE64C 27BD0018 */ addiu $sp, $sp, 0x18 glabel func_800DE650 -/* B557F0 800DE650 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B557F4 800DE654 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B557F0 800DE650 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B557F4 800DE654 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B557F8 800DE658 8C4E2990 */ lw $t6, 0x2990($v0) /* B557FC 800DE65C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B55800 800DE660 AFA40018 */ sw $a0, 0x18($sp) @@ -648,8 +648,8 @@ glabel func_800DE650 /* B55870 800DE6D0 00000000 */ nop glabel func_800DE6D4 -/* B55874 800DE6D4 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B55878 800DE6D8 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B55874 800DE6D4 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B55878 800DE6D8 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B5587C 800DE6DC 8C4E29F0 */ lw $t6, 0x29f0($v0) /* B55880 800DE6E0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B55884 800DE6E4 AFA40018 */ sw $a0, 0x18($sp) @@ -683,8 +683,8 @@ glabel func_800DE6D4 /* B558F4 800DE754 00000000 */ nop glabel func_800DE758 -/* B558F8 800DE758 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B558FC 800DE75C 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B558F8 800DE758 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B558FC 800DE75C 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B55900 800DE760 8C4E2A00 */ lw $t6, 0x2a00($v0) /* B55904 800DE764 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B55908 800DE768 AFB00018 */ sw $s0, 0x18($sp) @@ -734,8 +734,8 @@ glabel func_800DE758 /* B559B8 800DE818 00000000 */ nop glabel func_800DE81C -/* B559BC 800DE81C 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B559C0 800DE820 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B559BC 800DE81C 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B559C0 800DE820 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B559C4 800DE824 8C4E2A10 */ lw $t6, 0x2a10($v0) /* B559C8 800DE828 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B559CC 800DE82C AFB00018 */ sw $s0, 0x18($sp) @@ -967,8 +967,8 @@ glabel func_800DE8E0 /* B55CF0 800DEB50 155F0016 */ bne $t2, $ra, .L800DEBAC /* B55CF4 800DEB54 3C048017 */ lui $a0, %hi(D_801719DC) # $a0, 0x8017 /* B55CF8 800DEB58 848419DC */ lh $a0, %lo(D_801719DC)($a0) -/* B55CFC 800DEB5C 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B55D00 800DEB60 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B55CFC 800DEB5C 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B55D00 800DEB60 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B55D04 800DEB64 1880000D */ blez $a0, .L800DEB9C /* B55D08 800DEB68 00001825 */ move $v1, $zero .L800DEB6C: @@ -994,8 +994,8 @@ glabel func_800DE8E0 /* B55D4C 800DEBAC 154C0048 */ bne $t2, $t4, .L800DECD0 /* B55D50 800DEBB0 3C048017 */ lui $a0, %hi(D_801719DC) # $a0, 0x8017 /* B55D54 800DEBB4 848419DC */ lh $a0, %lo(D_801719DC)($a0) -/* B55D58 800DEBB8 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B55D5C 800DEBBC 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B55D58 800DEBB8 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B55D5C 800DEBBC 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B55D60 800DEBC0 1880000D */ blez $a0, .L800DEBF8 /* B55D64 800DEBC4 00001825 */ move $v1, $zero .L800DEBC8: @@ -1869,8 +1869,8 @@ glabel func_800DF7BC /* B56960 800DF7C0 AFA40000 */ sw $a0, ($sp) glabel func_800DF7C4 -/* B56964 800DF7C4 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B56968 800DF7C8 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B56964 800DF7C4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B56968 800DF7C8 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B5696C 800DF7CC 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B56970 800DF7D0 846E2848 */ lh $t6, 0x2848($v1) /* B56974 800DF7D4 24010002 */ li $at, 2 @@ -1899,8 +1899,8 @@ glabel func_800DF7C4 /* B569C4 800DF824 000F78C0 */ sll $t7, $t7, 3 /* B569C8 800DF828 01F37821 */ addu $t7, $t7, $s3 /* B569CC 800DF82C 000F78C0 */ sll $t7, $t7, 3 -/* B569D0 800DF830 3C198017 */ lui $t9, %hi(D_8016F180) # $t9, 0x8017 -/* B569D4 800DF834 2739F180 */ addiu $t9, %lo(D_8016F180) # addiu $t9, $t9, -0xe80 +/* B569D0 800DF830 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017 +/* B569D4 800DF834 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80 /* B569D8 800DF838 25F80018 */ addiu $t8, $t7, 0x18 /* B569DC 800DF83C 03198821 */ addu $s1, $t8, $t9 .L800DF840: @@ -1926,8 +1926,8 @@ glabel func_800DF7C4 /* B56A24 800DF884 27BD0028 */ addiu $sp, $sp, 0x28 glabel func_800DF888 -/* B56A28 800DF888 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 -/* B56A2C 800DF88C 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 +/* B56A28 800DF888 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017 +/* B56A2C 800DF88C 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80 /* B56A30 800DF890 8CC228A8 */ lw $v0, 0x28a8($a2) /* B56A34 800DF894 84CE2852 */ lh $t6, 0x2852($a2) /* B56A38 800DF898 00002825 */ move $a1, $zero @@ -1958,8 +1958,8 @@ glabel func_800DF888 glabel func_800DF8F4 /* B56A94 800DF8F4 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B56A98 800DF8F8 AFB10018 */ sw $s1, 0x18($sp) -/* B56A9C 800DF8FC 3C118017 */ lui $s1, %hi(D_8016F180) # $s1, 0x8017 -/* B56AA0 800DF900 2631F180 */ addiu $s1, %lo(D_8016F180) # addiu $s1, $s1, -0xe80 +/* B56A9C 800DF8FC 3C118017 */ lui $s1, %hi(gAudioContext) # $s1, 0x8017 +/* B56AA0 800DF900 2631F180 */ addiu $s1, %lo(gAudioContext) # addiu $s1, $s1, -0xe80 /* B56AA4 800DF904 862E2848 */ lh $t6, 0x2848($s1) /* B56AA8 800DF908 24010002 */ li $at, 2 /* B56AAC 800DF90C AFBF001C */ sw $ra, 0x1c($sp) @@ -2131,8 +2131,8 @@ glabel L800DFB18 glabel L800DFB54 /* B56CF4 800DFB54 0C037EFE */ jal func_800DFBF8 /* B56CF8 800DFB58 00000000 */ nop -/* B56CFC 800DFB5C 3C0F8017 */ lui $t7, %hi(D_8016F180) -/* B56D00 800DFB60 25E3F180 */ addiu $v1, $t7, %lo(D_8016F180) +/* B56CFC 800DFB5C 3C0F8017 */ lui $t7, %hi(gAudioContext) +/* B56D00 800DFB60 25E3F180 */ addiu $v1, $t7, %lo(gAudioContext) /* B56D04 800DFB64 3C078017 */ lui $a3, %hi(D_8016F18C) # $a3, 0x8017 /* B56D08 800DFB68 A2203518 */ sb $zero, 0x3518($s1) /* B56D0C 800DFB6C 24E7F18C */ addiu $a3, %lo(D_8016F18C) # addiu $a3, $a3, -0xe74 @@ -2179,8 +2179,8 @@ glabel L800DFB54 glabel func_800DFBF8 /* B56D98 800DFBF8 27BDFF60 */ addiu $sp, $sp, -0xa0 /* B56D9C 800DFBFC AFB60030 */ sw $s6, 0x30($sp) -/* B56DA0 800DFC00 3C168017 */ lui $s6, %hi(D_8016F180) # $s6, 0x8017 -/* B56DA4 800DFC04 26D6F180 */ addiu $s6, %lo(D_8016F180) # addiu $s6, $s6, -0xe80 +/* B56DA0 800DFC00 3C168017 */ lui $s6, %hi(gAudioContext) # $s6, 0x8017 +/* B56DA4 800DFC04 26D6F180 */ addiu $s6, %lo(gAudioContext) # addiu $s6, $s6, -0xe80 /* B56DA8 800DFC08 92CE3519 */ lbu $t6, 0x3519($s6) /* B56DAC 800DFC0C 3C188013 */ lui $t8, %hi(D_801337C8) # $t8, 0x8013 /* 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 /* B571E4 800E0044 0C0378E0 */ jal func_800DE380 /* 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) -/* B571F4 800E0054 0C039F57 */ jal func_800E7D5C +/* B571F4 800E0054 0C039F57 */ jal Audio_InitNoteFreeList /* B571F8 800E0058 00000000 */ nop /* B571FC 800E005C 86D82854 */ lh $t8, 0x2854($s6) /* B57200 800E0060 8ED92894 */ lw $t9, 0x2894($s6) @@ -2477,11 +2477,11 @@ glabel func_800DFBF8 /* B57210 800E0070 00052940 */ sll $a1, $a1, 5 /* B57214 800E0074 0C0378E0 */ jal func_800DE380 /* 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 /* B57224 800E0084 AEC20014 */ sw $v0, 0x14($s6) /* 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: /* B57230 800E0090 8EC52890 */ lw $a1, 0x2890($s6) /* B57234 800E0094 02602025 */ move $a0, $s3 @@ -2495,10 +2495,10 @@ glabel func_800DFBF8 /* B57254 800E00B4 24050400 */ li $a1, 1024 /* B57258 800E00B8 0C03778F */ jal func_800DDE3C /* 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 /* 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: /* B57270 800E00D0 269402C8 */ addiu $s4, $s4, 0x2c8 /* B57274 800E00D4 0282082B */ sltu $at, $s4, $v0 @@ -2512,12 +2512,12 @@ glabel func_800DFBF8 /* B57294 800E00F4 196000CA */ blez $t3, .L800E0420 /* B57298 800E00F8 3C0D8017 */ lui $t5, %hi(D_8016F430) # $t5, 0x8017 /* 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 /* B572A8 800E0108 3C1E8017 */ lui $fp, %hi(D_8016F420) # $fp, 0x8017 /* B572AC 800E010C 27DEF420 */ addiu $fp, %lo(D_8016F420) # addiu $fp, $fp, -0xbe0 /* 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) /* B572BC 800E011C 0000B825 */ move $s7, $zero .L800E0120: @@ -2681,7 +2681,7 @@ glabel func_800DFBF8 /* B57518 800E0378 24050040 */ li $a1, 64 /* B5751C 800E037C AE420278 */ sw $v0, 0x278($s2) /* B57520 800E0380 02602025 */ move $a0, $s3 -/* B57524 800E0384 0C0378C2 */ jal func_800DE308 +/* B57524 800E0384 0C0378C2 */ jal Audio_SoundAlloc /* B57528 800E0388 24050010 */ li $a1, 16 /* B5752C 800E038C AE420270 */ sw $v0, 0x270($s2) /* B57530 800E0390 86A50014 */ lh $a1, 0x14($s5) @@ -2700,7 +2700,7 @@ glabel func_800DFBF8 /* B5755C 800E03BC 24050040 */ li $a1, 64 /* B57560 800E03C0 AE42027C */ sw $v0, 0x27c($s2) /* B57564 800E03C4 02602025 */ move $a0, $s3 -/* B57568 800E03C8 0C0378C2 */ jal func_800DE308 +/* B57568 800E03C8 0C0378C2 */ jal Audio_SoundAlloc /* B5756C 800E03CC 24050010 */ li $a1, 16 /* B57570 800E03D0 AE420274 */ sw $v0, 0x274($s2) /* B57574 800E03D4 86A50016 */ lh $a1, 0x16($s5) @@ -2782,10 +2782,10 @@ glabel func_800E04E8 /* B57688 800E04E8 3C038017 */ lui $v1, %hi(D_80171EDC) # $v1, 0x8017 /* B5768C 800E04EC 8C631EDC */ lw $v1, %lo(D_80171EDC)($v1) /* 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 /* 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: /* B576A4 800E0504 84AE2D68 */ lh $t6, 0x2d68($a1) /* B576A8 800E0508 24420001 */ addiu $v0, $v0, 1 @@ -2820,8 +2820,8 @@ glabel func_800E0540 /* B57708 800E0568 0C0378F7 */ jal func_800DE3DC /* B5770C 800E056C AFAE0018 */ sw $t6, 0x18($sp) /* B57710 800E0570 8FAF0018 */ lw $t7, 0x18($sp) -/* B57714 800E0574 3C198017 */ lui $t9, %hi(D_8016F180) # $t9, 0x8017 -/* B57718 800E0578 2739F180 */ addiu $t9, %lo(D_8016F180) # addiu $t9, $t9, -0xe80 +/* B57714 800E0574 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017 +/* B57718 800E0578 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80 /* B5771C 800E057C 000FC080 */ sll $t8, $t7, 2 /* B57720 800E0580 030FC023 */ subu $t8, $t8, $t7 /* 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 /* B57820 800E0680 0C0378AC */ jal func_800DE2B0 /* B57824 800E0684 8FA5001C */ lw $a1, 0x1c($sp) -/* B57828 800E0688 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B5782C 800E068C 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B57828 800E0688 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B5782C 800E068C 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B57830 800E0690 14400003 */ bnez $v0, .L800E06A0 /* B57834 800E0694 00402825 */ move $a1, $v0 /* B57838 800E0698 10000007 */ b .L800E06B8 @@ -2912,8 +2912,8 @@ glabel func_800E0634 /* B57844 800E06A4 248422F4 */ addiu $a0, %lo(D_801722F4) # addiu $a0, $a0, 0x22f4 /* B57848 800E06A8 0C03790D */ jal func_800DE434 /* B5784C 800E06AC 8FA6001C */ lw $a2, 0x1c($sp) -/* B57850 800E06B0 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B57854 800E06B4 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B57850 800E06B0 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B57854 800E06B4 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 .L800E06B8: /* B57858 800E06B8 8FBF0014 */ lw $ra, 0x14($sp) /* B5785C 800E06BC AC603170 */ sw $zero, 0x3170($v1) @@ -2926,8 +2926,8 @@ glabel func_800E06CC /* B57870 800E06D0 AFB6002C */ sw $s6, 0x2c($sp) /* B57874 800E06D4 AFA40048 */ sw $a0, 0x48($sp) /* B57878 800E06D8 3C048017 */ lui $a0, %hi(D_801722F4) # $a0, 0x8017 -/* B5787C 800E06DC 3C168017 */ lui $s6, %hi(D_8016F180) # $s6, 0x8017 -/* B57880 800E06E0 26D6F180 */ addiu $s6, %lo(D_8016F180) # addiu $s6, $s6, -0xe80 +/* B5787C 800E06DC 3C168017 */ lui $s6, %hi(gAudioContext) # $s6, 0x8017 +/* B57880 800E06E0 26D6F180 */ addiu $s6, %lo(gAudioContext) # addiu $s6, $s6, -0xe80 /* B57884 800E06E4 248422F4 */ addiu $a0, %lo(D_801722F4) # addiu $a0, $a0, 0x22f4 /* B57888 800E06E8 AFBF0034 */ sw $ra, 0x34($sp) /* B5788C 800E06EC AFB40024 */ sw $s4, 0x24($sp) @@ -2969,13 +2969,13 @@ glabel func_800E06CC /* B57914 800E0774 2415FFFF */ li $s5, -1 /* B57918 800E0778 18E00034 */ blez $a3, .L800E084C /* B5791C 800E077C 00008825 */ move $s1, $zero -/* B57920 800E0780 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 -/* B57924 800E0784 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 +/* B57920 800E0780 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017 +/* B57924 800E0784 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80 /* B57928 800E0788 24170001 */ li $s7, 1 /* B5792C 800E078C 8CCF0D78 */ lw $t7, 0xd78($a2) .L800E0790: -/* B57930 800E0790 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 -/* B57934 800E0794 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 +/* B57930 800E0790 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017 +/* B57934 800E0794 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80 /* B57938 800E0798 15E00023 */ bnez $t7, .L800E0828 /* B5793C 800E079C 24C40D68 */ addiu $a0, $a2, 0xd68 /* B57940 800E07A0 8C980004 */ lw $t8, 4($a0) @@ -2993,8 +2993,8 @@ glabel func_800E06CC /* B57970 800E07D0 10200007 */ beqz $at, .L800E07F0 /* B57974 800E07D4 00074880 */ sll $t1, $a3, 2 /* B57978 800E07D8 01274821 */ addu $t1, $t1, $a3 -/* B5797C 800E07DC 3C0A8017 */ lui $t2, %hi(D_8016F180) # $t2, 0x8017 -/* B57980 800E07E0 254AF180 */ addiu $t2, %lo(D_8016F180) # addiu $t2, $t2, -0xe80 +/* B5797C 800E07DC 3C0A8017 */ lui $t2, %hi(gAudioContext) # $t2, 0x8017 +/* B57980 800E07E0 254AF180 */ addiu $t2, %lo(gAudioContext) # addiu $t2, $t2, -0xe80 /* B57984 800E07E4 00094880 */ sll $t1, $t1, 2 /* B57988 800E07E8 10000013 */ b .L800E0838 /* B5798C 800E07EC 012A1021 */ addu $v0, $t1, $t2 @@ -3005,8 +3005,8 @@ glabel func_800E06CC /* B5799C 800E07FC 14200007 */ bnez $at, .L800E081C /* B579A0 800E0800 00075880 */ sll $t3, $a3, 2 /* B579A4 800E0804 01675821 */ addu $t3, $t3, $a3 -/* B579A8 800E0808 3C0C8017 */ lui $t4, %hi(D_8016F180) # $t4, 0x8017 -/* B579AC 800E080C 258CF180 */ addiu $t4, %lo(D_8016F180) # addiu $t4, $t4, -0xe80 +/* B579A8 800E0808 3C0C8017 */ lui $t4, %hi(gAudioContext) # $t4, 0x8017 +/* B579AC 800E080C 258CF180 */ addiu $t4, %lo(gAudioContext) # addiu $t4, $t4, -0xe80 /* B579B0 800E0810 000B5880 */ sll $t3, $t3, 2 /* B579B4 800E0814 10000008 */ b .L800E0838 /* B579B8 800E0818 016C1021 */ addu $v0, $t3, $t4 @@ -3109,8 +3109,8 @@ glabel func_800E06CC glabel func_800E0964 /* B57B04 800E0964 27BDFFC8 */ addiu $sp, $sp, -0x38 /* B57B08 800E0968 AFB5002C */ sw $s5, 0x2c($sp) -/* B57B0C 800E096C 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 -/* B57B10 800E0970 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 +/* B57B0C 800E096C 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017 +/* B57B10 800E0970 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80 /* B57B14 800E0974 AFB30024 */ sw $s3, 0x24($sp) /* B57B18 800E0978 8EAE2844 */ lw $t6, 0x2844($s5) /* B57B1C 800E097C 00059880 */ sll $s3, $a1, 2 @@ -3131,7 +3131,7 @@ glabel func_800E0964 /* B57B58 800E09B8 2416007F */ li $s6, 127 /* B57B5C 800E09BC 02802025 */ move $a0, $s4 .L800E09C0: -/* B57B60 800E09C0 0C039D26 */ jal func_800E7498 +/* B57B60 800E09C0 0C039D26 */ jal Audio_GetInstrumentInner /* B57B64 800E09C4 02202825 */ move $a1, $s1 /* B57B68 800E09C8 10400010 */ beqz $v0, .L800E0A0C /* B57B6C 800E09CC 00408025 */ move $s0, $v0 @@ -3166,7 +3166,7 @@ glabel func_800E0964 /* B57BD0 800E0A30 1940000E */ blez $t2, .L800E0A6C /* B57BD4 800E0A34 02802025 */ move $a0, $s4 .L800E0A38: -/* B57BD8 800E0A38 0C039D5B */ jal func_800E756C +/* B57BD8 800E0A38 0C039D5B */ jal Audio_GetDrum /* B57BDC 800E0A3C 02002825 */ move $a1, $s0 /* B57BE0 800E0A40 10400003 */ beqz $v0, .L800E0A50 /* B57BE4 800E0A44 02402025 */ move $a0, $s2 @@ -3186,7 +3186,7 @@ glabel func_800E0964 /* B57C14 800E0A74 19A0000E */ blez $t5, .L800E0AB0 /* B57C18 800E0A78 02802025 */ move $a0, $s4 .L800E0A7C: -/* B57C1C 800E0A7C 0C039D94 */ jal func_800E7650 +/* B57C1C 800E0A7C 0C039D94 */ jal Audio_GetUnkInstrument /* B57C20 800E0A80 02002825 */ move $a1, $s0 /* B57C24 800E0A84 10400003 */ beqz $v0, .L800E0A94 /* B57C28 800E0A88 02402025 */ move $a0, $s2 @@ -3215,8 +3215,8 @@ glabel func_800E0964 glabel func_800E0AD8 /* B57C78 800E0AD8 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B57C7C 800E0ADC AFB50028 */ sw $s5, 0x28($sp) -/* B57C80 800E0AE0 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 -/* B57C84 800E0AE4 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 +/* B57C80 800E0AE0 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017 +/* B57C84 800E0AE4 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80 /* B57C88 800E0AE8 8EAE2834 */ lw $t6, 0x2834($s5) /* B57C8C 800E0AEC AFBF002C */ sw $ra, 0x2c($sp) /* B57C90 800E0AF0 AFB40024 */ sw $s4, 0x24($sp) @@ -3356,8 +3356,8 @@ glabel func_800E0C80 glabel func_800E0CBC /* B57E5C 800E0CBC 27BDFFC0 */ addiu $sp, $sp, -0x40 /* B57E60 800E0CC0 AFB5002C */ sw $s5, 0x2c($sp) -/* B57E64 800E0CC4 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 -/* B57E68 800E0CC8 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 +/* B57E64 800E0CC4 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017 +/* B57E68 800E0CC8 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80 /* B57E6C 800E0CCC 8EAE2834 */ lw $t6, 0x2834($s5) /* B57E70 800E0CD0 AFBF003C */ sw $ra, 0x3c($sp) /* B57E74 800E0CD4 AFBE0038 */ sw $fp, 0x38($sp) @@ -3499,8 +3499,8 @@ glabel func_800E0E90 glabel func_800E0EB4 /* B58054 800E0EB4 27BDFF60 */ addiu $sp, $sp, -0xa0 /* B58058 800E0EB8 AFB70034 */ sw $s7, 0x34($sp) -/* B5805C 800E0EBC 3C178017 */ lui $s7, %hi(D_8016F180) # $s7, 0x8017 -/* B58060 800E0EC0 26F7F180 */ addiu $s7, %lo(D_8016F180) # addiu $s7, $s7, -0xe80 +/* B5805C 800E0EBC 3C178017 */ lui $s7, %hi(gAudioContext) # $s7, 0x8017 +/* B58060 800E0EC0 26F7F180 */ addiu $s7, %lo(gAudioContext) # addiu $s7, $s7, -0xe80 /* B58064 800E0EC4 8EEE2834 */ lw $t6, 0x2834($s7) /* B58068 800E0EC8 AFBF003C */ sw $ra, 0x3c($sp) /* B5806C 800E0ECC AFBE0038 */ sw $fp, 0x38($sp) @@ -3595,7 +3595,7 @@ glabel func_800E0EB4 /* B581B4 800E1014 1B20001B */ blez $t9, .L800E1084 /* B581B8 800E1018 02A02025 */ move $a0, $s5 .L800E101C: -/* B581BC 800E101C 0C039D26 */ jal func_800E7498 +/* B581BC 800E101C 0C039D26 */ jal Audio_GetInstrumentInner /* B581C0 800E1020 02202825 */ move $a1, $s1 /* B581C4 800E1024 10400010 */ beqz $v0, .L800E1068 /* B581C8 800E1028 00408025 */ move $s0, $v0 @@ -3629,7 +3629,7 @@ glabel func_800E0EB4 /* B58228 800E1088 1980000E */ blez $t4, .L800E10C4 /* B5822C 800E108C 02A02025 */ move $a0, $s5 .L800E1090: -/* B58230 800E1090 0C039D5B */ jal func_800E756C +/* B58230 800E1090 0C039D5B */ jal Audio_GetDrum /* B58234 800E1094 02402825 */ move $a1, $s2 /* B58238 800E1098 10400003 */ beqz $v0, .L800E10A8 /* B5823C 800E109C 02802025 */ move $a0, $s4 @@ -3648,7 +3648,7 @@ glabel func_800E0EB4 /* B58268 800E10C8 19E0000E */ blez $t7, .L800E1104 /* B5826C 800E10CC 02A02025 */ move $a0, $s5 .L800E10D0: -/* B58270 800E10D0 0C039D94 */ jal func_800E7650 +/* B58270 800E10D0 0C039D94 */ jal Audio_GetUnkInstrument /* B58274 800E10D4 02602825 */ move $a1, $s3 /* B58278 800E10D8 10400003 */ beqz $v0, .L800E10E8 /* B5827C 800E10DC 02802025 */ move $a0, $s4 diff --git a/asm/code_800E11F0.s b/asm/code_800E11F0.s index 7a66076342..74c276413c 100644 --- a/asm/code_800E11F0.s +++ b/asm/code_800E11F0.s @@ -10,8 +10,8 @@ .align 4 glabel func_800E11F0 -/* B58390 800E11F0 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 -/* B58394 800E11F4 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 +/* B58390 800E11F0 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017 +/* B58394 800E11F4 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80 /* B58398 800E11F8 8CC32624 */ lw $v1, 0x2624($a2) /* B5839C 800E11FC 00001025 */ move $v0, $zero /* B583A0 800E1200 00002025 */ move $a0, $zero @@ -87,16 +87,16 @@ glabel func_800E12DC /* B58498 800E12F8 AFA7005C */ sw $a3, 0x5c($sp) /* B5849C 800E12FC 14C00008 */ bnez $a2, .L800E1320 /* B584A0 800E1300 00005825 */ move $t3, $zero -/* B584A4 800E1304 3C098017 */ lui $t1, %hi(D_8016F180) # $t1, 0x8017 -/* B584A8 800E1308 2529F180 */ addiu $t1, %lo(D_8016F180) # addiu $t1, $t1, -0xe80 +/* B584A4 800E1304 3C098017 */ lui $t1, %hi(gAudioContext) # $t1, 0x8017 +/* B584A8 800E1308 2529F180 */ addiu $t1, %lo(gAudioContext) # addiu $t1, $t1, -0xe80 /* B584AC 800E130C 8D262624 */ lw $a2, 0x2624($t1) /* B584B0 800E1310 90E20000 */ lbu $v0, ($a3) /* B584B4 800E1314 0046082B */ sltu $at, $v0, $a2 /* B584B8 800E1318 54200057 */ bnezl $at, .L800E1478 /* B584BC 800E131C 8D25261C */ lw $a1, 0x261c($t1) .L800E1320: -/* B584C0 800E1320 3C098017 */ lui $t1, %hi(D_8016F180) # $t1, 0x8017 -/* B584C4 800E1324 2529F180 */ addiu $t1, %lo(D_8016F180) # addiu $t1, $t1, -0xe80 +/* B584C0 800E1320 3C098017 */ lui $t1, %hi(gAudioContext) # $t1, 0x8017 +/* B584C4 800E1324 2529F180 */ addiu $t1, %lo(gAudioContext) # addiu $t1, $t1, -0xe80 /* B584C8 800E1328 8D262624 */ lw $a2, 0x2624($t1) /* B584CC 800E132C 8D252620 */ lw $a1, 0x2620($t1) /* B584D0 800E1330 00C02025 */ move $a0, $a2 @@ -305,8 +305,8 @@ glabel func_800E12DC glabel func_800E1618 /* B587B8 800E1618 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B587BC 800E161C AFB20020 */ sw $s2, 0x20($sp) -/* B587C0 800E1620 3C128017 */ lui $s2, %hi(D_8016F180) # $s2, 0x8017 -/* B587C4 800E1624 2652F180 */ addiu $s2, %lo(D_8016F180) # addiu $s2, $s2, -0xe80 +/* B587C0 800E1620 3C128017 */ lui $s2, %hi(gAudioContext) # $s2, 0x8017 +/* B587C4 800E1624 2652F180 */ addiu $s2, %lo(gAudioContext) # addiu $s2, $s2, -0xe80 /* B587C8 800E1628 8E582894 */ lw $t8, 0x2894($s2) /* B587CC 800E162C 86482848 */ lh $t0, 0x2848($s2) /* B587D0 800E1630 AFB40028 */ sw $s4, 0x28($sp) @@ -366,8 +366,8 @@ glabel func_800E1618 .L800E1700: /* B588A0 800E1700 8E442620 */ lw $a0, 0x2620($s2) .L800E1704: -/* B588A4 800E1704 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B588A8 800E1708 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B588A4 800E1704 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B588A8 800E1708 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B588AC 800E170C 1080000C */ beqz $a0, .L800E1740 /* B588B0 800E1710 00001825 */ move $v1, $zero /* B588B4 800E1714 A051262C */ sb $s1, 0x262c($v0) @@ -593,8 +593,8 @@ glabel func_800E19A0 glabel func_800E1A18 /* B58BB8 800E1A18 240100FF */ li $at, 255 /* B58BBC 800E1A1C 10810008 */ beq $a0, $at, .L800E1A40 -/* B58BC0 800E1A20 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 -/* B58BC4 800E1A24 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 +/* B58BC0 800E1A20 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017 +/* B58BC4 800E1A24 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80 /* B58BC8 800E1A28 008E1021 */ addu $v0, $a0, $t6 /* B58BCC 800E1A2C 904F3468 */ lbu $t7, 0x3468($v0) /* B58BD0 800E1A30 24010005 */ li $at, 5 @@ -608,8 +608,8 @@ glabel func_800E1A18 glabel func_800E1A48 /* B58BE8 800E1A48 240100FF */ li $at, 255 /* B58BEC 800E1A4C 10810008 */ beq $a0, $at, .L800E1A70 -/* B58BF0 800E1A50 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 -/* B58BF4 800E1A54 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 +/* B58BF0 800E1A50 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017 +/* B58BF4 800E1A54 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80 /* B58BF8 800E1A58 008E1021 */ addu $v0, $a0, $t6 /* B58BFC 800E1A5C 904F3498 */ lbu $t7, 0x3498($v0) /* B58C00 800E1A60 24010005 */ li $at, 5 @@ -625,8 +625,8 @@ glabel func_800E1A78 /* B58C1C 800E1A7C 240100FF */ li $at, 255 /* B58C20 800E1A80 10810011 */ beq $a0, $at, .L800E1AC8 /* B58C24 800E1A84 AFBF0014 */ sw $ra, 0x14($sp) -/* B58C28 800E1A88 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 -/* B58C2C 800E1A8C 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 +/* B58C28 800E1A88 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017 +/* B58C2C 800E1A8C 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80 /* B58C30 800E1A90 008E1821 */ addu $v1, $a0, $t6 /* B58C34 800E1A94 90623438 */ lbu $v0, 0x3438($v1) /* B58C38 800E1A98 24060005 */ li $a2, 5 @@ -653,8 +653,8 @@ glabel func_800E1A78 glabel func_800E1AD8 /* B58C78 800E1AD8 240100FF */ li $at, 255 /* B58C7C 800E1ADC 10810008 */ beq $a0, $at, .L800E1B00 -/* B58C80 800E1AE0 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 -/* B58C84 800E1AE4 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 +/* B58C80 800E1AE0 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017 +/* B58C84 800E1AE4 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80 /* B58C88 800E1AE8 008E1021 */ addu $v0, $a0, $t6 /* B58C8C 800E1AEC 904F3438 */ lbu $t7, 0x3438($v0) /* B58C90 800E1AF0 24010005 */ li $at, 5 @@ -697,8 +697,8 @@ glabel func_800E1B08 glabel func_800E1B68 /* B58D08 800E1B68 27BDFFC8 */ addiu $sp, $sp, -0x38 /* B58D0C 800E1B6C AFB30020 */ sw $s3, 0x20($sp) -/* B58D10 800E1B70 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 -/* B58D14 800E1B74 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 +/* B58D10 800E1B70 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017 +/* B58D14 800E1B74 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80 /* B58D18 800E1B78 966E2840 */ lhu $t6, 0x2840($s3) /* B58D1C 800E1B7C AFBF0024 */ sw $ra, 0x24($sp) /* B58D20 800E1B80 AFB2001C */ sw $s2, 0x1c($sp) @@ -846,7 +846,7 @@ glabel func_800E1D64 /* B58F10 800E1D70 00808025 */ move $s0, $a0 /* B58F14 800E1D74 1020001D */ beqz $at, .L800E1DEC /* B58F18 800E1D78 AFBF001C */ sw $ra, 0x1c($sp) -/* B58F1C 800E1D7C 0C039D26 */ jal func_800E7498 +/* B58F1C 800E1D7C 0C039D26 */ jal Audio_GetInstrumentInner /* B58F20 800E1D80 00000000 */ nop /* B58F24 800E1D84 14400003 */ bnez $v0, .L800E1D94 /* B58F28 800E1D88 00401825 */ move $v1, $v0 @@ -880,7 +880,7 @@ glabel func_800E1D64 /* B58F8C 800E1DEC 2401007F */ li $at, 127 /* B58F90 800E1DF0 14A1000B */ bne $a1, $at, .L800E1E20 /* B58F94 800E1DF4 02002025 */ move $a0, $s0 -/* B58F98 800E1DF8 0C039D5B */ jal func_800E756C +/* B58F98 800E1DF8 0C039D5B */ jal Audio_GetDrum /* B58F9C 800E1DFC 00C02825 */ move $a1, $a2 /* B58FA0 800E1E00 14400003 */ bnez $v0, .L800E1E10 /* B58FA4 800E1E04 00401825 */ move $v1, $v0 @@ -974,8 +974,8 @@ glabel func_800E1EF4 /* B590D4 800E1F34 00000000 */ nop glabel func_800E1F38 -/* B590D8 800E1F38 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 -/* B590DC 800E1F3C 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 +/* B590D8 800E1F38 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017 +/* B590DC 800E1F3C 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80 /* B590E0 800E1F40 8CC2283C */ lw $v0, 0x283c($a2) /* B590E4 800E1F44 00047040 */ sll $t6, $a0, 1 /* B590E8 800E1F48 004E7821 */ addu $t7, $v0, $t6 @@ -997,8 +997,8 @@ glabel func_800E1F38 glabel func_800E1F7C /* B5911C 800E1F7C 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B59120 800E1F80 AFB30020 */ sw $s3, 0x20($sp) -/* B59124 800E1F84 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 -/* B59128 800E1F88 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 +/* B59124 800E1F84 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017 +/* B59128 800E1F88 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80 /* B5912C 800E1F8C 8E62283C */ lw $v0, 0x283c($s3) /* B59130 800E1F90 00047040 */ sll $t6, $a0, 1 /* B59134 800E1F94 AFBF0024 */ sw $ra, 0x24($sp) @@ -1093,8 +1093,8 @@ glabel func_800E202C /* B59270 800E20D0 00000000 */ nop glabel func_800E20D4 -/* B59274 800E20D4 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B59278 800E20D8 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B59274 800E20D4 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B59278 800E20D8 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B5927C 800E20DC 8C4E2984 */ lw $t6, 0x2984($v0) /* B59280 800E20E0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B59284 800E20E4 AFBF0014 */ sw $ra, 0x14($sp) @@ -1117,8 +1117,8 @@ glabel func_800E20D4 /* B592C0 800E2120 00000000 */ nop glabel func_800E2124 -/* B592C4 800E2124 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B592C8 800E2128 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B592C4 800E2124 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B592C8 800E2128 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B592CC 800E212C 8C4E2984 */ lw $t6, 0x2984($v0) /* B592D0 800E2130 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B592D4 800E2134 AFBF0014 */ sw $ra, 0x14($sp) @@ -1145,8 +1145,8 @@ glabel func_800E2124 glabel func_800E217C /* B5931C 800E217C 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B59320 800E2180 AFB30024 */ sw $s3, 0x24($sp) -/* B59324 800E2184 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 -/* B59328 800E2188 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 +/* B59324 800E2184 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017 +/* B59328 800E2188 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80 /* B5932C 800E218C 966F2840 */ lhu $t7, 0x2840($s3) /* B59330 800E2190 AFBF002C */ sw $ra, 0x2c($sp) /* B59334 800E2194 AFB40028 */ sw $s4, 0x28($sp) @@ -1352,8 +1352,8 @@ glabel func_800E2454 /* B59600 800E2460 8FA50048 */ lw $a1, 0x48($sp) /* B59604 800E2464 0C0389DA */ jal func_800E2768 /* B59608 800E2468 24040001 */ li $a0, 1 -/* B5960C 800E246C 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 -/* B59610 800E2470 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 +/* B5960C 800E246C 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017 +/* B59610 800E2470 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80 /* B59614 800E2474 00A27021 */ addu $t6, $a1, $v0 /* B59618 800E2478 91CF3468 */ lbu $t7, 0x3468($t6) /* B5961C 800E247C 24010001 */ li $at, 1 @@ -1895,8 +1895,8 @@ glabel func_800E2BCC /* B59D7C 800E2BDC AFA7000C */ sw $a3, 0xc($sp) glabel func_800E2BE0 -/* B59D80 800E2BE0 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B59D84 800E2BE4 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B59D80 800E2BE0 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B59D84 800E2BE4 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B59D88 800E2BE8 8C4E2984 */ lw $t6, 0x2984($v0) /* B59D8C 800E2BEC 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B59D90 800E2BF0 AFB00018 */ sw $s0, 0x18($sp) @@ -2212,8 +2212,8 @@ glabel func_800E3028 /* B5A1D0 800E3030 AC2404D4 */ sw $a0, %lo(D_801304D4)($at) glabel func_800E3034 -/* B5A1D4 800E3034 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 -/* B5A1D8 800E3038 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 +/* B5A1D4 800E3034 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017 +/* B5A1D8 800E3038 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80 /* B5A1DC 800E303C 8CB82834 */ lw $t8, 0x2834($a1) /* B5A1E0 800E3040 0004C900 */ sll $t9, $a0, 4 /* B5A1E4 800E3044 8CAF2844 */ lw $t7, 0x2844($a1) @@ -2240,8 +2240,8 @@ glabel func_800E3034 glabel func_800E3094 /* B5A234 800E3094 27BDFF90 */ addiu $sp, $sp, -0x70 /* B5A238 800E3098 AFB10018 */ sw $s1, 0x18($sp) -/* B5A23C 800E309C 3C118017 */ lui $s1, %hi(D_8016F180) # $s1, 0x8017 -/* B5A240 800E30A0 2631F180 */ addiu $s1, %lo(D_8016F180) # addiu $s1, $s1, -0xe80 +/* B5A23C 800E309C 3C118017 */ lui $s1, %hi(gAudioContext) # $s1, 0x8017 +/* B5A240 800E30A0 2631F180 */ addiu $s1, %lo(gAudioContext) # addiu $s1, $s1, -0xe80 /* B5A244 800E30A4 3C018017 */ lui $at, %hi(D_801755D0) # $at, 0x8017 /* B5A248 800E30A8 AC2055D0 */ sw $zero, %lo(D_801755D0)($at) /* B5A24C 800E30AC AFBF001C */ sw $ra, 0x1c($sp) @@ -2288,10 +2288,10 @@ glabel func_800E3094 .L800E3140: /* B5A2E0 800E3140 0C039A06 */ jal func_800E6818 /* 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 /* 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 .L800E315C: /* B5A2FC 800E315C 24420002 */ addiu $v0, $v0, 2 @@ -2378,8 +2378,8 @@ glabel func_800E3094 .L800E328C: /* B5A42C 800E328C 0C03797C */ jal func_800DE5F0 /* B5A430 800E3290 8C84A6C8 */ lw $a0, %lo(D_8014A6C8)($a0) -/* B5A434 800E3294 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 -/* B5A438 800E3298 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 +/* B5A434 800E3294 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017 +/* B5A438 800E3298 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80 .L800E329C: /* B5A43C 800E329C 3C048017 */ lui $a0, %hi(D_80171B30) # $a0, 0x8017 /* 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 glabel func_800E3400 -/* B5A5A0 800E3400 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B5A5A4 800E3404 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B5A5A0 800E3400 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B5A5A4 800E3404 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B5A5A8 800E3408 AC401D64 */ sw $zero, 0x1d64($v0) /* B5A5AC 800E340C 03E00008 */ jr $ra /* B5A5B0 800E3410 AC401DC8 */ sw $zero, 0x1dc8($v0) @@ -2496,12 +2496,12 @@ glabel func_800E3414 /* B5A5E0 800E3440 2402FFFF */ li $v0, -1 .L800E3444: /* 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 /* B5A5F0 800E3450 000E7900 */ sll $t7, $t6, 4 /* B5A5F4 800E3454 000FC782 */ srl $t8, $t7, 0x1e /* 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) /* B5A604 800E3464 10000059 */ b .L800E35CC /* B5A608 800E3468 00001025 */ move $v0, $zero @@ -2545,8 +2545,8 @@ glabel func_800E3414 /* B5A698 800E34F8 00412024 */ and $a0, $v0, $at /* B5A69C 800E34FC 8FA30028 */ lw $v1, 0x28($sp) /* B5A6A0 800E3500 8FA8002C */ lw $t0, 0x2c($sp) -/* B5A6A4 800E3504 3C098017 */ lui $t1, %hi(D_8016F180) # $t1, 0x8017 -/* B5A6A8 800E3508 2529F180 */ addiu $t1, %lo(D_8016F180) # addiu $t1, $t1, -0xe80 +/* B5A6A4 800E3504 3C098017 */ lui $t1, %hi(gAudioContext) # $t1, 0x8017 +/* B5A6A8 800E3508 2529F180 */ addiu $t1, %lo(gAudioContext) # addiu $t1, $t1, -0xe80 /* B5A6AC 800E350C 14400010 */ bnez $v0, .L800E3550 /* B5A6B0 800E3510 AC62000C */ sw $v0, 0xc($v1) /* B5A6B4 800E3514 8D020000 */ lw $v0, ($t0) @@ -2612,7 +2612,7 @@ glabel func_800E35E0 /* B5A788 800E35E8 AFBF0014 */ sw $ra, 0x14($sp) /* B5A78C 800E35EC 10200009 */ beqz $at, .L800E3614 /* B5A790 800E35F0 00A03025 */ move $a2, $a1 -/* B5A794 800E35F4 0C039D26 */ jal func_800E7498 +/* B5A794 800E35F4 0C039D26 */ jal Audio_GetInstrumentInner /* B5A798 800E35F8 00000000 */ nop /* B5A79C 800E35FC 14400003 */ bnez $v0, .L800E360C /* B5A7A0 800E3600 00000000 */ nop @@ -2625,7 +2625,7 @@ glabel func_800E35E0 /* B5A7B4 800E3614 28C10100 */ slti $at, $a2, 0x100 /* B5A7B8 800E3618 10200009 */ beqz $at, .L800E3640 /* B5A7BC 800E361C 00000000 */ nop -/* B5A7C0 800E3620 0C039D5B */ jal func_800E756C +/* B5A7C0 800E3620 0C039D5B */ jal Audio_GetDrum /* B5A7C4 800E3624 24C5FF80 */ addiu $a1, $a2, -0x80 /* B5A7C8 800E3628 14400003 */ bnez $v0, .L800E3638 /* B5A7CC 800E362C 00000000 */ nop @@ -2635,7 +2635,7 @@ glabel func_800E35E0 /* B5A7D8 800E3638 10000008 */ b .L800E365C /* B5A7DC 800E363C 8C430004 */ lw $v1, 4($v0) .L800E3640: -/* B5A7E0 800E3640 0C039D94 */ jal func_800E7650 +/* B5A7E0 800E3640 0C039D94 */ jal Audio_GetUnkInstrument /* B5A7E4 800E3644 24C5FF00 */ addiu $a1, $a2, -0x100 /* B5A7E8 800E3648 54400004 */ bnezl $v0, .L800E365C /* B5A7EC 800E364C 8C430000 */ lw $v1, ($v0) @@ -2695,14 +2695,14 @@ glabel func_800E36EC /* B5A89C 800E36FC AFB50028 */ sw $s5, 0x28($sp) /* B5A8A0 800E3700 AFB40024 */ sw $s4, 0x24($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 /* B5A8B0 800E3710 0080B025 */ move $s6, $a0 /* B5A8B4 800E3714 AFBF0034 */ sw $ra, 0x34($sp) /* B5A8B8 800E3718 AFB10018 */ sw $s1, 0x18($sp) /* B5A8BC 800E371C AFB00014 */ sw $s0, 0x14($sp) /* 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 /* B5A8CC 800E372C 24140002 */ li $s4, 2 /* B5A8D0 800E3730 24150003 */ li $s5, 3 @@ -2840,8 +2840,8 @@ glabel func_800E38F8 /* B5AAA8 800E3908 AFA7000C */ sw $a3, 0xc($sp) glabel func_800E390C -/* B5AAAC 800E390C 3C088017 */ lui $t0, %hi(D_8016F180) # $t0, 0x8017 -/* B5AAB0 800E3910 2508F180 */ addiu $t0, %lo(D_8016F180) # addiu $t0, $t0, -0xe80 +/* B5AAAC 800E390C 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017 +/* B5AAB0 800E3910 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80 /* B5AAB4 800E3914 950E2840 */ lhu $t6, 0x2840($t0) /* B5AAB8 800E3918 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B5AABC 800E391C AFBF0014 */ sw $ra, 0x14($sp) @@ -2860,8 +2860,8 @@ glabel func_800E390C /* B5AAEC 800E394C 00002025 */ move $a0, $zero /* B5AAF0 800E3950 0C0389FE */ jal func_800E27F8 /* B5AAF4 800E3954 AFA20018 */ sw $v0, 0x18($sp) -/* B5AAF8 800E3958 3C088017 */ lui $t0, %hi(D_8016F180) # $t0, 0x8017 -/* B5AAFC 800E395C 2508F180 */ addiu $t0, %lo(D_8016F180) # addiu $t0, $t0, -0xe80 +/* B5AAF8 800E3958 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017 +/* B5AAFC 800E395C 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80 /* B5AB00 800E3960 8D181D4C */ lw $t8, 0x1d4c($t0) /* B5AB04 800E3964 8FA70018 */ lw $a3, 0x18($sp) /* B5AB08 800E3968 24010003 */ li $at, 3 @@ -2912,10 +2912,10 @@ glabel func_800E390C /* B5ABB0 800E3A10 00000000 */ nop 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 /* 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: /* B5ABC4 800E3A24 24630160 */ addiu $v1, $v1, 0x160 /* B5ABC8 800E3A28 A0601668 */ sb $zero, 0x1668($v1) @@ -2965,12 +2965,12 @@ glabel func_800E3A44 glabel func_800E3AC8 /* 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 /* B5AC74 800E3AD4 AFBF0014 */ sw $ra, 0x14($sp) /* B5AC78 800E3AD8 AFA40020 */ sw $a0, 0x20($sp) /* 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) .L800E3AE8: /* B5AC88 800E3AE8 55C00004 */ bnezl $t6, .L800E3AFC @@ -3049,8 +3049,8 @@ glabel func_800E3AC8 /* B5AD88 800E3BE8 00000000 */ nop glabel func_800E3BEC -/* B5AD8C 800E3BEC 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B5AD90 800E3BF0 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B5AD8C 800E3BEC 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B5AD90 800E3BF0 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B5AD94 800E3BF4 27BDFFC8 */ addiu $sp, $sp, -0x38 /* B5AD98 800E3BF8 8C6E2984 */ lw $t6, 0x2984($v1) /* B5AD9C 800E3BFC AFB30020 */ sw $s3, 0x20($sp) @@ -3085,10 +3085,10 @@ glabel func_800E3BEC /* B5AE08 800E3C68 27A50034 */ addiu $a1, $sp, 0x34 /* B5AE0C 800E3C6C 0C000CA0 */ jal osRecvMesg /* 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 /* 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) /* B5AE28 800E3C88 10000003 */ b .L800E3C98 /* B5AE2C 800E3C8C 00002025 */ move $a0, $zero @@ -3101,10 +3101,10 @@ glabel func_800E3BEC /* B5AE40 800E3CA0 0C038F44 */ jal func_800E3D10 /* B5AE44 800E3CA4 02602825 */ move $a1, $s3 .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 /* 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 /* B5AE5C 800E3CBC 82181770 */ lb $t8, 0x1770($s0) .L800E3CC0: @@ -3446,8 +3446,8 @@ glabel func_800E4058 /* B5B300 800E4160 00026900 */ sll $t5, $v0, 4 /* B5B304 800E4164 000DC782 */ srl $t8, $t5, 0x1e /* B5B308 800E4168 13000009 */ beqz $t8, .L800E4190 -/* B5B30C 800E416C 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B5B310 800E4170 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B5B30C 800E416C 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B5B310 800E4170 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B5B314 800E4174 8C4E1768 */ lw $t6, 0x1768($v0) /* B5B318 800E4178 000E7880 */ sll $t7, $t6, 2 /* B5B31C 800E417C 004FC821 */ addu $t9, $v0, $t7 @@ -3462,8 +3462,8 @@ glabel func_800E4058 glabel func_800E4198 /* B5B338 800E4198 27BDFF98 */ addiu $sp, $sp, -0x68 /* B5B33C 800E419C AFB30030 */ sw $s3, 0x30($sp) -/* B5B340 800E41A0 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 -/* B5B344 800E41A4 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 +/* B5B340 800E41A0 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017 +/* B5B344 800E41A4 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80 /* B5B348 800E41A8 8E6E176C */ lw $t6, 0x176c($s3) /* B5B34C 800E41AC AFB50038 */ sw $s5, 0x38($sp) /* B5B350 800E41B0 AFB2002C */ sw $s2, 0x2c($sp) @@ -3491,8 +3491,8 @@ glabel func_800E4198 /* B5B3A0 800E4200 00002825 */ move $a1, $zero /* B5B3A4 800E4204 0000A025 */ move $s4, $zero /* B5B3A8 800E4208 18800011 */ blez $a0, .L800E4250 -/* B5B3AC 800E420C 3C0F8017 */ lui $t7, %hi(D_8016F180) -/* B5B3B0 800E4210 25E2F180 */ addiu $v0, $t7, %lo(D_8016F180) +/* B5B3AC 800E420C 3C0F8017 */ lui $t7, %hi(gAudioContext) +/* B5B3B0 800E4210 25E2F180 */ addiu $v0, $t7, %lo(gAudioContext) /* B5B3B4 800E4214 0004C080 */ sll $t8, $a0, 2 /* B5B3B8 800E4218 03023021 */ addu $a2, $t8, $v0 /* B5B3BC 800E421C 2403FFF0 */ li $v1, -16 @@ -3737,8 +3737,8 @@ glabel func_800E4198 /* B5B72C 800E458C 27BD0068 */ addiu $sp, $sp, 0x68 glabel func_800E4590 -/* B5B730 800E4590 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5B734 800E4594 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 +/* B5B730 800E4590 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 +/* B5B734 800E4594 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 /* B5B738 800E4598 8CEE176C */ lw $t6, 0x176c($a3) /* B5B73C 800E459C 27BDFFA8 */ addiu $sp, $sp, -0x58 /* B5B740 800E45A0 AFBF002C */ sw $ra, 0x2c($sp) @@ -3751,8 +3751,8 @@ glabel func_800E4590 /* B5B75C 800E45BC 27A5004C */ addiu $a1, $sp, 0x4c /* B5B760 800E45C0 0C000CA0 */ jal osRecvMesg /* B5B764 800E45C4 00003025 */ move $a2, $zero -/* B5B768 800E45C8 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5B76C 800E45CC 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 +/* B5B768 800E45C8 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 +/* B5B76C 800E45CC 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 /* B5B770 800E45D0 ACE0176C */ sw $zero, 0x176c($a3) /* B5B774 800E45D4 10000056 */ b .L800E4730 /* 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 /* B5B784 800E45E4 0C000CA0 */ jal osRecvMesg /* 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 /* 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 /* B5B7A0 800E4600 00001025 */ move $v0, $zero .L800E4604: @@ -3903,7 +3903,7 @@ glabel func_800E478C /* B5B980 800E47E0 00009025 */ move $s2, $zero /* B5B984 800E47E4 02802025 */ move $a0, $s4 .L800E47E8: -/* B5B988 800E47E8 0C039D5B */ jal func_800E756C +/* B5B988 800E47E8 0C039D5B */ jal Audio_GetDrum /* B5B98C 800E47EC 02402825 */ move $a1, $s2 /* B5B990 800E47F0 10400005 */ beqz $v0, .L800E4808 /* B5B994 800E47F4 02202825 */ move $a1, $s1 @@ -3921,7 +3921,7 @@ glabel func_800E478C /* B5B9BC 800E481C 2415007F */ li $s5, 127 /* B5B9C0 800E4820 02802025 */ move $a0, $s4 .L800E4824: -/* B5B9C4 800E4824 0C039D26 */ jal func_800E7498 +/* B5B9C4 800E4824 0C039D26 */ jal Audio_GetInstrumentInner /* B5B9C8 800E4828 02402825 */ move $a1, $s2 /* B5B9CC 800E482C 10400016 */ beqz $v0, .L800E4888 /* B5B9D0 800E4830 00408025 */ move $s0, $v0 @@ -3977,8 +3977,8 @@ glabel func_800E48C0 /* B5BA80 800E48E0 0003C900 */ sll $t9, $v1, 4 /* B5BA84 800E48E4 00194782 */ srl $t0, $t9, 0x1e /* B5BA88 800E48E8 11000009 */ beqz $t0, .L800E4910 -/* B5BA8C 800E48EC 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B5BA90 800E48F0 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B5BA8C 800E48EC 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B5BA90 800E48F0 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B5BA94 800E48F4 8C691768 */ lw $t1, 0x1768($v1) /* B5BA98 800E48F8 00095080 */ sll $t2, $t1, 2 /* B5BA9C 800E48FC 006A5821 */ addu $t3, $v1, $t2 @@ -3993,8 +3993,8 @@ glabel func_800E48C0 glabel func_800E4918 /* B5BAB8 800E4918 27BDFF88 */ addiu $sp, $sp, -0x78 /* B5BABC 800E491C AFB40034 */ sw $s4, 0x34($sp) -/* B5BAC0 800E4920 3C148017 */ lui $s4, %hi(D_8016F180) # $s4, 0x8017 -/* B5BAC4 800E4924 2694F180 */ addiu $s4, %lo(D_8016F180) # addiu $s4, $s4, -0xe80 +/* B5BAC0 800E4920 3C148017 */ lui $s4, %hi(gAudioContext) # $s4, 0x8017 +/* B5BAC4 800E4924 2694F180 */ addiu $s4, %lo(gAudioContext) # addiu $s4, $s4, -0xe80 /* B5BAC8 800E4928 8E8E176C */ lw $t6, 0x176c($s4) /* B5BACC 800E492C AFB50038 */ sw $s5, 0x38($sp) /* B5BAD0 800E4930 AFB30030 */ sw $s3, 0x30($sp) @@ -4026,7 +4026,7 @@ glabel func_800E4918 /* B5BB34 800E4994 AFA30070 */ sw $v1, 0x70($sp) /* B5BB38 800E4998 02202025 */ move $a0, $s1 .L800E499C: -/* B5BB3C 800E499C 0C039D26 */ jal func_800E7498 +/* B5BB3C 800E499C 0C039D26 */ jal Audio_GetInstrumentInner /* B5BB40 800E49A0 02402825 */ move $a1, $s2 /* B5BB44 800E49A4 1040000E */ beqz $v0, .L800E49E0 /* B5BB48 800E49A8 00408025 */ move $s0, $v0 @@ -4056,7 +4056,7 @@ glabel func_800E4918 /* B5BB98 800E49F8 19E0000C */ blez $t7, .L800E4A2C /* B5BB9C 800E49FC 02202025 */ move $a0, $s1 .L800E4A00: -/* B5BBA0 800E4A00 0C039D5B */ jal func_800E756C +/* B5BBA0 800E4A00 0C039D5B */ jal Audio_GetDrum /* B5BBA4 800E4A04 02402825 */ move $a1, $s2 /* B5BBA8 800E4A08 50400004 */ beql $v0, $zero, .L800E4A1C /* B5BBAC 800E4A0C 8FB80074 */ lw $t8, 0x74($sp) @@ -4073,7 +4073,7 @@ glabel func_800E4918 /* B5BBD0 800E4A30 1B20000B */ blez $t9, .L800E4A60 /* B5BBD4 800E4A34 02202025 */ move $a0, $s1 .L800E4A38: -/* B5BBD8 800E4A38 0C039D94 */ jal func_800E7650 +/* B5BBD8 800E4A38 0C039D94 */ jal Audio_GetUnkInstrument /* B5BBDC 800E4A3C 02402825 */ move $a1, $s2 /* B5BBE0 800E4A40 10400003 */ beqz $v0, .L800E4A50 /* B5BBE4 800E4A44 00402025 */ move $a0, $v0 @@ -4092,8 +4092,8 @@ glabel func_800E4918 /* B5BC10 800E4A70 8FBF003C */ lw $ra, 0x3c($sp) /* B5BC14 800E4A74 18A00012 */ blez $a1, .L800E4AC0 /* B5BC18 800E4A78 8E88176C */ lw $t0, 0x176c($s4) -/* B5BC1C 800E4A7C 3C0B8017 */ lui $t3, %hi(D_8016F180) -/* B5BC20 800E4A80 2562F180 */ addiu $v0, $t3, %lo(D_8016F180) +/* B5BC1C 800E4A7C 3C0B8017 */ lui $t3, %hi(gAudioContext) +/* B5BC20 800E4A80 2562F180 */ addiu $v0, $t3, %lo(gAudioContext) /* B5BC24 800E4A84 00056080 */ sll $t4, $a1, 2 /* B5BC28 800E4A88 01823021 */ addu $a2, $t4, $v0 /* B5BC2C 800E4A8C 2404FFF0 */ li $a0, -16 @@ -4323,14 +4323,14 @@ glabel func_800E4D94 /* B5BF5C 800E4DBC AFB00018 */ sw $s0, 0x18($sp) /* B5BF60 800E4DC0 0C0389FE */ jal func_800E27F8 /* B5BF64 800E4DC4 24040002 */ li $a0, 2 -/* B5BF68 800E4DC8 3C158017 */ lui $s5, %hi(D_8016F180) # $s5, 0x8017 -/* B5BF6C 800E4DCC 26B5F180 */ addiu $s5, %lo(D_8016F180) # addiu $s5, $s5, -0xe80 +/* B5BF68 800E4DC8 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017 +/* B5BF6C 800E4DCC 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80 /* B5BF70 800E4DD0 8EA32D5C */ lw $v1, 0x2d5c($s5) /* B5BF74 800E4DD4 00409825 */ move $s3, $v0 /* B5BF78 800E4DD8 00008825 */ move $s1, $zero /* B5BF7C 800E4DDC 18600031 */ blez $v1, .L800E4EA4 -/* B5BF80 800E4DE0 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 -/* B5BF84 800E4DE4 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 +/* B5BF80 800E4DE0 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017 +/* B5BF84 800E4DE4 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80 /* B5BF88 800E4DE8 27BE004C */ addiu $fp, $sp, 0x4c /* B5BF8C 800E4DEC 24170014 */ li $s7, 20 /* B5BF90 800E4DF0 24160001 */ li $s6, 1 @@ -4491,8 +4491,8 @@ glabel func_800E4FE0 glabel func_800E5000 /* B5C1A0 800E5000 27BDFF90 */ addiu $sp, $sp, -0x70 /* B5C1A4 800E5004 AFB20020 */ sw $s2, 0x20($sp) -/* B5C1A8 800E5008 3C128017 */ lui $s2, %hi(D_8016F180) # $s2, 0x8017 -/* B5C1AC 800E500C 2652F180 */ addiu $s2, %lo(D_8016F180) # addiu $s2, $s2, -0xe80 +/* B5C1A8 800E5008 3C128017 */ lui $s2, %hi(gAudioContext) # $s2, 0x8017 +/* B5C1AC 800E500C 2652F180 */ addiu $s2, %lo(gAudioContext) # addiu $s2, $s2, -0xe80 /* B5C1B0 800E5010 8E4E289C */ lw $t6, 0x289c($s2) /* B5C1B4 800E5014 86432848 */ lh $v1, 0x2848($s2) /* B5C1B8 800E5018 AFBF0024 */ sw $ra, 0x24($sp) @@ -4928,8 +4928,8 @@ glabel L800E5624 /* B5C7D8 800E5638 8FBF001C */ lw $ra, 0x1c($sp) glabel L800E563C /* B5C7DC 800E563C 92020001 */ lbu $v0, 1($s0) -/* B5C7E0 800E5640 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5C7E4 800E5644 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 +/* B5C7E0 800E5640 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 +/* B5C7E4 800E5644 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 /* B5C7E8 800E5648 0002C080 */ sll $t8, $v0, 2 /* B5C7EC 800E564C 0302C023 */ subu $t8, $t8, $v0 /* B5C7F0 800E5650 0018C080 */ sll $t8, $t8, 2 @@ -4954,17 +4954,17 @@ glabel L800E563C /* B5C838 800E5698 8FBF001C */ lw $ra, 0x1c($sp) glabel L800E569C /* B5C83C 800E569C 8E090004 */ lw $t1, 4($s0) -/* B5C840 800E56A0 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5C844 800E56A4 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 +/* B5C840 800E56A0 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 +/* B5C844 800E56A4 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 glabel L00E5944 /* B5C848 800E56A8 100000A6 */ b .L800E5944 /* B5C84C 800E56AC A0E9289A */ sb $t1, 0x289a($a3) glabel L800E56B0 -/* B5C850 800E56B0 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5C854 800E56B4 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 +/* B5C850 800E56B0 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 +/* B5C854 800E56B4 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 /* B5C858 800E56B8 84EA285C */ lh $t2, 0x285c($a3) -/* B5C85C 800E56BC 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 -/* B5C860 800E56C0 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 +/* B5C85C 800E56BC 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017 +/* B5C860 800E56C0 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80 /* B5C864 800E56C4 1940009F */ blez $t2, .L800E5944 /* B5C868 800E56C8 00002825 */ move $a1, $zero /* B5C86C 800E56CC 920C3530 */ lbu $t4, 0x3530($s0) @@ -4984,9 +4984,9 @@ glabel L800E56B0 glabel L800E5700 /* B5C8A0 800E5700 8E080004 */ lw $t0, 4($s0) /* 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 -/* 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) /* B5C8B8 800E5718 00002825 */ move $a1, $zero /* B5C8BC 800E571C 00002025 */ move $a0, $zero @@ -5019,11 +5019,11 @@ glabel L800E5700 /* B5C920 800E5780 1420FFE9 */ bnez $at, .L800E5728 /* B5C924 800E5784 248400E0 */ addiu $a0, $a0, 0xe0 .L800E5788: -/* B5C928 800E5788 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5C92C 800E578C 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 +/* B5C928 800E5788 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 +/* B5C92C 800E578C 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 /* B5C930 800E5790 84EA285C */ lh $t2, 0x285c($a3) -/* B5C934 800E5794 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 -/* B5C938 800E5798 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 +/* B5C934 800E5794 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017 +/* B5C938 800E5798 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80 /* B5C93C 800E579C 19400069 */ blez $t2, .L800E5944 /* B5C940 800E57A0 00002825 */ move $a1, $zero /* B5C944 800E57A4 920B3530 */ lbu $t3, 0x3530($s0) @@ -5081,16 +5081,16 @@ glabel L800E5850 /* B5C9FC 800E585C 8FBF001C */ lw $ra, 0x1c($sp) glabel L800E5860 /* 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) -/* 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 /* B5CA14 800E5874 00E95021 */ addu $t2, $a3, $t1 /* B5CA18 800E5878 10000032 */ b .L800E5944 /* B5CA1C 800E587C A5595BDC */ sh $t9, 0x5bdc($t2) glabel L800E5880 -/* B5CA20 800E5880 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5CA24 800E5884 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 +/* B5CA20 800E5880 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 +/* B5CA24 800E5884 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 /* B5CA28 800E5888 240B0005 */ li $t3, 5 /* B5CA2C 800E588C A0EB3518 */ sb $t3, 0x3518($a3) /* B5CA30 800E5890 8E0C0004 */ lw $t4, 4($s0) @@ -5112,13 +5112,13 @@ glabel L800E58AC glabel L800E58C8 /* B5CA68 800E58C8 8E0E0004 */ lw $t6, 4($s0) /* 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 /* 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) -/* B5CA84 800E58E4 3C108017 */ lui $s0, %hi(D_8016F180) # $s0, 0x8017 -/* B5CA88 800E58E8 2610F180 */ addiu $s0, %lo(D_8016F180) # addiu $s0, $s0, -0xe80 +/* B5CA84 800E58E4 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017 +/* B5CA88 800E58E8 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80 /* B5CA8C 800E58EC 1840000F */ blez $v0, .L800E592C /* B5CA90 800E58F0 00002825 */ move $a1, $zero .L800E58F4: @@ -5165,8 +5165,8 @@ glabel func_800E5958 /* B5CB10 800E5970 01C47023 */ subu $t6, $t6, $a0 /* B5CB14 800E5974 46803220 */ cvt.s.w $f8, $f6 /* B5CB18 800E5978 000E7140 */ sll $t6, $t6, 5 -/* B5CB1C 800E597C 3C188017 */ lui $t8, %hi(D_8016F180) # $t8, 0x8017 -/* B5CB20 800E5980 2718F180 */ addiu $t8, %lo(D_8016F180) # addiu $t8, $t8, -0xe80 +/* B5CB1C 800E597C 3C188017 */ lui $t8, %hi(gAudioContext) # $t8, 0x8017 +/* B5CB20 800E5980 2718F180 */ addiu $t8, %lo(gAudioContext) # addiu $t8, $t8, -0xe80 /* B5CB24 800E5984 25CF3530 */ addiu $t7, $t6, 0x3530 /* B5CB28 800E5988 01F81021 */ addu $v0, $t7, $t8 /* B5CB2C 800E598C C444001C */ lwc1 $f4, 0x1c($v0) @@ -5184,8 +5184,8 @@ glabel func_800E59AC /* B5CB54 800E59B4 01C47023 */ subu $t6, $t6, $a0 /* B5CB58 800E59B8 000E7080 */ sll $t6, $t6, 2 /* B5CB5C 800E59BC 01C47023 */ subu $t6, $t6, $a0 -/* B5CB60 800E59C0 3C0F8017 */ lui $t7, %hi(D_8016F180) -/* B5CB64 800E59C4 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 +/* B5CB60 800E59C0 3C0F8017 */ lui $t7, %hi(gAudioContext) +/* B5CB64 800E59C4 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80 /* B5CB68 800E59C8 000E7140 */ sll $t6, $t6, 5 /* B5CB6C 800E59CC 01CF1021 */ addu $v0, $t6, $t7 /* B5CB70 800E59D0 44800000 */ mtc1 $zero, $f0 @@ -5200,8 +5200,8 @@ glabel func_800E59AC /* B5CB90 800E59F0 00000000 */ nop glabel func_800E59F4 -/* B5CB94 800E59F4 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B5CB98 800E59F8 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B5CB94 800E59F4 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B5CB98 800E59F8 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B5CB9C 800E59FC 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B5CBA0 800E5A00 3C0E8017 */ lui $t6, %hi(D_80174D70) /* 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 /* B5CBDC 800E5A3C 0C001874 */ jal osCreateMesgQueue /* B5CBE0 800E5A40 24060001 */ li $a2, 1 -/* B5CBE4 800E5A44 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B5CBE8 800E5A48 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B5CBE4 800E5A44 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B5CBE8 800E5A48 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B5CBEC 800E5A4C 3C058017 */ lui $a1, %hi(D_80174DC0) # $a1, 0x8017 /* B5CBF0 800E5A50 24A54DC0 */ addiu $a1, %lo(D_80174DC0) # addiu $a1, $a1, 0x4dc0 /* B5CBF4 800E5A54 8C445BEC */ lw $a0, 0x5bec($v0) /* B5CBF8 800E5A58 0C001874 */ jal osCreateMesgQueue /* B5CBFC 800E5A5C 24060004 */ li $a2, 4 -/* B5CC00 800E5A60 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B5CC04 800E5A64 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B5CC00 800E5A60 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B5CC04 800E5A64 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B5CC08 800E5A68 3C058017 */ lui $a1, %hi(D_80174DBC) # $a1, 0x8017 /* B5CC0C 800E5A6C 24A54DBC */ addiu $a1, %lo(D_80174DBC) # addiu $a1, $a1, 0x4dbc /* B5CC10 800E5A70 8C445BE4 */ lw $a0, 0x5be4($v0) @@ -5240,8 +5240,8 @@ glabel func_800E59F4 /* B5CC28 800E5A88 00000000 */ nop glabel func_800E5A8C -/* B5CC2C 800E5A8C 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 -/* B5CC30 800E5A90 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 +/* B5CC2C 800E5A8C 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017 +/* B5CC30 800E5A90 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80 /* B5CC34 800E5A94 90CF5BD8 */ lbu $t7, 0x5bd8($a2) /* B5CC38 800E5A98 000FC0C0 */ sll $t8, $t7, 3 /* B5CC3C 800E5A9C 00D81021 */ addu $v0, $a2, $t8 @@ -5312,8 +5312,8 @@ glabel func_800E5B50 /* B5CD1C 800E5B7C 00000000 */ nop glabel func_800E5B80 -/* B5CD20 800E5B80 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B5CD24 800E5B84 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B5CD20 800E5B80 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B5CD24 800E5B84 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B5CD28 800E5B88 90625BD8 */ lbu $v0, 0x5bd8($v1) /* B5CD2C 800E5B8C 90675BD9 */ lbu $a3, 0x5bd9($v1) /* B5CD30 800E5B90 3C0E8013 */ lui $t6, %hi(D_801304E8) # $t6, 0x8013 @@ -5335,10 +5335,10 @@ glabel func_800E5B80 /* B5CD6C 800E5BCC 8C645BEC */ lw $a0, 0x5bec($v1) /* B5CD70 800E5BD0 0C000C18 */ jal osSendMesg /* 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 /* 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) /* B5CD8C 800E5BEC 00001025 */ move $v0, $zero /* B5CD90 800E5BF0 10000003 */ b .L800E5C00 @@ -5353,8 +5353,8 @@ glabel func_800E5B80 /* B5CDAC 800E5C0C 00000000 */ nop glabel func_800E5C10 -/* B5CDB0 800E5C10 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B5CDB4 800E5C14 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B5CDB0 800E5C10 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B5CDB4 800E5C14 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B5CDB8 800E5C18 904E5BD8 */ lbu $t6, 0x5bd8($v0) /* B5CDBC 800E5C1C A0405BDA */ sb $zero, 0x5bda($v0) /* B5CDC0 800E5C20 03E00008 */ jr $ra @@ -5373,14 +5373,14 @@ glabel func_800E5C28 /* B5CDEC 800E5C4C 00809825 */ move $s3, $a0 /* B5CDF0 800E5C50 304E00F0 */ andi $t6, $v0, 0xf0 /* 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 /* B5CE00 800E5C60 00000000 */ nop /* B5CE04 800E5C64 1000003A */ b .L800E5D50 /* B5CE08 800E5C68 8FBF002C */ lw $ra, 0x2c($sp) .L800E5C6C: /* 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) /* B5CE18 800E5C78 0004C080 */ sll $t8, $a0, 2 /* B5CE1C 800E5C7C 0304C023 */ subu $t8, $t8, $a0 @@ -5454,8 +5454,8 @@ glabel func_800E5C28 glabel func_800E5D6C /* B5CF0C 800E5D6C 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B5CF10 800E5D70 AFB30020 */ sw $s3, 0x20($sp) -/* B5CF14 800E5D74 3C138017 */ lui $s3, %hi(D_8016F180) # $s3, 0x8017 -/* B5CF18 800E5D78 2673F180 */ addiu $s3, %lo(D_8016F180) # addiu $s3, $s3, -0xe80 +/* B5CF14 800E5D74 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017 +/* B5CF18 800E5D78 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80 /* B5CF1C 800E5D7C 926E5BDA */ lbu $t6, 0x5bda($s3) /* B5CF20 800E5D80 AFBF0024 */ sw $ra, 0x24($sp) /* B5CF24 800E5D84 AFB2001C */ sw $s2, 0x1c($sp) @@ -5543,8 +5543,8 @@ glabel func_800E5E84 /* B5D040 800E5EA0 00000000 */ nop glabel func_800E5EA4 -/* B5D044 800E5EA4 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B5D048 800E5EA8 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B5D044 800E5EA4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B5D048 800E5EA8 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B5D04C 800E5EAC 8C6E2844 */ lw $t6, 0x2844($v1) /* B5D050 800E5EB0 00041080 */ sll $v0, $a0, 2 /* B5D054 800E5EB4 00441021 */ addu $v0, $v0, $a0 @@ -5589,9 +5589,9 @@ glabel func_800E5F34 /* B5D0D8 800E5F38 AFB1001C */ sw $s1, 0x1c($sp) /* B5D0DC 800E5F3C AFB20020 */ sw $s2, 0x20($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) -/* 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 /* B5D0F4 800E5F54 27B20028 */ addiu $s2, $sp, 0x28 /* B5D0F8 800E5F58 8E245BE4 */ lw $a0, 0x5be4($s1) @@ -5613,15 +5613,15 @@ glabel func_800E5F88 /* B5D12C 800E5F8C AFBF0014 */ sw $ra, 0x14($sp) /* B5D130 800E5F90 0C0397CD */ jal func_800E5F34 /* B5D134 800E5F94 AFA40028 */ sw $a0, 0x28($sp) -/* B5D138 800E5F98 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B5D13C 800E5F9C 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B5D138 800E5F98 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B5D13C 800E5F9C 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B5D140 800E5FA0 90623518 */ lbu $v0, 0x3518($v1) /* B5D144 800E5FA4 10400014 */ beqz $v0, .L800E5FF8 /* B5D148 800E5FA8 00000000 */ nop /* B5D14C 800E5FAC 0C039704 */ jal func_800E5C10 /* B5D150 800E5FB0 AFA20024 */ sw $v0, 0x24($sp) -/* B5D154 800E5FB4 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B5D158 800E5FB8 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B5D154 800E5FB4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B5D158 800E5FB8 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B5D15C 800E5FBC 8FA70028 */ lw $a3, 0x28($sp) /* B5D160 800E5FC0 906E3519 */ lbu $t6, 0x3519($v1) /* B5D164 800E5FC4 8FA20024 */ lw $v0, 0x24($sp) @@ -5655,9 +5655,9 @@ glabel func_800E5F88 glabel func_800E6024 /* 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) -/* 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 /* B5D1D8 800E6038 ADEE2984 */ sw $t6, 0x2984($t7) /* B5D1DC 800E603C 3C188013 */ lui $t8, %hi(D_801304D8) # $t8, 0x8013 @@ -5666,8 +5666,8 @@ glabel func_800E6024 /* B5D1E8 800E6048 8FBF0014 */ lw $ra, 0x14($sp) /* B5D1EC 800E604C 0C0397E2 */ jal func_800E5F88 /* B5D1F0 800E6050 00002025 */ move $a0, $zero -/* B5D1F4 800E6054 3C198017 */ lui $t9, %hi(D_8016F180) # $t9, 0x8017 -/* B5D1F8 800E6058 2739F180 */ addiu $t9, %lo(D_8016F180) # addiu $t9, $t9, -0xe80 +/* B5D1F4 800E6054 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017 +/* B5D1F8 800E6058 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80 /* B5D1FC 800E605C A3203518 */ sb $zero, 0x3518($t9) /* B5D200 800E6060 8FBF0014 */ lw $ra, 0x14($sp) .L800E6064: @@ -5680,8 +5680,8 @@ glabel func_800E6070 /* B5D214 800E6074 01C47023 */ subu $t6, $t6, $a0 /* B5D218 800E6078 000E7080 */ sll $t6, $t6, 2 /* B5D21C 800E607C 01C47023 */ subu $t6, $t6, $a0 -/* B5D220 800E6080 3C0F8017 */ lui $t7, %hi(D_8016F180) # $t7, 0x8017 -/* B5D224 800E6084 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 +/* B5D220 800E6080 3C0F8017 */ lui $t7, %hi(gAudioContext) # $t7, 0x8017 +/* B5D224 800E6084 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80 /* B5D228 800E6088 000E7140 */ sll $t6, $t6, 5 /* B5D22C 800E608C 01CF1821 */ addu $v1, $t6, $t7 /* B5D230 800E6090 8C783530 */ lw $t8, 0x3530($v1) @@ -6060,8 +6060,8 @@ glabel func_800E6590 /* B5D734 800E6594 01C47023 */ subu $t6, $t6, $a0 /* B5D738 800E6598 000E7080 */ sll $t6, $t6, 2 /* B5D73C 800E659C 01C47023 */ subu $t6, $t6, $a0 -/* B5D740 800E65A0 3C0F8017 */ lui $t7, %hi(D_8016F180) # $t7, 0x8017 -/* B5D744 800E65A4 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 +/* B5D740 800E65A0 3C0F8017 */ lui $t7, %hi(gAudioContext) # $t7, 0x8017 +/* B5D744 800E65A4 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80 /* B5D748 800E65A8 000E7140 */ sll $t6, $t6, 5 /* B5D74C 800E65AC 01CF1021 */ addu $v0, $t6, $t7 /* B5D750 800E65B0 8C583530 */ lw $t8, 0x3530($v0) @@ -6144,8 +6144,8 @@ glabel func_800E66A0 /* B5D85C 800E66BC 00000000 */ nop glabel func_800E66C0 -/* B5D860 800E66C0 3C0A8017 */ lui $t2, %hi(D_8016F180) # $t2, 0x8017 -/* B5D864 800E66C4 254AF180 */ addiu $t2, %lo(D_8016F180) # addiu $t2, $t2, -0xe80 +/* B5D860 800E66C0 3C0A8017 */ lui $t2, %hi(gAudioContext) # $t2, 0x8017 +/* B5D864 800E66C4 254AF180 */ addiu $t2, %lo(gAudioContext) # addiu $t2, $t2, -0xe80 /* B5D868 800E66C8 8D452894 */ lw $a1, 0x2894($t2) /* B5D86C 800E66CC 27BDFFF8 */ addiu $sp, $sp, -8 /* B5D870 800E66D0 AFB00004 */ sw $s0, 4($sp) @@ -6223,8 +6223,8 @@ glabel func_800E67C0 /* B5D964 800E67C4 AFBF0014 */ sw $ra, 0x14($sp) /* B5D968 800E67C8 0C001BA8 */ jal osGetCount /* B5D96C 800E67CC 00000000 */ nop -/* B5D970 800E67D0 3C048017 */ lui $a0, %hi(D_8016F180) # $a0, 0x8017 -/* B5D974 800E67D4 2484F180 */ addiu $a0, %lo(D_8016F180) # addiu $a0, $a0, -0xe80 +/* B5D970 800E67D0 3C048017 */ lui $a0, %hi(gAudioContext) # $a0, 0x8017 +/* B5D974 800E67D4 2484F180 */ addiu $a0, %lo(gAudioContext) # addiu $a0, $a0, -0xe80 /* B5D978 800E67D8 3C038013 */ lui $v1, %hi(D_801304F0) # $v1, 0x8013 /* B5D97C 800E67DC 8C6304F0 */ lw $v1, %lo(D_801304F0)($v1) /* B5D980 800E67E0 8C8F289C */ lw $t7, 0x289c($a0) diff --git a/asm/code_800E6940.s b/asm/code_800E6940.s deleted file mode 100644 index 93a1449d12..0000000000 --- a/asm/code_800E6940.s +++ /dev/null @@ -1,2241 +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 .text - -.align 4 - -glabel func_800E6940 -/* 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) -/* 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) -/* 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 func_800E6DB8 -/* 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(D_80171A1A) # $t3, 0x8017 -/* B5DBC0 800E6A20 31F80001 */ andi $t8, $t7, 1 -/* B5DBC4 800E6A24 03084825 */ or $t1, $t8, $t0 -/* B5DBC8 800E6A28 10400021 */ beqz $v0, .L800E6AB0 -/* B5DBCC 800E6A2C A0E90000 */ sb $t1, ($a3) -/* B5DBD0 800E6A30 816B1A1A */ lb $t3, %lo(D_80171A1A)($t3) -/* B5DBD4 800E6A34 93A30027 */ lbu $v1, 0x27($sp) -/* B5DBD8 800E6A38 24010001 */ li $at, 1 -/* B5DBDC 800E6A3C 1561001C */ bne $t3, $at, .L800E6AB0 -/* B5DBE0 800E6A40 00031843 */ sra $v1, $v1, 1 -/* B5DBE4 800E6A44 28610040 */ slti $at, $v1, 0x40 -/* B5DBE8 800E6A48 14200002 */ bnez $at, .L800E6A54 -/* B5DBEC 800E6A4C 3C0A8013 */ lui $t2, %hi(D_8012FB24) -/* B5DBF0 800E6A50 2403003F */ li $v1, 63 -.L800E6A54: -/* B5DBF4 800E6A54 00031040 */ sll $v0, $v1, 1 -/* B5DBF8 800E6A58 01425021 */ addu $t2, $t2, $v0 -/* B5DBFC 800E6A5C 954AFB24 */ lhu $t2, %lo(D_8012FB24)($t2) -/* B5DC00 800E6A60 00026023 */ negu $t4, $v0 -/* B5DC04 800E6A64 3C0D8013 */ lui $t5, %hi(D_8012FBA2) -/* 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(D_8012FBA2)($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(D_8012FC28) -/* B5DC2C 800E6A8C 00184080 */ sll $t0, $t8, 2 -/* B5DC30 800E6A90 00280821 */ addu $at, $at, $t0 -/* B5DC34 800E6A94 C42CFC28 */ lwc1 $f12, %lo(D_8012FC28)($at) -/* B5DC38 800E6A98 00184880 */ sll $t1, $t8, 2 -/* B5DC3C 800E6A9C 00095823 */ negu $t3, $t1 -/* B5DC40 800E6AA0 3C018013 */ lui $at, %hi(D_8012FE24) -/* B5DC44 800E6AA4 002B0821 */ addu $at, $at, $t3 -/* B5DC48 800E6AA8 1000009A */ b .L800E6D14 -/* B5DC4C 800E6AAC C42EFE24 */ lwc1 $f14, %lo(D_8012FE24)($at) -.L800E6AB0: -/* B5DC50 800E6AB0 3C038017 */ lui $v1, %hi(D_80171A1A) # $v1, 0x8017 -/* B5DC54 800E6AB4 10400071 */ beqz $v0, .L800E6C7C -/* B5DC58 800E6AB8 80631A1A */ lb $v1, %lo(D_80171A1A)($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(D_8012FE28) -/* 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(D_8012FE28)($at) -/* B5DC90 800E6AF0 000D7880 */ sll $t7, $t5, 2 -/* B5DC94 800E6AF4 000FC823 */ negu $t9, $t7 -/* B5DC98 800E6AF8 3C018013 */ lui $at, %hi(D_80130024) -/* B5DC9C 800E6AFC 00390821 */ addu $at, $at, $t9 -/* B5DCA0 800E6B00 C42E0024 */ lwc1 $f14, %lo(D_80130024)($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) -/* 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, .L800E6D18 -/* B5DD0C 800E6B6C 4600103C */ c.lt.s $f2, $f0 -/* B5DD10 800E6B70 10410009 */ beq $v0, $at, .L800E6B98 -/* B5DD14 800E6B74 8FAA0024 */ lw $t2, 0x24($sp) -/* B5DD18 800E6B78 24010002 */ li $at, 2 -/* B5DD1C 800E6B7C 10410017 */ beq $v0, $at, .L800E6BDC -/* B5DD20 800E6B80 8FA80024 */ lw $t0, 0x24($sp) -/* B5DD24 800E6B84 24010003 */ li $at, 3 -/* B5DD28 800E6B88 10410028 */ beq $v0, $at, .L800E6C2C -/* B5DD2C 800E6B8C 8FA80024 */ lw $t0, 0x24($sp) -/* B5DD30 800E6B90 10000061 */ b .L800E6D18 -/* B5DD34 800E6B94 4600103C */ c.lt.s $f2, $f0 -.L800E6B98: -/* 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 .L800E6D14 -/* B5DD78 800E6BD8 A0EF0000 */ sb $t7, ($a3) -.L800E6BDC: -/* 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 .L800E6D14 -/* B5DDC8 800E6C28 A0EF0000 */ sb $t7, ($a3) -.L800E6C2C: -/* 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 .L800E6D14 -/* B5DE18 800E6C78 A0EF0000 */ sb $t7, ($a3) -.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 .L800E6D14 -/* B5DE48 800E6CA8 46007306 */ mov.s $f12, $f14 -.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(D_80130028) -/* 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(D_80130028)($at) -/* B5DEA0 800E6D00 0008C080 */ sll $t8, $t0, 2 -/* B5DEA4 800E6D04 00184823 */ negu $t1, $t8 -/* B5DEA8 800E6D08 3C018013 */ lui $at, %hi(D_80130224) -/* B5DEAC 800E6D0C 00290821 */ addu $at, $at, $t1 -/* B5DEB0 800E6D10 C42E0224 */ lwc1 $f14, %lo(D_80130224)($at) -.L800E6D14: -/* B5DEB4 800E6D14 4600103C */ c.lt.s $f2, $f0 -.L800E6D18: -/* 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 - -glabel func_800E6DB8 -/* B5DF58 800E6DB8 3C014000 */ li $at, 0x40000000 # 0.000000 -/* B5DF5C 800E6DBC 44856000 */ mtc1 $a1, $f12 -/* B5DF60 800E6DC0 44812000 */ mtc1 $at, $f4 -/* B5DF64 800E6DC4 3C018015 */ lui $at, %hi(D_801495C8) -/* B5DF68 800E6DC8 4604603C */ c.lt.s $f12, $f4 -/* B5DF6C 800E6DCC 00000000 */ nop -/* B5DF70 800E6DD0 4502000D */ bc1fl .L800E6E08 -/* B5DF74 800E6DD4 90990001 */ lbu $t9, 1($a0) -/* B5DF78 800E6DD8 C42295C8 */ lwc1 $f2, %lo(D_801495C8)($at) -/* B5DF7C 800E6DDC 908E0001 */ lbu $t6, 1($a0) -/* B5DF80 800E6DE0 460C103C */ c.lt.s $f2, $f12 -/* B5DF84 800E6DE4 31CFFFFD */ andi $t7, $t6, 0xfffd -/* B5DF88 800E6DE8 A08F0001 */ sb $t7, 1($a0) -/* B5DF8C 800E6DEC 45000003 */ bc1f .L800E6DFC -/* B5DF90 800E6DF0 00000000 */ nop -/* B5DF94 800E6DF4 10000014 */ b .L800E6E48 -/* B5DF98 800E6DF8 46001006 */ mov.s $f0, $f2 -.L800E6DFC: -/* B5DF9C 800E6DFC 10000012 */ b .L800E6E48 -/* B5DFA0 800E6E00 46006006 */ mov.s $f0, $f12 -/* B5DFA4 800E6E04 90990001 */ lbu $t9, 1($a0) -.L800E6E08: -/* B5DFA8 800E6E08 3C018015 */ lui $at, %hi(D_801495CC) -/* B5DFAC 800E6E0C 37280002 */ ori $t0, $t9, 2 -/* B5DFB0 800E6E10 A0880001 */ sb $t0, 1($a0) -/* B5DFB4 800E6E14 C42695CC */ lwc1 $f6, %lo(D_801495CC)($at) -/* B5DFB8 800E6E18 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* B5DFBC 800E6E1C 460C303C */ c.lt.s $f6, $f12 -/* B5DFC0 800E6E20 00000000 */ nop -/* B5DFC4 800E6E24 45020005 */ bc1fl .L800E6E3C -/* B5DFC8 800E6E28 44814000 */ mtc1 $at, $f8 -/* B5DFCC 800E6E2C 3C018015 */ lui $at, %hi(D_801495D0) -/* B5DFD0 800E6E30 10000005 */ b .L800E6E48 -/* B5DFD4 800E6E34 C42095D0 */ lwc1 $f0, %lo(D_801495D0)($at) -/* B5DFD8 800E6E38 44814000 */ mtc1 $at, $f8 -.L800E6E3C: -/* B5DFDC 800E6E3C 00000000 */ nop -/* B5DFE0 800E6E40 46086002 */ mul.s $f0, $f12, $f8 -/* B5DFE4 800E6E44 00000000 */ nop -.L800E6E48: -/* B5DFE8 800E6E48 3C014700 */ li $at, 0x47000000 # 0.000000 -/* B5DFEC 800E6E4C 44815000 */ mtc1 $at, $f10 -/* B5DFF0 800E6E50 00000000 */ nop -/* B5DFF4 800E6E54 460A0402 */ mul.s $f16, $f0, $f10 -/* B5DFF8 800E6E58 4600848D */ trunc.w.s $f18, $f16 -/* B5DFFC 800E6E5C 440A9000 */ mfc1 $t2, $f18 -/* B5E000 800E6E60 03E00008 */ jr $ra -/* B5E004 800E6E64 A48A000C */ sh $t2, 0xc($a0) - -glabel func_800E6E68 -/* B5E008 800E6E68 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B5E00C 800E6E6C AFBF0014 */ sw $ra, 0x14($sp) -/* B5E010 800E6E70 8C820044 */ lw $v0, 0x44($a0) -/* B5E014 800E6E74 00803825 */ move $a3, $a0 -/* B5E018 800E6E78 24E60036 */ addiu $a2, $a3, 0x36 -/* B5E01C 800E6E7C 904E0018 */ lbu $t6, 0x18($v0) -/* B5E020 800E6E80 55C0000A */ bnezl $t6, .L800E6EAC -/* B5E024 800E6E84 8C45001C */ lw $a1, 0x1c($v0) -/* B5E028 800E6E88 8C4F0050 */ lw $t7, 0x50($v0) -/* B5E02C 800E6E8C 24840070 */ addiu $a0, $a0, 0x70 -/* B5E030 800E6E90 24E60036 */ addiu $a2, $a3, 0x36 -/* B5E034 800E6E94 8DE50080 */ lw $a1, 0x80($t7) -/* B5E038 800E6E98 0C03A3F9 */ jal func_800E8FE4 -/* B5E03C 800E6E9C AFA70018 */ sw $a3, 0x18($sp) -/* B5E040 800E6EA0 10000006 */ b .L800E6EBC -/* B5E044 800E6EA4 8FA70018 */ lw $a3, 0x18($sp) -/* B5E048 800E6EA8 8C45001C */ lw $a1, 0x1c($v0) -.L800E6EAC: -/* B5E04C 800E6EAC AFA70018 */ sw $a3, 0x18($sp) -/* B5E050 800E6EB0 0C03A3F9 */ jal func_800E8FE4 -/* B5E054 800E6EB4 24E40070 */ addiu $a0, $a3, 0x70 -/* B5E058 800E6EB8 8FA70018 */ lw $a3, 0x18($sp) -.L800E6EBC: -/* B5E05C 800E6EBC 90F80070 */ lbu $t8, 0x70($a3) -/* B5E060 800E6EC0 3C098013 */ lui $t1, %hi(D_8012FB04) # $t1, 0x8013 -/* B5E064 800E6EC4 A0E00034 */ sb $zero, 0x34($a3) -/* B5E068 800E6EC8 3319FFF0 */ andi $t9, $t8, 0xfff0 -/* B5E06C 800E6ECC 37280001 */ ori $t0, $t9, 1 -/* B5E070 800E6ED0 A0E80070 */ sb $t0, 0x70($a3) -/* B5E074 800E6ED4 2529FB04 */ addiu $t1, %lo(D_8012FB04) # addiu $t1, $t1, -0x4fc -/* B5E078 800E6ED8 8D2B0000 */ lw $t3, ($t1) -/* B5E07C 800E6EDC ACEB00C0 */ sw $t3, 0xc0($a3) -/* B5E080 800E6EE0 8D2A0004 */ lw $t2, 4($t1) -/* B5E084 800E6EE4 ACEA00C4 */ sw $t2, 0xc4($a3) -/* B5E088 800E6EE8 8D2B0008 */ lw $t3, 8($t1) -/* B5E08C 800E6EEC ACEB00C8 */ sw $t3, 0xc8($a3) -/* B5E090 800E6EF0 8D2A000C */ lw $t2, 0xc($t1) -/* B5E094 800E6EF4 ACEA00CC */ sw $t2, 0xcc($a3) -/* B5E098 800E6EF8 8D2B0010 */ lw $t3, 0x10($t1) -/* B5E09C 800E6EFC ACEB00D0 */ sw $t3, 0xd0($a3) -/* B5E0A0 800E6F00 8D2A0014 */ lw $t2, 0x14($t1) -/* B5E0A4 800E6F04 ACEA00D4 */ sw $t2, 0xd4($a3) -/* B5E0A8 800E6F08 8D2B0018 */ lw $t3, 0x18($t1) -/* B5E0AC 800E6F0C ACEB00D8 */ sw $t3, 0xd8($a3) -/* B5E0B0 800E6F10 8D2A001C */ lw $t2, 0x1c($t1) -/* B5E0B4 800E6F14 ACEA00DC */ sw $t2, 0xdc($a3) -/* B5E0B8 800E6F18 8FBF0014 */ lw $ra, 0x14($sp) -/* B5E0BC 800E6F1C 27BD0018 */ addiu $sp, $sp, 0x18 -/* B5E0C0 800E6F20 03E00008 */ jr $ra -/* B5E0C4 800E6F24 00000000 */ nop - -glabel func_800E6F28 -/* B5E0C8 800E6F28 8C8E00C0 */ lw $t6, 0xc0($a0) -/* B5E0CC 800E6F2C 24010001 */ li $at, 1 -/* B5E0D0 800E6F30 44802000 */ mtc1 $zero, $f4 -/* B5E0D4 800E6F34 000E7840 */ sll $t7, $t6, 1 -/* B5E0D8 800E6F38 000FC7C2 */ srl $t8, $t7, 0x1f -/* B5E0DC 800E6F3C 17010004 */ bne $t8, $at, .L800E6F50 -/* B5E0E0 800E6F40 2402FFFF */ li $v0, -1 -/* B5E0E4 800E6F44 909900C0 */ lbu $t9, 0xc0($a0) -/* B5E0E8 800E6F48 3328FFBF */ andi $t0, $t9, 0xffbf -/* B5E0EC 800E6F4C A08800C0 */ sb $t0, 0xc0($a0) -.L800E6F50: -/* B5E0F0 800E6F50 908900C0 */ lbu $t1, 0xc0($a0) -/* B5E0F4 800E6F54 908D0070 */ lbu $t5, 0x70($a0) -/* B5E0F8 800E6F58 A0800030 */ sb $zero, 0x30($a0) -/* B5E0FC 800E6F5C 312AFF7F */ andi $t2, $t1, 0xff7f -/* B5E100 800E6F60 A08A00C0 */ sb $t2, 0xc0($a0) -/* B5E104 800E6F64 908B00C0 */ lbu $t3, 0xc0($a0) -/* B5E108 800E6F68 31AEFFF0 */ andi $t6, $t5, 0xfff0 -/* B5E10C 800E6F6C A0800034 */ sb $zero, 0x34($a0) -/* B5E110 800E6F70 316CFFDF */ andi $t4, $t3, 0xffdf -/* B5E114 800E6F74 A08C00C0 */ sb $t4, 0xc0($a0) -/* B5E118 800E6F78 AC820044 */ sw $v0, 0x44($a0) -/* B5E11C 800E6F7C AC820040 */ sw $v0, 0x40($a0) -/* B5E120 800E6F80 A08E0070 */ sb $t6, 0x70($a0) -/* B5E124 800E6F84 03E00008 */ jr $ra -/* B5E128 800E6F88 E4840080 */ swc1 $f4, 0x80($a0) - -glabel func_800E6F8C -/* B5E12C 800E6F8C 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* B5E130 800E6F90 AFB40028 */ sw $s4, 0x28($sp) -/* B5E134 800E6F94 3C148017 */ lui $s4, %hi(D_8016F180) -/* B5E138 800E6F98 2694F180 */ addiu $s4, %lo(D_8016F180) -/* 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 func_800E7B80 -/* B5E284 800E70E4 00000000 */ nop -/* B5E288 800E70E8 0C03A037 */ jal func_800E80DC -/* B5E28C 800E70EC 02202025 */ move $a0, $s1 -/* B5E290 800E70F0 8E24000C */ lw $a0, 0xc($s1) -/* B5E294 800E70F4 02202825 */ move $a1, $s1 -/* B5E298 800E70F8 0C03A027 */ jal func_800E809C -/* 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 func_800E6F28 -/* 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 func_800E8188 -/* 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 func_800E80DC -/* B5E35C 800E71BC 02202025 */ move $a0, $s1 -/* B5E360 800E71C0 8E24000C */ lw $a0, 0xc($s1) -/* B5E364 800E71C4 02202825 */ move $a1, $s1 -/* B5E368 800E71C8 0C03A70A */ jal func_800E9C28 -/* B5E36C 800E71CC 24840030 */ addiu $a0, $a0, 0x30 -/* B5E370 800E71D0 1000002C */ b .L800E7284 -/* B5E374 800E71D4 AE130018 */ sw $s3, 0x18($s0) -.L800E71D8: -/* B5E378 800E71D8 0C039BCA */ jal func_800E6F28 -/* B5E37C 800E71DC 02202025 */ move $a0, $s1 -/* B5E380 800E71E0 0C03A037 */ jal func_800E80DC -/* B5E384 800E71E4 02202025 */ move $a0, $s1 -/* B5E388 800E71E8 8E24000C */ lw $a0, 0xc($s1) -/* B5E38C 800E71EC 0C03A70A */ jal func_800E9C28 -/* 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 func_800E6F28 -/* B5E3B8 800E7218 02202025 */ move $a0, $s1 -/* B5E3BC 800E721C 0C03A037 */ jal func_800E80DC -/* B5E3C0 800E7220 02202025 */ move $a0, $s1 -/* B5E3C4 800E7224 8E24000C */ lw $a0, 0xc($s1) -/* B5E3C8 800E7228 0C03A70A */ jal func_800E9C28 -/* 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 func_800E6F28 -/* B5E404 800E7264 02202025 */ move $a0, $s1 -/* B5E408 800E7268 0C03A037 */ jal func_800E80DC -/* B5E40C 800E726C 02202025 */ move $a0, $s1 -/* B5E410 800E7270 8E24000C */ lw $a0, 0xc($s1) -/* B5E414 800E7274 0C03A70A */ jal func_800E9C28 -/* 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 func_800E6940 -/* 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 - -glabel func_800E745C -/* B5E5FC 800E745C 908E0001 */ lbu $t6, 1($a0) -/* B5E600 800E7460 00AE082A */ slt $at, $a1, $t6 -/* B5E604 800E7464 50200004 */ beql $at, $zero, .L800E7478 -/* B5E608 800E7468 908F0002 */ lbu $t7, 2($a0) -/* B5E60C 800E746C 03E00008 */ jr $ra -/* B5E610 800E7470 24820008 */ addiu $v0, $a0, 8 -/* B5E614 800E7474 908F0002 */ lbu $t7, 2($a0) -.L800E7478: -/* B5E618 800E7478 24830018 */ addiu $v1, $a0, 0x18 -/* B5E61C 800E747C 01E5082A */ slt $at, $t7, $a1 -/* B5E620 800E7480 14200003 */ bnez $at, .L800E7490 -/* B5E624 800E7484 00000000 */ nop -/* B5E628 800E7488 03E00008 */ jr $ra -/* B5E62C 800E748C 24820010 */ addiu $v0, $a0, 0x10 -.L800E7490: -/* B5E630 800E7490 03E00008 */ jr $ra -/* B5E634 800E7494 00601025 */ move $v0, $v1 - -glabel func_800E7498 -/* B5E638 800E7498 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B5E63C 800E749C 240100FF */ li $at, 255 -/* B5E640 800E74A0 14810003 */ bne $a0, $at, .L800E74B0 -/* B5E644 800E74A4 AFBF0014 */ sw $ra, 0x14($sp) -/* B5E648 800E74A8 1000002C */ b .L800E755C -/* B5E64C 800E74AC 00001025 */ move $v0, $zero -.L800E74B0: -/* B5E650 800E74B0 AFA40018 */ sw $a0, 0x18($sp) -/* B5E654 800E74B4 0C03862C */ jal func_800E18B0 -/* B5E658 800E74B8 AFA5001C */ sw $a1, 0x1c($sp) -/* B5E65C 800E74BC 8FA40018 */ lw $a0, 0x18($sp) -/* B5E660 800E74C0 14400008 */ bnez $v0, .L800E74E4 -/* B5E664 800E74C4 8FA5001C */ lw $a1, 0x1c($sp) -/* B5E668 800E74C8 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 -/* B5E66C 800E74CC 3C011000 */ lui $at, 0x1000 -/* B5E670 800E74D0 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 -/* B5E674 800E74D4 00817021 */ addu $t6, $a0, $at -/* B5E678 800E74D8 ACCE2980 */ sw $t6, 0x2980($a2) -/* B5E67C 800E74DC 1000001F */ b .L800E755C -/* B5E680 800E74E0 00001025 */ move $v0, $zero -.L800E74E4: -/* B5E684 800E74E4 3C068017 */ lui $a2, %hi(D_8016F180) # $a2, 0x8017 -/* B5E688 800E74E8 24C6F180 */ addiu $a2, %lo(D_8016F180) # addiu $a2, $a2, -0xe80 -/* B5E68C 800E74EC 8CCF2844 */ lw $t7, 0x2844($a2) -/* B5E690 800E74F0 0004C080 */ sll $t8, $a0, 2 -/* B5E694 800E74F4 0304C021 */ addu $t8, $t8, $a0 -/* B5E698 800E74F8 0018C080 */ sll $t8, $t8, 2 -/* B5E69C 800E74FC 01F81021 */ addu $v0, $t7, $t8 -/* B5E6A0 800E7500 90590000 */ lbu $t9, ($v0) -/* B5E6A4 800E7504 00044200 */ sll $t0, $a0, 8 -/* B5E6A8 800E7508 01054821 */ addu $t1, $t0, $a1 -/* B5E6AC 800E750C 00B9082A */ slt $at, $a1, $t9 -/* B5E6B0 800E7510 14200005 */ bnez $at, .L800E7528 -/* B5E6B4 800E7514 3C010300 */ lui $at, 0x300 -/* B5E6B8 800E7518 01215021 */ addu $t2, $t1, $at -/* B5E6BC 800E751C ACCA2980 */ sw $t2, 0x2980($a2) -/* B5E6C0 800E7520 1000000E */ b .L800E755C -/* B5E6C4 800E7524 00001025 */ move $v0, $zero -.L800E7528: -/* B5E6C8 800E7528 8C4B0008 */ lw $t3, 8($v0) -/* B5E6CC 800E752C 00056080 */ sll $t4, $a1, 2 -/* B5E6D0 800E7530 00047200 */ sll $t6, $a0, 8 -/* B5E6D4 800E7534 016C6821 */ addu $t5, $t3, $t4 -/* B5E6D8 800E7538 8DA30000 */ lw $v1, ($t5) -/* B5E6DC 800E753C 01C57821 */ addu $t7, $t6, $a1 -/* B5E6E0 800E7540 3C010100 */ lui $at, 0x100 -/* B5E6E4 800E7544 14600004 */ bnez $v1, .L800E7558 -/* B5E6E8 800E7548 01E1C021 */ addu $t8, $t7, $at -/* B5E6EC 800E754C ACD82980 */ sw $t8, 0x2980($a2) -/* B5E6F0 800E7550 10000002 */ b .L800E755C -/* B5E6F4 800E7554 00601025 */ move $v0, $v1 -.L800E7558: -/* B5E6F8 800E7558 00601025 */ move $v0, $v1 -.L800E755C: -/* B5E6FC 800E755C 8FBF0014 */ lw $ra, 0x14($sp) -/* B5E700 800E7560 27BD0018 */ addiu $sp, $sp, 0x18 -/* B5E704 800E7564 03E00008 */ jr $ra -/* B5E708 800E7568 00000000 */ nop - -glabel func_800E756C -/* B5E70C 800E756C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B5E710 800E7570 240100FF */ li $at, 255 -/* B5E714 800E7574 AFBF0014 */ sw $ra, 0x14($sp) -/* B5E718 800E7578 14810003 */ bne $a0, $at, .L800E7588 -/* B5E71C 800E757C 00A03025 */ move $a2, $a1 -/* B5E720 800E7580 1000002F */ b .L800E7640 -/* B5E724 800E7584 00001025 */ move $v0, $zero -.L800E7588: -/* B5E728 800E7588 AFA40018 */ sw $a0, 0x18($sp) -/* B5E72C 800E758C 0C03862C */ jal func_800E18B0 -/* B5E730 800E7590 AFA6001C */ sw $a2, 0x1c($sp) -/* B5E734 800E7594 8FA40018 */ lw $a0, 0x18($sp) -/* B5E738 800E7598 14400008 */ bnez $v0, .L800E75BC -/* B5E73C 800E759C 8FA6001C */ lw $a2, 0x1c($sp) -/* B5E740 800E75A0 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5E744 800E75A4 3C011000 */ lui $at, 0x1000 -/* B5E748 800E75A8 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 -/* B5E74C 800E75AC 00817021 */ addu $t6, $a0, $at -/* B5E750 800E75B0 ACEE2980 */ sw $t6, 0x2980($a3) -/* B5E754 800E75B4 10000022 */ b .L800E7640 -/* B5E758 800E75B8 00001025 */ move $v0, $zero -.L800E75BC: -/* B5E75C 800E75BC 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5E760 800E75C0 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 -/* B5E764 800E75C4 8CEF2844 */ lw $t7, 0x2844($a3) -/* B5E768 800E75C8 0004C080 */ sll $t8, $a0, 2 -/* B5E76C 800E75CC 0304C021 */ addu $t8, $t8, $a0 -/* B5E770 800E75D0 0018C080 */ sll $t8, $t8, 2 -/* B5E774 800E75D4 01F81021 */ addu $v0, $t7, $t8 -/* B5E778 800E75D8 90590001 */ lbu $t9, 1($v0) -/* B5E77C 800E75DC 00044200 */ sll $t0, $a0, 8 -/* B5E780 800E75E0 01064821 */ addu $t1, $t0, $a2 -/* B5E784 800E75E4 00D9082A */ slt $at, $a2, $t9 -/* B5E788 800E75E8 14200005 */ bnez $at, .L800E7600 -/* B5E78C 800E75EC 3C010400 */ lui $at, 0x400 -/* B5E790 800E75F0 01215021 */ addu $t2, $t1, $at -/* B5E794 800E75F4 ACEA2980 */ sw $t2, 0x2980($a3) -/* B5E798 800E75F8 10000011 */ b .L800E7640 -/* B5E79C 800E75FC 00001025 */ move $v0, $zero -.L800E7600: -/* B5E7A0 800E7600 8C43000C */ lw $v1, 0xc($v0) -/* B5E7A4 800E7604 3C018000 */ lui $at, 0x8000 -/* B5E7A8 800E7608 00065880 */ sll $t3, $a2, 2 -/* B5E7AC 800E760C 0061082B */ sltu $at, $v1, $at -/* B5E7B0 800E7610 10200003 */ beqz $at, .L800E7620 -/* B5E7B4 800E7614 006B6021 */ addu $t4, $v1, $t3 -/* B5E7B8 800E7618 10000009 */ b .L800E7640 -/* B5E7BC 800E761C 00001025 */ move $v0, $zero -.L800E7620: -/* B5E7C0 800E7620 8D850000 */ lw $a1, ($t4) -/* B5E7C4 800E7624 00046A00 */ sll $t5, $a0, 8 -/* B5E7C8 800E7628 01A67021 */ addu $t6, $t5, $a2 -/* B5E7CC 800E762C 14A00004 */ bnez $a1, .L800E7640 -/* B5E7D0 800E7630 00A01025 */ move $v0, $a1 -/* B5E7D4 800E7634 3C010500 */ lui $at, 0x500 -/* B5E7D8 800E7638 01C17821 */ addu $t7, $t6, $at -/* B5E7DC 800E763C ACEF2980 */ sw $t7, 0x2980($a3) -.L800E7640: -/* B5E7E0 800E7640 8FBF0014 */ lw $ra, 0x14($sp) -/* B5E7E4 800E7644 27BD0018 */ addiu $sp, $sp, 0x18 -/* B5E7E8 800E7648 03E00008 */ jr $ra -/* B5E7EC 800E764C 00000000 */ nop - -glabel func_800E7650 -/* B5E7F0 800E7650 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B5E7F4 800E7654 240100FF */ li $at, 255 -/* B5E7F8 800E7658 AFBF0014 */ sw $ra, 0x14($sp) -/* B5E7FC 800E765C 14810003 */ bne $a0, $at, .L800E766C -/* B5E800 800E7660 00A03025 */ move $a2, $a1 -/* B5E804 800E7664 10000033 */ b .L800E7734 -/* B5E808 800E7668 00001025 */ move $v0, $zero -.L800E766C: -/* B5E80C 800E766C AFA40018 */ sw $a0, 0x18($sp) -/* B5E810 800E7670 0C03862C */ jal func_800E18B0 -/* B5E814 800E7674 AFA6001C */ sw $a2, 0x1c($sp) -/* B5E818 800E7678 8FA40018 */ lw $a0, 0x18($sp) -/* B5E81C 800E767C 14400008 */ bnez $v0, .L800E76A0 -/* B5E820 800E7680 8FA6001C */ lw $a2, 0x1c($sp) -/* B5E824 800E7684 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5E828 800E7688 3C011000 */ lui $at, 0x1000 -/* B5E82C 800E768C 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 -/* B5E830 800E7690 00817021 */ addu $t6, $a0, $at -/* B5E834 800E7694 ACEE2980 */ sw $t6, 0x2980($a3) -/* B5E838 800E7698 10000026 */ b .L800E7734 -/* B5E83C 800E769C 00001025 */ move $v0, $zero -.L800E76A0: -/* B5E840 800E76A0 3C078017 */ lui $a3, %hi(D_8016F180) # $a3, 0x8017 -/* B5E844 800E76A4 24E7F180 */ addiu $a3, %lo(D_8016F180) # addiu $a3, $a3, -0xe80 -/* B5E848 800E76A8 8CEF2844 */ lw $t7, 0x2844($a3) -/* B5E84C 800E76AC 0004C080 */ sll $t8, $a0, 2 -/* B5E850 800E76B0 0304C021 */ addu $t8, $t8, $a0 -/* B5E854 800E76B4 0018C080 */ sll $t8, $t8, 2 -/* B5E858 800E76B8 01F81021 */ addu $v0, $t7, $t8 -/* B5E85C 800E76BC 94590004 */ lhu $t9, 4($v0) -/* B5E860 800E76C0 00044200 */ sll $t0, $a0, 8 -/* B5E864 800E76C4 01064821 */ addu $t1, $t0, $a2 -/* B5E868 800E76C8 00D9082A */ slt $at, $a2, $t9 -/* B5E86C 800E76CC 14200005 */ bnez $at, .L800E76E4 -/* B5E870 800E76D0 3C010400 */ lui $at, 0x400 -/* B5E874 800E76D4 01215021 */ addu $t2, $t1, $at -/* B5E878 800E76D8 ACEA2980 */ sw $t2, 0x2980($a3) -/* B5E87C 800E76DC 10000015 */ b .L800E7734 -/* B5E880 800E76E0 00001025 */ move $v0, $zero -.L800E76E4: -/* B5E884 800E76E4 8C450010 */ lw $a1, 0x10($v0) -/* B5E888 800E76E8 3C018000 */ lui $at, 0x8000 -/* B5E88C 800E76EC 000658C0 */ sll $t3, $a2, 3 -/* B5E890 800E76F0 00A1082B */ sltu $at, $a1, $at -/* B5E894 800E76F4 10200003 */ beqz $at, .L800E7704 -/* B5E898 800E76F8 00AB1821 */ addu $v1, $a1, $t3 -/* B5E89C 800E76FC 1000000D */ b .L800E7734 -/* B5E8A0 800E7700 00001025 */ move $v0, $zero -.L800E7704: -/* B5E8A4 800E7704 14600005 */ bnez $v1, .L800E771C -/* B5E8A8 800E7708 00046200 */ sll $t4, $a0, 8 -/* B5E8AC 800E770C 01866821 */ addu $t5, $t4, $a2 -/* B5E8B0 800E7710 3C010500 */ lui $at, 0x500 -/* B5E8B4 800E7714 01A17021 */ addu $t6, $t5, $at -/* B5E8B8 800E7718 ACEE2980 */ sw $t6, 0x2980($a3) -.L800E771C: -/* B5E8BC 800E771C 8C6F0000 */ lw $t7, ($v1) -/* B5E8C0 800E7720 00601025 */ move $v0, $v1 -/* B5E8C4 800E7724 15E00003 */ bnez $t7, .L800E7734 -/* B5E8C8 800E7728 00000000 */ nop -/* B5E8CC 800E772C 10000001 */ b .L800E7734 -/* B5E8D0 800E7730 00001025 */ move $v0, $zero -.L800E7734: -/* B5E8D4 800E7734 8FBF0014 */ lw $ra, 0x14($sp) -/* B5E8D8 800E7738 27BD0018 */ addiu $sp, $sp, 0x18 -/* B5E8DC 800E773C 03E00008 */ jr $ra -/* B5E8E0 800E7740 00000000 */ nop - -glabel func_800E7744 -/* 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, .L800E7760 -/* B5E8F4 800E7754 AFA40018 */ sw $a0, 0x18($sp) -/* B5E8F8 800E7758 10000047 */ b .L800E7878 -/* B5E8FC 800E775C 2402FFFF */ li $v0, -1 -.L800E7760: -/* 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, .L800E7790 -/* B5E924 800E7784 8FA70024 */ lw $a3, 0x24($sp) -/* B5E928 800E7788 1000003B */ b .L800E7878 -/* B5E92C 800E778C 2402FFFE */ li $v0, -2 -.L800E7790: -/* B5E930 800E7790 10600006 */ beqz $v1, .L800E77AC -/* B5E934 800E7794 3C0E8017 */ lui $t6, %hi(D_801719C4) # $t6, 0x8017 -/* B5E938 800E7798 24010001 */ li $at, 1 -/* B5E93C 800E779C 10610013 */ beq $v1, $at, .L800E77EC -/* B5E940 800E77A0 3C0A8017 */ lui $t2, %hi(D_801719C4) # $t2, 0x8017 -/* B5E944 800E77A4 10000024 */ b .L800E7838 -/* B5E948 800E77A8 3C088017 */ lui $t0, %hi(D_801719C4) # $t0, 0x8017 -.L800E77AC: -/* 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, .L800E77DC -/* B5E96C 800E77CC 8C59000C */ lw $t9, 0xc($v0) -/* B5E970 800E77D0 10000029 */ b .L800E7878 -/* B5E974 800E77D4 2402FFFD */ li $v0, -3 -/* B5E978 800E77D8 8C59000C */ lw $t9, 0xc($v0) -.L800E77DC: -/* B5E97C 800E77DC 00064080 */ sll $t0, $a2, 2 -/* B5E980 800E77E0 03284821 */ addu $t1, $t9, $t0 -/* B5E984 800E77E4 10000023 */ b .L800E7874 -/* B5E988 800E77E8 AD270000 */ sw $a3, ($t1) -.L800E77EC: -/* 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, .L800E781C -/* B5E9AC 800E780C 8C4D0010 */ lw $t5, 0x10($v0) -/* B5E9B0 800E7810 10000019 */ b .L800E7878 -/* B5E9B4 800E7814 2402FFFD */ li $v0, -3 -/* B5E9B8 800E7818 8C4D0010 */ lw $t5, 0x10($v0) -.L800E781C: -/* 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 .L800E7874 -/* B5E9D4 800E7834 ADF80004 */ sw $t8, 4($t7) -.L800E7838: -/* 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 .L800E7878 -/* 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) -.L800E7874: -/* B5EA14 800E7874 00001025 */ move $v0, $zero -.L800E7878: -/* B5EA18 800E7878 8FBF0014 */ lw $ra, 0x14($sp) -/* B5EA1C 800E787C 27BD0018 */ addiu $sp, $sp, 0x18 -/* B5EA20 800E7880 03E00008 */ jr $ra -/* B5EA24 800E7884 00000000 */ nop - -glabel func_800E7888 -/* 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 func_800E80DC -/* 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 func_800E809C -/* 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 - -glabel func_800E7B60 -/* B5ED00 800E7B60 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B5ED04 800E7B64 AFBF0014 */ sw $ra, 0x14($sp) -/* B5ED08 800E7B68 0C039E22 */ jal func_800E7888 -/* B5ED0C 800E7B6C 24050006 */ li $a1, 6 -/* B5ED10 800E7B70 8FBF0014 */ lw $ra, 0x14($sp) -/* B5ED14 800E7B74 27BD0018 */ addiu $sp, $sp, 0x18 -/* B5ED18 800E7B78 03E00008 */ jr $ra -/* B5ED1C 800E7B7C 00000000 */ nop - -glabel func_800E7B80 -/* B5ED20 800E7B80 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B5ED24 800E7B84 AFBF0014 */ sw $ra, 0x14($sp) -/* B5ED28 800E7B88 0C039E22 */ jal func_800E7888 -/* B5ED2C 800E7B8C 24050007 */ li $a1, 7 -/* B5ED30 800E7B90 8FBF0014 */ lw $ra, 0x14($sp) -/* B5ED34 800E7B94 27BD0018 */ addiu $sp, $sp, 0x18 -/* B5ED38 800E7B98 03E00008 */ jr $ra -/* B5ED3C 800E7B9C 00000000 */ nop - -glabel func_800E7BA0 -/* B5ED40 800E7BA0 28C10080 */ slti $at, $a2, 0x80 -/* B5ED44 800E7BA4 10200002 */ beqz $at, .L800E7BB0 -/* B5ED48 800E7BA8 00001825 */ move $v1, $zero -/* B5ED4C 800E7BAC 24060080 */ li $a2, 128 -.L800E7BB0: -/* B5ED50 800E7BB0 90AE0020 */ lbu $t6, 0x20($a1) -/* B5ED54 800E7BB4 C4A00030 */ lwc1 $f0, 0x30($a1) -/* B5ED58 800E7BB8 11C0000D */ beqz $t6, .L800E7BF0 -/* B5ED5C 800E7BBC 46000086 */ mov.s $f2, $f0 -/* B5ED60 800E7BC0 C4AC0028 */ lwc1 $f12, 0x28($a1) -/* B5ED64 800E7BC4 44802000 */ mtc1 $zero, $f4 -/* B5ED68 800E7BC8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* B5ED6C 800E7BCC 460C203C */ c.lt.s $f4, $f12 -/* B5ED70 800E7BD0 00000000 */ nop -/* B5ED74 800E7BD4 45000006 */ bc1f .L800E7BF0 -/* B5ED78 800E7BD8 00000000 */ nop -/* B5ED7C 800E7BDC 44813000 */ mtc1 $at, $f6 -/* B5ED80 800E7BE0 00000000 */ nop -/* B5ED84 800E7BE4 46066200 */ add.s $f8, $f12, $f6 -/* B5ED88 800E7BE8 46081082 */ mul.s $f2, $f2, $f8 -/* B5ED8C 800E7BEC 00000000 */ nop -.L800E7BF0: -/* B5ED90 800E7BF0 3C018015 */ lui $at, %hi(D_801495D4) -/* B5ED94 800E7BF4 C42A95D4 */ lwc1 $f10, %lo(D_801495D4)($at) -/* B5ED98 800E7BF8 3C018015 */ lui $at, %hi(D_801495DC) -/* B5ED9C 800E7BFC 460A103C */ c.lt.s $f2, $f10 -/* B5EDA0 800E7C00 00000000 */ nop -/* B5EDA4 800E7C04 45000004 */ bc1f .L800E7C18 -/* B5EDA8 800E7C08 00000000 */ nop -/* B5EDAC 800E7C0C 3C018015 */ lui $at, %hi(D_801495D8) -/* B5EDB0 800E7C10 10000017 */ b .L800E7C70 -/* B5EDB4 800E7C14 C42295D8 */ lwc1 $f2, %lo(D_801495D8)($at) -.L800E7C18: -/* B5EDB8 800E7C18 C43095DC */ lwc1 $f16, %lo(D_801495DC)($at) -/* B5EDBC 800E7C1C 24030001 */ li $v1, 1 -/* B5EDC0 800E7C20 3C018015 */ lui $at, %hi(D_801495E4) -/* B5EDC4 800E7C24 4610103C */ c.lt.s $f2, $f16 -/* B5EDC8 800E7C28 00000000 */ nop -/* B5EDCC 800E7C2C 45000004 */ bc1f .L800E7C40 -/* B5EDD0 800E7C30 00000000 */ nop -/* B5EDD4 800E7C34 3C018015 */ lui $at, %hi(D_801495E0) -/* B5EDD8 800E7C38 1000000D */ b .L800E7C70 -/* B5EDDC 800E7C3C C42295E0 */ lwc1 $f2, %lo(D_801495E0)($at) -.L800E7C40: -/* B5EDE0 800E7C40 C43295E4 */ lwc1 $f18, %lo(D_801495E4)($at) -/* B5EDE4 800E7C44 24030003 */ li $v1, 3 -/* B5EDE8 800E7C48 3C018015 */ lui $at, %hi(D_801495EC) -/* B5EDEC 800E7C4C 4612103C */ c.lt.s $f2, $f18 -/* B5EDF0 800E7C50 00000000 */ nop -/* B5EDF4 800E7C54 45000005 */ bc1f .L800E7C6C -/* B5EDF8 800E7C58 00000000 */ nop -/* B5EDFC 800E7C5C 3C018015 */ lui $at, %hi(D_801495E8) -/* B5EE00 800E7C60 24030002 */ li $v1, 2 -/* B5EE04 800E7C64 10000002 */ b .L800E7C70 -/* B5EE08 800E7C68 C42295E8 */ lwc1 $f2, %lo(D_801495E8)($at) -.L800E7C6C: -/* B5EE0C 800E7C6C C42295EC */ lwc1 $f2, %lo(D_801495EC)($at) -.L800E7C70: -/* B5EE10 800E7C70 46020102 */ mul.s $f4, $f0, $f2 -/* B5EE14 800E7C74 00067880 */ sll $t7, $a2, 2 -/* B5EE18 800E7C78 3C188013 */ lui $t8, %hi(D_8012EE90) -/* B5EE1C 800E7C7C 030FC021 */ addu $t8, $t8, $t7 -/* B5EE20 800E7C80 0003C9C0 */ sll $t9, $v1, 7 -/* B5EE24 800E7C84 00601025 */ move $v0, $v1 -/* B5EE28 800E7C88 E4A40030 */ swc1 $f4, 0x30($a1) -/* B5EE2C 800E7C8C A0860031 */ sb $a2, 0x31($a0) -/* B5EE30 800E7C90 A0830032 */ sb $v1, 0x32($a0) -/* B5EE34 800E7C94 8F18EE90 */ lw $t8, %lo(D_8012EE90)($t8) -/* B5EE38 800E7C98 03194021 */ addu $t0, $t8, $t9 -/* B5EE3C 800E7C9C 03E00008 */ jr $ra -/* B5EE40 800E7CA0 AC8800D0 */ sw $t0, 0xd0($a0) - -glabel func_800E7CA4 -/* B5EE44 800E7CA4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B5EE48 800E7CA8 AFBF0014 */ sw $ra, 0x14($sp) -/* B5EE4C 800E7CAC 90A60002 */ lbu $a2, 2($a1) -/* B5EE50 800E7CB0 240100FF */ li $at, 255 -/* B5EE54 800E7CB4 54C10004 */ bnel $a2, $at, .L800E7CC8 -/* B5EE58 800E7CB8 90830032 */ lbu $v1, 0x32($a0) -/* B5EE5C 800E7CBC 8CAE0050 */ lw $t6, 0x50($a1) -/* B5EE60 800E7CC0 85C60024 */ lh $a2, 0x24($t6) -/* B5EE64 800E7CC4 90830032 */ lbu $v1, 0x32($a0) -.L800E7CC8: -/* B5EE68 800E7CC8 AFA40020 */ sw $a0, 0x20($sp) -/* B5EE6C 800E7CCC 0C039EE8 */ jal func_800E7BA0 -/* B5EE70 800E7CD0 AFA3001C */ sw $v1, 0x1c($sp) -/* B5EE74 800E7CD4 8FA3001C */ lw $v1, 0x1c($sp) -/* B5EE78 800E7CD8 00027880 */ sll $t7, $v0, 2 -/* B5EE7C 800E7CDC 8FA40020 */ lw $a0, 0x20($sp) -/* B5EE80 800E7CE0 10430002 */ beq $v0, $v1, .L800E7CEC -/* B5EE84 800E7CE4 01E3C021 */ addu $t8, $t7, $v1 -/* B5EE88 800E7CE8 A09800C6 */ sb $t8, 0xc6($a0) -.L800E7CEC: -/* B5EE8C 800E7CEC 8FBF0014 */ lw $ra, 0x14($sp) -/* B5EE90 800E7CF0 27BD0020 */ addiu $sp, $sp, 0x20 -/* B5EE94 800E7CF4 03E00008 */ jr $ra -/* B5EE98 800E7CF8 00000000 */ nop - -glabel func_800E7CFC -/* B5EE9C 800E7CFC AC840000 */ sw $a0, ($a0) -/* B5EEA0 800E7D00 AC840004 */ sw $a0, 4($a0) -/* B5EEA4 800E7D04 03E00008 */ jr $ra -/* B5EEA8 800E7D08 AC800008 */ sw $zero, 8($a0) - -glabel func_800E7D0C -/* B5EEAC 800E7D0C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B5EEB0 800E7D10 AFBF001C */ sw $ra, 0x1c($sp) -/* B5EEB4 800E7D14 AFB00018 */ sw $s0, 0x18($sp) -/* B5EEB8 800E7D18 0C039F3F */ jal func_800E7CFC -/* B5EEBC 800E7D1C 00808025 */ move $s0, $a0 -/* B5EEC0 800E7D20 0C039F3F */ jal func_800E7CFC -/* B5EEC4 800E7D24 26040010 */ addiu $a0, $s0, 0x10 -/* B5EEC8 800E7D28 0C039F3F */ jal func_800E7CFC -/* B5EECC 800E7D2C 26040020 */ addiu $a0, $s0, 0x20 -/* B5EED0 800E7D30 0C039F3F */ jal func_800E7CFC -/* B5EED4 800E7D34 26040030 */ addiu $a0, $s0, 0x30 -/* B5EED8 800E7D38 AE10000C */ sw $s0, 0xc($s0) -/* B5EEDC 800E7D3C AE10001C */ sw $s0, 0x1c($s0) -/* B5EEE0 800E7D40 AE10002C */ sw $s0, 0x2c($s0) -/* B5EEE4 800E7D44 AE10003C */ sw $s0, 0x3c($s0) -/* B5EEE8 800E7D48 8FBF001C */ lw $ra, 0x1c($sp) -/* B5EEEC 800E7D4C 8FB00018 */ lw $s0, 0x18($sp) -/* B5EEF0 800E7D50 27BD0020 */ addiu $sp, $sp, 0x20 -/* B5EEF4 800E7D54 03E00008 */ jr $ra -/* B5EEF8 800E7D58 00000000 */ nop - -glabel func_800E7D5C -/* B5EEFC 800E7D5C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B5EF00 800E7D60 AFB30020 */ sw $s3, 0x20($sp) -/* B5EF04 800E7D64 3C138017 */ lui $s3, %hi(D_80174D18) # $s3, 0x8017 -/* B5EF08 800E7D68 26734D18 */ addiu $s3, %lo(D_80174D18) # addiu $s3, $s3, 0x4d18 -/* B5EF0C 800E7D6C AFBF0024 */ sw $ra, 0x24($sp) -/* B5EF10 800E7D70 AFB2001C */ sw $s2, 0x1c($sp) -/* B5EF14 800E7D74 AFB10018 */ sw $s1, 0x18($sp) -/* B5EF18 800E7D78 AFB00014 */ sw $s0, 0x14($sp) -/* B5EF1C 800E7D7C 0C039F43 */ jal func_800E7D0C -/* B5EF20 800E7D80 02602025 */ move $a0, $s3 -/* B5EF24 800E7D84 3C118017 */ lui $s1, %hi(D_8016F180) # $s1, 0x8017 -/* B5EF28 800E7D88 2631F180 */ addiu $s1, %lo(D_8016F180) # addiu $s1, $s1, -0xe80 -/* B5EF2C 800E7D8C 8E2E2894 */ lw $t6, 0x2894($s1) -/* B5EF30 800E7D90 00009025 */ move $s2, $zero -/* B5EF34 800E7D94 00008025 */ move $s0, $zero -/* B5EF38 800E7D98 59C00013 */ blezl $t6, .L800E7DE8 -/* B5EF3C 800E7D9C 8FBF0024 */ lw $ra, 0x24($sp) -/* B5EF40 800E7DA0 8E22352C */ lw $v0, 0x352c($s1) -.L800E7DA4: -/* B5EF44 800E7DA4 02602025 */ move $a0, $s3 -/* B5EF48 800E7DA8 02027821 */ addu $t7, $s0, $v0 -/* B5EF4C 800E7DAC 0050C021 */ addu $t8, $v0, $s0 -/* B5EF50 800E7DB0 AF0F0008 */ sw $t7, 8($t8) -/* B5EF54 800E7DB4 8E39352C */ lw $t9, 0x352c($s1) -/* B5EF58 800E7DB8 03304021 */ addu $t0, $t9, $s0 -/* B5EF5C 800E7DBC AD000000 */ sw $zero, ($t0) -/* B5EF60 800E7DC0 8E29352C */ lw $t1, 0x352c($s1) -/* B5EF64 800E7DC4 0C03A70A */ jal func_800E9C28 -/* B5EF68 800E7DC8 02092821 */ addu $a1, $s0, $t1 -/* B5EF6C 800E7DCC 8E2A2894 */ lw $t2, 0x2894($s1) -/* B5EF70 800E7DD0 26520001 */ addiu $s2, $s2, 1 -/* B5EF74 800E7DD4 261000E0 */ addiu $s0, $s0, 0xe0 -/* B5EF78 800E7DD8 024A082A */ slt $at, $s2, $t2 -/* B5EF7C 800E7DDC 5420FFF1 */ bnezl $at, .L800E7DA4 -/* B5EF80 800E7DE0 8E22352C */ lw $v0, 0x352c($s1) -/* B5EF84 800E7DE4 8FBF0024 */ lw $ra, 0x24($sp) -.L800E7DE8: -/* B5EF88 800E7DE8 8FB00014 */ lw $s0, 0x14($sp) -/* B5EF8C 800E7DEC 8FB10018 */ lw $s1, 0x18($sp) -/* B5EF90 800E7DF0 8FB2001C */ lw $s2, 0x1c($sp) -/* B5EF94 800E7DF4 8FB30020 */ lw $s3, 0x20($sp) -/* B5EF98 800E7DF8 03E00008 */ jr $ra -/* B5EF9C 800E7DFC 27BD0028 */ addiu $sp, $sp, 0x28 - -glabel func_800E7E00 -/* B5EFA0 800E7E00 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* B5EFA4 800E7E04 AFBE0038 */ sw $fp, 0x38($sp) -/* B5EFA8 800E7E08 AFB70034 */ sw $s7, 0x34($sp) -/* B5EFAC 800E7E0C AFB60030 */ sw $s6, 0x30($sp) -/* B5EFB0 800E7E10 AFB5002C */ sw $s5, 0x2c($sp) -/* B5EFB4 800E7E14 AFB40028 */ sw $s4, 0x28($sp) -/* B5EFB8 800E7E18 AFB30024 */ sw $s3, 0x24($sp) -/* B5EFBC 800E7E1C AFB20020 */ sw $s2, 0x20($sp) -/* B5EFC0 800E7E20 AFB1001C */ sw $s1, 0x1c($sp) -/* B5EFC4 800E7E24 3C068017 */ lui $a2, %hi(D_80174D18) # $a2, 0x8017 -/* B5EFC8 800E7E28 3C058017 */ lui $a1, %hi(D_80174D28) # $a1, 0x8017 -/* B5EFCC 800E7E2C 3C038017 */ lui $v1, %hi(D_80174D38) # $v1, 0x8017 -/* B5EFD0 800E7E30 3C028017 */ lui $v0, %hi(D_80174D48) # $v0, 0x8017 -/* B5EFD4 800E7E34 0080A025 */ move $s4, $a0 -/* B5EFD8 800E7E38 AFBF003C */ sw $ra, 0x3c($sp) -/* B5EFDC 800E7E3C AFB00018 */ sw $s0, 0x18($sp) -/* B5EFE0 800E7E40 24424D48 */ addiu $v0, %lo(D_80174D48) # addiu $v0, $v0, 0x4d48 -/* B5EFE4 800E7E44 24634D38 */ addiu $v1, %lo(D_80174D38) # addiu $v1, $v1, 0x4d38 -/* B5EFE8 800E7E48 24A54D28 */ addiu $a1, %lo(D_80174D28) # addiu $a1, $a1, 0x4d28 -/* B5EFEC 800E7E4C 24C64D18 */ addiu $a2, %lo(D_80174D18) # addiu $a2, $a2, 0x4d18 -/* B5EFF0 800E7E50 8FB10048 */ lw $s1, 0x48($sp) -/* B5EFF4 800E7E54 8FB20040 */ lw $s2, 0x40($sp) -/* B5EFF8 800E7E58 00009825 */ move $s3, $zero -/* B5EFFC 800E7E5C 24150001 */ li $s5, 1 -/* B5F000 800E7E60 24160002 */ li $s6, 2 -/* B5F004 800E7E64 24170003 */ li $s7, 3 -/* B5F008 800E7E68 241E0004 */ li $fp, 4 -.L800E7E6C: -/* B5F00C 800E7E6C 5260000A */ beql $s3, $zero, .L800E7E98 -/* B5F010 800E7E70 02808825 */ move $s1, $s4 -/* B5F014 800E7E74 5275000C */ beql $s3, $s5, .L800E7EA8 -/* B5F018 800E7E78 26910010 */ addiu $s1, $s4, 0x10 -/* B5F01C 800E7E7C 5276000E */ beql $s3, $s6, .L800E7EB8 -/* B5F020 800E7E80 26910020 */ addiu $s1, $s4, 0x20 -/* B5F024 800E7E84 52770010 */ beql $s3, $s7, .L800E7EC8 -/* B5F028 800E7E88 26910030 */ addiu $s1, $s4, 0x30 -/* B5F02C 800E7E8C 10000010 */ b .L800E7ED0 -/* B5F030 800E7E90 8E300004 */ lw $s0, 4($s1) -/* B5F034 800E7E94 02808825 */ move $s1, $s4 -.L800E7E98: -/* B5F038 800E7E98 00C09025 */ move $s2, $a2 -/* B5F03C 800E7E9C 1000000C */ b .L800E7ED0 -/* B5F040 800E7EA0 8E900004 */ lw $s0, 4($s4) -/* B5F044 800E7EA4 26910010 */ addiu $s1, $s4, 0x10 -.L800E7EA8: -/* B5F048 800E7EA8 00A09025 */ move $s2, $a1 -/* B5F04C 800E7EAC 10000008 */ b .L800E7ED0 -/* B5F050 800E7EB0 8E300004 */ lw $s0, 4($s1) -/* B5F054 800E7EB4 26910020 */ addiu $s1, $s4, 0x20 -.L800E7EB8: -/* B5F058 800E7EB8 00609025 */ move $s2, $v1 -/* B5F05C 800E7EBC 10000004 */ b .L800E7ED0 -/* B5F060 800E7EC0 8E300004 */ lw $s0, 4($s1) -/* B5F064 800E7EC4 26910030 */ addiu $s1, $s4, 0x30 -.L800E7EC8: -/* B5F068 800E7EC8 00409025 */ move $s2, $v0 -/* B5F06C 800E7ECC 8E300004 */ lw $s0, 4($s1) -.L800E7ED0: -/* B5F070 800E7ED0 52110013 */ beql $s0, $s1, .L800E7F20 -/* B5F074 800E7ED4 26730001 */ addiu $s3, $s3, 1 -.L800E7ED8: -/* B5F078 800E7ED8 52000011 */ beql $s0, $zero, .L800E7F20 -/* B5F07C 800E7EDC 26730001 */ addiu $s3, $s3, 1 -/* B5F080 800E7EE0 0C03A037 */ jal func_800E80DC -/* B5F084 800E7EE4 02002025 */ move $a0, $s0 -/* B5F088 800E7EE8 02402025 */ move $a0, $s2 -/* B5F08C 800E7EEC 0C03A70A */ jal func_800E9C28 -/* B5F090 800E7EF0 02002825 */ move $a1, $s0 -/* B5F094 800E7EF4 8E300004 */ lw $s0, 4($s1) -/* B5F098 800E7EF8 3C068017 */ lui $a2, %hi(D_80174D18) # $a2, 0x8017 -/* B5F09C 800E7EFC 3C058017 */ lui $a1, %hi(D_80174D28) # $a1, 0x8017 -/* B5F0A0 800E7F00 3C038017 */ lui $v1, %hi(D_80174D38) # $v1, 0x8017 -/* B5F0A4 800E7F04 3C028017 */ lui $v0, %hi(D_80174D48) # $v0, 0x8017 -/* B5F0A8 800E7F08 24424D48 */ addiu $v0, %lo(D_80174D48) # addiu $v0, $v0, 0x4d48 -/* B5F0AC 800E7F0C 24634D38 */ addiu $v1, %lo(D_80174D38) # addiu $v1, $v1, 0x4d38 -/* B5F0B0 800E7F10 24A54D28 */ addiu $a1, %lo(D_80174D28) # addiu $a1, $a1, 0x4d28 -/* B5F0B4 800E7F14 1611FFF0 */ bne $s0, $s1, .L800E7ED8 -/* B5F0B8 800E7F18 24C64D18 */ addiu $a2, %lo(D_80174D18) # addiu $a2, $a2, 0x4d18 -/* B5F0BC 800E7F1C 26730001 */ addiu $s3, $s3, 1 -.L800E7F20: -/* B5F0C0 800E7F20 167EFFD2 */ bne $s3, $fp, .L800E7E6C -/* B5F0C4 800E7F24 00000000 */ nop -/* B5F0C8 800E7F28 8FBF003C */ lw $ra, 0x3c($sp) -/* B5F0CC 800E7F2C AFB20040 */ sw $s2, 0x40($sp) -/* B5F0D0 800E7F30 AFB10048 */ sw $s1, 0x48($sp) -/* B5F0D4 800E7F34 8FB1001C */ lw $s1, 0x1c($sp) -/* B5F0D8 800E7F38 8FB20020 */ lw $s2, 0x20($sp) -/* B5F0DC 800E7F3C 8FB00018 */ lw $s0, 0x18($sp) -/* B5F0E0 800E7F40 8FB30024 */ lw $s3, 0x24($sp) -/* B5F0E4 800E7F44 8FB40028 */ lw $s4, 0x28($sp) -/* B5F0E8 800E7F48 8FB5002C */ lw $s5, 0x2c($sp) -/* B5F0EC 800E7F4C 8FB60030 */ lw $s6, 0x30($sp) -/* B5F0F0 800E7F50 8FB70034 */ lw $s7, 0x34($sp) -/* B5F0F4 800E7F54 8FBE0038 */ lw $fp, 0x38($sp) -/* B5F0F8 800E7F58 03E00008 */ jr $ra -/* B5F0FC 800E7F5C 27BD0050 */ addiu $sp, $sp, 0x50 - -glabel func_800E7F60 -/* B5F100 800E7F60 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* B5F104 800E7F64 AFBF003C */ sw $ra, 0x3c($sp) -/* B5F108 800E7F68 AFB5002C */ sw $s5, 0x2c($sp) -/* B5F10C 800E7F6C AFB30024 */ sw $s3, 0x24($sp) -/* B5F110 800E7F70 00A09825 */ move $s3, $a1 -/* B5F114 800E7F74 0080A825 */ move $s5, $a0 -/* B5F118 800E7F78 AFBE0038 */ sw $fp, 0x38($sp) -/* B5F11C 800E7F7C AFB70034 */ sw $s7, 0x34($sp) -/* B5F120 800E7F80 AFB60030 */ sw $s6, 0x30($sp) -/* B5F124 800E7F84 AFB40028 */ sw $s4, 0x28($sp) -/* B5F128 800E7F88 AFB20020 */ sw $s2, 0x20($sp) -/* B5F12C 800E7F8C AFB1001C */ sw $s1, 0x1c($sp) -/* B5F130 800E7F90 0C039F80 */ jal func_800E7E00 -/* B5F134 800E7F94 AFB00018 */ sw $s0, 0x18($sp) -/* B5F138 800E7F98 0000A025 */ move $s4, $zero -/* B5F13C 800E7F9C 1A600033 */ blez $s3, .L800E806C -/* B5F140 800E7FA0 00008025 */ move $s0, $zero -/* B5F144 800E7FA4 241E0002 */ li $fp, 2 -/* B5F148 800E7FA8 24170001 */ li $s7, 1 -/* B5F14C 800E7FAC 24160004 */ li $s6, 4 -/* B5F150 800E7FB0 8FB20044 */ lw $s2, 0x44($sp) -/* B5F154 800E7FB4 8FB10048 */ lw $s1, 0x48($sp) -.L800E7FB8: -/* B5F158 800E7FB8 5296002D */ beql $s4, $s6, .L800E8070 -/* B5F15C 800E7FBC 8FBF003C */ lw $ra, 0x3c($sp) -/* B5F160 800E7FC0 12800009 */ beqz $s4, .L800E7FE8 -/* B5F164 800E7FC4 00000000 */ nop -/* B5F168 800E7FC8 1297000B */ beq $s4, $s7, .L800E7FF8 -/* B5F16C 800E7FCC 00000000 */ nop -/* B5F170 800E7FD0 129E000D */ beq $s4, $fp, .L800E8008 -/* B5F174 800E7FD4 24010003 */ li $at, 3 -/* B5F178 800E7FD8 1281000F */ beq $s4, $at, .L800E8018 -/* B5F17C 800E7FDC 00000000 */ nop -/* B5F180 800E7FE0 10000011 */ b .L800E8028 -/* B5F184 800E7FE4 0213082A */ slt $at, $s0, $s3 -.L800E7FE8: -/* B5F188 800E7FE8 3C118017 */ lui $s1, %hi(D_80174D18) # $s1, 0x8017 -/* B5F18C 800E7FEC 26314D18 */ addiu $s1, %lo(D_80174D18) # addiu $s1, $s1, 0x4d18 -/* B5F190 800E7FF0 1000000C */ b .L800E8024 -/* B5F194 800E7FF4 02A09025 */ move $s2, $s5 -.L800E7FF8: -/* B5F198 800E7FF8 3C118017 */ lui $s1, %hi(D_80174D28) # $s1, 0x8017 -/* B5F19C 800E7FFC 26314D28 */ addiu $s1, %lo(D_80174D28) # addiu $s1, $s1, 0x4d28 -/* B5F1A0 800E8000 10000008 */ b .L800E8024 -/* B5F1A4 800E8004 26B20010 */ addiu $s2, $s5, 0x10 -.L800E8008: -/* B5F1A8 800E8008 3C118017 */ lui $s1, %hi(D_80174D38) # $s1, 0x8017 -/* B5F1AC 800E800C 26314D38 */ addiu $s1, %lo(D_80174D38) # addiu $s1, $s1, 0x4d38 -/* B5F1B0 800E8010 10000004 */ b .L800E8024 -/* B5F1B4 800E8014 26B20020 */ addiu $s2, $s5, 0x20 -.L800E8018: -/* B5F1B8 800E8018 3C118017 */ lui $s1, %hi(D_80174D48) # $s1, 0x8017 -/* B5F1BC 800E801C 26314D48 */ addiu $s1, %lo(D_80174D48) # addiu $s1, $s1, 0x4d48 -/* B5F1C0 800E8020 26B20030 */ addiu $s2, $s5, 0x30 -.L800E8024: -/* B5F1C4 800E8024 0213082A */ slt $at, $s0, $s3 -.L800E8028: -/* B5F1C8 800E8028 5020000C */ beql $at, $zero, .L800E805C -/* B5F1CC 800E802C 0213082A */ slt $at, $s0, $s3 -.L800E8030: -/* B5F1D0 800E8030 0C03A71A */ jal func_800E9C68 -/* B5F1D4 800E8034 02202025 */ move $a0, $s1 -/* B5F1D8 800E8038 10400007 */ beqz $v0, .L800E8058 -/* B5F1DC 800E803C 00402825 */ move $a1, $v0 -/* B5F1E0 800E8040 0C03A70A */ jal func_800E9C28 -/* B5F1E4 800E8044 02402025 */ move $a0, $s2 -/* B5F1E8 800E8048 26100001 */ addiu $s0, $s0, 1 -/* B5F1EC 800E804C 0213082A */ slt $at, $s0, $s3 -/* B5F1F0 800E8050 1420FFF7 */ bnez $at, .L800E8030 -/* B5F1F4 800E8054 00000000 */ nop -.L800E8058: -/* B5F1F8 800E8058 0213082A */ slt $at, $s0, $s3 -.L800E805C: -/* B5F1FC 800E805C 1420FFD6 */ bnez $at, .L800E7FB8 -/* B5F200 800E8060 26940001 */ addiu $s4, $s4, 1 -/* B5F204 800E8064 AFB20044 */ sw $s2, 0x44($sp) -/* B5F208 800E8068 AFB10048 */ sw $s1, 0x48($sp) -.L800E806C: -/* B5F20C 800E806C 8FBF003C */ lw $ra, 0x3c($sp) -.L800E8070: -/* B5F210 800E8070 8FB00018 */ lw $s0, 0x18($sp) -/* B5F214 800E8074 8FB1001C */ lw $s1, 0x1c($sp) -/* B5F218 800E8078 8FB20020 */ lw $s2, 0x20($sp) -/* B5F21C 800E807C 8FB30024 */ lw $s3, 0x24($sp) -/* B5F220 800E8080 8FB40028 */ lw $s4, 0x28($sp) -/* B5F224 800E8084 8FB5002C */ lw $s5, 0x2c($sp) -/* B5F228 800E8088 8FB60030 */ lw $s6, 0x30($sp) -/* B5F22C 800E808C 8FB70034 */ lw $s7, 0x34($sp) -/* B5F230 800E8090 8FBE0038 */ lw $fp, 0x38($sp) -/* B5F234 800E8094 03E00008 */ jr $ra -/* B5F238 800E8098 27BD0058 */ addiu $sp, $sp, 0x58 - -glabel func_800E809C -/* B5F23C 800E809C 8CAE0000 */ lw $t6, ($a1) -/* B5F240 800E80A0 15C0000C */ bnez $t6, .L800E80D4 -/* B5F244 800E80A4 00000000 */ nop -/* B5F248 800E80A8 ACA40000 */ sw $a0, ($a1) -/* B5F24C 800E80AC 8C8F0004 */ lw $t7, 4($a0) -/* B5F250 800E80B0 ACAF0004 */ sw $t7, 4($a1) -/* B5F254 800E80B4 8C980004 */ lw $t8, 4($a0) -/* B5F258 800E80B8 AF050000 */ sw $a1, ($t8) -/* B5F25C 800E80BC 8C990008 */ lw $t9, 8($a0) -/* B5F260 800E80C0 8C89000C */ lw $t1, 0xc($a0) -/* B5F264 800E80C4 AC850004 */ sw $a1, 4($a0) -/* B5F268 800E80C8 27280001 */ addiu $t0, $t9, 1 -/* B5F26C 800E80CC AC880008 */ sw $t0, 8($a0) -/* B5F270 800E80D0 ACA9000C */ sw $t1, 0xc($a1) -.L800E80D4: -/* B5F274 800E80D4 03E00008 */ jr $ra -/* B5F278 800E80D8 00000000 */ nop - -glabel func_800E80DC -/* B5F27C 800E80DC 8C820000 */ lw $v0, ($a0) -/* B5F280 800E80E0 10400007 */ beqz $v0, .L800E8100 -/* B5F284 800E80E4 00000000 */ nop -/* B5F288 800E80E8 8C8E0004 */ lw $t6, 4($a0) -/* B5F28C 800E80EC AC4E0004 */ sw $t6, 4($v0) -/* B5F290 800E80F0 8C8F0000 */ lw $t7, ($a0) -/* B5F294 800E80F4 8C980004 */ lw $t8, 4($a0) -/* B5F298 800E80F8 AF0F0000 */ sw $t7, ($t8) -/* B5F29C 800E80FC AC800000 */ sw $zero, ($a0) -.L800E8100: -/* B5F2A0 800E8100 03E00008 */ jr $ra -/* B5F2A4 800E8104 00000000 */ nop - -glabel func_800E8108 -/* B5F2A8 800E8108 8C820004 */ lw $v0, 4($a0) -/* B5F2AC 800E810C 14440003 */ bne $v0, $a0, .L800E811C -/* B5F2B0 800E8110 00000000 */ nop -/* B5F2B4 800E8114 03E00008 */ jr $ra -/* B5F2B8 800E8118 00001025 */ move $v0, $zero -.L800E811C: -/* B5F2BC 800E811C 1044000C */ beq $v0, $a0, .L800E8150 -/* B5F2C0 800E8120 00401825 */ move $v1, $v0 -/* B5F2C4 800E8124 8C6E0008 */ lw $t6, 8($v1) -.L800E8128: -/* B5F2C8 800E8128 8C580008 */ lw $t8, 8($v0) -/* B5F2CC 800E812C 91CF0030 */ lbu $t7, 0x30($t6) -/* B5F2D0 800E8130 93190030 */ lbu $t9, 0x30($t8) -/* B5F2D4 800E8134 01F9082A */ slt $at, $t7, $t9 -/* B5F2D8 800E8138 54200003 */ bnezl $at, .L800E8148 -/* B5F2DC 800E813C 8C420004 */ lw $v0, 4($v0) -/* B5F2E0 800E8140 00401825 */ move $v1, $v0 -/* B5F2E4 800E8144 8C420004 */ lw $v0, 4($v0) -.L800E8148: -/* B5F2E8 800E8148 5444FFF7 */ bnel $v0, $a0, .L800E8128 -/* B5F2EC 800E814C 8C6E0008 */ lw $t6, 8($v1) -.L800E8150: -/* B5F2F0 800E8150 54600004 */ bnezl $v1, .L800E8164 -/* B5F2F4 800E8154 8C640008 */ lw $a0, 8($v1) -/* B5F2F8 800E8158 03E00008 */ jr $ra -/* B5F2FC 800E815C 00001025 */ move $v0, $zero -/* B5F300 800E8160 8C640008 */ lw $a0, 8($v1) -.L800E8164: -/* B5F304 800E8164 90880030 */ lbu $t0, 0x30($a0) -/* B5F308 800E8168 00801025 */ move $v0, $a0 -/* B5F30C 800E816C 0105082A */ slt $at, $t0, $a1 -/* B5F310 800E8170 14200003 */ bnez $at, .L800E8180 -/* B5F314 800E8174 00000000 */ nop -/* B5F318 800E8178 03E00008 */ jr $ra -/* B5F31C 800E817C 00001025 */ move $v0, $zero -.L800E8180: -/* B5F320 800E8180 03E00008 */ jr $ra -/* B5F324 800E8184 00000000 */ nop - -glabel func_800E8188 -/* B5F328 800E8188 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* B5F32C 800E818C AFBF0014 */ sw $ra, 0x14($sp) -/* B5F330 800E8190 240EFFFF */ li $t6, -1 -/* B5F334 800E8194 AC8E0040 */ sw $t6, 0x40($a0) -/* B5F338 800E8198 AC850044 */ sw $a1, 0x44($a0) -/* B5F33C 800E819C 8CAF0050 */ lw $t7, 0x50($a1) -/* B5F340 800E81A0 44802000 */ mtc1 $zero, $f4 -/* B5F344 800E81A4 91F80005 */ lbu $t8, 5($t7) -/* B5F348 800E81A8 A0980030 */ sb $t8, 0x30($a0) -/* B5F34C 800E81AC 90A80000 */ lbu $t0, ($a1) -/* B5F350 800E81B0 8CAD0050 */ lw $t5, 0x50($a1) -/* B5F354 800E81B4 ACA4002C */ sw $a0, 0x2c($a1) -/* B5F358 800E81B8 350B0001 */ ori $t3, $t0, 1 -/* B5F35C 800E81BC A0AB0000 */ sb $t3, ($a1) -/* B5F360 800E81C0 356C0008 */ ori $t4, $t3, 8 -/* B5F364 800E81C4 A0AC0000 */ sb $t4, ($a1) -/* B5F368 800E81C8 ADA40040 */ sw $a0, 0x40($t5) -/* B5F36C 800E81CC 8CAE0050 */ lw $t6, 0x50($a1) -/* B5F370 800E81D0 ADC50044 */ sw $a1, 0x44($t6) -/* B5F374 800E81D4 E4A40040 */ swc1 $f4, 0x40($a1) -/* B5F378 800E81D8 AFA5003C */ sw $a1, 0x3c($sp) -/* B5F37C 800E81DC 0C039B9A */ jal func_800E6E68 -/* B5F380 800E81E0 AFA40038 */ sw $a0, 0x38($sp) -/* B5F384 800E81E4 8FA5003C */ lw $a1, 0x3c($sp) -/* B5F388 800E81E8 8FA40038 */ lw $a0, 0x38($sp) -/* B5F38C 800E81EC 240100FF */ li $at, 255 -/* B5F390 800E81F0 90A60002 */ lbu $a2, 2($a1) -/* B5F394 800E81F4 248300C0 */ addiu $v1, $a0, 0xc0 -/* B5F398 800E81F8 54C10004 */ bnel $a2, $at, .L800E820C -/* B5F39C 800E81FC 8CB8004C */ lw $t8, 0x4c($a1) -/* B5F3A0 800E8200 8CAF0050 */ lw $t7, 0x50($a1) -/* B5F3A4 800E8204 85E60024 */ lh $a2, 0x24($t7) -/* B5F3A8 800E8208 8CB8004C */ lw $t8, 0x4c($a1) -.L800E820C: -/* B5F3AC 800E820C 28C10080 */ slti $at, $a2, 0x80 -/* B5F3B0 800E8210 14200008 */ bnez $at, .L800E8234 -/* B5F3B4 800E8214 AC780010 */ sw $t8, 0x10($v1) -/* B5F3B8 800E8218 28C100C0 */ slti $at, $a2, 0xc0 -/* B5F3BC 800E821C 50200006 */ beql $at, $zero, .L800E8238 -/* B5F3C0 800E8220 906A0001 */ lbu $t2, 1($v1) -/* B5F3C4 800E8224 90680001 */ lbu $t0, 1($v1) -/* B5F3C8 800E8228 35090004 */ ori $t1, $t0, 4 -/* B5F3CC 800E822C 10000004 */ b .L800E8240 -/* B5F3D0 800E8230 A0690001 */ sb $t1, 1($v1) -.L800E8234: -/* B5F3D4 800E8234 906A0001 */ lbu $t2, 1($v1) -.L800E8238: -/* B5F3D8 800E8238 314BFFFB */ andi $t3, $t2, 0xfffb -/* B5F3DC 800E823C A06B0001 */ sb $t3, 1($v1) -.L800E8240: -/* B5F3E0 800E8240 8C6C0000 */ lw $t4, ($v1) -/* B5F3E4 800E8244 000C7340 */ sll $t6, $t4, 0xd -/* B5F3E8 800E8248 05C30009 */ bgezl $t6, .L800E8270 -/* B5F3EC 800E824C 8CAF0050 */ lw $t7, 0x50($a1) -/* B5F3F0 800E8250 AFA3001C */ sw $v1, 0x1c($sp) -/* B5F3F4 800E8254 AFA40038 */ sw $a0, 0x38($sp) -/* B5F3F8 800E8258 0C039EE8 */ jal func_800E7BA0 -/* B5F3FC 800E825C AFA5003C */ sw $a1, 0x3c($sp) -/* B5F400 800E8260 8FA3001C */ lw $v1, 0x1c($sp) -/* B5F404 800E8264 8FA40038 */ lw $a0, 0x38($sp) -/* B5F408 800E8268 8FA5003C */ lw $a1, 0x3c($sp) -/* B5F40C 800E826C 8CAF0050 */ lw $t7, 0x50($a1) -.L800E8270: -/* B5F410 800E8270 24820030 */ addiu $v0, $a0, 0x30 -/* B5F414 800E8274 91F80007 */ lbu $t8, 7($t7) -/* B5F418 800E8278 A0580003 */ sb $t8, 3($v0) -/* B5F41C 800E827C 8CB90050 */ lw $t9, 0x50($a1) -/* B5F420 800E8280 8F280000 */ lw $t0, ($t9) -/* B5F424 800E8284 00084940 */ sll $t1, $t0, 5 -/* B5F428 800E8288 000957C2 */ srl $t2, $t1, 0x1f -/* B5F42C 800E828C A04A0005 */ sb $t2, 5($v0) -/* B5F430 800E8290 8CAB0050 */ lw $t3, 0x50($a1) -/* B5F434 800E8294 90790001 */ lbu $t9, 1($v1) -/* B5F438 800E8298 916C0008 */ lbu $t4, 8($t3) -/* B5F43C 800E829C 3328FF1F */ andi $t0, $t9, 0xff1f -/* B5F440 800E82A0 318E0003 */ andi $t6, $t4, 3 -/* B5F444 800E82A4 000EC140 */ sll $t8, $t6, 5 -/* B5F448 800E82A8 03084825 */ or $t1, $t8, $t0 -/* B5F44C 800E82AC A0690001 */ sb $t1, 1($v1) -/* B5F450 800E82B0 8FBF0014 */ lw $ra, 0x14($sp) -/* B5F454 800E82B4 27BD0038 */ addiu $sp, $sp, 0x38 -/* B5F458 800E82B8 03E00008 */ jr $ra -/* B5F45C 800E82BC 00000000 */ nop - -glabel func_800E82C0 -/* B5F460 800E82C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B5F464 800E82C4 AFBF0014 */ sw $ra, 0x14($sp) -/* B5F468 800E82C8 AFA40018 */ sw $a0, 0x18($sp) -/* B5F46C 800E82CC AFA5001C */ sw $a1, 0x1c($sp) -/* B5F470 800E82D0 0C039EE0 */ jal func_800E7B80 -/* B5F474 800E82D4 8C840044 */ lw $a0, 0x44($a0) -/* B5F478 800E82D8 8FAF001C */ lw $t7, 0x1c($sp) -/* B5F47C 800E82DC 8FB80018 */ lw $t8, 0x18($sp) -/* B5F480 800E82E0 AF0F0048 */ sw $t7, 0x48($t8) -/* B5F484 800E82E4 8FBF0014 */ lw $ra, 0x14($sp) -/* B5F488 800E82E8 27BD0018 */ addiu $sp, $sp, 0x18 -/* B5F48C 800E82EC 03E00008 */ jr $ra -/* B5F490 800E82F0 00000000 */ nop - -glabel func_800E82F4 -/* B5F494 800E82F4 AC850048 */ sw $a1, 0x48($a0) -/* B5F498 800E82F8 8CAE0050 */ lw $t6, 0x50($a1) -/* B5F49C 800E82FC 90990070 */ lbu $t9, 0x70($a0) -/* B5F4A0 800E8300 3C018017 */ lui $at, %hi(D_801719E4) -/* B5F4A4 800E8304 91CF0005 */ lbu $t7, 5($t6) -/* B5F4A8 800E8308 37280010 */ ori $t0, $t9, 0x10 -/* B5F4AC 800E830C A08F0030 */ sb $t7, 0x30($a0) -/* B5F4B0 800E8310 C42419E4 */ lwc1 $f4, %lo(D_801719E4)($at) -/* B5F4B4 800E8314 A0880070 */ sb $t0, 0x70($a0) -/* B5F4B8 800E8318 03E00008 */ jr $ra -/* B5F4BC 800E831C E484007C */ swc1 $f4, 0x7c($a0) - -glabel func_800E8320 -/* B5F4C0 800E8320 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B5F4C4 800E8324 AFBF0014 */ sw $ra, 0x14($sp) -/* B5F4C8 800E8328 AFA40020 */ sw $a0, 0x20($sp) -/* B5F4CC 800E832C 0C03A71A */ jal func_800E9C68 -/* B5F4D0 800E8330 AFA50024 */ sw $a1, 0x24($sp) -/* B5F4D4 800E8334 10400008 */ beqz $v0, .L800E8358 -/* B5F4D8 800E8338 AFA2001C */ sw $v0, 0x1c($sp) -/* B5F4DC 800E833C 00402025 */ move $a0, $v0 -/* B5F4E0 800E8340 0C03A062 */ jal func_800E8188 -/* B5F4E4 800E8344 8FA50024 */ lw $a1, 0x24($sp) -/* B5F4E8 800E8348 8FA40020 */ lw $a0, 0x20($sp) -/* B5F4EC 800E834C 8FA5001C */ lw $a1, 0x1c($sp) -/* B5F4F0 800E8350 0C03A027 */ jal func_800E809C -/* B5F4F4 800E8354 24840030 */ addiu $a0, $a0, 0x30 -.L800E8358: -/* B5F4F8 800E8358 8FBF0014 */ lw $ra, 0x14($sp) -/* B5F4FC 800E835C 8FA2001C */ lw $v0, 0x1c($sp) -/* B5F500 800E8360 27BD0020 */ addiu $sp, $sp, 0x20 -/* B5F504 800E8364 03E00008 */ jr $ra -/* B5F508 800E8368 00000000 */ nop - -glabel func_800E836C -/* B5F50C 800E836C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B5F510 800E8370 AFBF0014 */ sw $ra, 0x14($sp) -/* B5F514 800E8374 AFA40020 */ sw $a0, 0x20($sp) -/* B5F518 800E8378 AFA50024 */ sw $a1, 0x24($sp) -/* B5F51C 800E837C 0C03A71A */ jal func_800E9C68 -/* B5F520 800E8380 24840010 */ addiu $a0, $a0, 0x10 -/* B5F524 800E8384 10400008 */ beqz $v0, .L800E83A8 -/* B5F528 800E8388 AFA2001C */ sw $v0, 0x1c($sp) -/* B5F52C 800E838C 00402025 */ move $a0, $v0 -/* B5F530 800E8390 0C03A0BD */ jal func_800E82F4 -/* B5F534 800E8394 8FA50024 */ lw $a1, 0x24($sp) -/* B5F538 800E8398 8FA40020 */ lw $a0, 0x20($sp) -/* B5F53C 800E839C 8FA5001C */ lw $a1, 0x1c($sp) -/* B5F540 800E83A0 0C03A70A */ jal func_800E9C28 -/* B5F544 800E83A4 24840020 */ addiu $a0, $a0, 0x20 -.L800E83A8: -/* B5F548 800E83A8 8FBF0014 */ lw $ra, 0x14($sp) -/* B5F54C 800E83AC 8FA2001C */ lw $v0, 0x1c($sp) -/* B5F550 800E83B0 27BD0020 */ addiu $sp, $sp, 0x20 -/* B5F554 800E83B4 03E00008 */ jr $ra -/* B5F558 800E83B8 00000000 */ nop - -glabel func_800E83BC -/* B5F55C 800E83BC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* B5F560 800E83C0 240E0010 */ li $t6, 16 -/* B5F564 800E83C4 240F0010 */ li $t7, 16 -/* B5F568 800E83C8 AFBF001C */ sw $ra, 0x1c($sp) -/* B5F56C 800E83CC AFB10018 */ sw $s1, 0x18($sp) -/* B5F570 800E83D0 AFB00014 */ sw $s0, 0x14($sp) -/* B5F574 800E83D4 AFAF002C */ sw $t7, 0x2c($sp) -/* B5F578 800E83D8 AFAE0028 */ sw $t6, 0x28($sp) -/* B5F57C 800E83DC 8CB80050 */ lw $t8, 0x50($a1) -/* B5F580 800E83E0 00808025 */ move $s0, $a0 -/* B5F584 800E83E4 00A08825 */ move $s1, $a1 -/* B5F588 800E83E8 24840020 */ addiu $a0, $a0, 0x20 -/* B5F58C 800E83EC 93050005 */ lbu $a1, 5($t8) -/* B5F590 800E83F0 0C03A042 */ jal func_800E8108 -/* B5F594 800E83F4 AFA40024 */ sw $a0, 0x24($sp) -/* B5F598 800E83F8 10400003 */ beqz $v0, .L800E8408 -/* B5F59C 800E83FC 00401825 */ move $v1, $v0 -/* B5F5A0 800E8400 90590030 */ lbu $t9, 0x30($v0) -/* B5F5A4 800E8404 AFB9002C */ sw $t9, 0x2c($sp) -.L800E8408: -/* B5F5A8 800E8408 8E280050 */ lw $t0, 0x50($s1) -/* B5F5AC 800E840C 26040030 */ addiu $a0, $s0, 0x30 -/* B5F5B0 800E8410 91050005 */ lbu $a1, 5($t0) -/* B5F5B4 800E8414 0C03A042 */ jal func_800E8108 -/* B5F5B8 800E8418 AFA30034 */ sw $v1, 0x34($sp) -/* B5F5BC 800E841C 8FA30034 */ lw $v1, 0x34($sp) -/* B5F5C0 800E8420 10400003 */ beqz $v0, .L800E8430 -/* B5F5C4 800E8424 00408025 */ move $s0, $v0 -/* B5F5C8 800E8428 90490030 */ lbu $t1, 0x30($v0) -/* B5F5CC 800E842C AFA90028 */ sw $t1, 0x28($sp) -.L800E8430: -/* B5F5D0 800E8430 14600005 */ bnez $v1, .L800E8448 -/* B5F5D4 800E8434 8FAA0028 */ lw $t2, 0x28($sp) -/* B5F5D8 800E8438 54400004 */ bnezl $v0, .L800E844C -/* B5F5DC 800E843C 8FAB002C */ lw $t3, 0x2c($sp) -/* B5F5E0 800E8440 10000017 */ b .L800E84A0 -/* B5F5E4 800E8444 00001025 */ move $v0, $zero -.L800E8448: -/* B5F5E8 800E8448 8FAB002C */ lw $t3, 0x2c($sp) -.L800E844C: -/* B5F5EC 800E844C 014B082A */ slt $at, $t2, $t3 -/* B5F5F0 800E8450 5020000F */ beql $at, $zero, .L800E8490 -/* B5F5F4 800E8454 AC710048 */ sw $s1, 0x48($v1) -/* B5F5F8 800E8458 0C03A037 */ jal func_800E80DC -/* B5F5FC 800E845C 02002025 */ move $a0, $s0 -/* B5F600 800E8460 02002025 */ move $a0, $s0 -/* B5F604 800E8464 0C03A0B0 */ jal func_800E82C0 -/* B5F608 800E8468 02202825 */ move $a1, $s1 -/* B5F60C 800E846C 8FA40024 */ lw $a0, 0x24($sp) -/* B5F610 800E8470 0C03A70A */ jal func_800E9C28 -/* B5F614 800E8474 02002825 */ move $a1, $s0 -/* B5F618 800E8478 8E2C0050 */ lw $t4, 0x50($s1) -/* B5F61C 800E847C 02001025 */ move $v0, $s0 -/* B5F620 800E8480 918D0005 */ lbu $t5, 5($t4) -/* B5F624 800E8484 10000006 */ b .L800E84A0 -/* B5F628 800E8488 A20D0030 */ sb $t5, 0x30($s0) -/* B5F62C 800E848C AC710048 */ sw $s1, 0x48($v1) -.L800E8490: -/* B5F630 800E8490 8E2E0050 */ lw $t6, 0x50($s1) -/* B5F634 800E8494 00601025 */ move $v0, $v1 -/* B5F638 800E8498 91CF0005 */ lbu $t7, 5($t6) -/* B5F63C 800E849C A06F0030 */ sb $t7, 0x30($v1) -.L800E84A0: -/* B5F640 800E84A0 8FBF001C */ lw $ra, 0x1c($sp) -/* B5F644 800E84A4 8FB00014 */ lw $s0, 0x14($sp) -/* B5F648 800E84A8 8FB10018 */ lw $s1, 0x18($sp) -/* B5F64C 800E84AC 03E00008 */ jr $ra -/* B5F650 800E84B0 27BD0038 */ addiu $sp, $sp, 0x38 - -glabel func_800E84B4 -/* B5F654 800E84B4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B5F658 800E84B8 AFBF001C */ sw $ra, 0x1c($sp) -/* B5F65C 800E84BC AFB00018 */ sw $s0, 0x18($sp) -/* B5F660 800E84C0 8C830050 */ lw $v1, 0x50($a0) -/* B5F664 800E84C4 00808025 */ move $s0, $a0 -/* B5F668 800E84C8 90620002 */ lbu $v0, 2($v1) -/* B5F66C 800E84CC 304E0001 */ andi $t6, $v0, 1 -/* B5F670 800E84D0 11C00016 */ beqz $t6, .L800E852C -/* B5F674 800E84D4 30590002 */ andi $t9, $v0, 2 -/* B5F678 800E84D8 8C86002C */ lw $a2, 0x2c($a0) -/* B5F67C 800E84DC 10C00013 */ beqz $a2, .L800E852C -/* B5F680 800E84E0 00000000 */ nop -/* B5F684 800E84E4 8CCF0040 */ lw $t7, 0x40($a2) -/* B5F688 800E84E8 148F0010 */ bne $a0, $t7, .L800E852C -/* B5F68C 800E84EC 00000000 */ nop -/* B5F690 800E84F0 8CD80048 */ lw $t8, 0x48($a2) -/* B5F694 800E84F4 2401FFFF */ li $at, -1 -/* B5F698 800E84F8 00C02025 */ move $a0, $a2 -/* B5F69C 800E84FC 1701000B */ bne $t8, $at, .L800E852C -/* B5F6A0 800E8500 02002825 */ move $a1, $s0 -/* B5F6A4 800E8504 0C03A0BD */ jal func_800E82F4 -/* B5F6A8 800E8508 AFA60024 */ sw $a2, 0x24($sp) -/* B5F6AC 800E850C 0C03A037 */ jal func_800E80DC -/* B5F6B0 800E8510 8FA40024 */ lw $a0, 0x24($sp) -/* B5F6B4 800E8514 8FA50024 */ lw $a1, 0x24($sp) -/* B5F6B8 800E8518 8CA4000C */ lw $a0, 0xc($a1) -/* B5F6BC 800E851C 0C03A70A */ jal func_800E9C28 -/* B5F6C0 800E8520 24840020 */ addiu $a0, $a0, 0x20 -/* B5F6C4 800E8524 10000093 */ b .L800E8774 -/* B5F6C8 800E8528 8FA20024 */ lw $v0, 0x24($sp) -.L800E852C: -/* B5F6CC 800E852C 13200014 */ beqz $t9, .L800E8580 -/* B5F6D0 800E8530 30480004 */ andi $t0, $v0, 4 -/* B5F6D4 800E8534 24640084 */ addiu $a0, $v1, 0x84 -/* B5F6D8 800E8538 0C03A0C8 */ jal func_800E8320 -/* B5F6DC 800E853C 02002825 */ move $a1, $s0 -/* B5F6E0 800E8540 1440000D */ bnez $v0, .L800E8578 -/* B5F6E4 800E8544 00403025 */ move $a2, $v0 -/* B5F6E8 800E8548 8E040050 */ lw $a0, 0x50($s0) -/* B5F6EC 800E854C 02002825 */ move $a1, $s0 -/* B5F6F0 800E8550 0C03A0DB */ jal func_800E836C -/* B5F6F4 800E8554 24840084 */ addiu $a0, $a0, 0x84 -/* B5F6F8 800E8558 14400007 */ bnez $v0, .L800E8578 -/* B5F6FC 800E855C 00403025 */ move $a2, $v0 -/* B5F700 800E8560 8E040050 */ lw $a0, 0x50($s0) -/* B5F704 800E8564 02002825 */ move $a1, $s0 -/* B5F708 800E8568 0C03A0EF */ jal func_800E83BC -/* B5F70C 800E856C 24840084 */ addiu $a0, $a0, 0x84 -/* B5F710 800E8570 1040007C */ beqz $v0, .L800E8764 -/* B5F714 800E8574 00403025 */ move $a2, $v0 -.L800E8578: -/* B5F718 800E8578 1000007E */ b .L800E8774 -/* B5F71C 800E857C 00C01025 */ move $v0, $a2 -.L800E8580: -/* B5F720 800E8580 11000029 */ beqz $t0, .L800E8628 -/* B5F724 800E8584 304C0008 */ andi $t4, $v0, 8 -/* B5F728 800E8588 24640084 */ addiu $a0, $v1, 0x84 -/* B5F72C 800E858C 0C03A0C8 */ jal func_800E8320 -/* B5F730 800E8590 02002825 */ move $a1, $s0 -/* B5F734 800E8594 14400022 */ bnez $v0, .L800E8620 -/* B5F738 800E8598 00403025 */ move $a2, $v0 -/* B5F73C 800E859C 8E090050 */ lw $t1, 0x50($s0) -/* B5F740 800E85A0 02002825 */ move $a1, $s0 -/* B5F744 800E85A4 8D24004C */ lw $a0, 0x4c($t1) -/* B5F748 800E85A8 0C03A0C8 */ jal func_800E8320 -/* B5F74C 800E85AC 2484009C */ addiu $a0, $a0, 0x9c -/* B5F750 800E85B0 1440001B */ bnez $v0, .L800E8620 -/* B5F754 800E85B4 00403025 */ move $a2, $v0 -/* B5F758 800E85B8 8E040050 */ lw $a0, 0x50($s0) -/* B5F75C 800E85BC 02002825 */ move $a1, $s0 -/* B5F760 800E85C0 0C03A0DB */ jal func_800E836C -/* B5F764 800E85C4 24840084 */ addiu $a0, $a0, 0x84 -/* B5F768 800E85C8 14400015 */ bnez $v0, .L800E8620 -/* B5F76C 800E85CC 00403025 */ move $a2, $v0 -/* B5F770 800E85D0 8E0A0050 */ lw $t2, 0x50($s0) -/* B5F774 800E85D4 02002825 */ move $a1, $s0 -/* B5F778 800E85D8 8D44004C */ lw $a0, 0x4c($t2) -/* B5F77C 800E85DC 0C03A0DB */ jal func_800E836C -/* B5F780 800E85E0 2484009C */ addiu $a0, $a0, 0x9c -/* B5F784 800E85E4 1440000E */ bnez $v0, .L800E8620 -/* B5F788 800E85E8 00403025 */ move $a2, $v0 -/* B5F78C 800E85EC 8E040050 */ lw $a0, 0x50($s0) -/* B5F790 800E85F0 02002825 */ move $a1, $s0 -/* B5F794 800E85F4 0C03A0EF */ jal func_800E83BC -/* B5F798 800E85F8 24840084 */ addiu $a0, $a0, 0x84 -/* B5F79C 800E85FC 14400008 */ bnez $v0, .L800E8620 -/* B5F7A0 800E8600 00403025 */ move $a2, $v0 -/* B5F7A4 800E8604 8E0B0050 */ lw $t3, 0x50($s0) -/* B5F7A8 800E8608 02002825 */ move $a1, $s0 -/* B5F7AC 800E860C 8D64004C */ lw $a0, 0x4c($t3) -/* B5F7B0 800E8610 0C03A0EF */ jal func_800E83BC -/* B5F7B4 800E8614 2484009C */ addiu $a0, $a0, 0x9c -/* B5F7B8 800E8618 10400052 */ beqz $v0, .L800E8764 -/* B5F7BC 800E861C 00403025 */ move $a2, $v0 -.L800E8620: -/* B5F7C0 800E8620 10000054 */ b .L800E8774 -/* B5F7C4 800E8624 00C01025 */ move $v0, $a2 -.L800E8628: -/* B5F7C8 800E8628 11800015 */ beqz $t4, .L800E8680 -/* B5F7CC 800E862C 24640084 */ addiu $a0, $v1, 0x84 -/* B5F7D0 800E8630 3C048017 */ lui $a0, %hi(D_80174D18) # $a0, 0x8017 -/* B5F7D4 800E8634 24844D18 */ addiu $a0, %lo(D_80174D18) # addiu $a0, $a0, 0x4d18 -/* B5F7D8 800E8638 0C03A0C8 */ jal func_800E8320 -/* B5F7DC 800E863C 02002825 */ move $a1, $s0 -/* B5F7E0 800E8640 1440000D */ bnez $v0, .L800E8678 -/* B5F7E4 800E8644 00403025 */ move $a2, $v0 -/* B5F7E8 800E8648 3C048017 */ lui $a0, %hi(D_80174D18) # $a0, 0x8017 -/* B5F7EC 800E864C 24844D18 */ addiu $a0, %lo(D_80174D18) # addiu $a0, $a0, 0x4d18 -/* B5F7F0 800E8650 0C03A0DB */ jal func_800E836C -/* B5F7F4 800E8654 02002825 */ move $a1, $s0 -/* B5F7F8 800E8658 14400007 */ bnez $v0, .L800E8678 -/* B5F7FC 800E865C 00403025 */ move $a2, $v0 -/* B5F800 800E8660 3C048017 */ lui $a0, %hi(D_80174D18) # $a0, 0x8017 -/* B5F804 800E8664 24844D18 */ addiu $a0, %lo(D_80174D18) # addiu $a0, $a0, 0x4d18 -/* B5F808 800E8668 0C03A0EF */ jal func_800E83BC -/* B5F80C 800E866C 02002825 */ move $a1, $s0 -/* B5F810 800E8670 1040003C */ beqz $v0, .L800E8764 -/* B5F814 800E8674 00403025 */ move $a2, $v0 -.L800E8678: -/* B5F818 800E8678 1000003E */ b .L800E8774 -/* B5F81C 800E867C 00C01025 */ move $v0, $a2 -.L800E8680: -/* B5F820 800E8680 0C03A0C8 */ jal func_800E8320 -/* B5F824 800E8684 02002825 */ move $a1, $s0 -/* B5F828 800E8688 14400034 */ bnez $v0, .L800E875C -/* B5F82C 800E868C 00403025 */ move $a2, $v0 -/* B5F830 800E8690 8E0D0050 */ lw $t5, 0x50($s0) -/* B5F834 800E8694 02002825 */ move $a1, $s0 -/* B5F838 800E8698 8DA4004C */ lw $a0, 0x4c($t5) -/* B5F83C 800E869C 0C03A0C8 */ jal func_800E8320 -/* B5F840 800E86A0 2484009C */ addiu $a0, $a0, 0x9c -/* B5F844 800E86A4 1440002D */ bnez $v0, .L800E875C -/* B5F848 800E86A8 00403025 */ move $a2, $v0 -/* B5F84C 800E86AC 3C048017 */ lui $a0, %hi(D_80174D18) # $a0, 0x8017 -/* B5F850 800E86B0 24844D18 */ addiu $a0, %lo(D_80174D18) # addiu $a0, $a0, 0x4d18 -/* B5F854 800E86B4 0C03A0C8 */ jal func_800E8320 -/* B5F858 800E86B8 02002825 */ move $a1, $s0 -/* B5F85C 800E86BC 14400027 */ bnez $v0, .L800E875C -/* B5F860 800E86C0 00403025 */ move $a2, $v0 -/* B5F864 800E86C4 8E040050 */ lw $a0, 0x50($s0) -/* B5F868 800E86C8 02002825 */ move $a1, $s0 -/* B5F86C 800E86CC 0C03A0DB */ jal func_800E836C -/* B5F870 800E86D0 24840084 */ addiu $a0, $a0, 0x84 -/* B5F874 800E86D4 14400021 */ bnez $v0, .L800E875C -/* B5F878 800E86D8 00403025 */ move $a2, $v0 -/* B5F87C 800E86DC 8E0E0050 */ lw $t6, 0x50($s0) -/* B5F880 800E86E0 02002825 */ move $a1, $s0 -/* B5F884 800E86E4 8DC4004C */ lw $a0, 0x4c($t6) -/* B5F888 800E86E8 0C03A0DB */ jal func_800E836C -/* B5F88C 800E86EC 2484009C */ addiu $a0, $a0, 0x9c -/* B5F890 800E86F0 1440001A */ bnez $v0, .L800E875C -/* B5F894 800E86F4 00403025 */ move $a2, $v0 -/* B5F898 800E86F8 3C048017 */ lui $a0, %hi(D_80174D18) # $a0, 0x8017 -/* B5F89C 800E86FC 24844D18 */ addiu $a0, %lo(D_80174D18) # addiu $a0, $a0, 0x4d18 -/* B5F8A0 800E8700 0C03A0DB */ jal func_800E836C -/* B5F8A4 800E8704 02002825 */ move $a1, $s0 -/* B5F8A8 800E8708 14400014 */ bnez $v0, .L800E875C -/* B5F8AC 800E870C 00403025 */ move $a2, $v0 -/* B5F8B0 800E8710 8E040050 */ lw $a0, 0x50($s0) -/* B5F8B4 800E8714 02002825 */ move $a1, $s0 -/* B5F8B8 800E8718 0C03A0EF */ jal func_800E83BC -/* B5F8BC 800E871C 24840084 */ addiu $a0, $a0, 0x84 -/* B5F8C0 800E8720 1440000E */ bnez $v0, .L800E875C -/* B5F8C4 800E8724 00403025 */ move $a2, $v0 -/* B5F8C8 800E8728 8E0F0050 */ lw $t7, 0x50($s0) -/* B5F8CC 800E872C 02002825 */ move $a1, $s0 -/* B5F8D0 800E8730 8DE4004C */ lw $a0, 0x4c($t7) -/* B5F8D4 800E8734 0C03A0EF */ jal func_800E83BC -/* B5F8D8 800E8738 2484009C */ addiu $a0, $a0, 0x9c -/* B5F8DC 800E873C 14400007 */ bnez $v0, .L800E875C -/* B5F8E0 800E8740 00403025 */ move $a2, $v0 -/* B5F8E4 800E8744 3C048017 */ lui $a0, %hi(D_80174D18) # $a0, 0x8017 -/* B5F8E8 800E8748 24844D18 */ addiu $a0, %lo(D_80174D18) # addiu $a0, $a0, 0x4d18 -/* B5F8EC 800E874C 0C03A0EF */ jal func_800E83BC -/* B5F8F0 800E8750 02002825 */ move $a1, $s0 -/* B5F8F4 800E8754 10400003 */ beqz $v0, .L800E8764 -/* B5F8F8 800E8758 00403025 */ move $a2, $v0 -.L800E875C: -/* B5F8FC 800E875C 10000005 */ b .L800E8774 -/* B5F900 800E8760 00C01025 */ move $v0, $a2 -.L800E8764: -/* B5F904 800E8764 92190000 */ lbu $t9, ($s0) -/* B5F908 800E8768 00001025 */ move $v0, $zero -/* B5F90C 800E876C 37280008 */ ori $t0, $t9, 8 -/* B5F910 800E8770 A2080000 */ sb $t0, ($s0) -.L800E8774: -/* B5F914 800E8774 8FBF001C */ lw $ra, 0x1c($sp) -/* B5F918 800E8778 8FB00018 */ lw $s0, 0x18($sp) -/* B5F91C 800E877C 27BD0028 */ addiu $sp, $sp, 0x28 -/* B5F920 800E8780 03E00008 */ jr $ra -/* B5F924 800E8784 00000000 */ nop - -glabel func_800E8788 -/* B5F928 800E8788 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* B5F92C 800E878C AFB40030 */ sw $s4, 0x30($sp) -/* B5F930 800E8790 3C148017 */ lui $s4, %hi(D_8016F180) # $s4, 0x8017 -/* B5F934 800E8794 2694F180 */ addiu $s4, %lo(D_8016F180) # addiu $s4, $s4, -0xe80 -/* B5F938 800E8798 8E8E2894 */ lw $t6, 0x2894($s4) -/* B5F93C 800E879C AFB10024 */ sw $s1, 0x24($sp) -/* B5F940 800E87A0 AFBF003C */ sw $ra, 0x3c($sp) -/* B5F944 800E87A4 AFB60038 */ sw $s6, 0x38($sp) -/* B5F948 800E87A8 AFB50034 */ sw $s5, 0x34($sp) -/* B5F94C 800E87AC AFB3002C */ sw $s3, 0x2c($sp) -/* B5F950 800E87B0 AFB20028 */ sw $s2, 0x28($sp) -/* B5F954 800E87B4 AFB00020 */ sw $s0, 0x20($sp) -/* B5F958 800E87B8 F7B40018 */ sdc1 $f20, 0x18($sp) -/* B5F95C 800E87BC 19C00032 */ blez $t6, .L800E8888 -/* B5F960 800E87C0 00008825 */ move $s1, $zero -/* B5F964 800E87C4 3C168017 */ lui $s6, %hi(D_80171B40) # $s6, 0x8017 -/* B5F968 800E87C8 3C158013 */ lui $s5, %hi(D_8012FAE4) -/* B5F96C 800E87CC 4480A000 */ mtc1 $zero, $f20 -/* B5F970 800E87D0 26B5FAE4 */ addiu $s5, %lo(D_8012FAE4) -/* B5F974 800E87D4 26D61B40 */ addiu $s6, %lo(D_80171B40) # addiu $s6, $s6, 0x1b40 -/* B5F978 800E87D8 00009025 */ move $s2, $zero -/* B5F97C 800E87DC 2413FFFF */ li $s3, -1 -/* B5F980 800E87E0 8E8F352C */ lw $t7, 0x352c($s4) -.L800E87E4: -/* B5F984 800E87E4 8EB90000 */ lw $t9, ($s5) -/* B5F988 800E87E8 02C02025 */ move $a0, $s6 -/* B5F98C 800E87EC 024F8021 */ addu $s0, $s2, $t7 -/* B5F990 800E87F0 AE1900C0 */ sw $t9, 0xc0($s0) -/* B5F994 800E87F4 8EB80004 */ lw $t8, 4($s5) -/* B5F998 800E87F8 240501E0 */ li $a1, 480 -/* B5F99C 800E87FC AE1800C4 */ sw $t8, 0xc4($s0) -/* B5F9A0 800E8800 8EB90008 */ lw $t9, 8($s5) -/* B5F9A4 800E8804 AE1900C8 */ sw $t9, 0xc8($s0) -/* B5F9A8 800E8808 8EB8000C */ lw $t8, 0xc($s5) -/* B5F9AC 800E880C AE1800CC */ sw $t8, 0xcc($s0) -/* B5F9B0 800E8810 8EB90010 */ lw $t9, 0x10($s5) -/* B5F9B4 800E8814 AE1900D0 */ sw $t9, 0xd0($s0) -/* B5F9B8 800E8818 8EB80014 */ lw $t8, 0x14($s5) -/* B5F9BC 800E881C AE1800D4 */ sw $t8, 0xd4($s0) -/* B5F9C0 800E8820 8EB90018 */ lw $t9, 0x18($s5) -/* B5F9C4 800E8824 AE1900D8 */ sw $t9, 0xd8($s0) -/* B5F9C8 800E8828 8EB8001C */ lw $t8, 0x1c($s5) -/* B5F9CC 800E882C A2000030 */ sb $zero, 0x30($s0) -/* B5F9D0 800E8830 A2000034 */ sb $zero, 0x34($s0) -/* B5F9D4 800E8834 AE130044 */ sw $s3, 0x44($s0) -/* B5F9D8 800E8838 AE130048 */ sw $s3, 0x48($s0) -/* B5F9DC 800E883C AE130040 */ sw $s3, 0x40($s0) -/* B5F9E0 800E8840 A2000031 */ sb $zero, 0x31($s0) -/* B5F9E4 800E8844 E6140058 */ swc1 $f20, 0x58($s0) -/* B5F9E8 800E8848 A6000036 */ sh $zero, 0x36($s0) -/* B5F9EC 800E884C A2000070 */ sb $zero, 0x70($s0) -/* B5F9F0 800E8850 A20000B0 */ sb $zero, 0xb0($s0) -/* B5F9F4 800E8854 A6000092 */ sh $zero, 0x92($s0) -/* B5F9F8 800E8858 A6000094 */ sh $zero, 0x94($s0) -/* B5F9FC 800E885C A2000035 */ sb $zero, 0x35($s0) -/* B5FA00 800E8860 AE0000BC */ sw $zero, 0xbc($s0) -/* B5FA04 800E8864 0C0378C2 */ jal func_800DE308 -/* B5FA08 800E8868 AE1800DC */ sw $t8, 0xdc($s0) -/* B5FA0C 800E886C AE02001C */ sw $v0, 0x1c($s0) -/* B5FA10 800E8870 8E882894 */ lw $t0, 0x2894($s4) -/* B5FA14 800E8874 26310001 */ addiu $s1, $s1, 1 -/* B5FA18 800E8878 265200E0 */ addiu $s2, $s2, 0xe0 -/* B5FA1C 800E887C 0228082A */ slt $at, $s1, $t0 -/* B5FA20 800E8880 5420FFD8 */ bnezl $at, .L800E87E4 -/* B5FA24 800E8884 8E8F352C */ lw $t7, 0x352c($s4) -.L800E8888: -/* B5FA28 800E8888 8FBF003C */ lw $ra, 0x3c($sp) -/* B5FA2C 800E888C D7B40018 */ ldc1 $f20, 0x18($sp) -/* B5FA30 800E8890 8FB00020 */ lw $s0, 0x20($sp) -/* B5FA34 800E8894 8FB10024 */ lw $s1, 0x24($sp) -/* B5FA38 800E8898 8FB20028 */ lw $s2, 0x28($sp) -/* B5FA3C 800E889C 8FB3002C */ lw $s3, 0x2c($sp) -/* B5FA40 800E88A0 8FB40030 */ lw $s4, 0x30($sp) -/* B5FA44 800E88A4 8FB50034 */ lw $s5, 0x34($sp) -/* B5FA48 800E88A8 8FB60038 */ lw $s6, 0x38($sp) -/* B5FA4C 800E88AC 03E00008 */ jr $ra -/* B5FA50 800E88B0 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/asm/code_800E88C0.s b/asm/code_800E88C0.s index 44db244ede..8646726a68 100644 --- a/asm/code_800E88C0.s +++ b/asm/code_800E88C0.s @@ -521,7 +521,7 @@ glabel func_800E8FB8 /* B6017C 800E8FDC 03E00008 */ jr $ra /* B60180 800E8FE0 AC980098 */ sw $t8, 0x98($a0) -glabel func_800E8FE4 +glabel Audio_AdsrInit /* B60184 800E8FE4 AFA60008 */ sw $a2, 8($sp) /* B60188 800E8FE8 44800000 */ mtc1 $zero, $f0 /* B6018C 800E8FEC A0800000 */ sb $zero, ($a0) diff --git a/asm/code_800E9340.s b/asm/code_800E9340.s index 1250911404..036317aceb 100644 --- a/asm/code_800E9340.s +++ b/asm/code_800E9340.s @@ -180,8 +180,8 @@ glabel L800E9530 /* B60720 800E9580 00000000 */ nop glabel func_800E9584 -/* B60724 800E9584 3C0E8017 */ lui $t6, %hi(D_8016F180) # $t6, 0x8017 -/* B60728 800E9588 25CEF180 */ addiu $t6, %lo(D_8016F180) # addiu $t6, $t6, -0xe80 +/* B60724 800E9584 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017 +/* B60728 800E9588 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80 /* B6072C 800E958C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* B60730 800E9590 25CF5AB0 */ addiu $t7, $t6, 0x5ab0 /* B60734 800E9594 AFBF0014 */ sw $ra, 0x14($sp) @@ -260,7 +260,7 @@ glabel func_800E9584 /* B60854 800E96B4 90B90000 */ lbu $t9, ($a1) /* B60858 800E96B8 24A40084 */ addiu $a0, $a1, 0x84 /* 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) .L800E96C8: /* B60868 800E96C8 8FBF0014 */ lw $ra, 0x14($sp) @@ -279,7 +279,7 @@ glabel func_800E96D8 /* B60894 800E96F4 00E02025 */ move $a0, $a3 /* B60898 800E96F8 3C048017 */ lui $a0, %hi(D_80174D08) /* 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) /* B608A8 800E9708 8FA6001C */ lw $a2, 0x1c($sp) /* B608AC 800E970C 14400007 */ bnez $v0, .L800E972C @@ -288,7 +288,7 @@ glabel func_800E96D8 /* B608B8 800E9718 10000034 */ b .L800E97EC /* B608BC 800E971C 2402FFFF */ li $v0, -1 .L800E9720: -/* B608C0 800E9720 0C039ED8 */ jal func_800E7B60 +/* B608C0 800E9720 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay /* B608C4 800E9724 AFA6001C */ sw $a2, 0x1c($sp) /* B608C8 800E9728 8FA6001C */ lw $a2, 0x1c($sp) .L800E972C: @@ -362,12 +362,12 @@ glabel func_800E97FC /* B609CC 800E982C 001947C2 */ srl $t0, $t9, 0x1f /* B609D0 800E9830 15010005 */ bne $t0, $at, .L800E9848 /* B609D4 800E9834 00000000 */ nop -/* B609D8 800E9838 0C039EE0 */ jal func_800E7B80 +/* B609D8 800E9838 0C039EE0 */ jal Audio_SeqChanLayerNoteRelease /* B609DC 800E983C AFA40018 */ sw $a0, 0x18($sp) /* B609E0 800E9840 10000004 */ b .L800E9854 /* B609E4 800E9844 8FA40018 */ lw $a0, 0x18($sp) .L800E9848: -/* B609E8 800E9848 0C039ED8 */ jal func_800E7B60 +/* B609E8 800E9848 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay /* B609EC 800E984C AFA40018 */ sw $a0, 0x18($sp) /* B609F0 800E9850 8FA40018 */ lw $a0, 0x18($sp) .L800E9854: @@ -393,7 +393,7 @@ glabel func_800E9878 /* B60A34 800E9894 10C00008 */ beqz $a2, .L800E98B8 /* B60A38 800E9898 24C50070 */ addiu $a1, $a2, 0x70 /* 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) /* B60A48 800E98A8 0C03A5FF */ jal func_800E97FC /* B60A4C 800E98AC 8FA4001C */ lw $a0, 0x1c($sp) @@ -421,7 +421,7 @@ glabel func_800E98C8 /* B60A94 800E98F4 26100001 */ addiu $s0, $s0, 1 /* B60A98 800E98F8 5612FFFC */ bnel $s0, $s2, .L800E98EC /* 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 /* B60AA8 800E9908 922E0000 */ lbu $t6, ($s1) /* B60AAC 800E990C 31D9FF7F */ andi $t9, $t6, 0xff7f @@ -601,7 +601,7 @@ glabel func_800E9B6C /* B60D18 800E9B78 00808025 */ move $s0, $a0 /* B60D1C 800E9B7C 0C03A68B */ jal func_800E9A2C /* 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 /* B60D2C 800E9B8C 8E0E0000 */ lw $t6, ($s0) /* B60D30 800E9B90 000E7FC2 */ srl $t7, $t6, 0x1f @@ -626,8 +626,8 @@ glabel func_800E9B6C /* B60D78 800E9BD8 0C038686 */ jal func_800E1A18 /* B60D7C 800E9BDC 92040005 */ lbu $a0, 5($s0) .L800E9BE0: -/* B60D80 800E9BE0 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B60D84 800E9BE4 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B60D80 800E9BE0 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B60D84 800E9BE4 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B60D88 800E9BE8 846B2C22 */ lh $t3, 0x2c22($v1) /* B60D8C 800E9BEC 92020005 */ lbu $v0, 5($s0) /* B60D90 800E9BF0 544B0004 */ bnel $v0, $t3, .L800E9C04 @@ -648,7 +648,7 @@ glabel func_800E9B6C /* B60DC0 800E9C20 03E00008 */ jr $ra /* B60DC4 800E9C24 00000000 */ nop -glabel func_800E9C28 +glabel Audio_AudioListPushBack /* B60DC8 800E9C28 8CAE0000 */ lw $t6, ($a1) /* B60DCC 800E9C2C 15C0000C */ bnez $t6, .L800E9C60 /* B60DD0 800E9C30 00000000 */ nop @@ -667,7 +667,7 @@ glabel func_800E9C28 /* B60E00 800E9C60 03E00008 */ jr $ra /* B60E04 800E9C64 00000000 */ nop -glabel func_800E9C68 +glabel Audio_AudioListPopBack /* B60E08 800E9C68 8C830000 */ lw $v1, ($a0) /* B60E0C 800E9C6C 54640004 */ bnel $v1, $a0, .L800E9C80 /* B60E10 800E9C70 8C6E0000 */ lw $t6, ($v1) @@ -688,8 +688,8 @@ glabel func_800E9C68 glabel func_800E9CA8 /* B60E48 800E9CA8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B60E4C 800E9CAC 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B60E50 800E9CB0 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B60E4C 800E9CAC 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B60E50 800E9CB0 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B60E54 800E9CB4 AFB30024 */ sw $s3, 0x24($sp) /* B60E58 800E9CB8 3C138017 */ lui $s3, %hi(D_80174D08) # $s3, 0x8017 /* 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) /* B60E68 800E9CC8 AFB1001C */ sw $s1, 0x1c($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 /* B60E78 800E9CD8 3C128017 */ lui $s2, %hi(D_80172C30) # $s2, 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 /* B60E98 800E9CF8 26522C30 */ addiu $s2, %lo(D_80172C30) # addiu $s2, $s2, 0x2c30 /* 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: /* B60EA4 800E9D04 AE123B28 */ sw $s2, 0x3b28($s0) /* B60EA8 800E9D08 AE003B20 */ sw $zero, 0x3b20($s0) /* B60EAC 800E9D0C 02602025 */ move $a0, $s3 -/* B60EB0 800E9D10 0C03A70A */ jal func_800E9C28 +/* B60EB0 800E9D10 0C03A70A */ jal Audio_AudioListPushBack /* B60EB4 800E9D14 02202825 */ move $a1, $s1 /* B60EB8 800E9D18 26310080 */ addiu $s1, $s1, 0x80 /* B60EBC 800E9D1C 26100080 */ addiu $s0, $s0, 0x80 @@ -792,7 +792,7 @@ glabel func_800E9DD4 /* B60FB8 800E9E18 0109082A */ slt $at, $t0, $t1 /* B60FBC 800E9E1C 5420002A */ bnezl $at, .L800E9EC8 /* B60FC0 800E9E20 8FBF001C */ lw $ra, 0x1c($sp) -/* B60FC4 800E9E24 0C039ED8 */ jal func_800E7B60 +/* B60FC4 800E9E24 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay /* B60FC8 800E9E28 00000000 */ nop /* B60FCC 800E9E2C 920B0000 */ lbu $t3, ($s0) /* B60FD0 800E9E30 356C0020 */ ori $t4, $t3, 0x20 @@ -834,7 +834,7 @@ glabel func_800E9DD4 /* B61054 800E9EB4 07230004 */ bgezl $t9, .L800E9EC8 /* B61058 800E9EB8 8FBF001C */ lw $ra, 0x1c($sp) .L800E9EBC: -/* B6105C 800E9EBC 0C039ED8 */ jal func_800E7B60 +/* B6105C 800E9EBC 0C039ED8 */ jal Audio_SeqChanLayerNoteDecay /* B61060 800E9EC0 02002025 */ move $a0, $s0 .L800E9EC4: /* B61064 800E9EC4 8FBF001C */ lw $ra, 0x1c($sp) @@ -851,7 +851,7 @@ glabel func_800E9ED8 /* B61084 800E9EE4 000EC0C0 */ sll $t8, $t6, 3 /* B61088 800E9EE8 07020006 */ bltzl $t8, .L800E9F04 /* 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) /* B61098 800E9EF8 1000000A */ b .L800E9F24 /* B6109C 800E9EFC 8FA40018 */ lw $a0, 0x18($sp) @@ -862,7 +862,7 @@ glabel func_800E9ED8 /* B610AC 800E9F0C 8C590048 */ lw $t9, 0x48($v0) /* B610B0 800E9F10 54990005 */ bnel $a0, $t9, .L800E9F28 /* 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) /* B610C0 800E9F20 8FA40018 */ lw $a0, 0x18($sp) .L800E9F24: @@ -942,19 +942,19 @@ glabel func_800E9F64 /* B611C8 800EA028 00E02825 */ move $a1, $a3 /* B611CC 800EA02C 55000018 */ bnezl $t0, .L800EA090 /* 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) /* B611DC 800EA03C 10000013 */ b .L800EA08C /* B611E0 800EA040 8FA70018 */ lw $a3, 0x18($sp) .L800EA044: /* B611E4 800EA044 14A00004 */ bnez $a1, .L800EA058 /* 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) /* B611F4 800EA054 8FA70018 */ lw $a3, 0x18($sp) .L800EA058: /* 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) /* B61204 800EA064 8FA70018 */ lw $a3, 0x18($sp) /* B61208 800EA068 10400008 */ beqz $v0, .L800EA08C @@ -1081,7 +1081,7 @@ glabel L800EA1E8 /* B613B0 800EA210 922D0000 */ lbu $t5, ($s1) /* B613B4 800EA214 02202025 */ move $a0, $s1 /* 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) /* B613C4 800EA224 1000FFB4 */ b .L800EA0F8 /* B613C8 800EA228 00000000 */ nop @@ -1274,7 +1274,7 @@ glabel func_800EA440 /* B61658 800EA4B8 90640007 */ lbu $a0, 7($v1) /* B6165C 800EA4BC AFAB0074 */ sw $t3, 0x74($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) /* B6166C 800EA4CC 8FA60078 */ lw $a2, 0x78($sp) /* B61670 800EA4D0 8FAA0040 */ lw $t2, 0x40($sp) @@ -1301,8 +1301,8 @@ glabel func_800EA440 .L800EA520: /* B616C0 800EA520 ACC3004C */ sw $v1, 0x4c($a2) /* B616C4 800EA524 C4640004 */ lwc1 $f4, 4($v1) -/* B616C8 800EA528 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 -/* B616CC 800EA52C 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 +/* B616C8 800EA528 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017 +/* B616CC 800EA52C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80 /* B616D0 800EA530 10000103 */ b .L800EA940 /* B616D4 800EA534 E4C40030 */ swc1 $f4, 0x30($a2) .L800EA538: @@ -1315,7 +1315,7 @@ glabel func_800EA440 /* B616F0 800EA550 30E5FFFF */ andi $a1, $a3, 0xffff /* B616F4 800EA554 AFAB0074 */ sw $t3, 0x74($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) /* B61704 800EA564 8FA60078 */ lw $a2, 0x78($sp) /* B61708 800EA568 8FAA0040 */ lw $t2, 0x40($sp) @@ -1332,8 +1332,8 @@ glabel func_800EA440 .L800EA594: /* B61734 800EA594 ACC2004C */ sw $v0, 0x4c($a2) /* B61738 800EA598 C4460004 */ lwc1 $f6, 4($v0) -/* B6173C 800EA59C 3C058017 */ lui $a1, %hi(D_8016F180) # $a1, 0x8017 -/* B61740 800EA5A0 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 +/* B6173C 800EA59C 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017 +/* B61740 800EA5A0 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80 /* B61744 800EA5A4 100000E6 */ b .L800EA940 /* B61748 800EA5A8 E4C60030 */ swc1 $f6, 0x30($a2) /* B6174C 800EA5AC 854F000E */ lh $t7, 0xe($t2) @@ -1379,7 +1379,7 @@ glabel func_800EA440 /* B617DC 800EA63C AFA70020 */ sw $a3, 0x20($sp) /* B617E0 800EA640 AFA8001C */ sw $t0, 0x1c($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) /* B617F0 800EA650 8FA60078 */ lw $a2, 0x78($sp) /* B617F4 800EA654 8FA70020 */ lw $a3, 0x20($sp) @@ -1402,9 +1402,9 @@ glabel func_800EA440 /* B61834 800EA694 000E7080 */ sll $t6, $t6, 2 /* B61838 800EA698 01C27023 */ subu $t6, $t6, $v0 /* 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 -/* 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 /* B61850 800EA6B0 3C01FFFD */ lui $at, (0xFFFDEC98 >> 16) # lui $at, 0xfffd /* B61854 800EA6B4 3421EC98 */ ori $at, (0xFFFDEC98 & 0xFFFF) # ori $at, $at, 0xec98 @@ -1426,11 +1426,11 @@ glabel func_800EA440 /* B61890 800EA6F0 2404FF7F */ li $a0, -129 /* B61894 800EA6F4 0044C024 */ and $t8, $v0, $a0 /* 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 /* B618A4 800EA704 46005382 */ mul.s $f14, $f10, $f0 /* 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 /* B618B4 800EA714 3C018015 */ lui $at, %hi(jtbl_80149698) /* B618B8 800EA718 00390821 */ addu $at, $at, $t9 @@ -1544,7 +1544,7 @@ glabel L800EA734 /* B61A28 800EA888 00E02825 */ move $a1, $a3 /* B61A2C 800EA88C AFA60078 */ sw $a2, 0x78($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) /* B61A3C 800EA89C 8FA60078 */ lw $a2, 0x78($sp) /* B61A40 800EA8A0 8FA70020 */ lw $a3, 0x20($sp) @@ -1577,9 +1577,9 @@ glabel L800EA734 /* B61AA8 800EA908 000C6080 */ sll $t4, $t4, 2 /* B61AAC 800EA90C 01826023 */ subu $t4, $t4, $v0 /* 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 -/* 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 /* B61AC4 800EA924 3C01FFFD */ li $at, 0xFFFD0000 # 0.000000 /* B61AC8 800EA928 3421EC98 */ ori $at, (0xFFFDEC98 & 0xFFFF) # ori $at, $at, 0xec98 @@ -1587,8 +1587,8 @@ glabel L800EA734 /* B61AD0 800EA930 01A17021 */ addu $t6, $t5, $at /* B61AD4 800EA934 ACCE004C */ sw $t6, 0x4c($a2) .L800EA938: -/* B61AD8 800EA938 3C058017 */ lui $a1, %hi(D_8016F180) -/* B61ADC 800EA93C 24A5F180 */ addiu $a1, %lo(D_8016F180) # addiu $a1, $a1, -0xe80 +/* B61AD8 800EA938 3C058017 */ lui $a1, %hi(gAudioContext) +/* B61ADC 800EA93C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80 .L800EA940: /* B61AE0 800EA940 C4D20030 */ lwc1 $f18, 0x30($a2) .L800EA944: @@ -2027,7 +2027,7 @@ glabel func_800EAF24 /* B620D8 800EAF38 AFA60028 */ sw $a2, 0x28($sp) /* B620DC 800EAF3C AFA7002C */ sw $a3, 0x2c($sp) /* 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) /* B620EC 800EAF4C 8FA50018 */ lw $a1, 0x18($sp) /* B620F0 800EAF50 8FA60028 */ lw $a2, 0x28($sp) @@ -2225,15 +2225,15 @@ glabel L800EB1E0 /* B6238C 800EB1EC A28A0000 */ sb $t2, ($s4) glabel L800EB1F0 /* 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 /* 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 /* B623A8 800EB208 1000FFBA */ b .L800EB0F4 /* B623AC 800EB20C 00000000 */ nop glabel L800EB210 -/* B623B0 800EB210 0C039F80 */ jal func_800E7E00 +/* B623B0 800EB210 0C039F80 */ jal Audio_NotePoolClear /* B623B4 800EB214 26840084 */ addiu $a0, $s4, 0x84 /* B623B8 800EB218 1000FFB6 */ b .L800EB0F4 /* B623BC 800EB21C 00000000 */ nop @@ -3166,19 +3166,19 @@ glabel L800EBE68 /* B63098 800EBEF8 00000000 */ nop glabel L800EBEFC /* 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 /* B630A8 800EBF08 0C03A752 */ jal func_800E9D48 /* B630AC 800EBF0C 02202025 */ move $a0, $s1 /* B630B0 800EBF10 02002025 */ move $a0, $s0 -/* B630B4 800EBF14 0C039FD8 */ jal func_800E7F60 +/* B630B4 800EBF14 0C039FD8 */ jal Audio_NotePoolFill /* B630B8 800EBF18 00402825 */ move $a1, $v0 /* B630BC 800EBF1C 1000FFD2 */ b .L800EBE68 /* B630C0 800EBF20 00000000 */ nop /* B630C4 800EBF24 1000FFD0 */ b .L800EBE68 /* B630C8 800EBF28 00000000 */ nop glabel L800EBF2C -/* B630CC 800EBF2C 0C039F80 */ jal func_800E7E00 +/* B630CC 800EBF2C 0C039F80 */ jal Audio_NotePoolClear /* B630D0 800EBF30 2644009C */ addiu $a0, $s2, 0x9c /* B630D4 800EBF34 1000FFCC */ b .L800EBE68 /* B630D8 800EBF38 00000000 */ nop @@ -3629,8 +3629,8 @@ glabel L800EC4E4 /* B63700 800EC560 27BD0068 */ addiu $sp, $sp, 0x68 glabel func_800EC564 -/* B63704 800EC564 3C038017 */ lui $v1, %hi(D_8016F180) # $v1, 0x8017 -/* B63708 800EC568 2463F180 */ addiu $v1, %lo(D_8016F180) # addiu $v1, $v1, -0xe80 +/* B63704 800EC564 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017 +/* B63708 800EC568 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80 /* B6370C 800EC56C 846E2854 */ lh $t6, 0x2854($v1) /* B63710 800EC570 8C792894 */ lw $t9, 0x2894($v1) /* B63714 800EC574 27BDFFD8 */ addiu $sp, $sp, -0x28 @@ -3641,10 +3641,10 @@ glabel func_800EC564 /* B63728 800EC588 AFB10018 */ sw $s1, 0x18($sp) /* B6372C 800EC58C AFB30020 */ sw $s3, 0x20($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) /* 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 /* B63748 800EC5A8 00004012 */ mflo $t0 /* B6374C 800EC5AC AC685B84 */ sw $t0, 0x5b84($v1) @@ -3668,7 +3668,7 @@ glabel func_800EC564 /* B6378C 800EC5EC 1420FFF2 */ bnez $at, .L800EC5B8 /* B63790 800EC5F0 26310160 */ addiu $s1, $s1, 0x160 .L800EC5F4: -/* B63794 800EC5F4 0C039BE3 */ jal func_800E6F8C +/* B63794 800EC5F4 0C039BE3 */ jal Audio_ProcessNotes /* B63798 800EC5F8 00000000 */ nop /* B6379C 800EC5FC 8FBF0024 */ lw $ra, 0x24($sp) /* B637A0 800EC600 8FB00014 */ lw $s0, 0x14($sp) @@ -3763,11 +3763,11 @@ glabel func_800EC734 /* B638E0 800EC740 000E7080 */ sll $t6, $t6, 2 /* B638E4 800EC744 01C47023 */ subu $t6, $t6, $a0 /* 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) /* B638F4 800EC754 AFB30020 */ sw $s3, 0x20($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 /* B63904 800EC764 AFB50028 */ sw $s5, 0x28($sp) /* B63908 800EC768 AFB10018 */ sw $s1, 0x18($sp) @@ -3862,7 +3862,7 @@ glabel func_800EC80C /* B63A50 800EC8B0 E4C0002C */ swc1 $f0, 0x2c($a2) /* B63A54 800EC8B4 E4C00034 */ swc1 $f0, 0x34($a2) /* 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 /* B63A64 800EC8C4 0C03B19A */ jal func_800EC668 /* B63A68 800EC8C8 8FA40018 */ lw $a0, 0x18($sp) @@ -3877,10 +3877,10 @@ glabel func_800EC8DC /* B63A84 800EC8E4 AFB10018 */ sw $s1, 0x18($sp) /* B63A88 800EC8E8 0C03A72A */ jal func_800E9CA8 /* 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 /* 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: /* B63AA0 800EC900 904E3AB0 */ lbu $t6, 0x3ab0($v0) /* B63AA4 800EC904 24420080 */ addiu $v0, $v0, 0x80 diff --git a/asm/code_800EC960.s b/asm/code_800EC960.s index 21ddcc0e7b..b5bdb4fb7d 100644 --- a/asm/code_800EC960.s +++ b/asm/code_800EC960.s @@ -5020,8 +5020,8 @@ glabel L800F1014 /* B6840C 800F126C 24050003 */ li $a1, 3 /* B68410 800F1270 0C03ED07 */ jal GfxPrint_SetPos /* B68414 800F1274 2406000C */ li $a2, 12 -/* B68418 800F1278 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B6841C 800F127C 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B68418 800F1278 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B6841C 800F127C 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B68420 800F1280 904E368A */ lbu $t6, 0x368a($v0) /* B68424 800F1284 904C368B */ lbu $t4, 0x368b($v0) /* B68428 800F1288 3C058015 */ lui $a1, %hi(D_8014A268) # $a1, 0x8015 @@ -5036,8 +5036,8 @@ glabel L800F1014 /* B6844C 800F12AC 24050003 */ li $a1, 3 /* B68450 800F12B0 0C03ED07 */ jal GfxPrint_SetPos /* B68454 800F12B4 2406000D */ li $a2, 13 -/* B68458 800F12B8 3C028017 */ lui $v0, %hi(D_8016F180) # $v0, 0x8017 -/* B6845C 800F12BC 2442F180 */ addiu $v0, %lo(D_8016F180) # addiu $v0, $v0, -0xe80 +/* B68458 800F12B8 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017 +/* B6845C 800F12BC 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80 /* B68460 800F12C0 904D368E */ lbu $t5, 0x368e($v0) /* B68464 800F12C4 9058368F */ lbu $t8, 0x368f($v0) /* 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 /* B6BB34 800F4994 0C03E803 */ jal Audio_SetBGM /* 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 /* 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 /* B6BB50 800F49B0 3C140500 */ lui $s4, 0x500 /* B6BB54 800F49B4 241300FF */ li $s3, 255 @@ -9507,8 +9507,8 @@ glabel func_800F510C .L800F51EC: /* B6C38C 800F51EC 03B03821 */ addu $a3, $sp, $s0 /* B6C390 800F51F0 90E70040 */ lbu $a3, 0x40($a3) -/* B6C394 800F51F4 3C198017 */ lui $t9, %hi(D_8016F180) # $t9, 0x8017 -/* B6C398 800F51F8 2739F180 */ addiu $t9, %lo(D_8016F180) # addiu $t9, $t9, -0xe80 +/* B6C394 800F51F4 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017 +/* B6C398 800F51F8 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80 /* B6C39C 800F51FC 0007C080 */ sll $t8, $a3, 2 /* B6C3A0 800F5200 0307C023 */ subu $t8, $t8, $a3 /* B6C3A4 800F5204 0018C080 */ sll $t8, $t8, 2 diff --git a/asm/code_800F9280.s b/asm/code_800F9280.s index b87b5b9ef7..f13b20db82 100644 --- a/asm/code_800F9280.s +++ b/asm/code_800F9280.s @@ -1379,8 +1379,8 @@ glabel func_800FA3DC /* B717C0 800FA620 01D57023 */ subu $t6, $t6, $s5 /* B717C4 800FA624 000E7080 */ sll $t6, $t6, 2 /* B717C8 800FA628 01D57023 */ subu $t6, $t6, $s5 -/* B717CC 800FA62C 3C0F8017 */ lui $t7, %hi(D_8016F180) -/* B717D0 800FA630 25EFF180 */ addiu $t7, %lo(D_8016F180) # addiu $t7, $t7, -0xe80 +/* B717CC 800FA62C 3C0F8017 */ lui $t7, %hi(gAudioContext) +/* B717D0 800FA630 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80 /* B717D4 800FA634 000E7140 */ sll $t6, $t6, 5 /* B717D8 800FA638 01CF2821 */ addu $a1, $t6, $t7 /* B717DC 800FA63C 8CB93530 */ lw $t9, 0x3530($a1) diff --git a/asm/non_matchings/code/audio_playback/Audio_NoteSetVelPanReverb.s b/asm/non_matchings/code/audio_playback/Audio_NoteSetVelPanReverb.s new file mode 100644 index 0000000000..1916416989 --- /dev/null +++ b/asm/non_matchings/code/audio_playback/Audio_NoteSetVelPanReverb.s @@ -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 diff --git a/asm/non_matchings/code/audio_playback/Audio_ProcessNotes.s b/asm/non_matchings/code/audio_playback/Audio_ProcessNotes.s new file mode 100644 index 0000000000..54f6ebc243 --- /dev/null +++ b/asm/non_matchings/code/audio_playback/Audio_ProcessNotes.s @@ -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 diff --git a/asm/non_matchings/code/audio_playback/Audio_SeqChanLayerDecayRelease.s b/asm/non_matchings/code/audio_playback/Audio_SeqChanLayerDecayRelease.s new file mode 100644 index 0000000000..1cbae5ff67 --- /dev/null +++ b/asm/non_matchings/code/audio_playback/Audio_SeqChanLayerDecayRelease.s @@ -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 diff --git a/asm/non_matchings/code/audio_playback/func_800E7744.s b/asm/non_matchings/code/audio_playback/func_800E7744.s new file mode 100644 index 0000000000..5ef55c8370 --- /dev/null +++ b/asm/non_matchings/code/audio_playback/func_800E7744.s @@ -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 diff --git a/data/code_800DACC0.bss.s b/data/code_800DACC0.bss.s index 9c6d3f9d29..4470787f46 100644 --- a/data/code_800DACC0.bss.s +++ b/data/code_800DACC0.bss.s @@ -238,7 +238,7 @@ glabel D_8016E9A4 glabel D_8016EE8B .space 0x2F5 -glabel D_8016F180 +glabel gAudioContext .space 0x1 glabel D_8016F181 @@ -364,7 +364,7 @@ glabel D_80171A14 glabel D_80171A18 .space 0x2 -glabel D_80171A1A +glabel gSoundMode .space 0x2 glabel D_80171A1C @@ -610,7 +610,7 @@ glabel D_80174CA0 glabel D_80174D08 .space 0x10 -glabel D_80174D18 +glabel gNoteFreeLists .space 0x10 glabel D_80174D28 diff --git a/data/code_800DACC0.data.s b/data/code_800DACC0.data.s index fb8de305ff..ac47bd8fed 100644 --- a/data/code_800DACC0.data.s +++ b/data/code_800DACC0.data.s @@ -7,7 +7,7 @@ .section .data -glabel D_8012F090 +glabel gWaveSamples .incbin "baserom.z64", 0xBA6230, 0x8 glabel D_8012F098 @@ -40,13 +40,13 @@ glabel D_8012FAC4 glabel D_8012FAD4 .incbin "baserom.z64", 0xBA6C74, 0x10 -glabel D_8012FAE4 +glabel gZeroNoteSub .incbin "baserom.z64", 0xBA6C84, 0x20 -glabel D_8012FB04 +glabel gDefaultNoteSub .incbin "baserom.z64", 0xBA6CA4, 0x20 -glabel D_8012FB24 +glabel gHeadsetPanQuantization .incbin "baserom.z64", 0xBA6CC4, 0x7E glabel D_8012FBA2 @@ -55,13 +55,13 @@ glabel D_8012FBA2 glabel D_8012FBAA .incbin "baserom.z64", 0xBA6D4A, 0x7E -glabel D_8012FC28 +glabel gHeadsetPanVolume .incbin "baserom.z64", 0xBA6DC8, 0x1FC glabel D_8012FE24 .incbin "baserom.z64", 0xBA6FC4, 0x4 -glabel D_8012FE28 +glabel gStereoPanVolume .incbin "baserom.z64", 0xBA6FC8, 0x1D7 glabel D_8012FFFF @@ -82,7 +82,7 @@ glabel D_80130006 glabel D_80130024 .incbin "baserom.z64", 0xBA71C4, 0x4 -glabel D_80130028 +glabel gDefaultPanVolume .incbin "baserom.z64", 0xBA71C8, 0x1FC glabel D_80130224 diff --git a/data/code_800E6940.rodata.s b/data/code_800E6940.rodata.s deleted file mode 100644 index 68331a3dec..0000000000 --- a/data/code_800E6940.rodata.s +++ /dev/null @@ -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 diff --git a/include/functions.h b/include/functions.h index 5574a0f4bc..05b35af5cb 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1847,7 +1847,7 @@ void FaultDrawer_SetDefault(); // ? func_800DE238(?); // ? func_800DE258(?); // ? func_800DE2B0(?); -// ? func_800DE308(?); +void* Audio_SoundAlloc(SoundAllocPool* pool, u32 size); // ? func_800DE344(?); // ? func_800DE380(?); // ? func_800DE3DC(?); @@ -1890,7 +1890,7 @@ void FaultDrawer_SetDefault(); // ? func_800E11F0(?); // ? func_800E12DC(?); // ? func_800E1618(?); -// ? func_800E18B0(?); +s32 func_800E18B0(s32); // ? func_800E1928(?); // ? func_800E1A18(?); // ? func_800E1A48(?); @@ -1985,37 +1985,37 @@ void FaultDrawer_SetDefault(); // ? func_800E6840(?); // ? func_800E6880(?); // ? func_800E68C0(?); -// ? func_800E6940(?); -// ? func_800E6DB8(?); -// ? func_800E6E68(?); -// ? func_800E6F28(?); -// ? func_800E6F8C(?); -// ? func_800E745C(?); -// ? func_800E7498(?); -// ? func_800E756C(?); -// ? func_800E7650(?); -// ? func_800E7744(?); -// ? func_800E7888(?); -// ? func_800E7B60(?); -// ? func_800E7B80(?); -// ? func_800E7BA0(?); -// ? func_800E7CA4(?); -// ? func_800E7CFC(?); -// ? func_800E7D0C(?); -// ? func_800E7D5C(?); -// ? func_800E7E00(?); -// ? func_800E7F60(?); -// ? func_800E809C(?); -// ? func_800E80DC(?); -// ? func_800E8108(?); -// ? func_800E8188(?); -// ? func_800E82C0(?); -// ? func_800E82F4(?); -// ? func_800E8320(?); -// ? func_800E836C(?); -// ? func_800E83BC(?); -// ? func_800E84B4(?); -// ? func_800E8788(?); +void Audio_NoteSetVelPanReverb(Note* note, NoteSubEu* sub, Reverb* reverb); +void Audio_NoteSetResamplingRate(NoteSubEu* noteSubEu, f32 resamplingRateInput); +void Audio_NoteInit(Note* note); +void Audio_NoteDisable(Note* note); +void Audio_ProcessNotes(void); +AudioBankSound* Audio_InstrumentGetAudioBankSound(Instrument* instrument, s32 semitone); +Instrument* Audio_GetInstrumentInner(s32 bankId, s32 instId); +Drum* Audio_GetDrum(s32 bankId, s32 drumId); +UnkInstrument* Audio_GetUnkInstrument(s32 bankId, s32 unkInstrumentId); +s32 func_800E7744(s32 instrument, s32 bankId, s32 instId, UnkInstrument* arg3); +void Audio_SeqChanLayerDecayRelease(SequenceChannelLayer* seqLayer, s32 target); +void Audio_SeqChanLayerNoteDecay(SequenceChannelLayer* seqLayer); +void Audio_SeqChanLayerNoteRelease(SequenceChannelLayer* seqLayer); +s32 Audio_BuildSyntheticWave(Note* note, SequenceChannelLayer* seqLayer, s32 waveId); +void Audio_InitSyntheticWave(Note* note, SequenceChannelLayer* seqLayer); +void Audio_InitNoteList(AudioListItem* list); +void Audio_InitNoteLists(NotePool* pool); +void Audio_InitNoteFreeList(void); +void Audio_NotePoolClear(NotePool* pool); +void Audio_NotePoolFill(NotePool* pool, s32 count); +void Audio_AudioListPushFront(AudioListItem* list, AudioListItem* item); +void Audio_AudioListRemove(AudioListItem* item); +Note* Audio_PopNodeWithValueLessEqual(AudioListItem* list, s32 limit); +void Audio_NoteInitForLayer(Note* note, SequenceChannelLayer* seqLayer); +void func_800E82C0(Note* note, SequenceChannelLayer* seqLayer); +void Audio_NoteReleaseAndTakeOwnership(Note* note, SequenceChannelLayer* seqLayer); +Note* Audio_AllocNoteFromDisabled(NotePool* pool, SequenceChannelLayer* seqLayer); +Note* Audio_AllocNoteFromDecaying(NotePool* pool, SequenceChannelLayer* seqLayer); +Note* Audio_AllocNoteFromActive(NotePool* pool, SequenceChannelLayer* seqLayer); +Note* Audio_AllocNote(SequenceChannelLayer* seqLayer); +void Audio_NoteInitAll(void); // ? func_800E88C0(?); // ? func_800E8A88(?); // ? func_800E8BD4(?); @@ -2024,7 +2024,7 @@ void FaultDrawer_SetDefault(); // ? func_800E8EA4(?); // ? func_800E8F00(?); // ? func_800E8FB8(?); -// ? func_800E8FE4(?); +void Audio_AdsrInit(AdsrState* adsr, AdsrEnvelope* envelope, s16* volOut); // ? func_800E9004(?); // ? func_800E9340(?); // ? func_800E93A8(?); @@ -2038,8 +2038,8 @@ void FaultDrawer_SetDefault(); // ? func_800E9AAC(?); // ? func_800E9B44(?); // ? func_800E9B6C(?); -// ? func_800E9C28(?); -// ? func_800E9C68(?); +void Audio_AudioListPushBack(AudioListItem* list, AudioListItem* item); +void* Audio_AudioListPopBack(AudioListItem* list); // ? func_800E9CA8(?); // ? func_800E9D48(?); // ? func_800E9D5C(?); diff --git a/include/variables.h b/include/variables.h index 0d0b7ab025..eb31922d0a 100644 --- a/include/variables.h +++ b/include/variables.h @@ -644,20 +644,25 @@ extern s32 gDebugArenaLogSeverity; //extern ? D_8012DDDC; //extern ? D_8012DE1C; //extern ? D_8012E02C; -//extern ? D_8012F090; +extern s16* gWaveSamples[6]; //extern ? D_8012F098; //extern ? D_8012F0B0; //extern ? D_8012F8B4; //extern ? D_8012FAB4; //extern ? D_8012FAC4; //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_8012FFFF; //extern ? D_80130001; //extern ? D_80130002; //extern ? D_80130004; //extern ? D_80130006; +extern f32 gDefaultPanVolume[128]; //extern ? D_80130228; //extern ? D_80130328; //extern ? D_801304A0; @@ -3645,7 +3650,7 @@ extern FaultThreadStruct gFaultStruct; //extern ? D_8016E750; //extern ? D_8016E9A4; //extern ? D_8016EE8B; -//extern ? D_8016F180; +extern AudioContext gAudioContext; //extern ? D_8016F181; //extern ? D_8016F186; //extern ? D_8016F188; @@ -3683,7 +3688,7 @@ extern FaultThreadStruct gFaultStruct; //extern ? D_801719DC; //extern ? D_80171A14; //extern ? D_80171A18; -//extern ? D_80171A1A; +extern s8 gSoundMode; //extern ? D_80171A1C; //extern ? D_80171AFC; //extern ? D_80171B10; @@ -3760,7 +3765,7 @@ extern FaultThreadStruct gFaultStruct; //extern ? D_80174C30; //extern ? D_80174CA0; //extern ? D_80174D08; -//extern ? D_80174D18; +extern NotePool gNoteFreeLists; //extern ? D_80174D28; //extern ? D_80174D38; //extern ? D_80174D48; diff --git a/include/z64.h b/include/z64.h index 1a235abf45..18bfa95c59 100644 --- a/include/z64.h +++ b/include/z64.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/include/z64audio.h b/include/z64audio.h new file mode 100644 index 0000000000..6d20cb5242 --- /dev/null +++ b/include/z64audio.h @@ -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 diff --git a/spec b/spec index f566efa16e..bd459d5fd5 100644 --- a/spec +++ b/spec @@ -461,8 +461,7 @@ beginseg include "build/data/code_800E11F0.rodata.o" include "build/asm/code_800E6840.o" include "build/data/code_800E6840.data.o" - include "build/asm/code_800E6940.o" - include "build/data/code_800E6940.rodata.o" + include "build/src/code/audio_playback.o" include "build/asm/code_800E88C0.o" include "build/data/code_800E88C0.data.o" include "build/data/code_800E88C0.rodata.o" diff --git a/src/code/audio_playback.c b/src/code/audio_playback.c new file mode 100644 index 0000000000..0baf115b57 --- /dev/null +++ b/src/code/audio_playback.c @@ -0,0 +1,785 @@ +#include +#include + +#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(¬e->playbackState.adsr, note->playbackState.parentLayer->seqChannel->adsr.envelope, + ¬e->playbackState.adsrVolScale); + } else { + Audio_AdsrInit(¬e->playbackState.adsr, note->playbackState.parentLayer->adsr.envelope, + ¬e->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 = ¬e->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(¬e->listItem); + Audio_AudioListPushFront(¬e->listItem.pool->decaying, ¬e->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, ¬e->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 = ¬e->playbackState; + NoteSubEu* sub = ¬e->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, ¬e->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, ¬e->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); + } +}