From 9ef055e6ae27da1ad8b1455c2106b903029214ff Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Thu, 5 Jan 2023 17:37:08 +0000 Subject: [PATCH] Bit of renaming, bit of cleanup, bit of matching it has it all (#350) * Update racer.c * name two stack vars * name few func * match func_8002AD08 * bit of cleanup * m * stack related cleanup * Update game.c * changed my mind * simplification * more * Update osCreatePiManager.c --- asm/non_matchings/camera/func_80065EA0.s | 244 +-- asm/non_matchings/menu/func_80092188.s | 1474 ++++++++--------- .../menu/menu_track_select_init.s | 1122 ++++++------- asm/non_matchings/racer/func_80046524.s | 2 +- .../thread0_epc/thread0_create.s | 32 - .../unknown_0255E0/func_8002AD08.s | 287 ---- .../unknown_0255E0/func_8002B0F4.s | 1204 +++++++------- .../render_texture_rectangle_scaled.s | 8 +- lib/src/mips1/os/osCreatePiManager.c | 4 +- lib/src/os/osInitialize.c | 4 +- lib/src/os/osViMgr.c | 10 +- lib/src/os/siacs.c | 3 +- src/asset_loading.h | 1 - src/audio.c | 4 +- src/audio.h | 19 - src/borders.h | 1 - src/camera.c | 48 +- src/camera.h | 26 +- src/game.c | 33 +- src/game.h | 47 - src/math_util.h | 1 + src/memory.c | 36 +- src/menu.c | 4 +- src/object_functions.c | 2 +- src/object_models.c | 14 +- src/particles.c | 5 +- src/particles.h | 2 +- src/racer.c | 13 +- src/stacks.c | 7 +- src/stacks.h | 4 +- src/thread0_epc.c | 31 +- src/thread0_epc.h | 2 +- src/thread30_track_loading.c | 5 +- src/unknown_0255E0.c | 58 +- src/unknown_0255E0.h | 15 +- src/unknown_078050.c | 28 +- src/unknown_078050.h | 2 +- src/video.h | 5 +- 38 files changed, 2227 insertions(+), 2580 deletions(-) delete mode 100644 asm/non_matchings/thread0_epc/thread0_create.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_8002AD08.s diff --git a/asm/non_matchings/camera/func_80065EA0.s b/asm/non_matchings/camera/func_80065EA0.s index 6954f439..0237da30 100644 --- a/asm/non_matchings/camera/func_80065EA0.s +++ b/asm/non_matchings/camera/func_80065EA0.s @@ -1,122 +1,122 @@ -.late_rodata -glabel D_800E709C -.float 15000.0 - -.text -glabel func_80065EA0 -/* 066AA0 80065EA0 3C048012 */ lui $a0, %hi(D_80120DA0) # $a0, 0x8012 -/* 066AA4 80065EA4 24030001 */ li $v1, 1 -/* 066AA8 80065EA8 3C0F8012 */ lui $t7, %hi(D_80120D70) # $t7, 0x8012 -/* 066AAC 80065EAC 25EF0D70 */ addiu $t7, %lo(D_80120D70) # addiu $t7, $t7, 0xd70 -/* 066AB0 80065EB0 00037080 */ sll $t6, $v1, 2 -/* 066AB4 80065EB4 24840DA0 */ addiu $a0, %lo(D_80120DA0) # addiu $a0, $a0, 0xda0 -/* 066AB8 80065EB8 01CF1021 */ addu $v0, $t6, $t7 -/* 066ABC 80065EBC 0003C980 */ sll $t9, $v1, 6 -/* 066AC0 80065EC0 3C018012 */ lui $at, %hi(D_80120D70) # $at, 0x8012 -/* 066AC4 80065EC4 AC240D70 */ sw $a0, %lo(D_80120D70)($at) -/* 066AC8 80065EC8 00994021 */ addu $t0, $a0, $t9 -/* 066ACC 80065ECC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 066AD0 80065ED0 AC480000 */ sw $t0, ($v0) -/* 066AD4 80065ED4 246A0001 */ addiu $t2, $v1, 1 -/* 066AD8 80065ED8 000A5980 */ sll $t3, $t2, 6 -/* 066ADC 80065EDC 24680003 */ addiu $t0, $v1, 3 -/* 066AE0 80065EE0 246E0002 */ addiu $t6, $v1, 2 -/* 066AE4 80065EE4 AFB1002C */ sw $s1, 0x2c($sp) -/* 066AE8 80065EE8 000E7980 */ sll $t7, $t6, 6 -/* 066AEC 80065EEC 00084980 */ sll $t1, $t0, 6 -/* 066AF0 80065EF0 AFB20030 */ sw $s2, 0x30($sp) -/* 066AF4 80065EF4 AFB00028 */ sw $s0, 0x28($sp) -/* 066AF8 80065EF8 00895021 */ addu $t2, $a0, $t1 -/* 066AFC 80065EFC 008FC021 */ addu $t8, $a0, $t7 -/* 066B00 80065F00 008B6021 */ addu $t4, $a0, $t3 -/* 066B04 80065F04 3C118012 */ lui $s1, %hi(gActiveCameraID) # $s1, 0x8012 -/* 066B08 80065F08 AFBF0034 */ sw $ra, 0x34($sp) -/* 066B0C 80065F0C AC4C0004 */ sw $t4, 4($v0) -/* 066B10 80065F10 AC580008 */ sw $t8, 8($v0) -/* 066B14 80065F14 AC4A000C */ sw $t2, 0xc($v0) -/* 066B18 80065F18 26310CE4 */ addiu $s1, %lo(gActiveCameraID) # addiu $s1, $s1, 0xce4 -/* 066B1C 80065F1C 00008025 */ move $s0, $zero -/* 066B20 80065F20 24120008 */ li $s2, 8 -/* 066B24 80065F24 240B00B4 */ li $t3, 180 -.L80065F28: -/* 066B28 80065F28 AE300000 */ sw $s0, ($s1) -/* 066B2C 80065F2C AFAB0014 */ sw $t3, 0x14($sp) -/* 066B30 80065F30 240400C8 */ li $a0, 200 -/* 066B34 80065F34 240500C8 */ li $a1, 200 -/* 066B38 80065F38 240600C8 */ li $a2, 200 -/* 066B3C 80065F3C 00003825 */ move $a3, $zero -/* 066B40 80065F40 0C0198F7 */ jal func_800663DC -/* 066B44 80065F44 AFA00010 */ sw $zero, 0x10($sp) -/* 066B48 80065F48 26100001 */ addiu $s0, $s0, 1 -/* 066B4C 80065F4C 1612FFF6 */ bne $s0, $s2, .L80065F28 -/* 066B50 80065F50 240B00B4 */ li $t3, 180 -/* 066B54 80065F54 3C018012 */ lui $at, %hi(gCutsceneCameraActive) # $at, 0x8012 -/* 066B58 80065F58 A0200D14 */ sb $zero, %lo(gCutsceneCameraActive)($at) -/* 066B5C 80065F5C AE200000 */ sw $zero, ($s1) -/* 066B60 80065F60 3C018012 */ lui $at, %hi(D_80120D1C) # $at, 0x8012 -/* 066B64 80065F64 AC200D1C */ sw $zero, %lo(D_80120D1C)($at) -/* 066B68 80065F68 3C018012 */ lui $at, %hi(D_80120D20) # $at, 0x8012 -/* 066B6C 80065F6C AC200D20 */ sw $zero, %lo(D_80120D20)($at) -/* 066B70 80065F70 3C018012 */ lui $at, %hi(gNumberOfViewports) # $at, 0x8012 -/* 066B74 80065F74 AC200CE0 */ sw $zero, %lo(gNumberOfViewports)($at) -/* 066B78 80065F78 3C018012 */ lui $at, %hi(D_80120D0C) # $at, 0x8012 -/* 066B7C 80065F7C AC200D0C */ sw $zero, %lo(D_80120D0C)($at) -/* 066B80 80065F80 3C018012 */ lui $at, %hi(D_80120D18) # $at, 0x8012 -/* 066B84 80065F84 AC200D18 */ sw $zero, %lo(D_80120D18)($at) -/* 066B88 80065F88 3C04800E */ lui $a0, %hi(gAntiPiracyViewport) # $a0, 0x800e -/* 066B8C 80065F8C 3C018012 */ lui $at, %hi(gAdjustViewportHeight) # $at, 0x8012 -/* 066B90 80065F90 2484D060 */ addiu $a0, %lo(gAntiPiracyViewport) # addiu $a0, $a0, -0x2fa0 -/* 066B94 80065F94 3C03A460 */ lui $v1, (0xA4600010 >> 16) # lui $v1, 0xa460 -/* 066B98 80065F98 A0200D15 */ sb $zero, %lo(gAdjustViewportHeight)($at) -/* 066B9C 80065F9C 34630010 */ ori $v1, (0xA4600010 & 0xFFFF) # ori $v1, $v1, 0x10 -/* 066BA0 80065FA0 A0800000 */ sb $zero, ($a0) -/* 066BA4 80065FA4 8C620000 */ lw $v0, ($v1) -/* 066BA8 80065FA8 3C0EB000 */ lui $t6, %hi(D_B0000578) # $t6, 0xb000 -/* 066BAC 80065FAC 304C0003 */ andi $t4, $v0, 3 -/* 066BB0 80065FB0 11800006 */ beqz $t4, .L80065FCC -/* 066BB4 80065FB4 3C108012 */ lui $s0, %hi(D_80120EE0) # $s0, 0x8012 -.L80065FB8: -/* 066BB8 80065FB8 8C620000 */ lw $v0, ($v1) -/* 066BBC 80065FBC 00000000 */ nop -/* 066BC0 80065FC0 304D0003 */ andi $t5, $v0, 3 -/* 066BC4 80065FC4 15A0FFFC */ bnez $t5, .L80065FB8 -/* 066BC8 80065FC8 00000000 */ nop -.L80065FCC: -/* 066BCC 80065FCC 8DCF0578 */ lw $t7, %lo(D_B0000578)($t6) -/* 066BD0 80065FD0 34018965 */ li $at, 0x8965 -/* 066BD4 80065FD4 31F8FFFF */ andi $t8, $t7, 0xffff -/* 066BD8 80065FD8 13010003 */ beq $t8, $at, .L80065FE8 -/* 066BDC 80065FDC 26100EE0 */ addiu $s0, %lo(D_80120EE0) # addiu $s0, $s0, 0xee0 -/* 066BE0 80065FE0 24190001 */ li $t9, 1 -/* 066BE4 80065FE4 A0990000 */ sb $t9, ($a0) -.L80065FE8: -/* 066BE8 80065FE8 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 066BEC 80065FEC 44812000 */ mtc1 $at, $f4 -/* 066BF0 80065FF0 3C01800E */ lui $at, %hi(D_800E709C) # $at, 0x800e -/* 066BF4 80065FF4 C426709C */ lwc1 $f6, %lo(D_800E709C)($at) -/* 066BF8 80065FF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 066BFC 80065FFC 44814000 */ mtc1 $at, $f8 -/* 066C00 80066000 3C058012 */ lui $a1, %hi(perspNorm) # $a1, 0x8012 -/* 066C04 80066004 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa -/* 066C08 80066008 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab -/* 066C0C 8006600C 24A50D6C */ addiu $a1, %lo(perspNorm) # addiu $a1, $a1, 0xd6c -/* 066C10 80066010 02002025 */ move $a0, $s0 -/* 066C14 80066014 3C064270 */ lui $a2, 0x4270 -/* 066C18 80066018 E7A40010 */ swc1 $f4, 0x10($sp) -/* 066C1C 8006601C E7A60014 */ swc1 $f6, 0x14($sp) -/* 066C20 80066020 0C033248 */ jal guPerspectiveF -/* 066C24 80066024 E7A80018 */ swc1 $f8, 0x18($sp) -/* 066C28 80066028 3C058012 */ lui $a1, %hi(D_80120FE0) # $a1, 0x8012 -/* 066C2C 8006602C 24A50FE0 */ addiu $a1, %lo(D_80120FE0) # addiu $a1, $a1, 0xfe0 -/* 066C30 80066030 0C01BE1C */ jal f32_matrix_to_s16_matrix -/* 066C34 80066034 02002025 */ move $a0, $s0 -/* 066C38 80066038 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 066C3C 8006603C 44815000 */ mtc1 $at, $f10 -/* 066C40 80066040 8FBF0034 */ lw $ra, 0x34($sp) -/* 066C44 80066044 3C018012 */ lui $at, %hi(gCurCamFOV) # $at, 0x8012 -/* 066C48 80066048 8FB00028 */ lw $s0, 0x28($sp) -/* 066C4C 8006604C 8FB1002C */ lw $s1, 0x2c($sp) -/* 066C50 80066050 8FB20030 */ lw $s2, 0x30($sp) -/* 066C54 80066054 27BD0038 */ addiu $sp, $sp, 0x38 -/* 066C58 80066058 03E00008 */ jr $ra -/* 066C5C 8006605C E42A0D10 */ swc1 $f10, %lo(gCurCamFOV)($at) +.late_rodata +glabel D_800E709C +.float 15000.0 + +.text +glabel func_80065EA0 +/* 066AA0 80065EA0 3C048012 */ lui $a0, %hi(D_80120DA0) # $a0, 0x8012 +/* 066AA4 80065EA4 24030001 */ li $v1, 1 +/* 066AA8 80065EA8 3C0F8012 */ lui $t7, %hi(D_80120D70) # $t7, 0x8012 +/* 066AAC 80065EAC 25EF0D70 */ addiu $t7, %lo(D_80120D70) # addiu $t7, $t7, 0xd70 +/* 066AB0 80065EB0 00037080 */ sll $t6, $v1, 2 +/* 066AB4 80065EB4 24840DA0 */ addiu $a0, %lo(D_80120DA0) # addiu $a0, $a0, 0xda0 +/* 066AB8 80065EB8 01CF1021 */ addu $v0, $t6, $t7 +/* 066ABC 80065EBC 0003C980 */ sll $t9, $v1, 6 +/* 066AC0 80065EC0 3C018012 */ lui $at, %hi(D_80120D70) # $at, 0x8012 +/* 066AC4 80065EC4 AC240D70 */ sw $a0, %lo(D_80120D70)($at) +/* 066AC8 80065EC8 00994021 */ addu $t0, $a0, $t9 +/* 066ACC 80065ECC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 066AD0 80065ED0 AC480000 */ sw $t0, ($v0) +/* 066AD4 80065ED4 246A0001 */ addiu $t2, $v1, 1 +/* 066AD8 80065ED8 000A5980 */ sll $t3, $t2, 6 +/* 066ADC 80065EDC 24680003 */ addiu $t0, $v1, 3 +/* 066AE0 80065EE0 246E0002 */ addiu $t6, $v1, 2 +/* 066AE4 80065EE4 AFB1002C */ sw $s1, 0x2c($sp) +/* 066AE8 80065EE8 000E7980 */ sll $t7, $t6, 6 +/* 066AEC 80065EEC 00084980 */ sll $t1, $t0, 6 +/* 066AF0 80065EF0 AFB20030 */ sw $s2, 0x30($sp) +/* 066AF4 80065EF4 AFB00028 */ sw $s0, 0x28($sp) +/* 066AF8 80065EF8 00895021 */ addu $t2, $a0, $t1 +/* 066AFC 80065EFC 008FC021 */ addu $t8, $a0, $t7 +/* 066B00 80065F00 008B6021 */ addu $t4, $a0, $t3 +/* 066B04 80065F04 3C118012 */ lui $s1, %hi(gActiveCameraID) # $s1, 0x8012 +/* 066B08 80065F08 AFBF0034 */ sw $ra, 0x34($sp) +/* 066B0C 80065F0C AC4C0004 */ sw $t4, 4($v0) +/* 066B10 80065F10 AC580008 */ sw $t8, 8($v0) +/* 066B14 80065F14 AC4A000C */ sw $t2, 0xc($v0) +/* 066B18 80065F18 26310CE4 */ addiu $s1, %lo(gActiveCameraID) # addiu $s1, $s1, 0xce4 +/* 066B1C 80065F1C 00008025 */ move $s0, $zero +/* 066B20 80065F20 24120008 */ li $s2, 8 +/* 066B24 80065F24 240B00B4 */ li $t3, 180 +.L80065F28: +/* 066B28 80065F28 AE300000 */ sw $s0, ($s1) +/* 066B2C 80065F2C AFAB0014 */ sw $t3, 0x14($sp) +/* 066B30 80065F30 240400C8 */ li $a0, 200 +/* 066B34 80065F34 240500C8 */ li $a1, 200 +/* 066B38 80065F38 240600C8 */ li $a2, 200 +/* 066B3C 80065F3C 00003825 */ move $a3, $zero +/* 066B40 80065F40 0C0198F7 */ jal func_800663DC +/* 066B44 80065F44 AFA00010 */ sw $zero, 0x10($sp) +/* 066B48 80065F48 26100001 */ addiu $s0, $s0, 1 +/* 066B4C 80065F4C 1612FFF6 */ bne $s0, $s2, .L80065F28 +/* 066B50 80065F50 240B00B4 */ li $t3, 180 +/* 066B54 80065F54 3C018012 */ lui $at, %hi(gCutsceneCameraActive) # $at, 0x8012 +/* 066B58 80065F58 A0200D14 */ sb $zero, %lo(gCutsceneCameraActive)($at) +/* 066B5C 80065F5C AE200000 */ sw $zero, ($s1) +/* 066B60 80065F60 3C018012 */ lui $at, %hi(D_80120D1C) # $at, 0x8012 +/* 066B64 80065F64 AC200D1C */ sw $zero, %lo(D_80120D1C)($at) +/* 066B68 80065F68 3C018012 */ lui $at, %hi(D_80120D20) # $at, 0x8012 +/* 066B6C 80065F6C AC200D20 */ sw $zero, %lo(D_80120D20)($at) +/* 066B70 80065F70 3C018012 */ lui $at, %hi(gNumberOfViewports) # $at, 0x8012 +/* 066B74 80065F74 AC200CE0 */ sw $zero, %lo(gNumberOfViewports)($at) +/* 066B78 80065F78 3C018012 */ lui $at, %hi(D_80120D0C) # $at, 0x8012 +/* 066B7C 80065F7C AC200D0C */ sw $zero, %lo(D_80120D0C)($at) +/* 066B80 80065F80 3C018012 */ lui $at, %hi(D_80120D18) # $at, 0x8012 +/* 066B84 80065F84 AC200D18 */ sw $zero, %lo(D_80120D18)($at) +/* 066B88 80065F88 3C04800E */ lui $a0, %hi(gAntiPiracyViewport) # $a0, 0x800e +/* 066B8C 80065F8C 3C018012 */ lui $at, %hi(gAdjustViewportHeight) # $at, 0x8012 +/* 066B90 80065F90 2484D060 */ addiu $a0, %lo(gAntiPiracyViewport) # addiu $a0, $a0, -0x2fa0 +/* 066B94 80065F94 3C03A460 */ lui $v1, (0xA4600010 >> 16) # lui $v1, 0xa460 +/* 066B98 80065F98 A0200D15 */ sb $zero, %lo(gAdjustViewportHeight)($at) +/* 066B9C 80065F9C 34630010 */ ori $v1, (0xA4600010 & 0xFFFF) # ori $v1, $v1, 0x10 +/* 066BA0 80065FA0 A0800000 */ sb $zero, ($a0) +/* 066BA4 80065FA4 8C620000 */ lw $v0, ($v1) +/* 066BA8 80065FA8 3C0EB000 */ lui $t6, %hi(D_B0000578) # $t6, 0xb000 +/* 066BAC 80065FAC 304C0003 */ andi $t4, $v0, 3 +/* 066BB0 80065FB0 11800006 */ beqz $t4, .L80065FCC +/* 066BB4 80065FB4 3C108012 */ lui $s0, %hi(gPerspectiveMatrixF) # $s0, 0x8012 +.L80065FB8: +/* 066BB8 80065FB8 8C620000 */ lw $v0, ($v1) +/* 066BBC 80065FBC 00000000 */ nop +/* 066BC0 80065FC0 304D0003 */ andi $t5, $v0, 3 +/* 066BC4 80065FC4 15A0FFFC */ bnez $t5, .L80065FB8 +/* 066BC8 80065FC8 00000000 */ nop +.L80065FCC: +/* 066BCC 80065FCC 8DCF0578 */ lw $t7, %lo(D_B0000578)($t6) +/* 066BD0 80065FD0 34018965 */ li $at, 0x8965 +/* 066BD4 80065FD4 31F8FFFF */ andi $t8, $t7, 0xffff +/* 066BD8 80065FD8 13010003 */ beq $t8, $at, .L80065FE8 +/* 066BDC 80065FDC 26100EE0 */ addiu $s0, %lo(gPerspectiveMatrixF) # addiu $s0, $s0, 0xee0 +/* 066BE0 80065FE0 24190001 */ li $t9, 1 +/* 066BE4 80065FE4 A0990000 */ sb $t9, ($a0) +.L80065FE8: +/* 066BE8 80065FE8 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 066BEC 80065FEC 44812000 */ mtc1 $at, $f4 +/* 066BF0 80065FF0 3C01800E */ lui $at, %hi(D_800E709C) # $at, 0x800e +/* 066BF4 80065FF4 C426709C */ lwc1 $f6, %lo(D_800E709C)($at) +/* 066BF8 80065FF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 066BFC 80065FFC 44814000 */ mtc1 $at, $f8 +/* 066C00 80066000 3C058012 */ lui $a1, %hi(perspNorm) # $a1, 0x8012 +/* 066C04 80066004 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 066C08 80066008 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 066C0C 8006600C 24A50D6C */ addiu $a1, %lo(perspNorm) # addiu $a1, $a1, 0xd6c +/* 066C10 80066010 02002025 */ move $a0, $s0 +/* 066C14 80066014 3C064270 */ lui $a2, 0x4270 +/* 066C18 80066018 E7A40010 */ swc1 $f4, 0x10($sp) +/* 066C1C 8006601C E7A60014 */ swc1 $f6, 0x14($sp) +/* 066C20 80066020 0C033248 */ jal guPerspectiveF +/* 066C24 80066024 E7A80018 */ swc1 $f8, 0x18($sp) +/* 066C28 80066028 3C058012 */ lui $a1, %hi(gPerspectiveMatrixS) # $a1, 0x8012 +/* 066C2C 8006602C 24A50FE0 */ addiu $a1, %lo(gPerspectiveMatrixS) # addiu $a1, $a1, 0xfe0 +/* 066C30 80066030 0C01BE1C */ jal f32_matrix_to_s16_matrix +/* 066C34 80066034 02002025 */ move $a0, $s0 +/* 066C38 80066038 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 066C3C 8006603C 44815000 */ mtc1 $at, $f10 +/* 066C40 80066040 8FBF0034 */ lw $ra, 0x34($sp) +/* 066C44 80066044 3C018012 */ lui $at, %hi(gCurCamFOV) # $at, 0x8012 +/* 066C48 80066048 8FB00028 */ lw $s0, 0x28($sp) +/* 066C4C 8006604C 8FB1002C */ lw $s1, 0x2c($sp) +/* 066C50 80066050 8FB20030 */ lw $s2, 0x30($sp) +/* 066C54 80066054 27BD0038 */ addiu $sp, $sp, 0x38 +/* 066C58 80066058 03E00008 */ jr $ra +/* 066C5C 8006605C E42A0D10 */ swc1 $f10, %lo(gCurCamFOV)($at) diff --git a/asm/non_matchings/menu/func_80092188.s b/asm/non_matchings/menu/func_80092188.s index 646f9406..b5374ea8 100644 --- a/asm/non_matchings/menu/func_80092188.s +++ b/asm/non_matchings/menu/func_80092188.s @@ -1,737 +1,737 @@ -.late_rodata -glabel jpt_800E84F4 -.word L8009246C, L8009251C, L80092740, L8009287C, L8009287C - -.text -glabel func_80092188 -/* 092D88 80092188 3C0E800E */ lui $t6, %hi(gMenuDelay) # $t6, 0x800e -/* 092D8C 8009218C 8DCEF47C */ lw $t6, %lo(gMenuDelay)($t6) -/* 092D90 80092190 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 092D94 80092194 AFBF001C */ sw $ra, 0x1c($sp) -/* 092D98 80092198 AFA40058 */ sw $a0, 0x58($sp) -/* 092D9C 8009219C 0C01BAA4 */ jal get_settings -/* 092DA0 800921A0 AFAE0030 */ sw $t6, 0x30($sp) -/* 092DA4 800921A4 3C06800E */ lui $a2, %hi(D_800E0980) # $a2, 0x800e -/* 092DA8 800921A8 24C60980 */ addiu $a2, %lo(D_800E0980) # addiu $a2, $a2, 0x980 -/* 092DAC 800921AC 8CC30000 */ lw $v1, ($a2) -/* 092DB0 800921B0 AFA2002C */ sw $v0, 0x2c($sp) -/* 092DB4 800921B4 10600005 */ beqz $v1, .L800921CC -/* 092DB8 800921B8 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 -/* 092DBC 800921BC 8FAF0058 */ lw $t7, 0x58($sp) -/* 092DC0 800921C0 00000000 */ nop -/* 092DC4 800921C4 006FC021 */ addu $t8, $v1, $t7 -/* 092DC8 800921C8 ACD80000 */ sw $t8, ($a2) -.L800921CC: -/* 092DCC 800921CC 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) -/* 092DD0 800921D0 24010005 */ li $at, 5 -/* 092DD4 800921D4 14410011 */ bne $v0, $at, .L8009221C -/* 092DD8 800921D8 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 -/* 092DDC 800921DC 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 -/* 092DE0 800921E0 8D990000 */ lw $t9, ($t4) -/* 092DE4 800921E4 24010002 */ li $at, 2 -/* 092DE8 800921E8 1321000C */ beq $t9, $at, .L8009221C -/* 092DEC 800921EC 240E0002 */ li $t6, 2 -/* 092DF0 800921F0 24010005 */ li $at, 5 -/* 092DF4 800921F4 14410009 */ bne $v0, $at, .L8009221C -/* 092DF8 800921F8 AD8E0000 */ sw $t6, ($t4) -/* 092DFC 800921FC 3C048012 */ lui $a0, %hi(D_801269CC) # $a0, 0x8012 -/* 092E00 80092200 8C8469CC */ lw $a0, %lo(D_801269CC)($a0) -/* 092E04 80092204 0C030C7B */ jal func_800C31EC -/* 092E08 80092208 2484003C */ addiu $a0, $a0, 0x3c -/* 092E0C 8009220C 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 -/* 092E10 80092210 3C06800E */ lui $a2, %hi(D_800E0980) # $a2, 0x800e -/* 092E14 80092214 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) -/* 092E18 80092218 24C60980 */ addiu $a2, %lo(D_800E0980) # addiu $a2, $a2, 0x980 -.L8009221C: -/* 092E1C 8009221C 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 -/* 092E20 80092220 24010004 */ li $at, 4 -/* 092E24 80092224 14410008 */ bne $v0, $at, .L80092248 -/* 092E28 80092228 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 -/* 092E2C 8009222C 8D830000 */ lw $v1, ($t4) -/* 092E30 80092230 240DFFFF */ li $t5, -1 -/* 092E34 80092234 11A30004 */ beq $t5, $v1, .L80092248 -/* 092E38 80092238 24010002 */ li $at, 2 -/* 092E3C 8009223C 10610002 */ beq $v1, $at, .L80092248 -/* 092E40 80092240 240F0002 */ li $t7, 2 -/* 092E44 80092244 AD8F0000 */ sw $t7, ($t4) -.L80092248: -/* 092E48 80092248 3C18800E */ lui $t8, %hi(gTrackIdForPreview) # $t8, 0x800e -/* 092E4C 8009224C 8F18F4C4 */ lw $t8, %lo(gTrackIdForPreview)($t8) -/* 092E50 80092250 3C02800E */ lui $v0, %hi(D_800E0758) # $v0, 0x800e -/* 092E54 80092254 0018C840 */ sll $t9, $t8, 1 -/* 092E58 80092258 00591021 */ addu $v0, $v0, $t9 -/* 092E5C 8009225C 84420758 */ lh $v0, %lo(D_800E0758)($v0) -/* 092E60 80092260 240DFFFF */ li $t5, -1 -/* 092E64 80092264 11A2000B */ beq $t5, $v0, .L80092294 -/* 092E68 80092268 00000000 */ nop -/* 092E6C 8009226C 8CCE0000 */ lw $t6, ($a2) -/* 092E70 80092270 3044FFFF */ andi $a0, $v0, 0xffff -/* 092E74 80092274 29C10007 */ slti $at, $t6, 7 -/* 092E78 80092278 14200006 */ bnez $at, .L80092294 -/* 092E7C 8009227C 00000000 */ nop -/* 092E80 80092280 0C000741 */ jal play_sound_global -/* 092E84 80092284 00002825 */ move $a1, $zero -/* 092E88 80092288 3C06800E */ lui $a2, %hi(D_800E0980) # $a2, 0x800e -/* 092E8C 8009228C 24C60980 */ addiu $a2, %lo(D_800E0980) # addiu $a2, $a2, 0x980 -/* 092E90 80092290 ACC00000 */ sw $zero, ($a2) -.L80092294: -/* 092E94 80092294 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 092E98 80092298 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 092E9C 8009229C 00000000 */ nop -/* 092EA0 800922A0 04410037 */ bgez $v0, .L80092380 -/* 092EA4 800922A4 24490019 */ addiu $t1, $v0, 0x19 -/* 092EA8 800922A8 29210015 */ slti $at, $t1, 0x15 -/* 092EAC 800922AC 14200002 */ bnez $at, .L800922B8 -/* 092EB0 800922B0 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012 -/* 092EB4 800922B4 24090014 */ li $t1, 20 -.L800922B8: -/* 092EB8 800922B8 05210002 */ bgez $t1, .L800922C4 -/* 092EBC 800922BC 00000000 */ nop -/* 092EC0 800922C0 00004825 */ move $t1, $zero -.L800922C4: -/* 092EC4 800922C4 8C426478 */ lw $v0, %lo(gTrackSelectViewPortHalfY)($v0) -/* 092EC8 800922C8 252F0014 */ addiu $t7, $t1, 0x14 -/* 092ECC 800922CC 01E20019 */ multu $t7, $v0 -/* 092ED0 800922D0 24010028 */ li $at, 40 -/* 092ED4 800922D4 00094080 */ sll $t0, $t1, 2 -/* 092ED8 800922D8 24190050 */ li $t9, 80 -/* 092EDC 800922DC 03282823 */ subu $a1, $t9, $t0 -/* 092EE0 800922E0 250700F0 */ addiu $a3, $t0, 0xf0 -/* 092EE4 800922E4 00002025 */ move $a0, $zero -/* 092EE8 800922E8 AFA90048 */ sw $t1, 0x48($sp) -/* 092EEC 800922EC 00001812 */ mflo $v1 -/* 092EF0 800922F0 00000000 */ nop -/* 092EF4 800922F4 00000000 */ nop -/* 092EF8 800922F8 0061001A */ div $zero, $v1, $at -/* 092EFC 800922FC 0000C012 */ mflo $t8 -/* 092F00 80092300 03025021 */ addu $t2, $t8, $v0 -/* 092F04 80092304 AFAA0010 */ sw $t2, 0x10($sp) -/* 092F08 80092308 0C019A50 */ jal func_80066940 -/* 092F0C 8009230C 00583023 */ subu $a2, $v0, $t8 -/* 092F10 80092310 8FA90048 */ lw $t1, 0x48($sp) -/* 092F14 80092314 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 092F18 80092318 44892000 */ mtc1 $t1, $f4 -/* 092F1C 8009231C 44814000 */ mtc1 $at, $f8 -/* 092F20 80092320 468021A0 */ cvt.s.w $f6, $f4 -/* 092F24 80092324 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 092F28 80092328 44818000 */ mtc1 $at, $f16 -/* 092F2C 8009232C 46083283 */ div.s $f10, $f6, $f8 -/* 092F30 80092330 3C04800E */ lui $a0, %hi(sMenuImageProperties) # $a0, 0x800e -/* 092F34 80092334 2484F510 */ addiu $a0, %lo(sMenuImageProperties) # addiu $a0, $a0, -0xaf0 -/* 092F38 80092338 C4920088 */ lwc1 $f18, 0x88($a0) -/* 092F3C 8009233C 3C03800E */ lui $v1, %hi(gMenuImageStack) # $v1, 0x800e -/* 092F40 80092340 2463F75C */ addiu $v1, %lo(gMenuImageStack) # addiu $v1, $v1, -0x8a4 -/* 092F44 80092344 8C6E0000 */ lw $t6, ($v1) -/* 092F48 80092348 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 092F4C 8009234C 460A8000 */ add.s $f0, $f16, $f10 -/* 092F50 80092350 46009102 */ mul.s $f4, $f18, $f0 -/* 092F54 80092354 E5C40088 */ swc1 $f4, 0x88($t6) -/* 092F58 80092358 C48600A8 */ lwc1 $f6, 0xa8($a0) -/* 092F5C 8009235C 8C6F0000 */ lw $t7, ($v1) -/* 092F60 80092360 46003202 */ mul.s $f8, $f6, $f0 -/* 092F64 80092364 E5E800A8 */ swc1 $f8, 0xa8($t7) -/* 092F68 80092368 C49000C8 */ lwc1 $f16, 0xc8($a0) -/* 092F6C 8009236C 8C780000 */ lw $t8, ($v1) -/* 092F70 80092370 46008282 */ mul.s $f10, $f16, $f0 -/* 092F74 80092374 E70A00C8 */ swc1 $f10, 0xc8($t8) -/* 092F78 80092378 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 092F7C 8009237C 00000000 */ nop -.L80092380: -/* 092F80 80092380 18400008 */ blez $v0, .L800923A4 -/* 092F84 80092384 28410029 */ slti $at, $v0, 0x29 -/* 092F88 80092388 3C03800E */ lui $v1, %hi(sMenuMusicVolume) # $v1, 0x800e -/* 092F8C 8009238C 8FAE0058 */ lw $t6, 0x58($sp) -/* 092F90 80092390 2463F760 */ addiu $v1, %lo(sMenuMusicVolume) # addiu $v1, $v1, -0x8a0 -/* 092F94 80092394 8C790000 */ lw $t9, ($v1) -/* 092F98 80092398 000E7880 */ sll $t7, $t6, 2 -/* 092F9C 8009239C 032FC023 */ subu $t8, $t9, $t7 -/* 092FA0 800923A0 AC780000 */ sw $t8, ($v1) -.L800923A4: -/* 092FA4 800923A4 14200006 */ bnez $at, .L800923C0 -/* 092FA8 800923A8 2841FFE2 */ slti $at, $v0, -0x1e -/* 092FAC 800923AC 0C023C03 */ jal func_8008F00C -/* 092FB0 800923B0 24040002 */ li $a0, 2 -/* 092FB4 800923B4 10000012 */ b .L80092400 -/* 092FB8 800923B8 00002025 */ move $a0, $zero -/* 092FBC 800923BC 2841FFE2 */ slti $at, $v0, -0x1e -.L800923C0: -/* 092FC0 800923C0 1020000E */ beqz $at, .L800923FC -/* 092FC4 800923C4 00002025 */ move $a0, $zero -/* 092FC8 800923C8 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 -/* 092FCC 800923CC 0C023C03 */ jal func_8008F00C -/* 092FD0 800923D0 AC2063D8 */ sw $zero, %lo(gOpacityDecayTimer)($at) -/* 092FD4 800923D4 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012 -/* 092FD8 800923D8 8C426478 */ lw $v0, %lo(gTrackSelectViewPortHalfY)($v0) -/* 092FDC 800923DC 00002025 */ move $a0, $zero -/* 092FE0 800923E0 00021843 */ sra $v1, $v0, 1 -/* 092FE4 800923E4 00627021 */ addu $t6, $v1, $v0 -/* 092FE8 800923E8 AFAE0010 */ sw $t6, 0x10($sp) -/* 092FEC 800923EC 24050050 */ li $a1, 80 -/* 092FF0 800923F0 240700F0 */ li $a3, 240 -/* 092FF4 800923F4 0C019A50 */ jal func_80066940 -/* 092FF8 800923F8 00433023 */ subu $a2, $v0, $v1 -.L800923FC: -/* 092FFC 800923FC 00002025 */ move $a0, $zero -.L80092400: -/* 093000 80092400 0C019A06 */ jal func_80066818 -/* 093004 80092404 24050001 */ li $a1, 1 -/* 093008 80092408 8FB90030 */ lw $t9, 0x30($sp) -/* 09300C 8009240C 3C04800E */ lui $a0, %hi(gTrackIdForPreview) # $a0, 0x800e -/* 093010 80092410 172001F0 */ bnez $t9, .L80092BD4 -/* 093014 80092414 8FBF001C */ lw $ra, 0x1c($sp) -/* 093018 80092418 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0) -/* 09301C 8009241C 0C01AC3E */ jal get_map_available_vehicles -/* 093020 80092420 00000000 */ nop -/* 093024 80092424 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 -/* 093028 80092428 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 -/* 09302C 8009242C 8D830000 */ lw $v1, ($t4) -/* 093030 80092430 240DFFFF */ li $t5, -1 -/* 093034 80092434 246F0001 */ addiu $t7, $v1, 1 -/* 093038 80092438 2DE10005 */ sltiu $at, $t7, 5 -/* 09303C 8009243C 00402025 */ move $a0, $v0 -/* 093040 80092440 AFA0003C */ sw $zero, 0x3c($sp) -/* 093044 80092444 AFA00038 */ sw $zero, 0x38($sp) -/* 093048 80092448 102001B3 */ beqz $at, .L80092B18 -/* 09304C 8009244C AFA00034 */ sw $zero, 0x34($sp) -/* 093050 80092450 000F7880 */ sll $t7, $t7, 2 -/* 093054 80092454 3C01800F */ lui $at, %hi(jpt_800E84F4) # $at, 0x800f -/* 093058 80092458 002F0821 */ addu $at, $at, $t7 -/* 09305C 8009245C 8C2F84F4 */ lw $t7, %lo(jpt_800E84F4)($at) -/* 093060 80092460 00000000 */ nop -/* 093064 80092464 01E00008 */ jr $t7 -/* 093068 80092468 00000000 */ nop -glabel L8009246C -/* 09306C 8009246C 3C048012 */ lui $a0, %hi(D_801267D8) # $a0, 0x8012 -/* 093070 80092470 248467D8 */ addiu $a0, %lo(D_801267D8) # addiu $a0, $a0, 0x67d8 -/* 093074 80092474 8C830010 */ lw $v1, 0x10($a0) -/* 093078 80092478 3C0E8012 */ lui $t6, %hi(D_801269C8) # $t6, 0x8012 -/* 09307C 8009247C 30789000 */ andi $t8, $v1, 0x9000 -/* 093080 80092480 1300000A */ beqz $t8, .L800924AC -/* 093084 80092484 240F0001 */ li $t7, 1 -/* 093088 80092488 8DCE69C8 */ lw $t6, %lo(D_801269C8)($t6) -/* 09308C 8009248C 24010004 */ li $at, 4 -/* 093090 80092490 15C10003 */ bne $t6, $at, .L800924A0 -/* 093094 80092494 24190002 */ li $t9, 2 -/* 093098 80092498 10000002 */ b .L800924A4 -/* 09309C 8009249C AD990000 */ sw $t9, ($t4) -.L800924A0: -/* 0930A0 800924A0 AD800000 */ sw $zero, ($t4) -.L800924A4: -/* 0930A4 800924A4 1000019C */ b .L80092B18 -/* 0930A8 800924A8 AFAF0038 */ sw $t7, 0x38($sp) -.L800924AC: -/* 0930AC 800924AC 30784000 */ andi $t8, $v1, 0x4000 -/* 0930B0 800924B0 13000006 */ beqz $t8, .L800924CC -/* 0930B4 800924B4 3C028012 */ lui $v0, %hi(D_80126838) # $v0, 0x8012 -/* 0930B8 800924B8 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 0930BC 800924BC 240E0001 */ li $t6, 1 -/* 0930C0 800924C0 AC2DF47C */ sw $t5, %lo(gMenuDelay)($at) -/* 0930C4 800924C4 10000194 */ b .L80092B18 -/* 0930C8 800924C8 AFAE003C */ sw $t6, 0x3c($sp) -.L800924CC: -/* 0930CC 800924CC 84426838 */ lh $v0, %lo(D_80126838)($v0) -/* 0930D0 800924D0 3C19800E */ lui $t9, %hi(D_800E0418) # $t9, 0x800e -/* 0930D4 800924D4 18400008 */ blez $v0, .L800924F8 -/* 0930D8 800924D8 00000000 */ nop -/* 0930DC 800924DC 8F390418 */ lw $t9, %lo(D_800E0418)($t9) -/* 0930E0 800924E0 3C01800E */ lui $at, %hi(D_800E0418) # $at, 0x800e -/* 0930E4 800924E4 13200004 */ beqz $t9, .L800924F8 -/* 0930E8 800924E8 240F0001 */ li $t7, 1 -/* 0930EC 800924EC AC200418 */ sw $zero, %lo(D_800E0418)($at) -/* 0930F0 800924F0 10000189 */ b .L80092B18 -/* 0930F4 800924F4 AFAF0034 */ sw $t7, 0x34($sp) -.L800924F8: -/* 0930F8 800924F8 04410187 */ bgez $v0, .L80092B18 -/* 0930FC 800924FC 3C18800E */ lui $t8, %hi(D_800E0418) # $t8, 0x800e -/* 093100 80092500 8F180418 */ lw $t8, %lo(D_800E0418)($t8) -/* 093104 80092504 241F0001 */ li $ra, 1 -/* 093108 80092508 17000183 */ bnez $t8, .L80092B18 -/* 09310C 8009250C 3C01800E */ lui $at, %hi(D_800E0418) # $at, 0x800e -/* 093110 80092510 AC3F0418 */ sw $ra, %lo(D_800E0418)($at) -/* 093114 80092514 10000180 */ b .L80092B18 -/* 093118 80092518 AFBF0034 */ sw $ra, 0x34($sp) -glabel L8009251C -/* 09311C 8009251C 3C0A800E */ lui $t2, %hi(gNumberOfActivePlayers) # $t2, 0x800e -/* 093120 80092520 8D4AF4BC */ lw $t2, %lo(gNumberOfActivePlayers)($t2) -/* 093124 80092524 00002825 */ move $a1, $zero -/* 093128 80092528 19400072 */ blez $t2, .L800926F4 -/* 09312C 8009252C 3C088012 */ lui $t0, %hi(D_801267D8) # $t0, 0x8012 -/* 093130 80092530 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 -/* 093134 80092534 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e -/* 093138 80092538 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 -/* 09313C 8009253C 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 -/* 093140 80092540 250867D8 */ addiu $t0, %lo(D_801267D8) # addiu $t0, $t0, 0x67d8 -/* 093144 80092544 241F0001 */ li $ra, 1 -.L80092548: -/* 093148 80092548 8D030000 */ lw $v1, ($t0) -/* 09314C 8009254C 00000000 */ nop -/* 093150 80092550 306E4000 */ andi $t6, $v1, 0x4000 -/* 093154 80092554 11C00024 */ beqz $t6, .L800925E8 -/* 093158 80092558 30789000 */ andi $t8, $v1, 0x9000 -/* 09315C 8009255C 8D230000 */ lw $v1, ($t1) -/* 093160 80092560 AFBF003C */ sw $ra, 0x3c($sp) -/* 093164 80092564 14600019 */ bnez $v1, .L800925CC -/* 093168 80092568 01651021 */ addu $v0, $t3, $a1 -/* 09316C 8009256C AFA4004C */ sw $a0, 0x4c($sp) -/* 093170 80092570 AFA50040 */ sw $a1, 0x40($sp) -/* 093174 80092574 0C027B18 */ jal is_adventure_two_unlocked -/* 093178 80092578 AFA80024 */ sw $t0, 0x24($sp) -/* 09317C 8009257C 8FA4004C */ lw $a0, 0x4c($sp) -/* 093180 80092580 8FA50040 */ lw $a1, 0x40($sp) -/* 093184 80092584 8FA80024 */ lw $t0, 0x24($sp) -/* 093188 80092588 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e -/* 09318C 8009258C 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 -/* 093190 80092590 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 -/* 093194 80092594 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 -/* 093198 80092598 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 -/* 09319C 8009259C 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 -/* 0931A0 800925A0 240DFFFF */ li $t5, -1 -/* 0931A4 800925A4 10400003 */ beqz $v0, .L800925B4 -/* 0931A8 800925A8 241F0001 */ li $ra, 1 -/* 0931AC 800925AC 10000003 */ b .L800925BC -/* 0931B0 800925B0 AD8D0000 */ sw $t5, ($t4) -.L800925B4: -/* 0931B4 800925B4 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 0931B8 800925B8 AC2DF47C */ sw $t5, %lo(gMenuDelay)($at) -.L800925BC: -/* 0931BC 800925BC 3C0A800E */ lui $t2, %hi(gNumberOfActivePlayers) # $t2, 0x800e -/* 0931C0 800925C0 8D4AF4BC */ lw $t2, %lo(gNumberOfActivePlayers)($t2) -/* 0931C4 800925C4 10000048 */ b .L800926E8 -/* 0931C8 800925C8 24A50001 */ addiu $a1, $a1, 1 -.L800925CC: -/* 0931CC 800925CC 80590000 */ lb $t9, ($v0) -/* 0931D0 800925D0 246FFFFF */ addiu $t7, $v1, -1 -/* 0931D4 800925D4 13200043 */ beqz $t9, .L800926E4 -/* 0931D8 800925D8 00000000 */ nop -/* 0931DC 800925DC AD2F0000 */ sw $t7, ($t1) -/* 0931E0 800925E0 10000040 */ b .L800926E4 -/* 0931E4 800925E4 A0400000 */ sb $zero, ($v0) -.L800925E8: -/* 0931E8 800925E8 1300000B */ beqz $t8, .L80092618 -/* 0931EC 800925EC 01651021 */ addu $v0, $t3, $a1 -/* 0931F0 800925F0 804E0000 */ lb $t6, ($v0) -/* 0931F4 800925F4 00000000 */ nop -/* 0931F8 800925F8 15C0003A */ bnez $t6, .L800926E4 -/* 0931FC 800925FC 00000000 */ nop -/* 093200 80092600 8D390000 */ lw $t9, ($t1) -/* 093204 80092604 A05F0000 */ sb $ra, ($v0) -/* 093208 80092608 272F0001 */ addiu $t7, $t9, 1 -/* 09320C 8009260C AD2F0000 */ sw $t7, ($t1) -/* 093210 80092610 10000034 */ b .L800926E4 -/* 093214 80092614 AFBF0038 */ sw $ra, 0x38($sp) -.L80092618: -/* 093218 80092618 80580000 */ lb $t8, ($v0) -/* 09321C 8009261C 8FAE002C */ lw $t6, 0x2c($sp) -/* 093220 80092620 17000030 */ bnez $t8, .L800926E4 -/* 093224 80092624 3C0F800E */ lui $t7, %hi(gTrackIdForPreview) # $t7, 0x800e -/* 093228 80092628 8DEFF4C4 */ lw $t7, %lo(gTrackIdForPreview)($t7) -/* 09322C 8009262C 8DD90004 */ lw $t9, 4($t6) -/* 093230 80092630 000FC080 */ sll $t8, $t7, 2 -/* 093234 80092634 03387021 */ addu $t6, $t9, $t8 -/* 093238 80092638 8DCF0000 */ lw $t7, ($t6) -/* 09323C 8009263C 3C188012 */ lui $t8, %hi(gPlayerSelectVehicle) # $t8, 0x8012 -/* 093240 80092640 31F90002 */ andi $t9, $t7, 2 -/* 093244 80092644 13200027 */ beqz $t9, .L800926E4 -/* 093248 80092648 271869C0 */ addiu $t8, %lo(gPlayerSelectVehicle) # addiu $t8, $t8, 0x69c0 -/* 09324C 8009264C 00057040 */ sll $t6, $a1, 1 -/* 093250 80092650 3C068012 */ lui $a2, %hi(D_80126830) # $a2, 0x8012 -/* 093254 80092654 00B81821 */ addu $v1, $a1, $t8 -/* 093258 80092658 00CE3021 */ addu $a2, $a2, $t6 -/* 09325C 8009265C 80620000 */ lb $v0, ($v1) -/* 093260 80092660 84C66830 */ lh $a2, %lo(D_80126830)($a2) -/* 093264 80092664 00403825 */ move $a3, $v0 -/* 093268 80092668 18C0000A */ blez $a2, .L80092694 -/* 09326C 8009266C 244FFFFF */ addiu $t7, $v0, -1 -.L80092670: -/* 093270 80092670 A06F0000 */ sb $t7, ($v1) -/* 093274 80092674 80620000 */ lb $v0, ($v1) -/* 093278 80092678 24190001 */ li $t9, 1 -/* 09327C 8009267C 0059C004 */ sllv $t8, $t9, $v0 -/* 093280 80092680 03047024 */ and $t6, $t8, $a0 -/* 093284 80092684 15C00003 */ bnez $t6, .L80092694 -/* 093288 80092688 00000000 */ nop -/* 09328C 8009268C 0441FFF8 */ bgez $v0, .L80092670 -/* 093290 80092690 244FFFFF */ addiu $t7, $v0, -1 -.L80092694: -/* 093294 80092694 04C1000A */ bgez $a2, .L800926C0 -/* 093298 80092698 244F0001 */ addiu $t7, $v0, 1 -.L8009269C: -/* 09329C 8009269C A06F0000 */ sb $t7, ($v1) -/* 0932A0 800926A0 80620000 */ lb $v0, ($v1) -/* 0932A4 800926A4 24190001 */ li $t9, 1 -/* 0932A8 800926A8 0059C004 */ sllv $t8, $t9, $v0 -/* 0932AC 800926AC 03047024 */ and $t6, $t8, $a0 -/* 0932B0 800926B0 15C00003 */ bnez $t6, .L800926C0 -/* 0932B4 800926B4 28410003 */ slti $at, $v0, 3 -/* 0932B8 800926B8 1420FFF8 */ bnez $at, .L8009269C -/* 0932BC 800926BC 244F0001 */ addiu $t7, $v0, 1 -.L800926C0: -/* 0932C0 800926C0 10E20008 */ beq $a3, $v0, .L800926E4 -/* 0932C4 800926C4 00000000 */ nop -/* 0932C8 800926C8 04400003 */ bltz $v0, .L800926D8 -/* 0932CC 800926CC 28410003 */ slti $at, $v0, 3 -/* 0932D0 800926D0 14200003 */ bnez $at, .L800926E0 -/* 0932D4 800926D4 00000000 */ nop -.L800926D8: -/* 0932D8 800926D8 10000002 */ b .L800926E4 -/* 0932DC 800926DC A0670000 */ sb $a3, ($v1) -.L800926E0: -/* 0932E0 800926E0 AFBF0034 */ sw $ra, 0x34($sp) -.L800926E4: -/* 0932E4 800926E4 24A50001 */ addiu $a1, $a1, 1 -.L800926E8: -/* 0932E8 800926E8 00AA082A */ slt $at, $a1, $t2 -/* 0932EC 800926EC 1420FF96 */ bnez $at, .L80092548 -/* 0932F0 800926F0 25080004 */ addiu $t0, $t0, 4 -.L800926F4: -/* 0932F4 800926F4 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e -/* 0932F8 800926F8 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 -/* 0932FC 800926FC 8D2F0000 */ lw $t7, ($t1) -/* 093300 80092700 241F0001 */ li $ra, 1 -/* 093304 80092704 154F0104 */ bne $t2, $t7, .L80092B18 -/* 093308 80092708 29410002 */ slti $at, $t2, 2 -/* 09330C 8009270C AFA0003C */ sw $zero, 0x3c($sp) -/* 093310 80092710 AFA00038 */ sw $zero, 0x38($sp) -/* 093314 80092714 14200004 */ bnez $at, .L80092728 -/* 093318 80092718 AFA00034 */ sw $zero, 0x34($sp) -/* 09331C 8009271C 24190002 */ li $t9, 2 -/* 093320 80092720 10000002 */ b .L8009272C -/* 093324 80092724 AD990000 */ sw $t9, ($t4) -.L80092728: -/* 093328 80092728 AD9F0000 */ sw $ra, ($t4) -.L8009272C: -/* 09332C 8009272C 24040131 */ li $a0, 305 -/* 093330 80092730 0C000741 */ jal play_sound_global -/* 093334 80092734 00002825 */ move $a1, $zero -/* 093338 80092738 100000F8 */ b .L80092B1C -/* 09333C 8009273C 8FAF003C */ lw $t7, 0x3c($sp) -glabel L80092740 -/* 093340 80092740 3C048012 */ lui $a0, %hi(D_801267D8) # $a0, 0x8012 -/* 093344 80092744 248467D8 */ addiu $a0, %lo(D_801267D8) # addiu $a0, $a0, 0x67d8 -/* 093348 80092748 8C820000 */ lw $v0, ($a0) -/* 09334C 8009274C 3C038012 */ lui $v1, %hi(D_80126830) # $v1, 0x8012 -/* 093350 80092750 30589000 */ andi $t8, $v0, 0x9000 -/* 093354 80092754 13000006 */ beqz $t8, .L80092770 -/* 093358 80092758 30594000 */ andi $t9, $v0, 0x4000 -/* 09335C 8009275C 240E0002 */ li $t6, 2 -/* 093360 80092760 240F0001 */ li $t7, 1 -/* 093364 80092764 AD8E0000 */ sw $t6, ($t4) -/* 093368 80092768 1000000B */ b .L80092798 -/* 09336C 8009276C AFAF0038 */ sw $t7, 0x38($sp) -.L80092770: -/* 093370 80092770 13200009 */ beqz $t9, .L80092798 -/* 093374 80092774 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e -/* 093378 80092778 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 -/* 09337C 8009277C 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 -/* 093380 80092780 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 -/* 093384 80092784 24180001 */ li $t8, 1 -/* 093388 80092788 A1600000 */ sb $zero, ($t3) -/* 09338C 8009278C AD200000 */ sw $zero, ($t1) -/* 093390 80092790 AD800000 */ sw $zero, ($t4) -/* 093394 80092794 AFB8003C */ sw $t8, 0x3c($sp) -.L80092798: -/* 093398 80092798 84636830 */ lh $v1, %lo(D_80126830)($v1) -/* 09339C 8009279C 3C02800E */ lui $v0, %hi(D_800E0414) # $v0, 0x800e -/* 0933A0 800927A0 18600015 */ blez $v1, .L800927F8 -/* 0933A4 800927A4 00000000 */ nop -/* 0933A8 800927A8 8C420414 */ lw $v0, %lo(D_800E0414)($v0) -/* 0933AC 800927AC 3C048012 */ lui $a0, %hi(D_80126848) # $a0, 0x8012 -/* 0933B0 800927B0 18400011 */ blez $v0, .L800927F8 -/* 0933B4 800927B4 00000000 */ nop -/* 0933B8 800927B8 8C846848 */ lw $a0, %lo(D_80126848)($a0) -/* 0933BC 800927BC 00000000 */ nop -/* 0933C0 800927C0 10800009 */ beqz $a0, .L800927E8 -/* 0933C4 800927C4 244EFFFF */ addiu $t6, $v0, -1 -/* 0933C8 800927C8 0C001223 */ jal func_8000488C -/* 0933CC 800927CC 00000000 */ nop -/* 0933D0 800927D0 3C038012 */ lui $v1, %hi(D_80126830) # $v1, 0x8012 -/* 0933D4 800927D4 3C02800E */ lui $v0, %hi(D_800E0414) # $v0, 0x800e -/* 0933D8 800927D8 8C420414 */ lw $v0, %lo(D_800E0414)($v0) -/* 0933DC 800927DC 84636830 */ lh $v1, %lo(D_80126830)($v1) -/* 0933E0 800927E0 00000000 */ nop -/* 0933E4 800927E4 244EFFFF */ addiu $t6, $v0, -1 -.L800927E8: -/* 0933E8 800927E8 3C01800E */ lui $at, %hi(D_800E0414) # $at, 0x800e -/* 0933EC 800927EC 240F0001 */ li $t7, 1 -/* 0933F0 800927F0 AC2E0414 */ sw $t6, %lo(D_800E0414)($at) -/* 0933F4 800927F4 AFAF0034 */ sw $t7, 0x34($sp) -.L800927F8: -/* 0933F8 800927F8 046100C7 */ bgez $v1, .L80092B18 -/* 0933FC 800927FC 3C19800E */ lui $t9, %hi(D_800E0414) # $t9, 0x800e -/* 093400 80092800 8F390414 */ lw $t9, %lo(D_800E0414)($t9) -/* 093404 80092804 3C048012 */ lui $a0, %hi(D_80126840) # $a0, 0x8012 -/* 093408 80092808 1F2000C4 */ bgtz $t9, .L80092B1C -/* 09340C 8009280C 8FAF003C */ lw $t7, 0x3c($sp) -/* 093410 80092810 8C846840 */ lw $a0, %lo(D_80126840)($a0) -/* 093414 80092814 24180001 */ li $t8, 1 -/* 093418 80092818 10800003 */ beqz $a0, .L80092828 -/* 09341C 8009281C AFB80034 */ sw $t8, 0x34($sp) -/* 093420 80092820 0C001223 */ jal func_8000488C -/* 093424 80092824 00000000 */ nop -.L80092828: -/* 093428 80092828 00002025 */ move $a0, $zero -/* 09342C 8009282C 0C01BE53 */ jal get_random_number_from_range -/* 093430 80092830 240500FF */ li $a1, 255 -/* 093434 80092834 28410080 */ slti $at, $v0, 0x80 -/* 093438 80092838 14200007 */ bnez $at, .L80092858 -/* 09343C 8009283C 24040147 */ li $a0, 327 -/* 093440 80092840 3C058012 */ lui $a1, %hi(D_80126848) # $a1, 0x8012 -/* 093444 80092844 24A56848 */ addiu $a1, %lo(D_80126848) # addiu $a1, $a1, 0x6848 -/* 093448 80092848 0C000741 */ jal play_sound_global -/* 09344C 8009284C 24040141 */ li $a0, 321 -/* 093450 80092850 10000004 */ b .L80092864 -/* 093454 80092854 00000000 */ nop -.L80092858: -/* 093458 80092858 3C058012 */ lui $a1, %hi(D_80126848) # $a1, 0x8012 -/* 09345C 8009285C 0C000741 */ jal play_sound_global -/* 093460 80092860 24A56848 */ addiu $a1, %lo(D_80126848) # addiu $a1, $a1, 0x6848 -.L80092864: -/* 093464 80092864 3C0E800E */ lui $t6, %hi(D_800E0414) # $t6, 0x800e -/* 093468 80092868 8DCE0414 */ lw $t6, %lo(D_800E0414)($t6) -/* 09346C 8009286C 3C01800E */ lui $at, %hi(D_800E0414) # $at, 0x800e -/* 093470 80092870 25CF0001 */ addiu $t7, $t6, 1 -/* 093474 80092874 100000A8 */ b .L80092B18 -/* 093478 80092878 AC2F0414 */ sw $t7, %lo(D_800E0414)($at) -glabel L8009287C -/* 09347C 8009287C 24010002 */ li $at, 2 -/* 093480 80092880 1461003E */ bne $v1, $at, .L8009297C -/* 093484 80092884 3C19800E */ lui $t9, %hi(gNumberOfActivePlayers) # $t9, 0x800e -/* 093488 80092888 8F39F4BC */ lw $t9, %lo(gNumberOfActivePlayers)($t9) -/* 09348C 8009288C 24010002 */ li $at, 2 -/* 093490 80092890 1721003A */ bne $t9, $at, .L8009297C -/* 093494 80092894 3C188012 */ lui $t8, %hi(D_801269C8) # $t8, 0x8012 -/* 093498 80092898 8F1869C8 */ lw $t8, %lo(D_801269C8)($t8) -/* 09349C 8009289C 3C048012 */ lui $a0, %hi(D_801267D8) # $a0, 0x8012 -/* 0934A0 800928A0 2B010004 */ slti $at, $t8, 4 -/* 0934A4 800928A4 10200035 */ beqz $at, .L8009297C -/* 0934A8 800928A8 248467D8 */ addiu $a0, %lo(D_801267D8) # addiu $a0, $a0, 0x67d8 -/* 0934AC 800928AC 8C830010 */ lw $v1, 0x10($a0) -/* 0934B0 800928B0 240F0003 */ li $t7, 3 -/* 0934B4 800928B4 306E9000 */ andi $t6, $v1, 0x9000 -/* 0934B8 800928B8 11C00005 */ beqz $t6, .L800928D0 -/* 0934BC 800928BC 30784000 */ andi $t8, $v1, 0x4000 -/* 0934C0 800928C0 24190001 */ li $t9, 1 -/* 0934C4 800928C4 AD8F0000 */ sw $t7, ($t4) -/* 0934C8 800928C8 10000093 */ b .L80092B18 -/* 0934CC 800928CC AFB90038 */ sw $t9, 0x38($sp) -.L800928D0: -/* 0934D0 800928D0 13000014 */ beqz $t8, .L80092924 -/* 0934D4 800928D4 3C038012 */ lui $v1, %hi(D_80126820) # $v1, 0x8012 -/* 0934D8 800928D8 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e -/* 0934DC 800928DC 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 -/* 0934E0 800928E0 8D2E0000 */ lw $t6, ($t1) -/* 0934E4 800928E4 8C990000 */ lw $t9, ($a0) -/* 0934E8 800928E8 25CFFFFF */ addiu $t7, $t6, -1 -/* 0934EC 800928EC 33384000 */ andi $t8, $t9, 0x4000 -/* 0934F0 800928F0 AD800000 */ sw $zero, ($t4) -/* 0934F4 800928F4 13000005 */ beqz $t8, .L8009290C -/* 0934F8 800928F8 AD2F0000 */ sw $t7, ($t1) -/* 0934FC 800928FC 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 -/* 093500 80092900 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 -/* 093504 80092904 10000004 */ b .L80092918 -/* 093508 80092908 A1600000 */ sb $zero, ($t3) -.L8009290C: -/* 09350C 8009290C 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 -/* 093510 80092910 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 -/* 093514 80092914 A1600001 */ sb $zero, 1($t3) -.L80092918: -/* 093518 80092918 240E0001 */ li $t6, 1 -/* 09351C 8009291C 1000007E */ b .L80092B18 -/* 093520 80092920 AFAE003C */ sw $t6, 0x3c($sp) -.L80092924: -/* 093524 80092924 84636820 */ lh $v1, %lo(D_80126820)($v1) -/* 093528 80092928 3C04800E */ lui $a0, %hi(gMultiplayerSelectedNumberOfRacers) # $a0, 0x800e -/* 09352C 8009292C 04610008 */ bgez $v1, .L80092950 -/* 093530 80092930 24840410 */ addiu $a0, %lo(gMultiplayerSelectedNumberOfRacers) # addiu $a0, $a0, 0x410 -/* 093534 80092934 8C820000 */ lw $v0, ($a0) -/* 093538 80092938 240F0001 */ li $t7, 1 -/* 09353C 8009293C 18400004 */ blez $v0, .L80092950 -/* 093540 80092940 2459FFFF */ addiu $t9, $v0, -1 -/* 093544 80092944 AFAF0034 */ sw $t7, 0x34($sp) -/* 093548 80092948 10000073 */ b .L80092B18 -/* 09354C 8009294C AC990000 */ sw $t9, ($a0) -.L80092950: -/* 093550 80092950 3C04800E */ lui $a0, %hi(gMultiplayerSelectedNumberOfRacers) # $a0, 0x800e -/* 093554 80092954 18600070 */ blez $v1, .L80092B18 -/* 093558 80092958 24840410 */ addiu $a0, %lo(gMultiplayerSelectedNumberOfRacers) # addiu $a0, $a0, 0x410 -/* 09355C 8009295C 8C820000 */ lw $v0, ($a0) -/* 093560 80092960 24180001 */ li $t8, 1 -/* 093564 80092964 28410002 */ slti $at, $v0, 2 -/* 093568 80092968 1020006B */ beqz $at, .L80092B18 -/* 09356C 8009296C 244E0001 */ addiu $t6, $v0, 1 -/* 093570 80092970 AFB80034 */ sw $t8, 0x34($sp) -/* 093574 80092974 10000068 */ b .L80092B18 -/* 093578 80092978 AC8E0000 */ sw $t6, ($a0) -.L8009297C: -/* 09357C 8009297C 3C048012 */ lui $a0, %hi(D_801267D8) # $a0, 0x8012 -/* 093580 80092980 248467D8 */ addiu $a0, %lo(D_801267D8) # addiu $a0, $a0, 0x67d8 -/* 093584 80092984 8C830010 */ lw $v1, 0x10($a0) -/* 093588 80092988 241F0001 */ li $ra, 1 -/* 09358C 8009298C 306F9000 */ andi $t7, $v1, 0x9000 -/* 093590 80092990 11E00015 */ beqz $t7, .L800929E8 -/* 093594 80092994 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 -/* 093598 80092998 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 09359C 8009299C AC3FF47C */ sw $ra, %lo(gMenuDelay)($at) -/* 0935A0 800929A0 0C01E2AB */ jal func_80078AAC -/* 0935A4 800929A4 00002025 */ move $a0, $zero -/* 0935A8 800929A8 3C01800E */ lui $at, %hi(D_800E097C) # $at, 0x800e -/* 0935AC 800929AC 0C030060 */ jal func_800C0180 -/* 0935B0 800929B0 AC20097C */ sw $zero, %lo(D_800E097C)($at) -/* 0935B4 800929B4 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 0935B8 800929B8 0C030076 */ jal func_800C01D8 -/* 0935BC 800929BC 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 0935C0 800929C0 3C198012 */ lui $t9, %hi(D_801269C8) # $t9, 0x8012 -/* 0935C4 800929C4 8F3969C8 */ lw $t9, %lo(D_801269C8)($t9) -/* 0935C8 800929C8 24010005 */ li $at, 5 -/* 0935CC 800929CC 17210004 */ bne $t9, $at, .L800929E0 -/* 0935D0 800929D0 24180001 */ li $t8, 1 -/* 0935D4 800929D4 0C030C7B */ jal func_800C31EC -/* 0935D8 800929D8 24042710 */ li $a0, 10000 -/* 0935DC 800929DC 24180001 */ li $t8, 1 -.L800929E0: -/* 0935E0 800929E0 1000004D */ b .L80092B18 -/* 0935E4 800929E4 AFB80038 */ sw $t8, 0x38($sp) -.L800929E8: -/* 0935E8 800929E8 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) -/* 0935EC 800929EC 306E4000 */ andi $t6, $v1, 0x4000 -/* 0935F0 800929F0 28410004 */ slti $at, $v0, 4 -/* 0935F4 800929F4 1420001C */ bnez $at, .L80092A68 -/* 0935F8 800929F8 3C0A800E */ lui $t2, %hi(gNumberOfActivePlayers) # $t2, 0x800e -/* 0935FC 800929FC 11C00046 */ beqz $t6, .L80092B18 -/* 093600 80092A00 240F0001 */ li $t7, 1 -/* 093604 80092A04 24010004 */ li $at, 4 -/* 093608 80092A08 1441000C */ bne $v0, $at, .L80092A3C -/* 09360C 80092A0C AFAF003C */ sw $t7, 0x3c($sp) -/* 093610 80092A10 0C027B18 */ jal is_adventure_two_unlocked -/* 093614 80092A14 00000000 */ nop -/* 093618 80092A18 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 -/* 09361C 80092A1C 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 -/* 093620 80092A20 10400006 */ beqz $v0, .L80092A3C -/* 093624 80092A24 240DFFFF */ li $t5, -1 -/* 093628 80092A28 AD8D0000 */ sw $t5, ($t4) -/* 09362C 80092A2C 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 -/* 093630 80092A30 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) -/* 093634 80092A34 10000006 */ b .L80092A50 -/* 093638 80092A38 24010005 */ li $at, 5 -.L80092A3C: -/* 09363C 80092A3C 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 -/* 093640 80092A40 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 093644 80092A44 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) -/* 093648 80092A48 AC2DF47C */ sw $t5, %lo(gMenuDelay)($at) -/* 09364C 80092A4C 24010005 */ li $at, 5 -.L80092A50: -/* 093650 80092A50 14410032 */ bne $v0, $at, .L80092B1C -/* 093654 80092A54 8FAF003C */ lw $t7, 0x3c($sp) -/* 093658 80092A58 0C030C7B */ jal func_800C31EC -/* 09365C 80092A5C 24042710 */ li $a0, 10000 -/* 093660 80092A60 1000002E */ b .L80092B1C -/* 093664 80092A64 8FAF003C */ lw $t7, 0x3c($sp) -.L80092A68: -/* 093668 80092A68 8D4AF4BC */ lw $t2, %lo(gNumberOfActivePlayers)($t2) -/* 09366C 80092A6C 241F0001 */ li $ra, 1 -/* 093670 80092A70 17EA0009 */ bne $ra, $t2, .L80092A98 -/* 093674 80092A74 24010002 */ li $at, 2 -/* 093678 80092A78 8C990000 */ lw $t9, ($a0) -/* 09367C 80092A7C 00000000 */ nop -/* 093680 80092A80 33384000 */ andi $t8, $t9, 0x4000 -/* 093684 80092A84 13000025 */ beqz $t8, .L80092B1C -/* 093688 80092A88 8FAF003C */ lw $t7, 0x3c($sp) -/* 09368C 80092A8C AD9F0000 */ sw $ra, ($t4) -/* 093690 80092A90 10000021 */ b .L80092B18 -/* 093694 80092A94 AFBF003C */ sw $ra, 0x3c($sp) -.L80092A98: -/* 093698 80092A98 15410007 */ bne $t2, $at, .L80092AB8 -/* 09369C 80092A9C 306E4000 */ andi $t6, $v1, 0x4000 -/* 0936A0 80092AA0 11C0001D */ beqz $t6, .L80092B18 -/* 0936A4 80092AA4 240F0002 */ li $t7, 2 -/* 0936A8 80092AA8 24190001 */ li $t9, 1 -/* 0936AC 80092AAC AD8F0000 */ sw $t7, ($t4) -/* 0936B0 80092AB0 10000019 */ b .L80092B18 -/* 0936B4 80092AB4 AFB9003C */ sw $t9, 0x3c($sp) -.L80092AB8: -/* 0936B8 80092AB8 19400017 */ blez $t2, .L80092B18 -/* 0936BC 80092ABC 00002825 */ move $a1, $zero -/* 0936C0 80092AC0 3C088012 */ lui $t0, %hi(D_801267D8) # $t0, 0x8012 -/* 0936C4 80092AC4 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 -/* 0936C8 80092AC8 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e -/* 0936CC 80092ACC 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 -/* 0936D0 80092AD0 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 -/* 0936D4 80092AD4 250867D8 */ addiu $t0, %lo(D_801267D8) # addiu $t0, $t0, 0x67d8 -.L80092AD8: -/* 0936D8 80092AD8 8D180000 */ lw $t8, ($t0) -/* 0936DC 80092ADC 00000000 */ nop -/* 0936E0 80092AE0 330E4000 */ andi $t6, $t8, 0x4000 -/* 0936E4 80092AE4 11C00008 */ beqz $t6, .L80092B08 -/* 0936E8 80092AE8 0165C021 */ addu $t8, $t3, $a1 -/* 0936EC 80092AEC 8D2F0000 */ lw $t7, ($t1) -/* 0936F0 80092AF0 A3000000 */ sb $zero, ($t8) -/* 0936F4 80092AF4 240E0001 */ li $t6, 1 -/* 0936F8 80092AF8 25F9FFFF */ addiu $t9, $t7, -1 -/* 0936FC 80092AFC AD390000 */ sw $t9, ($t1) -/* 093700 80092B00 AD800000 */ sw $zero, ($t4) -/* 093704 80092B04 AFAE003C */ sw $t6, 0x3c($sp) -.L80092B08: -/* 093708 80092B08 24A50001 */ addiu $a1, $a1, 1 -/* 09370C 80092B0C 00AA082A */ slt $at, $a1, $t2 -/* 093710 80092B10 1420FFF1 */ bnez $at, .L80092AD8 -/* 093714 80092B14 25080004 */ addiu $t0, $t0, 4 -.L80092B18: -/* 093718 80092B18 8FAF003C */ lw $t7, 0x3c($sp) -.L80092B1C: -/* 09371C 80092B1C 8FB90038 */ lw $t9, 0x38($sp) -/* 093720 80092B20 11E00005 */ beqz $t7, .L80092B38 -/* 093724 80092B24 24040241 */ li $a0, 577 -/* 093728 80092B28 0C000741 */ jal play_sound_global -/* 09372C 80092B2C 00002825 */ move $a1, $zero -/* 093730 80092B30 1000000D */ b .L80092B68 -/* 093734 80092B34 00000000 */ nop -.L80092B38: -/* 093738 80092B38 13200005 */ beqz $t9, .L80092B50 -/* 09373C 80092B3C 240400EF */ li $a0, 239 -/* 093740 80092B40 0C000741 */ jal play_sound_global -/* 093744 80092B44 00002825 */ move $a1, $zero -/* 093748 80092B48 10000007 */ b .L80092B68 -/* 09374C 80092B4C 00000000 */ nop -.L80092B50: -/* 093750 80092B50 8FB80034 */ lw $t8, 0x34($sp) -/* 093754 80092B54 240400EB */ li $a0, 235 -/* 093758 80092B58 13000003 */ beqz $t8, .L80092B68 -/* 09375C 80092B5C 00000000 */ nop -/* 093760 80092B60 0C000741 */ jal play_sound_global -/* 093764 80092B64 00002825 */ move $a1, $zero -.L80092B68: -/* 093768 80092B68 3C048012 */ lui $a0, %hi(gPlayerSelectVehicle) # $a0, 0x8012 -/* 09376C 80092B6C 808469C0 */ lb $a0, %lo(gPlayerSelectVehicle)($a0) -/* 093770 80092B70 0C01B6C5 */ jal set_level_default_vehicle -/* 093774 80092B74 00000000 */ nop -/* 093778 80092B78 3C0E800E */ lui $t6, %hi(gNumberOfActivePlayers) # $t6, 0x800e -/* 09377C 80092B7C 8DCEF4BC */ lw $t6, %lo(gNumberOfActivePlayers)($t6) -/* 093780 80092B80 3C0F8012 */ lui $t7, %hi(D_801269C8) # $t7, 0x8012 -/* 093784 80092B84 29C10002 */ slti $at, $t6, 2 -/* 093788 80092B88 10200006 */ beqz $at, .L80092BA4 -/* 09378C 80092B8C 00000000 */ nop -/* 093790 80092B90 8DEF69C8 */ lw $t7, %lo(D_801269C8)($t7) -/* 093794 80092B94 3C04800E */ lui $a0, %hi(D_800E0414) # $a0, 0x800e -/* 093798 80092B98 29E10004 */ slti $at, $t7, 4 -/* 09379C 80092B9C 14200005 */ bnez $at, .L80092BB4 -/* 0937A0 80092BA0 00000000 */ nop -.L80092BA4: -/* 0937A4 80092BA4 0C00392F */ jal set_time_trial_enabled -/* 0937A8 80092BA8 00002025 */ move $a0, $zero -/* 0937AC 80092BAC 10000004 */ b .L80092BC0 -/* 0937B0 80092BB0 00000000 */ nop -.L80092BB4: -/* 0937B4 80092BB4 8C840414 */ lw $a0, %lo(D_800E0414)($a0) -/* 0937B8 80092BB8 0C00392F */ jal set_time_trial_enabled -/* 0937BC 80092BBC 00000000 */ nop -.L80092BC0: -/* 0937C0 80092BC0 3C19800E */ lui $t9, %hi(D_800E0418) # $t9, 0x800e -/* 0937C4 80092BC4 8F390418 */ lw $t9, %lo(D_800E0418)($t9) -/* 0937C8 80092BC8 3C01800E */ lui $at, %hi(gIsInAdventureTwo) # $at, 0x800e -/* 0937CC 80092BCC AC39F494 */ sw $t9, %lo(gIsInAdventureTwo)($at) -/* 0937D0 80092BD0 8FBF001C */ lw $ra, 0x1c($sp) -.L80092BD4: -/* 0937D4 80092BD4 27BD0058 */ addiu $sp, $sp, 0x58 -/* 0937D8 80092BD8 03E00008 */ jr $ra -/* 0937DC 80092BDC 00000000 */ nop - +.late_rodata +glabel jpt_800E84F4 +.word L8009246C, L8009251C, L80092740, L8009287C, L8009287C + +.text +glabel func_80092188 +/* 092D88 80092188 3C0E800E */ lui $t6, %hi(gMenuDelay) # $t6, 0x800e +/* 092D8C 8009218C 8DCEF47C */ lw $t6, %lo(gMenuDelay)($t6) +/* 092D90 80092190 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 092D94 80092194 AFBF001C */ sw $ra, 0x1c($sp) +/* 092D98 80092198 AFA40058 */ sw $a0, 0x58($sp) +/* 092D9C 8009219C 0C01BAA4 */ jal get_settings +/* 092DA0 800921A0 AFAE0030 */ sw $t6, 0x30($sp) +/* 092DA4 800921A4 3C06800E */ lui $a2, %hi(D_800E0980) # $a2, 0x800e +/* 092DA8 800921A8 24C60980 */ addiu $a2, %lo(D_800E0980) # addiu $a2, $a2, 0x980 +/* 092DAC 800921AC 8CC30000 */ lw $v1, ($a2) +/* 092DB0 800921B0 AFA2002C */ sw $v0, 0x2c($sp) +/* 092DB4 800921B4 10600005 */ beqz $v1, .L800921CC +/* 092DB8 800921B8 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 +/* 092DBC 800921BC 8FAF0058 */ lw $t7, 0x58($sp) +/* 092DC0 800921C0 00000000 */ nop +/* 092DC4 800921C4 006FC021 */ addu $t8, $v1, $t7 +/* 092DC8 800921C8 ACD80000 */ sw $t8, ($a2) +.L800921CC: +/* 092DCC 800921CC 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) +/* 092DD0 800921D0 24010005 */ li $at, 5 +/* 092DD4 800921D4 14410011 */ bne $v0, $at, .L8009221C +/* 092DD8 800921D8 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 +/* 092DDC 800921DC 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 +/* 092DE0 800921E0 8D990000 */ lw $t9, ($t4) +/* 092DE4 800921E4 24010002 */ li $at, 2 +/* 092DE8 800921E8 1321000C */ beq $t9, $at, .L8009221C +/* 092DEC 800921EC 240E0002 */ li $t6, 2 +/* 092DF0 800921F0 24010005 */ li $at, 5 +/* 092DF4 800921F4 14410009 */ bne $v0, $at, .L8009221C +/* 092DF8 800921F8 AD8E0000 */ sw $t6, ($t4) +/* 092DFC 800921FC 3C048012 */ lui $a0, %hi(D_801269CC) # $a0, 0x8012 +/* 092E00 80092200 8C8469CC */ lw $a0, %lo(D_801269CC)($a0) +/* 092E04 80092204 0C030C7B */ jal func_800C31EC +/* 092E08 80092208 2484003C */ addiu $a0, $a0, 0x3c +/* 092E0C 8009220C 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 +/* 092E10 80092210 3C06800E */ lui $a2, %hi(D_800E0980) # $a2, 0x800e +/* 092E14 80092214 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) +/* 092E18 80092218 24C60980 */ addiu $a2, %lo(D_800E0980) # addiu $a2, $a2, 0x980 +.L8009221C: +/* 092E1C 8009221C 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 +/* 092E20 80092220 24010004 */ li $at, 4 +/* 092E24 80092224 14410008 */ bne $v0, $at, .L80092248 +/* 092E28 80092228 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 +/* 092E2C 8009222C 8D830000 */ lw $v1, ($t4) +/* 092E30 80092230 240DFFFF */ li $t5, -1 +/* 092E34 80092234 11A30004 */ beq $t5, $v1, .L80092248 +/* 092E38 80092238 24010002 */ li $at, 2 +/* 092E3C 8009223C 10610002 */ beq $v1, $at, .L80092248 +/* 092E40 80092240 240F0002 */ li $t7, 2 +/* 092E44 80092244 AD8F0000 */ sw $t7, ($t4) +.L80092248: +/* 092E48 80092248 3C18800E */ lui $t8, %hi(gTrackIdForPreview) # $t8, 0x800e +/* 092E4C 8009224C 8F18F4C4 */ lw $t8, %lo(gTrackIdForPreview)($t8) +/* 092E50 80092250 3C02800E */ lui $v0, %hi(D_800E0758) # $v0, 0x800e +/* 092E54 80092254 0018C840 */ sll $t9, $t8, 1 +/* 092E58 80092258 00591021 */ addu $v0, $v0, $t9 +/* 092E5C 8009225C 84420758 */ lh $v0, %lo(D_800E0758)($v0) +/* 092E60 80092260 240DFFFF */ li $t5, -1 +/* 092E64 80092264 11A2000B */ beq $t5, $v0, .L80092294 +/* 092E68 80092268 00000000 */ nop +/* 092E6C 8009226C 8CCE0000 */ lw $t6, ($a2) +/* 092E70 80092270 3044FFFF */ andi $a0, $v0, 0xffff +/* 092E74 80092274 29C10007 */ slti $at, $t6, 7 +/* 092E78 80092278 14200006 */ bnez $at, .L80092294 +/* 092E7C 8009227C 00000000 */ nop +/* 092E80 80092280 0C000741 */ jal play_sound_global +/* 092E84 80092284 00002825 */ move $a1, $zero +/* 092E88 80092288 3C06800E */ lui $a2, %hi(D_800E0980) # $a2, 0x800e +/* 092E8C 8009228C 24C60980 */ addiu $a2, %lo(D_800E0980) # addiu $a2, $a2, 0x980 +/* 092E90 80092290 ACC00000 */ sw $zero, ($a2) +.L80092294: +/* 092E94 80092294 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 092E98 80092298 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 092E9C 8009229C 00000000 */ nop +/* 092EA0 800922A0 04410037 */ bgez $v0, .L80092380 +/* 092EA4 800922A4 24490019 */ addiu $t1, $v0, 0x19 +/* 092EA8 800922A8 29210015 */ slti $at, $t1, 0x15 +/* 092EAC 800922AC 14200002 */ bnez $at, .L800922B8 +/* 092EB0 800922B0 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012 +/* 092EB4 800922B4 24090014 */ li $t1, 20 +.L800922B8: +/* 092EB8 800922B8 05210002 */ bgez $t1, .L800922C4 +/* 092EBC 800922BC 00000000 */ nop +/* 092EC0 800922C0 00004825 */ move $t1, $zero +.L800922C4: +/* 092EC4 800922C4 8C426478 */ lw $v0, %lo(gTrackSelectViewPortHalfY)($v0) +/* 092EC8 800922C8 252F0014 */ addiu $t7, $t1, 0x14 +/* 092ECC 800922CC 01E20019 */ multu $t7, $v0 +/* 092ED0 800922D0 24010028 */ li $at, 40 +/* 092ED4 800922D4 00094080 */ sll $t0, $t1, 2 +/* 092ED8 800922D8 24190050 */ li $t9, 80 +/* 092EDC 800922DC 03282823 */ subu $a1, $t9, $t0 +/* 092EE0 800922E0 250700F0 */ addiu $a3, $t0, 0xf0 +/* 092EE4 800922E4 00002025 */ move $a0, $zero +/* 092EE8 800922E8 AFA90048 */ sw $t1, 0x48($sp) +/* 092EEC 800922EC 00001812 */ mflo $v1 +/* 092EF0 800922F0 00000000 */ nop +/* 092EF4 800922F4 00000000 */ nop +/* 092EF8 800922F8 0061001A */ div $zero, $v1, $at +/* 092EFC 800922FC 0000C012 */ mflo $t8 +/* 092F00 80092300 03025021 */ addu $t2, $t8, $v0 +/* 092F04 80092304 AFAA0010 */ sw $t2, 0x10($sp) +/* 092F08 80092308 0C019A50 */ jal func_80066940 +/* 092F0C 8009230C 00583023 */ subu $a2, $v0, $t8 +/* 092F10 80092310 8FA90048 */ lw $t1, 0x48($sp) +/* 092F14 80092314 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 092F18 80092318 44892000 */ mtc1 $t1, $f4 +/* 092F1C 8009231C 44814000 */ mtc1 $at, $f8 +/* 092F20 80092320 468021A0 */ cvt.s.w $f6, $f4 +/* 092F24 80092324 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 092F28 80092328 44818000 */ mtc1 $at, $f16 +/* 092F2C 8009232C 46083283 */ div.s $f10, $f6, $f8 +/* 092F30 80092330 3C04800E */ lui $a0, %hi(sMenuImageProperties) # $a0, 0x800e +/* 092F34 80092334 2484F510 */ addiu $a0, %lo(sMenuImageProperties) # addiu $a0, $a0, -0xaf0 +/* 092F38 80092338 C4920088 */ lwc1 $f18, 0x88($a0) +/* 092F3C 8009233C 3C03800E */ lui $v1, %hi(gMenuImageStack) # $v1, 0x800e +/* 092F40 80092340 2463F75C */ addiu $v1, %lo(gMenuImageStack) # addiu $v1, $v1, -0x8a4 +/* 092F44 80092344 8C6E0000 */ lw $t6, ($v1) +/* 092F48 80092348 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 092F4C 8009234C 460A8000 */ add.s $f0, $f16, $f10 +/* 092F50 80092350 46009102 */ mul.s $f4, $f18, $f0 +/* 092F54 80092354 E5C40088 */ swc1 $f4, 0x88($t6) +/* 092F58 80092358 C48600A8 */ lwc1 $f6, 0xa8($a0) +/* 092F5C 8009235C 8C6F0000 */ lw $t7, ($v1) +/* 092F60 80092360 46003202 */ mul.s $f8, $f6, $f0 +/* 092F64 80092364 E5E800A8 */ swc1 $f8, 0xa8($t7) +/* 092F68 80092368 C49000C8 */ lwc1 $f16, 0xc8($a0) +/* 092F6C 8009236C 8C780000 */ lw $t8, ($v1) +/* 092F70 80092370 46008282 */ mul.s $f10, $f16, $f0 +/* 092F74 80092374 E70A00C8 */ swc1 $f10, 0xc8($t8) +/* 092F78 80092378 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 092F7C 8009237C 00000000 */ nop +.L80092380: +/* 092F80 80092380 18400008 */ blez $v0, .L800923A4 +/* 092F84 80092384 28410029 */ slti $at, $v0, 0x29 +/* 092F88 80092388 3C03800E */ lui $v1, %hi(sMenuMusicVolume) # $v1, 0x800e +/* 092F8C 8009238C 8FAE0058 */ lw $t6, 0x58($sp) +/* 092F90 80092390 2463F760 */ addiu $v1, %lo(sMenuMusicVolume) # addiu $v1, $v1, -0x8a0 +/* 092F94 80092394 8C790000 */ lw $t9, ($v1) +/* 092F98 80092398 000E7880 */ sll $t7, $t6, 2 +/* 092F9C 8009239C 032FC023 */ subu $t8, $t9, $t7 +/* 092FA0 800923A0 AC780000 */ sw $t8, ($v1) +.L800923A4: +/* 092FA4 800923A4 14200006 */ bnez $at, .L800923C0 +/* 092FA8 800923A8 2841FFE2 */ slti $at, $v0, -0x1e +/* 092FAC 800923AC 0C023C03 */ jal func_8008F00C +/* 092FB0 800923B0 24040002 */ li $a0, 2 +/* 092FB4 800923B4 10000012 */ b .L80092400 +/* 092FB8 800923B8 00002025 */ move $a0, $zero +/* 092FBC 800923BC 2841FFE2 */ slti $at, $v0, -0x1e +.L800923C0: +/* 092FC0 800923C0 1020000E */ beqz $at, .L800923FC +/* 092FC4 800923C4 00002025 */ move $a0, $zero +/* 092FC8 800923C8 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 +/* 092FCC 800923CC 0C023C03 */ jal func_8008F00C +/* 092FD0 800923D0 AC2063D8 */ sw $zero, %lo(gOpacityDecayTimer)($at) +/* 092FD4 800923D4 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012 +/* 092FD8 800923D8 8C426478 */ lw $v0, %lo(gTrackSelectViewPortHalfY)($v0) +/* 092FDC 800923DC 00002025 */ move $a0, $zero +/* 092FE0 800923E0 00021843 */ sra $v1, $v0, 1 +/* 092FE4 800923E4 00627021 */ addu $t6, $v1, $v0 +/* 092FE8 800923E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 092FEC 800923EC 24050050 */ li $a1, 80 +/* 092FF0 800923F0 240700F0 */ li $a3, 240 +/* 092FF4 800923F4 0C019A50 */ jal func_80066940 +/* 092FF8 800923F8 00433023 */ subu $a2, $v0, $v1 +.L800923FC: +/* 092FFC 800923FC 00002025 */ move $a0, $zero +.L80092400: +/* 093000 80092400 0C019A06 */ jal func_80066818 +/* 093004 80092404 24050001 */ li $a1, 1 +/* 093008 80092408 8FB90030 */ lw $t9, 0x30($sp) +/* 09300C 8009240C 3C04800E */ lui $a0, %hi(gTrackIdForPreview) # $a0, 0x800e +/* 093010 80092410 172001F0 */ bnez $t9, .L80092BD4 +/* 093014 80092414 8FBF001C */ lw $ra, 0x1c($sp) +/* 093018 80092418 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0) +/* 09301C 8009241C 0C01AC3E */ jal get_map_available_vehicles +/* 093020 80092420 00000000 */ nop +/* 093024 80092424 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 +/* 093028 80092428 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 +/* 09302C 8009242C 8D830000 */ lw $v1, ($t4) +/* 093030 80092430 240DFFFF */ li $t5, -1 +/* 093034 80092434 246F0001 */ addiu $t7, $v1, 1 +/* 093038 80092438 2DE10005 */ sltiu $at, $t7, 5 +/* 09303C 8009243C 00402025 */ move $a0, $v0 +/* 093040 80092440 AFA0003C */ sw $zero, 0x3c($sp) +/* 093044 80092444 AFA00038 */ sw $zero, 0x38($sp) +/* 093048 80092448 102001B3 */ beqz $at, .L80092B18 +/* 09304C 8009244C AFA00034 */ sw $zero, 0x34($sp) +/* 093050 80092450 000F7880 */ sll $t7, $t7, 2 +/* 093054 80092454 3C01800F */ lui $at, %hi(jpt_800E84F4) # $at, 0x800f +/* 093058 80092458 002F0821 */ addu $at, $at, $t7 +/* 09305C 8009245C 8C2F84F4 */ lw $t7, %lo(jpt_800E84F4)($at) +/* 093060 80092460 00000000 */ nop +/* 093064 80092464 01E00008 */ jr $t7 +/* 093068 80092468 00000000 */ nop +glabel L8009246C +/* 09306C 8009246C 3C048012 */ lui $a0, %hi(D_801267D8) # $a0, 0x8012 +/* 093070 80092470 248467D8 */ addiu $a0, %lo(D_801267D8) # addiu $a0, $a0, 0x67d8 +/* 093074 80092474 8C830010 */ lw $v1, 0x10($a0) +/* 093078 80092478 3C0E8012 */ lui $t6, %hi(D_801269C8) # $t6, 0x8012 +/* 09307C 8009247C 30789000 */ andi $t8, $v1, 0x9000 +/* 093080 80092480 1300000A */ beqz $t8, .L800924AC +/* 093084 80092484 240F0001 */ li $t7, 1 +/* 093088 80092488 8DCE69C8 */ lw $t6, %lo(D_801269C8)($t6) +/* 09308C 8009248C 24010004 */ li $at, 4 +/* 093090 80092490 15C10003 */ bne $t6, $at, .L800924A0 +/* 093094 80092494 24190002 */ li $t9, 2 +/* 093098 80092498 10000002 */ b .L800924A4 +/* 09309C 8009249C AD990000 */ sw $t9, ($t4) +.L800924A0: +/* 0930A0 800924A0 AD800000 */ sw $zero, ($t4) +.L800924A4: +/* 0930A4 800924A4 1000019C */ b .L80092B18 +/* 0930A8 800924A8 AFAF0038 */ sw $t7, 0x38($sp) +.L800924AC: +/* 0930AC 800924AC 30784000 */ andi $t8, $v1, 0x4000 +/* 0930B0 800924B0 13000006 */ beqz $t8, .L800924CC +/* 0930B4 800924B4 3C028012 */ lui $v0, %hi(D_80126838) # $v0, 0x8012 +/* 0930B8 800924B8 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 0930BC 800924BC 240E0001 */ li $t6, 1 +/* 0930C0 800924C0 AC2DF47C */ sw $t5, %lo(gMenuDelay)($at) +/* 0930C4 800924C4 10000194 */ b .L80092B18 +/* 0930C8 800924C8 AFAE003C */ sw $t6, 0x3c($sp) +.L800924CC: +/* 0930CC 800924CC 84426838 */ lh $v0, %lo(D_80126838)($v0) +/* 0930D0 800924D0 3C19800E */ lui $t9, %hi(D_800E0418) # $t9, 0x800e +/* 0930D4 800924D4 18400008 */ blez $v0, .L800924F8 +/* 0930D8 800924D8 00000000 */ nop +/* 0930DC 800924DC 8F390418 */ lw $t9, %lo(D_800E0418)($t9) +/* 0930E0 800924E0 3C01800E */ lui $at, %hi(D_800E0418) # $at, 0x800e +/* 0930E4 800924E4 13200004 */ beqz $t9, .L800924F8 +/* 0930E8 800924E8 240F0001 */ li $t7, 1 +/* 0930EC 800924EC AC200418 */ sw $zero, %lo(D_800E0418)($at) +/* 0930F0 800924F0 10000189 */ b .L80092B18 +/* 0930F4 800924F4 AFAF0034 */ sw $t7, 0x34($sp) +.L800924F8: +/* 0930F8 800924F8 04410187 */ bgez $v0, .L80092B18 +/* 0930FC 800924FC 3C18800E */ lui $t8, %hi(D_800E0418) # $t8, 0x800e +/* 093100 80092500 8F180418 */ lw $t8, %lo(D_800E0418)($t8) +/* 093104 80092504 241F0001 */ li $ra, 1 +/* 093108 80092508 17000183 */ bnez $t8, .L80092B18 +/* 09310C 8009250C 3C01800E */ lui $at, %hi(D_800E0418) # $at, 0x800e +/* 093110 80092510 AC3F0418 */ sw $ra, %lo(D_800E0418)($at) +/* 093114 80092514 10000180 */ b .L80092B18 +/* 093118 80092518 AFBF0034 */ sw $ra, 0x34($sp) +glabel L8009251C +/* 09311C 8009251C 3C0A800E */ lui $t2, %hi(gNumberOfActivePlayers) # $t2, 0x800e +/* 093120 80092520 8D4AF4BC */ lw $t2, %lo(gNumberOfActivePlayers)($t2) +/* 093124 80092524 00002825 */ move $a1, $zero +/* 093128 80092528 19400072 */ blez $t2, .L800926F4 +/* 09312C 8009252C 3C088012 */ lui $t0, %hi(D_801267D8) # $t0, 0x8012 +/* 093130 80092530 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 +/* 093134 80092534 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e +/* 093138 80092538 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 +/* 09313C 8009253C 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 +/* 093140 80092540 250867D8 */ addiu $t0, %lo(D_801267D8) # addiu $t0, $t0, 0x67d8 +/* 093144 80092544 241F0001 */ li $ra, 1 +.L80092548: +/* 093148 80092548 8D030000 */ lw $v1, ($t0) +/* 09314C 8009254C 00000000 */ nop +/* 093150 80092550 306E4000 */ andi $t6, $v1, 0x4000 +/* 093154 80092554 11C00024 */ beqz $t6, .L800925E8 +/* 093158 80092558 30789000 */ andi $t8, $v1, 0x9000 +/* 09315C 8009255C 8D230000 */ lw $v1, ($t1) +/* 093160 80092560 AFBF003C */ sw $ra, 0x3c($sp) +/* 093164 80092564 14600019 */ bnez $v1, .L800925CC +/* 093168 80092568 01651021 */ addu $v0, $t3, $a1 +/* 09316C 8009256C AFA4004C */ sw $a0, 0x4c($sp) +/* 093170 80092570 AFA50040 */ sw $a1, 0x40($sp) +/* 093174 80092574 0C027B18 */ jal is_adventure_two_unlocked +/* 093178 80092578 AFA80024 */ sw $t0, 0x24($sp) +/* 09317C 8009257C 8FA4004C */ lw $a0, 0x4c($sp) +/* 093180 80092580 8FA50040 */ lw $a1, 0x40($sp) +/* 093184 80092584 8FA80024 */ lw $t0, 0x24($sp) +/* 093188 80092588 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e +/* 09318C 8009258C 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 +/* 093190 80092590 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 +/* 093194 80092594 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 +/* 093198 80092598 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 +/* 09319C 8009259C 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 +/* 0931A0 800925A0 240DFFFF */ li $t5, -1 +/* 0931A4 800925A4 10400003 */ beqz $v0, .L800925B4 +/* 0931A8 800925A8 241F0001 */ li $ra, 1 +/* 0931AC 800925AC 10000003 */ b .L800925BC +/* 0931B0 800925B0 AD8D0000 */ sw $t5, ($t4) +.L800925B4: +/* 0931B4 800925B4 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 0931B8 800925B8 AC2DF47C */ sw $t5, %lo(gMenuDelay)($at) +.L800925BC: +/* 0931BC 800925BC 3C0A800E */ lui $t2, %hi(gNumberOfActivePlayers) # $t2, 0x800e +/* 0931C0 800925C0 8D4AF4BC */ lw $t2, %lo(gNumberOfActivePlayers)($t2) +/* 0931C4 800925C4 10000048 */ b .L800926E8 +/* 0931C8 800925C8 24A50001 */ addiu $a1, $a1, 1 +.L800925CC: +/* 0931CC 800925CC 80590000 */ lb $t9, ($v0) +/* 0931D0 800925D0 246FFFFF */ addiu $t7, $v1, -1 +/* 0931D4 800925D4 13200043 */ beqz $t9, .L800926E4 +/* 0931D8 800925D8 00000000 */ nop +/* 0931DC 800925DC AD2F0000 */ sw $t7, ($t1) +/* 0931E0 800925E0 10000040 */ b .L800926E4 +/* 0931E4 800925E4 A0400000 */ sb $zero, ($v0) +.L800925E8: +/* 0931E8 800925E8 1300000B */ beqz $t8, .L80092618 +/* 0931EC 800925EC 01651021 */ addu $v0, $t3, $a1 +/* 0931F0 800925F0 804E0000 */ lb $t6, ($v0) +/* 0931F4 800925F4 00000000 */ nop +/* 0931F8 800925F8 15C0003A */ bnez $t6, .L800926E4 +/* 0931FC 800925FC 00000000 */ nop +/* 093200 80092600 8D390000 */ lw $t9, ($t1) +/* 093204 80092604 A05F0000 */ sb $ra, ($v0) +/* 093208 80092608 272F0001 */ addiu $t7, $t9, 1 +/* 09320C 8009260C AD2F0000 */ sw $t7, ($t1) +/* 093210 80092610 10000034 */ b .L800926E4 +/* 093214 80092614 AFBF0038 */ sw $ra, 0x38($sp) +.L80092618: +/* 093218 80092618 80580000 */ lb $t8, ($v0) +/* 09321C 8009261C 8FAE002C */ lw $t6, 0x2c($sp) +/* 093220 80092620 17000030 */ bnez $t8, .L800926E4 +/* 093224 80092624 3C0F800E */ lui $t7, %hi(gTrackIdForPreview) # $t7, 0x800e +/* 093228 80092628 8DEFF4C4 */ lw $t7, %lo(gTrackIdForPreview)($t7) +/* 09322C 8009262C 8DD90004 */ lw $t9, 4($t6) +/* 093230 80092630 000FC080 */ sll $t8, $t7, 2 +/* 093234 80092634 03387021 */ addu $t6, $t9, $t8 +/* 093238 80092638 8DCF0000 */ lw $t7, ($t6) +/* 09323C 8009263C 3C188012 */ lui $t8, %hi(gPlayerSelectVehicle) # $t8, 0x8012 +/* 093240 80092640 31F90002 */ andi $t9, $t7, 2 +/* 093244 80092644 13200027 */ beqz $t9, .L800926E4 +/* 093248 80092648 271869C0 */ addiu $t8, %lo(gPlayerSelectVehicle) # addiu $t8, $t8, 0x69c0 +/* 09324C 8009264C 00057040 */ sll $t6, $a1, 1 +/* 093250 80092650 3C068012 */ lui $a2, %hi(D_80126830) # $a2, 0x8012 +/* 093254 80092654 00B81821 */ addu $v1, $a1, $t8 +/* 093258 80092658 00CE3021 */ addu $a2, $a2, $t6 +/* 09325C 8009265C 80620000 */ lb $v0, ($v1) +/* 093260 80092660 84C66830 */ lh $a2, %lo(D_80126830)($a2) +/* 093264 80092664 00403825 */ move $a3, $v0 +/* 093268 80092668 18C0000A */ blez $a2, .L80092694 +/* 09326C 8009266C 244FFFFF */ addiu $t7, $v0, -1 +.L80092670: +/* 093270 80092670 A06F0000 */ sb $t7, ($v1) +/* 093274 80092674 80620000 */ lb $v0, ($v1) +/* 093278 80092678 24190001 */ li $t9, 1 +/* 09327C 8009267C 0059C004 */ sllv $t8, $t9, $v0 +/* 093280 80092680 03047024 */ and $t6, $t8, $a0 +/* 093284 80092684 15C00003 */ bnez $t6, .L80092694 +/* 093288 80092688 00000000 */ nop +/* 09328C 8009268C 0441FFF8 */ bgez $v0, .L80092670 +/* 093290 80092690 244FFFFF */ addiu $t7, $v0, -1 +.L80092694: +/* 093294 80092694 04C1000A */ bgez $a2, .L800926C0 +/* 093298 80092698 244F0001 */ addiu $t7, $v0, 1 +.L8009269C: +/* 09329C 8009269C A06F0000 */ sb $t7, ($v1) +/* 0932A0 800926A0 80620000 */ lb $v0, ($v1) +/* 0932A4 800926A4 24190001 */ li $t9, 1 +/* 0932A8 800926A8 0059C004 */ sllv $t8, $t9, $v0 +/* 0932AC 800926AC 03047024 */ and $t6, $t8, $a0 +/* 0932B0 800926B0 15C00003 */ bnez $t6, .L800926C0 +/* 0932B4 800926B4 28410003 */ slti $at, $v0, 3 +/* 0932B8 800926B8 1420FFF8 */ bnez $at, .L8009269C +/* 0932BC 800926BC 244F0001 */ addiu $t7, $v0, 1 +.L800926C0: +/* 0932C0 800926C0 10E20008 */ beq $a3, $v0, .L800926E4 +/* 0932C4 800926C4 00000000 */ nop +/* 0932C8 800926C8 04400003 */ bltz $v0, .L800926D8 +/* 0932CC 800926CC 28410003 */ slti $at, $v0, 3 +/* 0932D0 800926D0 14200003 */ bnez $at, .L800926E0 +/* 0932D4 800926D4 00000000 */ nop +.L800926D8: +/* 0932D8 800926D8 10000002 */ b .L800926E4 +/* 0932DC 800926DC A0670000 */ sb $a3, ($v1) +.L800926E0: +/* 0932E0 800926E0 AFBF0034 */ sw $ra, 0x34($sp) +.L800926E4: +/* 0932E4 800926E4 24A50001 */ addiu $a1, $a1, 1 +.L800926E8: +/* 0932E8 800926E8 00AA082A */ slt $at, $a1, $t2 +/* 0932EC 800926EC 1420FF96 */ bnez $at, .L80092548 +/* 0932F0 800926F0 25080004 */ addiu $t0, $t0, 4 +.L800926F4: +/* 0932F4 800926F4 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e +/* 0932F8 800926F8 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 +/* 0932FC 800926FC 8D2F0000 */ lw $t7, ($t1) +/* 093300 80092700 241F0001 */ li $ra, 1 +/* 093304 80092704 154F0104 */ bne $t2, $t7, .L80092B18 +/* 093308 80092708 29410002 */ slti $at, $t2, 2 +/* 09330C 8009270C AFA0003C */ sw $zero, 0x3c($sp) +/* 093310 80092710 AFA00038 */ sw $zero, 0x38($sp) +/* 093314 80092714 14200004 */ bnez $at, .L80092728 +/* 093318 80092718 AFA00034 */ sw $zero, 0x34($sp) +/* 09331C 8009271C 24190002 */ li $t9, 2 +/* 093320 80092720 10000002 */ b .L8009272C +/* 093324 80092724 AD990000 */ sw $t9, ($t4) +.L80092728: +/* 093328 80092728 AD9F0000 */ sw $ra, ($t4) +.L8009272C: +/* 09332C 8009272C 24040131 */ li $a0, 305 +/* 093330 80092730 0C000741 */ jal play_sound_global +/* 093334 80092734 00002825 */ move $a1, $zero +/* 093338 80092738 100000F8 */ b .L80092B1C +/* 09333C 8009273C 8FAF003C */ lw $t7, 0x3c($sp) +glabel L80092740 +/* 093340 80092740 3C048012 */ lui $a0, %hi(D_801267D8) # $a0, 0x8012 +/* 093344 80092744 248467D8 */ addiu $a0, %lo(D_801267D8) # addiu $a0, $a0, 0x67d8 +/* 093348 80092748 8C820000 */ lw $v0, ($a0) +/* 09334C 8009274C 3C038012 */ lui $v1, %hi(D_80126830) # $v1, 0x8012 +/* 093350 80092750 30589000 */ andi $t8, $v0, 0x9000 +/* 093354 80092754 13000006 */ beqz $t8, .L80092770 +/* 093358 80092758 30594000 */ andi $t9, $v0, 0x4000 +/* 09335C 8009275C 240E0002 */ li $t6, 2 +/* 093360 80092760 240F0001 */ li $t7, 1 +/* 093364 80092764 AD8E0000 */ sw $t6, ($t4) +/* 093368 80092768 1000000B */ b .L80092798 +/* 09336C 8009276C AFAF0038 */ sw $t7, 0x38($sp) +.L80092770: +/* 093370 80092770 13200009 */ beqz $t9, .L80092798 +/* 093374 80092774 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e +/* 093378 80092778 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 +/* 09337C 8009277C 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 +/* 093380 80092780 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 +/* 093384 80092784 24180001 */ li $t8, 1 +/* 093388 80092788 A1600000 */ sb $zero, ($t3) +/* 09338C 8009278C AD200000 */ sw $zero, ($t1) +/* 093390 80092790 AD800000 */ sw $zero, ($t4) +/* 093394 80092794 AFB8003C */ sw $t8, 0x3c($sp) +.L80092798: +/* 093398 80092798 84636830 */ lh $v1, %lo(D_80126830)($v1) +/* 09339C 8009279C 3C02800E */ lui $v0, %hi(D_800E0414) # $v0, 0x800e +/* 0933A0 800927A0 18600015 */ blez $v1, .L800927F8 +/* 0933A4 800927A4 00000000 */ nop +/* 0933A8 800927A8 8C420414 */ lw $v0, %lo(D_800E0414)($v0) +/* 0933AC 800927AC 3C048012 */ lui $a0, %hi(D_80126848) # $a0, 0x8012 +/* 0933B0 800927B0 18400011 */ blez $v0, .L800927F8 +/* 0933B4 800927B4 00000000 */ nop +/* 0933B8 800927B8 8C846848 */ lw $a0, %lo(D_80126848)($a0) +/* 0933BC 800927BC 00000000 */ nop +/* 0933C0 800927C0 10800009 */ beqz $a0, .L800927E8 +/* 0933C4 800927C4 244EFFFF */ addiu $t6, $v0, -1 +/* 0933C8 800927C8 0C001223 */ jal func_8000488C +/* 0933CC 800927CC 00000000 */ nop +/* 0933D0 800927D0 3C038012 */ lui $v1, %hi(D_80126830) # $v1, 0x8012 +/* 0933D4 800927D4 3C02800E */ lui $v0, %hi(D_800E0414) # $v0, 0x800e +/* 0933D8 800927D8 8C420414 */ lw $v0, %lo(D_800E0414)($v0) +/* 0933DC 800927DC 84636830 */ lh $v1, %lo(D_80126830)($v1) +/* 0933E0 800927E0 00000000 */ nop +/* 0933E4 800927E4 244EFFFF */ addiu $t6, $v0, -1 +.L800927E8: +/* 0933E8 800927E8 3C01800E */ lui $at, %hi(D_800E0414) # $at, 0x800e +/* 0933EC 800927EC 240F0001 */ li $t7, 1 +/* 0933F0 800927F0 AC2E0414 */ sw $t6, %lo(D_800E0414)($at) +/* 0933F4 800927F4 AFAF0034 */ sw $t7, 0x34($sp) +.L800927F8: +/* 0933F8 800927F8 046100C7 */ bgez $v1, .L80092B18 +/* 0933FC 800927FC 3C19800E */ lui $t9, %hi(D_800E0414) # $t9, 0x800e +/* 093400 80092800 8F390414 */ lw $t9, %lo(D_800E0414)($t9) +/* 093404 80092804 3C048012 */ lui $a0, %hi(D_80126840) # $a0, 0x8012 +/* 093408 80092808 1F2000C4 */ bgtz $t9, .L80092B1C +/* 09340C 8009280C 8FAF003C */ lw $t7, 0x3c($sp) +/* 093410 80092810 8C846840 */ lw $a0, %lo(D_80126840)($a0) +/* 093414 80092814 24180001 */ li $t8, 1 +/* 093418 80092818 10800003 */ beqz $a0, .L80092828 +/* 09341C 8009281C AFB80034 */ sw $t8, 0x34($sp) +/* 093420 80092820 0C001223 */ jal func_8000488C +/* 093424 80092824 00000000 */ nop +.L80092828: +/* 093428 80092828 00002025 */ move $a0, $zero +/* 09342C 8009282C 0C01BE53 */ jal get_random_number_from_range +/* 093430 80092830 240500FF */ li $a1, 255 +/* 093434 80092834 28410080 */ slti $at, $v0, 0x80 +/* 093438 80092838 14200007 */ bnez $at, .L80092858 +/* 09343C 8009283C 24040147 */ li $a0, 327 +/* 093440 80092840 3C058012 */ lui $a1, %hi(D_80126848) # $a1, 0x8012 +/* 093444 80092844 24A56848 */ addiu $a1, %lo(D_80126848) # addiu $a1, $a1, 0x6848 +/* 093448 80092848 0C000741 */ jal play_sound_global +/* 09344C 8009284C 24040141 */ li $a0, 321 +/* 093450 80092850 10000004 */ b .L80092864 +/* 093454 80092854 00000000 */ nop +.L80092858: +/* 093458 80092858 3C058012 */ lui $a1, %hi(D_80126848) # $a1, 0x8012 +/* 09345C 8009285C 0C000741 */ jal play_sound_global +/* 093460 80092860 24A56848 */ addiu $a1, %lo(D_80126848) # addiu $a1, $a1, 0x6848 +.L80092864: +/* 093464 80092864 3C0E800E */ lui $t6, %hi(D_800E0414) # $t6, 0x800e +/* 093468 80092868 8DCE0414 */ lw $t6, %lo(D_800E0414)($t6) +/* 09346C 8009286C 3C01800E */ lui $at, %hi(D_800E0414) # $at, 0x800e +/* 093470 80092870 25CF0001 */ addiu $t7, $t6, 1 +/* 093474 80092874 100000A8 */ b .L80092B18 +/* 093478 80092878 AC2F0414 */ sw $t7, %lo(D_800E0414)($at) +glabel L8009287C +/* 09347C 8009287C 24010002 */ li $at, 2 +/* 093480 80092880 1461003E */ bne $v1, $at, .L8009297C +/* 093484 80092884 3C19800E */ lui $t9, %hi(gNumberOfActivePlayers) # $t9, 0x800e +/* 093488 80092888 8F39F4BC */ lw $t9, %lo(gNumberOfActivePlayers)($t9) +/* 09348C 8009288C 24010002 */ li $at, 2 +/* 093490 80092890 1721003A */ bne $t9, $at, .L8009297C +/* 093494 80092894 3C188012 */ lui $t8, %hi(D_801269C8) # $t8, 0x8012 +/* 093498 80092898 8F1869C8 */ lw $t8, %lo(D_801269C8)($t8) +/* 09349C 8009289C 3C048012 */ lui $a0, %hi(D_801267D8) # $a0, 0x8012 +/* 0934A0 800928A0 2B010004 */ slti $at, $t8, 4 +/* 0934A4 800928A4 10200035 */ beqz $at, .L8009297C +/* 0934A8 800928A8 248467D8 */ addiu $a0, %lo(D_801267D8) # addiu $a0, $a0, 0x67d8 +/* 0934AC 800928AC 8C830010 */ lw $v1, 0x10($a0) +/* 0934B0 800928B0 240F0003 */ li $t7, 3 +/* 0934B4 800928B4 306E9000 */ andi $t6, $v1, 0x9000 +/* 0934B8 800928B8 11C00005 */ beqz $t6, .L800928D0 +/* 0934BC 800928BC 30784000 */ andi $t8, $v1, 0x4000 +/* 0934C0 800928C0 24190001 */ li $t9, 1 +/* 0934C4 800928C4 AD8F0000 */ sw $t7, ($t4) +/* 0934C8 800928C8 10000093 */ b .L80092B18 +/* 0934CC 800928CC AFB90038 */ sw $t9, 0x38($sp) +.L800928D0: +/* 0934D0 800928D0 13000014 */ beqz $t8, .L80092924 +/* 0934D4 800928D4 3C038012 */ lui $v1, %hi(D_80126820) # $v1, 0x8012 +/* 0934D8 800928D8 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e +/* 0934DC 800928DC 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 +/* 0934E0 800928E0 8D2E0000 */ lw $t6, ($t1) +/* 0934E4 800928E4 8C990000 */ lw $t9, ($a0) +/* 0934E8 800928E8 25CFFFFF */ addiu $t7, $t6, -1 +/* 0934EC 800928EC 33384000 */ andi $t8, $t9, 0x4000 +/* 0934F0 800928F0 AD800000 */ sw $zero, ($t4) +/* 0934F4 800928F4 13000005 */ beqz $t8, .L8009290C +/* 0934F8 800928F8 AD2F0000 */ sw $t7, ($t1) +/* 0934FC 800928FC 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 +/* 093500 80092900 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 +/* 093504 80092904 10000004 */ b .L80092918 +/* 093508 80092908 A1600000 */ sb $zero, ($t3) +.L8009290C: +/* 09350C 8009290C 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 +/* 093510 80092910 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 +/* 093514 80092914 A1600001 */ sb $zero, 1($t3) +.L80092918: +/* 093518 80092918 240E0001 */ li $t6, 1 +/* 09351C 8009291C 1000007E */ b .L80092B18 +/* 093520 80092920 AFAE003C */ sw $t6, 0x3c($sp) +.L80092924: +/* 093524 80092924 84636820 */ lh $v1, %lo(D_80126820)($v1) +/* 093528 80092928 3C04800E */ lui $a0, %hi(gMultiplayerSelectedNumberOfRacers) # $a0, 0x800e +/* 09352C 8009292C 04610008 */ bgez $v1, .L80092950 +/* 093530 80092930 24840410 */ addiu $a0, %lo(gMultiplayerSelectedNumberOfRacers) # addiu $a0, $a0, 0x410 +/* 093534 80092934 8C820000 */ lw $v0, ($a0) +/* 093538 80092938 240F0001 */ li $t7, 1 +/* 09353C 8009293C 18400004 */ blez $v0, .L80092950 +/* 093540 80092940 2459FFFF */ addiu $t9, $v0, -1 +/* 093544 80092944 AFAF0034 */ sw $t7, 0x34($sp) +/* 093548 80092948 10000073 */ b .L80092B18 +/* 09354C 8009294C AC990000 */ sw $t9, ($a0) +.L80092950: +/* 093550 80092950 3C04800E */ lui $a0, %hi(gMultiplayerSelectedNumberOfRacers) # $a0, 0x800e +/* 093554 80092954 18600070 */ blez $v1, .L80092B18 +/* 093558 80092958 24840410 */ addiu $a0, %lo(gMultiplayerSelectedNumberOfRacers) # addiu $a0, $a0, 0x410 +/* 09355C 8009295C 8C820000 */ lw $v0, ($a0) +/* 093560 80092960 24180001 */ li $t8, 1 +/* 093564 80092964 28410002 */ slti $at, $v0, 2 +/* 093568 80092968 1020006B */ beqz $at, .L80092B18 +/* 09356C 8009296C 244E0001 */ addiu $t6, $v0, 1 +/* 093570 80092970 AFB80034 */ sw $t8, 0x34($sp) +/* 093574 80092974 10000068 */ b .L80092B18 +/* 093578 80092978 AC8E0000 */ sw $t6, ($a0) +.L8009297C: +/* 09357C 8009297C 3C048012 */ lui $a0, %hi(D_801267D8) # $a0, 0x8012 +/* 093580 80092980 248467D8 */ addiu $a0, %lo(D_801267D8) # addiu $a0, $a0, 0x67d8 +/* 093584 80092984 8C830010 */ lw $v1, 0x10($a0) +/* 093588 80092988 241F0001 */ li $ra, 1 +/* 09358C 8009298C 306F9000 */ andi $t7, $v1, 0x9000 +/* 093590 80092990 11E00015 */ beqz $t7, .L800929E8 +/* 093594 80092994 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 +/* 093598 80092998 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 09359C 8009299C AC3FF47C */ sw $ra, %lo(gMenuDelay)($at) +/* 0935A0 800929A0 0C01E2AB */ jal set_background_draw_function +/* 0935A4 800929A4 00002025 */ move $a0, $zero +/* 0935A8 800929A8 3C01800E */ lui $at, %hi(D_800E097C) # $at, 0x800e +/* 0935AC 800929AC 0C030060 */ jal func_800C0180 +/* 0935B0 800929B0 AC20097C */ sw $zero, %lo(D_800E097C)($at) +/* 0935B4 800929B4 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 0935B8 800929B8 0C030076 */ jal func_800C01D8 +/* 0935BC 800929BC 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 0935C0 800929C0 3C198012 */ lui $t9, %hi(D_801269C8) # $t9, 0x8012 +/* 0935C4 800929C4 8F3969C8 */ lw $t9, %lo(D_801269C8)($t9) +/* 0935C8 800929C8 24010005 */ li $at, 5 +/* 0935CC 800929CC 17210004 */ bne $t9, $at, .L800929E0 +/* 0935D0 800929D0 24180001 */ li $t8, 1 +/* 0935D4 800929D4 0C030C7B */ jal func_800C31EC +/* 0935D8 800929D8 24042710 */ li $a0, 10000 +/* 0935DC 800929DC 24180001 */ li $t8, 1 +.L800929E0: +/* 0935E0 800929E0 1000004D */ b .L80092B18 +/* 0935E4 800929E4 AFB80038 */ sw $t8, 0x38($sp) +.L800929E8: +/* 0935E8 800929E8 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) +/* 0935EC 800929EC 306E4000 */ andi $t6, $v1, 0x4000 +/* 0935F0 800929F0 28410004 */ slti $at, $v0, 4 +/* 0935F4 800929F4 1420001C */ bnez $at, .L80092A68 +/* 0935F8 800929F8 3C0A800E */ lui $t2, %hi(gNumberOfActivePlayers) # $t2, 0x800e +/* 0935FC 800929FC 11C00046 */ beqz $t6, .L80092B18 +/* 093600 80092A00 240F0001 */ li $t7, 1 +/* 093604 80092A04 24010004 */ li $at, 4 +/* 093608 80092A08 1441000C */ bne $v0, $at, .L80092A3C +/* 09360C 80092A0C AFAF003C */ sw $t7, 0x3c($sp) +/* 093610 80092A10 0C027B18 */ jal is_adventure_two_unlocked +/* 093614 80092A14 00000000 */ nop +/* 093618 80092A18 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 +/* 09361C 80092A1C 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 +/* 093620 80092A20 10400006 */ beqz $v0, .L80092A3C +/* 093624 80092A24 240DFFFF */ li $t5, -1 +/* 093628 80092A28 AD8D0000 */ sw $t5, ($t4) +/* 09362C 80092A2C 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 +/* 093630 80092A30 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) +/* 093634 80092A34 10000006 */ b .L80092A50 +/* 093638 80092A38 24010005 */ li $at, 5 +.L80092A3C: +/* 09363C 80092A3C 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012 +/* 093640 80092A40 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 093644 80092A44 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0) +/* 093648 80092A48 AC2DF47C */ sw $t5, %lo(gMenuDelay)($at) +/* 09364C 80092A4C 24010005 */ li $at, 5 +.L80092A50: +/* 093650 80092A50 14410032 */ bne $v0, $at, .L80092B1C +/* 093654 80092A54 8FAF003C */ lw $t7, 0x3c($sp) +/* 093658 80092A58 0C030C7B */ jal func_800C31EC +/* 09365C 80092A5C 24042710 */ li $a0, 10000 +/* 093660 80092A60 1000002E */ b .L80092B1C +/* 093664 80092A64 8FAF003C */ lw $t7, 0x3c($sp) +.L80092A68: +/* 093668 80092A68 8D4AF4BC */ lw $t2, %lo(gNumberOfActivePlayers)($t2) +/* 09366C 80092A6C 241F0001 */ li $ra, 1 +/* 093670 80092A70 17EA0009 */ bne $ra, $t2, .L80092A98 +/* 093674 80092A74 24010002 */ li $at, 2 +/* 093678 80092A78 8C990000 */ lw $t9, ($a0) +/* 09367C 80092A7C 00000000 */ nop +/* 093680 80092A80 33384000 */ andi $t8, $t9, 0x4000 +/* 093684 80092A84 13000025 */ beqz $t8, .L80092B1C +/* 093688 80092A88 8FAF003C */ lw $t7, 0x3c($sp) +/* 09368C 80092A8C AD9F0000 */ sw $ra, ($t4) +/* 093690 80092A90 10000021 */ b .L80092B18 +/* 093694 80092A94 AFBF003C */ sw $ra, 0x3c($sp) +.L80092A98: +/* 093698 80092A98 15410007 */ bne $t2, $at, .L80092AB8 +/* 09369C 80092A9C 306E4000 */ andi $t6, $v1, 0x4000 +/* 0936A0 80092AA0 11C0001D */ beqz $t6, .L80092B18 +/* 0936A4 80092AA4 240F0002 */ li $t7, 2 +/* 0936A8 80092AA8 24190001 */ li $t9, 1 +/* 0936AC 80092AAC AD8F0000 */ sw $t7, ($t4) +/* 0936B0 80092AB0 10000019 */ b .L80092B18 +/* 0936B4 80092AB4 AFB9003C */ sw $t9, 0x3c($sp) +.L80092AB8: +/* 0936B8 80092AB8 19400017 */ blez $t2, .L80092B18 +/* 0936BC 80092ABC 00002825 */ move $a1, $zero +/* 0936C0 80092AC0 3C088012 */ lui $t0, %hi(D_801267D8) # $t0, 0x8012 +/* 0936C4 80092AC4 3C0B8012 */ lui $t3, %hi(D_801269C4) # $t3, 0x8012 +/* 0936C8 80092AC8 3C09800E */ lui $t1, %hi(gNumberOfReadyPlayers) # $t1, 0x800e +/* 0936CC 80092ACC 2529F480 */ addiu $t1, %lo(gNumberOfReadyPlayers) # addiu $t1, $t1, -0xb80 +/* 0936D0 80092AD0 256B69C4 */ addiu $t3, %lo(D_801269C4) # addiu $t3, $t3, 0x69c4 +/* 0936D4 80092AD4 250867D8 */ addiu $t0, %lo(D_801267D8) # addiu $t0, $t0, 0x67d8 +.L80092AD8: +/* 0936D8 80092AD8 8D180000 */ lw $t8, ($t0) +/* 0936DC 80092ADC 00000000 */ nop +/* 0936E0 80092AE0 330E4000 */ andi $t6, $t8, 0x4000 +/* 0936E4 80092AE4 11C00008 */ beqz $t6, .L80092B08 +/* 0936E8 80092AE8 0165C021 */ addu $t8, $t3, $a1 +/* 0936EC 80092AEC 8D2F0000 */ lw $t7, ($t1) +/* 0936F0 80092AF0 A3000000 */ sb $zero, ($t8) +/* 0936F4 80092AF4 240E0001 */ li $t6, 1 +/* 0936F8 80092AF8 25F9FFFF */ addiu $t9, $t7, -1 +/* 0936FC 80092AFC AD390000 */ sw $t9, ($t1) +/* 093700 80092B00 AD800000 */ sw $zero, ($t4) +/* 093704 80092B04 AFAE003C */ sw $t6, 0x3c($sp) +.L80092B08: +/* 093708 80092B08 24A50001 */ addiu $a1, $a1, 1 +/* 09370C 80092B0C 00AA082A */ slt $at, $a1, $t2 +/* 093710 80092B10 1420FFF1 */ bnez $at, .L80092AD8 +/* 093714 80092B14 25080004 */ addiu $t0, $t0, 4 +.L80092B18: +/* 093718 80092B18 8FAF003C */ lw $t7, 0x3c($sp) +.L80092B1C: +/* 09371C 80092B1C 8FB90038 */ lw $t9, 0x38($sp) +/* 093720 80092B20 11E00005 */ beqz $t7, .L80092B38 +/* 093724 80092B24 24040241 */ li $a0, 577 +/* 093728 80092B28 0C000741 */ jal play_sound_global +/* 09372C 80092B2C 00002825 */ move $a1, $zero +/* 093730 80092B30 1000000D */ b .L80092B68 +/* 093734 80092B34 00000000 */ nop +.L80092B38: +/* 093738 80092B38 13200005 */ beqz $t9, .L80092B50 +/* 09373C 80092B3C 240400EF */ li $a0, 239 +/* 093740 80092B40 0C000741 */ jal play_sound_global +/* 093744 80092B44 00002825 */ move $a1, $zero +/* 093748 80092B48 10000007 */ b .L80092B68 +/* 09374C 80092B4C 00000000 */ nop +.L80092B50: +/* 093750 80092B50 8FB80034 */ lw $t8, 0x34($sp) +/* 093754 80092B54 240400EB */ li $a0, 235 +/* 093758 80092B58 13000003 */ beqz $t8, .L80092B68 +/* 09375C 80092B5C 00000000 */ nop +/* 093760 80092B60 0C000741 */ jal play_sound_global +/* 093764 80092B64 00002825 */ move $a1, $zero +.L80092B68: +/* 093768 80092B68 3C048012 */ lui $a0, %hi(gPlayerSelectVehicle) # $a0, 0x8012 +/* 09376C 80092B6C 808469C0 */ lb $a0, %lo(gPlayerSelectVehicle)($a0) +/* 093770 80092B70 0C01B6C5 */ jal set_level_default_vehicle +/* 093774 80092B74 00000000 */ nop +/* 093778 80092B78 3C0E800E */ lui $t6, %hi(gNumberOfActivePlayers) # $t6, 0x800e +/* 09377C 80092B7C 8DCEF4BC */ lw $t6, %lo(gNumberOfActivePlayers)($t6) +/* 093780 80092B80 3C0F8012 */ lui $t7, %hi(D_801269C8) # $t7, 0x8012 +/* 093784 80092B84 29C10002 */ slti $at, $t6, 2 +/* 093788 80092B88 10200006 */ beqz $at, .L80092BA4 +/* 09378C 80092B8C 00000000 */ nop +/* 093790 80092B90 8DEF69C8 */ lw $t7, %lo(D_801269C8)($t7) +/* 093794 80092B94 3C04800E */ lui $a0, %hi(D_800E0414) # $a0, 0x800e +/* 093798 80092B98 29E10004 */ slti $at, $t7, 4 +/* 09379C 80092B9C 14200005 */ bnez $at, .L80092BB4 +/* 0937A0 80092BA0 00000000 */ nop +.L80092BA4: +/* 0937A4 80092BA4 0C00392F */ jal set_time_trial_enabled +/* 0937A8 80092BA8 00002025 */ move $a0, $zero +/* 0937AC 80092BAC 10000004 */ b .L80092BC0 +/* 0937B0 80092BB0 00000000 */ nop +.L80092BB4: +/* 0937B4 80092BB4 8C840414 */ lw $a0, %lo(D_800E0414)($a0) +/* 0937B8 80092BB8 0C00392F */ jal set_time_trial_enabled +/* 0937BC 80092BBC 00000000 */ nop +.L80092BC0: +/* 0937C0 80092BC0 3C19800E */ lui $t9, %hi(D_800E0418) # $t9, 0x800e +/* 0937C4 80092BC4 8F390418 */ lw $t9, %lo(D_800E0418)($t9) +/* 0937C8 80092BC8 3C01800E */ lui $at, %hi(gIsInAdventureTwo) # $at, 0x800e +/* 0937CC 80092BCC AC39F494 */ sw $t9, %lo(gIsInAdventureTwo)($at) +/* 0937D0 80092BD0 8FBF001C */ lw $ra, 0x1c($sp) +.L80092BD4: +/* 0937D4 80092BD4 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0937D8 80092BD8 03E00008 */ jr $ra +/* 0937DC 80092BDC 00000000 */ nop + diff --git a/asm/non_matchings/menu/menu_track_select_init.s b/asm/non_matchings/menu/menu_track_select_init.s index 4ba55db2..7c1a7676 100644 --- a/asm/non_matchings/menu/menu_track_select_init.s +++ b/asm/non_matchings/menu/menu_track_select_init.s @@ -1,561 +1,561 @@ -glabel menu_track_select_init -/* 08F3A0 8008E7A0 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 08F3A4 8008E7A4 AFBF0044 */ sw $ra, 0x44($sp) -/* 08F3A8 8008E7A8 AFBE0040 */ sw $fp, 0x40($sp) -/* 08F3AC 8008E7AC AFB7003C */ sw $s7, 0x3c($sp) -/* 08F3B0 8008E7B0 AFB60038 */ sw $s6, 0x38($sp) -/* 08F3B4 8008E7B4 AFB50034 */ sw $s5, 0x34($sp) -/* 08F3B8 8008E7B8 AFB40030 */ sw $s4, 0x30($sp) -/* 08F3BC 8008E7BC AFB3002C */ sw $s3, 0x2c($sp) -/* 08F3C0 8008E7C0 AFB20028 */ sw $s2, 0x28($sp) -/* 08F3C4 8008E7C4 AFB10024 */ sw $s1, 0x24($sp) -/* 08F3C8 8008E7C8 AFB00020 */ sw $s0, 0x20($sp) -/* 08F3CC 8008E7CC 0C03105C */ jal load_font -/* 08F3D0 8008E7D0 24040002 */ li $a0, 2 -/* 08F3D4 8008E7D4 0C01BAA4 */ jal get_settings -/* 08F3D8 8008E7D8 00000000 */ nop -/* 08F3DC 8008E7DC 0040A025 */ move $s4, $v0 -/* 08F3E0 8008E7E0 27A4007C */ addiu $a0, $sp, 0x7c -/* 08F3E4 8008E7E4 0C01AC89 */ jal get_number_of_levels_and_worlds -/* 08F3E8 8008E7E8 27A50078 */ addiu $a1, $sp, 0x78 -/* 08F3EC 8008E7EC 0C0078A7 */ jal get_misc_asset -/* 08F3F0 8008E7F0 2404001A */ li $a0, 26 -/* 08F3F4 8008E7F4 3C03800E */ lui $v1, %hi(D_800DF488) # $v1, 0x800e -/* 08F3F8 8008E7F8 2463F488 */ addiu $v1, %lo(D_800DF488) # addiu $v1, $v1, -0xb78 -/* 08F3FC 8008E7FC 8C6E0000 */ lw $t6, ($v1) -/* 08F400 8008E800 0040B825 */ move $s7, $v0 -/* 08F404 8008E804 11C00009 */ beqz $t6, .L8008E82C -/* 08F408 8008E808 3C018012 */ lui $at, %hi(D_801269C8) # $at, 0x8012 -/* 08F40C 8008E80C AC2069C8 */ sw $zero, %lo(D_801269C8)($at) -/* 08F410 8008E810 3C018012 */ lui $at, %hi(D_801269CC) # $at, 0x8012 -/* 08F414 8008E814 AC2069CC */ sw $zero, %lo(D_801269CC)($at) -/* 08F418 8008E818 3C01800E */ lui $at, %hi(D_800E0414) # $at, 0x800e -/* 08F41C 8008E81C AC200414 */ sw $zero, %lo(D_800E0414)($at) -/* 08F420 8008E820 3C01800E */ lui $at, %hi(D_800E0418) # $at, 0x800e -/* 08F424 8008E824 AC200418 */ sw $zero, %lo(D_800E0418)($at) -/* 08F428 8008E828 AC600000 */ sw $zero, ($v1) -.L8008E82C: -/* 08F42C 8008E82C 0C01E948 */ jal get_video_width_and_height_as_s32 -/* 08F430 8008E830 00000000 */ nop -/* 08F434 8008E834 3C068012 */ lui $a2, %hi(gTrackSelectViewPortX) # $a2, 0x8012 -/* 08F438 8008E838 24C6647C */ addiu $a2, %lo(gTrackSelectViewPortX) # addiu $a2, $a2, 0x647c -/* 08F43C 8008E83C 3C078012 */ lui $a3, %hi(gTrackSelectViewportY) # $a3, 0x8012 -/* 08F440 8008E840 00027C03 */ sra $t7, $v0, 0x10 -/* 08F444 8008E844 3059FFFF */ andi $t9, $v0, 0xffff -/* 08F448 8008E848 24E76480 */ addiu $a3, %lo(gTrackSelectViewportY) # addiu $a3, $a3, 0x6480 -/* 08F44C 8008E84C ACC20000 */ sw $v0, ($a2) -/* 08F450 8008E850 31F8FFFF */ andi $t8, $t7, 0xffff -/* 08F454 8008E854 ACF80000 */ sw $t8, ($a3) -/* 08F458 8008E858 ACD90000 */ sw $t9, ($a2) -/* 08F45C 8008E85C 00195043 */ sra $t2, $t9, 1 -/* 08F460 8008E860 3C018012 */ lui $at, %hi(gTrackSelectViewPortHalfX) # $at, 0x8012 -/* 08F464 8008E864 AC2A6474 */ sw $t2, %lo(gTrackSelectViewPortHalfX)($at) -/* 08F468 8008E868 8CE50000 */ lw $a1, ($a3) -/* 08F46C 8008E86C 3C1E8012 */ lui $fp, %hi(gTrackSelectViewPortHalfY) # $fp, 0x8012 -/* 08F470 8008E870 27DE6478 */ addiu $fp, %lo(gTrackSelectViewPortHalfY) # addiu $fp, $fp, 0x6478 -/* 08F474 8008E874 00055843 */ sra $t3, $a1, 1 -/* 08F478 8008E878 AFCB0000 */ sw $t3, ($fp) -/* 08F47C 8008E87C 3C0C8012 */ lui $t4, %hi(D_801269C8) # $t4, 0x8012 -/* 08F480 8008E880 8D8C69C8 */ lw $t4, %lo(D_801269C8)($t4) -/* 08F484 8008E884 3C0D8012 */ lui $t5, %hi(D_801269CC) # $t5, 0x8012 -/* 08F488 8008E888 448C2000 */ mtc1 $t4, $f4 -/* 08F48C 8008E88C 8DAD69CC */ lw $t5, %lo(D_801269CC)($t5) -/* 08F490 8008E890 468021A0 */ cvt.s.w $f6, $f4 -/* 08F494 8008E894 3C0143A0 */ li $at, 0x43A00000 # 320.000000 -/* 08F498 8008E898 44814000 */ mtc1 $at, $f8 -/* 08F49C 8008E89C 00057023 */ negu $t6, $a1 -/* 08F4A0 8008E8A0 448E2000 */ mtc1 $t6, $f4 -/* 08F4A4 8008E8A4 448D8000 */ mtc1 $t5, $f16 -/* 08F4A8 8008E8A8 46083282 */ mul.s $f10, $f6, $f8 -/* 08F4AC 8008E8AC 3C018012 */ lui $at, %hi(gTrackSelectX) # $at, 0x8012 -/* 08F4B0 8008E8B0 2415FFFF */ li $s5, -1 -/* 08F4B4 8008E8B4 240F0020 */ li $t7, 32 -/* 08F4B8 8008E8B8 468021A0 */ cvt.s.w $f6, $f4 -/* 08F4BC 8008E8BC E42A69DC */ swc1 $f10, %lo(gTrackSelectX)($at) -/* 08F4C0 8008E8C0 3C018012 */ lui $at, %hi(gTrackSelectY) # $at, 0x8012 -/* 08F4C4 8008E8C4 468084A0 */ cvt.s.w $f18, $f16 -/* 08F4C8 8008E8C8 00002025 */ move $a0, $zero -/* 08F4CC 8008E8CC 46069202 */ mul.s $f8, $f18, $f6 -/* 08F4D0 8008E8D0 E42869E4 */ swc1 $f8, %lo(gTrackSelectY)($at) -/* 08F4D4 8008E8D4 3C018012 */ lui $at, %hi(gSelectedTrackX) # $at, 0x8012 -/* 08F4D8 8008E8D8 AC3569F4 */ sw $s5, %lo(gSelectedTrackX)($at) -/* 08F4DC 8008E8DC 3C018012 */ lui $at, %hi(gSelectedTrackY) # $at, 0x8012 -/* 08F4E0 8008E8E0 AC3569F8 */ sw $s5, %lo(gSelectedTrackY)($at) -/* 08F4E4 8008E8E4 3C018012 */ lui $at, %hi(D_801263D0) # $at, 0x8012 -/* 08F4E8 8008E8E8 AC3563D0 */ sw $s5, %lo(D_801263D0)($at) -/* 08F4EC 8008E8EC 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 -/* 08F4F0 8008E8F0 AC2F63D8 */ sw $t7, %lo(gOpacityDecayTimer)($at) -/* 08F4F4 8008E8F4 3C018012 */ lui $at, %hi(gOptionBlinkTimer) # $at, 0x8012 -/* 08F4F8 8008E8F8 AC2063BC */ sw $zero, %lo(gOptionBlinkTimer)($at) -/* 08F4FC 8008E8FC 3C018012 */ lui $at, %hi(D_801267D0) # $at, 0x8012 -/* 08F500 8008E900 0C023C03 */ jal func_8008F00C -/* 08F504 8008E904 AC3567D0 */ sw $s5, %lo(D_801267D0)($at) -/* 08F508 8008E908 3C04800E */ lui $a0, %hi(sMenuTransitionFadeOut) # $a0, 0x800e -/* 08F50C 8008E90C 0C030076 */ jal func_800C01D8 -/* 08F510 8008E910 2484F77C */ addiu $a0, %lo(sMenuTransitionFadeOut) # addiu $a0, $a0, -0x884 -/* 08F514 8008E914 0C03005C */ jal func_800C0170 -/* 08F518 8008E918 00000000 */ nop -/* 08F51C 8008E91C 24040032 */ li $a0, 50 -/* 08F520 8008E920 24050069 */ li $a1, 105 -/* 08F524 8008E924 0C01DED7 */ jal set_background_fill_colour -/* 08F528 8008E928 240600DF */ li $a2, 223 -/* 08F52C 8008E92C 3C11800E */ lui $s1, %hi(D_800E0710) # $s1, 0x800e -/* 08F530 8008E930 3C168012 */ lui $s6, %hi(D_80126550) # $s6, 0x8012 -/* 08F534 8008E934 3C12800E */ lui $s2, %hi(D_800E0730) # $s2, 0x800e -/* 08F538 8008E938 26520730 */ addiu $s2, %lo(D_800E0730) # addiu $s2, $s2, 0x730 -/* 08F53C 8008E93C 26D66550 */ addiu $s6, %lo(D_80126550) # addiu $s6, $s6, 0x6550 -/* 08F540 8008E940 26310710 */ addiu $s1, %lo(D_800E0710) # addiu $s1, $s1, 0x710 -/* 08F544 8008E944 00002825 */ move $a1, $zero -.L8008E948: -/* 08F548 8008E948 86240000 */ lh $a0, ($s1) -/* 08F54C 8008E94C 000570C0 */ sll $t6, $a1, 3 -/* 08F550 8008E950 12A4000C */ beq $s5, $a0, .L8008E984 -/* 08F554 8008E954 024E8021 */ addu $s0, $s2, $t6 -/* 08F558 8008E958 0C0271B5 */ jal func_8009C6D4 -/* 08F55C 8008E95C AFA50074 */ sw $a1, 0x74($sp) -/* 08F560 8008E960 86290000 */ lh $t1, ($s1) -/* 08F564 8008E964 8FA50074 */ lw $a1, 0x74($sp) -/* 08F568 8008E968 00095080 */ sll $t2, $t1, 2 -/* 08F56C 8008E96C 02CA5821 */ addu $t3, $s6, $t2 -/* 08F570 8008E970 8D6C0000 */ lw $t4, ($t3) -/* 08F574 8008E974 0005C8C0 */ sll $t9, $a1, 3 -/* 08F578 8008E978 02598021 */ addu $s0, $s2, $t9 -/* 08F57C 8008E97C 10000002 */ b .L8008E988 -/* 08F580 8008E980 AE0C0000 */ sw $t4, ($s0) -.L8008E984: -/* 08F584 8008E984 AE000000 */ sw $zero, ($s0) -.L8008E988: -/* 08F588 8008E988 86240002 */ lh $a0, 2($s1) -/* 08F58C 8008E98C 00000000 */ nop -/* 08F590 8008E990 12A4000A */ beq $s5, $a0, .L8008E9BC -/* 08F594 8008E994 00000000 */ nop -/* 08F598 8008E998 0C0271B5 */ jal func_8009C6D4 -/* 08F59C 8008E99C AFA50074 */ sw $a1, 0x74($sp) -/* 08F5A0 8008E9A0 862F0002 */ lh $t7, 2($s1) -/* 08F5A4 8008E9A4 8FA50074 */ lw $a1, 0x74($sp) -/* 08F5A8 8008E9A8 000FC080 */ sll $t8, $t7, 2 -/* 08F5AC 8008E9AC 02D8C821 */ addu $t9, $s6, $t8 -/* 08F5B0 8008E9B0 8F290000 */ lw $t1, ($t9) -/* 08F5B4 8008E9B4 10000002 */ b .L8008E9C0 -/* 08F5B8 8008E9B8 AE090004 */ sw $t1, 4($s0) -.L8008E9BC: -/* 08F5BC 8008E9BC AE000004 */ sw $zero, 4($s0) -.L8008E9C0: -/* 08F5C0 8008E9C0 24A50001 */ addiu $a1, $a1, 1 -/* 08F5C4 8008E9C4 24010005 */ li $at, 5 -/* 08F5C8 8008E9C8 14A1FFDF */ bne $a1, $at, .L8008E948 -/* 08F5CC 8008E9CC 26310006 */ addiu $s1, $s1, 6 -/* 08F5D0 8008E9D0 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff -/* 08F5D4 8008E9D4 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 08F5D8 8008E9D8 0C01C327 */ jal allocate_from_main_pool_safe -/* 08F5DC 8008E9DC 24040B40 */ li $a0, 2880 -/* 08F5E0 8008E9E0 3C05800E */ lui $a1, %hi(D_800E0970) # $a1, 0x800e -/* 08F5E4 8008E9E4 24A50970 */ addiu $a1, %lo(D_800E0970) # addiu $a1, $a1, 0x970 -/* 08F5E8 8008E9E8 ACA20000 */ sw $v0, ($a1) -/* 08F5EC 8008E9EC 244B0280 */ addiu $t3, $v0, 0x280 -/* 08F5F0 8008E9F0 3C01800E */ lui $at, %hi(D_800E0974) # $at, 0x800e -/* 08F5F4 8008E9F4 AC2B0974 */ sw $t3, %lo(D_800E0974)($at) -/* 08F5F8 8008E9F8 8CAC0004 */ lw $t4, 4($a1) -/* 08F5FC 8008E9FC 3C01800E */ lui $at, %hi(D_800E096C) # $at, 0x800e -/* 08F600 8008EA00 258D0280 */ addiu $t5, $t4, 0x280 -/* 08F604 8008EA04 AC2D0968 */ sw $t5, %lo(D_800E0968)($at) -/* 08F608 8008EA08 3C0E800E */ lui $t6, %hi(D_800E0968) # $t6, 0x800e -/* 08F60C 8008EA0C 8DCE0968 */ lw $t6, %lo(D_800E0968)($t6) -/* 08F610 8008EA10 3C03800E */ lui $v1, %hi(D_800E0968) # $v1, 0x800e -/* 08F614 8008EA14 3C08800E */ lui $t0, %hi(D_800E0970) # $t0, 0x800e -/* 08F618 8008EA18 25CF0320 */ addiu $t7, $t6, 0x320 -/* 08F61C 8008EA1C AC2F096C */ sw $t7, %lo(D_800E096C)($at) -/* 08F620 8008EA20 2404FF60 */ li $a0, -160 -/* 08F624 8008EA24 25080970 */ addiu $t0, %lo(D_800E0970) # addiu $t0, $t0, 0x970 -/* 08F628 8008EA28 24630968 */ addiu $v1, %lo(D_800E0968) # addiu $v1, $v1, 0x968 -/* 08F62C 8008EA2C 240500FF */ li $a1, 255 -/* 08F630 8008EA30 24070320 */ li $a3, 800 -/* 08F634 8008EA34 2406FC00 */ li $a2, -1024 -/* 08F638 8008EA38 00001025 */ move $v0, $zero -.L8008EA3C: -/* 08F63C 8008EA3C 8C780000 */ lw $t8, ($v1) -/* 08F640 8008EA40 00000000 */ nop -/* 08F644 8008EA44 0302C821 */ addu $t9, $t8, $v0 -/* 08F648 8008EA48 A7240000 */ sh $a0, ($t9) -/* 08F64C 8008EA4C 8C690000 */ lw $t1, ($v1) -/* 08F650 8008EA50 00042023 */ negu $a0, $a0 -/* 08F654 8008EA54 01225021 */ addu $t2, $t1, $v0 -/* 08F658 8008EA58 A5460004 */ sh $a2, 4($t2) -/* 08F65C 8008EA5C 8C6B0000 */ lw $t3, ($v1) -/* 08F660 8008EA60 00000000 */ nop -/* 08F664 8008EA64 01626021 */ addu $t4, $t3, $v0 -/* 08F668 8008EA68 A1850006 */ sb $a1, 6($t4) -/* 08F66C 8008EA6C 8C6D0000 */ lw $t5, ($v1) -/* 08F670 8008EA70 00000000 */ nop -/* 08F674 8008EA74 01A27021 */ addu $t6, $t5, $v0 -/* 08F678 8008EA78 A1C50007 */ sb $a1, 7($t6) -/* 08F67C 8008EA7C 8C6F0000 */ lw $t7, ($v1) -/* 08F680 8008EA80 00000000 */ nop -/* 08F684 8008EA84 01E2C021 */ addu $t8, $t7, $v0 -/* 08F688 8008EA88 A3050008 */ sb $a1, 8($t8) -/* 08F68C 8008EA8C 8C790000 */ lw $t9, ($v1) -/* 08F690 8008EA90 00000000 */ nop -/* 08F694 8008EA94 03224821 */ addu $t1, $t9, $v0 -/* 08F698 8008EA98 A524000A */ sh $a0, 0xa($t1) -/* 08F69C 8008EA9C 8C6A0000 */ lw $t2, ($v1) -/* 08F6A0 8008EAA0 00042023 */ negu $a0, $a0 -/* 08F6A4 8008EAA4 01425821 */ addu $t3, $t2, $v0 -/* 08F6A8 8008EAA8 A566000E */ sh $a2, 0xe($t3) -/* 08F6AC 8008EAAC 8C6C0000 */ lw $t4, ($v1) -/* 08F6B0 8008EAB0 00000000 */ nop -/* 08F6B4 8008EAB4 01826821 */ addu $t5, $t4, $v0 -/* 08F6B8 8008EAB8 A1A50010 */ sb $a1, 0x10($t5) -/* 08F6BC 8008EABC 8C6E0000 */ lw $t6, ($v1) -/* 08F6C0 8008EAC0 00000000 */ nop -/* 08F6C4 8008EAC4 01C27821 */ addu $t7, $t6, $v0 -/* 08F6C8 8008EAC8 A1E50011 */ sb $a1, 0x11($t7) -/* 08F6CC 8008EACC 8C780000 */ lw $t8, ($v1) -/* 08F6D0 8008EAD0 00000000 */ nop -/* 08F6D4 8008EAD4 0302C821 */ addu $t9, $t8, $v0 -/* 08F6D8 8008EAD8 A3250012 */ sb $a1, 0x12($t9) -/* 08F6DC 8008EADC 8C690000 */ lw $t1, ($v1) -/* 08F6E0 8008EAE0 00000000 */ nop -/* 08F6E4 8008EAE4 01225021 */ addu $t2, $t1, $v0 -/* 08F6E8 8008EAE8 A5440014 */ sh $a0, 0x14($t2) -/* 08F6EC 8008EAEC 8C6B0000 */ lw $t3, ($v1) -/* 08F6F0 8008EAF0 00042023 */ negu $a0, $a0 -/* 08F6F4 8008EAF4 01626021 */ addu $t4, $t3, $v0 -/* 08F6F8 8008EAF8 A5860018 */ sh $a2, 0x18($t4) -/* 08F6FC 8008EAFC 8C6D0000 */ lw $t5, ($v1) -/* 08F700 8008EB00 00000000 */ nop -/* 08F704 8008EB04 01A27021 */ addu $t6, $t5, $v0 -/* 08F708 8008EB08 A1C5001A */ sb $a1, 0x1a($t6) -/* 08F70C 8008EB0C 8C6F0000 */ lw $t7, ($v1) -/* 08F710 8008EB10 00000000 */ nop -/* 08F714 8008EB14 01E2C021 */ addu $t8, $t7, $v0 -/* 08F718 8008EB18 A305001B */ sb $a1, 0x1b($t8) -/* 08F71C 8008EB1C 8C790000 */ lw $t9, ($v1) -/* 08F720 8008EB20 00000000 */ nop -/* 08F724 8008EB24 03224821 */ addu $t1, $t9, $v0 -/* 08F728 8008EB28 A125001C */ sb $a1, 0x1c($t1) -/* 08F72C 8008EB2C 8C6A0000 */ lw $t2, ($v1) -/* 08F730 8008EB30 00000000 */ nop -/* 08F734 8008EB34 01425821 */ addu $t3, $t2, $v0 -/* 08F738 8008EB38 A564001E */ sh $a0, 0x1e($t3) -/* 08F73C 8008EB3C 8C6C0000 */ lw $t4, ($v1) -/* 08F740 8008EB40 00042023 */ negu $a0, $a0 -/* 08F744 8008EB44 01826821 */ addu $t5, $t4, $v0 -/* 08F748 8008EB48 A5A60022 */ sh $a2, 0x22($t5) -/* 08F74C 8008EB4C 8C6E0000 */ lw $t6, ($v1) -/* 08F750 8008EB50 00000000 */ nop -/* 08F754 8008EB54 01C27821 */ addu $t7, $t6, $v0 -/* 08F758 8008EB58 A1E50024 */ sb $a1, 0x24($t7) -/* 08F75C 8008EB5C 8C780000 */ lw $t8, ($v1) -/* 08F760 8008EB60 00000000 */ nop -/* 08F764 8008EB64 0302C821 */ addu $t9, $t8, $v0 -/* 08F768 8008EB68 A3250025 */ sb $a1, 0x25($t9) -/* 08F76C 8008EB6C 8C690000 */ lw $t1, ($v1) -/* 08F770 8008EB70 00000000 */ nop -/* 08F774 8008EB74 01225021 */ addu $t2, $t1, $v0 -/* 08F778 8008EB78 24420028 */ addiu $v0, $v0, 0x28 -/* 08F77C 8008EB7C 1447FFAF */ bne $v0, $a3, .L8008EA3C -/* 08F780 8008EB80 A1450026 */ sb $a1, 0x26($t2) -/* 08F784 8008EB84 24630004 */ addiu $v1, $v1, 4 -/* 08F788 8008EB88 0068082B */ sltu $at, $v1, $t0 -/* 08F78C 8008EB8C 1420FFAB */ bnez $at, .L8008EA3C -/* 08F790 8008EB90 00001025 */ move $v0, $zero -/* 08F794 8008EB94 3C03800E */ lui $v1, %hi(D_800E0970) # $v1, 0x800e -/* 08F798 8008EB98 3C08800E */ lui $t0, %hi(gQMarkPtr) # $t0, 0x800e -/* 08F79C 8008EB9C 25080978 */ addiu $t0, %lo(gQMarkPtr) # addiu $t0, $t0, 0x978 -/* 08F7A0 8008EBA0 24630970 */ addiu $v1, %lo(D_800E0970) # addiu $v1, $v1, 0x970 -/* 08F7A4 8008EBA4 24070003 */ li $a3, 3 -/* 08F7A8 8008EBA8 24060001 */ li $a2, 1 -/* 08F7AC 8008EBAC 24050002 */ li $a1, 2 -/* 08F7B0 8008EBB0 24040040 */ li $a0, 64 -/* 08F7B4 8008EBB4 00001025 */ move $v0, $zero -.L8008EBB8: -/* 08F7B8 8008EBB8 8C6B0000 */ lw $t3, ($v1) -/* 08F7BC 8008EBBC 00000000 */ nop -/* 08F7C0 8008EBC0 01626021 */ addu $t4, $t3, $v0 -/* 08F7C4 8008EBC4 A1840000 */ sb $a0, ($t4) -/* 08F7C8 8008EBC8 8C6D0000 */ lw $t5, ($v1) -/* 08F7CC 8008EBCC 00000000 */ nop -/* 08F7D0 8008EBD0 01A27021 */ addu $t6, $t5, $v0 -/* 08F7D4 8008EBD4 A1C00001 */ sb $zero, 1($t6) -/* 08F7D8 8008EBD8 8C6F0000 */ lw $t7, ($v1) -/* 08F7DC 8008EBDC 00000000 */ nop -/* 08F7E0 8008EBE0 01E2C021 */ addu $t8, $t7, $v0 -/* 08F7E4 8008EBE4 A3050002 */ sb $a1, 2($t8) -/* 08F7E8 8008EBE8 8C790000 */ lw $t9, ($v1) -/* 08F7EC 8008EBEC 00000000 */ nop -/* 08F7F0 8008EBF0 03224821 */ addu $t1, $t9, $v0 -/* 08F7F4 8008EBF4 A1260003 */ sb $a2, 3($t1) -/* 08F7F8 8008EBF8 8C6A0000 */ lw $t2, ($v1) -/* 08F7FC 8008EBFC 24420010 */ addiu $v0, $v0, 0x10 -/* 08F800 8008EC00 01425821 */ addu $t3, $t2, $v0 -/* 08F804 8008EC04 A1640000 */ sb $a0, ($t3) -/* 08F808 8008EC08 8C6C0000 */ lw $t4, ($v1) -/* 08F80C 8008EC0C 00000000 */ nop -/* 08F810 8008EC10 01826821 */ addu $t5, $t4, $v0 -/* 08F814 8008EC14 A1A60001 */ sb $a2, 1($t5) -/* 08F818 8008EC18 8C6E0000 */ lw $t6, ($v1) -/* 08F81C 8008EC1C 00000000 */ nop -/* 08F820 8008EC20 01C27821 */ addu $t7, $t6, $v0 -/* 08F824 8008EC24 A1E50002 */ sb $a1, 2($t7) -/* 08F828 8008EC28 8C780000 */ lw $t8, ($v1) -/* 08F82C 8008EC2C 00000000 */ nop -/* 08F830 8008EC30 0302C821 */ addu $t9, $t8, $v0 -/* 08F834 8008EC34 24420010 */ addiu $v0, $v0, 0x10 -/* 08F838 8008EC38 28410280 */ slti $at, $v0, 0x280 -/* 08F83C 8008EC3C 1420FFDE */ bnez $at, .L8008EBB8 -/* 08F840 8008EC40 A3270003 */ sb $a3, 3($t9) -/* 08F844 8008EC44 24630004 */ addiu $v1, $v1, 4 -/* 08F848 8008EC48 0068082B */ sltu $at, $v1, $t0 -/* 08F84C 8008EC4C 1420FFDA */ bnez $at, .L8008EBB8 -/* 08F850 8008EC50 00001025 */ move $v0, $zero -/* 08F854 8008EC54 3C018012 */ lui $at, %hi(D_80126924) # $at, 0x8012 -/* 08F858 8008EC58 3C048009 */ lui $a0, %hi(func_8008F618) # $a0, 0x8009 -/* 08F85C 8008EC5C AC206924 */ sw $zero, %lo(D_80126924)($at) -/* 08F860 8008EC60 0C01E2AB */ jal func_80078AAC -/* 08F864 8008EC64 2484F618 */ addiu $a0, %lo(func_8008F618) # addiu $a0, $a0, -0x9e8 -/* 08F868 8008EC68 8FC20000 */ lw $v0, ($fp) -/* 08F86C 8008EC6C 00002025 */ move $a0, $zero -/* 08F870 8008EC70 00021843 */ sra $v1, $v0, 1 -/* 08F874 8008EC74 00624821 */ addu $t1, $v1, $v0 -/* 08F878 8008EC78 AFA90010 */ sw $t1, 0x10($sp) -/* 08F87C 8008EC7C 24050050 */ li $a1, 80 -/* 08F880 8008EC80 240700F0 */ li $a3, 240 -/* 08F884 8008EC84 0C019A50 */ jal func_80066940 -/* 08F888 8008EC88 00433023 */ subu $a2, $v0, $v1 -/* 08F88C 8008EC8C 0C019984 */ jal func_80066610 -/* 08F890 8008EC90 00000000 */ nop -/* 08F894 8008EC94 00002025 */ move $a0, $zero -/* 08F898 8008EC98 0C019A06 */ jal func_80066818 -/* 08F89C 8008EC9C 00002825 */ move $a1, $zero -/* 08F8A0 8008ECA0 240A0001 */ li $t2, 1 -/* 08F8A4 8008ECA4 3C01800E */ lui $at, %hi(D_800E097C) # $at, 0x800e -/* 08F8A8 8008ECA8 3C04800E */ lui $a0, %hi(D_800E07C4) # $a0, 0x800e -/* 08F8AC 8008ECAC AC2A097C */ sw $t2, %lo(D_800E097C)($at) -/* 08F8B0 8008ECB0 0C02719D */ jal func_8009C674 -/* 08F8B4 8008ECB4 248407C4 */ addiu $a0, %lo(D_800E07C4) # addiu $a0, $a0, 0x7c4 -/* 08F8B8 8008ECB8 3C04800E */ lui $a0, %hi(D_800E07E0) # $a0, 0x800e -/* 08F8BC 8008ECBC 0C027229 */ jal allocate_menu_images -/* 08F8C0 8008ECC0 248407E0 */ addiu $a0, %lo(D_800E07E0) # addiu $a0, $a0, 0x7e0 -/* 08F8C4 8008ECC4 0C02392C */ jal func_8008E4B0 -/* 08F8C8 8008ECC8 00000000 */ nop -/* 08F8CC 8008ECCC 3C02800E */ lui $v0, %hi(D_800E05D4) # $v0, 0x800e -/* 08F8D0 8008ECD0 3C03800E */ lui $v1, %hi(D_800E05F4) # $v1, 0x800e -/* 08F8D4 8008ECD4 246305F4 */ addiu $v1, %lo(D_800E05F4) # addiu $v1, $v1, 0x5f4 -/* 08F8D8 8008ECD8 244205D4 */ addiu $v0, %lo(D_800E05D4) # addiu $v0, $v0, 0x5d4 -/* 08F8DC 8008ECDC 8ECB0020 */ lw $t3, 0x20($s6) -/* 08F8E0 8008ECE0 8ECC0024 */ lw $t4, 0x24($s6) -/* 08F8E4 8008ECE4 8ECD0028 */ lw $t5, 0x28($s6) -/* 08F8E8 8008ECE8 8ECE002C */ lw $t6, 0x2c($s6) -/* 08F8EC 8008ECEC 8ECF0030 */ lw $t7, 0x30($s6) -/* 08F8F0 8008ECF0 8ED80034 */ lw $t8, 0x34($s6) -/* 08F8F4 8008ECF4 3C198012 */ lui $t9, %hi(D_801268E8) # $t9, 0x8012 -/* 08F8F8 8008ECF8 273968E8 */ addiu $t9, %lo(D_801268E8) # addiu $t9, $t9, 0x68e8 -/* 08F8FC 8008ECFC AFB90058 */ sw $t9, 0x58($sp) -/* 08F900 8008ED00 24160004 */ li $s6, 4 -/* 08F904 8008ED04 00009825 */ move $s3, $zero -/* 08F908 8008ED08 24100006 */ li $s0, 6 -/* 08F90C 8008ED0C AC4B0000 */ sw $t3, ($v0) -/* 08F910 8008ED10 AC4C0008 */ sw $t4, 8($v0) -/* 08F914 8008ED14 AC4D0010 */ sw $t5, 0x10($v0) -/* 08F918 8008ED18 AC6E0000 */ sw $t6, ($v1) -/* 08F91C 8008ED1C AC6F0008 */ sw $t7, 8($v1) -/* 08F920 8008ED20 AC780010 */ sw $t8, 0x10($v1) -.L8008ED24: -/* 08F924 8008ED24 8FB20058 */ lw $s2, 0x58($sp) -/* 08F928 8008ED28 00008825 */ move $s1, $zero -/* 08F92C 8008ED2C 267E0001 */ addiu $fp, $s3, 1 -.L8008ED30: -/* 08F930 8008ED30 1620000B */ bnez $s1, .L8008ED60 -/* 08F934 8008ED34 A6550000 */ sh $s5, ($s2) -/* 08F938 8008ED38 2A610004 */ slti $at, $s3, 4 -/* 08F93C 8008ED3C 10200009 */ beqz $at, .L8008ED64 -/* 08F940 8008ED40 2A210004 */ slti $at, $s1, 4 -/* 08F944 8008ED44 02700019 */ multu $s3, $s0 -/* 08F948 8008ED48 00004812 */ mflo $t1 -/* 08F94C 8008ED4C 01315021 */ addu $t2, $t1, $s1 -/* 08F950 8008ED50 01575821 */ addu $t3, $t2, $s7 -/* 08F954 8008ED54 816C0000 */ lb $t4, ($t3) -/* 08F958 8008ED58 1000004A */ b .L8008EE84 -/* 08F95C 8008ED5C A64C0000 */ sh $t4, ($s2) -.L8008ED60: -/* 08F960 8008ED60 2A210004 */ slti $at, $s1, 4 -.L8008ED64: -/* 08F964 8008ED64 10200013 */ beqz $at, .L8008EDB4 -/* 08F968 8008ED68 00000000 */ nop -/* 08F96C 8008ED6C 02700019 */ multu $s3, $s0 -/* 08F970 8008ED70 00006812 */ mflo $t5 -/* 08F974 8008ED74 01B17021 */ addu $t6, $t5, $s1 -/* 08F978 8008ED78 01D77821 */ addu $t7, $t6, $s7 -/* 08F97C 8008ED7C 81E20000 */ lb $v0, ($t7) -/* 08F980 8008ED80 00000000 */ nop -/* 08F984 8008ED84 12A2003F */ beq $s5, $v0, .L8008EE84 -/* 08F988 8008ED88 00000000 */ nop -/* 08F98C 8008ED8C 8E980004 */ lw $t8, 4($s4) -/* 08F990 8008ED90 0002C880 */ sll $t9, $v0, 2 -/* 08F994 8008ED94 03194821 */ addu $t1, $t8, $t9 -/* 08F998 8008ED98 8D2A0000 */ lw $t2, ($t1) -/* 08F99C 8008ED9C 00000000 */ nop -/* 08F9A0 8008EDA0 314B0001 */ andi $t3, $t2, 1 -/* 08F9A4 8008EDA4 11600037 */ beqz $t3, .L8008EE84 -/* 08F9A8 8008EDA8 00000000 */ nop -/* 08F9AC 8008EDAC 10000035 */ b .L8008EE84 -/* 08F9B0 8008EDB0 A6420000 */ sh $v0, ($s2) -.L8008EDB4: -/* 08F9B4 8008EDB4 16360025 */ bne $s1, $s6, .L8008EE4C -/* 08F9B8 8008EDB8 24010005 */ li $at, 5 -/* 08F9BC 8008EDBC 00133080 */ sll $a2, $s3, 2 -/* 08F9C0 8008EDC0 00D33023 */ subu $a2, $a2, $s3 -/* 08F9C4 8008EDC4 00063040 */ sll $a2, $a2, 1 -/* 08F9C8 8008EDC8 00D71021 */ addu $v0, $a2, $s7 -/* 08F9CC 8008EDCC 00002025 */ move $a0, $zero -/* 08F9D0 8008EDD0 00002825 */ move $a1, $zero -.L8008EDD4: -/* 08F9D4 8008EDD4 80430000 */ lb $v1, ($v0) -/* 08F9D8 8008EDD8 24840001 */ addiu $a0, $a0, 1 -/* 08F9DC 8008EDDC 12A3000A */ beq $s5, $v1, .L8008EE08 -/* 08F9E0 8008EDE0 28810004 */ slti $at, $a0, 4 -/* 08F9E4 8008EDE4 8E8C0004 */ lw $t4, 4($s4) -/* 08F9E8 8008EDE8 00036880 */ sll $t5, $v1, 2 -/* 08F9EC 8008EDEC 018D7021 */ addu $t6, $t4, $t5 -/* 08F9F0 8008EDF0 8DCF0000 */ lw $t7, ($t6) -/* 08F9F4 8008EDF4 00000000 */ nop -/* 08F9F8 8008EDF8 31F80006 */ andi $t8, $t7, 6 -/* 08F9FC 8008EDFC 16180002 */ bne $s0, $t8, .L8008EE08 -/* 08FA00 8008EE00 00000000 */ nop -/* 08FA04 8008EE04 24A50001 */ addiu $a1, $a1, 1 -.L8008EE08: -/* 08FA08 8008EE08 1420FFF2 */ bnez $at, .L8008EDD4 -/* 08FA0C 8008EE0C 24420001 */ addiu $v0, $v0, 1 -/* 08FA10 8008EE10 14B60009 */ bne $a1, $s6, .L8008EE38 -/* 08FA14 8008EE14 00D15821 */ addu $t3, $a2, $s1 -/* 08FA18 8008EE18 12760007 */ beq $s3, $s6, .L8008EE38 -/* 08FA1C 8008EE1C 24190082 */ li $t9, 130 -/* 08FA20 8008EE20 9689000C */ lhu $t1, 0xc($s4) -/* 08FA24 8008EE24 02791004 */ sllv $v0, $t9, $s3 -/* 08FA28 8008EE28 01225024 */ and $t2, $t1, $v0 -/* 08FA2C 8008EE2C 104A0002 */ beq $v0, $t2, .L8008EE38 -/* 08FA30 8008EE30 00000000 */ nop -/* 08FA34 8008EE34 00002825 */ move $a1, $zero -.L8008EE38: -/* 08FA38 8008EE38 14B60012 */ bne $a1, $s6, .L8008EE84 -/* 08FA3C 8008EE3C 01776021 */ addu $t4, $t3, $s7 -/* 08FA40 8008EE40 818D0000 */ lb $t5, ($t4) -/* 08FA44 8008EE44 1000000F */ b .L8008EE84 -/* 08FA48 8008EE48 A64D0000 */ sh $t5, ($s2) -.L8008EE4C: -/* 08FA4C 8008EE4C 1621000D */ bne $s1, $at, .L8008EE84 -/* 08FA50 8008EE50 240F0001 */ li $t7, 1 -/* 08FA54 8008EE54 968E0008 */ lhu $t6, 8($s4) -/* 08FA58 8008EE58 03CFC004 */ sllv $t8, $t7, $fp -/* 08FA5C 8008EE5C 01D8C824 */ and $t9, $t6, $t8 -/* 08FA60 8008EE60 13200008 */ beqz $t9, .L8008EE84 -/* 08FA64 8008EE64 00000000 */ nop -/* 08FA68 8008EE68 02700019 */ multu $s3, $s0 -/* 08FA6C 8008EE6C 00004812 */ mflo $t1 -/* 08FA70 8008EE70 01315021 */ addu $t2, $t1, $s1 -/* 08FA74 8008EE74 01575821 */ addu $t3, $t2, $s7 -/* 08FA78 8008EE78 816C0000 */ lb $t4, ($t3) -/* 08FA7C 8008EE7C 00000000 */ nop -/* 08FA80 8008EE80 A64C0000 */ sh $t4, ($s2) -.L8008EE84: -/* 08FA84 8008EE84 0C027B18 */ jal is_adventure_two_unlocked -/* 08FA88 8008EE88 00000000 */ nop -/* 08FA8C 8008EE8C 10400008 */ beqz $v0, .L8008EEB0 -/* 08FA90 8008EE90 00000000 */ nop -/* 08FA94 8008EE94 02700019 */ multu $s3, $s0 -/* 08FA98 8008EE98 00006812 */ mflo $t5 -/* 08FA9C 8008EE9C 01B17821 */ addu $t7, $t5, $s1 -/* 08FAA0 8008EEA0 01F77021 */ addu $t6, $t7, $s7 -/* 08FAA4 8008EEA4 81D80000 */ lb $t8, ($t6) -/* 08FAA8 8008EEA8 00000000 */ nop -/* 08FAAC 8008EEAC A6580000 */ sh $t8, ($s2) -.L8008EEB0: -/* 08FAB0 8008EEB0 26310001 */ addiu $s1, $s1, 1 -/* 08FAB4 8008EEB4 1630FF9E */ bne $s1, $s0, .L8008ED30 -/* 08FAB8 8008EEB8 26520002 */ addiu $s2, $s2, 2 -/* 08FABC 8008EEBC 8FB90058 */ lw $t9, 0x58($sp) -/* 08FAC0 8008EEC0 24010005 */ li $at, 5 -/* 08FAC4 8008EEC4 2729000C */ addiu $t1, $t9, 0xc -/* 08FAC8 8008EEC8 AFA90058 */ sw $t1, 0x58($sp) -/* 08FACC 8008EECC 17C1FF95 */ bne $fp, $at, .L8008ED24 -/* 08FAD0 8008EED0 03C09825 */ move $s3, $fp -/* 08FAD4 8008EED4 3C028012 */ lui $v0, %hi(D_801269CC) # $v0, 0x8012 -/* 08FAD8 8008EED8 8C4269CC */ lw $v0, %lo(D_801269CC)($v0) -/* 08FADC 8008EEDC 3C0C8012 */ lui $t4, %hi(D_801269C8) # $t4, 0x8012 -/* 08FAE0 8008EEE0 00025080 */ sll $t2, $v0, 2 -/* 08FAE4 8008EEE4 8D8C69C8 */ lw $t4, %lo(D_801269C8)($t4) -/* 08FAE8 8008EEE8 3C078012 */ lui $a3, %hi(D_801268E8) # $a3, 0x8012 -/* 08FAEC 8008EEEC 01425023 */ subu $t2, $t2, $v0 -/* 08FAF0 8008EEF0 24E768E8 */ addiu $a3, %lo(D_801268E8) # addiu $a3, $a3, 0x68e8 -/* 08FAF4 8008EEF4 000A5080 */ sll $t2, $t2, 2 -/* 08FAF8 8008EEF8 00EA5821 */ addu $t3, $a3, $t2 -/* 08FAFC 8008EEFC 000C6840 */ sll $t5, $t4, 1 -/* 08FB00 8008EF00 016D7821 */ addu $t7, $t3, $t5 -/* 08FB04 8008EF04 85EE0000 */ lh $t6, ($t7) -/* 08FB08 8008EF08 3C03800E */ lui $v1, %hi(gTrackIdForPreview) # $v1, 0x800e -/* 08FB0C 8008EF0C 3C10800E */ lui $s0, %hi(gTrackSelectRow) # $s0, 0x800e -/* 08FB10 8008EF10 2610F4C8 */ addiu $s0, %lo(gTrackSelectRow) # addiu $s0, $s0, -0xb38 -/* 08FB14 8008EF14 2463F4C4 */ addiu $v1, %lo(gTrackIdForPreview) # addiu $v1, $v1, -0xb3c -/* 08FB18 8008EF18 24580001 */ addiu $t8, $v0, 1 -/* 08FB1C 8008EF1C AE180000 */ sw $t8, ($s0) -/* 08FB20 8008EF20 16AE000E */ bne $s5, $t6, .L8008EF5C -/* 08FB24 8008EF24 AC6E0000 */ sw $t6, ($v1) -/* 08FB28 8008EF28 84E40000 */ lh $a0, ($a3) -/* 08FB2C 8008EF2C 3C028012 */ lui $v0, %hi(D_801263D0) # $v0, 0x8012 -/* 08FB30 8008EF30 244263D0 */ addiu $v0, %lo(D_801263D0) # addiu $v0, $v0, 0x63d0 -/* 08FB34 8008EF34 2405FFFF */ li $a1, -1 -/* 08FB38 8008EF38 24060001 */ li $a2, 1 -/* 08FB3C 8008EF3C 0C01B8BA */ jal load_level_for_menu -/* 08FB40 8008EF40 AC440000 */ sw $a0, ($v0) -/* 08FB44 8008EF44 240A0001 */ li $t2, 1 -/* 08FB48 8008EF48 AE0A0000 */ sw $t2, ($s0) -/* 08FB4C 8008EF4C 3C018012 */ lui $at, %hi(gSelectedTrackX) # $at, 0x8012 -/* 08FB50 8008EF50 AC2069F4 */ sw $zero, %lo(gSelectedTrackX)($at) -/* 08FB54 8008EF54 3C018012 */ lui $at, %hi(gSelectedTrackY) # $at, 0x8012 -/* 08FB58 8008EF58 AC2069F8 */ sw $zero, %lo(gSelectedTrackY)($at) -.L8008EF5C: -/* 08FB5C 8008EF5C 0C031525 */ jal assign_dialogue_box_id -/* 08FB60 8008EF60 24040007 */ li $a0, 7 -/* 08FB64 8008EF64 0C01FFFB */ jal func_8007FFEC -/* 08FB68 8008EF68 24040002 */ li $a0, 2 -/* 08FB6C 8008EF6C 3C018012 */ lui $at, %hi(D_80126840) # $at, 0x8012 -/* 08FB70 8008EF70 AC206840 */ sw $zero, %lo(D_80126840)($at) -/* 08FB74 8008EF74 3C10800E */ lui $s0, %hi(sMenuMusicVolume) # $s0, 0x800e -/* 08FB78 8008EF78 3C018012 */ lui $at, %hi(D_80126848) # $at, 0x8012 -/* 08FB7C 8008EF7C 2610F760 */ addiu $s0, %lo(sMenuMusicVolume) # addiu $s0, $s0, -0x8a0 -/* 08FB80 8008EF80 AC206848 */ sw $zero, %lo(D_80126848)($at) -/* 08FB84 8008EF84 AE000000 */ sw $zero, ($s0) -/* 08FB88 8008EF88 0C0002F8 */ jal set_music_player_voice_limit -/* 08FB8C 8008EF8C 24040018 */ li $a0, 24 -/* 08FB90 8008EF90 0C000307 */ jal func_80000C1C -/* 08FB94 8008EF94 00000000 */ nop -/* 08FB98 8008EF98 0C0002CD */ jal play_music -/* 08FB9C 8008EF9C 24040018 */ li $a0, 24 -/* 08FBA0 8008EFA0 92040003 */ lbu $a0, 3($s0) -/* 08FBA4 8008EFA4 0C000664 */ jal set_relative_volume_for_music -/* 08FBA8 8008EFA8 00000000 */ nop -/* 08FBAC 8008EFAC 0C0002C6 */ jal func_80000B18 -/* 08FBB0 8008EFB0 00000000 */ nop -/* 08FBB4 8008EFB4 0C01BD59 */ jal set_D_800DD430 -/* 08FBB8 8008EFB8 24040001 */ li $a0, 1 -/* 08FBBC 8008EFBC 3C0C800E */ lui $t4, %hi(D_800E0418) # $t4, 0x800e -/* 08FBC0 8008EFC0 8D8C0418 */ lw $t4, %lo(D_800E0418)($t4) -/* 08FBC4 8008EFC4 3C01800E */ lui $at, %hi(gIsInAdventureTwo) # $at, 0x800e -/* 08FBC8 8008EFC8 3C0B800E */ lui $t3, %hi(gMultiplayerSelectedNumberOfRacers) # $t3, 0x800e -/* 08FBCC 8008EFCC 8D6B0410 */ lw $t3, %lo(gMultiplayerSelectedNumberOfRacers)($t3) -/* 08FBD0 8008EFD0 8FBF0044 */ lw $ra, 0x44($sp) -/* 08FBD4 8008EFD4 AC2CF494 */ sw $t4, %lo(gIsInAdventureTwo)($at) -/* 08FBD8 8008EFD8 3C018012 */ lui $at, %hi(gMultiplayerSelectedNumberOfRacersCopy) # $at, 0x8012 -/* 08FBDC 8008EFDC 8FB00020 */ lw $s0, 0x20($sp) -/* 08FBE0 8008EFE0 8FB10024 */ lw $s1, 0x24($sp) -/* 08FBE4 8008EFE4 8FB20028 */ lw $s2, 0x28($sp) -/* 08FBE8 8008EFE8 8FB3002C */ lw $s3, 0x2c($sp) -/* 08FBEC 8008EFEC 8FB40030 */ lw $s4, 0x30($sp) -/* 08FBF0 8008EFF0 8FB50034 */ lw $s5, 0x34($sp) -/* 08FBF4 8008EFF4 8FB60038 */ lw $s6, 0x38($sp) -/* 08FBF8 8008EFF8 8FB7003C */ lw $s7, 0x3c($sp) -/* 08FBFC 8008EFFC 8FBE0040 */ lw $fp, 0x40($sp) -/* 08FC00 8008F000 27BD0080 */ addiu $sp, $sp, 0x80 -/* 08FC04 8008F004 03E00008 */ jr $ra -/* 08FC08 8008F008 AC2B6548 */ sw $t3, %lo(gMultiplayerSelectedNumberOfRacersCopy)($at) - +glabel menu_track_select_init +/* 08F3A0 8008E7A0 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08F3A4 8008E7A4 AFBF0044 */ sw $ra, 0x44($sp) +/* 08F3A8 8008E7A8 AFBE0040 */ sw $fp, 0x40($sp) +/* 08F3AC 8008E7AC AFB7003C */ sw $s7, 0x3c($sp) +/* 08F3B0 8008E7B0 AFB60038 */ sw $s6, 0x38($sp) +/* 08F3B4 8008E7B4 AFB50034 */ sw $s5, 0x34($sp) +/* 08F3B8 8008E7B8 AFB40030 */ sw $s4, 0x30($sp) +/* 08F3BC 8008E7BC AFB3002C */ sw $s3, 0x2c($sp) +/* 08F3C0 8008E7C0 AFB20028 */ sw $s2, 0x28($sp) +/* 08F3C4 8008E7C4 AFB10024 */ sw $s1, 0x24($sp) +/* 08F3C8 8008E7C8 AFB00020 */ sw $s0, 0x20($sp) +/* 08F3CC 8008E7CC 0C03105C */ jal load_font +/* 08F3D0 8008E7D0 24040002 */ li $a0, 2 +/* 08F3D4 8008E7D4 0C01BAA4 */ jal get_settings +/* 08F3D8 8008E7D8 00000000 */ nop +/* 08F3DC 8008E7DC 0040A025 */ move $s4, $v0 +/* 08F3E0 8008E7E0 27A4007C */ addiu $a0, $sp, 0x7c +/* 08F3E4 8008E7E4 0C01AC89 */ jal get_number_of_levels_and_worlds +/* 08F3E8 8008E7E8 27A50078 */ addiu $a1, $sp, 0x78 +/* 08F3EC 8008E7EC 0C0078A7 */ jal get_misc_asset +/* 08F3F0 8008E7F0 2404001A */ li $a0, 26 +/* 08F3F4 8008E7F4 3C03800E */ lui $v1, %hi(D_800DF488) # $v1, 0x800e +/* 08F3F8 8008E7F8 2463F488 */ addiu $v1, %lo(D_800DF488) # addiu $v1, $v1, -0xb78 +/* 08F3FC 8008E7FC 8C6E0000 */ lw $t6, ($v1) +/* 08F400 8008E800 0040B825 */ move $s7, $v0 +/* 08F404 8008E804 11C00009 */ beqz $t6, .L8008E82C +/* 08F408 8008E808 3C018012 */ lui $at, %hi(D_801269C8) # $at, 0x8012 +/* 08F40C 8008E80C AC2069C8 */ sw $zero, %lo(D_801269C8)($at) +/* 08F410 8008E810 3C018012 */ lui $at, %hi(D_801269CC) # $at, 0x8012 +/* 08F414 8008E814 AC2069CC */ sw $zero, %lo(D_801269CC)($at) +/* 08F418 8008E818 3C01800E */ lui $at, %hi(D_800E0414) # $at, 0x800e +/* 08F41C 8008E81C AC200414 */ sw $zero, %lo(D_800E0414)($at) +/* 08F420 8008E820 3C01800E */ lui $at, %hi(D_800E0418) # $at, 0x800e +/* 08F424 8008E824 AC200418 */ sw $zero, %lo(D_800E0418)($at) +/* 08F428 8008E828 AC600000 */ sw $zero, ($v1) +.L8008E82C: +/* 08F42C 8008E82C 0C01E948 */ jal get_video_width_and_height_as_s32 +/* 08F430 8008E830 00000000 */ nop +/* 08F434 8008E834 3C068012 */ lui $a2, %hi(gTrackSelectViewPortX) # $a2, 0x8012 +/* 08F438 8008E838 24C6647C */ addiu $a2, %lo(gTrackSelectViewPortX) # addiu $a2, $a2, 0x647c +/* 08F43C 8008E83C 3C078012 */ lui $a3, %hi(gTrackSelectViewportY) # $a3, 0x8012 +/* 08F440 8008E840 00027C03 */ sra $t7, $v0, 0x10 +/* 08F444 8008E844 3059FFFF */ andi $t9, $v0, 0xffff +/* 08F448 8008E848 24E76480 */ addiu $a3, %lo(gTrackSelectViewportY) # addiu $a3, $a3, 0x6480 +/* 08F44C 8008E84C ACC20000 */ sw $v0, ($a2) +/* 08F450 8008E850 31F8FFFF */ andi $t8, $t7, 0xffff +/* 08F454 8008E854 ACF80000 */ sw $t8, ($a3) +/* 08F458 8008E858 ACD90000 */ sw $t9, ($a2) +/* 08F45C 8008E85C 00195043 */ sra $t2, $t9, 1 +/* 08F460 8008E860 3C018012 */ lui $at, %hi(gTrackSelectViewPortHalfX) # $at, 0x8012 +/* 08F464 8008E864 AC2A6474 */ sw $t2, %lo(gTrackSelectViewPortHalfX)($at) +/* 08F468 8008E868 8CE50000 */ lw $a1, ($a3) +/* 08F46C 8008E86C 3C1E8012 */ lui $fp, %hi(gTrackSelectViewPortHalfY) # $fp, 0x8012 +/* 08F470 8008E870 27DE6478 */ addiu $fp, %lo(gTrackSelectViewPortHalfY) # addiu $fp, $fp, 0x6478 +/* 08F474 8008E874 00055843 */ sra $t3, $a1, 1 +/* 08F478 8008E878 AFCB0000 */ sw $t3, ($fp) +/* 08F47C 8008E87C 3C0C8012 */ lui $t4, %hi(D_801269C8) # $t4, 0x8012 +/* 08F480 8008E880 8D8C69C8 */ lw $t4, %lo(D_801269C8)($t4) +/* 08F484 8008E884 3C0D8012 */ lui $t5, %hi(D_801269CC) # $t5, 0x8012 +/* 08F488 8008E888 448C2000 */ mtc1 $t4, $f4 +/* 08F48C 8008E88C 8DAD69CC */ lw $t5, %lo(D_801269CC)($t5) +/* 08F490 8008E890 468021A0 */ cvt.s.w $f6, $f4 +/* 08F494 8008E894 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 08F498 8008E898 44814000 */ mtc1 $at, $f8 +/* 08F49C 8008E89C 00057023 */ negu $t6, $a1 +/* 08F4A0 8008E8A0 448E2000 */ mtc1 $t6, $f4 +/* 08F4A4 8008E8A4 448D8000 */ mtc1 $t5, $f16 +/* 08F4A8 8008E8A8 46083282 */ mul.s $f10, $f6, $f8 +/* 08F4AC 8008E8AC 3C018012 */ lui $at, %hi(gTrackSelectX) # $at, 0x8012 +/* 08F4B0 8008E8B0 2415FFFF */ li $s5, -1 +/* 08F4B4 8008E8B4 240F0020 */ li $t7, 32 +/* 08F4B8 8008E8B8 468021A0 */ cvt.s.w $f6, $f4 +/* 08F4BC 8008E8BC E42A69DC */ swc1 $f10, %lo(gTrackSelectX)($at) +/* 08F4C0 8008E8C0 3C018012 */ lui $at, %hi(gTrackSelectY) # $at, 0x8012 +/* 08F4C4 8008E8C4 468084A0 */ cvt.s.w $f18, $f16 +/* 08F4C8 8008E8C8 00002025 */ move $a0, $zero +/* 08F4CC 8008E8CC 46069202 */ mul.s $f8, $f18, $f6 +/* 08F4D0 8008E8D0 E42869E4 */ swc1 $f8, %lo(gTrackSelectY)($at) +/* 08F4D4 8008E8D4 3C018012 */ lui $at, %hi(gSelectedTrackX) # $at, 0x8012 +/* 08F4D8 8008E8D8 AC3569F4 */ sw $s5, %lo(gSelectedTrackX)($at) +/* 08F4DC 8008E8DC 3C018012 */ lui $at, %hi(gSelectedTrackY) # $at, 0x8012 +/* 08F4E0 8008E8E0 AC3569F8 */ sw $s5, %lo(gSelectedTrackY)($at) +/* 08F4E4 8008E8E4 3C018012 */ lui $at, %hi(D_801263D0) # $at, 0x8012 +/* 08F4E8 8008E8E8 AC3563D0 */ sw $s5, %lo(D_801263D0)($at) +/* 08F4EC 8008E8EC 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 +/* 08F4F0 8008E8F0 AC2F63D8 */ sw $t7, %lo(gOpacityDecayTimer)($at) +/* 08F4F4 8008E8F4 3C018012 */ lui $at, %hi(gOptionBlinkTimer) # $at, 0x8012 +/* 08F4F8 8008E8F8 AC2063BC */ sw $zero, %lo(gOptionBlinkTimer)($at) +/* 08F4FC 8008E8FC 3C018012 */ lui $at, %hi(D_801267D0) # $at, 0x8012 +/* 08F500 8008E900 0C023C03 */ jal func_8008F00C +/* 08F504 8008E904 AC3567D0 */ sw $s5, %lo(D_801267D0)($at) +/* 08F508 8008E908 3C04800E */ lui $a0, %hi(sMenuTransitionFadeOut) # $a0, 0x800e +/* 08F50C 8008E90C 0C030076 */ jal func_800C01D8 +/* 08F510 8008E910 2484F77C */ addiu $a0, %lo(sMenuTransitionFadeOut) # addiu $a0, $a0, -0x884 +/* 08F514 8008E914 0C03005C */ jal func_800C0170 +/* 08F518 8008E918 00000000 */ nop +/* 08F51C 8008E91C 24040032 */ li $a0, 50 +/* 08F520 8008E920 24050069 */ li $a1, 105 +/* 08F524 8008E924 0C01DED7 */ jal set_background_fill_colour +/* 08F528 8008E928 240600DF */ li $a2, 223 +/* 08F52C 8008E92C 3C11800E */ lui $s1, %hi(D_800E0710) # $s1, 0x800e +/* 08F530 8008E930 3C168012 */ lui $s6, %hi(D_80126550) # $s6, 0x8012 +/* 08F534 8008E934 3C12800E */ lui $s2, %hi(D_800E0730) # $s2, 0x800e +/* 08F538 8008E938 26520730 */ addiu $s2, %lo(D_800E0730) # addiu $s2, $s2, 0x730 +/* 08F53C 8008E93C 26D66550 */ addiu $s6, %lo(D_80126550) # addiu $s6, $s6, 0x6550 +/* 08F540 8008E940 26310710 */ addiu $s1, %lo(D_800E0710) # addiu $s1, $s1, 0x710 +/* 08F544 8008E944 00002825 */ move $a1, $zero +.L8008E948: +/* 08F548 8008E948 86240000 */ lh $a0, ($s1) +/* 08F54C 8008E94C 000570C0 */ sll $t6, $a1, 3 +/* 08F550 8008E950 12A4000C */ beq $s5, $a0, .L8008E984 +/* 08F554 8008E954 024E8021 */ addu $s0, $s2, $t6 +/* 08F558 8008E958 0C0271B5 */ jal func_8009C6D4 +/* 08F55C 8008E95C AFA50074 */ sw $a1, 0x74($sp) +/* 08F560 8008E960 86290000 */ lh $t1, ($s1) +/* 08F564 8008E964 8FA50074 */ lw $a1, 0x74($sp) +/* 08F568 8008E968 00095080 */ sll $t2, $t1, 2 +/* 08F56C 8008E96C 02CA5821 */ addu $t3, $s6, $t2 +/* 08F570 8008E970 8D6C0000 */ lw $t4, ($t3) +/* 08F574 8008E974 0005C8C0 */ sll $t9, $a1, 3 +/* 08F578 8008E978 02598021 */ addu $s0, $s2, $t9 +/* 08F57C 8008E97C 10000002 */ b .L8008E988 +/* 08F580 8008E980 AE0C0000 */ sw $t4, ($s0) +.L8008E984: +/* 08F584 8008E984 AE000000 */ sw $zero, ($s0) +.L8008E988: +/* 08F588 8008E988 86240002 */ lh $a0, 2($s1) +/* 08F58C 8008E98C 00000000 */ nop +/* 08F590 8008E990 12A4000A */ beq $s5, $a0, .L8008E9BC +/* 08F594 8008E994 00000000 */ nop +/* 08F598 8008E998 0C0271B5 */ jal func_8009C6D4 +/* 08F59C 8008E99C AFA50074 */ sw $a1, 0x74($sp) +/* 08F5A0 8008E9A0 862F0002 */ lh $t7, 2($s1) +/* 08F5A4 8008E9A4 8FA50074 */ lw $a1, 0x74($sp) +/* 08F5A8 8008E9A8 000FC080 */ sll $t8, $t7, 2 +/* 08F5AC 8008E9AC 02D8C821 */ addu $t9, $s6, $t8 +/* 08F5B0 8008E9B0 8F290000 */ lw $t1, ($t9) +/* 08F5B4 8008E9B4 10000002 */ b .L8008E9C0 +/* 08F5B8 8008E9B8 AE090004 */ sw $t1, 4($s0) +.L8008E9BC: +/* 08F5BC 8008E9BC AE000004 */ sw $zero, 4($s0) +.L8008E9C0: +/* 08F5C0 8008E9C0 24A50001 */ addiu $a1, $a1, 1 +/* 08F5C4 8008E9C4 24010005 */ li $at, 5 +/* 08F5C8 8008E9C8 14A1FFDF */ bne $a1, $at, .L8008E948 +/* 08F5CC 8008E9CC 26310006 */ addiu $s1, $s1, 6 +/* 08F5D0 8008E9D0 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff +/* 08F5D4 8008E9D4 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff +/* 08F5D8 8008E9D8 0C01C327 */ jal allocate_from_main_pool_safe +/* 08F5DC 8008E9DC 24040B40 */ li $a0, 2880 +/* 08F5E0 8008E9E0 3C05800E */ lui $a1, %hi(D_800E0970) # $a1, 0x800e +/* 08F5E4 8008E9E4 24A50970 */ addiu $a1, %lo(D_800E0970) # addiu $a1, $a1, 0x970 +/* 08F5E8 8008E9E8 ACA20000 */ sw $v0, ($a1) +/* 08F5EC 8008E9EC 244B0280 */ addiu $t3, $v0, 0x280 +/* 08F5F0 8008E9F0 3C01800E */ lui $at, %hi(D_800E0974) # $at, 0x800e +/* 08F5F4 8008E9F4 AC2B0974 */ sw $t3, %lo(D_800E0974)($at) +/* 08F5F8 8008E9F8 8CAC0004 */ lw $t4, 4($a1) +/* 08F5FC 8008E9FC 3C01800E */ lui $at, %hi(D_800E096C) # $at, 0x800e +/* 08F600 8008EA00 258D0280 */ addiu $t5, $t4, 0x280 +/* 08F604 8008EA04 AC2D0968 */ sw $t5, %lo(D_800E0968)($at) +/* 08F608 8008EA08 3C0E800E */ lui $t6, %hi(D_800E0968) # $t6, 0x800e +/* 08F60C 8008EA0C 8DCE0968 */ lw $t6, %lo(D_800E0968)($t6) +/* 08F610 8008EA10 3C03800E */ lui $v1, %hi(D_800E0968) # $v1, 0x800e +/* 08F614 8008EA14 3C08800E */ lui $t0, %hi(D_800E0970) # $t0, 0x800e +/* 08F618 8008EA18 25CF0320 */ addiu $t7, $t6, 0x320 +/* 08F61C 8008EA1C AC2F096C */ sw $t7, %lo(D_800E096C)($at) +/* 08F620 8008EA20 2404FF60 */ li $a0, -160 +/* 08F624 8008EA24 25080970 */ addiu $t0, %lo(D_800E0970) # addiu $t0, $t0, 0x970 +/* 08F628 8008EA28 24630968 */ addiu $v1, %lo(D_800E0968) # addiu $v1, $v1, 0x968 +/* 08F62C 8008EA2C 240500FF */ li $a1, 255 +/* 08F630 8008EA30 24070320 */ li $a3, 800 +/* 08F634 8008EA34 2406FC00 */ li $a2, -1024 +/* 08F638 8008EA38 00001025 */ move $v0, $zero +.L8008EA3C: +/* 08F63C 8008EA3C 8C780000 */ lw $t8, ($v1) +/* 08F640 8008EA40 00000000 */ nop +/* 08F644 8008EA44 0302C821 */ addu $t9, $t8, $v0 +/* 08F648 8008EA48 A7240000 */ sh $a0, ($t9) +/* 08F64C 8008EA4C 8C690000 */ lw $t1, ($v1) +/* 08F650 8008EA50 00042023 */ negu $a0, $a0 +/* 08F654 8008EA54 01225021 */ addu $t2, $t1, $v0 +/* 08F658 8008EA58 A5460004 */ sh $a2, 4($t2) +/* 08F65C 8008EA5C 8C6B0000 */ lw $t3, ($v1) +/* 08F660 8008EA60 00000000 */ nop +/* 08F664 8008EA64 01626021 */ addu $t4, $t3, $v0 +/* 08F668 8008EA68 A1850006 */ sb $a1, 6($t4) +/* 08F66C 8008EA6C 8C6D0000 */ lw $t5, ($v1) +/* 08F670 8008EA70 00000000 */ nop +/* 08F674 8008EA74 01A27021 */ addu $t6, $t5, $v0 +/* 08F678 8008EA78 A1C50007 */ sb $a1, 7($t6) +/* 08F67C 8008EA7C 8C6F0000 */ lw $t7, ($v1) +/* 08F680 8008EA80 00000000 */ nop +/* 08F684 8008EA84 01E2C021 */ addu $t8, $t7, $v0 +/* 08F688 8008EA88 A3050008 */ sb $a1, 8($t8) +/* 08F68C 8008EA8C 8C790000 */ lw $t9, ($v1) +/* 08F690 8008EA90 00000000 */ nop +/* 08F694 8008EA94 03224821 */ addu $t1, $t9, $v0 +/* 08F698 8008EA98 A524000A */ sh $a0, 0xa($t1) +/* 08F69C 8008EA9C 8C6A0000 */ lw $t2, ($v1) +/* 08F6A0 8008EAA0 00042023 */ negu $a0, $a0 +/* 08F6A4 8008EAA4 01425821 */ addu $t3, $t2, $v0 +/* 08F6A8 8008EAA8 A566000E */ sh $a2, 0xe($t3) +/* 08F6AC 8008EAAC 8C6C0000 */ lw $t4, ($v1) +/* 08F6B0 8008EAB0 00000000 */ nop +/* 08F6B4 8008EAB4 01826821 */ addu $t5, $t4, $v0 +/* 08F6B8 8008EAB8 A1A50010 */ sb $a1, 0x10($t5) +/* 08F6BC 8008EABC 8C6E0000 */ lw $t6, ($v1) +/* 08F6C0 8008EAC0 00000000 */ nop +/* 08F6C4 8008EAC4 01C27821 */ addu $t7, $t6, $v0 +/* 08F6C8 8008EAC8 A1E50011 */ sb $a1, 0x11($t7) +/* 08F6CC 8008EACC 8C780000 */ lw $t8, ($v1) +/* 08F6D0 8008EAD0 00000000 */ nop +/* 08F6D4 8008EAD4 0302C821 */ addu $t9, $t8, $v0 +/* 08F6D8 8008EAD8 A3250012 */ sb $a1, 0x12($t9) +/* 08F6DC 8008EADC 8C690000 */ lw $t1, ($v1) +/* 08F6E0 8008EAE0 00000000 */ nop +/* 08F6E4 8008EAE4 01225021 */ addu $t2, $t1, $v0 +/* 08F6E8 8008EAE8 A5440014 */ sh $a0, 0x14($t2) +/* 08F6EC 8008EAEC 8C6B0000 */ lw $t3, ($v1) +/* 08F6F0 8008EAF0 00042023 */ negu $a0, $a0 +/* 08F6F4 8008EAF4 01626021 */ addu $t4, $t3, $v0 +/* 08F6F8 8008EAF8 A5860018 */ sh $a2, 0x18($t4) +/* 08F6FC 8008EAFC 8C6D0000 */ lw $t5, ($v1) +/* 08F700 8008EB00 00000000 */ nop +/* 08F704 8008EB04 01A27021 */ addu $t6, $t5, $v0 +/* 08F708 8008EB08 A1C5001A */ sb $a1, 0x1a($t6) +/* 08F70C 8008EB0C 8C6F0000 */ lw $t7, ($v1) +/* 08F710 8008EB10 00000000 */ nop +/* 08F714 8008EB14 01E2C021 */ addu $t8, $t7, $v0 +/* 08F718 8008EB18 A305001B */ sb $a1, 0x1b($t8) +/* 08F71C 8008EB1C 8C790000 */ lw $t9, ($v1) +/* 08F720 8008EB20 00000000 */ nop +/* 08F724 8008EB24 03224821 */ addu $t1, $t9, $v0 +/* 08F728 8008EB28 A125001C */ sb $a1, 0x1c($t1) +/* 08F72C 8008EB2C 8C6A0000 */ lw $t2, ($v1) +/* 08F730 8008EB30 00000000 */ nop +/* 08F734 8008EB34 01425821 */ addu $t3, $t2, $v0 +/* 08F738 8008EB38 A564001E */ sh $a0, 0x1e($t3) +/* 08F73C 8008EB3C 8C6C0000 */ lw $t4, ($v1) +/* 08F740 8008EB40 00042023 */ negu $a0, $a0 +/* 08F744 8008EB44 01826821 */ addu $t5, $t4, $v0 +/* 08F748 8008EB48 A5A60022 */ sh $a2, 0x22($t5) +/* 08F74C 8008EB4C 8C6E0000 */ lw $t6, ($v1) +/* 08F750 8008EB50 00000000 */ nop +/* 08F754 8008EB54 01C27821 */ addu $t7, $t6, $v0 +/* 08F758 8008EB58 A1E50024 */ sb $a1, 0x24($t7) +/* 08F75C 8008EB5C 8C780000 */ lw $t8, ($v1) +/* 08F760 8008EB60 00000000 */ nop +/* 08F764 8008EB64 0302C821 */ addu $t9, $t8, $v0 +/* 08F768 8008EB68 A3250025 */ sb $a1, 0x25($t9) +/* 08F76C 8008EB6C 8C690000 */ lw $t1, ($v1) +/* 08F770 8008EB70 00000000 */ nop +/* 08F774 8008EB74 01225021 */ addu $t2, $t1, $v0 +/* 08F778 8008EB78 24420028 */ addiu $v0, $v0, 0x28 +/* 08F77C 8008EB7C 1447FFAF */ bne $v0, $a3, .L8008EA3C +/* 08F780 8008EB80 A1450026 */ sb $a1, 0x26($t2) +/* 08F784 8008EB84 24630004 */ addiu $v1, $v1, 4 +/* 08F788 8008EB88 0068082B */ sltu $at, $v1, $t0 +/* 08F78C 8008EB8C 1420FFAB */ bnez $at, .L8008EA3C +/* 08F790 8008EB90 00001025 */ move $v0, $zero +/* 08F794 8008EB94 3C03800E */ lui $v1, %hi(D_800E0970) # $v1, 0x800e +/* 08F798 8008EB98 3C08800E */ lui $t0, %hi(gQMarkPtr) # $t0, 0x800e +/* 08F79C 8008EB9C 25080978 */ addiu $t0, %lo(gQMarkPtr) # addiu $t0, $t0, 0x978 +/* 08F7A0 8008EBA0 24630970 */ addiu $v1, %lo(D_800E0970) # addiu $v1, $v1, 0x970 +/* 08F7A4 8008EBA4 24070003 */ li $a3, 3 +/* 08F7A8 8008EBA8 24060001 */ li $a2, 1 +/* 08F7AC 8008EBAC 24050002 */ li $a1, 2 +/* 08F7B0 8008EBB0 24040040 */ li $a0, 64 +/* 08F7B4 8008EBB4 00001025 */ move $v0, $zero +.L8008EBB8: +/* 08F7B8 8008EBB8 8C6B0000 */ lw $t3, ($v1) +/* 08F7BC 8008EBBC 00000000 */ nop +/* 08F7C0 8008EBC0 01626021 */ addu $t4, $t3, $v0 +/* 08F7C4 8008EBC4 A1840000 */ sb $a0, ($t4) +/* 08F7C8 8008EBC8 8C6D0000 */ lw $t5, ($v1) +/* 08F7CC 8008EBCC 00000000 */ nop +/* 08F7D0 8008EBD0 01A27021 */ addu $t6, $t5, $v0 +/* 08F7D4 8008EBD4 A1C00001 */ sb $zero, 1($t6) +/* 08F7D8 8008EBD8 8C6F0000 */ lw $t7, ($v1) +/* 08F7DC 8008EBDC 00000000 */ nop +/* 08F7E0 8008EBE0 01E2C021 */ addu $t8, $t7, $v0 +/* 08F7E4 8008EBE4 A3050002 */ sb $a1, 2($t8) +/* 08F7E8 8008EBE8 8C790000 */ lw $t9, ($v1) +/* 08F7EC 8008EBEC 00000000 */ nop +/* 08F7F0 8008EBF0 03224821 */ addu $t1, $t9, $v0 +/* 08F7F4 8008EBF4 A1260003 */ sb $a2, 3($t1) +/* 08F7F8 8008EBF8 8C6A0000 */ lw $t2, ($v1) +/* 08F7FC 8008EBFC 24420010 */ addiu $v0, $v0, 0x10 +/* 08F800 8008EC00 01425821 */ addu $t3, $t2, $v0 +/* 08F804 8008EC04 A1640000 */ sb $a0, ($t3) +/* 08F808 8008EC08 8C6C0000 */ lw $t4, ($v1) +/* 08F80C 8008EC0C 00000000 */ nop +/* 08F810 8008EC10 01826821 */ addu $t5, $t4, $v0 +/* 08F814 8008EC14 A1A60001 */ sb $a2, 1($t5) +/* 08F818 8008EC18 8C6E0000 */ lw $t6, ($v1) +/* 08F81C 8008EC1C 00000000 */ nop +/* 08F820 8008EC20 01C27821 */ addu $t7, $t6, $v0 +/* 08F824 8008EC24 A1E50002 */ sb $a1, 2($t7) +/* 08F828 8008EC28 8C780000 */ lw $t8, ($v1) +/* 08F82C 8008EC2C 00000000 */ nop +/* 08F830 8008EC30 0302C821 */ addu $t9, $t8, $v0 +/* 08F834 8008EC34 24420010 */ addiu $v0, $v0, 0x10 +/* 08F838 8008EC38 28410280 */ slti $at, $v0, 0x280 +/* 08F83C 8008EC3C 1420FFDE */ bnez $at, .L8008EBB8 +/* 08F840 8008EC40 A3270003 */ sb $a3, 3($t9) +/* 08F844 8008EC44 24630004 */ addiu $v1, $v1, 4 +/* 08F848 8008EC48 0068082B */ sltu $at, $v1, $t0 +/* 08F84C 8008EC4C 1420FFDA */ bnez $at, .L8008EBB8 +/* 08F850 8008EC50 00001025 */ move $v0, $zero +/* 08F854 8008EC54 3C018012 */ lui $at, %hi(D_80126924) # $at, 0x8012 +/* 08F858 8008EC58 3C048009 */ lui $a0, %hi(func_8008F618) # $a0, 0x8009 +/* 08F85C 8008EC5C AC206924 */ sw $zero, %lo(D_80126924)($at) +/* 08F860 8008EC60 0C01E2AB */ jal set_background_draw_function +/* 08F864 8008EC64 2484F618 */ addiu $a0, %lo(func_8008F618) # addiu $a0, $a0, -0x9e8 +/* 08F868 8008EC68 8FC20000 */ lw $v0, ($fp) +/* 08F86C 8008EC6C 00002025 */ move $a0, $zero +/* 08F870 8008EC70 00021843 */ sra $v1, $v0, 1 +/* 08F874 8008EC74 00624821 */ addu $t1, $v1, $v0 +/* 08F878 8008EC78 AFA90010 */ sw $t1, 0x10($sp) +/* 08F87C 8008EC7C 24050050 */ li $a1, 80 +/* 08F880 8008EC80 240700F0 */ li $a3, 240 +/* 08F884 8008EC84 0C019A50 */ jal func_80066940 +/* 08F888 8008EC88 00433023 */ subu $a2, $v0, $v1 +/* 08F88C 8008EC8C 0C019984 */ jal func_80066610 +/* 08F890 8008EC90 00000000 */ nop +/* 08F894 8008EC94 00002025 */ move $a0, $zero +/* 08F898 8008EC98 0C019A06 */ jal func_80066818 +/* 08F89C 8008EC9C 00002825 */ move $a1, $zero +/* 08F8A0 8008ECA0 240A0001 */ li $t2, 1 +/* 08F8A4 8008ECA4 3C01800E */ lui $at, %hi(D_800E097C) # $at, 0x800e +/* 08F8A8 8008ECA8 3C04800E */ lui $a0, %hi(D_800E07C4) # $a0, 0x800e +/* 08F8AC 8008ECAC AC2A097C */ sw $t2, %lo(D_800E097C)($at) +/* 08F8B0 8008ECB0 0C02719D */ jal func_8009C674 +/* 08F8B4 8008ECB4 248407C4 */ addiu $a0, %lo(D_800E07C4) # addiu $a0, $a0, 0x7c4 +/* 08F8B8 8008ECB8 3C04800E */ lui $a0, %hi(D_800E07E0) # $a0, 0x800e +/* 08F8BC 8008ECBC 0C027229 */ jal allocate_menu_images +/* 08F8C0 8008ECC0 248407E0 */ addiu $a0, %lo(D_800E07E0) # addiu $a0, $a0, 0x7e0 +/* 08F8C4 8008ECC4 0C02392C */ jal func_8008E4B0 +/* 08F8C8 8008ECC8 00000000 */ nop +/* 08F8CC 8008ECCC 3C02800E */ lui $v0, %hi(D_800E05D4) # $v0, 0x800e +/* 08F8D0 8008ECD0 3C03800E */ lui $v1, %hi(D_800E05F4) # $v1, 0x800e +/* 08F8D4 8008ECD4 246305F4 */ addiu $v1, %lo(D_800E05F4) # addiu $v1, $v1, 0x5f4 +/* 08F8D8 8008ECD8 244205D4 */ addiu $v0, %lo(D_800E05D4) # addiu $v0, $v0, 0x5d4 +/* 08F8DC 8008ECDC 8ECB0020 */ lw $t3, 0x20($s6) +/* 08F8E0 8008ECE0 8ECC0024 */ lw $t4, 0x24($s6) +/* 08F8E4 8008ECE4 8ECD0028 */ lw $t5, 0x28($s6) +/* 08F8E8 8008ECE8 8ECE002C */ lw $t6, 0x2c($s6) +/* 08F8EC 8008ECEC 8ECF0030 */ lw $t7, 0x30($s6) +/* 08F8F0 8008ECF0 8ED80034 */ lw $t8, 0x34($s6) +/* 08F8F4 8008ECF4 3C198012 */ lui $t9, %hi(D_801268E8) # $t9, 0x8012 +/* 08F8F8 8008ECF8 273968E8 */ addiu $t9, %lo(D_801268E8) # addiu $t9, $t9, 0x68e8 +/* 08F8FC 8008ECFC AFB90058 */ sw $t9, 0x58($sp) +/* 08F900 8008ED00 24160004 */ li $s6, 4 +/* 08F904 8008ED04 00009825 */ move $s3, $zero +/* 08F908 8008ED08 24100006 */ li $s0, 6 +/* 08F90C 8008ED0C AC4B0000 */ sw $t3, ($v0) +/* 08F910 8008ED10 AC4C0008 */ sw $t4, 8($v0) +/* 08F914 8008ED14 AC4D0010 */ sw $t5, 0x10($v0) +/* 08F918 8008ED18 AC6E0000 */ sw $t6, ($v1) +/* 08F91C 8008ED1C AC6F0008 */ sw $t7, 8($v1) +/* 08F920 8008ED20 AC780010 */ sw $t8, 0x10($v1) +.L8008ED24: +/* 08F924 8008ED24 8FB20058 */ lw $s2, 0x58($sp) +/* 08F928 8008ED28 00008825 */ move $s1, $zero +/* 08F92C 8008ED2C 267E0001 */ addiu $fp, $s3, 1 +.L8008ED30: +/* 08F930 8008ED30 1620000B */ bnez $s1, .L8008ED60 +/* 08F934 8008ED34 A6550000 */ sh $s5, ($s2) +/* 08F938 8008ED38 2A610004 */ slti $at, $s3, 4 +/* 08F93C 8008ED3C 10200009 */ beqz $at, .L8008ED64 +/* 08F940 8008ED40 2A210004 */ slti $at, $s1, 4 +/* 08F944 8008ED44 02700019 */ multu $s3, $s0 +/* 08F948 8008ED48 00004812 */ mflo $t1 +/* 08F94C 8008ED4C 01315021 */ addu $t2, $t1, $s1 +/* 08F950 8008ED50 01575821 */ addu $t3, $t2, $s7 +/* 08F954 8008ED54 816C0000 */ lb $t4, ($t3) +/* 08F958 8008ED58 1000004A */ b .L8008EE84 +/* 08F95C 8008ED5C A64C0000 */ sh $t4, ($s2) +.L8008ED60: +/* 08F960 8008ED60 2A210004 */ slti $at, $s1, 4 +.L8008ED64: +/* 08F964 8008ED64 10200013 */ beqz $at, .L8008EDB4 +/* 08F968 8008ED68 00000000 */ nop +/* 08F96C 8008ED6C 02700019 */ multu $s3, $s0 +/* 08F970 8008ED70 00006812 */ mflo $t5 +/* 08F974 8008ED74 01B17021 */ addu $t6, $t5, $s1 +/* 08F978 8008ED78 01D77821 */ addu $t7, $t6, $s7 +/* 08F97C 8008ED7C 81E20000 */ lb $v0, ($t7) +/* 08F980 8008ED80 00000000 */ nop +/* 08F984 8008ED84 12A2003F */ beq $s5, $v0, .L8008EE84 +/* 08F988 8008ED88 00000000 */ nop +/* 08F98C 8008ED8C 8E980004 */ lw $t8, 4($s4) +/* 08F990 8008ED90 0002C880 */ sll $t9, $v0, 2 +/* 08F994 8008ED94 03194821 */ addu $t1, $t8, $t9 +/* 08F998 8008ED98 8D2A0000 */ lw $t2, ($t1) +/* 08F99C 8008ED9C 00000000 */ nop +/* 08F9A0 8008EDA0 314B0001 */ andi $t3, $t2, 1 +/* 08F9A4 8008EDA4 11600037 */ beqz $t3, .L8008EE84 +/* 08F9A8 8008EDA8 00000000 */ nop +/* 08F9AC 8008EDAC 10000035 */ b .L8008EE84 +/* 08F9B0 8008EDB0 A6420000 */ sh $v0, ($s2) +.L8008EDB4: +/* 08F9B4 8008EDB4 16360025 */ bne $s1, $s6, .L8008EE4C +/* 08F9B8 8008EDB8 24010005 */ li $at, 5 +/* 08F9BC 8008EDBC 00133080 */ sll $a2, $s3, 2 +/* 08F9C0 8008EDC0 00D33023 */ subu $a2, $a2, $s3 +/* 08F9C4 8008EDC4 00063040 */ sll $a2, $a2, 1 +/* 08F9C8 8008EDC8 00D71021 */ addu $v0, $a2, $s7 +/* 08F9CC 8008EDCC 00002025 */ move $a0, $zero +/* 08F9D0 8008EDD0 00002825 */ move $a1, $zero +.L8008EDD4: +/* 08F9D4 8008EDD4 80430000 */ lb $v1, ($v0) +/* 08F9D8 8008EDD8 24840001 */ addiu $a0, $a0, 1 +/* 08F9DC 8008EDDC 12A3000A */ beq $s5, $v1, .L8008EE08 +/* 08F9E0 8008EDE0 28810004 */ slti $at, $a0, 4 +/* 08F9E4 8008EDE4 8E8C0004 */ lw $t4, 4($s4) +/* 08F9E8 8008EDE8 00036880 */ sll $t5, $v1, 2 +/* 08F9EC 8008EDEC 018D7021 */ addu $t6, $t4, $t5 +/* 08F9F0 8008EDF0 8DCF0000 */ lw $t7, ($t6) +/* 08F9F4 8008EDF4 00000000 */ nop +/* 08F9F8 8008EDF8 31F80006 */ andi $t8, $t7, 6 +/* 08F9FC 8008EDFC 16180002 */ bne $s0, $t8, .L8008EE08 +/* 08FA00 8008EE00 00000000 */ nop +/* 08FA04 8008EE04 24A50001 */ addiu $a1, $a1, 1 +.L8008EE08: +/* 08FA08 8008EE08 1420FFF2 */ bnez $at, .L8008EDD4 +/* 08FA0C 8008EE0C 24420001 */ addiu $v0, $v0, 1 +/* 08FA10 8008EE10 14B60009 */ bne $a1, $s6, .L8008EE38 +/* 08FA14 8008EE14 00D15821 */ addu $t3, $a2, $s1 +/* 08FA18 8008EE18 12760007 */ beq $s3, $s6, .L8008EE38 +/* 08FA1C 8008EE1C 24190082 */ li $t9, 130 +/* 08FA20 8008EE20 9689000C */ lhu $t1, 0xc($s4) +/* 08FA24 8008EE24 02791004 */ sllv $v0, $t9, $s3 +/* 08FA28 8008EE28 01225024 */ and $t2, $t1, $v0 +/* 08FA2C 8008EE2C 104A0002 */ beq $v0, $t2, .L8008EE38 +/* 08FA30 8008EE30 00000000 */ nop +/* 08FA34 8008EE34 00002825 */ move $a1, $zero +.L8008EE38: +/* 08FA38 8008EE38 14B60012 */ bne $a1, $s6, .L8008EE84 +/* 08FA3C 8008EE3C 01776021 */ addu $t4, $t3, $s7 +/* 08FA40 8008EE40 818D0000 */ lb $t5, ($t4) +/* 08FA44 8008EE44 1000000F */ b .L8008EE84 +/* 08FA48 8008EE48 A64D0000 */ sh $t5, ($s2) +.L8008EE4C: +/* 08FA4C 8008EE4C 1621000D */ bne $s1, $at, .L8008EE84 +/* 08FA50 8008EE50 240F0001 */ li $t7, 1 +/* 08FA54 8008EE54 968E0008 */ lhu $t6, 8($s4) +/* 08FA58 8008EE58 03CFC004 */ sllv $t8, $t7, $fp +/* 08FA5C 8008EE5C 01D8C824 */ and $t9, $t6, $t8 +/* 08FA60 8008EE60 13200008 */ beqz $t9, .L8008EE84 +/* 08FA64 8008EE64 00000000 */ nop +/* 08FA68 8008EE68 02700019 */ multu $s3, $s0 +/* 08FA6C 8008EE6C 00004812 */ mflo $t1 +/* 08FA70 8008EE70 01315021 */ addu $t2, $t1, $s1 +/* 08FA74 8008EE74 01575821 */ addu $t3, $t2, $s7 +/* 08FA78 8008EE78 816C0000 */ lb $t4, ($t3) +/* 08FA7C 8008EE7C 00000000 */ nop +/* 08FA80 8008EE80 A64C0000 */ sh $t4, ($s2) +.L8008EE84: +/* 08FA84 8008EE84 0C027B18 */ jal is_adventure_two_unlocked +/* 08FA88 8008EE88 00000000 */ nop +/* 08FA8C 8008EE8C 10400008 */ beqz $v0, .L8008EEB0 +/* 08FA90 8008EE90 00000000 */ nop +/* 08FA94 8008EE94 02700019 */ multu $s3, $s0 +/* 08FA98 8008EE98 00006812 */ mflo $t5 +/* 08FA9C 8008EE9C 01B17821 */ addu $t7, $t5, $s1 +/* 08FAA0 8008EEA0 01F77021 */ addu $t6, $t7, $s7 +/* 08FAA4 8008EEA4 81D80000 */ lb $t8, ($t6) +/* 08FAA8 8008EEA8 00000000 */ nop +/* 08FAAC 8008EEAC A6580000 */ sh $t8, ($s2) +.L8008EEB0: +/* 08FAB0 8008EEB0 26310001 */ addiu $s1, $s1, 1 +/* 08FAB4 8008EEB4 1630FF9E */ bne $s1, $s0, .L8008ED30 +/* 08FAB8 8008EEB8 26520002 */ addiu $s2, $s2, 2 +/* 08FABC 8008EEBC 8FB90058 */ lw $t9, 0x58($sp) +/* 08FAC0 8008EEC0 24010005 */ li $at, 5 +/* 08FAC4 8008EEC4 2729000C */ addiu $t1, $t9, 0xc +/* 08FAC8 8008EEC8 AFA90058 */ sw $t1, 0x58($sp) +/* 08FACC 8008EECC 17C1FF95 */ bne $fp, $at, .L8008ED24 +/* 08FAD0 8008EED0 03C09825 */ move $s3, $fp +/* 08FAD4 8008EED4 3C028012 */ lui $v0, %hi(D_801269CC) # $v0, 0x8012 +/* 08FAD8 8008EED8 8C4269CC */ lw $v0, %lo(D_801269CC)($v0) +/* 08FADC 8008EEDC 3C0C8012 */ lui $t4, %hi(D_801269C8) # $t4, 0x8012 +/* 08FAE0 8008EEE0 00025080 */ sll $t2, $v0, 2 +/* 08FAE4 8008EEE4 8D8C69C8 */ lw $t4, %lo(D_801269C8)($t4) +/* 08FAE8 8008EEE8 3C078012 */ lui $a3, %hi(D_801268E8) # $a3, 0x8012 +/* 08FAEC 8008EEEC 01425023 */ subu $t2, $t2, $v0 +/* 08FAF0 8008EEF0 24E768E8 */ addiu $a3, %lo(D_801268E8) # addiu $a3, $a3, 0x68e8 +/* 08FAF4 8008EEF4 000A5080 */ sll $t2, $t2, 2 +/* 08FAF8 8008EEF8 00EA5821 */ addu $t3, $a3, $t2 +/* 08FAFC 8008EEFC 000C6840 */ sll $t5, $t4, 1 +/* 08FB00 8008EF00 016D7821 */ addu $t7, $t3, $t5 +/* 08FB04 8008EF04 85EE0000 */ lh $t6, ($t7) +/* 08FB08 8008EF08 3C03800E */ lui $v1, %hi(gTrackIdForPreview) # $v1, 0x800e +/* 08FB0C 8008EF0C 3C10800E */ lui $s0, %hi(gTrackSelectRow) # $s0, 0x800e +/* 08FB10 8008EF10 2610F4C8 */ addiu $s0, %lo(gTrackSelectRow) # addiu $s0, $s0, -0xb38 +/* 08FB14 8008EF14 2463F4C4 */ addiu $v1, %lo(gTrackIdForPreview) # addiu $v1, $v1, -0xb3c +/* 08FB18 8008EF18 24580001 */ addiu $t8, $v0, 1 +/* 08FB1C 8008EF1C AE180000 */ sw $t8, ($s0) +/* 08FB20 8008EF20 16AE000E */ bne $s5, $t6, .L8008EF5C +/* 08FB24 8008EF24 AC6E0000 */ sw $t6, ($v1) +/* 08FB28 8008EF28 84E40000 */ lh $a0, ($a3) +/* 08FB2C 8008EF2C 3C028012 */ lui $v0, %hi(D_801263D0) # $v0, 0x8012 +/* 08FB30 8008EF30 244263D0 */ addiu $v0, %lo(D_801263D0) # addiu $v0, $v0, 0x63d0 +/* 08FB34 8008EF34 2405FFFF */ li $a1, -1 +/* 08FB38 8008EF38 24060001 */ li $a2, 1 +/* 08FB3C 8008EF3C 0C01B8BA */ jal load_level_for_menu +/* 08FB40 8008EF40 AC440000 */ sw $a0, ($v0) +/* 08FB44 8008EF44 240A0001 */ li $t2, 1 +/* 08FB48 8008EF48 AE0A0000 */ sw $t2, ($s0) +/* 08FB4C 8008EF4C 3C018012 */ lui $at, %hi(gSelectedTrackX) # $at, 0x8012 +/* 08FB50 8008EF50 AC2069F4 */ sw $zero, %lo(gSelectedTrackX)($at) +/* 08FB54 8008EF54 3C018012 */ lui $at, %hi(gSelectedTrackY) # $at, 0x8012 +/* 08FB58 8008EF58 AC2069F8 */ sw $zero, %lo(gSelectedTrackY)($at) +.L8008EF5C: +/* 08FB5C 8008EF5C 0C031525 */ jal assign_dialogue_box_id +/* 08FB60 8008EF60 24040007 */ li $a0, 7 +/* 08FB64 8008EF64 0C01FFFB */ jal func_8007FFEC +/* 08FB68 8008EF68 24040002 */ li $a0, 2 +/* 08FB6C 8008EF6C 3C018012 */ lui $at, %hi(D_80126840) # $at, 0x8012 +/* 08FB70 8008EF70 AC206840 */ sw $zero, %lo(D_80126840)($at) +/* 08FB74 8008EF74 3C10800E */ lui $s0, %hi(sMenuMusicVolume) # $s0, 0x800e +/* 08FB78 8008EF78 3C018012 */ lui $at, %hi(D_80126848) # $at, 0x8012 +/* 08FB7C 8008EF7C 2610F760 */ addiu $s0, %lo(sMenuMusicVolume) # addiu $s0, $s0, -0x8a0 +/* 08FB80 8008EF80 AC206848 */ sw $zero, %lo(D_80126848)($at) +/* 08FB84 8008EF84 AE000000 */ sw $zero, ($s0) +/* 08FB88 8008EF88 0C0002F8 */ jal set_music_player_voice_limit +/* 08FB8C 8008EF8C 24040018 */ li $a0, 24 +/* 08FB90 8008EF90 0C000307 */ jal func_80000C1C +/* 08FB94 8008EF94 00000000 */ nop +/* 08FB98 8008EF98 0C0002CD */ jal play_music +/* 08FB9C 8008EF9C 24040018 */ li $a0, 24 +/* 08FBA0 8008EFA0 92040003 */ lbu $a0, 3($s0) +/* 08FBA4 8008EFA4 0C000664 */ jal set_relative_volume_for_music +/* 08FBA8 8008EFA8 00000000 */ nop +/* 08FBAC 8008EFAC 0C0002C6 */ jal func_80000B18 +/* 08FBB0 8008EFB0 00000000 */ nop +/* 08FBB4 8008EFB4 0C01BD59 */ jal set_D_800DD430 +/* 08FBB8 8008EFB8 24040001 */ li $a0, 1 +/* 08FBBC 8008EFBC 3C0C800E */ lui $t4, %hi(D_800E0418) # $t4, 0x800e +/* 08FBC0 8008EFC0 8D8C0418 */ lw $t4, %lo(D_800E0418)($t4) +/* 08FBC4 8008EFC4 3C01800E */ lui $at, %hi(gIsInAdventureTwo) # $at, 0x800e +/* 08FBC8 8008EFC8 3C0B800E */ lui $t3, %hi(gMultiplayerSelectedNumberOfRacers) # $t3, 0x800e +/* 08FBCC 8008EFCC 8D6B0410 */ lw $t3, %lo(gMultiplayerSelectedNumberOfRacers)($t3) +/* 08FBD0 8008EFD0 8FBF0044 */ lw $ra, 0x44($sp) +/* 08FBD4 8008EFD4 AC2CF494 */ sw $t4, %lo(gIsInAdventureTwo)($at) +/* 08FBD8 8008EFD8 3C018012 */ lui $at, %hi(gMultiplayerSelectedNumberOfRacersCopy) # $at, 0x8012 +/* 08FBDC 8008EFDC 8FB00020 */ lw $s0, 0x20($sp) +/* 08FBE0 8008EFE0 8FB10024 */ lw $s1, 0x24($sp) +/* 08FBE4 8008EFE4 8FB20028 */ lw $s2, 0x28($sp) +/* 08FBE8 8008EFE8 8FB3002C */ lw $s3, 0x2c($sp) +/* 08FBEC 8008EFEC 8FB40030 */ lw $s4, 0x30($sp) +/* 08FBF0 8008EFF0 8FB50034 */ lw $s5, 0x34($sp) +/* 08FBF4 8008EFF4 8FB60038 */ lw $s6, 0x38($sp) +/* 08FBF8 8008EFF8 8FB7003C */ lw $s7, 0x3c($sp) +/* 08FBFC 8008EFFC 8FBE0040 */ lw $fp, 0x40($sp) +/* 08FC00 8008F000 27BD0080 */ addiu $sp, $sp, 0x80 +/* 08FC04 8008F004 03E00008 */ jr $ra +/* 08FC08 8008F008 AC2B6548 */ sw $t3, %lo(gMultiplayerSelectedNumberOfRacersCopy)($at) + diff --git a/asm/non_matchings/racer/func_80046524.s b/asm/non_matchings/racer/func_80046524.s index ad59f51b..baf66223 100644 --- a/asm/non_matchings/racer/func_80046524.s +++ b/asm/non_matchings/racer/func_80046524.s @@ -1990,7 +1990,7 @@ glabel func_80046524 /* 048D80 80048180 27A600D4 */ addiu $a2, $sp, 0xd4 /* 048D84 80048184 E7A60118 */ swc1 $f6, 0x118($sp) /* 048D88 80048188 C62C0010 */ lwc1 $f12, 0x10($s1) -/* 048D8C 8004818C 0C00AB42 */ jal func_8002AD08 +/* 048D8C 8004818C 0C00AB42 */ jal get_wave_properties /* 048D90 80048190 E7AE0114 */ swc1 $f14, 0x114($sp) /* 048D94 80048194 00023E00 */ sll $a3, $v0, 0x18 /* 048D98 80048198 00025E00 */ sll $t3, $v0, 0x18 diff --git a/asm/non_matchings/thread0_epc/thread0_create.s b/asm/non_matchings/thread0_epc/thread0_create.s deleted file mode 100644 index 8ca93ae5..00000000 --- a/asm/non_matchings/thread0_epc/thread0_create.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel thread0_create -/* 0B7B50 800B6F50 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0B7B54 800B6F54 3C0E8013 */ lui $t6, %hi(D_801295E0) # $t6, 0x8013 -/* 0B7B58 800B6F58 AFBF001C */ sw $ra, 0x1c($sp) -/* 0B7B5C 800B6F5C 25CE95E0 */ addiu $t6, %lo(D_801295E0) # addiu $t6, $t6, -0x6a20 -/* 0B7B60 800B6F60 3C048013 */ lui $a0, %hi(D_801295E0) # $a0, 0x8013 -/* 0B7B64 800B6F64 3C06800B */ lui $a2, %hi(thread0_Main) # $a2, 0x800b -/* 0B7B68 800B6F68 240F00FF */ li $t7, 255 -/* 0B7B6C 800B6F6C AFAF0014 */ sw $t7, 0x14($sp) -/* 0B7B70 800B6F70 24C66FC4 */ addiu $a2, %lo(thread0_Main) # addiu $a2, $a2, 0x6fc4 -/* 0B7B74 800B6F74 248495E0 */ addiu $a0, %lo(D_801295E0) # addiu $a0, $a0, -0x6a20 -/* 0B7B78 800B6F78 AFAE0010 */ sw $t6, 0x10($sp) -/* 0B7B7C 800B6F7C 00002825 */ move $a1, $zero -/* 0B7B80 800B6F80 0C032214 */ jal osCreateThread -/* 0B7B84 800B6F84 00003825 */ move $a3, $zero -/* 0B7B88 800B6F88 3C048013 */ lui $a0, %hi(D_801295E0) # $a0, 0x8013 -/* 0B7B8C 800B6F8C 0C032268 */ jal osStartThread -/* 0B7B90 800B6F90 248495E0 */ addiu $a0, %lo(D_801295E0) # addiu $a0, $a0, -0x6a20 -/* 0B7B94 800B6F94 3C028013 */ lui $v0, %hi(D_80129FB0) # $v0, 0x8013 -/* 0B7B98 800B6F98 3C048013 */ lui $a0, %hi(D_80129FBC) # $a0, 0x8013 -/* 0B7B9C 800B6F9C 24849FBC */ addiu $a0, %lo(D_80129FBC) # addiu $a0, $a0, -0x6044 -/* 0B7BA0 800B6FA0 24429FB0 */ addiu $v0, %lo(D_80129FB0) # addiu $v0, $v0, -0x6050 -/* 0B7BA4 800B6FA4 2403FFFF */ li $v1, -1 -.L800B6FA8: -/* 0B7BA8 800B6FA8 24420004 */ addiu $v0, $v0, 4 -/* 0B7BAC 800B6FAC 1444FFFE */ bne $v0, $a0, .L800B6FA8 -/* 0B7BB0 800B6FB0 AC43FFFC */ sw $v1, -4($v0) -/* 0B7BB4 800B6FB4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0B7BB8 800B6FB8 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0B7BBC 800B6FBC 03E00008 */ jr $ra -/* 0B7BC0 800B6FC0 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0255E0/func_8002AD08.s b/asm/non_matchings/unknown_0255E0/func_8002AD08.s deleted file mode 100644 index 6b04330a..00000000 --- a/asm/non_matchings/unknown_0255E0/func_8002AD08.s +++ /dev/null @@ -1,287 +0,0 @@ -glabel func_8002AD08 -/* 02B908 8002AD08 3C028012 */ lui $v0, %hi(D_8011D308) # $v0, 0x8012 -/* 02B90C 8002AD0C 8042D308 */ lb $v0, %lo(D_8011D308)($v0) -/* 02B910 8002AD10 10C00007 */ beqz $a2, .L8002AD30 -/* 02B914 8002AD14 00001825 */ move $v1, $zero -/* 02B918 8002AD18 44800000 */ mtc1 $zero, $f0 -/* 02B91C 8002AD1C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 02B920 8002AD20 44812000 */ mtc1 $at, $f4 -/* 02B924 8002AD24 E4C00000 */ swc1 $f0, ($a2) -/* 02B928 8002AD28 E4C00008 */ swc1 $f0, 8($a2) -/* 02B92C 8002AD2C E4C40004 */ swc1 $f4, 4($a2) -.L8002AD30: -/* 02B930 8002AD30 18400044 */ blez $v0, .L8002AE44 -/* 02B934 8002AD34 00002025 */ move $a0, $zero -/* 02B938 8002AD38 30490003 */ andi $t1, $v0, 3 -/* 02B93C 8002AD3C 11200013 */ beqz $t1, .L8002AD8C -/* 02B940 8002AD40 01203825 */ move $a3, $t1 -/* 02B944 8002AD44 3C0F8012 */ lui $t7, %hi(D_8011D2B8) # $t7, 0x8012 -/* 02B948 8002AD48 25EFD2B8 */ addiu $t7, %lo(D_8011D2B8) # addiu $t7, $t7, -0x2d48 -/* 02B94C 8002AD4C 00007080 */ sll $t6, $zero, 2 -/* 02B950 8002AD50 01CF4021 */ addu $t0, $t6, $t7 -/* 02B954 8002AD54 240C000E */ li $t4, 14 -/* 02B958 8002AD58 240B000B */ li $t3, 11 -.L8002AD5C: -/* 02B95C 8002AD5C 8D180000 */ lw $t8, ($t0) -/* 02B960 8002AD60 24630001 */ addiu $v1, $v1, 1 -/* 02B964 8002AD64 830A0010 */ lb $t2, 0x10($t8) -/* 02B968 8002AD68 00000000 */ nop -/* 02B96C 8002AD6C 116A0003 */ beq $t3, $t2, .L8002AD7C -/* 02B970 8002AD70 00000000 */ nop -/* 02B974 8002AD74 158A0002 */ bne $t4, $t2, .L8002AD80 -/* 02B978 8002AD78 00000000 */ nop -.L8002AD7C: -/* 02B97C 8002AD7C 24840001 */ addiu $a0, $a0, 1 -.L8002AD80: -/* 02B980 8002AD80 14E3FFF6 */ bne $a3, $v1, .L8002AD5C -/* 02B984 8002AD84 25080004 */ addiu $t0, $t0, 4 -/* 02B988 8002AD88 1062002E */ beq $v1, $v0, .L8002AE44 -.L8002AD8C: -/* 02B98C 8002AD8C 3C0D8012 */ lui $t5, %hi(D_8011D2B8) # $t5, 0x8012 -/* 02B990 8002AD90 25ADD2B8 */ addiu $t5, %lo(D_8011D2B8) # addiu $t5, $t5, -0x2d48 -/* 02B994 8002AD94 0002C880 */ sll $t9, $v0, 2 -/* 02B998 8002AD98 00037080 */ sll $t6, $v1, 2 -/* 02B99C 8002AD9C 01CD4021 */ addu $t0, $t6, $t5 -/* 02B9A0 8002ADA0 032D3821 */ addu $a3, $t9, $t5 -/* 02B9A4 8002ADA4 240B000B */ li $t3, 11 -/* 02B9A8 8002ADA8 240C000E */ li $t4, 14 -.L8002ADAC: -/* 02B9AC 8002ADAC 8D0F0000 */ lw $t7, ($t0) -/* 02B9B0 8002ADB0 00000000 */ nop -/* 02B9B4 8002ADB4 81EA0010 */ lb $t2, 0x10($t7) -/* 02B9B8 8002ADB8 00000000 */ nop -/* 02B9BC 8002ADBC 116A0003 */ beq $t3, $t2, .L8002ADCC -/* 02B9C0 8002ADC0 00000000 */ nop -/* 02B9C4 8002ADC4 158A0002 */ bne $t4, $t2, .L8002ADD0 -/* 02B9C8 8002ADC8 00000000 */ nop -.L8002ADCC: -/* 02B9CC 8002ADCC 24840001 */ addiu $a0, $a0, 1 -.L8002ADD0: -/* 02B9D0 8002ADD0 8D180004 */ lw $t8, 4($t0) -/* 02B9D4 8002ADD4 00000000 */ nop -/* 02B9D8 8002ADD8 830A0010 */ lb $t2, 0x10($t8) -/* 02B9DC 8002ADDC 00000000 */ nop -/* 02B9E0 8002ADE0 116A0003 */ beq $t3, $t2, .L8002ADF0 -/* 02B9E4 8002ADE4 00000000 */ nop -/* 02B9E8 8002ADE8 158A0002 */ bne $t4, $t2, .L8002ADF4 -/* 02B9EC 8002ADEC 00000000 */ nop -.L8002ADF0: -/* 02B9F0 8002ADF0 24840001 */ addiu $a0, $a0, 1 -.L8002ADF4: -/* 02B9F4 8002ADF4 8D190008 */ lw $t9, 8($t0) -/* 02B9F8 8002ADF8 00000000 */ nop -/* 02B9FC 8002ADFC 83230010 */ lb $v1, 0x10($t9) -/* 02BA00 8002AE00 00000000 */ nop -/* 02BA04 8002AE04 11630003 */ beq $t3, $v1, .L8002AE14 -/* 02BA08 8002AE08 00000000 */ nop -/* 02BA0C 8002AE0C 15830002 */ bne $t4, $v1, .L8002AE18 -/* 02BA10 8002AE10 00000000 */ nop -.L8002AE14: -/* 02BA14 8002AE14 24840001 */ addiu $a0, $a0, 1 -.L8002AE18: -/* 02BA18 8002AE18 8D0E000C */ lw $t6, 0xc($t0) -/* 02BA1C 8002AE1C 25080010 */ addiu $t0, $t0, 0x10 -/* 02BA20 8002AE20 81C30010 */ lb $v1, 0x10($t6) -/* 02BA24 8002AE24 00000000 */ nop -/* 02BA28 8002AE28 11630003 */ beq $t3, $v1, .L8002AE38 -/* 02BA2C 8002AE2C 00000000 */ nop -/* 02BA30 8002AE30 15830002 */ bne $t4, $v1, .L8002AE3C -/* 02BA34 8002AE34 00000000 */ nop -.L8002AE38: -/* 02BA38 8002AE38 24840001 */ addiu $a0, $a0, 1 -.L8002AE3C: -/* 02BA3C 8002AE3C 1507FFDB */ bne $t0, $a3, .L8002ADAC -/* 02BA40 8002AE40 00000000 */ nop -.L8002AE44: -/* 02BA44 8002AE44 240B000B */ li $t3, 11 -/* 02BA48 8002AE48 14800003 */ bnez $a0, .L8002AE58 -/* 02BA4C 8002AE4C 240C000E */ li $t4, 14 -/* 02BA50 8002AE50 03E00008 */ jr $ra -/* 02BA54 8002AE54 00001025 */ move $v0, $zero - -.L8002AE58: -/* 02BA58 8002AE58 2407FFFF */ li $a3, -1 -/* 02BA5C 8002AE5C 18400084 */ blez $v0, .L8002B070 -/* 02BA60 8002AE60 00001825 */ move $v1, $zero -/* 02BA64 8002AE64 30480001 */ andi $t0, $v0, 1 -/* 02BA68 8002AE68 11000022 */ beqz $t0, .L8002AEF4 -/* 02BA6C 8002AE6C 3C0D8012 */ lui $t5, %hi(D_8011D2B8) # $t5, 0x8012 -/* 02BA70 8002AE70 8DADD2B8 */ lw $t5, %lo(D_8011D2B8)($t5) -/* 02BA74 8002AE74 3C014039 */ li $at, 0x40390000 # 2.890625 -/* 02BA78 8002AE78 81A30010 */ lb $v1, 0x10($t5) -/* 02BA7C 8002AE7C 3C0F8012 */ lui $t7, %hi(D_8011D2B8) # $t7, 0x8012 -/* 02BA80 8002AE80 11630003 */ beq $t3, $v1, .L8002AE90 -/* 02BA84 8002AE84 00000000 */ nop -/* 02BA88 8002AE88 15830019 */ bne $t4, $v1, .L8002AEF0 -/* 02BA8C 8002AE8C 24030001 */ li $v1, 1 -.L8002AE90: -/* 02BA90 8002AE90 8DEFD2B8 */ lw $t7, %lo(D_8011D2B8)($t7) -/* 02BA94 8002AE94 44811800 */ mtc1 $at, $f3 -/* 02BA98 8002AE98 C5E80000 */ lwc1 $f8, ($t7) -/* 02BA9C 8002AE9C 44801000 */ mtc1 $zero, $f2 -/* 02BAA0 8002AEA0 460042A1 */ cvt.d.s $f10, $f8 -/* 02BAA4 8002AEA4 46225400 */ add.d $f16, $f10, $f2 -/* 02BAA8 8002AEA8 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 02BAAC 8002AEAC 460061A1 */ cvt.d.s $f6, $f12 -/* 02BAB0 8002AEB0 4630303C */ c.lt.d $f6, $f16 -/* 02BAB4 8002AEB4 00000000 */ nop -/* 02BAB8 8002AEB8 4500000D */ bc1f .L8002AEF0 -/* 02BABC 8002AEBC 24030001 */ li $v1, 1 -/* 02BAC0 8002AEC0 C5E40008 */ lwc1 $f4, 8($t7) -/* 02BAC4 8002AEC4 44819800 */ mtc1 $at, $f19 -/* 02BAC8 8002AEC8 44809000 */ mtc1 $zero, $f18 -/* 02BACC 8002AECC 46002221 */ cvt.d.s $f8, $f4 -/* 02BAD0 8002AED0 4628903C */ c.lt.d $f18, $f8 -/* 02BAD4 8002AED4 24010001 */ li $at, 1 -/* 02BAD8 8002AED8 45010003 */ bc1t .L8002AEE8 -/* 02BADC 8002AEDC 00000000 */ nop -/* 02BAE0 8002AEE0 14810003 */ bne $a0, $at, .L8002AEF0 -/* 02BAE4 8002AEE4 24030001 */ li $v1, 1 -.L8002AEE8: -/* 02BAE8 8002AEE8 00003825 */ move $a3, $zero -/* 02BAEC 8002AEEC 24030001 */ li $v1, 1 -.L8002AEF0: -/* 02BAF0 8002AEF0 1062005F */ beq $v1, $v0, .L8002B070 -.L8002AEF4: -/* 02BAF4 8002AEF4 3C014039 */ li $at, 0x40390000 # 2.890625 -/* 02BAF8 8002AEF8 44811800 */ mtc1 $at, $f3 -/* 02BAFC 8002AEFC 3C014034 */ li $at, 0x40340000 # 2.812500 -/* 02BB00 8002AF00 3C198012 */ lui $t9, %hi(D_8011D2B8) # $t9, 0x8012 -/* 02BB04 8002AF04 2739D2B8 */ addiu $t9, %lo(D_8011D2B8) # addiu $t9, $t9, -0x2d48 -/* 02BB08 8002AF08 0003C080 */ sll $t8, $v1, 2 -/* 02BB0C 8002AF0C 44817800 */ mtc1 $at, $f15 -/* 02BB10 8002AF10 44801000 */ mtc1 $zero, $f2 -/* 02BB14 8002AF14 44807000 */ mtc1 $zero, $f14 -/* 02BB18 8002AF18 03194021 */ addu $t0, $t8, $t9 -.L8002AF1C: -/* 02BB1C 8002AF1C 8D090000 */ lw $t1, ($t0) -/* 02BB20 8002AF20 00000000 */ nop -/* 02BB24 8002AF24 812A0010 */ lb $t2, 0x10($t1) -/* 02BB28 8002AF28 00000000 */ nop -/* 02BB2C 8002AF2C 116A0003 */ beq $t3, $t2, .L8002AF3C -/* 02BB30 8002AF30 00000000 */ nop -/* 02BB34 8002AF34 158A0016 */ bne $t4, $t2, .L8002AF90 -/* 02BB38 8002AF38 00000000 */ nop -.L8002AF3C: -/* 02BB3C 8002AF3C C5260000 */ lwc1 $f6, ($t1) -/* 02BB40 8002AF40 460062A1 */ cvt.d.s $f10, $f12 -/* 02BB44 8002AF44 46003421 */ cvt.d.s $f16, $f6 -/* 02BB48 8002AF48 46228100 */ add.d $f4, $f16, $f2 -/* 02BB4C 8002AF4C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 02BB50 8002AF50 4624503C */ c.lt.d $f10, $f4 -/* 02BB54 8002AF54 00000000 */ nop -/* 02BB58 8002AF58 4500001A */ bc1f .L8002AFC4 -/* 02BB5C 8002AF5C 00000000 */ nop -/* 02BB60 8002AF60 C5280008 */ lwc1 $f8, 8($t1) -/* 02BB64 8002AF64 44819800 */ mtc1 $at, $f19 -/* 02BB68 8002AF68 44809000 */ mtc1 $zero, $f18 -/* 02BB6C 8002AF6C 460041A1 */ cvt.d.s $f6, $f8 -/* 02BB70 8002AF70 4626903C */ c.lt.d $f18, $f6 -/* 02BB74 8002AF74 24010001 */ li $at, 1 -/* 02BB78 8002AF78 45010003 */ bc1t .L8002AF88 -/* 02BB7C 8002AF7C 00000000 */ nop -/* 02BB80 8002AF80 14810010 */ bne $a0, $at, .L8002AFC4 -/* 02BB84 8002AF84 00000000 */ nop -.L8002AF88: -/* 02BB88 8002AF88 1000000E */ b .L8002AFC4 -/* 02BB8C 8002AF8C 00603825 */ move $a3, $v1 -.L8002AF90: -/* 02BB90 8002AF90 04E0000C */ bltz $a3, .L8002AFC4 -/* 02BB94 8002AF94 28810002 */ slti $at, $a0, 2 -/* 02BB98 8002AF98 1420000A */ bnez $at, .L8002AFC4 -/* 02BB9C 8002AF9C 00000000 */ nop -/* 02BBA0 8002AFA0 C52A0000 */ lwc1 $f10, ($t1) -/* 02BBA4 8002AFA4 46006421 */ cvt.d.s $f16, $f12 -/* 02BBA8 8002AFA8 46005121 */ cvt.d.s $f4, $f10 -/* 02BBAC 8002AFAC 462E2201 */ sub.d $f8, $f4, $f14 -/* 02BBB0 8002AFB0 4628803C */ c.lt.d $f16, $f8 -/* 02BBB4 8002AFB4 00000000 */ nop -/* 02BBB8 8002AFB8 45000002 */ bc1f .L8002AFC4 -/* 02BBBC 8002AFBC 00000000 */ nop -/* 02BBC0 8002AFC0 2407FFFF */ li $a3, -1 -.L8002AFC4: -/* 02BBC4 8002AFC4 8D090004 */ lw $t1, 4($t0) -/* 02BBC8 8002AFC8 00000000 */ nop -/* 02BBCC 8002AFCC 812A0010 */ lb $t2, 0x10($t1) -/* 02BBD0 8002AFD0 C5200000 */ lwc1 $f0, ($t1) -/* 02BBD4 8002AFD4 116A0003 */ beq $t3, $t2, .L8002AFE4 -/* 02BBD8 8002AFD8 00000000 */ nop -/* 02BBDC 8002AFDC 158A0015 */ bne $t4, $t2, .L8002B034 -/* 02BBE0 8002AFE0 00000000 */ nop -.L8002AFE4: -/* 02BBE4 8002AFE4 460001A1 */ cvt.d.s $f6, $f0 -/* 02BBE8 8002AFE8 46223280 */ add.d $f10, $f6, $f2 -/* 02BBEC 8002AFEC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 02BBF0 8002AFF0 460064A1 */ cvt.d.s $f18, $f12 -/* 02BBF4 8002AFF4 462A903C */ c.lt.d $f18, $f10 -/* 02BBF8 8002AFF8 00000000 */ nop -/* 02BBFC 8002AFFC 45000019 */ bc1f .L8002B064 -/* 02BC00 8002B000 00000000 */ nop -/* 02BC04 8002B004 C5300008 */ lwc1 $f16, 8($t1) -/* 02BC08 8002B008 44812800 */ mtc1 $at, $f5 -/* 02BC0C 8002B00C 44802000 */ mtc1 $zero, $f4 -/* 02BC10 8002B010 46008221 */ cvt.d.s $f8, $f16 -/* 02BC14 8002B014 4628203C */ c.lt.d $f4, $f8 -/* 02BC18 8002B018 24010001 */ li $at, 1 -/* 02BC1C 8002B01C 45010003 */ bc1t .L8002B02C -/* 02BC20 8002B020 00000000 */ nop -/* 02BC24 8002B024 1481000F */ bne $a0, $at, .L8002B064 -/* 02BC28 8002B028 00000000 */ nop -.L8002B02C: -/* 02BC2C 8002B02C 1000000D */ b .L8002B064 -/* 02BC30 8002B030 24670001 */ addiu $a3, $v1, 1 -.L8002B034: -/* 02BC34 8002B034 04E0000B */ bltz $a3, .L8002B064 -/* 02BC38 8002B038 28810002 */ slti $at, $a0, 2 -/* 02BC3C 8002B03C 14200009 */ bnez $at, .L8002B064 -/* 02BC40 8002B040 00000000 */ nop -/* 02BC44 8002B044 460004A1 */ cvt.d.s $f18, $f0 -/* 02BC48 8002B048 462E9281 */ sub.d $f10, $f18, $f14 -/* 02BC4C 8002B04C 460061A1 */ cvt.d.s $f6, $f12 -/* 02BC50 8002B050 462A303C */ c.lt.d $f6, $f10 -/* 02BC54 8002B054 00000000 */ nop -/* 02BC58 8002B058 45000002 */ bc1f .L8002B064 -/* 02BC5C 8002B05C 00000000 */ nop -/* 02BC60 8002B060 2407FFFF */ li $a3, -1 -.L8002B064: -/* 02BC64 8002B064 24630002 */ addiu $v1, $v1, 2 -/* 02BC68 8002B068 1462FFAC */ bne $v1, $v0, .L8002AF1C -/* 02BC6C 8002B06C 25080008 */ addiu $t0, $t0, 8 -.L8002B070: -/* 02BC70 8002B070 04E10003 */ bgez $a3, .L8002B080 -/* 02BC74 8002B074 00077080 */ sll $t6, $a3, 2 -/* 02BC78 8002B078 03E00008 */ jr $ra -/* 02BC7C 8002B07C 00001025 */ move $v0, $zero - -.L8002B080: -/* 02BC80 8002B080 3C0D8012 */ lui $t5, %hi(D_8011D2B8) # $t5, 0x8012 -/* 02BC84 8002B084 25ADD2B8 */ addiu $t5, %lo(D_8011D2B8) # addiu $t5, $t5, -0x2d48 -/* 02BC88 8002B088 01CD1821 */ addu $v1, $t6, $t5 -/* 02BC8C 8002B08C 8C6F0000 */ lw $t7, ($v1) -/* 02BC90 8002B090 00000000 */ nop -/* 02BC94 8002B094 C5F00000 */ lwc1 $f16, ($t7) -/* 02BC98 8002B098 10C00010 */ beqz $a2, .L8002B0DC -/* 02BC9C 8002B09C E4B00000 */ swc1 $f16, ($a1) -/* 02BCA0 8002B0A0 8C780000 */ lw $t8, ($v1) -/* 02BCA4 8002B0A4 00000000 */ nop -/* 02BCA8 8002B0A8 C7040004 */ lwc1 $f4, 4($t8) -/* 02BCAC 8002B0AC 00000000 */ nop -/* 02BCB0 8002B0B0 E4C40000 */ swc1 $f4, ($a2) -/* 02BCB4 8002B0B4 8C790000 */ lw $t9, ($v1) -/* 02BCB8 8002B0B8 00000000 */ nop -/* 02BCBC 8002B0BC C7280008 */ lwc1 $f8, 8($t9) -/* 02BCC0 8002B0C0 00000000 */ nop -/* 02BCC4 8002B0C4 E4C80004 */ swc1 $f8, 4($a2) -/* 02BCC8 8002B0C8 8C6E0000 */ lw $t6, ($v1) -/* 02BCCC 8002B0CC 00000000 */ nop -/* 02BCD0 8002B0D0 C5D2000C */ lwc1 $f18, 0xc($t6) -/* 02BCD4 8002B0D4 00000000 */ nop -/* 02BCD8 8002B0D8 E4D20008 */ swc1 $f18, 8($a2) -.L8002B0DC: -/* 02BCDC 8002B0DC 8C6D0000 */ lw $t5, ($v1) -/* 02BCE0 8002B0E0 00000000 */ nop -/* 02BCE4 8002B0E4 81A20010 */ lb $v0, 0x10($t5) -/* 02BCE8 8002B0E8 00000000 */ nop -/* 02BCEC 8002B0EC 03E00008 */ jr $ra -/* 02BCF0 8002B0F0 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0255E0/func_8002B0F4.s b/asm/non_matchings/unknown_0255E0/func_8002B0F4.s index 3388fcf2..a5317898 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002B0F4.s +++ b/asm/non_matchings/unknown_0255E0/func_8002B0F4.s @@ -1,602 +1,602 @@ -glabel func_8002B0F4 -/* 02BCF4 8002B0F4 444FF800 */ cfc1 $t7, $31 -/* 02BCF8 8002B0F8 3C018012 */ lui $at, %hi(D_8011D308) # $at, 0x8012 -/* 02BCFC 8002B0FC A020D308 */ sb $zero, %lo(D_8011D308)($at) -/* 02BD00 8002B100 27BDFED8 */ addiu $sp, $sp, -0x128 -/* 02BD04 8002B104 35E10003 */ ori $at, $t7, 3 -/* 02BD08 8002B108 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 02BD0C 8002B10C 38210002 */ xori $at, $at, 2 -/* 02BD10 8002B110 4485A000 */ mtc1 $a1, $f20 -/* 02BD14 8002B114 44C1F800 */ ctc1 $at, $31 -/* 02BD18 8002B118 E7B60024 */ swc1 $f22, 0x24($sp) -/* 02BD1C 8002B11C 4600A124 */ cvt.w.s $f4, $f20 -/* 02BD20 8002B120 4486B000 */ mtc1 $a2, $f22 -/* 02BD24 8002B124 44CFF800 */ ctc1 $t7, $31 -/* 02BD28 8002B128 AFB60040 */ sw $s6, 0x40($sp) -/* 02BD2C 8002B12C AFB40038 */ sw $s4, 0x38($sp) -/* 02BD30 8002B130 4458F800 */ cfc1 $t8, $31 -/* 02BD34 8002B134 44162000 */ mfc1 $s6, $f4 -/* 02BD38 8002B138 37010003 */ ori $at, $t8, 3 -/* 02BD3C 8002B13C 38210002 */ xori $at, $at, 2 -/* 02BD40 8002B140 44C1F800 */ ctc1 $at, $31 -/* 02BD44 8002B144 AFB00028 */ sw $s0, 0x28($sp) -/* 02BD48 8002B148 4600B1A4 */ cvt.w.s $f6, $f22 -/* 02BD4C 8002B14C 00808025 */ move $s0, $a0 -/* 02BD50 8002B150 44143000 */ mfc1 $s4, $f6 -/* 02BD54 8002B154 AFBF004C */ sw $ra, 0x4c($sp) -/* 02BD58 8002B158 AFBE0048 */ sw $fp, 0x48($sp) -/* 02BD5C 8002B15C AFB70044 */ sw $s7, 0x44($sp) -/* 02BD60 8002B160 AFB5003C */ sw $s5, 0x3c($sp) -/* 02BD64 8002B164 AFB30034 */ sw $s3, 0x34($sp) -/* 02BD68 8002B168 AFB20030 */ sw $s2, 0x30($sp) -/* 02BD6C 8002B16C AFB1002C */ sw $s1, 0x2c($sp) -/* 02BD70 8002B170 E7B70020 */ swc1 $f23, 0x20($sp) -/* 02BD74 8002B174 E7B50018 */ swc1 $f21, 0x18($sp) -/* 02BD78 8002B178 AFA70134 */ sw $a3, 0x134($sp) -/* 02BD7C 8002B17C 44D8F800 */ ctc1 $t8, $31 -/* 02BD80 8002B180 ACE00000 */ sw $zero, ($a3) -/* 02BD84 8002B184 27A600B0 */ addiu $a2, $sp, 0xb0 -/* 02BD88 8002B188 02C02025 */ move $a0, $s6 -/* 02BD8C 8002B18C 0C00A817 */ jal get_inside_segment_count -/* 02BD90 8002B190 02802825 */ move $a1, $s4 -/* 02BD94 8002B194 10400004 */ beqz $v0, .L8002B1A8 -/* 02BD98 8002B198 AFA20108 */ sw $v0, 0x108($sp) -/* 02BD9C 8002B19C 28410008 */ slti $at, $v0, 8 -/* 02BDA0 8002B1A0 14200003 */ bnez $at, .L8002B1B0 -/* 02BDA4 8002B1A4 0000A825 */ move $s5, $zero -.L8002B1A8: -/* 02BDA8 8002B1A8 100001F4 */ b .L8002B97C -/* 02BDAC 8002B1AC 00001025 */ move $v0, $zero -.L8002B1B0: -/* 02BDB0 8002B1B0 18400135 */ blez $v0, .L8002B688 -/* 02BDB4 8002B1B4 0000F025 */ move $fp, $zero -/* 02BDB8 8002B1B8 44808800 */ mtc1 $zero, $f17 -/* 02BDBC 8002B1BC 44808000 */ mtc1 $zero, $f16 -/* 02BDC0 8002B1C0 AFB00128 */ sw $s0, 0x128($sp) -/* 02BDC4 8002B1C4 2413000A */ li $s3, 10 -/* 02BDC8 8002B1C8 001EC880 */ sll $t9, $fp, 2 -.L8002B1CC: -/* 02BDCC 8002B1CC 03B94821 */ addu $t1, $sp, $t9 -/* 02BDD0 8002B1D0 8D2900B0 */ lw $t1, 0xb0($t1) -/* 02BDD4 8002B1D4 3C0B800E */ lui $t3, %hi(gCurrentLevelModel) # $t3, 0x800e -/* 02BDD8 8002B1D8 8D6BC918 */ lw $t3, %lo(gCurrentLevelModel)($t3) -/* 02BDDC 8002B1DC 0009C080 */ sll $t8, $t1, 2 -/* 02BDE0 8002B1E0 8D790008 */ lw $t9, 8($t3) -/* 02BDE4 8002B1E4 00097100 */ sll $t6, $t1, 4 -/* 02BDE8 8002B1E8 0309C023 */ subu $t8, $t8, $t1 -/* 02BDEC 8002B1EC 8D6F0004 */ lw $t7, 4($t3) -/* 02BDF0 8002B1F0 0018C080 */ sll $t8, $t8, 2 -/* 02BDF4 8002B1F4 01C97021 */ addu $t6, $t6, $t1 -/* 02BDF8 8002B1F8 000E7080 */ sll $t6, $t6, 2 -/* 02BDFC 8002B1FC 03195021 */ addu $t2, $t8, $t9 -/* 02BE00 8002B200 01CFF821 */ addu $ra, $t6, $t7 -/* 02BE04 8002B204 854E0006 */ lh $t6, 6($t2) -/* 02BE08 8002B208 85480000 */ lh $t0, ($t2) -/* 02BE0C 8002B20C 24050001 */ li $a1, 1 -/* 02BE10 8002B210 01C83023 */ subu $a2, $t6, $t0 -/* 02BE14 8002B214 000678C3 */ sra $t7, $a2, 3 -/* 02BE18 8002B218 25E60001 */ addiu $a2, $t7, 1 -/* 02BE1C 8002B21C 0006C400 */ sll $t8, $a2, 0x10 -/* 02BE20 8002B220 00183403 */ sra $a2, $t8, 0x10 -/* 02BE24 8002B224 00C81821 */ addu $v1, $a2, $t0 -/* 02BE28 8002B228 00082400 */ sll $a0, $t0, 0x10 -/* 02BE2C 8002B22C 00037400 */ sll $t6, $v1, 0x10 -/* 02BE30 8002B230 0004C403 */ sra $t8, $a0, 0x10 -/* 02BE34 8002B234 00008825 */ move $s1, $zero -/* 02BE38 8002B238 000E1C03 */ sra $v1, $t6, 0x10 -/* 02BE3C 8002B23C 03002025 */ move $a0, $t8 -/* 02BE40 8002B240 00003825 */ move $a3, $zero -/* 02BE44 8002B244 0000B825 */ move $s7, $zero -.L8002B248: -/* 02BE48 8002B248 0076082A */ slt $at, $v1, $s6 -/* 02BE4C 8002B24C 14200007 */ bnez $at, .L8002B26C -/* 02BE50 8002B250 00661821 */ addu $v1, $v1, $a2 -/* 02BE54 8002B254 02C4082A */ slt $at, $s6, $a0 -/* 02BE58 8002B258 14200005 */ bnez $at, .L8002B270 -/* 02BE5C 8002B25C 00037C00 */ sll $t7, $v1, 0x10 -/* 02BE60 8002B260 02258825 */ or $s1, $s1, $a1 -/* 02BE64 8002B264 0011CC00 */ sll $t9, $s1, 0x10 -/* 02BE68 8002B268 00198C03 */ sra $s1, $t9, 0x10 -.L8002B26C: -/* 02BE6C 8002B26C 00037C00 */ sll $t7, $v1, 0x10 -.L8002B270: -/* 02BE70 8002B270 000F1C03 */ sra $v1, $t7, 0x10 -/* 02BE74 8002B274 24E70001 */ addiu $a3, $a3, 1 -/* 02BE78 8002B278 00862021 */ addu $a0, $a0, $a2 -/* 02BE7C 8002B27C 00A07825 */ move $t7, $a1 -/* 02BE80 8002B280 28E10008 */ slti $at, $a3, 8 -/* 02BE84 8002B284 0004CC00 */ sll $t9, $a0, 0x10 -/* 02BE88 8002B288 000FC440 */ sll $t8, $t7, 0x11 -/* 02BE8C 8002B28C 00192403 */ sra $a0, $t9, 0x10 -/* 02BE90 8002B290 1420FFED */ bnez $at, .L8002B248 -/* 02BE94 8002B294 00182C03 */ sra $a1, $t8, 0x10 -/* 02BE98 8002B298 85480004 */ lh $t0, 4($t2) -/* 02BE9C 8002B29C 854E000A */ lh $t6, 0xa($t2) -/* 02BEA0 8002B2A0 00082400 */ sll $a0, $t0, 0x10 -/* 02BEA4 8002B2A4 01C83023 */ subu $a2, $t6, $t0 -/* 02BEA8 8002B2A8 000678C3 */ sra $t7, $a2, 3 -/* 02BEAC 8002B2AC 25E60001 */ addiu $a2, $t7, 1 -/* 02BEB0 8002B2B0 0006C400 */ sll $t8, $a2, 0x10 -/* 02BEB4 8002B2B4 00183403 */ sra $a2, $t8, 0x10 -/* 02BEB8 8002B2B8 00C81821 */ addu $v1, $a2, $t0 -/* 02BEBC 8002B2BC 00037400 */ sll $t6, $v1, 0x10 -/* 02BEC0 8002B2C0 0004C403 */ sra $t8, $a0, 0x10 -/* 02BEC4 8002B2C4 000E1C03 */ sra $v1, $t6, 0x10 -/* 02BEC8 8002B2C8 03002025 */ move $a0, $t8 -/* 02BECC 8002B2CC 00003825 */ move $a3, $zero -.L8002B2D0: -/* 02BED0 8002B2D0 0074082A */ slt $at, $v1, $s4 -/* 02BED4 8002B2D4 14200007 */ bnez $at, .L8002B2F4 -/* 02BED8 8002B2D8 00661821 */ addu $v1, $v1, $a2 -/* 02BEDC 8002B2DC 0284082A */ slt $at, $s4, $a0 -/* 02BEE0 8002B2E0 14200005 */ bnez $at, .L8002B2F8 -/* 02BEE4 8002B2E4 00037C00 */ sll $t7, $v1, 0x10 -/* 02BEE8 8002B2E8 02258825 */ or $s1, $s1, $a1 -/* 02BEEC 8002B2EC 0011CC00 */ sll $t9, $s1, 0x10 -/* 02BEF0 8002B2F0 00198C03 */ sra $s1, $t9, 0x10 -.L8002B2F4: -/* 02BEF4 8002B2F4 00037C00 */ sll $t7, $v1, 0x10 -.L8002B2F8: -/* 02BEF8 8002B2F8 000F1C03 */ sra $v1, $t7, 0x10 -/* 02BEFC 8002B2FC 00862021 */ addu $a0, $a0, $a2 -/* 02BF00 8002B300 0004CC00 */ sll $t9, $a0, 0x10 -/* 02BF04 8002B304 00A07825 */ move $t7, $a1 -/* 02BF08 8002B308 00197403 */ sra $t6, $t9, 0x10 -/* 02BF0C 8002B30C 000FC440 */ sll $t8, $t7, 0x11 -/* 02BF10 8002B310 0074082A */ slt $at, $v1, $s4 -/* 02BF14 8002B314 0018CC03 */ sra $t9, $t8, 0x10 -/* 02BF18 8002B318 01C02025 */ move $a0, $t6 -/* 02BF1C 8002B31C 14200007 */ bnez $at, .L8002B33C -/* 02BF20 8002B320 03202825 */ move $a1, $t9 -/* 02BF24 8002B324 028E082A */ slt $at, $s4, $t6 -/* 02BF28 8002B328 14200004 */ bnez $at, .L8002B33C -/* 02BF2C 8002B32C 00000000 */ nop -/* 02BF30 8002B330 02398825 */ or $s1, $s1, $t9 -/* 02BF34 8002B334 00117400 */ sll $t6, $s1, 0x10 -/* 02BF38 8002B338 000E8C03 */ sra $s1, $t6, 0x10 -.L8002B33C: -/* 02BF3C 8002B33C 00661821 */ addu $v1, $v1, $a2 -/* 02BF40 8002B340 0003C400 */ sll $t8, $v1, 0x10 -/* 02BF44 8002B344 00181C03 */ sra $v1, $t8, 0x10 -/* 02BF48 8002B348 00862021 */ addu $a0, $a0, $a2 -/* 02BF4C 8002B34C 00047400 */ sll $t6, $a0, 0x10 -/* 02BF50 8002B350 00A0C025 */ move $t8, $a1 -/* 02BF54 8002B354 0018CC40 */ sll $t9, $t8, 0x11 -/* 02BF58 8002B358 000E7C03 */ sra $t7, $t6, 0x10 -/* 02BF5C 8002B35C 00197403 */ sra $t6, $t9, 0x10 -/* 02BF60 8002B360 0074082A */ slt $at, $v1, $s4 -/* 02BF64 8002B364 01C02825 */ move $a1, $t6 -/* 02BF68 8002B368 14200007 */ bnez $at, .L8002B388 -/* 02BF6C 8002B36C 01E02025 */ move $a0, $t7 -/* 02BF70 8002B370 028F082A */ slt $at, $s4, $t7 -/* 02BF74 8002B374 14200004 */ bnez $at, .L8002B388 -/* 02BF78 8002B378 00000000 */ nop -/* 02BF7C 8002B37C 022E8825 */ or $s1, $s1, $t6 -/* 02BF80 8002B380 00117C00 */ sll $t7, $s1, 0x10 -/* 02BF84 8002B384 000F8C03 */ sra $s1, $t7, 0x10 -.L8002B388: -/* 02BF88 8002B388 00661821 */ addu $v1, $v1, $a2 -/* 02BF8C 8002B38C 0003CC00 */ sll $t9, $v1, 0x10 -/* 02BF90 8002B390 00191C03 */ sra $v1, $t9, 0x10 -/* 02BF94 8002B394 00862021 */ addu $a0, $a0, $a2 -/* 02BF98 8002B398 00047C00 */ sll $t7, $a0, 0x10 -/* 02BF9C 8002B39C 00A0C825 */ move $t9, $a1 -/* 02BFA0 8002B3A0 00197440 */ sll $t6, $t9, 0x11 -/* 02BFA4 8002B3A4 000FC403 */ sra $t8, $t7, 0x10 -/* 02BFA8 8002B3A8 000E7C03 */ sra $t7, $t6, 0x10 -/* 02BFAC 8002B3AC 0074082A */ slt $at, $v1, $s4 -/* 02BFB0 8002B3B0 01E02825 */ move $a1, $t7 -/* 02BFB4 8002B3B4 14200007 */ bnez $at, .L8002B3D4 -/* 02BFB8 8002B3B8 03002025 */ move $a0, $t8 -/* 02BFBC 8002B3BC 0298082A */ slt $at, $s4, $t8 -/* 02BFC0 8002B3C0 14200004 */ bnez $at, .L8002B3D4 -/* 02BFC4 8002B3C4 00000000 */ nop -/* 02BFC8 8002B3C8 022F8825 */ or $s1, $s1, $t7 -/* 02BFCC 8002B3CC 0011C400 */ sll $t8, $s1, 0x10 -/* 02BFD0 8002B3D0 00188C03 */ sra $s1, $t8, 0x10 -.L8002B3D4: -/* 02BFD4 8002B3D4 00661821 */ addu $v1, $v1, $a2 -/* 02BFD8 8002B3D8 00037400 */ sll $t6, $v1, 0x10 -/* 02BFDC 8002B3DC 000E1C03 */ sra $v1, $t6, 0x10 -/* 02BFE0 8002B3E0 00A07025 */ move $t6, $a1 -/* 02BFE4 8002B3E4 00862021 */ addu $a0, $a0, $a2 -/* 02BFE8 8002B3E8 0004C400 */ sll $t8, $a0, 0x10 -/* 02BFEC 8002B3EC 000E7C40 */ sll $t7, $t6, 0x11 -/* 02BFF0 8002B3F0 24E70004 */ addiu $a3, $a3, 4 -/* 02BFF4 8002B3F4 24010008 */ li $at, 8 -/* 02BFF8 8002B3F8 000F2C03 */ sra $a1, $t7, 0x10 -/* 02BFFC 8002B3FC 14E1FFB4 */ bne $a3, $at, .L8002B2D0 -/* 02C000 8002B400 00182403 */ sra $a0, $t8, 0x10 -/* 02C004 8002B404 87E50020 */ lh $a1, 0x20($ra) -/* 02C008 8002B408 00000000 */ nop -/* 02C00C 8002B40C 18A00097 */ blez $a1, .L8002B66C -/* 02C010 8002B410 00177080 */ sll $t6, $s7, 2 -.L8002B414: -/* 02C014 8002B414 8FF9000C */ lw $t9, 0xc($ra) -/* 02C018 8002B418 01D77023 */ subu $t6, $t6, $s7 -/* 02C01C 8002B41C 000E7080 */ sll $t6, $t6, 2 -/* 02C020 8002B420 3C0F800E */ lui $t7, %hi(gCurrentLevelModel) # $t7, 0x800e -/* 02C024 8002B424 8DEFC918 */ lw $t7, %lo(gCurrentLevelModel)($t7) -/* 02C028 8002B428 032E1821 */ addu $v1, $t9, $t6 -/* 02C02C 8002B42C 90790000 */ lbu $t9, ($v1) -/* 02C030 8002B430 8DF80000 */ lw $t8, ($t7) -/* 02C034 8002B434 001970C0 */ sll $t6, $t9, 3 -/* 02C038 8002B438 030E7821 */ addu $t7, $t8, $t6 -/* 02C03C 8002B43C 81F20007 */ lb $s2, 7($t7) -/* 02C040 8002B440 84640004 */ lh $a0, 4($v1) -/* 02C044 8002B444 846D0002 */ lh $t5, 2($v1) -/* 02C048 8002B448 84700010 */ lh $s0, 0x10($v1) -/* 02C04C 8002B44C 2401000B */ li $at, 11 -/* 02C050 8002B450 12410009 */ beq $s2, $at, .L8002B478 -/* 02C054 8002B454 2401000F */ li $at, 15 -/* 02C058 8002B458 12410008 */ beq $s2, $at, .L8002B47C -/* 02C05C 8002B45C 0090082A */ slt $at, $a0, $s0 -/* 02C060 8002B460 8C790008 */ lw $t9, 8($v1) -/* 02C064 8002B464 00000000 */ nop -/* 02C068 8002B468 33380300 */ andi $t8, $t9, 0x300 -/* 02C06C 8002B46C 13000003 */ beqz $t8, .L8002B47C -/* 02C070 8002B470 0090082A */ slt $at, $a0, $s0 -/* 02C074 8002B474 02002025 */ move $a0, $s0 -.L8002B478: -/* 02C078 8002B478 0090082A */ slt $at, $a0, $s0 -.L8002B47C: -/* 02C07C 8002B47C 10200077 */ beqz $at, .L8002B65C -/* 02C080 8002B480 00805025 */ move $t2, $a0 -.L8002B484: -/* 02C084 8002B484 8FEE0010 */ lw $t6, 0x10($ra) -/* 02C088 8002B488 000A7840 */ sll $t7, $t2, 1 -/* 02C08C 8002B48C 01CFC821 */ addu $t9, $t6, $t7 -/* 02C090 8002B490 87380000 */ lh $t8, ($t9) -/* 02C094 8002B494 00000000 */ nop -/* 02C098 8002B498 03117024 */ and $t6, $t8, $s1 -/* 02C09C 8002B49C 162E0069 */ bne $s1, $t6, .L8002B644 -/* 02C0A0 8002B4A0 00000000 */ nop -/* 02C0A4 8002B4A4 8FEF0004 */ lw $t7, 4($ra) -/* 02C0A8 8002B4A8 000AC900 */ sll $t9, $t2, 4 -/* 02C0AC 8002B4AC 01F92021 */ addu $a0, $t7, $t9 -/* 02C0B0 8002B4B0 90980001 */ lbu $t8, 1($a0) -/* 02C0B4 8002B4B4 90990002 */ lbu $t9, 2($a0) -/* 02C0B8 8002B4B8 030D7021 */ addu $t6, $t8, $t5 -/* 02C0BC 8002B4BC 01D30019 */ multu $t6, $s3 -/* 02C0C0 8002B4C0 032DC021 */ addu $t8, $t9, $t5 -/* 02C0C4 8002B4C4 8FE50000 */ lw $a1, ($ra) -/* 02C0C8 8002B4C8 00007812 */ mflo $t7 -/* 02C0CC 8002B4CC 01E51821 */ addu $v1, $t7, $a1 -/* 02C0D0 8002B4D0 908F0003 */ lbu $t7, 3($a0) -/* 02C0D4 8002B4D4 03130019 */ multu $t8, $s3 -/* 02C0D8 8002B4D8 01EDC821 */ addu $t9, $t7, $t5 -/* 02C0DC 8002B4DC 84660000 */ lh $a2, ($v1) -/* 02C0E0 8002B4E0 84670004 */ lh $a3, 4($v1) -/* 02C0E4 8002B4E4 00000000 */ nop -/* 02C0E8 8002B4E8 02872023 */ subu $a0, $s4, $a3 -/* 02C0EC 8002B4EC 00007012 */ mflo $t6 -/* 02C0F0 8002B4F0 01C51821 */ addu $v1, $t6, $a1 -/* 02C0F4 8002B4F4 84680000 */ lh $t0, ($v1) -/* 02C0F8 8002B4F8 03330019 */ multu $t9, $s3 -/* 02C0FC 8002B4FC 84690004 */ lh $t1, 4($v1) -/* 02C100 8002B500 0106C823 */ subu $t9, $t0, $a2 -/* 02C104 8002B504 01277023 */ subu $t6, $t1, $a3 -/* 02C108 8002B508 0000C012 */ mflo $t8 -/* 02C10C 8002B50C 03051821 */ addu $v1, $t8, $a1 -/* 02C110 8002B510 846B0000 */ lh $t3, ($v1) -/* 02C114 8002B514 846C0004 */ lh $t4, 4($v1) -/* 02C118 8002B518 02C61823 */ subu $v1, $s6, $a2 -/* 02C11C 8002B51C 006E0019 */ multu $v1, $t6 -/* 02C120 8002B520 00007812 */ mflo $t7 -/* 02C124 8002B524 00000000 */ nop -/* 02C128 8002B528 00000000 */ nop -/* 02C12C 8002B52C 03240019 */ multu $t9, $a0 -/* 02C130 8002B530 02C8C823 */ subu $t9, $s6, $t0 -/* 02C134 8002B534 0000C012 */ mflo $t8 -/* 02C138 8002B538 01F82823 */ subu $a1, $t7, $t8 -/* 02C13C 8002B53C 01897823 */ subu $t7, $t4, $t1 -/* 02C140 8002B540 032F0019 */ multu $t9, $t7 -/* 02C144 8002B544 28AE0000 */ slti $t6, $a1, 0 -/* 02C148 8002B548 39C50001 */ xori $a1, $t6, 1 -/* 02C14C 8002B54C 0289C823 */ subu $t9, $s4, $t1 -/* 02C150 8002B550 01687023 */ subu $t6, $t3, $t0 -/* 02C154 8002B554 0000C012 */ mflo $t8 -/* 02C158 8002B558 00000000 */ nop -/* 02C15C 8002B55C 00000000 */ nop -/* 02C160 8002B560 01D90019 */ multu $t6, $t9 -/* 02C164 8002B564 00007812 */ mflo $t7 -/* 02C168 8002B568 030F7023 */ subu $t6, $t8, $t7 -/* 02C16C 8002B56C 29D90000 */ slti $t9, $t6, 0 -/* 02C170 8002B570 3B390001 */ xori $t9, $t9, 1 -/* 02C174 8002B574 17250033 */ bne $t9, $a1, .L8002B644 -/* 02C178 8002B578 0187C023 */ subu $t8, $t4, $a3 -/* 02C17C 8002B57C 00780019 */ multu $v1, $t8 -/* 02C180 8002B580 01667023 */ subu $t6, $t3, $a2 -/* 02C184 8002B584 00007812 */ mflo $t7 -/* 02C188 8002B588 00000000 */ nop -/* 02C18C 8002B58C 00000000 */ nop -/* 02C190 8002B590 01C40019 */ multu $t6, $a0 -/* 02C194 8002B594 0000C812 */ mflo $t9 -/* 02C198 8002B598 01F9C023 */ subu $t8, $t7, $t9 -/* 02C19C 8002B59C 2B0E0000 */ slti $t6, $t8, 0 -/* 02C1A0 8002B5A0 39CE0001 */ xori $t6, $t6, 1 -/* 02C1A4 8002B5A4 10AE0027 */ beq $a1, $t6, .L8002B644 -/* 02C1A8 8002B5A8 00000000 */ nop -/* 02C1AC 8002B5AC 8FEF0014 */ lw $t7, 0x14($ra) -/* 02C1B0 8002B5B0 000AC8C0 */ sll $t9, $t2, 3 -/* 02C1B4 8002B5B4 01F9C021 */ addu $t8, $t7, $t9 -/* 02C1B8 8002B5B8 970F0000 */ lhu $t7, ($t8) -/* 02C1BC 8002B5BC 8FEE0018 */ lw $t6, 0x18($ra) -/* 02C1C0 8002B5C0 000FC900 */ sll $t9, $t7, 4 -/* 02C1C4 8002B5C4 01D91821 */ addu $v1, $t6, $t9 -/* 02C1C8 8002B5C8 C4600004 */ lwc1 $f0, 4($v1) -/* 02C1CC 8002B5CC C4620000 */ lwc1 $f2, ($v1) -/* 02C1D0 8002B5D0 46000221 */ cvt.d.s $f8, $f0 -/* 02C1D4 8002B5D4 46288032 */ c.eq.d $f16, $f8 -/* 02C1D8 8002B5D8 C46C0008 */ lwc1 $f12, 8($v1) -/* 02C1DC 8002B5DC C46E000C */ lwc1 $f14, 0xc($v1) -/* 02C1E0 8002B5E0 45010018 */ bc1t .L8002B644 -/* 02C1E4 8002B5E4 00000000 */ nop -/* 02C1E8 8002B5E8 46141282 */ mul.s $f10, $f2, $f20 -/* 02C1EC 8002B5EC 0015C080 */ sll $t8, $s5, 2 -/* 02C1F0 8002B5F0 0315C021 */ addu $t8, $t8, $s5 -/* 02C1F4 8002B5F4 3C0F8012 */ lui $t7, %hi(D_8011D128) # $t7, 0x8012 -/* 02C1F8 8002B5F8 46166482 */ mul.s $f18, $f12, $f22 -/* 02C1FC 8002B5FC 25EFD128 */ addiu $t7, %lo(D_8011D128) # addiu $t7, $t7, -0x2ed8 -/* 02C200 8002B600 0018C080 */ sll $t8, $t8, 2 -/* 02C204 8002B604 030F1821 */ addu $v1, $t8, $t7 -/* 02C208 8002B608 46125100 */ add.s $f4, $f10, $f18 -/* 02C20C 8002B60C 26B50001 */ addiu $s5, $s5, 1 -/* 02C210 8002B610 460E2180 */ add.s $f6, $f4, $f14 -/* 02C214 8002B614 2AA10014 */ slti $at, $s5, 0x14 -/* 02C218 8002B618 46003203 */ div.s $f8, $f6, $f0 -/* 02C21C 8002B61C A0720010 */ sb $s2, 0x10($v1) -/* 02C220 8002B620 E4620004 */ swc1 $f2, 4($v1) -/* 02C224 8002B624 E4600008 */ swc1 $f0, 8($v1) -/* 02C228 8002B628 E46C000C */ swc1 $f12, 0xc($v1) -/* 02C22C 8002B62C 46004287 */ neg.s $f10, $f8 -/* 02C230 8002B630 14200004 */ bnez $at, .L8002B644 -/* 02C234 8002B634 E46A0000 */ swc1 $f10, ($v1) -/* 02C238 8002B638 87F70020 */ lh $s7, 0x20($ra) -/* 02C23C 8002B63C 02005025 */ move $t2, $s0 -/* 02C240 8002B640 0040F025 */ move $fp, $v0 -.L8002B644: -/* 02C244 8002B644 254A0001 */ addiu $t2, $t2, 1 -/* 02C248 8002B648 0150082A */ slt $at, $t2, $s0 -/* 02C24C 8002B64C 1420FF8D */ bnez $at, .L8002B484 -/* 02C250 8002B650 00000000 */ nop -/* 02C254 8002B654 87E50020 */ lh $a1, 0x20($ra) -/* 02C258 8002B658 00000000 */ nop -.L8002B65C: -/* 02C25C 8002B65C 26F70001 */ addiu $s7, $s7, 1 -/* 02C260 8002B660 02E5082A */ slt $at, $s7, $a1 -/* 02C264 8002B664 1420FF6B */ bnez $at, .L8002B414 -/* 02C268 8002B668 00177080 */ sll $t6, $s7, 2 -.L8002B66C: -/* 02C26C 8002B66C 8FAE0108 */ lw $t6, 0x108($sp) -/* 02C270 8002B670 27DE0001 */ addiu $fp, $fp, 1 -/* 02C274 8002B674 03CE082A */ slt $at, $fp, $t6 -/* 02C278 8002B678 1420FED4 */ bnez $at, .L8002B1CC -/* 02C27C 8002B67C 001EC880 */ sll $t9, $fp, 2 -/* 02C280 8002B680 8FB00128 */ lw $s0, 0x128($sp) -/* 02C284 8002B684 00000000 */ nop -.L8002B688: -/* 02C288 8002B688 0600002C */ bltz $s0, .L8002B73C -/* 02C28C 8002B68C 3C0B800E */ lui $t3, %hi(gCurrentLevelModel) # $t3, 0x800e -/* 02C290 8002B690 8D6BC918 */ lw $t3, %lo(gCurrentLevelModel)($t3) -/* 02C294 8002B694 3C088012 */ lui $t0, %hi(D_8011D128) # $t0, 0x8012 -/* 02C298 8002B698 8579001A */ lh $t9, 0x1a($t3) -/* 02C29C 8002B69C 2508D128 */ addiu $t0, %lo(D_8011D128) # addiu $t0, $t0, -0x2ed8 -/* 02C2A0 8002B6A0 0219082A */ slt $at, $s0, $t9 -/* 02C2A4 8002B6A4 10200025 */ beqz $at, .L8002B73C -/* 02C2A8 8002B6A8 00107900 */ sll $t7, $s0, 4 -/* 02C2AC 8002B6AC 00151080 */ sll $v0, $s5, 2 -/* 02C2B0 8002B6B0 00551021 */ addu $v0, $v0, $s5 -/* 02C2B4 8002B6B4 8D780004 */ lw $t8, 4($t3) -/* 02C2B8 8002B6B8 01F07821 */ addu $t7, $t7, $s0 -/* 02C2BC 8002B6BC 00021080 */ sll $v0, $v0, 2 -/* 02C2C0 8002B6C0 000F7880 */ sll $t7, $t7, 2 -/* 02C2C4 8002B6C4 01021821 */ addu $v1, $t0, $v0 -/* 02C2C8 8002B6C8 240E000E */ li $t6, 14 -/* 02C2CC 8002B6CC A06E0010 */ sb $t6, 0x10($v1) -/* 02C2D0 8002B6D0 030FF821 */ addu $ra, $t8, $t7 -/* 02C2D4 8002B6D4 83F9002B */ lb $t9, 0x2b($ra) -/* 02C2D8 8002B6D8 3C188012 */ lui $t8, %hi(D_8011D384) # $t8, 0x8012 -/* 02C2DC 8002B6DC 1320000D */ beqz $t9, .L8002B714 -/* 02C2E0 8002B6E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 02C2E4 8002B6E4 8F18D384 */ lw $t8, %lo(D_8011D384)($t8) -/* 02C2E8 8002B6E8 02002025 */ move $a0, $s0 -/* 02C2EC 8002B6EC 13000009 */ beqz $t8, .L8002B714 -/* 02C2F0 8002B6F0 00483821 */ addu $a3, $v0, $t0 -/* 02C2F4 8002B6F4 4405A000 */ mfc1 $a1, $f20 -/* 02C2F8 8002B6F8 4406B000 */ mfc1 $a2, $f22 -/* 02C2FC 8002B6FC 24E70004 */ addiu $a3, $a3, 4 -/* 02C300 8002B700 0C02ECBD */ jal func_800BB2F4 -/* 02C304 8002B704 AFA30064 */ sw $v1, 0x64($sp) -/* 02C308 8002B708 8FA30064 */ lw $v1, 0x64($sp) -/* 02C30C 8002B70C 1000000A */ b .L8002B738 -/* 02C310 8002B710 E4600000 */ swc1 $f0, ($v1) -.L8002B714: -/* 02C314 8002B714 87EF0038 */ lh $t7, 0x38($ra) -/* 02C318 8002B718 44800000 */ mtc1 $zero, $f0 -/* 02C31C 8002B71C 448F9000 */ mtc1 $t7, $f18 -/* 02C320 8002B720 44813000 */ mtc1 $at, $f6 -/* 02C324 8002B724 46809120 */ cvt.s.w $f4, $f18 -/* 02C328 8002B728 E4600004 */ swc1 $f0, 4($v1) -/* 02C32C 8002B72C E460000C */ swc1 $f0, 0xc($v1) -/* 02C330 8002B730 E4640000 */ swc1 $f4, ($v1) -/* 02C334 8002B734 E4660008 */ swc1 $f6, 8($v1) -.L8002B738: -/* 02C338 8002B738 26B50001 */ addiu $s5, $s5, 1 -.L8002B73C: -/* 02C33C 8002B73C 1AA0002F */ blez $s5, .L8002B7FC -/* 02C340 8002B740 00003825 */ move $a3, $zero -/* 02C344 8002B744 32A50003 */ andi $a1, $s5, 3 -/* 02C348 8002B748 10A0000F */ beqz $a1, .L8002B788 -/* 02C34C 8002B74C 00A02025 */ move $a0, $a1 -/* 02C350 8002B750 3C198012 */ lui $t9, %hi(D_8011D2B8) # $t9, 0x8012 -/* 02C354 8002B754 3C0F8012 */ lui $t7, %hi(D_8011D128) # $t7, 0x8012 -/* 02C358 8002B758 25EFD128 */ addiu $t7, %lo(D_8011D128) # addiu $t7, $t7, -0x2ed8 -/* 02C35C 8002B75C 2739D2B8 */ addiu $t9, %lo(D_8011D2B8) # addiu $t9, $t9, -0x2d48 -/* 02C360 8002B760 00007080 */ sll $t6, $zero, 2 -/* 02C364 8002B764 0000C100 */ sll $t8, $zero, 4 -/* 02C368 8002B768 030F1021 */ addu $v0, $t8, $t7 -/* 02C36C 8002B76C 01D91821 */ addu $v1, $t6, $t9 -.L8002B770: -/* 02C370 8002B770 AC620000 */ sw $v0, ($v1) -/* 02C374 8002B774 24E70001 */ addiu $a3, $a3, 1 -/* 02C378 8002B778 24420014 */ addiu $v0, $v0, 0x14 -/* 02C37C 8002B77C 1487FFFC */ bne $a0, $a3, .L8002B770 -/* 02C380 8002B780 24630004 */ addiu $v1, $v1, 4 -/* 02C384 8002B784 10F5001D */ beq $a3, $s5, .L8002B7FC -.L8002B788: -/* 02C388 8002B788 00157080 */ sll $t6, $s5, 2 -/* 02C38C 8002B78C 01D57021 */ addu $t6, $t6, $s5 -/* 02C390 8002B790 3C198012 */ lui $t9, %hi(D_8011D164) # $t9, 0x8012 -/* 02C394 8002B794 2739D164 */ addiu $t9, %lo(D_8011D164) # addiu $t9, $t9, -0x2e9c -/* 02C398 8002B798 000E7080 */ sll $t6, $t6, 2 -/* 02C39C 8002B79C 01D94021 */ addu $t0, $t6, $t9 -/* 02C3A0 8002B7A0 00077080 */ sll $t6, $a3, 2 -/* 02C3A4 8002B7A4 01C77021 */ addu $t6, $t6, $a3 -/* 02C3A8 8002B7A8 3C198012 */ lui $t9, %hi(D_8011D128) # $t9, 0x8012 -/* 02C3AC 8002B7AC 2739D128 */ addiu $t9, %lo(D_8011D128) # addiu $t9, $t9, -0x2ed8 -/* 02C3B0 8002B7B0 000E7080 */ sll $t6, $t6, 2 -/* 02C3B4 8002B7B4 01D91021 */ addu $v0, $t6, $t9 -/* 02C3B8 8002B7B8 3C0F8012 */ lui $t7, %hi(D_8011D2B8) # $t7, 0x8012 -/* 02C3BC 8002B7BC 25EFD2B8 */ addiu $t7, %lo(D_8011D2B8) # addiu $t7, $t7, -0x2d48 -/* 02C3C0 8002B7C0 0007C080 */ sll $t8, $a3, 2 -/* 02C3C4 8002B7C4 030F1821 */ addu $v1, $t8, $t7 -/* 02C3C8 8002B7C8 24450014 */ addiu $a1, $v0, 0x14 -/* 02C3CC 8002B7CC 24460028 */ addiu $a2, $v0, 0x28 -/* 02C3D0 8002B7D0 2444003C */ addiu $a0, $v0, 0x3c -.L8002B7D4: -/* 02C3D4 8002B7D4 AC64000C */ sw $a0, 0xc($v1) -/* 02C3D8 8002B7D8 24840050 */ addiu $a0, $a0, 0x50 -/* 02C3DC 8002B7DC AC620000 */ sw $v0, ($v1) -/* 02C3E0 8002B7E0 AC650004 */ sw $a1, 4($v1) -/* 02C3E4 8002B7E4 AC660008 */ sw $a2, 8($v1) -/* 02C3E8 8002B7E8 24C60050 */ addiu $a2, $a2, 0x50 -/* 02C3EC 8002B7EC 24A50050 */ addiu $a1, $a1, 0x50 -/* 02C3F0 8002B7F0 24420050 */ addiu $v0, $v0, 0x50 -/* 02C3F4 8002B7F4 1488FFF7 */ bne $a0, $t0, .L8002B7D4 -/* 02C3F8 8002B7F8 24630010 */ addiu $v1, $v1, 0x10 -.L8002B7FC: -/* 02C3FC 8002B7FC 26A9FFFF */ addiu $t1, $s5, -1 -/* 02C400 8002B800 24060001 */ li $a2, 1 -.L8002B804: -/* 02C404 8002B804 19200054 */ blez $t1, .L8002B958 -/* 02C408 8002B808 00003825 */ move $a3, $zero -/* 02C40C 8002B80C 26A2FFFF */ addiu $v0, $s5, -1 -/* 02C410 8002B810 30580003 */ andi $t8, $v0, 3 -/* 02C414 8002B814 13000014 */ beqz $t8, .L8002B868 -/* 02C418 8002B818 03004025 */ move $t0, $t8 -/* 02C41C 8002B81C 3C0E8012 */ lui $t6, %hi(D_8011D2B8) # $t6, 0x8012 -/* 02C420 8002B820 25CED2B8 */ addiu $t6, %lo(D_8011D2B8) # addiu $t6, $t6, -0x2d48 -/* 02C424 8002B824 00007880 */ sll $t7, $zero, 2 -/* 02C428 8002B828 01EE1821 */ addu $v1, $t7, $t6 -.L8002B82C: -/* 02C42C 8002B82C 8C650000 */ lw $a1, ($v1) -/* 02C430 8002B830 8C640004 */ lw $a0, 4($v1) -/* 02C434 8002B834 C4A80000 */ lwc1 $f8, ($a1) -/* 02C438 8002B838 C48A0000 */ lwc1 $f10, ($a0) -/* 02C43C 8002B83C 24E70001 */ addiu $a3, $a3, 1 -/* 02C440 8002B840 460A403C */ c.lt.s $f8, $f10 -/* 02C444 8002B844 00000000 */ nop -/* 02C448 8002B848 45000004 */ bc1f .L8002B85C -/* 02C44C 8002B84C 00000000 */ nop -/* 02C450 8002B850 00003025 */ move $a2, $zero -/* 02C454 8002B854 AC640000 */ sw $a0, ($v1) -/* 02C458 8002B858 AC650004 */ sw $a1, 4($v1) -.L8002B85C: -/* 02C45C 8002B85C 1507FFF3 */ bne $t0, $a3, .L8002B82C -/* 02C460 8002B860 24630004 */ addiu $v1, $v1, 4 -/* 02C464 8002B864 10E9003C */ beq $a3, $t1, .L8002B958 -.L8002B868: -/* 02C468 8002B868 3C188012 */ lui $t8, %hi(D_8011D2B8) # $t8, 0x8012 -/* 02C46C 8002B86C 2718D2B8 */ addiu $t8, %lo(D_8011D2B8) # addiu $t8, $t8, -0x2d48 -/* 02C470 8002B870 0009C880 */ sll $t9, $t1, 2 -/* 02C474 8002B874 00077880 */ sll $t7, $a3, 2 -/* 02C478 8002B878 01F81821 */ addu $v1, $t7, $t8 -/* 02C47C 8002B87C 03384021 */ addu $t0, $t9, $t8 -.L8002B880: -/* 02C480 8002B880 8C650000 */ lw $a1, ($v1) -/* 02C484 8002B884 8C640004 */ lw $a0, 4($v1) -/* 02C488 8002B888 C4B20000 */ lwc1 $f18, ($a1) -/* 02C48C 8002B88C C4800000 */ lwc1 $f0, ($a0) -/* 02C490 8002B890 00000000 */ nop -/* 02C494 8002B894 4600903C */ c.lt.s $f18, $f0 -/* 02C498 8002B898 00000000 */ nop -/* 02C49C 8002B89C 45000006 */ bc1f .L8002B8B8 -/* 02C4A0 8002B8A0 00000000 */ nop -/* 02C4A4 8002B8A4 AC640000 */ sw $a0, ($v1) -/* 02C4A8 8002B8A8 AC650004 */ sw $a1, 4($v1) -/* 02C4AC 8002B8AC C4A00000 */ lwc1 $f0, ($a1) -/* 02C4B0 8002B8B0 00003025 */ move $a2, $zero -/* 02C4B4 8002B8B4 00A02025 */ move $a0, $a1 -.L8002B8B8: -/* 02C4B8 8002B8B8 8C650008 */ lw $a1, 8($v1) -/* 02C4BC 8002B8BC 00000000 */ nop -/* 02C4C0 8002B8C0 C4A20000 */ lwc1 $f2, ($a1) -/* 02C4C4 8002B8C4 00000000 */ nop -/* 02C4C8 8002B8C8 4602003C */ c.lt.s $f0, $f2 -/* 02C4CC 8002B8CC 00000000 */ nop -/* 02C4D0 8002B8D0 45000006 */ bc1f .L8002B8EC -/* 02C4D4 8002B8D4 00000000 */ nop -/* 02C4D8 8002B8D8 AC650004 */ sw $a1, 4($v1) -/* 02C4DC 8002B8DC AC640008 */ sw $a0, 8($v1) -/* 02C4E0 8002B8E0 C4820000 */ lwc1 $f2, ($a0) -/* 02C4E4 8002B8E4 00802825 */ move $a1, $a0 -/* 02C4E8 8002B8E8 00003025 */ move $a2, $zero -.L8002B8EC: -/* 02C4EC 8002B8EC 8C64000C */ lw $a0, 0xc($v1) -/* 02C4F0 8002B8F0 00000000 */ nop -/* 02C4F4 8002B8F4 C4800000 */ lwc1 $f0, ($a0) -/* 02C4F8 8002B8F8 00000000 */ nop -/* 02C4FC 8002B8FC 4600103C */ c.lt.s $f2, $f0 -/* 02C500 8002B900 00000000 */ nop -/* 02C504 8002B904 45000006 */ bc1f .L8002B920 -/* 02C508 8002B908 00000000 */ nop -/* 02C50C 8002B90C AC640008 */ sw $a0, 8($v1) -/* 02C510 8002B910 AC65000C */ sw $a1, 0xc($v1) -/* 02C514 8002B914 C4A00000 */ lwc1 $f0, ($a1) -/* 02C518 8002B918 00A02025 */ move $a0, $a1 -/* 02C51C 8002B91C 00003025 */ move $a2, $zero -.L8002B920: -/* 02C520 8002B920 8C650010 */ lw $a1, 0x10($v1) -/* 02C524 8002B924 00000000 */ nop -/* 02C528 8002B928 C4A40000 */ lwc1 $f4, ($a1) -/* 02C52C 8002B92C 00000000 */ nop -/* 02C530 8002B930 4604003C */ c.lt.s $f0, $f4 -/* 02C534 8002B934 00000000 */ nop -/* 02C538 8002B938 45000004 */ bc1f .L8002B94C -/* 02C53C 8002B93C 00000000 */ nop -/* 02C540 8002B940 00003025 */ move $a2, $zero -/* 02C544 8002B944 AC65000C */ sw $a1, 0xc($v1) -/* 02C548 8002B948 AC640010 */ sw $a0, 0x10($v1) -.L8002B94C: -/* 02C54C 8002B94C 24630010 */ addiu $v1, $v1, 0x10 -/* 02C550 8002B950 1468FFCB */ bne $v1, $t0, .L8002B880 -/* 02C554 8002B954 00000000 */ nop -.L8002B958: -/* 02C558 8002B958 10C0FFAA */ beqz $a2, .L8002B804 -/* 02C55C 8002B95C 24060001 */ li $a2, 1 -/* 02C560 8002B960 8FB90134 */ lw $t9, 0x134($sp) -/* 02C564 8002B964 3C0E8012 */ lui $t6, %hi(D_8011D2B8) # $t6, 0x8012 -/* 02C568 8002B968 25CED2B8 */ addiu $t6, %lo(D_8011D2B8) # addiu $t6, $t6, -0x2d48 -/* 02C56C 8002B96C 3C018012 */ lui $at, %hi(D_8011D308) # $at, 0x8012 -/* 02C570 8002B970 AF2E0000 */ sw $t6, ($t9) -/* 02C574 8002B974 A035D308 */ sb $s5, %lo(D_8011D308)($at) -/* 02C578 8002B978 02A01025 */ move $v0, $s5 -.L8002B97C: -/* 02C57C 8002B97C 8FBF004C */ lw $ra, 0x4c($sp) -/* 02C580 8002B980 C7B50018 */ lwc1 $f21, 0x18($sp) -/* 02C584 8002B984 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 02C588 8002B988 C7B70020 */ lwc1 $f23, 0x20($sp) -/* 02C58C 8002B98C C7B60024 */ lwc1 $f22, 0x24($sp) -/* 02C590 8002B990 8FB00028 */ lw $s0, 0x28($sp) -/* 02C594 8002B994 8FB1002C */ lw $s1, 0x2c($sp) -/* 02C598 8002B998 8FB20030 */ lw $s2, 0x30($sp) -/* 02C59C 8002B99C 8FB30034 */ lw $s3, 0x34($sp) -/* 02C5A0 8002B9A0 8FB40038 */ lw $s4, 0x38($sp) -/* 02C5A4 8002B9A4 8FB5003C */ lw $s5, 0x3c($sp) -/* 02C5A8 8002B9A8 8FB60040 */ lw $s6, 0x40($sp) -/* 02C5AC 8002B9AC 8FB70044 */ lw $s7, 0x44($sp) -/* 02C5B0 8002B9B0 8FBE0048 */ lw $fp, 0x48($sp) -/* 02C5B4 8002B9B4 03E00008 */ jr $ra -/* 02C5B8 8002B9B8 27BD0128 */ addiu $sp, $sp, 0x128 - +glabel func_8002B0F4 +/* 02BCF4 8002B0F4 444FF800 */ cfc1 $t7, $31 +/* 02BCF8 8002B0F8 3C018012 */ lui $at, %hi(D_8011D308) # $at, 0x8012 +/* 02BCFC 8002B0FC A020D308 */ sb $zero, %lo(D_8011D308)($at) +/* 02BD00 8002B100 27BDFED8 */ addiu $sp, $sp, -0x128 +/* 02BD04 8002B104 35E10003 */ ori $at, $t7, 3 +/* 02BD08 8002B108 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 02BD0C 8002B10C 38210002 */ xori $at, $at, 2 +/* 02BD10 8002B110 4485A000 */ mtc1 $a1, $f20 +/* 02BD14 8002B114 44C1F800 */ ctc1 $at, $31 +/* 02BD18 8002B118 E7B60024 */ swc1 $f22, 0x24($sp) +/* 02BD1C 8002B11C 4600A124 */ cvt.w.s $f4, $f20 +/* 02BD20 8002B120 4486B000 */ mtc1 $a2, $f22 +/* 02BD24 8002B124 44CFF800 */ ctc1 $t7, $31 +/* 02BD28 8002B128 AFB60040 */ sw $s6, 0x40($sp) +/* 02BD2C 8002B12C AFB40038 */ sw $s4, 0x38($sp) +/* 02BD30 8002B130 4458F800 */ cfc1 $t8, $31 +/* 02BD34 8002B134 44162000 */ mfc1 $s6, $f4 +/* 02BD38 8002B138 37010003 */ ori $at, $t8, 3 +/* 02BD3C 8002B13C 38210002 */ xori $at, $at, 2 +/* 02BD40 8002B140 44C1F800 */ ctc1 $at, $31 +/* 02BD44 8002B144 AFB00028 */ sw $s0, 0x28($sp) +/* 02BD48 8002B148 4600B1A4 */ cvt.w.s $f6, $f22 +/* 02BD4C 8002B14C 00808025 */ move $s0, $a0 +/* 02BD50 8002B150 44143000 */ mfc1 $s4, $f6 +/* 02BD54 8002B154 AFBF004C */ sw $ra, 0x4c($sp) +/* 02BD58 8002B158 AFBE0048 */ sw $fp, 0x48($sp) +/* 02BD5C 8002B15C AFB70044 */ sw $s7, 0x44($sp) +/* 02BD60 8002B160 AFB5003C */ sw $s5, 0x3c($sp) +/* 02BD64 8002B164 AFB30034 */ sw $s3, 0x34($sp) +/* 02BD68 8002B168 AFB20030 */ sw $s2, 0x30($sp) +/* 02BD6C 8002B16C AFB1002C */ sw $s1, 0x2c($sp) +/* 02BD70 8002B170 E7B70020 */ swc1 $f23, 0x20($sp) +/* 02BD74 8002B174 E7B50018 */ swc1 $f21, 0x18($sp) +/* 02BD78 8002B178 AFA70134 */ sw $a3, 0x134($sp) +/* 02BD7C 8002B17C 44D8F800 */ ctc1 $t8, $31 +/* 02BD80 8002B180 ACE00000 */ sw $zero, ($a3) +/* 02BD84 8002B184 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 02BD88 8002B188 02C02025 */ move $a0, $s6 +/* 02BD8C 8002B18C 0C00A817 */ jal get_inside_segment_count +/* 02BD90 8002B190 02802825 */ move $a1, $s4 +/* 02BD94 8002B194 10400004 */ beqz $v0, .L8002B1A8 +/* 02BD98 8002B198 AFA20108 */ sw $v0, 0x108($sp) +/* 02BD9C 8002B19C 28410008 */ slti $at, $v0, 8 +/* 02BDA0 8002B1A0 14200003 */ bnez $at, .L8002B1B0 +/* 02BDA4 8002B1A4 0000A825 */ move $s5, $zero +.L8002B1A8: +/* 02BDA8 8002B1A8 100001F4 */ b .L8002B97C +/* 02BDAC 8002B1AC 00001025 */ move $v0, $zero +.L8002B1B0: +/* 02BDB0 8002B1B0 18400135 */ blez $v0, .L8002B688 +/* 02BDB4 8002B1B4 0000F025 */ move $fp, $zero +/* 02BDB8 8002B1B8 44808800 */ mtc1 $zero, $f17 +/* 02BDBC 8002B1BC 44808000 */ mtc1 $zero, $f16 +/* 02BDC0 8002B1C0 AFB00128 */ sw $s0, 0x128($sp) +/* 02BDC4 8002B1C4 2413000A */ li $s3, 10 +/* 02BDC8 8002B1C8 001EC880 */ sll $t9, $fp, 2 +.L8002B1CC: +/* 02BDCC 8002B1CC 03B94821 */ addu $t1, $sp, $t9 +/* 02BDD0 8002B1D0 8D2900B0 */ lw $t1, 0xb0($t1) +/* 02BDD4 8002B1D4 3C0B800E */ lui $t3, %hi(gCurrentLevelModel) # $t3, 0x800e +/* 02BDD8 8002B1D8 8D6BC918 */ lw $t3, %lo(gCurrentLevelModel)($t3) +/* 02BDDC 8002B1DC 0009C080 */ sll $t8, $t1, 2 +/* 02BDE0 8002B1E0 8D790008 */ lw $t9, 8($t3) +/* 02BDE4 8002B1E4 00097100 */ sll $t6, $t1, 4 +/* 02BDE8 8002B1E8 0309C023 */ subu $t8, $t8, $t1 +/* 02BDEC 8002B1EC 8D6F0004 */ lw $t7, 4($t3) +/* 02BDF0 8002B1F0 0018C080 */ sll $t8, $t8, 2 +/* 02BDF4 8002B1F4 01C97021 */ addu $t6, $t6, $t1 +/* 02BDF8 8002B1F8 000E7080 */ sll $t6, $t6, 2 +/* 02BDFC 8002B1FC 03195021 */ addu $t2, $t8, $t9 +/* 02BE00 8002B200 01CFF821 */ addu $ra, $t6, $t7 +/* 02BE04 8002B204 854E0006 */ lh $t6, 6($t2) +/* 02BE08 8002B208 85480000 */ lh $t0, ($t2) +/* 02BE0C 8002B20C 24050001 */ li $a1, 1 +/* 02BE10 8002B210 01C83023 */ subu $a2, $t6, $t0 +/* 02BE14 8002B214 000678C3 */ sra $t7, $a2, 3 +/* 02BE18 8002B218 25E60001 */ addiu $a2, $t7, 1 +/* 02BE1C 8002B21C 0006C400 */ sll $t8, $a2, 0x10 +/* 02BE20 8002B220 00183403 */ sra $a2, $t8, 0x10 +/* 02BE24 8002B224 00C81821 */ addu $v1, $a2, $t0 +/* 02BE28 8002B228 00082400 */ sll $a0, $t0, 0x10 +/* 02BE2C 8002B22C 00037400 */ sll $t6, $v1, 0x10 +/* 02BE30 8002B230 0004C403 */ sra $t8, $a0, 0x10 +/* 02BE34 8002B234 00008825 */ move $s1, $zero +/* 02BE38 8002B238 000E1C03 */ sra $v1, $t6, 0x10 +/* 02BE3C 8002B23C 03002025 */ move $a0, $t8 +/* 02BE40 8002B240 00003825 */ move $a3, $zero +/* 02BE44 8002B244 0000B825 */ move $s7, $zero +.L8002B248: +/* 02BE48 8002B248 0076082A */ slt $at, $v1, $s6 +/* 02BE4C 8002B24C 14200007 */ bnez $at, .L8002B26C +/* 02BE50 8002B250 00661821 */ addu $v1, $v1, $a2 +/* 02BE54 8002B254 02C4082A */ slt $at, $s6, $a0 +/* 02BE58 8002B258 14200005 */ bnez $at, .L8002B270 +/* 02BE5C 8002B25C 00037C00 */ sll $t7, $v1, 0x10 +/* 02BE60 8002B260 02258825 */ or $s1, $s1, $a1 +/* 02BE64 8002B264 0011CC00 */ sll $t9, $s1, 0x10 +/* 02BE68 8002B268 00198C03 */ sra $s1, $t9, 0x10 +.L8002B26C: +/* 02BE6C 8002B26C 00037C00 */ sll $t7, $v1, 0x10 +.L8002B270: +/* 02BE70 8002B270 000F1C03 */ sra $v1, $t7, 0x10 +/* 02BE74 8002B274 24E70001 */ addiu $a3, $a3, 1 +/* 02BE78 8002B278 00862021 */ addu $a0, $a0, $a2 +/* 02BE7C 8002B27C 00A07825 */ move $t7, $a1 +/* 02BE80 8002B280 28E10008 */ slti $at, $a3, 8 +/* 02BE84 8002B284 0004CC00 */ sll $t9, $a0, 0x10 +/* 02BE88 8002B288 000FC440 */ sll $t8, $t7, 0x11 +/* 02BE8C 8002B28C 00192403 */ sra $a0, $t9, 0x10 +/* 02BE90 8002B290 1420FFED */ bnez $at, .L8002B248 +/* 02BE94 8002B294 00182C03 */ sra $a1, $t8, 0x10 +/* 02BE98 8002B298 85480004 */ lh $t0, 4($t2) +/* 02BE9C 8002B29C 854E000A */ lh $t6, 0xa($t2) +/* 02BEA0 8002B2A0 00082400 */ sll $a0, $t0, 0x10 +/* 02BEA4 8002B2A4 01C83023 */ subu $a2, $t6, $t0 +/* 02BEA8 8002B2A8 000678C3 */ sra $t7, $a2, 3 +/* 02BEAC 8002B2AC 25E60001 */ addiu $a2, $t7, 1 +/* 02BEB0 8002B2B0 0006C400 */ sll $t8, $a2, 0x10 +/* 02BEB4 8002B2B4 00183403 */ sra $a2, $t8, 0x10 +/* 02BEB8 8002B2B8 00C81821 */ addu $v1, $a2, $t0 +/* 02BEBC 8002B2BC 00037400 */ sll $t6, $v1, 0x10 +/* 02BEC0 8002B2C0 0004C403 */ sra $t8, $a0, 0x10 +/* 02BEC4 8002B2C4 000E1C03 */ sra $v1, $t6, 0x10 +/* 02BEC8 8002B2C8 03002025 */ move $a0, $t8 +/* 02BECC 8002B2CC 00003825 */ move $a3, $zero +.L8002B2D0: +/* 02BED0 8002B2D0 0074082A */ slt $at, $v1, $s4 +/* 02BED4 8002B2D4 14200007 */ bnez $at, .L8002B2F4 +/* 02BED8 8002B2D8 00661821 */ addu $v1, $v1, $a2 +/* 02BEDC 8002B2DC 0284082A */ slt $at, $s4, $a0 +/* 02BEE0 8002B2E0 14200005 */ bnez $at, .L8002B2F8 +/* 02BEE4 8002B2E4 00037C00 */ sll $t7, $v1, 0x10 +/* 02BEE8 8002B2E8 02258825 */ or $s1, $s1, $a1 +/* 02BEEC 8002B2EC 0011CC00 */ sll $t9, $s1, 0x10 +/* 02BEF0 8002B2F0 00198C03 */ sra $s1, $t9, 0x10 +.L8002B2F4: +/* 02BEF4 8002B2F4 00037C00 */ sll $t7, $v1, 0x10 +.L8002B2F8: +/* 02BEF8 8002B2F8 000F1C03 */ sra $v1, $t7, 0x10 +/* 02BEFC 8002B2FC 00862021 */ addu $a0, $a0, $a2 +/* 02BF00 8002B300 0004CC00 */ sll $t9, $a0, 0x10 +/* 02BF04 8002B304 00A07825 */ move $t7, $a1 +/* 02BF08 8002B308 00197403 */ sra $t6, $t9, 0x10 +/* 02BF0C 8002B30C 000FC440 */ sll $t8, $t7, 0x11 +/* 02BF10 8002B310 0074082A */ slt $at, $v1, $s4 +/* 02BF14 8002B314 0018CC03 */ sra $t9, $t8, 0x10 +/* 02BF18 8002B318 01C02025 */ move $a0, $t6 +/* 02BF1C 8002B31C 14200007 */ bnez $at, .L8002B33C +/* 02BF20 8002B320 03202825 */ move $a1, $t9 +/* 02BF24 8002B324 028E082A */ slt $at, $s4, $t6 +/* 02BF28 8002B328 14200004 */ bnez $at, .L8002B33C +/* 02BF2C 8002B32C 00000000 */ nop +/* 02BF30 8002B330 02398825 */ or $s1, $s1, $t9 +/* 02BF34 8002B334 00117400 */ sll $t6, $s1, 0x10 +/* 02BF38 8002B338 000E8C03 */ sra $s1, $t6, 0x10 +.L8002B33C: +/* 02BF3C 8002B33C 00661821 */ addu $v1, $v1, $a2 +/* 02BF40 8002B340 0003C400 */ sll $t8, $v1, 0x10 +/* 02BF44 8002B344 00181C03 */ sra $v1, $t8, 0x10 +/* 02BF48 8002B348 00862021 */ addu $a0, $a0, $a2 +/* 02BF4C 8002B34C 00047400 */ sll $t6, $a0, 0x10 +/* 02BF50 8002B350 00A0C025 */ move $t8, $a1 +/* 02BF54 8002B354 0018CC40 */ sll $t9, $t8, 0x11 +/* 02BF58 8002B358 000E7C03 */ sra $t7, $t6, 0x10 +/* 02BF5C 8002B35C 00197403 */ sra $t6, $t9, 0x10 +/* 02BF60 8002B360 0074082A */ slt $at, $v1, $s4 +/* 02BF64 8002B364 01C02825 */ move $a1, $t6 +/* 02BF68 8002B368 14200007 */ bnez $at, .L8002B388 +/* 02BF6C 8002B36C 01E02025 */ move $a0, $t7 +/* 02BF70 8002B370 028F082A */ slt $at, $s4, $t7 +/* 02BF74 8002B374 14200004 */ bnez $at, .L8002B388 +/* 02BF78 8002B378 00000000 */ nop +/* 02BF7C 8002B37C 022E8825 */ or $s1, $s1, $t6 +/* 02BF80 8002B380 00117C00 */ sll $t7, $s1, 0x10 +/* 02BF84 8002B384 000F8C03 */ sra $s1, $t7, 0x10 +.L8002B388: +/* 02BF88 8002B388 00661821 */ addu $v1, $v1, $a2 +/* 02BF8C 8002B38C 0003CC00 */ sll $t9, $v1, 0x10 +/* 02BF90 8002B390 00191C03 */ sra $v1, $t9, 0x10 +/* 02BF94 8002B394 00862021 */ addu $a0, $a0, $a2 +/* 02BF98 8002B398 00047C00 */ sll $t7, $a0, 0x10 +/* 02BF9C 8002B39C 00A0C825 */ move $t9, $a1 +/* 02BFA0 8002B3A0 00197440 */ sll $t6, $t9, 0x11 +/* 02BFA4 8002B3A4 000FC403 */ sra $t8, $t7, 0x10 +/* 02BFA8 8002B3A8 000E7C03 */ sra $t7, $t6, 0x10 +/* 02BFAC 8002B3AC 0074082A */ slt $at, $v1, $s4 +/* 02BFB0 8002B3B0 01E02825 */ move $a1, $t7 +/* 02BFB4 8002B3B4 14200007 */ bnez $at, .L8002B3D4 +/* 02BFB8 8002B3B8 03002025 */ move $a0, $t8 +/* 02BFBC 8002B3BC 0298082A */ slt $at, $s4, $t8 +/* 02BFC0 8002B3C0 14200004 */ bnez $at, .L8002B3D4 +/* 02BFC4 8002B3C4 00000000 */ nop +/* 02BFC8 8002B3C8 022F8825 */ or $s1, $s1, $t7 +/* 02BFCC 8002B3CC 0011C400 */ sll $t8, $s1, 0x10 +/* 02BFD0 8002B3D0 00188C03 */ sra $s1, $t8, 0x10 +.L8002B3D4: +/* 02BFD4 8002B3D4 00661821 */ addu $v1, $v1, $a2 +/* 02BFD8 8002B3D8 00037400 */ sll $t6, $v1, 0x10 +/* 02BFDC 8002B3DC 000E1C03 */ sra $v1, $t6, 0x10 +/* 02BFE0 8002B3E0 00A07025 */ move $t6, $a1 +/* 02BFE4 8002B3E4 00862021 */ addu $a0, $a0, $a2 +/* 02BFE8 8002B3E8 0004C400 */ sll $t8, $a0, 0x10 +/* 02BFEC 8002B3EC 000E7C40 */ sll $t7, $t6, 0x11 +/* 02BFF0 8002B3F0 24E70004 */ addiu $a3, $a3, 4 +/* 02BFF4 8002B3F4 24010008 */ li $at, 8 +/* 02BFF8 8002B3F8 000F2C03 */ sra $a1, $t7, 0x10 +/* 02BFFC 8002B3FC 14E1FFB4 */ bne $a3, $at, .L8002B2D0 +/* 02C000 8002B400 00182403 */ sra $a0, $t8, 0x10 +/* 02C004 8002B404 87E50020 */ lh $a1, 0x20($ra) +/* 02C008 8002B408 00000000 */ nop +/* 02C00C 8002B40C 18A00097 */ blez $a1, .L8002B66C +/* 02C010 8002B410 00177080 */ sll $t6, $s7, 2 +.L8002B414: +/* 02C014 8002B414 8FF9000C */ lw $t9, 0xc($ra) +/* 02C018 8002B418 01D77023 */ subu $t6, $t6, $s7 +/* 02C01C 8002B41C 000E7080 */ sll $t6, $t6, 2 +/* 02C020 8002B420 3C0F800E */ lui $t7, %hi(gCurrentLevelModel) # $t7, 0x800e +/* 02C024 8002B424 8DEFC918 */ lw $t7, %lo(gCurrentLevelModel)($t7) +/* 02C028 8002B428 032E1821 */ addu $v1, $t9, $t6 +/* 02C02C 8002B42C 90790000 */ lbu $t9, ($v1) +/* 02C030 8002B430 8DF80000 */ lw $t8, ($t7) +/* 02C034 8002B434 001970C0 */ sll $t6, $t9, 3 +/* 02C038 8002B438 030E7821 */ addu $t7, $t8, $t6 +/* 02C03C 8002B43C 81F20007 */ lb $s2, 7($t7) +/* 02C040 8002B440 84640004 */ lh $a0, 4($v1) +/* 02C044 8002B444 846D0002 */ lh $t5, 2($v1) +/* 02C048 8002B448 84700010 */ lh $s0, 0x10($v1) +/* 02C04C 8002B44C 2401000B */ li $at, 11 +/* 02C050 8002B450 12410009 */ beq $s2, $at, .L8002B478 +/* 02C054 8002B454 2401000F */ li $at, 15 +/* 02C058 8002B458 12410008 */ beq $s2, $at, .L8002B47C +/* 02C05C 8002B45C 0090082A */ slt $at, $a0, $s0 +/* 02C060 8002B460 8C790008 */ lw $t9, 8($v1) +/* 02C064 8002B464 00000000 */ nop +/* 02C068 8002B468 33380300 */ andi $t8, $t9, 0x300 +/* 02C06C 8002B46C 13000003 */ beqz $t8, .L8002B47C +/* 02C070 8002B470 0090082A */ slt $at, $a0, $s0 +/* 02C074 8002B474 02002025 */ move $a0, $s0 +.L8002B478: +/* 02C078 8002B478 0090082A */ slt $at, $a0, $s0 +.L8002B47C: +/* 02C07C 8002B47C 10200077 */ beqz $at, .L8002B65C +/* 02C080 8002B480 00805025 */ move $t2, $a0 +.L8002B484: +/* 02C084 8002B484 8FEE0010 */ lw $t6, 0x10($ra) +/* 02C088 8002B488 000A7840 */ sll $t7, $t2, 1 +/* 02C08C 8002B48C 01CFC821 */ addu $t9, $t6, $t7 +/* 02C090 8002B490 87380000 */ lh $t8, ($t9) +/* 02C094 8002B494 00000000 */ nop +/* 02C098 8002B498 03117024 */ and $t6, $t8, $s1 +/* 02C09C 8002B49C 162E0069 */ bne $s1, $t6, .L8002B644 +/* 02C0A0 8002B4A0 00000000 */ nop +/* 02C0A4 8002B4A4 8FEF0004 */ lw $t7, 4($ra) +/* 02C0A8 8002B4A8 000AC900 */ sll $t9, $t2, 4 +/* 02C0AC 8002B4AC 01F92021 */ addu $a0, $t7, $t9 +/* 02C0B0 8002B4B0 90980001 */ lbu $t8, 1($a0) +/* 02C0B4 8002B4B4 90990002 */ lbu $t9, 2($a0) +/* 02C0B8 8002B4B8 030D7021 */ addu $t6, $t8, $t5 +/* 02C0BC 8002B4BC 01D30019 */ multu $t6, $s3 +/* 02C0C0 8002B4C0 032DC021 */ addu $t8, $t9, $t5 +/* 02C0C4 8002B4C4 8FE50000 */ lw $a1, ($ra) +/* 02C0C8 8002B4C8 00007812 */ mflo $t7 +/* 02C0CC 8002B4CC 01E51821 */ addu $v1, $t7, $a1 +/* 02C0D0 8002B4D0 908F0003 */ lbu $t7, 3($a0) +/* 02C0D4 8002B4D4 03130019 */ multu $t8, $s3 +/* 02C0D8 8002B4D8 01EDC821 */ addu $t9, $t7, $t5 +/* 02C0DC 8002B4DC 84660000 */ lh $a2, ($v1) +/* 02C0E0 8002B4E0 84670004 */ lh $a3, 4($v1) +/* 02C0E4 8002B4E4 00000000 */ nop +/* 02C0E8 8002B4E8 02872023 */ subu $a0, $s4, $a3 +/* 02C0EC 8002B4EC 00007012 */ mflo $t6 +/* 02C0F0 8002B4F0 01C51821 */ addu $v1, $t6, $a1 +/* 02C0F4 8002B4F4 84680000 */ lh $t0, ($v1) +/* 02C0F8 8002B4F8 03330019 */ multu $t9, $s3 +/* 02C0FC 8002B4FC 84690004 */ lh $t1, 4($v1) +/* 02C100 8002B500 0106C823 */ subu $t9, $t0, $a2 +/* 02C104 8002B504 01277023 */ subu $t6, $t1, $a3 +/* 02C108 8002B508 0000C012 */ mflo $t8 +/* 02C10C 8002B50C 03051821 */ addu $v1, $t8, $a1 +/* 02C110 8002B510 846B0000 */ lh $t3, ($v1) +/* 02C114 8002B514 846C0004 */ lh $t4, 4($v1) +/* 02C118 8002B518 02C61823 */ subu $v1, $s6, $a2 +/* 02C11C 8002B51C 006E0019 */ multu $v1, $t6 +/* 02C120 8002B520 00007812 */ mflo $t7 +/* 02C124 8002B524 00000000 */ nop +/* 02C128 8002B528 00000000 */ nop +/* 02C12C 8002B52C 03240019 */ multu $t9, $a0 +/* 02C130 8002B530 02C8C823 */ subu $t9, $s6, $t0 +/* 02C134 8002B534 0000C012 */ mflo $t8 +/* 02C138 8002B538 01F82823 */ subu $a1, $t7, $t8 +/* 02C13C 8002B53C 01897823 */ subu $t7, $t4, $t1 +/* 02C140 8002B540 032F0019 */ multu $t9, $t7 +/* 02C144 8002B544 28AE0000 */ slti $t6, $a1, 0 +/* 02C148 8002B548 39C50001 */ xori $a1, $t6, 1 +/* 02C14C 8002B54C 0289C823 */ subu $t9, $s4, $t1 +/* 02C150 8002B550 01687023 */ subu $t6, $t3, $t0 +/* 02C154 8002B554 0000C012 */ mflo $t8 +/* 02C158 8002B558 00000000 */ nop +/* 02C15C 8002B55C 00000000 */ nop +/* 02C160 8002B560 01D90019 */ multu $t6, $t9 +/* 02C164 8002B564 00007812 */ mflo $t7 +/* 02C168 8002B568 030F7023 */ subu $t6, $t8, $t7 +/* 02C16C 8002B56C 29D90000 */ slti $t9, $t6, 0 +/* 02C170 8002B570 3B390001 */ xori $t9, $t9, 1 +/* 02C174 8002B574 17250033 */ bne $t9, $a1, .L8002B644 +/* 02C178 8002B578 0187C023 */ subu $t8, $t4, $a3 +/* 02C17C 8002B57C 00780019 */ multu $v1, $t8 +/* 02C180 8002B580 01667023 */ subu $t6, $t3, $a2 +/* 02C184 8002B584 00007812 */ mflo $t7 +/* 02C188 8002B588 00000000 */ nop +/* 02C18C 8002B58C 00000000 */ nop +/* 02C190 8002B590 01C40019 */ multu $t6, $a0 +/* 02C194 8002B594 0000C812 */ mflo $t9 +/* 02C198 8002B598 01F9C023 */ subu $t8, $t7, $t9 +/* 02C19C 8002B59C 2B0E0000 */ slti $t6, $t8, 0 +/* 02C1A0 8002B5A0 39CE0001 */ xori $t6, $t6, 1 +/* 02C1A4 8002B5A4 10AE0027 */ beq $a1, $t6, .L8002B644 +/* 02C1A8 8002B5A8 00000000 */ nop +/* 02C1AC 8002B5AC 8FEF0014 */ lw $t7, 0x14($ra) +/* 02C1B0 8002B5B0 000AC8C0 */ sll $t9, $t2, 3 +/* 02C1B4 8002B5B4 01F9C021 */ addu $t8, $t7, $t9 +/* 02C1B8 8002B5B8 970F0000 */ lhu $t7, ($t8) +/* 02C1BC 8002B5BC 8FEE0018 */ lw $t6, 0x18($ra) +/* 02C1C0 8002B5C0 000FC900 */ sll $t9, $t7, 4 +/* 02C1C4 8002B5C4 01D91821 */ addu $v1, $t6, $t9 +/* 02C1C8 8002B5C8 C4600004 */ lwc1 $f0, 4($v1) +/* 02C1CC 8002B5CC C4620000 */ lwc1 $f2, ($v1) +/* 02C1D0 8002B5D0 46000221 */ cvt.d.s $f8, $f0 +/* 02C1D4 8002B5D4 46288032 */ c.eq.d $f16, $f8 +/* 02C1D8 8002B5D8 C46C0008 */ lwc1 $f12, 8($v1) +/* 02C1DC 8002B5DC C46E000C */ lwc1 $f14, 0xc($v1) +/* 02C1E0 8002B5E0 45010018 */ bc1t .L8002B644 +/* 02C1E4 8002B5E4 00000000 */ nop +/* 02C1E8 8002B5E8 46141282 */ mul.s $f10, $f2, $f20 +/* 02C1EC 8002B5EC 0015C080 */ sll $t8, $s5, 2 +/* 02C1F0 8002B5F0 0315C021 */ addu $t8, $t8, $s5 +/* 02C1F4 8002B5F4 3C0F8012 */ lui $t7, %hi(D_8011D128) # $t7, 0x8012 +/* 02C1F8 8002B5F8 46166482 */ mul.s $f18, $f12, $f22 +/* 02C1FC 8002B5FC 25EFD128 */ addiu $t7, %lo(D_8011D128) # addiu $t7, $t7, -0x2ed8 +/* 02C200 8002B600 0018C080 */ sll $t8, $t8, 2 +/* 02C204 8002B604 030F1821 */ addu $v1, $t8, $t7 +/* 02C208 8002B608 46125100 */ add.s $f4, $f10, $f18 +/* 02C20C 8002B60C 26B50001 */ addiu $s5, $s5, 1 +/* 02C210 8002B610 460E2180 */ add.s $f6, $f4, $f14 +/* 02C214 8002B614 2AA10014 */ slti $at, $s5, 0x14 +/* 02C218 8002B618 46003203 */ div.s $f8, $f6, $f0 +/* 02C21C 8002B61C A0720010 */ sb $s2, 0x10($v1) +/* 02C220 8002B620 E4620004 */ swc1 $f2, 4($v1) +/* 02C224 8002B624 E4600008 */ swc1 $f0, 8($v1) +/* 02C228 8002B628 E46C000C */ swc1 $f12, 0xc($v1) +/* 02C22C 8002B62C 46004287 */ neg.s $f10, $f8 +/* 02C230 8002B630 14200004 */ bnez $at, .L8002B644 +/* 02C234 8002B634 E46A0000 */ swc1 $f10, ($v1) +/* 02C238 8002B638 87F70020 */ lh $s7, 0x20($ra) +/* 02C23C 8002B63C 02005025 */ move $t2, $s0 +/* 02C240 8002B640 0040F025 */ move $fp, $v0 +.L8002B644: +/* 02C244 8002B644 254A0001 */ addiu $t2, $t2, 1 +/* 02C248 8002B648 0150082A */ slt $at, $t2, $s0 +/* 02C24C 8002B64C 1420FF8D */ bnez $at, .L8002B484 +/* 02C250 8002B650 00000000 */ nop +/* 02C254 8002B654 87E50020 */ lh $a1, 0x20($ra) +/* 02C258 8002B658 00000000 */ nop +.L8002B65C: +/* 02C25C 8002B65C 26F70001 */ addiu $s7, $s7, 1 +/* 02C260 8002B660 02E5082A */ slt $at, $s7, $a1 +/* 02C264 8002B664 1420FF6B */ bnez $at, .L8002B414 +/* 02C268 8002B668 00177080 */ sll $t6, $s7, 2 +.L8002B66C: +/* 02C26C 8002B66C 8FAE0108 */ lw $t6, 0x108($sp) +/* 02C270 8002B670 27DE0001 */ addiu $fp, $fp, 1 +/* 02C274 8002B674 03CE082A */ slt $at, $fp, $t6 +/* 02C278 8002B678 1420FED4 */ bnez $at, .L8002B1CC +/* 02C27C 8002B67C 001EC880 */ sll $t9, $fp, 2 +/* 02C280 8002B680 8FB00128 */ lw $s0, 0x128($sp) +/* 02C284 8002B684 00000000 */ nop +.L8002B688: +/* 02C288 8002B688 0600002C */ bltz $s0, .L8002B73C +/* 02C28C 8002B68C 3C0B800E */ lui $t3, %hi(gCurrentLevelModel) # $t3, 0x800e +/* 02C290 8002B690 8D6BC918 */ lw $t3, %lo(gCurrentLevelModel)($t3) +/* 02C294 8002B694 3C088012 */ lui $t0, %hi(D_8011D128) # $t0, 0x8012 +/* 02C298 8002B698 8579001A */ lh $t9, 0x1a($t3) +/* 02C29C 8002B69C 2508D128 */ addiu $t0, %lo(D_8011D128) # addiu $t0, $t0, -0x2ed8 +/* 02C2A0 8002B6A0 0219082A */ slt $at, $s0, $t9 +/* 02C2A4 8002B6A4 10200025 */ beqz $at, .L8002B73C +/* 02C2A8 8002B6A8 00107900 */ sll $t7, $s0, 4 +/* 02C2AC 8002B6AC 00151080 */ sll $v0, $s5, 2 +/* 02C2B0 8002B6B0 00551021 */ addu $v0, $v0, $s5 +/* 02C2B4 8002B6B4 8D780004 */ lw $t8, 4($t3) +/* 02C2B8 8002B6B8 01F07821 */ addu $t7, $t7, $s0 +/* 02C2BC 8002B6BC 00021080 */ sll $v0, $v0, 2 +/* 02C2C0 8002B6C0 000F7880 */ sll $t7, $t7, 2 +/* 02C2C4 8002B6C4 01021821 */ addu $v1, $t0, $v0 +/* 02C2C8 8002B6C8 240E000E */ li $t6, 14 +/* 02C2CC 8002B6CC A06E0010 */ sb $t6, 0x10($v1) +/* 02C2D0 8002B6D0 030FF821 */ addu $ra, $t8, $t7 +/* 02C2D4 8002B6D4 83F9002B */ lb $t9, 0x2b($ra) +/* 02C2D8 8002B6D8 3C188012 */ lui $t8, %hi(D_8011D384) # $t8, 0x8012 +/* 02C2DC 8002B6DC 1320000D */ beqz $t9, .L8002B714 +/* 02C2E0 8002B6E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 02C2E4 8002B6E4 8F18D384 */ lw $t8, %lo(D_8011D384)($t8) +/* 02C2E8 8002B6E8 02002025 */ move $a0, $s0 +/* 02C2EC 8002B6EC 13000009 */ beqz $t8, .L8002B714 +/* 02C2F0 8002B6F0 00483821 */ addu $a3, $v0, $t0 +/* 02C2F4 8002B6F4 4405A000 */ mfc1 $a1, $f20 +/* 02C2F8 8002B6F8 4406B000 */ mfc1 $a2, $f22 +/* 02C2FC 8002B6FC 24E70004 */ addiu $a3, $a3, 4 +/* 02C300 8002B700 0C02ECBD */ jal func_800BB2F4 +/* 02C304 8002B704 AFA30064 */ sw $v1, 0x64($sp) +/* 02C308 8002B708 8FA30064 */ lw $v1, 0x64($sp) +/* 02C30C 8002B70C 1000000A */ b .L8002B738 +/* 02C310 8002B710 E4600000 */ swc1 $f0, ($v1) +.L8002B714: +/* 02C314 8002B714 87EF0038 */ lh $t7, 0x38($ra) +/* 02C318 8002B718 44800000 */ mtc1 $zero, $f0 +/* 02C31C 8002B71C 448F9000 */ mtc1 $t7, $f18 +/* 02C320 8002B720 44813000 */ mtc1 $at, $f6 +/* 02C324 8002B724 46809120 */ cvt.s.w $f4, $f18 +/* 02C328 8002B728 E4600004 */ swc1 $f0, 4($v1) +/* 02C32C 8002B72C E460000C */ swc1 $f0, 0xc($v1) +/* 02C330 8002B730 E4640000 */ swc1 $f4, ($v1) +/* 02C334 8002B734 E4660008 */ swc1 $f6, 8($v1) +.L8002B738: +/* 02C338 8002B738 26B50001 */ addiu $s5, $s5, 1 +.L8002B73C: +/* 02C33C 8002B73C 1AA0002F */ blez $s5, .L8002B7FC +/* 02C340 8002B740 00003825 */ move $a3, $zero +/* 02C344 8002B744 32A50003 */ andi $a1, $s5, 3 +/* 02C348 8002B748 10A0000F */ beqz $a1, .L8002B788 +/* 02C34C 8002B74C 00A02025 */ move $a0, $a1 +/* 02C350 8002B750 3C198012 */ lui $t9, %hi(gTrackWaves) # $t9, 0x8012 +/* 02C354 8002B754 3C0F8012 */ lui $t7, %hi(D_8011D128) # $t7, 0x8012 +/* 02C358 8002B758 25EFD128 */ addiu $t7, %lo(D_8011D128) # addiu $t7, $t7, -0x2ed8 +/* 02C35C 8002B75C 2739D2B8 */ addiu $t9, %lo(gTrackWaves) # addiu $t9, $t9, -0x2d48 +/* 02C360 8002B760 00007080 */ sll $t6, $zero, 2 +/* 02C364 8002B764 0000C100 */ sll $t8, $zero, 4 +/* 02C368 8002B768 030F1021 */ addu $v0, $t8, $t7 +/* 02C36C 8002B76C 01D91821 */ addu $v1, $t6, $t9 +.L8002B770: +/* 02C370 8002B770 AC620000 */ sw $v0, ($v1) +/* 02C374 8002B774 24E70001 */ addiu $a3, $a3, 1 +/* 02C378 8002B778 24420014 */ addiu $v0, $v0, 0x14 +/* 02C37C 8002B77C 1487FFFC */ bne $a0, $a3, .L8002B770 +/* 02C380 8002B780 24630004 */ addiu $v1, $v1, 4 +/* 02C384 8002B784 10F5001D */ beq $a3, $s5, .L8002B7FC +.L8002B788: +/* 02C388 8002B788 00157080 */ sll $t6, $s5, 2 +/* 02C38C 8002B78C 01D57021 */ addu $t6, $t6, $s5 +/* 02C390 8002B790 3C198012 */ lui $t9, %hi(D_8011D164) # $t9, 0x8012 +/* 02C394 8002B794 2739D164 */ addiu $t9, %lo(D_8011D164) # addiu $t9, $t9, -0x2e9c +/* 02C398 8002B798 000E7080 */ sll $t6, $t6, 2 +/* 02C39C 8002B79C 01D94021 */ addu $t0, $t6, $t9 +/* 02C3A0 8002B7A0 00077080 */ sll $t6, $a3, 2 +/* 02C3A4 8002B7A4 01C77021 */ addu $t6, $t6, $a3 +/* 02C3A8 8002B7A8 3C198012 */ lui $t9, %hi(D_8011D128) # $t9, 0x8012 +/* 02C3AC 8002B7AC 2739D128 */ addiu $t9, %lo(D_8011D128) # addiu $t9, $t9, -0x2ed8 +/* 02C3B0 8002B7B0 000E7080 */ sll $t6, $t6, 2 +/* 02C3B4 8002B7B4 01D91021 */ addu $v0, $t6, $t9 +/* 02C3B8 8002B7B8 3C0F8012 */ lui $t7, %hi(gTrackWaves) # $t7, 0x8012 +/* 02C3BC 8002B7BC 25EFD2B8 */ addiu $t7, %lo(gTrackWaves) # addiu $t7, $t7, -0x2d48 +/* 02C3C0 8002B7C0 0007C080 */ sll $t8, $a3, 2 +/* 02C3C4 8002B7C4 030F1821 */ addu $v1, $t8, $t7 +/* 02C3C8 8002B7C8 24450014 */ addiu $a1, $v0, 0x14 +/* 02C3CC 8002B7CC 24460028 */ addiu $a2, $v0, 0x28 +/* 02C3D0 8002B7D0 2444003C */ addiu $a0, $v0, 0x3c +.L8002B7D4: +/* 02C3D4 8002B7D4 AC64000C */ sw $a0, 0xc($v1) +/* 02C3D8 8002B7D8 24840050 */ addiu $a0, $a0, 0x50 +/* 02C3DC 8002B7DC AC620000 */ sw $v0, ($v1) +/* 02C3E0 8002B7E0 AC650004 */ sw $a1, 4($v1) +/* 02C3E4 8002B7E4 AC660008 */ sw $a2, 8($v1) +/* 02C3E8 8002B7E8 24C60050 */ addiu $a2, $a2, 0x50 +/* 02C3EC 8002B7EC 24A50050 */ addiu $a1, $a1, 0x50 +/* 02C3F0 8002B7F0 24420050 */ addiu $v0, $v0, 0x50 +/* 02C3F4 8002B7F4 1488FFF7 */ bne $a0, $t0, .L8002B7D4 +/* 02C3F8 8002B7F8 24630010 */ addiu $v1, $v1, 0x10 +.L8002B7FC: +/* 02C3FC 8002B7FC 26A9FFFF */ addiu $t1, $s5, -1 +/* 02C400 8002B800 24060001 */ li $a2, 1 +.L8002B804: +/* 02C404 8002B804 19200054 */ blez $t1, .L8002B958 +/* 02C408 8002B808 00003825 */ move $a3, $zero +/* 02C40C 8002B80C 26A2FFFF */ addiu $v0, $s5, -1 +/* 02C410 8002B810 30580003 */ andi $t8, $v0, 3 +/* 02C414 8002B814 13000014 */ beqz $t8, .L8002B868 +/* 02C418 8002B818 03004025 */ move $t0, $t8 +/* 02C41C 8002B81C 3C0E8012 */ lui $t6, %hi(gTrackWaves) # $t6, 0x8012 +/* 02C420 8002B820 25CED2B8 */ addiu $t6, %lo(gTrackWaves) # addiu $t6, $t6, -0x2d48 +/* 02C424 8002B824 00007880 */ sll $t7, $zero, 2 +/* 02C428 8002B828 01EE1821 */ addu $v1, $t7, $t6 +.L8002B82C: +/* 02C42C 8002B82C 8C650000 */ lw $a1, ($v1) +/* 02C430 8002B830 8C640004 */ lw $a0, 4($v1) +/* 02C434 8002B834 C4A80000 */ lwc1 $f8, ($a1) +/* 02C438 8002B838 C48A0000 */ lwc1 $f10, ($a0) +/* 02C43C 8002B83C 24E70001 */ addiu $a3, $a3, 1 +/* 02C440 8002B840 460A403C */ c.lt.s $f8, $f10 +/* 02C444 8002B844 00000000 */ nop +/* 02C448 8002B848 45000004 */ bc1f .L8002B85C +/* 02C44C 8002B84C 00000000 */ nop +/* 02C450 8002B850 00003025 */ move $a2, $zero +/* 02C454 8002B854 AC640000 */ sw $a0, ($v1) +/* 02C458 8002B858 AC650004 */ sw $a1, 4($v1) +.L8002B85C: +/* 02C45C 8002B85C 1507FFF3 */ bne $t0, $a3, .L8002B82C +/* 02C460 8002B860 24630004 */ addiu $v1, $v1, 4 +/* 02C464 8002B864 10E9003C */ beq $a3, $t1, .L8002B958 +.L8002B868: +/* 02C468 8002B868 3C188012 */ lui $t8, %hi(gTrackWaves) # $t8, 0x8012 +/* 02C46C 8002B86C 2718D2B8 */ addiu $t8, %lo(gTrackWaves) # addiu $t8, $t8, -0x2d48 +/* 02C470 8002B870 0009C880 */ sll $t9, $t1, 2 +/* 02C474 8002B874 00077880 */ sll $t7, $a3, 2 +/* 02C478 8002B878 01F81821 */ addu $v1, $t7, $t8 +/* 02C47C 8002B87C 03384021 */ addu $t0, $t9, $t8 +.L8002B880: +/* 02C480 8002B880 8C650000 */ lw $a1, ($v1) +/* 02C484 8002B884 8C640004 */ lw $a0, 4($v1) +/* 02C488 8002B888 C4B20000 */ lwc1 $f18, ($a1) +/* 02C48C 8002B88C C4800000 */ lwc1 $f0, ($a0) +/* 02C490 8002B890 00000000 */ nop +/* 02C494 8002B894 4600903C */ c.lt.s $f18, $f0 +/* 02C498 8002B898 00000000 */ nop +/* 02C49C 8002B89C 45000006 */ bc1f .L8002B8B8 +/* 02C4A0 8002B8A0 00000000 */ nop +/* 02C4A4 8002B8A4 AC640000 */ sw $a0, ($v1) +/* 02C4A8 8002B8A8 AC650004 */ sw $a1, 4($v1) +/* 02C4AC 8002B8AC C4A00000 */ lwc1 $f0, ($a1) +/* 02C4B0 8002B8B0 00003025 */ move $a2, $zero +/* 02C4B4 8002B8B4 00A02025 */ move $a0, $a1 +.L8002B8B8: +/* 02C4B8 8002B8B8 8C650008 */ lw $a1, 8($v1) +/* 02C4BC 8002B8BC 00000000 */ nop +/* 02C4C0 8002B8C0 C4A20000 */ lwc1 $f2, ($a1) +/* 02C4C4 8002B8C4 00000000 */ nop +/* 02C4C8 8002B8C8 4602003C */ c.lt.s $f0, $f2 +/* 02C4CC 8002B8CC 00000000 */ nop +/* 02C4D0 8002B8D0 45000006 */ bc1f .L8002B8EC +/* 02C4D4 8002B8D4 00000000 */ nop +/* 02C4D8 8002B8D8 AC650004 */ sw $a1, 4($v1) +/* 02C4DC 8002B8DC AC640008 */ sw $a0, 8($v1) +/* 02C4E0 8002B8E0 C4820000 */ lwc1 $f2, ($a0) +/* 02C4E4 8002B8E4 00802825 */ move $a1, $a0 +/* 02C4E8 8002B8E8 00003025 */ move $a2, $zero +.L8002B8EC: +/* 02C4EC 8002B8EC 8C64000C */ lw $a0, 0xc($v1) +/* 02C4F0 8002B8F0 00000000 */ nop +/* 02C4F4 8002B8F4 C4800000 */ lwc1 $f0, ($a0) +/* 02C4F8 8002B8F8 00000000 */ nop +/* 02C4FC 8002B8FC 4600103C */ c.lt.s $f2, $f0 +/* 02C500 8002B900 00000000 */ nop +/* 02C504 8002B904 45000006 */ bc1f .L8002B920 +/* 02C508 8002B908 00000000 */ nop +/* 02C50C 8002B90C AC640008 */ sw $a0, 8($v1) +/* 02C510 8002B910 AC65000C */ sw $a1, 0xc($v1) +/* 02C514 8002B914 C4A00000 */ lwc1 $f0, ($a1) +/* 02C518 8002B918 00A02025 */ move $a0, $a1 +/* 02C51C 8002B91C 00003025 */ move $a2, $zero +.L8002B920: +/* 02C520 8002B920 8C650010 */ lw $a1, 0x10($v1) +/* 02C524 8002B924 00000000 */ nop +/* 02C528 8002B928 C4A40000 */ lwc1 $f4, ($a1) +/* 02C52C 8002B92C 00000000 */ nop +/* 02C530 8002B930 4604003C */ c.lt.s $f0, $f4 +/* 02C534 8002B934 00000000 */ nop +/* 02C538 8002B938 45000004 */ bc1f .L8002B94C +/* 02C53C 8002B93C 00000000 */ nop +/* 02C540 8002B940 00003025 */ move $a2, $zero +/* 02C544 8002B944 AC65000C */ sw $a1, 0xc($v1) +/* 02C548 8002B948 AC640010 */ sw $a0, 0x10($v1) +.L8002B94C: +/* 02C54C 8002B94C 24630010 */ addiu $v1, $v1, 0x10 +/* 02C550 8002B950 1468FFCB */ bne $v1, $t0, .L8002B880 +/* 02C554 8002B954 00000000 */ nop +.L8002B958: +/* 02C558 8002B958 10C0FFAA */ beqz $a2, .L8002B804 +/* 02C55C 8002B95C 24060001 */ li $a2, 1 +/* 02C560 8002B960 8FB90134 */ lw $t9, 0x134($sp) +/* 02C564 8002B964 3C0E8012 */ lui $t6, %hi(gTrackWaves) # $t6, 0x8012 +/* 02C568 8002B968 25CED2B8 */ addiu $t6, %lo(gTrackWaves) # addiu $t6, $t6, -0x2d48 +/* 02C56C 8002B96C 3C018012 */ lui $at, %hi(D_8011D308) # $at, 0x8012 +/* 02C570 8002B970 AF2E0000 */ sw $t6, ($t9) +/* 02C574 8002B974 A035D308 */ sb $s5, %lo(D_8011D308)($at) +/* 02C578 8002B978 02A01025 */ move $v0, $s5 +.L8002B97C: +/* 02C57C 8002B97C 8FBF004C */ lw $ra, 0x4c($sp) +/* 02C580 8002B980 C7B50018 */ lwc1 $f21, 0x18($sp) +/* 02C584 8002B984 C7B4001C */ lwc1 $f20, 0x1c($sp) +/* 02C588 8002B988 C7B70020 */ lwc1 $f23, 0x20($sp) +/* 02C58C 8002B98C C7B60024 */ lwc1 $f22, 0x24($sp) +/* 02C590 8002B990 8FB00028 */ lw $s0, 0x28($sp) +/* 02C594 8002B994 8FB1002C */ lw $s1, 0x2c($sp) +/* 02C598 8002B998 8FB20030 */ lw $s2, 0x30($sp) +/* 02C59C 8002B99C 8FB30034 */ lw $s3, 0x34($sp) +/* 02C5A0 8002B9A0 8FB40038 */ lw $s4, 0x38($sp) +/* 02C5A4 8002B9A4 8FB5003C */ lw $s5, 0x3c($sp) +/* 02C5A8 8002B9A8 8FB60040 */ lw $s6, 0x40($sp) +/* 02C5AC 8002B9AC 8FB70044 */ lw $s7, 0x44($sp) +/* 02C5B0 8002B9B0 8FBE0048 */ lw $fp, 0x48($sp) +/* 02C5B4 8002B9B4 03E00008 */ jr $ra +/* 02C5B8 8002B9B8 27BD0128 */ addiu $sp, $sp, 0x128 + diff --git a/asm/non_matchings/unknown_078050/render_texture_rectangle_scaled.s b/asm/non_matchings/unknown_078050/render_texture_rectangle_scaled.s index 67eaa67a..021efda7 100644 --- a/asm/non_matchings/unknown_078050/render_texture_rectangle_scaled.s +++ b/asm/non_matchings/unknown_078050/render_texture_rectangle_scaled.s @@ -21,18 +21,18 @@ glabel render_texture_rectangle_scaled /* 07994C 80078D4C 15C10009 */ bne $t6, $at, .L80078D74 /* 079950 80078D50 8FA800CC */ lw $t0, 0xcc($sp) /* 079954 80078D54 8FA800CC */ lw $t0, 0xcc($sp) -/* 079958 80078D58 3C0E800E */ lui $t6, %hi(D_800DE6A8) # $t6, 0x800e +/* 079958 80078D58 3C0E800E */ lui $t6, %hi(dTextureRectangleScaledOpa) # $t6, 0x800e /* 07995C 80078D5C 311800FF */ andi $t8, $t0, 0xff /* 079960 80078D60 0018C900 */ sll $t9, $t8, 4 -/* 079964 80078D64 25CEE6A8 */ addiu $t6, %lo(D_800DE6A8) # addiu $t6, $t6, -0x1958 +/* 079964 80078D64 25CEE6A8 */ addiu $t6, %lo(dTextureRectangleScaledOpa) # addiu $t6, $t6, -0x1958 /* 079968 80078D68 10000007 */ b .L80078D88 /* 07996C 80078D6C 032E3821 */ addu $a3, $t9, $t6 /* 079970 80078D70 8FA800CC */ lw $t0, 0xcc($sp) .L80078D74: -/* 079974 80078D74 3C0E800E */ lui $t6, %hi(D_800DE6E8) # $t6, 0x800e +/* 079974 80078D74 3C0E800E */ lui $t6, %hi(dTextureRectangleScaledXlu) # $t6, 0x800e /* 079978 80078D78 311800FF */ andi $t8, $t0, 0xff /* 07997C 80078D7C 0018C900 */ sll $t9, $t8, 4 -/* 079980 80078D80 25CEE6E8 */ addiu $t6, %lo(D_800DE6E8) # addiu $t6, $t6, -0x1918 +/* 079980 80078D80 25CEE6E8 */ addiu $t6, %lo(dTextureRectangleScaledXlu) # addiu $t6, $t6, -0x1918 /* 079984 80078D84 032E3821 */ addu $a3, $t9, $t6 .L80078D88: /* 079988 80078D88 8E040000 */ lw $a0, ($s0) diff --git a/lib/src/mips1/os/osCreatePiManager.c b/lib/src/mips1/os/osCreatePiManager.c index c72bcecb..0175cc2e 100644 --- a/lib/src/mips1/os/osCreatePiManager.c +++ b/lib/src/mips1/os/osCreatePiManager.c @@ -12,7 +12,7 @@ extern OSDevMgr __osPiDevMgr; // bss variables OSThread piThread; -u8 piThreadStack_2[256]; // piThreadStack[OS_PIM_STACKSIZE]; Shouldn't this be piThreadStack? +u64 gPIMgrStack[0x20]; OSMesgQueue piEventQueue; OSMesg piEventBuf[2]; @@ -41,7 +41,7 @@ void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgC __osPiDevMgr.dma = osPiRawStartDma; __osPiDevMgr.edma = osEPiRawStartDma; - osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, &piThreadStack[OS_PIM_STACKSIZE], pri); + osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, &gPIMgrStack[0x20], pri); osStartThread(&piThread); __osRestoreInt(savedMask); if (oldPri != -1) { diff --git a/lib/src/os/osInitialize.c b/lib/src/os/osInitialize.c index 3dc39e5c..c09ba98f 100644 --- a/lib/src/os/osInitialize.c +++ b/lib/src/os/osInitialize.c @@ -21,7 +21,7 @@ s32 gLeoFound = FALSE; s32 __osLeoInterrupt(void); extern s32 osViClock; //This is defined in another file somehow -extern s32 gThread30Stack; //TODO: This should be __osFinalrom. Is this reused? +extern u64 *gThread30StackPointer; //TODO: This should be __osFinalrom. Is this reused? //u32 __osFinalrom; void osInitialize() { u32 pifdata; @@ -29,7 +29,7 @@ void osInitialize() { u32 leostatus; u32 pistatus; //__osFinalrom = TRUE; - gThread30Stack = TRUE; //TODO: This should be __osFinalrom. Is this reused? + gThread30StackPointer = (u64 *) TRUE; //TODO: This should be __osFinalrom. Is this reused? __osSetSR(__osGetSR() | SR_CU1); //enable fpu __osSetFpcCsr(FPCSR_FS | FPCSR_EV); //flush denorm to zero, enable invalid operation diff --git a/lib/src/os/osViMgr.c b/lib/src/os/osViMgr.c index b518ab5f..ad12faaf 100644 --- a/lib/src/os/osViMgr.c +++ b/lib/src/os/osViMgr.c @@ -12,17 +12,15 @@ extern u32 __osBaseCounter; extern u32 __osViIntrCount; OSDevMgr __osViDevMgr = {0}; - -#define OS_VIM_STACKSIZE 4096 -u8 viThreadStack[2960]; // Should be OS_VIM_STACKSIZE? - -s32 gThread30Stack; +u64 gThread30Stack[0x400]; +u64 *gThread30StackPointer; extern OSThread viThread; extern OSMesgQueue viEventQueue; extern OSMesg viEventBuf[5]; extern OSIoMesg viRetraceMsg; extern OSIoMesg viCounterMsg; +extern u64 gViMgrStack[0x20]; void viMgrMain(void *arg); @@ -55,7 +53,7 @@ void osCreateViManager(OSPri pri) { __osViDevMgr.acsQueue = NULL; __osViDevMgr.dma = NULL; __osViDevMgr.edma = NULL; - osCreateThread(&viThread, 0, viMgrMain, &__osViDevMgr, &viThreadStack[OS_VIM_STACKSIZE], pri); + osCreateThread(&viThread, 0, viMgrMain, &__osViDevMgr, &gViMgrStack[0x20], pri); __osViInit(); osStartThread(&viThread); __osRestoreInt(savedMask); diff --git a/lib/src/os/siacs.c b/lib/src/os/siacs.c index 407e1f6a..3a377c82 100644 --- a/lib/src/os/siacs.c +++ b/lib/src/os/siacs.c @@ -14,7 +14,8 @@ u32 __osSiAccessQueueEnabled = 0; static OSMesg siAccessBuf[SI_Q_BUF_LEN]; OSMesgQueue __osSiAccessQueue; OSPifRam __osEepPifRam; -s32 viThread[172]; +OSThread viThread; +u64 gViMgrStack[0x20]; s32 viEventQueue[6]; s32 viEventBuf[6]; s32 viRetraceMsg[6]; diff --git a/src/asset_loading.h b/src/asset_loading.h index 2cc9d533..579b7179 100644 --- a/src/asset_loading.h +++ b/src/asset_loading.h @@ -7,7 +7,6 @@ void init_PI_mesg_queue(void); u32 *load_asset_section_from_rom(u32 assetIndex); -s32 load_asset_section_from_rom_to_address(u32 assetIndex, u32 address); s32 load_asset_to_address(u32 assetIndex, u32 address, s32 assetOffset, s32 size); u8 *get_rom_offset_of_asset(u32 assetIndex, u32 assetOffset); s32 get_size_of_asset_section(u32 assetIndex); diff --git a/src/audio.c b/src/audio.c index 67c7213d..d8413313 100644 --- a/src/audio.c +++ b/src/audio.c @@ -28,8 +28,8 @@ s32 musicVolumeSliderPercentage = 256; s32 D_800DC658 = 0; u8 D_800DC65C = 0; u8 D_800DC660 = 0; -s32 D_800DC664 = 0; // Currently unknown, might be a different type. -s32 D_800DC668 = 0; // Currently unknown, might be a different type. +UNUSED s32 D_800DC664 = 0; +UNUSED s32 D_800DC668 = 0; // Currently unknown, might be a different type. s32 sMusicVolumeMultiplier = 256; // This is never not 256... u8 D_800DC670 = 0; diff --git a/src/audio.h b/src/audio.h index 66bc2cd4..cacf85e2 100644 --- a/src/audio.h +++ b/src/audio.h @@ -5,25 +5,6 @@ #include "audio_internal.h" #include "sched.h" -extern ALSeqPlayer* gMusicPlayer; -extern ALSeqPlayer* gSndFxPlayer; -extern u8 musicRelativeVolume; -extern u8 sfxRelativeVolume; -extern u8 D_800DC640; -extern u8 D_800DC644; -extern s32 D_800DC648; -extern s32 audioPrevCount; -extern f32 sMusicFadeVolume; -extern s32 musicVolumeSliderPercentage; -extern s32 D_800DC658; -extern u8 D_800DC65C; -extern u8 D_800DC660; -extern s32 D_800DC664; -extern s32 D_800DC668; -extern s32 sMusicVolumeMultiplier; -extern u8 D_800DC670; -extern u8 D_800DC65C; - /* Size: 0x0A bytes */ typedef struct unk80115D18 { u16 unk0; diff --git a/src/borders.h b/src/borders.h index 59dcc66e..d700f3c3 100644 --- a/src/borders.h +++ b/src/borders.h @@ -4,7 +4,6 @@ #include "types.h" #include "f3ddkr.h" -// Non Matching void render_borders_for_multiplayer(Gfx **dlist); void render_second_multiplayer_borders(Gfx **dlist); diff --git a/src/camera.c b/src/camera.c index a1baa472..1ce75c21 100644 --- a/src/camera.c +++ b/src/camera.c @@ -11,19 +11,17 @@ #include "math_util.h" #include "weather.h" -extern u32 osTvType; - /************ .rodata ************/ -const char D_800E6F00[] = "Camera Error: Illegal mode!\n"; -const char D_800E6F20[] = "Camera Error: Illegal player no!\n"; -const char D_800E6F34[] = "cameraPushSprMtx: model stack overflow!!\n"; -const char D_800E6F70[] = "\nCam do 2D sprite called with NULL pointer!"; -const char D_800E6F9C[] = "CamDo2DSprite FrameNo Overflow !!!\n"; -const char D_800E6FC0[] = "cameraPushModelMtx: model stack overflow!!\n"; -const char D_800E6FEC[] = "camPushModelMtx: bsp stack overflow!!\n"; -const char D_800E7010[] = "camPopModelMtx: model stack negative overflow!!\n"; -const char D_800E7048[] = "camPopModelMtx: bsp stack negative overflow!!\n"; +UNUSED const char D_800E6F00[] = "Camera Error: Illegal mode!\n"; +UNUSED const char D_800E6F20[] = "Camera Error: Illegal player no!\n"; +UNUSED const char D_800E6F34[] = "cameraPushSprMtx: model stack overflow!!\n"; +UNUSED const char D_800E6F70[] = "\nCam do 2D sprite called with NULL pointer!"; +UNUSED const char D_800E6F9C[] = "CamDo2DSprite FrameNo Overflow !!!\n"; +UNUSED const char D_800E6FC0[] = "cameraPushModelMtx: model stack overflow!!\n"; +UNUSED const char D_800E6FEC[] = "camPushModelMtx: bsp stack overflow!!\n"; +UNUSED const char D_800E7010[] = "camPopModelMtx: model stack negative overflow!!\n"; +UNUSED const char D_800E7048[] = "camPopModelMtx: bsp stack negative overflow!!\n"; /*********************************/ @@ -109,7 +107,7 @@ ObjectSegment gActiveCameraStack[8]; s32 gNumberOfViewports; s32 gActiveCameraID; s32 gOjbectRenderStackCap; -s32 D_80120CEC; +UNUSED s32 D_80120CEC; ObjectTransform D_80120CF0; s32 D_80120D08; s32 D_80120D0C; @@ -127,11 +125,11 @@ u16 perspNorm; Matrix *D_80120D70[6]; MatrixS *D_80120D88[6]; Matrix D_80120DA0[5]; -Matrix D_80120EE0; // Perspective matrix? +Matrix gPerspectiveMatrixF; Matrix D_80120F20; Matrix D_80120F60; Matrix D_80120FA0; -MatrixS D_80120FE0; +MatrixS gPerspectiveMatrixS; MatrixS D_80121020; Matrix D_80121060; Matrix D_801210A0; @@ -173,8 +171,8 @@ void func_80065EA0(void) { if ((D_B0000578 & 0xFFFF) != 0x8965) { gAntiPiracyViewport = TRUE; } - guPerspectiveF(D_80120EE0, &perspNorm, CAMERA_DEFAULT_FOV, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE); - f32_matrix_to_s16_matrix(D_80120EE0, D_80120FE0); + guPerspectiveF(gPerspectiveMatrixF, &perspNorm, CAMERA_DEFAULT_FOV, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE); + f32_matrix_to_s16_matrix(gPerspectiveMatrixF, gPerspectiveMatrixS); gCurCamFOV = CAMERA_DEFAULT_FOV; } #else @@ -219,8 +217,8 @@ UNUSED f32 get_current_camera_fov(void) { void update_camera_fov(f32 camFieldOfView) { if (CAMERA_MIN_FOV < camFieldOfView && camFieldOfView < CAMERA_MAX_FOV && camFieldOfView != gCurCamFOV) { gCurCamFOV = camFieldOfView; - guPerspectiveF(D_80120EE0, &perspNorm, camFieldOfView, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE); - f32_matrix_to_s16_matrix(&D_80120EE0, &D_80120FE0); + guPerspectiveF(gPerspectiveMatrixF, &perspNorm, camFieldOfView, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE); + f32_matrix_to_s16_matrix(&gPerspectiveMatrixF, &gPerspectiveMatrixS); } } @@ -228,8 +226,8 @@ void update_camera_fov(f32 camFieldOfView) { * Unused function that recalculates the perspective matrix. */ UNUSED void calculate_camera_perspective(void) { - guPerspectiveF(D_80120EE0, &perspNorm, CAMERA_DEFAULT_FOV, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE); - f32_matrix_to_s16_matrix(&D_80120EE0, &D_80120FE0); + guPerspectiveF(gPerspectiveMatrixF, &perspNorm, CAMERA_DEFAULT_FOV, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE); + f32_matrix_to_s16_matrix(&gPerspectiveMatrixF, &gPerspectiveMatrixS); } UNUSED Matrix *func_80066204(void) { @@ -863,7 +861,7 @@ void func_80067D3C(Gfx **dlist, UNUSED MatrixS **mats) { D_80120CF0.z_position = -gActiveCameraStack[gActiveCameraID].trans.z_position; object_transform_to_matrix_2(D_80120F60, &D_80120CF0); - f32_matrix_mult(&D_80120F60, &D_80120EE0, &D_80120F20); + f32_matrix_mult(&D_80120F60, &gPerspectiveMatrixF, &D_80120F20); D_80120CF0.y_rotation = -0x8000 - gActiveCameraStack[gActiveCameraID].trans.y_rotation; D_80120CF0.x_rotation = -(gActiveCameraStack[gActiveCameraID].trans.x_rotation + gActiveCameraStack[gActiveCameraID].unk38.half.unk38); @@ -923,7 +921,7 @@ void set_ortho_matrix_view(Gfx **dlist, MatrixS **mtx) { void func_8006807C(Gfx **dlist, MatrixS **mtx) { object_transform_to_matrix_2(D_80121060, &D_800DD288); - f32_matrix_mult(&D_80121060, &D_80120EE0, &D_80120F20); + f32_matrix_mult(&D_80121060, &gPerspectiveMatrixF, &D_80120F20); object_transform_to_matrix_2((float (*)[4]) D_80120D70[0], &D_800DD2A0); f32_matrix_mult(D_80120D70[0], &D_80120F20, &D_80121060); f32_matrix_to_s16_matrix(&D_80121060, *mtx); @@ -1285,7 +1283,7 @@ Matrix *func_80069DA4(void) { } MatrixS *func_80069DB0(void) { - return &D_80120FE0; + return &gPerspectiveMatrixS; } Matrix *func_80069DBC(void) { @@ -1462,9 +1460,9 @@ u32 get_buttons_pressed_from_player(s32 player) { } /** - * Unused function that returns the buttons that are no longer pressed in that frame. + * Returns the buttons that are no longer pressed in that frame. */ -UNUSED u16 get_buttons_released_from_player(s32 player) { +u16 get_buttons_released_from_player(s32 player) { return gControllerButtonsReleased[sPlayerID[player]]; } diff --git a/src/camera.h b/src/camera.h index 6f13d830..7b7e5bb7 100644 --- a/src/camera.h +++ b/src/camera.h @@ -53,8 +53,6 @@ enum ViewPortFlags { VIEWPORT_HEIGHT_CUSTOM = 0x0040 }; -extern s8 gAntiPiracyViewport; - /* Size: 0x34 bytes. */ typedef struct ScreenViewport { /* 0x00 */ s32 x1; @@ -81,25 +79,6 @@ typedef struct unk80068BF4 { s32 *unkC[2]; } unk80068BF4; -extern ScreenViewport gScreenViewports[4]; - -// RSP Viewports -extern Vp D_800DD148[20]; - -extern ObjectTransform D_800DD288; - -extern ObjectTransform D_800DD2A0; - -extern Matrix gOrthoMatrix; - -extern u8 D_800DD2F8[8]; - -extern s16 gButtonMask; - -extern f32 D_80120D58[5]; -extern f32 D_80120D40[6]; -extern f32 D_80120D28[6]; - typedef struct unk80068514_arg4 { s16 unk0; s16 unk2; @@ -150,7 +129,6 @@ Matrix *func_80069DBC(void); f32 func_80069DC8(f32 x, f32 y, f32 z); void set_camera_shake_by_distance(f32 x, f32 y, f32 z, f32 dist, f32 magnitude); void set_camera_shake(f32 magnitude); -UNUSED void debug_print_float_matrix_values(f32 *mtx); OSMesgQueue *get_si_mesg_queue(void); void initialise_player_ids(void); void assign_player_ids(s8 *activePlayers); @@ -158,13 +136,13 @@ u8 get_player_id(s32 player); void swap_player_1_and_2_ids(void); u16 get_buttons_held_from_player(s32 player); u32 get_buttons_pressed_from_player(s32 player); -UNUSED u16 get_buttons_released_from_player(s32 player); +u16 get_buttons_released_from_player(s32 player); s8 clamp_joystick_x_axis(s32 player); s8 clamp_joystick_y_axis(s32 player); s8 clamp_joystick(s8 stickMag); void disable_button_mask(void); s32 init_controllers(void); -void func_80067D3C(Gfx **dlist, UNUSED MatrixS **mats); +void func_80067D3C(Gfx **dlist, MatrixS **mats); void render_orthi_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, unk80068BF4 *arg4, s32 flags); s32 render_sprite_billboard(Gfx **dlist, MatrixS **mtx, Vertex **vertexList, Object *obj, unk80068514_arg4 *arg4, s32 flags); void func_80069484(Gfx **arg0, MatrixS **arg1, ObjectTransform *arg2, f32 arg3, f32 arg4); diff --git a/src/game.c b/src/game.c index 53729215..95caf961 100644 --- a/src/game.c +++ b/src/game.c @@ -41,6 +41,7 @@ #include "object_models.h" #include "racer.h" #include "particles.h" +#include "math_util.h" /************ .rodata ************/ @@ -105,12 +106,9 @@ s32 gNumHudMatPerPlayer[4] = { 300, 400, 550, 600 }; s32 gNumHudTrisPerPlayer[4] = { 20, 30, 40, 50 }; s8 gDrawFrameTimer = 0; FadeTransition D_800DD3F4 = FADE_TRANSITION(128, FADE_COLOR_BLACK, 20, 0); -// Unused? -FadeTransition D_800DD3FC = FADE_TRANSITION(0, FADE_COLOR_WHITE, 20, -1); +UNUSED FadeTransition D_800DD3FC = FADE_TRANSITION(0, FADE_COLOR_WHITE, 20, -1); s32 sLogicUpdateRate = LOGIC_5FPS; FadeTransition D_800DD408 = FADE_TRANSITION(0, FADE_COLOR_WHITE, 30, -1); -// Unused? -// CAR / HOV / PLN - So this is vehicle type? UNUSED char *D_800DD410[3] = { (char *)sDebugCarString, (char *)sDebugHovercraftString, (char *)sDebugPlaneString }; @@ -118,8 +116,6 @@ FadeTransition D_800DD41C = FADE_TRANSITION(0, FADE_COLOR_BLACK, 30, -1); FadeTransition D_800DD424 = FADE_TRANSITION(0, FADE_COLOR_BLACK, 260, -1); /*******************************/ -extern s32 gShowControllerPakMenu; - /************ .bss ************/ s32 *gTempAssetTable; @@ -148,7 +144,7 @@ TriangleList *gGameCurrTriList; UNUSED s32 D_80121230[8]; s8 D_80121250[16]; //Settings4C OSSched gMainSched; // 0x288 / 648 bytes -UNUSED u8 D_80121268[0x2000]; // 0x2000 / 8192 bytes Padding? +u64 gSchedStack[0x400]; s32 gSPTaskNum; s32 sRenderContext; s32 D_801234F0; @@ -241,6 +237,7 @@ void func_8006A6B0(void) { gLevelNames[temp] = (char *) &D_800DD310[gTempAssetTable[temp]]; } free_from_memory_pool(gTempAssetTable); + // Antipiracy measure checksumCount = 0; for (j = 0; j < gFunc80068158Length; j++) { checksumCount += ((u8 *) (&func_80068158))[j]; @@ -347,16 +344,14 @@ UNUSED s32 func_8006AE2C(s32 arg0, s8 arg1, s8 arg2) { return -1; } -// Unused. -s32 func_8006B018(s8 arg0) { +UNUSED s32 func_8006B018(s8 arg0) { if ((arg0 >= 0) && (arg0 < 16)) { return D_80121180[arg0]; } return 0; } -// Unused. -s32 func_8006B054(s8 arg0) { +UNUSED s32 func_8006B054(s8 arg0) { s32 out, i; out = 0; for (i = 0; i < gNumberOfLevelHeaders; i++) { @@ -917,7 +912,7 @@ void init_game(void) { mode = 28; } - osCreateScheduler(&gMainSched, &gSPTaskNum, /*priority*/ 13, (u8) mode, 1); + osCreateScheduler(&gMainSched, &gSchedStack[0x400], /*priority*/ 13, (u8) mode, 1); D_800DD3A0 = FALSE; if (!func_8006EFB8()) { D_800DD3A0 = TRUE; @@ -969,9 +964,9 @@ void main_game_loop(void) { if (gScreenStatus == MESG_SKIP_BUFFER_SWAP) { gCurrDisplayList = gDisplayLists[gSPTaskNum]; set_rsp_segment(&gCurrDisplayList, 0, 0); - set_rsp_segment(&gCurrDisplayList, 1, (s32)gVideoCurrFramebuffer); - set_rsp_segment(&gCurrDisplayList, 2, gVideoLastDepthBuffer); - set_rsp_segment(&gCurrDisplayList, 4, (s32)gVideoCurrFramebuffer - 0x500); + set_rsp_segment(&gCurrDisplayList, 1, (s32) gVideoCurrFramebuffer); + set_rsp_segment(&gCurrDisplayList, 2, (s32) gVideoLastDepthBuffer); + set_rsp_segment(&gCurrDisplayList, 4, (s32) gVideoCurrFramebuffer - 0x500); } if (gDrawFrameTimer == 0) { setup_ostask_xbus(gDisplayLists[gSPTaskNum], gCurrDisplayList, 0); @@ -988,9 +983,9 @@ void main_game_loop(void) { gGameCurrTriList = gHudTriangles[gSPTaskNum]; set_rsp_segment(&gCurrDisplayList, 0, 0); - set_rsp_segment(&gCurrDisplayList, 1, gVideoLastFramebuffer); - set_rsp_segment(&gCurrDisplayList, 2, gVideoLastDepthBuffer); - set_rsp_segment(&gCurrDisplayList, 4, gVideoLastFramebuffer - 0x500); + set_rsp_segment(&gCurrDisplayList, 1, (s32) gVideoLastFramebuffer); + set_rsp_segment(&gCurrDisplayList, 2, (s32) gVideoLastDepthBuffer); + set_rsp_segment(&gCurrDisplayList, 4, (s32) gVideoLastFramebuffer - 0x500); init_rsp(&gCurrDisplayList); init_rdp_and_framebuffer(&gCurrDisplayList); render_background(&gCurrDisplayList, (Matrix *) &gGameCurrMatrix, TRUE); @@ -1061,7 +1056,7 @@ void main_game_loop(void) { if (osTvType == TV_TYPE_PAL) { framebufferSize = (s32)((SCREEN_WIDTH * SCREEN_HEIGHT * 2) * 1.1f); } - dmacopy_doubleword(gVideoLastFramebuffer, (s32)gVideoCurrFramebuffer, (s32)gVideoCurrFramebuffer + framebufferSize); + dmacopy_doubleword(gVideoLastFramebuffer, gVideoCurrFramebuffer, (s32) gVideoCurrFramebuffer + framebufferSize); } // tempLogicUpdateRate will be set to a value 2 or higher, based on the framerate. // the mul factor is hardcapped at 6, which happens at 10FPS. The mul factor diff --git a/src/game.h b/src/game.h index 82d7593a..6531f9e1 100644 --- a/src/game.h +++ b/src/game.h @@ -35,54 +35,7 @@ enum NumberOfPlayers { FOUR_PLAYERS = 3 }; -extern s8 gCurrentDefaultVehicle; -extern u8 D_800DD318; -extern s32 gIsInRace; -extern s32 gFunc80068158Checksum; -extern s32 gFunc80068158Length; -extern s16 D_800DD328; -extern s16 D_800DD32C; - -extern s8 D_800DD330; - -extern s8 sAntiPiracyTriggered; -extern s32 D_800DD378; -extern s32 D_800DD37C; -extern s32 gScreenStatus; -extern s32 sControllerStatus; -extern s32 D_800DD388; -extern s8 gSkipGfxTask; -extern s8 D_800DD390; -extern s16 gLevelLoadTimer; -extern s8 D_800DD398; -extern s8 D_800DD39C; -extern s8 D_800DD3A0; -extern s32 D_800DD3A4; -extern s32 D_800DD3A8; -extern s32 D_800DD3AC; - - -extern s8 gDrawFrameTimer; -extern FadeTransition D_800DD3F4; -extern FadeTransition D_800DD408; -// Unused? -extern FadeTransition D_800DD3FC; - -// Unused? -extern char *D_800DD410[3]; -extern FadeTransition D_800DD41C; -extern FadeTransition D_800DD424; -extern u16 *gVideoCurrFramebuffer; -extern s32 gVideoLastFramebuffer; -extern s32 gVideoLastDepthBuffer; - -void dmacopy_doubleword(s32 videoLastFrameBuffer, s32 VideoCurrFrameBuffer, s32 size); - -s16 func_8006ABB4(s32 arg0); -s32 func_8006B018(s8 arg0); -s32 func_8006B054(s8 arg0); Vehicle get_map_default_vehicle(s32 mapId); -// Returns bitfield with (1 << Vehicle) set for every available vehicle. s32 get_map_available_vehicles(s32 mapId); s8 func_8006B14C(s32 mapId); s8 func_8006B190(s32 mapId); diff --git a/src/math_util.h b/src/math_util.h index 31eb585a..cb48b2b9 100644 --- a/src/math_util.h +++ b/src/math_util.h @@ -52,5 +52,6 @@ void f32_matrix_from_position(Matrix *mtx, f32 x, f32 y, f32 z); void f32_matrix_from_scale(Matrix, f32, f32, f32); s32 atan2s(s32 xDelta, s32 zDelta); f32 area_triangle_2d(f32 x0, f32 z0, f32 x1, f32 z1, f32 x2, f32 z2); +void dmacopy_doubleword(void *src, void *dst, s32 size); #endif // MATH_UTIL_H diff --git a/src/memory.c b/src/memory.c index 4606467b..3a85fef1 100644 --- a/src/memory.c +++ b/src/memory.c @@ -8,20 +8,20 @@ /************ .rodata ************/ -const char D_800E7210[] = "*** mmAlloc: size = 0 ***\n"; -const char D_800E722C[] = "*** mm Error *** ---> No more slots available.\n"; -const char D_800E725C[] = "\n*** mm Error *** ---> No suitble block found for allocation.\n"; -const char D_800E729C[] = "*** mmAllocAtAddr: size = 0 ***\n"; -const char D_800E72C0[] = "\n*** mm Error *** ---> No more slots available.\n"; -const char D_800E72F4[] = "\n*** mm Error *** ---> Can't allocate memory at desired address.\n"; -const char D_800E7338[] = "\n*** mm Error *** ---> Can't free ram at this location: %x\n"; -const char D_800E7374[] = "\n*** mm Error *** ---> No match found for mmFree.\n"; -const char D_800E73A8[] = "*** Slots still in use in region ***\n"; -const char D_800E73D0[] = "\n*** mm Error *** ---> stbf stack too deep!\n"; -const char D_800E7400[] = "\n*** mm Error *** ---> Can't fix the specified block.\n"; -const char D_800E7438[] = "\n*** mm Error *** ---> Can't unfix the specified block.\n"; -const char D_800E7474[] = "Colour %x >> %d\n"; -const char D_800E7488[] = "Unable to record %d slots, colours overflowed table.\n"; +UNUSED const char D_800E7210[] = "*** mmAlloc: size = 0 ***\n"; +UNUSED const char D_800E722C[] = "*** mm Error *** ---> No more slots available.\n"; +UNUSED const char D_800E725C[] = "\n*** mm Error *** ---> No suitble block found for allocation.\n"; +UNUSED const char D_800E729C[] = "*** mmAllocAtAddr: size = 0 ***\n"; +UNUSED const char D_800E72C0[] = "\n*** mm Error *** ---> No more slots available.\n"; +UNUSED const char D_800E72F4[] = "\n*** mm Error *** ---> Can't allocate memory at desired address.\n"; +UNUSED const char D_800E7338[] = "\n*** mm Error *** ---> Can't free ram at this location: %x\n"; +UNUSED const char D_800E7374[] = "\n*** mm Error *** ---> No match found for mmFree.\n"; +UNUSED const char D_800E73A8[] = "*** Slots still in use in region ***\n"; +UNUSED const char D_800E73D0[] = "\n*** mm Error *** ---> stbf stack too deep!\n"; +UNUSED const char D_800E7400[] = "\n*** mm Error *** ---> Can't fix the specified block.\n"; +UNUSED const char D_800E7438[] = "\n*** mm Error *** ---> Can't unfix the specified block.\n"; +UNUSED const char D_800E7474[] = "Colour %x >> %d\n"; +UNUSED const char D_800E7488[] = "Unable to record %d slots, colours overflowed table.\n"; /*********************************/ @@ -35,7 +35,7 @@ MemoryPool gMemoryPools[4]; #endif s32 gNumberOfMemoryPools; -s32 D_801235C4; +UNUSED s32 D_801235C4; FreeQueueSlot gFreeQueue[256]; s32 gFreeQueueCount; s32 gFreeQueueState; @@ -598,7 +598,7 @@ s32 get_memory_colour_tag_count(u32 colourTag) { * Prints out the counts for each color tag in the main pool. * Unused. */ -void print_memory_colour_tags(void) { +UNUSED void print_memory_colour_tags(void) { stubbed_printf("RED %d\n", get_memory_colour_tag_count(COLOUR_TAG_RED)); stubbed_printf("GREEN %d\n", get_memory_colour_tag_count(COLOUR_TAG_GREEN)); stubbed_printf("BLUE %d\n", get_memory_colour_tag_count(COLOUR_TAG_BLUE)); @@ -615,7 +615,7 @@ void print_memory_colour_tags(void) { * Unused. * See: https://tcrf.net/Diddy_Kong_Racing#Current_Colors */ -void render_memory_colour_tags(void) { +UNUSED void render_memory_colour_tags(void) { set_render_printf_background_colour(0, 0, 0, 128); render_printf("RED %d\n", get_memory_colour_tag_count(COLOUR_TAG_RED)); render_printf("GREEN %d\n", get_memory_colour_tag_count(COLOUR_TAG_GREEN)); @@ -659,7 +659,7 @@ UNUSED void func_80071C74(void) { } // Unused. Does nothing? -void func_80071CE8(void) { +UNUSED void func_80071CE8(void) { s32 i; for (i = gNumberOfMemoryPools; i != -1; i--) { // Nothing here. There might've been a printf or something similar. diff --git a/src/menu.c b/src/menu.c index d48e601a..f1578897 100644 --- a/src/menu.c +++ b/src/menu.c @@ -5585,7 +5585,7 @@ void menu_track_select_init(void) { D_800E0970[var_v0].unk3 = 1; } D_80126924 = 0; - func_80078AAC(func_8008F618); + set_background_draw_function(func_8008F618); func_80066940(0, 80, gTrackSelectViewPortHalfY - (gTrackSelectViewPortHalfY >> 1), 240, (gTrackSelectViewPortHalfY >> 1) + gTrackSelectViewPortHalfY); func_80066610(); func_80066818(0, 0); @@ -6008,7 +6008,7 @@ void func_80090918(s32 updateRate) { } } if (gMenuDelay < -22) { - func_80078AAC(NULL); + set_background_draw_function(NULL); D_800E097C = 0; } if (gMenuDelay > 30) { diff --git a/src/object_functions.c b/src/object_functions.c index 773f3d40..c75c682f 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -253,7 +253,7 @@ void obj_loop_fireball_octoweapon(Object *obj, s32 updateRate) { } move_object(obj, obj->segment.x_velocity * updateRateF, obj->segment.y_velocity * updateRateF, obj->segment.z_velocity * updateRateF); if (obj->unk4A == 298) { - if (func_8002AD08(obj->segment.trans.y_position, &sp4C, NULL)) { + if (get_wave_properties(obj->segment.trans.y_position, &sp4C, NULL)) { obj->segment.trans.y_position = sp4C; } } diff --git a/src/object_models.c b/src/object_models.c index 686b9f10..20d80e3e 100644 --- a/src/object_models.c +++ b/src/object_models.c @@ -19,12 +19,12 @@ s32 gFunc80024D54Length = 1980; /************ .rodata ************/ -const char D_800E6B20[] = "Error: Model no. out of range on load. !!\n"; -const char D_800E6B4C[] = "TEXTURE ERROR!!\n%d,%d\n"; -const char D_800E6B64[] = "Error: Model table overflow!!\n"; -const char D_800E6B84[] = "WARNING :: createModelInstance called with NULL pointer\n"; -const char D_800E6BC0[] = "ModFreeModel : NULL mod_inst!!\n"; -const char D_800E6BE0[] = "MOD Error: Tryed to deallocate non-existent model!!\n"; +UNUSED const char D_800E6B20[] = "Error: Model no. out of range on load. !!\n"; +UNUSED const char D_800E6B4C[] = "TEXTURE ERROR!!\n%d,%d\n"; +UNUSED const char D_800E6B64[] = "Error: Model table overflow!!\n"; +UNUSED const char D_800E6B84[] = "WARNING :: createModelInstance called with NULL pointer\n"; +UNUSED const char D_800E6BC0[] = "ModFreeModel : NULL mod_inst!!\n"; +UNUSED const char D_800E6BE0[] = "MOD Error: Tryed to deallocate non-existent model!!\n"; /*********************************/ @@ -40,7 +40,7 @@ s16 *D_8011D638; s32 *D_8011D63C; s32 D_8011D640; s32 D_8011D644; -s32 D_8011D648[66]; +UNUSED s32 D_8011D648[66]; // Appears to have no effect when removed entirely? /******************************/ diff --git a/src/particles.c b/src/particles.c index a8f071f6..65826f09 100644 --- a/src/particles.c +++ b/src/particles.c @@ -179,8 +179,9 @@ u16 D_80127CD0; u16 D_80127CD2; s32 D_80127CD4; s8 gDebugPrintBufferStart[2300]; -s32 gDebugPrintBufferEnd[1026]; -OSThread D_801295E0; +u8 *gDebugPrintBufferEnd[2]; +u64 gEPCStack[0x200]; +OSThread gEPCThread; s32 D_80129790[6]; // Osmesg stuff s32 D_801297A8[8]; s32 D_801297C8[8]; diff --git a/src/particles.h b/src/particles.h index b13bbfd5..bd6262e0 100644 --- a/src/particles.h +++ b/src/particles.h @@ -308,7 +308,7 @@ extern s32 D_80127CC8; extern s32 D_80127CB4; extern s16 D_80127CB0; extern s16 D_80127CB2; -extern OSThread D_801295E0; +extern OSThread gEPCThread; extern ParticleBehavior **gParticleBehavioursAssetTable; extern s32 gParticleBehavioursAssetTableCount; diff --git a/src/racer.c b/src/racer.c index 7df2c710..0eaaa3b8 100644 --- a/src/racer.c +++ b/src/racer.c @@ -162,7 +162,7 @@ UNUSED const char gRacerBackString[] = "Back\n"; f32 gCurrentCourseHeight; Vec3f gCurrentRacerWaterPos; -s8 D_8011D504; +s8 gRacerWaveType; ObjectCamera *gCameraObject; UNUSED s32 D_8011D50C; ObjectTransform gCurrentRacerTransform; @@ -719,7 +719,7 @@ void func_80045128(struct TempStruct2 *header) { GLOBAL_ASM("asm/non_matchings/racer/func_800452A0.s") GLOBAL_ASM("asm/non_matchings/racer/func_80045C48.s") -#ifdef NON_MATCHING +#ifdef NON_EQUIVALENT void func_80046524(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *racer) { UNUSED s32 temp2; UNUSED s32 pad0; @@ -1253,7 +1253,7 @@ void func_80046524(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r } var_f14 = 5.0f; sp118 = -10000.0f; - temp_v0_10 = func_8002AD08(obj->segment.trans.y_position, &sp118, spD4); + temp_v0_10 = get_wave_properties(obj->segment.trans.y_position, &sp118, spD4); if (temp_v0_10) { var_f14 = racer->velocity; if (var_f14 < 0.0f) { @@ -2448,9 +2448,8 @@ void update_player_racer(Object *obj, s32 updateRate) { } if (tempRacer->vehicleID != VEHICLE_HOVERCRAFT) { waterHeight = -10000.0f; - // So I assume this func exists to find the water height. - D_8011D504 = func_8002AD08(obj->segment.trans.y_position, &waterHeight, &gCurrentRacerWaterPos); - if (D_8011D504) { + gRacerWaveType = get_wave_properties(obj->segment.trans.y_position, &waterHeight, &gCurrentRacerWaterPos); + if (gRacerWaveType) { if (obj->segment.trans.y_position - 5.0f < waterHeight) { tempRacer->unk1E5 = 5; tempRacer->buoyancy = waterHeight - (obj->segment.trans.y_position - 5.0f); @@ -3670,7 +3669,7 @@ void update_car_velocity_offground(Object *obj, Object_Racer *racer, s32 updateR racer->lateral_velocity *= 0.87; //!@Delta racer->velocity *= 0.87; //!@Delta obj->segment.y_velocity *= 0.9; //!@Delta - rotate_racer_in_water(obj, racer, &gCurrentRacerWaterPos, D_8011D504, updateRate, gCurrentStickX, 6.0f); + rotate_racer_in_water(obj, racer, &gCurrentRacerWaterPos, gRacerWaveType, updateRate, gCurrentStickX, 6.0f); } if (racer->playerIndex == PLAYER_COMPUTER) { racer->unk1E8 = racer->steerAngle; diff --git a/src/stacks.c b/src/stacks.c index 49589f41..096b8a78 100644 --- a/src/stacks.c +++ b/src/stacks.c @@ -3,13 +3,16 @@ #include "stacks.h" +#include "types.h" +#include "macros.h" + // This file only contains .bss variables and needs to be located just before // waves.c; that is why this is "located" at 0x800B7D1F. /************ .bss ************/ -u8 piThreadStack[0x100]; // piThreadStack[OS_PIM_STACKSIZE]; -u16 D_80129BB0[512][1]; // epcStack? +UNUSED u8 D_8012A9B0[0x100]; +u16 D_80129BB0[512]; // epcStack? s32 D_80129FB0[3]; s32 D_80129FBC; diff --git a/src/stacks.h b/src/stacks.h index 42b1b638..c1bbea65 100644 --- a/src/stacks.h +++ b/src/stacks.h @@ -5,8 +5,8 @@ #define OS_PIM_STACKSIZE 4096 -extern u8 piThreadStack[0x100]; // piThreadStack[OS_PIM_STACKSIZE]; -extern u16 D_80129BB0[512][1]; //epcStack? +extern u8 D_8012A9B0[0x100]; +extern u16 D_80129BB0[512]; extern s32 D_80129FB0[3]; extern s32 D_80129FBC; diff --git a/src/thread0_epc.c b/src/thread0_epc.c index 970e7ea2..9076acd8 100644 --- a/src/thread0_epc.c +++ b/src/thread0_epc.c @@ -15,9 +15,9 @@ /************ .rodata ************/ -const char D_800E8E70[] = "\nAssertion failed: '%s' in file %s, line %d\n"; -const char D_800E8EA0[] = "\nAssertion failed: '%s' in file %s, line %d\n"; -const char D_800E8ED0[] = ">fault< "; +UNUSED const char D_800E8E70[] = "\nAssertion failed: '%s' in file %s, line %d\n"; +UNUSED const char D_800E8EA0[] = "\nAssertion failed: '%s' in file %s, line %d\n"; +UNUSED const char D_800E8ED0[] = ">fault< "; const char D_800E8EDC[] = "CORE"; const char D_800E8EE4[4] = { 0, 0, 0, 0 }; const char sCoreFileName1[] = "CORE"; @@ -35,15 +35,11 @@ s32 sLockupDelay = 0; /*******************************/ -/************ .bss ************/ - -/******************************/ - extern OSMesgQueue D_80129790; extern OSMesg D_801297A8; extern OSMesgQueue D_801297E8; extern OSMesg D_801297C8; - +extern u64 gEPCStack[0x200]; extern s32 D_80129FB0[3]; void func_800B6E50(void) { @@ -83,24 +79,19 @@ void func_800B6F30(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2) {} // thread0_Assert("source", "env.c", 373); void thread0_Assert(UNUSED char *message, UNUSED char *fileName, UNUSED s32 lineNumber) {} -#ifdef NON_EQUIVALENT +/** + * Start the exception program counter thread. +*/ void thread0_create(void) { s32 i; - // Almost matching, just have an issue with argument 4. - // The -O2 compiler is too smart. :( - // It's possible D_801295E0 is a struct containing both the thread and stack pointer - osCreateThread(&D_801295E0, 0, thread0_Main, NULL, &D_801295E0, OS_PRIORITY_MAX); - - osStartThread(&D_801295E0); - + osCreateThread(&gEPCThread, 0, thread0_Main, 0, &gEPCStack[0x200], OS_PRIORITY_MAX); + osStartThread(&gEPCThread); for (i = 0; i < 3; i++) { D_80129FB0[i] = -1; } } -#else -GLOBAL_ASM("asm/non_matchings/thread0_epc/thread0_create.s") -#endif + #ifdef NON_EQUIVALENT void thread0_Main(UNUSED void *unused) { // Has regalloc issues @@ -321,7 +312,7 @@ void render_epc_lock_up_display(void) { break; case EPC_PAGE_UNK04: offset = (sLockupPage - 4) * 128; - for (temp = (u16 *) D_80129BB0[offset], i = 0; i < 16; i++) { + for (temp = (u16 *) &D_80129BB0[offset], i = 0; i < 16; i++) { render_printf(" "); for(j = 0; j < 8; j++) { render_printf("%04x ", temp[0]); diff --git a/src/thread0_epc.h b/src/thread0_epc.h index 2bcbdfdd..72ca7ef6 100644 --- a/src/thread0_epc.h +++ b/src/thread0_epc.h @@ -87,8 +87,8 @@ void func_800B7144(void); void func_800B76B8(s32 arg0, s32 arg1); s32 get_lockup_status(void); void lockup_screen_loop(s32 arg0); +void thread0_create(void); -void thread0_create(void); // Non Matching void thread0_Main(UNUSED void *unused); // Non Matching void func_800B7460(s32 *epc, s32 size, s32 mask); // Non Matching void render_epc_lock_up_display(void); // Non Matching diff --git a/src/thread30_track_loading.c b/src/thread30_track_loading.c index b289ac3e..bbf0ea4e 100644 --- a/src/thread30_track_loading.c +++ b/src/thread30_track_loading.c @@ -23,11 +23,10 @@ u8 leoDiskStack[16]; //technically should have a OS_LEO_STACKSIZE or something. OSThread gThread30; OSMesgQueue gThread30MesgQueue; OSMesg gThread30Message; -UNUSED u8 D_8012ACC0[0x1468]; // Unused? Might be another stack. // Currently defined in osViMgr.c // There are a few stacks defined next to each other. Maybe they are in their own separate file? -extern void *gThread30Stack; +extern u64 gThread30Stack[0x400]; /*****************************/ @@ -36,7 +35,7 @@ extern void *gThread30Stack; */ void create_and_start_thread30(void) { osCreateMesgQueue(&gThread30MesgQueue, &gThread30Message, 2); - osCreateThread(&gThread30, 30, &thread30_track_loading, NULL, &gThread30Stack, 8); + osCreateThread(&gThread30, 30, &thread30_track_loading, NULL, &gThread30Stack[0x400], 8); osStartThread(&gThread30); } diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index ab907140..acc014a1 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -135,8 +135,8 @@ unk8011D0F8 D_8011D128[3]; s32 D_8011D158[3]; // Unused? Or part of something bigger above? s32 D_8011D164; s32 D_8011D168[84]; -s32 D_8011D2B8[20]; -s32 D_8011D308; +WaterProperties *gTrackWaves[20]; +s8 D_8011D308; LevelModel *D_8011D30C; s32 *D_8011D310; f32 D_8011D314; @@ -1297,7 +1297,59 @@ s32 func_8002ACD4(f32 *arg0, f32 *arg1, f32 *arg2) { return D_8011B0F0; } -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002AD08.s") +/** + * Iterates through active waves on the track, then saves its rotation vector and height if found. + * Returns zero if no waves are found, or if too high up. + * Two types exist: calm, which have no means of displacement, and wavy, which do. +*/ +s32 get_wave_properties(f32 yPos, f32 *waterHeight, Vec3f *rotation) { + s32 var_a0; + WaterProperties **wave; + s32 i; + s32 index; + s32 len; + f32 height; + + len = D_8011D308; + if (rotation != NULL) { + rotation->f[0] = 0.0f; + rotation->f[2] = 0.0f; + rotation->f[1] = 1.0f; + } + wave = gTrackWaves; + for (var_a0 = i = 0; i < len; i++) { + if (wave[i]->type == WATER_CALM || wave[i]->type == WATER_WAVY) { + var_a0++; + } + } + if (var_a0 == 0) { + return 0; + } + wave = gTrackWaves; + index = -1; + for (i = 0; i < len; i++) { + height = wave[i]->waveHeight; + if (wave[i]->type == WATER_CALM || wave[i]->type == WATER_WAVY) { + if (yPos < height + 25.0 && (wave[i]->rotY > 0.5 || var_a0 == 1)) { + index = i; + } + } else + if (index >= 0 && var_a0 >= 2 && yPos < height - 20.0) { + index = -1; + } + } + if (index < 0) { + return 0; + } + *waterHeight = gTrackWaves[index]->waveHeight; + if (rotation != NULL) { + rotation->f[0] = gTrackWaves[index]->rotX; + rotation->f[1] = gTrackWaves[index]->rotY; + rotation->f[2] = gTrackWaves[index]->rotZ; + } + return gTrackWaves[index]->type; +} + GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002B0F4.s") s32 func_8002B9BC(Object *obj, f32 *arg1, f32 *arg2, s32 arg3) { diff --git a/src/unknown_0255E0.h b/src/unknown_0255E0.h index 68648a1c..51365160 100644 --- a/src/unknown_0255E0.h +++ b/src/unknown_0255E0.h @@ -72,6 +72,19 @@ typedef struct { /* 0x08 */ s32 z; } unk8011D468; +typedef struct WaterProperties { + f32 waveHeight; + f32 rotX; + f32 rotY; + f32 rotZ; + s8 type; +} WaterProperties; + +enum WaveTypes { + WATER_CALM = 11, + WATER_WAVY = 14 +}; + extern s32 D_800DC870; extern unknown800DC874 D_800DC874; extern unknown800DC874 D_800DC87C; @@ -123,6 +136,7 @@ void draw_gradient_background(void); void func_8002D8DC(s32 arg0, s32 arg1, s32 arg2); void obj_loop_fogchanger(Object* obj); void func_80028CD0(s32 updateRate); +s32 get_wave_properties(f32 yPos, f32 *waterHeight, Vec3f *rotation); //Non Matching @@ -134,7 +148,6 @@ Gfx *func_8002581C(u8 *segmentIds, s32 numberOfSegments, s32 currentViewportInde s32 func_80027568(void); s32 func_8002CC30(LevelModelSegment*); s8 func_8002B0F4(s16, f32 xPos, f32 zPos, struct TempStruct8**); -s32 func_8002AD08(f32 yPos, f32* waterHeight, Vec3f*); void func_800278E8(s32); void func_80028050(void); void func_80028CD0(s32); diff --git a/src/unknown_078050.c b/src/unknown_078050.c index 2a9ab0c1..54978b4b 100644 --- a/src/unknown_078050.c +++ b/src/unknown_078050.c @@ -26,7 +26,7 @@ TextureHeader *D_800DE4C4 = 0; TextureHeader *D_800DE4C8 = 0; s32 D_800DE4CC = 0; -unk800DE4D0 D_800DE4D0 = { NULL }; +unk800DE4D0 gBackgroundDrawFunc = { NULL }; s32 gfxBufCounter = 0; s32 gfxBufCounter2 = 0; s32 gGfxTaskIsRunning = FALSE; @@ -105,7 +105,7 @@ Gfx D_800DE670[] = { gsSPEndDisplayList(), }; -Gfx D_800DE6A8[][2] = { +Gfx dTextureRectangleScaledOpa[][2] = { { gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM), gsDPSetOtherMode(DKR_OMH_1CYC_BILERP_NOPERSP, DKR_OML_COMMON | G_RM_AA_OPA_SURF | G_RM_AA_OPA_SURF2), @@ -124,7 +124,7 @@ Gfx D_800DE6A8[][2] = { }, }; -Gfx D_800DE6E8[][2] = { +Gfx dTextureRectangleScaledXlu[][2] = { { gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM), gsDPSetOtherMode(DKR_OMH_1CYC_BILERP_NOPERSP, DKR_OML_COMMON | G_RM_AA_XLU_SURF | G_RM_AA_XLU_SURF2), @@ -436,8 +436,8 @@ void render_background(Gfx **dlist, Matrix *mtx, s32 drawBG) { func_800787FC(dlist); } else if (D_800DE4C4 != 0) { func_80078190(dlist); - } else if (D_800DE4D0.ptr != NULL) { - D_800DE4D0.function((Gfx *) dlist, mtx); + } else if (gBackgroundDrawFunc.ptr != NULL) { + gBackgroundDrawFunc.function((Gfx *) dlist, mtx); } else { gDPSetFillColor((*dlist)++, sBackgroundFillColour); gDPFillRectangle((*dlist)++, 0, 0, w - 1, h - 1); @@ -454,8 +454,8 @@ void render_background(Gfx **dlist, Matrix *mtx, s32 drawBG) { func_800787FC(dlist); } else if (D_800DE4C4 != 0) { func_80078190(dlist); - } else if (D_800DE4D0.ptr != NULL) { - D_800DE4D0.function((Gfx *) dlist, mtx); + } else if (gBackgroundDrawFunc.ptr != NULL) { + gBackgroundDrawFunc.function((Gfx *) dlist, mtx); } else { gDPSetFillColor((*dlist)++, (GPACK_RGBA5551(sBackgroundPrimColourR, sBackgroundPrimColourG, sBackgroundPrimColourB, 1) << 16) | GPACK_RGBA5551(sBackgroundPrimColourR, sBackgroundPrimColourG, sBackgroundPrimColourB, 1)); gDPFillRectangle((*dlist)++, 0, 0, w - 1, h - 1); @@ -502,8 +502,7 @@ void func_80078170(TextureHeader *arg0, TextureHeader *arg1, u32 arg2) { GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80078190.s") -// Unused -void func_80078778(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +UNUSED void func_80078778(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { D_80125F30 = (arg0 >> 24) & 0xFF; D_80125F31 = (arg0 >> 16) & 0xFF; D_80125F32 = (arg0 >> 8) & 0xFF; @@ -517,8 +516,7 @@ void func_80078778(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { D_800DE4CC = 1; } -// Unused -void func_800787F0(void) { +UNUSED void func_800787F0(void) { D_800DE4CC = 0; } @@ -553,8 +551,12 @@ void func_800787FC(Gfx **arg0) { gDPPipeSync((*arg0)++); } -void func_80078AAC(void *arg0) { - D_800DE4D0.ptr = arg0; +/** + * Sets the function pointer to whatever's passed through. + * If nonzero, will override the background drawing section. +*/ +void set_background_draw_function(void *func) { + gBackgroundDrawFunc.ptr = func; } /** diff --git a/src/unknown_078050.h b/src/unknown_078050.h index 243ecc8b..cbad46c2 100644 --- a/src/unknown_078050.h +++ b/src/unknown_078050.h @@ -71,7 +71,7 @@ void setup_ostask_fifo(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg); void render_textured_rectangle(Gfx **dlist, DrawTexture *img, s32 xPos, s32 yPos, u8 red, u8 green, u8 blue, u8 alpha); void func_800787FC(Gfx** arg0); void render_background(Gfx **dlist, Matrix *mtx, s32 drawBG); -void func_80078AAC(void *arg0); +void set_background_draw_function(void *arg0); //Non Matching void render_texture_rectangle_scaled(Gfx **dlist, DrawTexture *element, f32 x, f32 y, f32 x_scale, f32 y_scale, u32 color, s32 flip); diff --git a/src/video.h b/src/video.h index f4413e1e..5c955374 100644 --- a/src/video.h +++ b/src/video.h @@ -73,8 +73,11 @@ enum VideoModes { extern s32 gVideoRefreshRate; extern f32 gVideoAspectRatio; -extern u16 *gVideoCurrFramebuffer; extern u16 *gVideoDepthBuffer; +extern u16 *gVideoCurrFramebuffer; +extern u16 *gVideoLastFramebuffer; +extern u16 *gVideoCurrDepthBuffer; +extern u16 *gVideoLastDepthBuffer; extern OSViMode osViModeNtscLpn1, osViModePalLpn1, osViModeMpalLpn1, osViModePalLan1, osViModeNtscLan1, osViModeMpalLan1;