mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
We are racing in the rematch against Bubbler. (Lap 1/3) (#424)
* Match func_800B7460 * Remove the matched ASM, but keep the WTF status. * Cleanup the cursed match issue a little. * Document all of the functions in thread0_epc * Rename func_800B7460 * Couple more matches and documenting * func_80083098 NON_MATCHING * Match func_80087734 * Match func_800853D0 * Match render_track_select * Document TT Voice lines * Update README score * Fix NON_EQUIVALENT
This commit is contained in:
@@ -5,11 +5,11 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the
|
||||
Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time.
|
||||
|
||||
<!-- README_SCORE_SUMMARY_BEGIN -->
|
||||
As of October 19, 2023, this is our current score:
|
||||
As of October 23, 2023, this is our current score:
|
||||
|
||||
    Decomp progress: 60.22%
|
||||
    Decomp progress: 60.91%
|
||||
|
||||
    Documentation progress: 33.39%
|
||||
    Documentation progress: 33.66%
|
||||
<!-- README_SCORE_SUMMARY_END -->
|
||||
|
||||
---
|
||||
@@ -128,31 +128,31 @@ s32 is_drumstick_unlocked(void) {
|
||||
```
|
||||
|
||||
<!-- README_SCORE_BEGIN -->
|
||||
As of October 19th, 2023, this is our current score:
|
||||
As of October 13rd, 2023, this is our current score:
|
||||
```
|
||||
====================================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
------------------------- 60.22% Complete --------------------------
|
||||
# Decompiled functions: 1643
|
||||
# GLOBAL_ASM remaining: 203
|
||||
# NON_MATCHING functions: 10
|
||||
# NON_EQUIVALENT WIP functions: 57
|
||||
--------------------------- Game Status ----------------------------
|
||||
Balloons: 29/47, Keys: 3/4, Trophies: 2/5
|
||||
T.T. Amulets: 3/4, Wizpig Amulets: 2/4
|
||||
--------------------------------------------------------------------
|
||||
We are collecting silver coins in Treasure Caves. (6/8 silver coins)
|
||||
====================================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
------------------------- 33.39% Complete --------------------------
|
||||
# Documented functions: 740
|
||||
# Undocumented remaining: 829
|
||||
--------------------------- Game Status ----------------------------
|
||||
Balloons: 17/47, Keys: 2/4, Trophies: 1/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
--------------------------------------------------------------------
|
||||
We are battling in Icicle Pyramid. (3 opponents remain)
|
||||
====================================================================
|
||||
=======================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
------------------- 60.91% Complete -------------------
|
||||
# Decompiled functions: 1648
|
||||
# GLOBAL_ASM remaining: 198
|
||||
# NON_MATCHING functions: 11
|
||||
# NON_EQUIVALENT WIP functions: 56
|
||||
--------------------- Game Status ---------------------
|
||||
Balloons: 30/47, Keys: 3/4, Trophies: 2/5
|
||||
T.T. Amulets: 3/4, Wizpig Amulets: 2/4
|
||||
-------------------------------------------------------
|
||||
We are racing in the rematch against Bubbler. (Lap 1/3)
|
||||
=======================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
------------------- 33.66% Complete -------------------
|
||||
# Documented functions: 747
|
||||
# Undocumented remaining: 822
|
||||
--------------------- Game Status ---------------------
|
||||
Balloons: 17/47, Keys: 2/4, Trophies: 1/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
-------------------------------------------------------
|
||||
We are battling in Icicle Pyramid. (3 opponents remain)
|
||||
=======================================================
|
||||
```
|
||||
<!-- README_SCORE_END -->
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,347 +0,0 @@
|
||||
glabel func_800862C4
|
||||
/* 086EC4 800862C4 27BDFEB8 */ addiu $sp, $sp, -0x148
|
||||
/* 086EC8 800862C8 AFB60038 */ sw $s6, 0x38($sp)
|
||||
/* 086ECC 800862CC AFB20028 */ sw $s2, 0x28($sp)
|
||||
/* 086ED0 800862D0 3C128012 */ lui $s2, %hi(D_80126A08) # $s2, 0x8012
|
||||
/* 086ED4 800862D4 3C168012 */ lui $s6, %hi(gSavefileData+12) # $s6, 0x8012
|
||||
/* 086ED8 800862D8 26526A08 */ addiu $s2, %lo(D_80126A08) # addiu $s2, $s2, 0x6a08
|
||||
/* 086EDC 800862DC 8ED6653C */ lw $s6, %lo(gSavefileData+12)($s6)
|
||||
/* 086EE0 800862E0 AE400000 */ sw $zero, ($s2)
|
||||
/* 086EE4 800862E4 3C018012 */ lui $at, %hi(D_80126BD4) # $at, 0x8012
|
||||
/* 086EE8 800862E8 44802000 */ mtc1 $zero, $f4
|
||||
/* 086EEC 800862EC AFB40030 */ sw $s4, 0x30($sp)
|
||||
/* 086EF0 800862F0 AFB10024 */ sw $s1, 0x24($sp)
|
||||
/* 086EF4 800862F4 AC206BD4 */ sw $zero, %lo(D_80126BD4)($at)
|
||||
/* 086EF8 800862F8 AFB3002C */ sw $s3, 0x2c($sp)
|
||||
/* 086EFC 800862FC AFB00020 */ sw $s0, 0x20($sp)
|
||||
/* 086F00 80086300 3C018012 */ lui $at, %hi(D_80126BDC) # $at, 0x8012
|
||||
/* 086F04 80086304 3C118012 */ lui $s1, %hi(gSavefileData) # $s1, 0x8012
|
||||
/* 086F08 80086308 3C148012 */ lui $s4, %hi(D_80126A0C) # $s4, 0x8012
|
||||
/* 086F0C 8008630C AFBF0044 */ sw $ra, 0x44($sp)
|
||||
/* 086F10 80086310 AFBE0040 */ sw $fp, 0x40($sp)
|
||||
/* 086F14 80086314 AFB7003C */ sw $s7, 0x3c($sp)
|
||||
/* 086F18 80086318 AFB50034 */ sw $s5, 0x34($sp)
|
||||
/* 086F1C 8008631C 26946A0C */ addiu $s4, %lo(D_80126A0C) # addiu $s4, $s4, 0x6a0c
|
||||
/* 086F20 80086320 26316530 */ addiu $s1, %lo(gSavefileData) # addiu $s1, $s1, 0x6530
|
||||
/* 086F24 80086324 00008025 */ move $s0, $zero
|
||||
/* 086F28 80086328 24130001 */ li $s3, 1
|
||||
/* 086F2C 8008632C E4246BDC */ swc1 $f4, %lo(D_80126BDC)($at)
|
||||
.L80086330:
|
||||
/* 086F30 80086330 8E2E0000 */ lw $t6, ($s1)
|
||||
/* 086F34 80086334 00000000 */ nop
|
||||
/* 086F38 80086338 91CF004B */ lbu $t7, 0x4b($t6)
|
||||
/* 086F3C 8008633C 00000000 */ nop
|
||||
/* 086F40 80086340 15E00022 */ bnez $t7, .L800863CC
|
||||
/* 086F44 80086344 00000000 */ nop
|
||||
/* 086F48 80086348 8E590000 */ lw $t9, ($s2)
|
||||
/* 086F4C 8008634C 8E980000 */ lw $t8, ($s4)
|
||||
/* 086F50 80086350 00194900 */ sll $t1, $t9, 4
|
||||
/* 086F54 80086354 03095021 */ addu $t2, $t8, $t1
|
||||
/* 086F58 80086358 A1530000 */ sb $s3, ($t2)
|
||||
/* 086F5C 8008635C 8E4C0000 */ lw $t4, ($s2)
|
||||
/* 086F60 80086360 8E8B0000 */ lw $t3, ($s4)
|
||||
/* 086F64 80086364 000C6900 */ sll $t5, $t4, 4
|
||||
/* 086F68 80086368 016D7021 */ addu $t6, $t3, $t5
|
||||
/* 086F6C 8008636C A1D30001 */ sb $s3, 1($t6)
|
||||
/* 086F70 80086370 8E2F0000 */ lw $t7, ($s1)
|
||||
/* 086F74 80086374 8E4A0000 */ lw $t2, ($s2)
|
||||
/* 086F78 80086378 8DF90000 */ lw $t9, ($t7)
|
||||
/* 086F7C 8008637C 8E890000 */ lw $t1, ($s4)
|
||||
/* 086F80 80086380 87380000 */ lh $t8, ($t9)
|
||||
/* 086F84 80086384 000A6100 */ sll $t4, $t2, 4
|
||||
/* 086F88 80086388 012C5821 */ addu $t3, $t1, $t4
|
||||
/* 086F8C 8008638C A1780002 */ sb $t8, 2($t3)
|
||||
/* 086F90 80086390 8E4E0000 */ lw $t6, ($s2)
|
||||
/* 086F94 80086394 8E8D0000 */ lw $t5, ($s4)
|
||||
/* 086F98 80086398 000E7900 */ sll $t7, $t6, 4
|
||||
/* 086F9C 8008639C 01AFC821 */ addu $t9, $t5, $t7
|
||||
/* 086FA0 800863A0 0C01CF13 */ jal get_game_data_file_size
|
||||
/* 086FA4 800863A4 A3300006 */ sb $s0, 6($t9)
|
||||
/* 086FA8 800863A8 8E490000 */ lw $t1, ($s2)
|
||||
/* 086FAC 800863AC 8E8A0000 */ lw $t2, ($s4)
|
||||
/* 086FB0 800863B0 00096100 */ sll $t4, $t1, 4
|
||||
/* 086FB4 800863B4 014CC021 */ addu $t8, $t2, $t4
|
||||
/* 086FB8 800863B8 AF02000C */ sw $v0, 0xc($t8)
|
||||
/* 086FBC 800863BC 8E4B0000 */ lw $t3, ($s2)
|
||||
/* 086FC0 800863C0 00000000 */ nop
|
||||
/* 086FC4 800863C4 256E0001 */ addiu $t6, $t3, 1
|
||||
/* 086FC8 800863C8 AE4E0000 */ sw $t6, ($s2)
|
||||
.L800863CC:
|
||||
/* 086FCC 800863CC 26100001 */ addiu $s0, $s0, 1
|
||||
/* 086FD0 800863D0 24010003 */ li $at, 3
|
||||
/* 086FD4 800863D4 1601FFD6 */ bne $s0, $at, .L80086330
|
||||
/* 086FD8 800863D8 26310004 */ addiu $s1, $s1, 4
|
||||
/* 086FDC 800863DC 8E590000 */ lw $t9, ($s2)
|
||||
/* 086FE0 800863E0 8E8F0000 */ lw $t7, ($s4)
|
||||
/* 086FE4 800863E4 00194900 */ sll $t1, $t9, 4
|
||||
/* 086FE8 800863E8 240D0002 */ li $t5, 2
|
||||
/* 086FEC 800863EC 01E95021 */ addu $t2, $t7, $t1
|
||||
/* 086FF0 800863F0 A14D0000 */ sb $t5, ($t2)
|
||||
/* 086FF4 800863F4 8E580000 */ lw $t8, ($s2)
|
||||
/* 086FF8 800863F8 8E8C0000 */ lw $t4, ($s4)
|
||||
/* 086FFC 800863FC 00185900 */ sll $t3, $t8, 4
|
||||
/* 087000 80086400 018B7021 */ addu $t6, $t4, $t3
|
||||
/* 087004 80086404 0C01CF15 */ jal get_time_data_file_size
|
||||
/* 087008 80086408 A1D30001 */ sb $s3, 1($t6)
|
||||
/* 08700C 8008640C 8E4F0000 */ lw $t7, ($s2)
|
||||
/* 087010 80086410 8E990000 */ lw $t9, ($s4)
|
||||
/* 087014 80086414 000F4900 */ sll $t1, $t7, 4
|
||||
/* 087018 80086418 03296821 */ addu $t5, $t9, $t1
|
||||
/* 08701C 8008641C ADA2000C */ sw $v0, 0xc($t5)
|
||||
/* 087020 80086420 8E4A0000 */ lw $t2, ($s2)
|
||||
/* 087024 80086424 8E8B0000 */ lw $t3, ($s4)
|
||||
/* 087028 80086428 25580001 */ addiu $t8, $t2, 1
|
||||
/* 08702C 8008642C 00187900 */ sll $t7, $t8, 4
|
||||
/* 087030 80086430 AE580000 */ sw $t8, ($s2)
|
||||
/* 087034 80086434 240C000A */ li $t4, 10
|
||||
/* 087038 80086438 016FC821 */ addu $t9, $t3, $t7
|
||||
/* 08703C 8008643C A32C0000 */ sb $t4, ($t9)
|
||||
/* 087040 80086440 8E490000 */ lw $t1, ($s2)
|
||||
/* 087044 80086444 3C108012 */ lui $s0, %hi(D_80126A64) # $s0, 0x8012
|
||||
/* 087048 80086448 252D0001 */ addiu $t5, $t1, 1
|
||||
/* 08704C 8008644C AE4D0000 */ sw $t5, ($s2)
|
||||
/* 087050 80086450 8E106A64 */ lw $s0, %lo(D_80126A64)($s0)
|
||||
/* 087054 80086454 8FA80138 */ lw $t0, 0x138($sp)
|
||||
/* 087058 80086458 27BE00B4 */ addiu $fp, $sp, 0xb4
|
||||
.L8008645C:
|
||||
/* 08705C 8008645C 3C0A8012 */ lui $t2, %hi(D_80126A18) # $t2, 0x8012
|
||||
/* 087060 80086460 8D4A6A18 */ lw $t2, %lo(D_80126A18)($t2)
|
||||
/* 087064 80086464 24170001 */ li $s7, 1
|
||||
/* 087068 80086468 114000CC */ beqz $t2, .L8008679C
|
||||
/* 08706C 8008646C 3C018012 */ lui $at, %hi(D_80126A14) # $at, 0x8012
|
||||
/* 087070 80086470 AC206A14 */ sw $zero, %lo(D_80126A14)($at)
|
||||
/* 087074 80086474 27B80060 */ addiu $t8, $sp, 0x60
|
||||
.L80086478:
|
||||
/* 087078 80086478 27AE00A4 */ addiu $t6, $sp, 0xa4
|
||||
/* 08707C 8008647C AFAE0014 */ sw $t6, 0x14($sp)
|
||||
/* 087080 80086480 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 087084 80086484 00002025 */ move $a0, $zero
|
||||
/* 087088 80086488 24050010 */ li $a1, 16
|
||||
/* 08708C 8008648C 27A600F4 */ addiu $a2, $sp, 0xf4
|
||||
/* 087090 80086490 0C01D798 */ jal get_controller_pak_file_list
|
||||
/* 087094 80086494 03C03825 */ move $a3, $fp
|
||||
/* 087098 80086498 304300FF */ andi $v1, $v0, 0xff
|
||||
/* 08709C 8008649C 24010005 */ li $at, 5
|
||||
/* 0870A0 800864A0 00404025 */ move $t0, $v0
|
||||
/* 0870A4 800864A4 14610004 */ bne $v1, $at, .L800864B8
|
||||
/* 0870A8 800864A8 26F70001 */ addiu $s7, $s7, 1
|
||||
/* 0870AC 800864AC 2AE10003 */ slti $at, $s7, 3
|
||||
/* 0870B0 800864B0 1420FFF1 */ bnez $at, .L80086478
|
||||
/* 0870B4 800864B4 27B80060 */ addiu $t8, $sp, 0x60
|
||||
.L800864B8:
|
||||
/* 0870B8 800864B8 1440009B */ bnez $v0, .L80086728
|
||||
/* 0870BC 800864BC 24010007 */ li $at, 7
|
||||
/* 0870C0 800864C0 00009825 */ move $s3, $zero
|
||||
/* 0870C4 800864C4 27B500A4 */ addiu $s5, $sp, 0xa4
|
||||
.L800864C8:
|
||||
/* 0870C8 800864C8 92A20000 */ lbu $v0, ($s5)
|
||||
/* 0870CC 800864CC 00000000 */ nop
|
||||
/* 0870D0 800864D0 28410003 */ slti $at, $v0, 3
|
||||
/* 0870D4 800864D4 1420008B */ bnez $at, .L80086704
|
||||
/* 0870D8 800864D8 28410007 */ slti $at, $v0, 7
|
||||
/* 0870DC 800864DC 10200089 */ beqz $at, .L80086704
|
||||
/* 0870E0 800864E0 3C048012 */ lui $a0, %hi(sControllerPakNotesFree) # $a0, 0x8012
|
||||
/* 0870E4 800864E4 24846A20 */ addiu $a0, %lo(sControllerPakNotesFree) # addiu $a0, $a0, 0x6a20
|
||||
/* 0870E8 800864E8 8C8B0000 */ lw $t3, ($a0)
|
||||
/* 0870EC 800864EC 8E590000 */ lw $t9, ($s2)
|
||||
/* 0870F0 800864F0 8E8C0000 */ lw $t4, ($s4)
|
||||
/* 0870F4 800864F4 256FFFFF */ addiu $t7, $t3, -1
|
||||
/* 0870F8 800864F8 00194900 */ sll $t1, $t9, 4
|
||||
/* 0870FC 800864FC AC8F0000 */ sw $t7, ($a0)
|
||||
/* 087100 80086500 01896821 */ addu $t5, $t4, $t1
|
||||
/* 087104 80086504 A1A20000 */ sb $v0, ($t5)
|
||||
/* 087108 80086508 8E580000 */ lw $t8, ($s2)
|
||||
/* 08710C 8008650C 8E8A0000 */ lw $t2, ($s4)
|
||||
/* 087110 80086510 00187100 */ sll $t6, $t8, 4
|
||||
/* 087114 80086514 014E5821 */ addu $t3, $t2, $t6
|
||||
/* 087118 80086518 A1600006 */ sb $zero, 6($t3)
|
||||
/* 08711C 8008651C 8E590000 */ lw $t9, ($s2)
|
||||
/* 087120 80086520 8E8F0000 */ lw $t7, ($s4)
|
||||
/* 087124 80086524 00196100 */ sll $t4, $t9, 4
|
||||
/* 087128 80086528 01EC4821 */ addu $t1, $t7, $t4
|
||||
/* 08712C 8008652C A1330007 */ sb $s3, 7($t1)
|
||||
/* 087130 80086530 8E4A0000 */ lw $t2, ($s2)
|
||||
/* 087134 80086534 00133880 */ sll $a3, $s3, 2
|
||||
/* 087138 80086538 8E980000 */ lw $t8, ($s4)
|
||||
/* 08713C 8008653C 03A76821 */ addu $t5, $sp, $a3
|
||||
/* 087140 80086540 8DAD0060 */ lw $t5, 0x60($t5)
|
||||
/* 087144 80086544 000A7100 */ sll $t6, $t2, 4
|
||||
/* 087148 80086548 030E5821 */ addu $t3, $t8, $t6
|
||||
/* 08714C 8008654C AD6D000C */ sw $t5, 0xc($t3)
|
||||
/* 087150 80086550 92A30000 */ lbu $v1, ($s5)
|
||||
/* 087154 80086554 24010003 */ li $at, 3
|
||||
/* 087158 80086558 1461002E */ bne $v1, $at, .L80086614
|
||||
/* 08715C 8008655C 00002025 */ move $a0, $zero
|
||||
/* 087160 80086560 03C78821 */ addu $s1, $fp, $a3
|
||||
/* 087164 80086564 8E250000 */ lw $a1, ($s1)
|
||||
/* 087168 80086568 AFA80138 */ sw $t0, 0x138($sp)
|
||||
/* 08716C 8008656C 0C01CF87 */ jal read_game_data_from_controller_pak
|
||||
/* 087170 80086570 02C03025 */ move $a2, $s6
|
||||
/* 087174 80086574 8FA80138 */ lw $t0, 0x138($sp)
|
||||
/* 087178 80086578 14400021 */ bnez $v0, .L80086600
|
||||
/* 08717C 8008657C 00000000 */ nop
|
||||
/* 087180 80086580 8E4F0000 */ lw $t7, ($s2)
|
||||
/* 087184 80086584 8E990000 */ lw $t9, ($s4)
|
||||
/* 087188 80086588 000F6100 */ sll $t4, $t7, 4
|
||||
/* 08718C 8008658C 032C4821 */ addu $t1, $t9, $t4
|
||||
/* 087190 80086590 AD300008 */ sw $s0, 8($t1)
|
||||
/* 087194 80086594 8E2A0000 */ lw $t2, ($s1)
|
||||
/* 087198 80086598 26100002 */ addiu $s0, $s0, 2
|
||||
/* 08719C 8008659C 91580000 */ lbu $t8, ($t2)
|
||||
/* 0871A0 800865A0 A200FFFF */ sb $zero, -1($s0)
|
||||
/* 0871A4 800865A4 A218FFFE */ sb $t8, -2($s0)
|
||||
/* 0871A8 800865A8 8E4F0000 */ lw $t7, ($s2)
|
||||
/* 0871AC 800865AC 8ECE0000 */ lw $t6, ($s6)
|
||||
/* 0871B0 800865B0 8E8B0000 */ lw $t3, ($s4)
|
||||
/* 0871B4 800865B4 85CD0000 */ lh $t5, ($t6)
|
||||
/* 0871B8 800865B8 000FC900 */ sll $t9, $t7, 4
|
||||
/* 0871BC 800865BC 01796021 */ addu $t4, $t3, $t9
|
||||
/* 0871C0 800865C0 A18D0002 */ sb $t5, 2($t4)
|
||||
/* 0871C4 800865C4 8E4F0000 */ lw $t7, ($s2)
|
||||
/* 0871C8 800865C8 8EC90010 */ lw $t1, 0x10($s6)
|
||||
/* 0871CC 800865CC 8E8E0000 */ lw $t6, ($s4)
|
||||
/* 0871D0 800865D0 000F5900 */ sll $t3, $t7, 4
|
||||
/* 0871D4 800865D4 312A0004 */ andi $t2, $t1, 4
|
||||
/* 0871D8 800865D8 000AC02B */ sltu $t8, $zero, $t2
|
||||
/* 0871DC 800865DC 01CBC821 */ addu $t9, $t6, $t3
|
||||
/* 0871E0 800865E0 A3380003 */ sb $t8, 3($t9)
|
||||
/* 0871E4 800865E4 8E490000 */ lw $t1, ($s2)
|
||||
/* 0871E8 800865E8 8E8C0000 */ lw $t4, ($s4)
|
||||
/* 0871EC 800865EC 8ECD0050 */ lw $t5, 0x50($s6)
|
||||
/* 0871F0 800865F0 00095100 */ sll $t2, $t1, 4
|
||||
/* 0871F4 800865F4 018A7821 */ addu $t7, $t4, $t2
|
||||
/* 0871F8 800865F8 1000003E */ b .L800866F4
|
||||
/* 0871FC 800865FC A5ED0004 */ sh $t5, 4($t7)
|
||||
.L80086600:
|
||||
/* 087200 80086600 8E4E0000 */ lw $t6, ($s2)
|
||||
/* 087204 80086604 00000000 */ nop
|
||||
/* 087208 80086608 25CBFFFF */ addiu $t3, $t6, -1
|
||||
/* 08720C 8008660C 10000039 */ b .L800866F4
|
||||
/* 087210 80086610 AE4B0000 */ sw $t3, ($s2)
|
||||
.L80086614:
|
||||
/* 087214 80086614 24010006 */ li $at, 6
|
||||
/* 087218 80086618 10610003 */ beq $v1, $at, .L80086628
|
||||
/* 08721C 8008661C 00001025 */ move $v0, $zero
|
||||
/* 087220 80086620 24010004 */ li $at, 4
|
||||
/* 087224 80086624 14610033 */ bne $v1, $at, .L800866F4
|
||||
.L80086628:
|
||||
/* 087228 80086628 27B800F4 */ addiu $t8, $sp, 0xf4
|
||||
/* 08722C 8008662C 24010004 */ li $at, 4
|
||||
/* 087230 80086630 00F82021 */ addu $a0, $a3, $t8
|
||||
/* 087234 80086634 14610002 */ bne $v1, $at, .L80086640
|
||||
/* 087238 80086638 03C78821 */ addu $s1, $fp, $a3
|
||||
/* 08723C 8008663C 24020009 */ li $v0, 9
|
||||
.L80086640:
|
||||
/* 087240 80086640 8E490000 */ lw $t1, ($s2)
|
||||
/* 087244 80086644 8E990000 */ lw $t9, ($s4)
|
||||
/* 087248 80086648 00096100 */ sll $t4, $t1, 4
|
||||
/* 08724C 8008664C 032C5021 */ addu $t2, $t9, $t4
|
||||
/* 087250 80086650 AD500008 */ sw $s0, 8($t2)
|
||||
/* 087254 80086654 8C8D0000 */ lw $t5, ($a0)
|
||||
/* 087258 80086658 00000000 */ nop
|
||||
/* 08725C 8008665C 01A27821 */ addu $t7, $t5, $v0
|
||||
/* 087260 80086660 91E30000 */ lbu $v1, ($t7)
|
||||
/* 087264 80086664 00000000 */ nop
|
||||
/* 087268 80086668 10600009 */ beqz $v1, .L80086690
|
||||
/* 08726C 8008666C 00000000 */ nop
|
||||
.L80086670:
|
||||
/* 087270 80086670 A2030000 */ sb $v1, ($s0)
|
||||
/* 087274 80086674 8C8E0000 */ lw $t6, ($a0)
|
||||
/* 087278 80086678 24420001 */ addiu $v0, $v0, 1
|
||||
/* 08727C 8008667C 01C25821 */ addu $t3, $t6, $v0
|
||||
/* 087280 80086680 91630000 */ lbu $v1, ($t3)
|
||||
/* 087284 80086684 26100001 */ addiu $s0, $s0, 1
|
||||
/* 087288 80086688 1460FFF9 */ bnez $v1, .L80086670
|
||||
/* 08728C 8008668C 00000000 */ nop
|
||||
.L80086690:
|
||||
/* 087290 80086690 8E240000 */ lw $a0, ($s1)
|
||||
/* 087294 80086694 00000000 */ nop
|
||||
/* 087298 80086698 10800014 */ beqz $a0, .L800866EC
|
||||
/* 08729C 8008669C 00000000 */ nop
|
||||
/* 0872A0 800866A0 90980000 */ lbu $t8, ($a0)
|
||||
/* 0872A4 800866A4 2409002E */ li $t1, 46
|
||||
/* 0872A8 800866A8 13000010 */ beqz $t8, .L800866EC
|
||||
/* 0872AC 800866AC 00000000 */ nop
|
||||
/* 0872B0 800866B0 A2090000 */ sb $t1, ($s0)
|
||||
/* 0872B4 800866B4 8E240000 */ lw $a0, ($s1)
|
||||
/* 0872B8 800866B8 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0872BC 800866BC 90990000 */ lbu $t9, ($a0)
|
||||
/* 0872C0 800866C0 00001025 */ move $v0, $zero
|
||||
/* 0872C4 800866C4 13200009 */ beqz $t9, .L800866EC
|
||||
/* 0872C8 800866C8 332300FF */ andi $v1, $t9, 0xff
|
||||
.L800866CC:
|
||||
/* 0872CC 800866CC A2030000 */ sb $v1, ($s0)
|
||||
/* 0872D0 800866D0 8E2C0000 */ lw $t4, ($s1)
|
||||
/* 0872D4 800866D4 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0872D8 800866D8 01825021 */ addu $t2, $t4, $v0
|
||||
/* 0872DC 800866DC 91430000 */ lbu $v1, ($t2)
|
||||
/* 0872E0 800866E0 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0872E4 800866E4 1460FFF9 */ bnez $v1, .L800866CC
|
||||
/* 0872E8 800866E8 00000000 */ nop
|
||||
.L800866EC:
|
||||
/* 0872EC 800866EC A2000000 */ sb $zero, ($s0)
|
||||
/* 0872F0 800866F0 26100001 */ addiu $s0, $s0, 1
|
||||
.L800866F4:
|
||||
/* 0872F4 800866F4 8E4D0000 */ lw $t5, ($s2)
|
||||
/* 0872F8 800866F8 00000000 */ nop
|
||||
/* 0872FC 800866FC 25AF0001 */ addiu $t7, $t5, 1
|
||||
/* 087300 80086700 AE4F0000 */ sw $t7, ($s2)
|
||||
.L80086704:
|
||||
/* 087304 80086704 26730001 */ addiu $s3, $s3, 1
|
||||
/* 087308 80086708 24010010 */ li $at, 16
|
||||
/* 08730C 8008670C 1661FF6E */ bne $s3, $at, .L800864C8
|
||||
/* 087310 80086710 26B50001 */ addiu $s5, $s5, 1
|
||||
/* 087314 80086714 0C01D859 */ jal packDirectoryFree
|
||||
/* 087318 80086718 AFA80138 */ sw $t0, 0x138($sp)
|
||||
/* 08731C 8008671C 8FA80138 */ lw $t0, 0x138($sp)
|
||||
/* 087320 80086720 1000001E */ b .L8008679C
|
||||
/* 087324 80086724 00000000 */ nop
|
||||
.L80086728:
|
||||
/* 087328 80086728 14610010 */ bne $v1, $at, .L8008676C
|
||||
/* 08732C 8008672C 240E0001 */ li $t6, 1
|
||||
/* 087330 80086730 3C0B8012 */ lui $t3, %hi(D_80126A18) # $t3, 0x8012
|
||||
/* 087334 80086734 8D6B6A18 */ lw $t3, %lo(D_80126A18)($t3)
|
||||
/* 087338 80086738 3C018012 */ lui $at, %hi(D_80126A14) # $at, 0x8012
|
||||
/* 08733C 8008673C 05610002 */ bgez $t3, .L80086748
|
||||
/* 087340 80086740 AC2E6A14 */ sw $t6, %lo(D_80126A14)($at)
|
||||
/* 087344 80086744 00004025 */ move $t0, $zero
|
||||
.L80086748:
|
||||
/* 087348 80086748 3C188012 */ lui $t8, %hi(D_80126A6C) # $t8, 0x8012
|
||||
/* 08734C 8008674C 8F186A6C */ lw $t8, %lo(D_80126A6C)($t8)
|
||||
/* 087350 80086750 24090001 */ li $t1, 1
|
||||
/* 087354 80086754 13000011 */ beqz $t8, .L8008679C
|
||||
/* 087358 80086758 3C018012 */ lui $at, %hi(D_80126A10) # $at, 0x8012
|
||||
/* 08735C 8008675C AC296A10 */ sw $t1, %lo(D_80126A10)($at)
|
||||
/* 087360 80086760 3C018012 */ lui $at, %hi(D_80126A6C) # $at, 0x8012
|
||||
/* 087364 80086764 1000000D */ b .L8008679C
|
||||
/* 087368 80086768 AC206A6C */ sw $zero, %lo(D_80126A6C)($at)
|
||||
.L8008676C:
|
||||
/* 08736C 8008676C 24010001 */ li $at, 1
|
||||
/* 087370 80086770 14610003 */ bne $v1, $at, .L80086780
|
||||
/* 087374 80086774 3C198012 */ lui $t9, %hi(D_80126A18) # $t9, 0x8012
|
||||
/* 087378 80086778 10000008 */ b .L8008679C
|
||||
/* 08737C 8008677C 00004025 */ move $t0, $zero
|
||||
.L80086780:
|
||||
/* 087380 80086780 8F396A18 */ lw $t9, %lo(D_80126A18)($t9)
|
||||
/* 087384 80086784 24010005 */ li $at, 5
|
||||
/* 087388 80086788 07210004 */ bgez $t9, .L8008679C
|
||||
/* 08738C 8008678C 00000000 */ nop
|
||||
/* 087390 80086790 14610002 */ bne $v1, $at, .L8008679C
|
||||
/* 087394 80086794 00000000 */ nop
|
||||
/* 087398 80086798 0000B825 */ move $s7, $zero
|
||||
.L8008679C:
|
||||
/* 08739C 8008679C 12E0FF2F */ beqz $s7, .L8008645C
|
||||
/* 0873A0 800867A0 01001025 */ move $v0, $t0
|
||||
/* 0873A4 800867A4 8FBF0044 */ lw $ra, 0x44($sp)
|
||||
/* 0873A8 800867A8 8FB00020 */ lw $s0, 0x20($sp)
|
||||
/* 0873AC 800867AC 8FB10024 */ lw $s1, 0x24($sp)
|
||||
/* 0873B0 800867B0 8FB20028 */ lw $s2, 0x28($sp)
|
||||
/* 0873B4 800867B4 8FB3002C */ lw $s3, 0x2c($sp)
|
||||
/* 0873B8 800867B8 8FB40030 */ lw $s4, 0x30($sp)
|
||||
/* 0873BC 800867BC 8FB50034 */ lw $s5, 0x34($sp)
|
||||
/* 0873C0 800867C0 8FB60038 */ lw $s6, 0x38($sp)
|
||||
/* 0873C4 800867C4 8FB7003C */ lw $s7, 0x3c($sp)
|
||||
/* 0873C8 800867C8 8FBE0040 */ lw $fp, 0x40($sp)
|
||||
/* 0873CC 800867CC 03E00008 */ jr $ra
|
||||
/* 0873D0 800867D0 27BD0148 */ addiu $sp, $sp, 0x148
|
||||
|
||||
@@ -1,312 +0,0 @@
|
||||
.late_rodata
|
||||
glabel jpt_800E8440
|
||||
.word L800878D4, L800878D4, L800878D4, L800878F0, L800878BC, L800878F0, L800878E0, L800878F0, L800878D4
|
||||
glabel jpt_800E8464
|
||||
.word L80087930, L80087948, L80087948, L80087964, L80087930, L80087964, L80087954, L80087964, L80087948
|
||||
glabel jpt_800E8488
|
||||
.word L800879A4, L800879A4, L800879A4, L80087B50, L800879A4, L80087B50, L800879A4, L80087B50, L800879BC, L800879BC
|
||||
|
||||
.text
|
||||
glabel func_80087734
|
||||
/* 088334 80087734 3C068012 */ lui $a2, %hi(gOptionBlinkTimer) # $a2, 0x8012
|
||||
/* 088338 80087738 8CC663BC */ lw $a2, %lo(gOptionBlinkTimer)($a2)
|
||||
/* 08833C 8008773C 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 088340 80087740 000670C0 */ sll $t6, $a2, 3
|
||||
/* 088344 80087744 29C10100 */ slti $at, $t6, 0x100
|
||||
/* 088348 80087748 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 08834C 8008774C AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 088350 80087750 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 088354 80087754 14200003 */ bnez $at, .L80087764
|
||||
/* 088358 80087758 01C03025 */ move $a2, $t6
|
||||
/* 08835C 8008775C 240F01FF */ li $t7, 511
|
||||
/* 088360 80087760 01EE3023 */ subu $a2, $t7, $t6
|
||||
.L80087764:
|
||||
/* 088364 80087764 3C098012 */ lui $t1, %hi(gMenuOptionCount) # $t1, 0x8012
|
||||
/* 088368 80087768 252963E0 */ addiu $t1, %lo(gMenuOptionCount) # addiu $t1, $t1, 0x63e0
|
||||
/* 08836C 8008776C 3C058012 */ lui $a1, %hi(D_80126A74) # $a1, 0x8012
|
||||
/* 088370 80087770 8D280000 */ lw $t0, ($t1)
|
||||
/* 088374 80087774 24A56A74 */ addiu $a1, %lo(D_80126A74) # addiu $a1, $a1, 0x6a74
|
||||
/* 088378 80087778 8CA40000 */ lw $a0, ($a1)
|
||||
/* 08837C 8008777C 31180007 */ andi $t8, $t0, 7
|
||||
/* 088380 80087780 03004025 */ move $t0, $t8
|
||||
/* 088384 80087784 18800014 */ blez $a0, .L800877D8
|
||||
/* 088388 80087788 00001825 */ move $v1, $zero
|
||||
/* 08838C 8008778C 3C028012 */ lui $v0, %hi(D_80126A80) # $v0, 0x8012
|
||||
/* 088390 80087790 3C078012 */ lui $a3, %hi(D_80126A78) # $a3, 0x8012
|
||||
/* 088394 80087794 24E76A78 */ addiu $a3, %lo(D_80126A78) # addiu $a3, $a3, 0x6a78
|
||||
/* 088398 80087798 24426A80 */ addiu $v0, %lo(D_80126A80) # addiu $v0, $v0, 0x6a80
|
||||
.L8008779C:
|
||||
/* 08839C 8008779C 8CF90000 */ lw $t9, ($a3)
|
||||
/* 0883A0 800877A0 00000000 */ nop
|
||||
/* 0883A4 800877A4 14790004 */ bne $v1, $t9, .L800877B8
|
||||
/* 0883A8 800877A8 00000000 */ nop
|
||||
/* 0883AC 800877AC 8C4A0000 */ lw $t2, ($v0)
|
||||
/* 0883B0 800877B0 10000004 */ b .L800877C4
|
||||
/* 0883B4 800877B4 A1460013 */ sb $a2, 0x13($t2)
|
||||
.L800877B8:
|
||||
/* 0883B8 800877B8 8C4B0000 */ lw $t3, ($v0)
|
||||
/* 0883BC 800877BC 00000000 */ nop
|
||||
/* 0883C0 800877C0 A1600013 */ sb $zero, 0x13($t3)
|
||||
.L800877C4:
|
||||
/* 0883C4 800877C4 8CA40000 */ lw $a0, ($a1)
|
||||
/* 0883C8 800877C8 24630001 */ addiu $v1, $v1, 1
|
||||
/* 0883CC 800877CC 0064082A */ slt $at, $v1, $a0
|
||||
/* 0883D0 800877D0 1420FFF2 */ bnez $at, .L8008779C
|
||||
/* 0883D4 800877D4 24420004 */ addiu $v0, $v0, 4
|
||||
.L800877D8:
|
||||
/* 0883D8 800877D8 8FAC0028 */ lw $t4, 0x28($sp)
|
||||
/* 0883DC 800877DC 3C078012 */ lui $a3, %hi(D_80126A78) # $a3, 0x8012
|
||||
/* 0883E0 800877E0 318D4000 */ andi $t5, $t4, 0x4000
|
||||
/* 0883E4 800877E4 15A00009 */ bnez $t5, .L8008780C
|
||||
/* 0883E8 800877E8 24E76A78 */ addiu $a3, %lo(D_80126A78) # addiu $a3, $a3, 0x6a78
|
||||
/* 0883EC 800877EC 31829000 */ andi $v0, $t4, 0x9000
|
||||
/* 0883F0 800877F0 10400074 */ beqz $v0, .L800879C4
|
||||
/* 0883F4 800877F4 00000000 */ nop
|
||||
/* 0883F8 800877F8 8CEE0000 */ lw $t6, ($a3)
|
||||
/* 0883FC 800877FC 00000000 */ nop
|
||||
/* 088400 80087800 25CF0001 */ addiu $t7, $t6, 1
|
||||
/* 088404 80087804 15E4006F */ bne $t7, $a0, .L800879C4
|
||||
/* 088408 80087808 00000000 */ nop
|
||||
.L8008780C:
|
||||
/* 08840C 8008780C 24040241 */ li $a0, 577
|
||||
/* 088410 80087810 00002825 */ move $a1, $zero
|
||||
/* 088414 80087814 0C000741 */ jal play_sound_global
|
||||
/* 088418 80087818 AFA8001C */ sw $t0, 0x1c($sp)
|
||||
/* 08841C 8008781C 3C098012 */ lui $t1, %hi(gMenuOptionCount) # $t1, 0x8012
|
||||
/* 088420 80087820 252963E0 */ addiu $t1, %lo(gMenuOptionCount) # addiu $t1, $t1, 0x63e0
|
||||
/* 088424 80087824 8D380000 */ lw $t8, ($t1)
|
||||
/* 088428 80087828 8FA8001C */ lw $t0, 0x1c($sp)
|
||||
/* 08842C 8008782C 2401FFF7 */ li $at, -9
|
||||
/* 088430 80087830 0301C824 */ and $t9, $t8, $at
|
||||
/* 088434 80087834 1100000C */ beqz $t0, .L80087868
|
||||
/* 088438 80087838 AD390000 */ sw $t9, ($t1)
|
||||
/* 08843C 8008783C 24010002 */ li $at, 2
|
||||
/* 088440 80087840 11010012 */ beq $t0, $at, .L8008788C
|
||||
/* 088444 80087844 3C0E800E */ lui $t6, %hi(D_800DFADC) # $t6, 0x800e
|
||||
/* 088448 80087848 24020004 */ li $v0, 4
|
||||
/* 08844C 8008784C 1102002C */ beq $t0, $v0, .L80087900
|
||||
/* 088450 80087850 3C0D800E */ lui $t5, %hi(D_800DFADC) # $t5, 0x800e
|
||||
/* 088454 80087854 24010007 */ li $at, 7
|
||||
/* 088458 80087858 11010046 */ beq $t0, $at, .L80087974
|
||||
/* 08845C 8008785C 3C0A800E */ lui $t2, %hi(D_800DFADC) # $t2, 0x800e
|
||||
/* 088460 80087860 100000BC */ b .L80087B54
|
||||
/* 088464 80087864 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80087868:
|
||||
/* 088468 80087868 8FAA0028 */ lw $t2, 0x28($sp)
|
||||
/* 08846C 8008786C 240D0006 */ li $t5, 6
|
||||
/* 088470 80087870 314B9000 */ andi $t3, $t2, 0x9000
|
||||
/* 088474 80087874 156000B6 */ bnez $t3, .L80087B50
|
||||
/* 088478 80087878 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012
|
||||
/* 08847C 8008787C AC2D63D8 */ sw $t5, %lo(gOpacityDecayTimer)($at)
|
||||
/* 088480 80087880 240C0001 */ li $t4, 1
|
||||
/* 088484 80087884 100000B2 */ b .L80087B50
|
||||
/* 088488 80087888 AD2C0000 */ sw $t4, ($t1)
|
||||
.L8008788C:
|
||||
/* 08848C 8008788C 8DCEFADC */ lw $t6, %lo(D_800DFADC)($t6)
|
||||
/* 088490 80087890 00000000 */ nop
|
||||
/* 088494 80087894 25CFFFFF */ addiu $t7, $t6, -1
|
||||
/* 088498 80087898 2DE10009 */ sltiu $at, $t7, 9
|
||||
/* 08849C 8008789C 10200014 */ beqz $at, .L800878F0
|
||||
/* 0884A0 800878A0 000F7880 */ sll $t7, $t7, 2
|
||||
/* 0884A4 800878A4 3C01800F */ lui $at, %hi(jpt_800E8440) # $at, 0x800f
|
||||
/* 0884A8 800878A8 002F0821 */ addu $at, $at, $t7
|
||||
/* 0884AC 800878AC 8C2F8440 */ lw $t7, %lo(jpt_800E8440)($at)
|
||||
/* 0884B0 800878B0 00000000 */ nop
|
||||
/* 0884B4 800878B4 01E00008 */ jr $t7
|
||||
/* 0884B8 800878B8 00000000 */ nop
|
||||
glabel L800878BC
|
||||
/* 0884BC 800878BC 24180005 */ li $t8, 5
|
||||
/* 0884C0 800878C0 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012
|
||||
/* 0884C4 800878C4 AC3863D8 */ sw $t8, %lo(gOpacityDecayTimer)($at)
|
||||
/* 0884C8 800878C8 24190001 */ li $t9, 1
|
||||
/* 0884CC 800878CC 100000A0 */ b .L80087B50
|
||||
/* 0884D0 800878D0 AD390000 */ sw $t9, ($t1)
|
||||
glabel L800878D4
|
||||
/* 0884D4 800878D4 3C018012 */ lui $at, %hi(D_80126A18) # $at, 0x8012
|
||||
/* 0884D8 800878D8 1000009D */ b .L80087B50
|
||||
/* 0884DC 800878DC AC206A18 */ sw $zero, %lo(D_80126A18)($at)
|
||||
glabel L800878E0
|
||||
/* 0884E0 800878E0 240AFFFF */ li $t2, -1
|
||||
/* 0884E4 800878E4 3C018012 */ lui $at, %hi(D_80126A18) # $at, 0x8012
|
||||
/* 0884E8 800878E8 10000099 */ b .L80087B50
|
||||
/* 0884EC 800878EC AC2A6A18 */ sw $t2, %lo(D_80126A18)($at)
|
||||
.L800878F0:
|
||||
glabel L800878F0
|
||||
/* 0884F0 800878F0 240B0001 */ li $t3, 1
|
||||
/* 0884F4 800878F4 3C018012 */ lui $at, %hi(D_80126A18) # $at, 0x8012
|
||||
/* 0884F8 800878F8 10000095 */ b .L80087B50
|
||||
/* 0884FC 800878FC AC2B6A18 */ sw $t3, %lo(D_80126A18)($at)
|
||||
.L80087900:
|
||||
/* 088500 80087900 8DADFADC */ lw $t5, %lo(D_800DFADC)($t5)
|
||||
/* 088504 80087904 00000000 */ nop
|
||||
/* 088508 80087908 25ACFFFF */ addiu $t4, $t5, -1
|
||||
/* 08850C 8008790C 2D810009 */ sltiu $at, $t4, 9
|
||||
/* 088510 80087910 10200014 */ beqz $at, .L80087964
|
||||
/* 088514 80087914 000C6080 */ sll $t4, $t4, 2
|
||||
/* 088518 80087918 3C01800F */ lui $at, %hi(jpt_800E8464) # $at, 0x800f
|
||||
/* 08851C 8008791C 002C0821 */ addu $at, $at, $t4
|
||||
/* 088520 80087920 8C2C8464 */ lw $t4, %lo(jpt_800E8464)($at)
|
||||
/* 088524 80087924 00000000 */ nop
|
||||
/* 088528 80087928 01800008 */ jr $t4
|
||||
/* 08852C 8008792C 00000000 */ nop
|
||||
glabel L80087930
|
||||
/* 088530 80087930 240E0005 */ li $t6, 5
|
||||
/* 088534 80087934 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012
|
||||
/* 088538 80087938 AC2E63D8 */ sw $t6, %lo(gOpacityDecayTimer)($at)
|
||||
/* 08853C 8008793C 240F0001 */ li $t7, 1
|
||||
/* 088540 80087940 10000083 */ b .L80087B50
|
||||
/* 088544 80087944 AD2F0000 */ sw $t7, ($t1)
|
||||
glabel L80087948
|
||||
/* 088548 80087948 3C018012 */ lui $at, %hi(D_80126A1C) # $at, 0x8012
|
||||
/* 08854C 8008794C 10000080 */ b .L80087B50
|
||||
/* 088550 80087950 AC206A1C */ sw $zero, %lo(D_80126A1C)($at)
|
||||
glabel L80087954
|
||||
/* 088554 80087954 2418FFFF */ li $t8, -1
|
||||
/* 088558 80087958 3C018012 */ lui $at, %hi(D_80126A1C) # $at, 0x8012
|
||||
/* 08855C 8008795C 1000007C */ b .L80087B50
|
||||
/* 088560 80087960 AC386A1C */ sw $t8, %lo(D_80126A1C)($at)
|
||||
.L80087964:
|
||||
glabel L80087964
|
||||
/* 088564 80087964 24190001 */ li $t9, 1
|
||||
/* 088568 80087968 3C018012 */ lui $at, %hi(D_80126A1C) # $at, 0x8012
|
||||
/* 08856C 8008796C 10000078 */ b .L80087B50
|
||||
/* 088570 80087970 AC396A1C */ sw $t9, %lo(D_80126A1C)($at)
|
||||
.L80087974:
|
||||
/* 088574 80087974 8D4AFADC */ lw $t2, %lo(D_800DFADC)($t2)
|
||||
/* 088578 80087978 00000000 */ nop
|
||||
/* 08857C 8008797C 254BFFFF */ addiu $t3, $t2, -1
|
||||
/* 088580 80087980 2D61000A */ sltiu $at, $t3, 0xa
|
||||
/* 088584 80087984 10200072 */ beqz $at, .L80087B50
|
||||
/* 088588 80087988 000B5880 */ sll $t3, $t3, 2
|
||||
/* 08858C 8008798C 3C01800F */ lui $at, %hi(jpt_800E8488) # $at, 0x800f
|
||||
/* 088590 80087990 002B0821 */ addu $at, $at, $t3
|
||||
/* 088594 80087994 8C2B8488 */ lw $t3, %lo(jpt_800E8488)($at)
|
||||
/* 088598 80087998 00000000 */ nop
|
||||
/* 08859C 8008799C 01600008 */ jr $t3
|
||||
/* 0885A0 800879A0 00000000 */ nop
|
||||
glabel L800879A4
|
||||
/* 0885A4 800879A4 240D0005 */ li $t5, 5
|
||||
/* 0885A8 800879A8 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012
|
||||
/* 0885AC 800879AC AC2D63D8 */ sw $t5, %lo(gOpacityDecayTimer)($at)
|
||||
/* 0885B0 800879B0 240C0001 */ li $t4, 1
|
||||
/* 0885B4 800879B4 10000066 */ b .L80087B50
|
||||
/* 0885B8 800879B8 AD2C0000 */ sw $t4, ($t1)
|
||||
glabel L800879BC
|
||||
/* 0885BC 800879BC 10000064 */ b .L80087B50
|
||||
/* 0885C0 800879C0 AD220000 */ sw $v0, ($t1)
|
||||
.L800879C4:
|
||||
/* 0885C4 800879C4 10400042 */ beqz $v0, .L80087AD0
|
||||
/* 0885C8 800879C8 00002825 */ move $a1, $zero
|
||||
/* 0885CC 800879CC 240400EF */ li $a0, 239
|
||||
/* 0885D0 800879D0 0C000741 */ jal play_sound_global
|
||||
/* 0885D4 800879D4 AFA8001C */ sw $t0, 0x1c($sp)
|
||||
/* 0885D8 800879D8 3C098012 */ lui $t1, %hi(gMenuOptionCount) # $t1, 0x8012
|
||||
/* 0885DC 800879DC 252963E0 */ addiu $t1, %lo(gMenuOptionCount) # addiu $t1, $t1, 0x63e0
|
||||
/* 0885E0 800879E0 8D2E0000 */ lw $t6, ($t1)
|
||||
/* 0885E4 800879E4 2401FFF7 */ li $at, -9
|
||||
/* 0885E8 800879E8 01C17824 */ and $t7, $t6, $at
|
||||
/* 0885EC 800879EC AD2F0000 */ sw $t7, ($t1)
|
||||
/* 0885F0 800879F0 3C02800E */ lui $v0, %hi(D_800DFADC) # $v0, 0x800e
|
||||
/* 0885F4 800879F4 8C42FADC */ lw $v0, %lo(D_800DFADC)($v0)
|
||||
/* 0885F8 800879F8 8FA8001C */ lw $t0, 0x1c($sp)
|
||||
/* 0885FC 800879FC 24010002 */ li $at, 2
|
||||
/* 088600 80087A00 10410019 */ beq $v0, $at, .L80087A68
|
||||
/* 088604 80087A04 3C04800E */ lui $a0, %hi(D_800DFAE0) # $a0, 0x800e
|
||||
/* 088608 80087A08 24010003 */ li $at, 3
|
||||
/* 08860C 80087A0C 10410007 */ beq $v0, $at, .L80087A2C
|
||||
/* 088610 80087A10 24010007 */ li $at, 7
|
||||
/* 088614 80087A14 10410024 */ beq $v0, $at, .L80087AA8
|
||||
/* 088618 80087A18 24010009 */ li $at, 9
|
||||
/* 08861C 80087A1C 10410012 */ beq $v0, $at, .L80087A68
|
||||
/* 088620 80087A20 00000000 */ nop
|
||||
/* 088624 80087A24 1000004B */ b .L80087B54
|
||||
/* 088628 80087A28 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80087A2C:
|
||||
/* 08862C 80087A2C 3C04800E */ lui $a0, %hi(D_800DFAE0) # $a0, 0x800e
|
||||
/* 088630 80087A30 8C84FAE0 */ lw $a0, %lo(D_800DFAE0)($a0)
|
||||
/* 088634 80087A34 0C01D771 */ jal reformat_controller_pak
|
||||
/* 088638 80087A38 AFA8001C */ sw $t0, 0x1c($sp)
|
||||
/* 08863C 80087A3C 8FA8001C */ lw $t0, 0x1c($sp)
|
||||
/* 088640 80087A40 24020004 */ li $v0, 4
|
||||
/* 088644 80087A44 15020004 */ bne $t0, $v0, .L80087A58
|
||||
/* 088648 80087A48 24010007 */ li $at, 7
|
||||
/* 08864C 80087A4C 3C018012 */ lui $at, %hi(D_80126A1C) # $at, 0x8012
|
||||
/* 088650 80087A50 1000003F */ b .L80087B50
|
||||
/* 088654 80087A54 AC206A1C */ sw $zero, %lo(D_80126A1C)($at)
|
||||
.L80087A58:
|
||||
/* 088658 80087A58 1501003D */ bne $t0, $at, .L80087B50
|
||||
/* 08865C 80087A5C 3C018012 */ lui $at, %hi(D_80126A18) # $at, 0x8012
|
||||
/* 088660 80087A60 1000003B */ b .L80087B50
|
||||
/* 088664 80087A64 AC206A18 */ sw $zero, %lo(D_80126A18)($at)
|
||||
.L80087A68:
|
||||
/* 088668 80087A68 8C84FAE0 */ lw $a0, %lo(D_800DFAE0)($a0)
|
||||
/* 08866C 80087A6C 0C01D74E */ jal repair_controller_pak
|
||||
/* 088670 80087A70 AFA8001C */ sw $t0, 0x1c($sp)
|
||||
/* 088674 80087A74 8FA8001C */ lw $t0, 0x1c($sp)
|
||||
/* 088678 80087A78 24020004 */ li $v0, 4
|
||||
/* 08867C 80087A7C 15020005 */ bne $t0, $v0, .L80087A94
|
||||
/* 088680 80087A80 24010002 */ li $at, 2
|
||||
/* 088684 80087A84 24180001 */ li $t8, 1
|
||||
/* 088688 80087A88 3C018012 */ lui $at, %hi(D_80126A1C) # $at, 0x8012
|
||||
/* 08868C 80087A8C 10000030 */ b .L80087B50
|
||||
/* 088690 80087A90 AC386A1C */ sw $t8, %lo(D_80126A1C)($at)
|
||||
.L80087A94:
|
||||
/* 088694 80087A94 1501002E */ bne $t0, $at, .L80087B50
|
||||
/* 088698 80087A98 24190001 */ li $t9, 1
|
||||
/* 08869C 80087A9C 3C018012 */ lui $at, %hi(D_80126A18) # $at, 0x8012
|
||||
/* 0886A0 80087AA0 1000002B */ b .L80087B50
|
||||
/* 0886A4 80087AA4 AC396A18 */ sw $t9, %lo(D_80126A18)($at)
|
||||
.L80087AA8:
|
||||
/* 0886A8 80087AA8 24020004 */ li $v0, 4
|
||||
/* 0886AC 80087AAC 15020005 */ bne $t0, $v0, .L80087AC4
|
||||
/* 0886B0 80087AB0 240BFFFF */ li $t3, -1
|
||||
/* 0886B4 80087AB4 240AFFFF */ li $t2, -1
|
||||
/* 0886B8 80087AB8 3C018012 */ lui $at, %hi(D_80126A1C) # $at, 0x8012
|
||||
/* 0886BC 80087ABC 10000024 */ b .L80087B50
|
||||
/* 0886C0 80087AC0 AC2A6A1C */ sw $t2, %lo(D_80126A1C)($at)
|
||||
.L80087AC4:
|
||||
/* 0886C4 80087AC4 3C018012 */ lui $at, %hi(D_80126A18) # $at, 0x8012
|
||||
/* 0886C8 80087AC8 10000021 */ b .L80087B50
|
||||
/* 0886CC 80087ACC AC2B6A18 */ sw $t3, %lo(D_80126A18)($at)
|
||||
.L80087AD0:
|
||||
/* 0886D0 80087AD0 8FAD002C */ lw $t5, 0x2c($sp)
|
||||
/* 0886D4 80087AD4 8FB9002C */ lw $t9, 0x2c($sp)
|
||||
/* 0886D8 80087AD8 05A1000F */ bgez $t5, .L80087B18
|
||||
/* 0886DC 80087ADC 00000000 */ nop
|
||||
/* 0886E0 80087AE0 8CEC0000 */ lw $t4, ($a3)
|
||||
/* 0886E4 80087AE4 248EFFFF */ addiu $t6, $a0, -1
|
||||
/* 0886E8 80087AE8 018E082A */ slt $at, $t4, $t6
|
||||
/* 0886EC 80087AEC 1020000A */ beqz $at, .L80087B18
|
||||
/* 0886F0 80087AF0 240400EB */ li $a0, 235
|
||||
/* 0886F4 80087AF4 0C000741 */ jal play_sound_global
|
||||
/* 0886F8 80087AF8 00002825 */ move $a1, $zero
|
||||
/* 0886FC 80087AFC 3C078012 */ lui $a3, %hi(D_80126A78) # $a3, 0x8012
|
||||
/* 088700 80087B00 24E76A78 */ addiu $a3, %lo(D_80126A78) # addiu $a3, $a3, 0x6a78
|
||||
/* 088704 80087B04 8CEF0000 */ lw $t7, ($a3)
|
||||
/* 088708 80087B08 00000000 */ nop
|
||||
/* 08870C 80087B0C 25F80001 */ addiu $t8, $t7, 1
|
||||
/* 088710 80087B10 1000000F */ b .L80087B50
|
||||
/* 088714 80087B14 ACF80000 */ sw $t8, ($a3)
|
||||
.L80087B18:
|
||||
/* 088718 80087B18 1B20000E */ blez $t9, .L80087B54
|
||||
/* 08871C 80087B1C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 088720 80087B20 8CEA0000 */ lw $t2, ($a3)
|
||||
/* 088724 80087B24 240400EB */ li $a0, 235
|
||||
/* 088728 80087B28 1940000A */ blez $t2, .L80087B54
|
||||
/* 08872C 80087B2C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 088730 80087B30 0C000741 */ jal play_sound_global
|
||||
/* 088734 80087B34 00002825 */ move $a1, $zero
|
||||
/* 088738 80087B38 3C078012 */ lui $a3, %hi(D_80126A78) # $a3, 0x8012
|
||||
/* 08873C 80087B3C 24E76A78 */ addiu $a3, %lo(D_80126A78) # addiu $a3, $a3, 0x6a78
|
||||
/* 088740 80087B40 8CEB0000 */ lw $t3, ($a3)
|
||||
/* 088744 80087B44 00000000 */ nop
|
||||
/* 088748 80087B48 256DFFFF */ addiu $t5, $t3, -1
|
||||
/* 08874C 80087B4C ACED0000 */ sw $t5, ($a3)
|
||||
.L80087B50:
|
||||
glabel L80087B50
|
||||
/* 088750 80087B50 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80087B54:
|
||||
/* 088754 80087B54 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 088758 80087B58 03E00008 */ jr $ra
|
||||
/* 08875C 80087B5C 00001025 */ move $v0, $zero
|
||||
|
||||
@@ -369,7 +369,7 @@ glabel func_8008FF1C
|
||||
/* 091080 80090480 AFAA0018 */ sw $t2, 0x18($sp)
|
||||
/* 091084 80090484 AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* 091088 80090488 AFB90010 */ sw $t9, 0x10($sp)
|
||||
/* 09108C 8009048C 0C023E95 */ jal renderTrackSelect
|
||||
/* 09108C 8009048C 0C023E95 */ jal render_track_select
|
||||
/* 091090 80090490 AFA80014 */ sw $t0, 0x14($sp)
|
||||
.L80090494:
|
||||
/* 091094 80090494 26100010 */ addiu $s0, $s0, 0x10
|
||||
|
||||
@@ -57,10 +57,10 @@ glabel func_80092188
|
||||
.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
|
||||
/* 092E50 80092250 3C02800E */ lui $v0, %hi(gTTVoiceLines) # $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)
|
||||
/* 092E5C 8009225C 84420758 */ lh $v0, %lo(gTTVoiceLines)($v0)
|
||||
/* 092E60 80092260 240DFFFF */ li $t5, -1
|
||||
/* 092E64 80092264 11A2000B */ beq $t5, $v0, .L80092294
|
||||
/* 092E68 80092268 00000000 */ nop
|
||||
|
||||
@@ -1072,18 +1072,18 @@ glabel L800964DC
|
||||
/* 097274 80096674 0C01BAC5 */ jal get_ingame_map_id
|
||||
/* 097278 80096678 00000000 */ nop
|
||||
/* 09727C 8009667C 00027840 */ sll $t7, $v0, 1
|
||||
/* 097280 80096680 3C18800E */ lui $t8, %hi(D_800E0758) # $t8, 0x800e
|
||||
/* 097280 80096680 3C18800E */ lui $t8, %hi(gTTVoiceLines) # $t8, 0x800e
|
||||
/* 097284 80096684 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 097288 80096688 87180758 */ lh $t8, %lo(D_800E0758)($t8)
|
||||
/* 097288 80096688 87180758 */ lh $t8, %lo(gTTVoiceLines)($t8)
|
||||
/* 09728C 8009668C 2401FFFF */ li $at, -1
|
||||
/* 097290 80096690 1301000B */ beq $t8, $at, .L800966C0
|
||||
/* 097294 80096694 24190002 */ li $t9, 2
|
||||
/* 097298 80096698 0C01BAC5 */ jal get_ingame_map_id
|
||||
/* 09729C 8009669C 00000000 */ nop
|
||||
/* 0972A0 800966A0 00026840 */ sll $t5, $v0, 1
|
||||
/* 0972A4 800966A4 3C04800E */ lui $a0, %hi(D_800E0758) # $a0, 0x800e
|
||||
/* 0972A4 800966A4 3C04800E */ lui $a0, %hi(gTTVoiceLines) # $a0, 0x800e
|
||||
/* 0972A8 800966A8 008D2021 */ addu $a0, $a0, $t5
|
||||
/* 0972AC 800966AC 94840758 */ lhu $a0, %lo(D_800E0758)($a0)
|
||||
/* 0972AC 800966AC 94840758 */ lhu $a0, %lo(gTTVoiceLines)($a0)
|
||||
/* 0972B0 800966B0 00002825 */ move $a1, $zero
|
||||
/* 0972B4 800966B4 0C0003F7 */ jal func_80000FDC
|
||||
/* 0972B8 800966B8 3C063F80 */ lui $a2, 0x3f80
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
glabel func_8009C6D4
|
||||
/* 09D2D4 8009C6D4 3C08800E */ lui $t0, %hi(gAssetsMenuElementIds) # $t0, 0x800e
|
||||
/* 09D2D8 8009C6D8 2508F750 */ addiu $t0, %lo(gAssetsMenuElementIds) # addiu $t0, $t0, -0x8b0
|
||||
/* 09D2DC 8009C6DC 8D060000 */ lw $a2, ($t0)
|
||||
/* 09D2E0 8009C6E0 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 09D2E4 8009C6E4 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 09D2E8 8009C6E8 14C00026 */ bnez $a2, .L8009C784
|
||||
/* 09D2EC 8009C6EC 00803825 */ move $a3, $a0
|
||||
/* 09D2F0 8009C6F0 24040012 */ li $a0, 18
|
||||
/* 09D2F4 8009C6F4 0C01DB16 */ jal load_asset_section_from_rom
|
||||
/* 09D2F8 8009C6F8 AFA70038 */ sw $a3, 0x38($sp)
|
||||
/* 09D2FC 8009C6FC 3C05800E */ lui $a1, %hi(D_800DF754) # $a1, 0x800e
|
||||
/* 09D300 8009C700 24A5F754 */ addiu $a1, %lo(D_800DF754) # addiu $a1, $a1, -0x8ac
|
||||
/* 09D304 8009C704 A4A00000 */ sh $zero, ($a1)
|
||||
/* 09D308 8009C708 84A30000 */ lh $v1, ($a1)
|
||||
/* 09D30C 8009C70C 3C08800E */ lui $t0, %hi(gAssetsMenuElementIds) # $t0, 0x800e
|
||||
/* 09D310 8009C710 2508F750 */ addiu $t0, %lo(gAssetsMenuElementIds) # addiu $t0, $t0, -0x8b0
|
||||
/* 09D314 8009C714 00037040 */ sll $t6, $v1, 1
|
||||
/* 09D318 8009C718 AD020000 */ sw $v0, ($t0)
|
||||
/* 09D31C 8009C71C 004E7821 */ addu $t7, $v0, $t6
|
||||
/* 09D320 8009C720 85F80000 */ lh $t8, ($t7)
|
||||
/* 09D324 8009C724 2404FFFF */ li $a0, -1
|
||||
/* 09D328 8009C728 8FA70038 */ lw $a3, 0x38($sp)
|
||||
/* 09D32C 8009C72C 1098000B */ beq $a0, $t8, .L8009C75C
|
||||
/* 09D330 8009C730 00403025 */ move $a2, $v0
|
||||
/* 09D334 8009C734 24790001 */ addiu $t9, $v1, 1
|
||||
.L8009C738:
|
||||
/* 09D338 8009C738 A4B90000 */ sh $t9, ($a1)
|
||||
/* 09D33C 8009C73C 84A30000 */ lh $v1, ($a1)
|
||||
/* 09D340 8009C740 00000000 */ nop
|
||||
/* 09D344 8009C744 00034840 */ sll $t1, $v1, 1
|
||||
/* 09D348 8009C748 00C95021 */ addu $t2, $a2, $t1
|
||||
/* 09D34C 8009C74C 854B0000 */ lh $t3, ($t2)
|
||||
/* 09D350 8009C750 00000000 */ nop
|
||||
/* 09D354 8009C754 148BFFF8 */ bne $a0, $t3, .L8009C738
|
||||
/* 09D358 8009C758 24790001 */ addiu $t9, $v1, 1
|
||||
.L8009C75C:
|
||||
/* 09D35C 8009C75C 3C01800E */ lui $at, %hi(D_800DF758) # $at, 0x800e
|
||||
/* 09D360 8009C760 18600008 */ blez $v1, .L8009C784
|
||||
/* 09D364 8009C764 A420F758 */ sh $zero, %lo(D_800DF758)($at)
|
||||
/* 09D368 8009C768 3C0C8012 */ lui $t4, %hi(D_80126750) # $t4, 0x8012
|
||||
/* 09D36C 8009C76C 25826750 */ addiu $v0, $t4, %lo(D_80126750)
|
||||
/* 09D370 8009C770 00622021 */ addu $a0, $v1, $v0
|
||||
.L8009C774:
|
||||
/* 09D374 8009C774 24420001 */ addiu $v0, $v0, 1
|
||||
/* 09D378 8009C778 0044082B */ sltu $at, $v0, $a0
|
||||
/* 09D37C 8009C77C 1420FFFD */ bnez $at, .L8009C774
|
||||
/* 09D380 8009C780 A040FFFF */ sb $zero, -1($v0)
|
||||
.L8009C784:
|
||||
/* 09D384 8009C784 3C0D8012 */ lui $t5, %hi(D_80126750) # $t5, 0x8012
|
||||
/* 09D388 8009C788 25AD6750 */ addiu $t5, %lo(D_80126750) # addiu $t5, $t5, 0x6750
|
||||
/* 09D38C 8009C78C 00ED7021 */ addu $t6, $a3, $t5
|
||||
/* 09D390 8009C790 AFAE0024 */ sw $t6, 0x24($sp)
|
||||
/* 09D394 8009C794 91D80000 */ lbu $t8, ($t6)
|
||||
/* 09D398 8009C798 0007C840 */ sll $t9, $a3, 1
|
||||
/* 09D39C 8009C79C 1700003D */ bnez $t8, .L8009C894
|
||||
/* 09D3A0 8009C7A0 00D94821 */ addu $t1, $a2, $t9
|
||||
/* 09D3A4 8009C7A4 85220000 */ lh $v0, ($t1)
|
||||
/* 09D3A8 8009C7A8 3401C000 */ li $at, 49152
|
||||
/* 09D3AC 8009C7AC 304AC000 */ andi $t2, $v0, 0xc000
|
||||
/* 09D3B0 8009C7B0 1541000A */ bne $t2, $at, .L8009C7DC
|
||||
/* 09D3B4 8009C7B4 304C8000 */ andi $t4, $v0, 0x8000
|
||||
/* 09D3B8 8009C7B8 30443FFF */ andi $a0, $v0, 0x3fff
|
||||
/* 09D3BC 8009C7BC 0C01EB9D */ jal load_texture
|
||||
/* 09D3C0 8009C7C0 AFA70038 */ sw $a3, 0x38($sp)
|
||||
/* 09D3C4 8009C7C4 8FA70038 */ lw $a3, 0x38($sp)
|
||||
/* 09D3C8 8009C7C8 3C018012 */ lui $at, %hi(gMenuTextures) # $at, 0x8012
|
||||
/* 09D3CC 8009C7CC 00075880 */ sll $t3, $a3, 2
|
||||
/* 09D3D0 8009C7D0 002B0821 */ addu $at, $at, $t3
|
||||
/* 09D3D4 8009C7D4 10000027 */ b .L8009C874
|
||||
/* 09D3D8 8009C7D8 AC226550 */ sw $v0, %lo(gMenuTextures)($at)
|
||||
.L8009C7DC:
|
||||
/* 09D3DC 8009C7DC 1180000B */ beqz $t4, .L8009C80C
|
||||
/* 09D3E0 8009C7E0 304E4000 */ andi $t6, $v0, 0x4000
|
||||
/* 09D3E4 8009C7E4 30443FFF */ andi $a0, $v0, 0x3fff
|
||||
/* 09D3E8 8009C7E8 00002825 */ move $a1, $zero
|
||||
/* 09D3EC 8009C7EC 0C01F04B */ jal func_8007C12C
|
||||
/* 09D3F0 8009C7F0 AFA70038 */ sw $a3, 0x38($sp)
|
||||
/* 09D3F4 8009C7F4 8FA70038 */ lw $a3, 0x38($sp)
|
||||
/* 09D3F8 8009C7F8 3C018012 */ lui $at, %hi(gMenuTextures) # $at, 0x8012
|
||||
/* 09D3FC 8009C7FC 00076880 */ sll $t5, $a3, 2
|
||||
/* 09D400 8009C800 002D0821 */ addu $at, $at, $t5
|
||||
/* 09D404 8009C804 1000001B */ b .L8009C874
|
||||
/* 09D408 8009C808 AC226550 */ sw $v0, %lo(gMenuTextures)($at)
|
||||
.L8009C80C:
|
||||
/* 09D40C 8009C80C 11C00011 */ beqz $t6, .L8009C854
|
||||
/* 09D410 8009C810 30443FFF */ andi $a0, $v0, 0x3fff
|
||||
/* 09D414 8009C814 24180008 */ li $t8, 8
|
||||
/* 09D418 8009C818 A3A2002C */ sb $v0, 0x2c($sp)
|
||||
/* 09D41C 8009C81C A3B8002D */ sb $t8, 0x2d($sp)
|
||||
/* 09D420 8009C820 A7A0002E */ sh $zero, 0x2e($sp)
|
||||
/* 09D424 8009C824 A7A00030 */ sh $zero, 0x30($sp)
|
||||
/* 09D428 8009C828 A7A00032 */ sh $zero, 0x32($sp)
|
||||
/* 09D42C 8009C82C 27A4002C */ addiu $a0, $sp, 0x2c
|
||||
/* 09D430 8009C830 00002825 */ move $a1, $zero
|
||||
/* 09D434 8009C834 0C003A95 */ jal spawn_object
|
||||
/* 09D438 8009C838 AFA70038 */ sw $a3, 0x38($sp)
|
||||
/* 09D43C 8009C83C 8FA70038 */ lw $a3, 0x38($sp)
|
||||
/* 09D440 8009C840 3C018012 */ lui $at, %hi(gMenuTextures) # $at, 0x8012
|
||||
/* 09D444 8009C844 0007C880 */ sll $t9, $a3, 2
|
||||
/* 09D448 8009C848 00390821 */ addu $at, $at, $t9
|
||||
/* 09D44C 8009C84C 10000009 */ b .L8009C874
|
||||
/* 09D450 8009C850 AC226550 */ sw $v0, %lo(gMenuTextures)($at)
|
||||
.L8009C854:
|
||||
/* 09D454 8009C854 00002825 */ move $a1, $zero
|
||||
/* 09D458 8009C858 0C017E67 */ jal func_8005F99C
|
||||
/* 09D45C 8009C85C AFA70038 */ sw $a3, 0x38($sp)
|
||||
/* 09D460 8009C860 8FA70038 */ lw $a3, 0x38($sp)
|
||||
/* 09D464 8009C864 3C018012 */ lui $at, %hi(gMenuTextures) # $at, 0x8012
|
||||
/* 09D468 8009C868 00074880 */ sll $t1, $a3, 2
|
||||
/* 09D46C 8009C86C 00290821 */ addu $at, $at, $t1
|
||||
/* 09D470 8009C870 AC226550 */ sw $v0, %lo(gMenuTextures)($at)
|
||||
.L8009C874:
|
||||
/* 09D474 8009C874 8FAB0024 */ lw $t3, 0x24($sp)
|
||||
/* 09D478 8009C878 240A0001 */ li $t2, 1
|
||||
/* 09D47C 8009C87C 3C0C800E */ lui $t4, %hi(D_800DF758) # $t4, 0x800e
|
||||
/* 09D480 8009C880 A16A0000 */ sb $t2, ($t3)
|
||||
/* 09D484 8009C884 858CF758 */ lh $t4, %lo(D_800DF758)($t4)
|
||||
/* 09D488 8009C888 3C01800E */ lui $at, %hi(D_800DF758) # $at, 0x800e
|
||||
/* 09D48C 8009C88C 258D0001 */ addiu $t5, $t4, 1
|
||||
/* 09D490 8009C890 A42DF758 */ sh $t5, %lo(D_800DF758)($at)
|
||||
.L8009C894:
|
||||
/* 09D494 8009C894 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 09D498 8009C898 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
/* 09D49C 8009C89C 03E00008 */ jr $ra
|
||||
/* 09D4A0 8009C8A0 00000000 */ nop
|
||||
|
||||
@@ -1,331 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_800E84D0
|
||||
.double 1.1
|
||||
glabel D_800E84D8
|
||||
.float 1.2
|
||||
|
||||
.text
|
||||
glabel renderTrackSelect
|
||||
/* 090654 8008FA54 27BDFF80 */ addiu $sp, $sp, -0x80
|
||||
/* 090658 8008FA58 3C0E8012 */ lui $t6, %hi(gTrackSelectViewPortHalfY) # $t6, 0x8012
|
||||
/* 09065C 8008FA5C 3C188000 */ lui $t8, %hi(osTvType) # $t8, 0x8000
|
||||
/* 090660 8008FA60 8DCE6478 */ lw $t6, %lo(gTrackSelectViewPortHalfY)($t6)
|
||||
/* 090664 8008FA64 8F180300 */ lw $t8, %lo(osTvType)($t8)
|
||||
/* 090668 8008FA68 AFB50038 */ sw $s5, 0x38($sp)
|
||||
/* 09066C 8008FA6C AFB40034 */ sw $s4, 0x34($sp)
|
||||
/* 090670 8008FA70 AFB2002C */ sw $s2, 0x2c($sp)
|
||||
/* 090674 8008FA74 00C09025 */ move $s2, $a2
|
||||
/* 090678 8008FA78 AFBF003C */ sw $ra, 0x3c($sp)
|
||||
/* 09067C 8008FA7C AFB30030 */ sw $s3, 0x30($sp)
|
||||
/* 090680 8008FA80 AFB10028 */ sw $s1, 0x28($sp)
|
||||
/* 090684 8008FA84 AFB00024 */ sw $s0, 0x24($sp)
|
||||
/* 090688 8008FA88 AFA40080 */ sw $a0, 0x80($sp)
|
||||
/* 09068C 8008FA8C AFA50084 */ sw $a1, 0x84($sp)
|
||||
/* 090690 8008FA90 AFA7008C */ sw $a3, 0x8c($sp)
|
||||
/* 090694 8008FA94 00001025 */ move $v0, $zero
|
||||
/* 090698 8008FA98 249400A0 */ addiu $s4, $a0, 0xa0
|
||||
/* 09069C 8008FA9C 17000002 */ bnez $t8, .L8008FAA8
|
||||
/* 0906A0 8008FAA0 01C5A823 */ subu $s5, $t6, $a1
|
||||
/* 0906A4 8008FAA4 2402000C */ li $v0, 12
|
||||
.L8008FAA8:
|
||||
/* 0906A8 8008FAA8 24040002 */ li $a0, 2
|
||||
/* 0906AC 8008FAAC 0C0310BB */ jal set_text_font
|
||||
/* 0906B0 8008FAB0 AFA2006C */ sw $v0, 0x6c($sp)
|
||||
/* 0906B4 8008FAB4 00002025 */ move $a0, $zero
|
||||
/* 0906B8 8008FAB8 00002825 */ move $a1, $zero
|
||||
/* 0906BC 8008FABC 00003025 */ move $a2, $zero
|
||||
/* 0906C0 8008FAC0 0C0310F3 */ jal set_text_background_colour
|
||||
/* 0906C4 8008FAC4 00003825 */ move $a3, $zero
|
||||
/* 0906C8 8008FAC8 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e
|
||||
/* 0906CC 8008FACC 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0)
|
||||
/* 0906D0 8008FAD0 241100FF */ li $s1, 255
|
||||
/* 0906D4 8008FAD4 18400008 */ blez $v0, .L8008FAF8
|
||||
/* 0906D8 8008FAD8 3C098012 */ lui $t1, %hi(D_801269F0) # $t1, 0x8012
|
||||
/* 0906DC 8008FADC 0002C900 */ sll $t9, $v0, 4
|
||||
/* 0906E0 8008FAE0 240800FF */ li $t0, 255
|
||||
/* 0906E4 8008FAE4 01198823 */ subu $s1, $t0, $t9
|
||||
/* 0906E8 8008FAE8 06210003 */ bgez $s1, .L8008FAF8
|
||||
/* 0906EC 8008FAEC 00000000 */ nop
|
||||
/* 0906F0 8008FAF0 10000001 */ b .L8008FAF8
|
||||
/* 0906F4 8008FAF4 00008825 */ move $s1, $zero
|
||||
.L8008FAF8:
|
||||
/* 0906F8 8008FAF8 8D2969F0 */ lw $t1, %lo(D_801269F0)($t1)
|
||||
/* 0906FC 8008FAFC 00000000 */ nop
|
||||
/* 090700 8008FB00 1249002F */ beq $s2, $t1, .L8008FBC0
|
||||
/* 090704 8008FB04 00000000 */ nop
|
||||
/* 090708 8008FB08 0C01AC75 */ jal get_hub_area_id
|
||||
/* 09070C 8008FB0C 24040003 */ li $a0, 3
|
||||
/* 090710 8008FB10 0C01AF77 */ jal get_level_name
|
||||
/* 090714 8008FB14 00402025 */ move $a0, $v0
|
||||
/* 090718 8008FB18 16420004 */ bne $s2, $v0, .L8008FB2C
|
||||
/* 09071C 8008FB1C 00002025 */ move $a0, $zero
|
||||
/* 090720 8008FB20 0C031059 */ jal set_kerning
|
||||
/* 090724 8008FB24 24040001 */ li $a0, 1
|
||||
/* 090728 8008FB28 00002025 */ move $a0, $zero
|
||||
.L8008FB2C:
|
||||
/* 09072C 8008FB2C 00002825 */ move $a1, $zero
|
||||
/* 090730 8008FB30 00003025 */ move $a2, $zero
|
||||
/* 090734 8008FB34 240700FF */ li $a3, 255
|
||||
/* 090738 8008FB38 06210003 */ bgez $s1, .L8008FB48
|
||||
/* 09073C 8008FB3C 00115043 */ sra $t2, $s1, 1
|
||||
/* 090740 8008FB40 26210001 */ addiu $at, $s1, 1
|
||||
/* 090744 8008FB44 00015043 */ sra $t2, $at, 1
|
||||
.L8008FB48:
|
||||
/* 090748 8008FB48 0C0310E1 */ jal set_text_colour
|
||||
/* 09074C 8008FB4C AFAA0010 */ sw $t2, 0x10($sp)
|
||||
/* 090750 8008FB50 8FAB006C */ lw $t3, 0x6c($sp)
|
||||
/* 090754 8008FB54 3C138012 */ lui $s3, %hi(sMenuCurrDisplayList) # $s3, 0x8012
|
||||
/* 090758 8008FB58 267363A0 */ addiu $s3, %lo(sMenuCurrDisplayList) # addiu $s3, $s3, 0x63a0
|
||||
/* 09075C 8008FB5C 240C000C */ li $t4, 12
|
||||
/* 090760 8008FB60 02AB8023 */ subu $s0, $s5, $t3
|
||||
/* 090764 8008FB64 2606FFAB */ addiu $a2, $s0, -0x55
|
||||
/* 090768 8008FB68 AFAC0010 */ sw $t4, 0x10($sp)
|
||||
/* 09076C 8008FB6C 02602025 */ move $a0, $s3
|
||||
/* 090770 8008FB70 240500A1 */ li $a1, 161
|
||||
/* 090774 8008FB74 0C031110 */ jal draw_text
|
||||
/* 090778 8008FB78 02403825 */ move $a3, $s2
|
||||
/* 09077C 8008FB7C 240400FF */ li $a0, 255
|
||||
/* 090780 8008FB80 240500FF */ li $a1, 255
|
||||
/* 090784 8008FB84 240600FF */ li $a2, 255
|
||||
/* 090788 8008FB88 00003825 */ move $a3, $zero
|
||||
/* 09078C 8008FB8C 0C0310E1 */ jal set_text_colour
|
||||
/* 090790 8008FB90 AFB10010 */ sw $s1, 0x10($sp)
|
||||
/* 090794 8008FB94 240D000C */ li $t5, 12
|
||||
/* 090798 8008FB98 AFAD0010 */ sw $t5, 0x10($sp)
|
||||
/* 09079C 8008FB9C 02602025 */ move $a0, $s3
|
||||
/* 0907A0 8008FBA0 240500A0 */ li $a1, 160
|
||||
/* 0907A4 8008FBA4 2606FFA8 */ addiu $a2, $s0, -0x58
|
||||
/* 0907A8 8008FBA8 0C031110 */ jal draw_text
|
||||
/* 0907AC 8008FBAC 02403825 */ move $a3, $s2
|
||||
/* 0907B0 8008FBB0 3C018012 */ lui $at, %hi(D_801269F0) # $at, 0x8012
|
||||
/* 0907B4 8008FBB4 AC3269F0 */ sw $s2, %lo(D_801269F0)($at)
|
||||
/* 0907B8 8008FBB8 0C031059 */ jal set_kerning
|
||||
/* 0907BC 8008FBBC 00002025 */ move $a0, $zero
|
||||
.L8008FBC0:
|
||||
/* 0907C0 8008FBC0 3C138012 */ lui $s3, %hi(sMenuCurrDisplayList) # $s3, 0x8012
|
||||
/* 0907C4 8008FBC4 267363A0 */ addiu $s3, %lo(sMenuCurrDisplayList) # addiu $s3, $s3, 0x63a0
|
||||
/* 0907C8 8008FBC8 240400FF */ li $a0, 255
|
||||
/* 0907CC 8008FBCC 240500FF */ li $a1, 255
|
||||
/* 0907D0 8008FBD0 240600FF */ li $a2, 255
|
||||
/* 0907D4 8008FBD4 00003825 */ move $a3, $zero
|
||||
/* 0907D8 8008FBD8 0C0310E1 */ jal set_text_colour
|
||||
/* 0907DC 8008FBDC AFB10010 */ sw $s1, 0x10($sp)
|
||||
/* 0907E0 8008FBE0 8FAE006C */ lw $t6, 0x6c($sp)
|
||||
/* 0907E4 8008FBE4 8FA7008C */ lw $a3, 0x8c($sp)
|
||||
/* 0907E8 8008FBE8 240F000C */ li $t7, 12
|
||||
/* 0907EC 8008FBEC 01D53021 */ addu $a2, $t6, $s5
|
||||
/* 0907F0 8008FBF0 24C60058 */ addiu $a2, $a2, 0x58
|
||||
/* 0907F4 8008FBF4 AFAF0010 */ sw $t7, 0x10($sp)
|
||||
/* 0907F8 8008FBF8 02602025 */ move $a0, $s3
|
||||
/* 0907FC 8008FBFC 0C031110 */ jal draw_text
|
||||
/* 090800 8008FC00 02802825 */ move $a1, $s4
|
||||
/* 090804 8008FC04 8FB00090 */ lw $s0, 0x90($sp)
|
||||
/* 090808 8008FC08 3C028012 */ lui $v0, %hi(gTrackSelectViewportY) # $v0, 0x8012
|
||||
/* 09080C 8008FC0C 1A000065 */ blez $s0, .L8008FDA4
|
||||
/* 090810 8008FC10 8FAD0080 */ lw $t5, 0x80($sp)
|
||||
/* 090814 8008FC14 8C426480 */ lw $v0, %lo(gTrackSelectViewportY)($v0)
|
||||
/* 090818 8008FC18 00000000 */ nop
|
||||
/* 09081C 8008FC1C 00021883 */ sra $v1, $v0, 2
|
||||
/* 090820 8008FC20 02A3C023 */ subu $t8, $s5, $v1
|
||||
/* 090824 8008FC24 0302082A */ slt $at, $t8, $v0
|
||||
/* 090828 8008FC28 1020005D */ beqz $at, .L8008FDA0
|
||||
/* 09082C 8008FC2C 00754021 */ addu $t0, $v1, $s5
|
||||
/* 090830 8008FC30 1900005B */ blez $t0, .L8008FDA0
|
||||
/* 090834 8008FC34 3C013FA0 */ li $at, 0x3FA00000 # 1.250000
|
||||
/* 090838 8008FC38 44816000 */ mtc1 $at, $f12
|
||||
/* 09083C 8008FC3C 3C198000 */ lui $t9, %hi(osTvType) # $t9, 0x8000
|
||||
/* 090840 8008FC40 8F390300 */ lw $t9, %lo(osTvType)($t9)
|
||||
/* 090844 8008FC44 46006086 */ mov.s $f2, $f12
|
||||
/* 090848 8008FC48 17200007 */ bnez $t9, .L8008FC68
|
||||
/* 09084C 8008FC4C 46006006 */ mov.s $f0, $f12
|
||||
/* 090850 8008FC50 3C01800F */ lui $at, %hi(D_800E84D0 + 4) # $at, 0x800f
|
||||
/* 090854 8008FC54 C42784D0 */ lwc1 $f7, %lo(D_800E84D0)($at)
|
||||
/* 090858 8008FC58 C42684D4 */ lwc1 $f6, %lo(D_800E84D0 + 4)($at)
|
||||
/* 09085C 8008FC5C 46006121 */ cvt.d.s $f4, $f12
|
||||
/* 090860 8008FC60 46262202 */ mul.d $f8, $f4, $f6
|
||||
/* 090864 8008FC64 46204020 */ cvt.s.d $f0, $f8
|
||||
.L8008FC68:
|
||||
/* 090868 8008FC68 8FA90098 */ lw $t1, 0x98($sp)
|
||||
/* 09086C 8008FC6C 2682FFB0 */ addiu $v0, $s4, -0x50
|
||||
/* 090870 8008FC70 11200019 */ beqz $t1, .L8008FCD8
|
||||
/* 090874 8008FC74 26980050 */ addiu $t8, $s4, 0x50
|
||||
/* 090878 8008FC78 27AA005C */ addiu $t2, $sp, 0x5c
|
||||
/* 09087C 8008FC7C AFAA0010 */ sw $t2, 0x10($sp)
|
||||
/* 090880 8008FC80 00002025 */ move $a0, $zero
|
||||
/* 090884 8008FC84 27A50068 */ addiu $a1, $sp, 0x68
|
||||
/* 090888 8008FC88 27A60064 */ addiu $a2, $sp, 0x64
|
||||
/* 09088C 8008FC8C 0C019B0B */ jal copy_viewport_frame_size_to_coords
|
||||
/* 090890 8008FC90 27A70060 */ addiu $a3, $sp, 0x60
|
||||
/* 090894 8008FC94 8FA20068 */ lw $v0, 0x68($sp)
|
||||
/* 090898 8008FC98 8FAB0060 */ lw $t3, 0x60($sp)
|
||||
/* 09089C 8008FC9C 8FAD005C */ lw $t5, 0x5c($sp)
|
||||
/* 0908A0 8008FCA0 8FAE0064 */ lw $t6, 0x64($sp)
|
||||
/* 0908A4 8008FCA4 01626023 */ subu $t4, $t3, $v0
|
||||
/* 0908A8 8008FCA8 448C5000 */ mtc1 $t4, $f10
|
||||
/* 0908AC 8008FCAC 3C013C00 */ li $at, 0x3C000000 # 0.007812
|
||||
/* 0908B0 8008FCB0 01AE7823 */ subu $t7, $t5, $t6
|
||||
/* 0908B4 8008FCB4 46805420 */ cvt.s.w $f16, $f10
|
||||
/* 0908B8 8008FCB8 44819000 */ mtc1 $at, $f18
|
||||
/* 0908BC 8008FCBC 448F2000 */ mtc1 $t7, $f4
|
||||
/* 0908C0 8008FCC0 3C0142C0 */ li $at, 0x42C00000 # 96.000000
|
||||
/* 0908C4 8008FCC4 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0908C8 8008FCC8 44814000 */ mtc1 $at, $f8
|
||||
/* 0908CC 8008FCCC 46128082 */ mul.s $f2, $f16, $f18
|
||||
/* 0908D0 8008FCD0 10000002 */ b .L8008FCDC
|
||||
/* 0908D4 8008FCD4 46083003 */ div.s $f0, $f6, $f8
|
||||
.L8008FCD8:
|
||||
/* 0908D8 8008FCD8 AFB80060 */ sw $t8, 0x60($sp)
|
||||
.L8008FCDC:
|
||||
/* 0908DC 8008FCDC 28410140 */ slti $at, $v0, 0x140
|
||||
/* 0908E0 8008FCE0 10200018 */ beqz $at, .L8008FD44
|
||||
/* 0908E4 8008FCE4 AFA20068 */ sw $v0, 0x68($sp)
|
||||
/* 0908E8 8008FCE8 1A800016 */ blez $s4, .L8008FD44
|
||||
/* 0908EC 8008FCEC 02602025 */ move $a0, $s3
|
||||
/* 0908F0 8008FCF0 44945000 */ mtc1 $s4, $f10
|
||||
/* 0908F4 8008FCF4 44958000 */ mtc1 $s5, $f16
|
||||
/* 0908F8 8008FCF8 468052A0 */ cvt.s.w $f10, $f10
|
||||
/* 0908FC 8008FCFC 320800FF */ andi $t0, $s0, 0xff
|
||||
/* 090900 8008FD00 2401FF00 */ li $at, -256
|
||||
/* 090904 8008FD04 46808420 */ cvt.s.w $f16, $f16
|
||||
/* 090908 8008FD08 0101C825 */ or $t9, $t0, $at
|
||||
/* 09090C 8008FD0C 44065000 */ mfc1 $a2, $f10
|
||||
/* 090910 8008FD10 44078000 */ mfc1 $a3, $f16
|
||||
/* 090914 8008FD14 8FA5009C */ lw $a1, 0x9c($sp)
|
||||
/* 090918 8008FD18 24091000 */ li $t1, 4096
|
||||
/* 09091C 8008FD1C AFA9001C */ sw $t1, 0x1c($sp)
|
||||
/* 090920 8008FD20 AFB90018 */ sw $t9, 0x18($sp)
|
||||
/* 090924 8008FD24 E7A20010 */ swc1 $f2, 0x10($sp)
|
||||
/* 090928 8008FD28 E7A00014 */ swc1 $f0, 0x14($sp)
|
||||
/* 09092C 8008FD2C E7A00054 */ swc1 $f0, 0x54($sp)
|
||||
/* 090930 8008FD30 0C01E340 */ jal render_texture_rectangle_scaled
|
||||
/* 090934 8008FD34 E7A20058 */ swc1 $f2, 0x58($sp)
|
||||
/* 090938 8008FD38 C7A00054 */ lwc1 $f0, 0x54($sp)
|
||||
/* 09093C 8008FD3C C7A20058 */ lwc1 $f2, 0x58($sp)
|
||||
/* 090940 8008FD40 00000000 */ nop
|
||||
.L8008FD44:
|
||||
/* 090944 8008FD44 2A810140 */ slti $at, $s4, 0x140
|
||||
/* 090948 8008FD48 10200013 */ beqz $at, .L8008FD98
|
||||
/* 09094C 8008FD4C 00000000 */ nop
|
||||
/* 090950 8008FD50 8FAA0060 */ lw $t2, 0x60($sp)
|
||||
/* 090954 8008FD54 8FA5009C */ lw $a1, 0x9c($sp)
|
||||
/* 090958 8008FD58 1940000F */ blez $t2, .L8008FD98
|
||||
/* 09095C 8008FD5C 02602025 */ move $a0, $s3
|
||||
/* 090960 8008FD60 44949000 */ mtc1 $s4, $f18
|
||||
/* 090964 8008FD64 44952000 */ mtc1 $s5, $f4
|
||||
/* 090968 8008FD68 468094A0 */ cvt.s.w $f18, $f18
|
||||
/* 09096C 8008FD6C 320B00FF */ andi $t3, $s0, 0xff
|
||||
/* 090970 8008FD70 2401FF00 */ li $at, -256
|
||||
/* 090974 8008FD74 46802120 */ cvt.s.w $f4, $f4
|
||||
/* 090978 8008FD78 01616025 */ or $t4, $t3, $at
|
||||
/* 09097C 8008FD7C 44069000 */ mfc1 $a2, $f18
|
||||
/* 090980 8008FD80 44072000 */ mfc1 $a3, $f4
|
||||
/* 090984 8008FD84 AFAC0018 */ sw $t4, 0x18($sp)
|
||||
/* 090988 8008FD88 E7A20010 */ swc1 $f2, 0x10($sp)
|
||||
/* 09098C 8008FD8C E7A00014 */ swc1 $f0, 0x14($sp)
|
||||
/* 090990 8008FD90 0C01E340 */ jal render_texture_rectangle_scaled
|
||||
/* 090994 8008FD94 AFA0001C */ sw $zero, 0x1c($sp)
|
||||
.L8008FD98:
|
||||
/* 090998 8008FD98 0C01ECF4 */ jal reset_render_settings
|
||||
/* 09099C 8008FD9C 02602025 */ move $a0, $s3
|
||||
.L8008FDA0:
|
||||
/* 0909A0 8008FDA0 8FAD0080 */ lw $t5, 0x80($sp)
|
||||
.L8008FDA4:
|
||||
/* 0909A4 8008FDA4 3C03800E */ lui $v1, %hi(gMenuImageStack) # $v1, 0x800e
|
||||
/* 0909A8 8008FDA8 448D3000 */ mtc1 $t5, $f6
|
||||
/* 0909AC 8008FDAC 8FA40094 */ lw $a0, 0x94($sp)
|
||||
/* 0909B0 8008FDB0 2463F75C */ addiu $v1, %lo(gMenuImageStack) # addiu $v1, $v1, -0x8a4
|
||||
/* 0909B4 8008FDB4 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 0909B8 8008FDB8 8C6E0000 */ lw $t6, ($v1)
|
||||
/* 0909BC 8008FDBC 00041140 */ sll $v0, $a0, 5
|
||||
/* 0909C0 8008FDC0 01C27821 */ addu $t7, $t6, $v0
|
||||
/* 0909C4 8008FDC4 E5E8000C */ swc1 $f8, 0xc($t7)
|
||||
/* 0909C8 8008FDC8 8FB80084 */ lw $t8, 0x84($sp)
|
||||
/* 0909CC 8008FDCC 8C680000 */ lw $t0, ($v1)
|
||||
/* 0909D0 8008FDD0 44985000 */ mtc1 $t8, $f10
|
||||
/* 0909D4 8008FDD4 0102C821 */ addu $t9, $t0, $v0
|
||||
/* 0909D8 8008FDD8 46805420 */ cvt.s.w $f16, $f10
|
||||
/* 0909DC 8008FDDC 3C098000 */ lui $t1, %hi(osTvType) # $t1, 0x8000
|
||||
/* 0909E0 8008FDE0 3C0B800E */ lui $t3, %hi(D_800E06C4) # $t3, 0x800e
|
||||
/* 0909E4 8008FDE4 E7300010 */ swc1 $f16, 0x10($t9)
|
||||
/* 0909E8 8008FDE8 8D290300 */ lw $t1, %lo(osTvType)($t1)
|
||||
/* 0909EC 8008FDEC 3C01800F */ lui $at, %hi(D_800E84D8) # $at, 0x800f
|
||||
/* 0909F0 8008FDF0 15200008 */ bnez $t1, .L8008FE14
|
||||
/* 0909F4 8008FDF4 256B06C4 */ addiu $t3, %lo(D_800E06C4) # addiu $t3, $t3, 0x6c4
|
||||
/* 0909F8 8008FDF8 C43284D8 */ lwc1 $f18, %lo(D_800E84D8)($at)
|
||||
/* 0909FC 8008FDFC 3C0A800E */ lui $t2, %hi(D_800E06D4) # $t2, 0x800e
|
||||
/* 090A00 8008FE00 3C01800E */ lui $at, %hi(D_800DF454) # $at, 0x800e
|
||||
/* 090A04 8008FE04 254A06D4 */ addiu $t2, %lo(D_800E06D4) # addiu $t2, $t2, 0x6d4
|
||||
/* 090A08 8008FE08 AFAA0050 */ sw $t2, 0x50($sp)
|
||||
/* 090A0C 8008FE0C 10000002 */ b .L8008FE18
|
||||
/* 090A10 8008FE10 E432F454 */ swc1 $f18, %lo(D_800DF454)($at)
|
||||
.L8008FE14:
|
||||
/* 090A14 8008FE14 AFAB0050 */ sw $t3, 0x50($sp)
|
||||
.L8008FE18:
|
||||
/* 090A18 8008FE18 0C027298 */ jal func_8009CA60
|
||||
/* 090A1C 8008FE1C 00000000 */ nop
|
||||
/* 090A20 8008FE20 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 090A24 8008FE24 44812000 */ mtc1 $at, $f4
|
||||
/* 090A28 8008FE28 3C01800E */ lui $at, %hi(D_800DF454) # $at, 0x800e
|
||||
/* 090A2C 8008FE2C 00008825 */ move $s1, $zero
|
||||
/* 090A30 8008FE30 E424F454 */ swc1 $f4, %lo(D_800DF454)($at)
|
||||
/* 090A34 8008FE34 8FAE00A0 */ lw $t6, 0xa0($sp)
|
||||
.L8008FE38:
|
||||
/* 090A38 8008FE38 240C0001 */ li $t4, 1
|
||||
/* 090A3C 8008FE3C 022C6804 */ sllv $t5, $t4, $s1
|
||||
/* 090A40 8008FE40 01AE7824 */ and $t7, $t5, $t6
|
||||
/* 090A44 8008FE44 11E00026 */ beqz $t7, .L8008FEE0
|
||||
/* 090A48 8008FE48 02602025 */ move $a0, $s3
|
||||
/* 090A4C 8008FE4C 8FB90050 */ lw $t9, 0x50($sp)
|
||||
/* 090A50 8008FE50 00115080 */ sll $t2, $s1, 2
|
||||
/* 090A54 8008FE54 032A8021 */ addu $s0, $t9, $t2
|
||||
/* 090A58 8008FE58 860B0000 */ lh $t3, ($s0)
|
||||
/* 090A5C 8008FE5C 860C0002 */ lh $t4, 2($s0)
|
||||
/* 090A60 8008FE60 3C08800E */ lui $t0, %hi(gMenuSelectionArrows) # $t0, 0x800e
|
||||
/* 090A64 8008FE64 25080678 */ addiu $t0, %lo(gMenuSelectionArrows) # addiu $t0, $t0, 0x678
|
||||
/* 090A68 8008FE68 0011C080 */ sll $t8, $s1, 2
|
||||
/* 090A6C 8008FE6C 03089021 */ addu $s2, $t8, $t0
|
||||
/* 090A70 8008FE70 8E450000 */ lw $a1, ($s2)
|
||||
/* 090A74 8008FE74 240D0080 */ li $t5, 128
|
||||
/* 090A78 8008FE78 01743021 */ addu $a2, $t3, $s4
|
||||
/* 090A7C 8008FE7C 01953821 */ addu $a3, $t4, $s5
|
||||
/* 090A80 8008FE80 24E70001 */ addiu $a3, $a3, 1
|
||||
/* 090A84 8008FE84 24C60001 */ addiu $a2, $a2, 1
|
||||
/* 090A88 8008FE88 AFAD001C */ sw $t5, 0x1c($sp)
|
||||
/* 090A8C 8008FE8C AFA00018 */ sw $zero, 0x18($sp)
|
||||
/* 090A90 8008FE90 AFA00014 */ sw $zero, 0x14($sp)
|
||||
/* 090A94 8008FE94 0C01E2AE */ jal render_textured_rectangle
|
||||
/* 090A98 8008FE98 AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 090A9C 8008FE9C 860E0000 */ lh $t6, ($s0)
|
||||
/* 090AA0 8008FEA0 860F0002 */ lh $t7, 2($s0)
|
||||
/* 090AA4 8008FEA4 8E450000 */ lw $a1, ($s2)
|
||||
/* 090AA8 8008FEA8 241800FF */ li $t8, 255
|
||||
/* 090AAC 8008FEAC 240800FF */ li $t0, 255
|
||||
/* 090AB0 8008FEB0 240900FF */ li $t1, 255
|
||||
/* 090AB4 8008FEB4 241900FF */ li $t9, 255
|
||||
/* 090AB8 8008FEB8 01D43021 */ addu $a2, $t6, $s4
|
||||
/* 090ABC 8008FEBC 01F53821 */ addu $a3, $t7, $s5
|
||||
/* 090AC0 8008FEC0 24E7FFFF */ addiu $a3, $a3, -1
|
||||
/* 090AC4 8008FEC4 24C6FFFF */ addiu $a2, $a2, -1
|
||||
/* 090AC8 8008FEC8 AFB9001C */ sw $t9, 0x1c($sp)
|
||||
/* 090ACC 8008FECC AFA90018 */ sw $t1, 0x18($sp)
|
||||
/* 090AD0 8008FED0 AFA80014 */ sw $t0, 0x14($sp)
|
||||
/* 090AD4 8008FED4 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 090AD8 8008FED8 0C01E2AE */ jal render_textured_rectangle
|
||||
/* 090ADC 8008FEDC 02602025 */ move $a0, $s3
|
||||
.L8008FEE0:
|
||||
/* 090AE0 8008FEE0 26310001 */ addiu $s1, $s1, 1
|
||||
/* 090AE4 8008FEE4 24010004 */ li $at, 4
|
||||
/* 090AE8 8008FEE8 1621FFD3 */ bne $s1, $at, .L8008FE38
|
||||
/* 090AEC 8008FEEC 8FAE00A0 */ lw $t6, 0xa0($sp)
|
||||
/* 090AF0 8008FEF0 0C01ECF4 */ jal reset_render_settings
|
||||
/* 090AF4 8008FEF4 02602025 */ move $a0, $s3
|
||||
/* 090AF8 8008FEF8 8FBF003C */ lw $ra, 0x3c($sp)
|
||||
/* 090AFC 8008FEFC 8FB00024 */ lw $s0, 0x24($sp)
|
||||
/* 090B00 8008FF00 8FB10028 */ lw $s1, 0x28($sp)
|
||||
/* 090B04 8008FF04 8FB2002C */ lw $s2, 0x2c($sp)
|
||||
/* 090B08 8008FF08 8FB30030 */ lw $s3, 0x30($sp)
|
||||
/* 090B0C 8008FF0C 8FB40034 */ lw $s4, 0x34($sp)
|
||||
/* 090B10 8008FF10 8FB50038 */ lw $s5, 0x38($sp)
|
||||
/* 090B14 8008FF14 03E00008 */ jr $ra
|
||||
/* 090B18 8008FF18 27BD0080 */ addiu $sp, $sp, 0x80
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
glabel func_80060C58
|
||||
/* 061858 80060C58 14A70006 */ bne $a1, $a3, .L80060C74
|
||||
/* 06185C 80060C5C 8FA30010 */ lw $v1, 0x10($sp)
|
||||
/* 061860 80060C60 8FA30010 */ lw $v1, 0x10($sp)
|
||||
/* 061864 80060C64 00000000 */ nop
|
||||
/* 061868 80060C68 10C30007 */ beq $a2, $v1, .L80060C88
|
||||
/* 06186C 80060C6C 00000000 */ nop
|
||||
/* 061870 80060C70 8FA30010 */ lw $v1, 0x10($sp)
|
||||
.L80060C74:
|
||||
/* 061874 80060C74 240D000A */ li $t5, 10
|
||||
/* 061878 80060C78 14A30005 */ bne $a1, $v1, .L80060C90
|
||||
/* 06187C 80060C7C 00000000 */ nop
|
||||
/* 061880 80060C80 14C70003 */ bne $a2, $a3, .L80060C90
|
||||
/* 061884 80060C84 00000000 */ nop
|
||||
.L80060C88:
|
||||
/* 061888 80060C88 03E00008 */ jr $ra
|
||||
/* 06188C 80060C8C 24020001 */ li $v0, 1
|
||||
|
||||
.L80060C90:
|
||||
/* 061890 80060C90 00ED0019 */ multu $a3, $t5
|
||||
/* 061894 80060C94 00007012 */ mflo $t6
|
||||
/* 061898 80060C98 01C41021 */ addu $v0, $t6, $a0
|
||||
/* 06189C 80060C9C 84490000 */ lh $t1, ($v0)
|
||||
/* 0618A0 80060CA0 00AD0019 */ multu $a1, $t5
|
||||
/* 0618A4 80060CA4 252AFFFC */ addiu $t2, $t1, -4
|
||||
/* 0618A8 80060CA8 25380004 */ addiu $t8, $t1, 4
|
||||
/* 0618AC 80060CAC 00007812 */ mflo $t7
|
||||
/* 0618B0 80060CB0 01E44021 */ addu $t0, $t7, $a0
|
||||
/* 0618B4 80060CB4 850B0000 */ lh $t3, ($t0)
|
||||
/* 0618B8 80060CB8 00000000 */ nop
|
||||
/* 0618BC 80060CBC 014B082A */ slt $at, $t2, $t3
|
||||
/* 0618C0 80060CC0 10200039 */ beqz $at, .L80060DA8
|
||||
/* 0618C4 80060CC4 0178082A */ slt $at, $t3, $t8
|
||||
/* 0618C8 80060CC8 10200037 */ beqz $at, .L80060DA8
|
||||
/* 0618CC 80060CCC 00000000 */ nop
|
||||
/* 0618D0 80060CD0 84470002 */ lh $a3, 2($v0)
|
||||
/* 0618D4 80060CD4 85050002 */ lh $a1, 2($t0)
|
||||
/* 0618D8 80060CD8 24F9FFFC */ addiu $t9, $a3, -4
|
||||
/* 0618DC 80060CDC 0325082A */ slt $at, $t9, $a1
|
||||
/* 0618E0 80060CE0 10200031 */ beqz $at, .L80060DA8
|
||||
/* 0618E4 80060CE4 24EE0004 */ addiu $t6, $a3, 4
|
||||
/* 0618E8 80060CE8 00AE082A */ slt $at, $a1, $t6
|
||||
/* 0618EC 80060CEC 1020002E */ beqz $at, .L80060DA8
|
||||
/* 0618F0 80060CF0 00000000 */ nop
|
||||
/* 0618F4 80060CF4 84470004 */ lh $a3, 4($v0)
|
||||
/* 0618F8 80060CF8 85050004 */ lh $a1, 4($t0)
|
||||
/* 0618FC 80060CFC 24EFFFFC */ addiu $t7, $a3, -4
|
||||
/* 061900 80060D00 01E5082A */ slt $at, $t7, $a1
|
||||
/* 061904 80060D04 10200028 */ beqz $at, .L80060DA8
|
||||
/* 061908 80060D08 24F80004 */ addiu $t8, $a3, 4
|
||||
/* 06190C 80060D0C 00B8082A */ slt $at, $a1, $t8
|
||||
/* 061910 80060D10 10200025 */ beqz $at, .L80060DA8
|
||||
/* 061914 80060D14 00000000 */ nop
|
||||
/* 061918 80060D18 006D0019 */ multu $v1, $t5
|
||||
/* 06191C 80060D1C 0000C812 */ mflo $t9
|
||||
/* 061920 80060D20 03243821 */ addu $a3, $t9, $a0
|
||||
/* 061924 80060D24 84EC0000 */ lh $t4, ($a3)
|
||||
/* 061928 80060D28 00CD0019 */ multu $a2, $t5
|
||||
/* 06192C 80060D2C 258FFFFC */ addiu $t7, $t4, -4
|
||||
/* 061930 80060D30 25980004 */ addiu $t8, $t4, 4
|
||||
/* 061934 80060D34 00007012 */ mflo $t6
|
||||
/* 061938 80060D38 01C42821 */ addu $a1, $t6, $a0
|
||||
/* 06193C 80060D3C 84A80000 */ lh $t0, ($a1)
|
||||
/* 061940 80060D40 00000000 */ nop
|
||||
/* 061944 80060D44 01E8082A */ slt $at, $t7, $t0
|
||||
/* 061948 80060D48 10200054 */ beqz $at, .L80060E9C
|
||||
/* 06194C 80060D4C 0118082A */ slt $at, $t0, $t8
|
||||
/* 061950 80060D50 10200053 */ beqz $at, .L80060EA0
|
||||
/* 061954 80060D54 00001025 */ move $v0, $zero
|
||||
/* 061958 80060D58 84EB0002 */ lh $t3, 2($a3)
|
||||
/* 06195C 80060D5C 84A30002 */ lh $v1, 2($a1)
|
||||
/* 061960 80060D60 2579FFFC */ addiu $t9, $t3, -4
|
||||
/* 061964 80060D64 0323082A */ slt $at, $t9, $v1
|
||||
/* 061968 80060D68 1020004C */ beqz $at, .L80060E9C
|
||||
/* 06196C 80060D6C 256E0004 */ addiu $t6, $t3, 4
|
||||
/* 061970 80060D70 006E082A */ slt $at, $v1, $t6
|
||||
/* 061974 80060D74 1020004A */ beqz $at, .L80060EA0
|
||||
/* 061978 80060D78 00001025 */ move $v0, $zero
|
||||
/* 06197C 80060D7C 84EB0004 */ lh $t3, 4($a3)
|
||||
/* 061980 80060D80 84A30004 */ lh $v1, 4($a1)
|
||||
/* 061984 80060D84 256FFFFC */ addiu $t7, $t3, -4
|
||||
/* 061988 80060D88 01E3082A */ slt $at, $t7, $v1
|
||||
/* 06198C 80060D8C 10200043 */ beqz $at, .L80060E9C
|
||||
/* 061990 80060D90 25780004 */ addiu $t8, $t3, 4
|
||||
/* 061994 80060D94 0078082A */ slt $at, $v1, $t8
|
||||
/* 061998 80060D98 10200041 */ beqz $at, .L80060EA0
|
||||
/* 06199C 80060D9C 00001025 */ move $v0, $zero
|
||||
/* 0619A0 80060DA0 03E00008 */ jr $ra
|
||||
/* 0619A4 80060DA4 24020002 */ li $v0, 2
|
||||
|
||||
.L80060DA8:
|
||||
/* 0619A8 80060DA8 006D0019 */ multu $v1, $t5
|
||||
/* 0619AC 80060DAC 0000C812 */ mflo $t9
|
||||
/* 0619B0 80060DB0 03243821 */ addu $a3, $t9, $a0
|
||||
/* 0619B4 80060DB4 84EC0000 */ lh $t4, ($a3)
|
||||
/* 0619B8 80060DB8 00000000 */ nop
|
||||
/* 0619BC 80060DBC 258EFFFC */ addiu $t6, $t4, -4
|
||||
/* 0619C0 80060DC0 01CB082A */ slt $at, $t6, $t3
|
||||
/* 0619C4 80060DC4 10200035 */ beqz $at, .L80060E9C
|
||||
/* 0619C8 80060DC8 258F0004 */ addiu $t7, $t4, 4
|
||||
/* 0619CC 80060DCC 016F082A */ slt $at, $t3, $t7
|
||||
/* 0619D0 80060DD0 10200032 */ beqz $at, .L80060E9C
|
||||
/* 0619D4 80060DD4 00000000 */ nop
|
||||
/* 0619D8 80060DD8 84EB0002 */ lh $t3, 2($a3)
|
||||
/* 0619DC 80060DDC 85050002 */ lh $a1, 2($t0)
|
||||
/* 0619E0 80060DE0 2578FFFC */ addiu $t8, $t3, -4
|
||||
/* 0619E4 80060DE4 0305082A */ slt $at, $t8, $a1
|
||||
/* 0619E8 80060DE8 1020002C */ beqz $at, .L80060E9C
|
||||
/* 0619EC 80060DEC 25790004 */ addiu $t9, $t3, 4
|
||||
/* 0619F0 80060DF0 00B9082A */ slt $at, $a1, $t9
|
||||
/* 0619F4 80060DF4 10200029 */ beqz $at, .L80060E9C
|
||||
/* 0619F8 80060DF8 00000000 */ nop
|
||||
/* 0619FC 80060DFC 84EB0004 */ lh $t3, 4($a3)
|
||||
/* 061A00 80060E00 85050004 */ lh $a1, 4($t0)
|
||||
/* 061A04 80060E04 256EFFFC */ addiu $t6, $t3, -4
|
||||
/* 061A08 80060E08 01C5082A */ slt $at, $t6, $a1
|
||||
/* 061A0C 80060E0C 10200023 */ beqz $at, .L80060E9C
|
||||
/* 061A10 80060E10 256F0004 */ addiu $t7, $t3, 4
|
||||
/* 061A14 80060E14 00AF082A */ slt $at, $a1, $t7
|
||||
/* 061A18 80060E18 10200020 */ beqz $at, .L80060E9C
|
||||
/* 061A1C 80060E1C 00000000 */ nop
|
||||
/* 061A20 80060E20 00CD0019 */ multu $a2, $t5
|
||||
/* 061A24 80060E24 25390004 */ addiu $t9, $t1, 4
|
||||
/* 061A28 80060E28 0000C012 */ mflo $t8
|
||||
/* 061A2C 80060E2C 03042821 */ addu $a1, $t8, $a0
|
||||
/* 061A30 80060E30 84A80000 */ lh $t0, ($a1)
|
||||
/* 061A34 80060E34 00000000 */ nop
|
||||
/* 061A38 80060E38 0148082A */ slt $at, $t2, $t0
|
||||
/* 061A3C 80060E3C 10200017 */ beqz $at, .L80060E9C
|
||||
/* 061A40 80060E40 0119082A */ slt $at, $t0, $t9
|
||||
/* 061A44 80060E44 10200015 */ beqz $at, .L80060E9C
|
||||
/* 061A48 80060E48 00000000 */ nop
|
||||
/* 061A4C 80060E4C 84470002 */ lh $a3, 2($v0)
|
||||
/* 061A50 80060E50 84A30002 */ lh $v1, 2($a1)
|
||||
/* 061A54 80060E54 24EEFFFC */ addiu $t6, $a3, -4
|
||||
/* 061A58 80060E58 01C3082A */ slt $at, $t6, $v1
|
||||
/* 061A5C 80060E5C 1020000F */ beqz $at, .L80060E9C
|
||||
/* 061A60 80060E60 24EF0004 */ addiu $t7, $a3, 4
|
||||
/* 061A64 80060E64 006F082A */ slt $at, $v1, $t7
|
||||
/* 061A68 80060E68 1020000C */ beqz $at, .L80060E9C
|
||||
/* 061A6C 80060E6C 00000000 */ nop
|
||||
/* 061A70 80060E70 84470004 */ lh $a3, 4($v0)
|
||||
/* 061A74 80060E74 84A30004 */ lh $v1, 4($a1)
|
||||
/* 061A78 80060E78 24F8FFFC */ addiu $t8, $a3, -4
|
||||
/* 061A7C 80060E7C 0303082A */ slt $at, $t8, $v1
|
||||
/* 061A80 80060E80 10200006 */ beqz $at, .L80060E9C
|
||||
/* 061A84 80060E84 24F90004 */ addiu $t9, $a3, 4
|
||||
/* 061A88 80060E88 0079082A */ slt $at, $v1, $t9
|
||||
/* 061A8C 80060E8C 10200004 */ beqz $at, .L80060EA0
|
||||
/* 061A90 80060E90 00001025 */ move $v0, $zero
|
||||
/* 061A94 80060E94 03E00008 */ jr $ra
|
||||
/* 061A98 80060E98 24020002 */ li $v0, 2
|
||||
|
||||
.L80060E9C:
|
||||
/* 061A9C 80060E9C 00001025 */ move $v0, $zero
|
||||
.L80060EA0:
|
||||
/* 061AA0 80060EA0 03E00008 */ jr $ra
|
||||
/* 061AA4 80060EA4 00000000 */ nop
|
||||
|
||||
@@ -1,163 +0,0 @@
|
||||
glabel func_800B7460
|
||||
/* 0B8060 800B7460 27BDF610 */ addiu $sp, $sp, -0x9f0
|
||||
/* 0B8064 800B7464 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0B8068 800B7468 AFA409F0 */ sw $a0, 0x9f0($sp)
|
||||
/* 0B806C 800B746C AFA509F4 */ sw $a1, 0x9f4($sp)
|
||||
/* 0B8070 800B7470 0C0270C3 */ jal get_filtered_cheats
|
||||
/* 0B8074 800B7474 AFA609F8 */ sw $a2, 0x9f8($sp)
|
||||
/* 0B8078 800B7478 00027100 */ sll $t6, $v0, 4
|
||||
/* 0B807C 800B747C 05C1008A */ bgez $t6, .L800B76A8
|
||||
/* 0B8080 800B7480 27A40840 */ addiu $a0, $sp, 0x840
|
||||
/* 0B8084 800B7484 0C034138 */ jal bzero
|
||||
/* 0B8088 800B7488 240501B0 */ li $a1, 432
|
||||
/* 0B808C 800B748C 3C028013 */ lui $v0, %hi(gObjectStackTrace) # $v0, 0x8013
|
||||
/* 0B8090 800B7490 24429FB0 */ addiu $v0, %lo(gObjectStackTrace) # addiu $v0, $v0, -0x6050
|
||||
/* 0B8094 800B7494 8C580000 */ lw $t8, ($v0)
|
||||
/* 0B8098 800B7498 8C590004 */ lw $t9, 4($v0)
|
||||
/* 0B809C 800B749C 8C480008 */ lw $t0, 8($v0)
|
||||
/* 0B80A0 800B74A0 44982000 */ mtc1 $t8, $f4
|
||||
/* 0B80A4 800B74A4 44994000 */ mtc1 $t9, $f8
|
||||
/* 0B80A8 800B74A8 44888000 */ mtc1 $t0, $f16
|
||||
/* 0B80AC 800B74AC 8FA909F4 */ lw $t1, 0x9f4($sp)
|
||||
/* 0B80B0 800B74B0 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0B80B4 800B74B4 8FAF09F0 */ lw $t7, 0x9f0($sp)
|
||||
/* 0B80B8 800B74B8 8FAC09F8 */ lw $t4, 0x9f8($sp)
|
||||
/* 0B80BC 800B74BC 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 0B80C0 800B74C0 240E0000 */ li $t6, 0
|
||||
/* 0B80C4 800B74C4 240DFFFF */ li $t5, -1
|
||||
/* 0B80C8 800B74C8 468084A0 */ cvt.s.w $f18, $f16
|
||||
/* 0B80CC 800B74CC 000957C3 */ sra $t2, $t1, 0x1f
|
||||
/* 0B80D0 800B74D0 AFAA0878 */ sw $t2, 0x878($sp)
|
||||
/* 0B80D4 800B74D4 AFAE0880 */ sw $t6, 0x880($sp)
|
||||
/* 0B80D8 800B74D8 AFAD0960 */ sw $t5, 0x960($sp)
|
||||
/* 0B80DC 800B74DC E7A60970 */ swc1 $f6, 0x970($sp)
|
||||
/* 0B80E0 800B74E0 E7AA0974 */ swc1 $f10, 0x974($sp)
|
||||
/* 0B80E4 800B74E4 E7B20978 */ swc1 $f18, 0x978($sp)
|
||||
/* 0B80E8 800B74E8 27A40840 */ addiu $a0, $sp, 0x840
|
||||
/* 0B80EC 800B74EC 27A50040 */ addiu $a1, $sp, 0x40
|
||||
/* 0B80F0 800B74F0 240601B0 */ li $a2, 432
|
||||
/* 0B80F4 800B74F4 AFA9087C */ sw $t1, 0x87c($sp)
|
||||
/* 0B80F8 800B74F8 AFAF095C */ sw $t7, 0x95c($sp)
|
||||
/* 0B80FC 800B74FC 0C032768 */ jal bcopy
|
||||
/* 0B8100 800B7500 AFAC0884 */ sw $t4, 0x884($sp)
|
||||
/* 0B8104 800B7504 27A40240 */ addiu $a0, $sp, 0x240
|
||||
/* 0B8108 800B7508 0C034138 */ jal bzero
|
||||
/* 0B810C 800B750C 24050200 */ li $a1, 512
|
||||
/* 0B8110 800B7510 27A40038 */ addiu $a0, $sp, 0x38
|
||||
/* 0B8114 800B7514 0C009165 */ jal func_80024594
|
||||
/* 0B8118 800B7518 27A509F4 */ addiu $a1, $sp, 0x9f4
|
||||
/* 0B811C 800B751C 8FA909F4 */ lw $t1, 0x9f4($sp)
|
||||
/* 0B8120 800B7520 00002825 */ move $a1, $zero
|
||||
/* 0B8124 800B7524 19200054 */ blez $t1, .L800B7678
|
||||
/* 0B8128 800B7528 3C07800F */ lui $a3, %hi(sCoreFileExt) # $a3, 0x800f
|
||||
/* 0B812C 800B752C 31260003 */ andi $a2, $t1, 3
|
||||
/* 0B8130 800B7530 10C00018 */ beqz $a2, .L800B7594
|
||||
/* 0B8134 800B7534 00C01825 */ move $v1, $a2
|
||||
/* 0B8138 800B7538 00005040 */ sll $t2, $zero, 1
|
||||
/* 0B813C 800B753C 27AB0440 */ addiu $t3, $sp, 0x440
|
||||
/* 0B8140 800B7540 014B2021 */ addu $a0, $t2, $t3
|
||||
.L800B7544:
|
||||
/* 0B8144 800B7544 8FAC0038 */ lw $t4, 0x38($sp)
|
||||
/* 0B8148 800B7548 24A50001 */ addiu $a1, $a1, 1
|
||||
/* 0B814C 800B754C 000C7040 */ sll $t6, $t4, 1
|
||||
/* 0B8150 800B7550 004E7821 */ addu $t7, $v0, $t6
|
||||
/* 0B8154 800B7554 85ED0000 */ lh $t5, ($t7)
|
||||
/* 0B8158 800B7558 00000000 */ nop
|
||||
/* 0B815C 800B755C A48D0000 */ sh $t5, ($a0)
|
||||
/* 0B8160 800B7560 8FB80038 */ lw $t8, 0x38($sp)
|
||||
/* 0B8164 800B7564 8FA809F4 */ lw $t0, 0x9f4($sp)
|
||||
/* 0B8168 800B7568 2719FFFF */ addiu $t9, $t8, -1
|
||||
/* 0B816C 800B756C 07210003 */ bgez $t9, .L800B757C
|
||||
/* 0B8170 800B7570 AFB90038 */ sw $t9, 0x38($sp)
|
||||
/* 0B8174 800B7574 03283021 */ addu $a2, $t9, $t0
|
||||
/* 0B8178 800B7578 AFA60038 */ sw $a2, 0x38($sp)
|
||||
.L800B757C:
|
||||
/* 0B817C 800B757C 8FA60038 */ lw $a2, 0x38($sp)
|
||||
/* 0B8180 800B7580 1465FFF0 */ bne $v1, $a1, .L800B7544
|
||||
/* 0B8184 800B7584 24840002 */ addiu $a0, $a0, 2
|
||||
/* 0B8188 800B7588 8FA909F4 */ lw $t1, 0x9f4($sp)
|
||||
/* 0B818C 800B758C AFA60038 */ sw $a2, 0x38($sp)
|
||||
/* 0B8190 800B7590 10A90039 */ beq $a1, $t1, .L800B7678
|
||||
.L800B7594:
|
||||
/* 0B8194 800B7594 00055040 */ sll $t2, $a1, 1
|
||||
/* 0B8198 800B7598 27AB0440 */ addiu $t3, $sp, 0x440
|
||||
/* 0B819C 800B759C 014B2021 */ addu $a0, $t2, $t3
|
||||
.L800B75A0:
|
||||
/* 0B81A0 800B75A0 8FAC0038 */ lw $t4, 0x38($sp)
|
||||
/* 0B81A4 800B75A4 00000000 */ nop
|
||||
/* 0B81A8 800B75A8 000C7040 */ sll $t6, $t4, 1
|
||||
/* 0B81AC 800B75AC 004E1821 */ addu $v1, $v0, $t6
|
||||
/* 0B81B0 800B75B0 846F0000 */ lh $t7, ($v1)
|
||||
/* 0B81B4 800B75B4 2463FFFE */ addiu $v1, $v1, -2
|
||||
/* 0B81B8 800B75B8 A48F0000 */ sh $t7, ($a0)
|
||||
/* 0B81BC 800B75BC 8FAD0038 */ lw $t5, 0x38($sp)
|
||||
/* 0B81C0 800B75C0 8FB909F4 */ lw $t9, 0x9f4($sp)
|
||||
/* 0B81C4 800B75C4 25B8FFFF */ addiu $t8, $t5, -1
|
||||
/* 0B81C8 800B75C8 07010005 */ bgez $t8, .L800B75E0
|
||||
/* 0B81CC 800B75CC AFB80038 */ sw $t8, 0x38($sp)
|
||||
/* 0B81D0 800B75D0 03193021 */ addu $a2, $t8, $t9
|
||||
/* 0B81D4 800B75D4 00064040 */ sll $t0, $a2, 1
|
||||
/* 0B81D8 800B75D8 00481821 */ addu $v1, $v0, $t0
|
||||
/* 0B81DC 800B75DC AFA60038 */ sw $a2, 0x38($sp)
|
||||
.L800B75E0:
|
||||
/* 0B81E0 800B75E0 84690000 */ lh $t1, ($v1)
|
||||
/* 0B81E4 800B75E4 2463FFFE */ addiu $v1, $v1, -2
|
||||
/* 0B81E8 800B75E8 A4890002 */ sh $t1, 2($a0)
|
||||
/* 0B81EC 800B75EC 8FAA0038 */ lw $t2, 0x38($sp)
|
||||
/* 0B81F0 800B75F0 8FAC09F4 */ lw $t4, 0x9f4($sp)
|
||||
/* 0B81F4 800B75F4 254BFFFF */ addiu $t3, $t2, -1
|
||||
/* 0B81F8 800B75F8 05610005 */ bgez $t3, .L800B7610
|
||||
/* 0B81FC 800B75FC AFAB0038 */ sw $t3, 0x38($sp)
|
||||
/* 0B8200 800B7600 016C3021 */ addu $a2, $t3, $t4
|
||||
/* 0B8204 800B7604 00067040 */ sll $t6, $a2, 1
|
||||
/* 0B8208 800B7608 004E1821 */ addu $v1, $v0, $t6
|
||||
/* 0B820C 800B760C AFA60038 */ sw $a2, 0x38($sp)
|
||||
.L800B7610:
|
||||
/* 0B8210 800B7610 846F0000 */ lh $t7, ($v1)
|
||||
/* 0B8214 800B7614 2463FFFE */ addiu $v1, $v1, -2
|
||||
/* 0B8218 800B7618 A48F0004 */ sh $t7, 4($a0)
|
||||
/* 0B821C 800B761C 8FAD0038 */ lw $t5, 0x38($sp)
|
||||
/* 0B8220 800B7620 8FB909F4 */ lw $t9, 0x9f4($sp)
|
||||
/* 0B8224 800B7624 25B8FFFF */ addiu $t8, $t5, -1
|
||||
/* 0B8228 800B7628 07010005 */ bgez $t8, .L800B7640
|
||||
/* 0B822C 800B762C AFB80038 */ sw $t8, 0x38($sp)
|
||||
/* 0B8230 800B7630 03193021 */ addu $a2, $t8, $t9
|
||||
/* 0B8234 800B7634 00064040 */ sll $t0, $a2, 1
|
||||
/* 0B8238 800B7638 00481821 */ addu $v1, $v0, $t0
|
||||
/* 0B823C 800B763C AFA60038 */ sw $a2, 0x38($sp)
|
||||
.L800B7640:
|
||||
/* 0B8240 800B7640 84690000 */ lh $t1, ($v1)
|
||||
/* 0B8244 800B7644 00000000 */ nop
|
||||
/* 0B8248 800B7648 A4890006 */ sh $t1, 6($a0)
|
||||
/* 0B824C 800B764C 8FAA0038 */ lw $t2, 0x38($sp)
|
||||
/* 0B8250 800B7650 8FAC09F4 */ lw $t4, 0x9f4($sp)
|
||||
/* 0B8254 800B7654 254BFFFF */ addiu $t3, $t2, -1
|
||||
/* 0B8258 800B7658 05610003 */ bgez $t3, .L800B7668
|
||||
/* 0B825C 800B765C AFAB0038 */ sw $t3, 0x38($sp)
|
||||
/* 0B8260 800B7660 016C3021 */ addu $a2, $t3, $t4
|
||||
/* 0B8264 800B7664 AFA60038 */ sw $a2, 0x38($sp)
|
||||
.L800B7668:
|
||||
/* 0B8268 800B7668 8FAE09F4 */ lw $t6, 0x9f4($sp)
|
||||
/* 0B826C 800B766C 24A50004 */ addiu $a1, $a1, 4
|
||||
/* 0B8270 800B7670 14AEFFCB */ bne $a1, $t6, .L800B75A0
|
||||
/* 0B8274 800B7674 24840008 */ addiu $a0, $a0, 8
|
||||
.L800B7678:
|
||||
/* 0B8278 800B7678 3C06800F */ lui $a2, %hi(sCoreFileName) # $a2, 0x800f
|
||||
/* 0B827C 800B767C 27AF0040 */ addiu $t7, $sp, 0x40
|
||||
/* 0B8280 800B7680 240D0800 */ li $t5, 2048
|
||||
/* 0B8284 800B7684 AFAD0014 */ sw $t5, 0x14($sp)
|
||||
/* 0B8288 800B7688 AFAF0010 */ sw $t7, 0x10($sp)
|
||||
/* 0B828C 800B768C 24C68EE8 */ addiu $a2, %lo(sCoreFileName) # addiu $a2, $a2, -0x7118
|
||||
/* 0B8290 800B7690 00002025 */ move $a0, $zero
|
||||
/* 0B8294 800B7694 2405FFFF */ li $a1, -1
|
||||
/* 0B8298 800B7698 0C01D9B5 */ jal write_controller_pak_file
|
||||
/* 0B829C 800B769C 24E78EF0 */ addiu $a3, %lo(sCoreFileExt) # addiu $a3, $a3, -0x7110
|
||||
.L800B76A0:
|
||||
/* 0B82A0 800B76A0 1000FFFF */ b .L800B76A0
|
||||
/* 0B82A4 800B76A4 00000000 */ nop
|
||||
.L800B76A8:
|
||||
/* 0B82A8 800B76A8 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0B82AC 800B76AC 27BD09F0 */ addiu $sp, $sp, 0x9f0
|
||||
/* 0B82B0 800B76B0 03E00008 */ jr $ra
|
||||
/* 0B82B4 800B76B4 00000000 */ nop
|
||||
|
||||
+4
-4
@@ -320,11 +320,11 @@ void handle_music_fade(u8 updateRate) {
|
||||
D_80115D48[reg_s2].unk2 -= updateRate;
|
||||
if (D_80115D48[reg_s2].unk2 <= 0) {
|
||||
j = reg_s2;
|
||||
play_sound_global(D_80115D48[reg_s2].unk0, (s32 *) D_80115D48[reg_s2].unk4);
|
||||
play_sound_global(D_80115D48[reg_s2].soundId, (s32 *) D_80115D48[reg_s2].unk4);
|
||||
|
||||
D_800DC658 -= 1;
|
||||
while (j < D_800DC658) {
|
||||
D_80115D48[reg_s2].unk0 = D_80115D48[reg_s2 + 1].unk0;
|
||||
D_80115D48[reg_s2].soundId = D_80115D48[reg_s2 + 1].soundId;
|
||||
D_80115D48[reg_s2].unk2 = D_80115D48[reg_s2 + 1].unk2;
|
||||
D_80115D48[reg_s2].unk4 = D_80115D48[reg_s2 + 1].unk4;
|
||||
j++;
|
||||
@@ -343,9 +343,9 @@ void handle_music_fade(u8 updateRate) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_80000FDC(u16 arg0, s32 arg1, f32 arg2) {
|
||||
void func_80000FDC(u16 soundId, s32 arg1, f32 arg2) {
|
||||
if (D_800DC658 < 8) {
|
||||
D_80115D48[D_800DC658].unk0 = arg0;
|
||||
D_80115D48[D_800DC658].soundId = soundId;
|
||||
D_80115D48[D_800DC658].unk4 = arg1;
|
||||
D_80115D48[D_800DC658].unk2 = arg2 * 60.0f;
|
||||
D_800DC658++;
|
||||
|
||||
+2
-2
@@ -34,7 +34,7 @@ typedef struct unk80115D1C {
|
||||
|
||||
/* Size: 0x08 bytes */
|
||||
typedef struct unk80115D48 {
|
||||
/* 0x00 */ u16 unk0;
|
||||
/* 0x00 */ u16 soundId;
|
||||
/* 0x02 */ s16 unk2;
|
||||
/* 0x04 */ s32 unk4;
|
||||
} unk80115D48;
|
||||
@@ -71,7 +71,7 @@ void func_80000C68(u8 arg0);
|
||||
void set_music_fade_timer(s32 time);
|
||||
void func_80000CBC(void);
|
||||
void handle_music_fade(u8 updateRate);
|
||||
void func_80000FDC(u16 arg0, s32 arg1, f32 arg2);
|
||||
void func_80000FDC(u16 soundId, s32 arg1, f32 arg2);
|
||||
void func_80001050(void);
|
||||
u16 musicGetChanMask(void);
|
||||
void func_80001074(u16 arg0);
|
||||
|
||||
+1
-1
@@ -101,7 +101,7 @@ s32 check_viewport_background_flag(s32 viewPortIndex);
|
||||
void resize_viewport(s32 viewPortIndex, s32 x1, s32 y1, s32 x2, s32 y2);
|
||||
void set_viewport_properties(s32 viewPortIndex, s32 x1, s32 x2, s32 y1, s32 y2);
|
||||
s32 copy_viewport_background_size_to_coords(s32 viewPortIndex, s32 *x1, s32 *y1, s32 *x2, s32 *y2);
|
||||
void copy_viewport_frame_size_to_coords(s32 viewPortIndex, s32 *arg1, s32 *arg2, s32 *arg3, s32 *arg4);
|
||||
void copy_viewport_frame_size_to_coords(s32 viewPortIndex, s32 *x1, s32 *y1, s32 *x2, s32 *y2);
|
||||
void copy_framebuffer_size_to_coords(s32 *x1, s32 *y1, s32 *x2, s32 *y2);
|
||||
void set_ortho_matrix_height(f32 value);
|
||||
void set_ortho_matrix_view(Gfx **dlist, MatrixS **mats);
|
||||
|
||||
+2
-2
@@ -103,11 +103,11 @@ MemoryPoolSlot *new_memory_pool(MemoryPoolSlot *slots, s32 poolSize, s32 numSlot
|
||||
void *allocate_from_main_pool_safe(s32 size, u32 colourTag) {
|
||||
void *temp_v0;
|
||||
if (size == 0) {
|
||||
func_800B7460((s32 *)((u8 *)get_stack_pointer()->unk14), size, colourTag);
|
||||
dump_memory_to_cpak(get_stack_pointer()->unk14, size, colourTag);
|
||||
}
|
||||
temp_v0 = allocate_from_memory_pool(0, size, colourTag);
|
||||
if (temp_v0 == (void *)NULL) {
|
||||
func_800B7460((s32 *)((u8 *)get_stack_pointer()->unk14), size, colourTag);
|
||||
dump_memory_to_cpak(get_stack_pointer()->unk14, size, colourTag);
|
||||
}
|
||||
return temp_v0;
|
||||
}
|
||||
|
||||
+705
-56
File diff suppressed because it is too large
Load Diff
+37
-14
@@ -244,17 +244,41 @@ typedef struct unk800E153C {
|
||||
u32 unk4; // Flags?
|
||||
} unk800E153C;
|
||||
|
||||
typedef struct MenuColour {
|
||||
u8 red;
|
||||
u8 green;
|
||||
u8 blue;
|
||||
u8 alpha;
|
||||
u8 opacity;
|
||||
} MenuColour;
|
||||
|
||||
// Unknown Size
|
||||
typedef struct unk80126A80 {
|
||||
u8 pad0[0x13];
|
||||
s8 unk13;
|
||||
} unk80126A80;
|
||||
|
||||
/* Size: 0x10 bytes */
|
||||
typedef struct unk800861C8 {
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u8 pad3[0x3];
|
||||
u8 controllerIndex;
|
||||
u8 pad7[0x5];
|
||||
u32 fileSize; // Game Data File Size
|
||||
/* 0x00 */ u8 unk0;
|
||||
/* 0x01 */ u8 unk1;
|
||||
/* 0x02 */ u8 unk2;
|
||||
/* 0x03 */ u8 unk3;
|
||||
/* 0x04 */ s16 compressedFilename;
|
||||
/* 0x06 */ u8 controllerIndex;
|
||||
/* 0x07 */ u8 unk7;
|
||||
/* 0x08 */ char *unk8;
|
||||
/* 0x0C */ u32 fileSize; // Game Data File Size
|
||||
} unk800861C8;
|
||||
|
||||
// Size: 12 bytes
|
||||
typedef struct unk80126878 {
|
||||
/* 0x00 */ char *text;
|
||||
/* 0x04 */ s16 x;
|
||||
/* 0x06 */ s16 y;
|
||||
/* 0x08 */ s32 colourIndex;
|
||||
} unk80126878;
|
||||
|
||||
/* Size: 0x10 bytes */
|
||||
typedef struct unk800E0970 {
|
||||
s8 unk0;
|
||||
@@ -490,6 +514,11 @@ void randomise_ai_racer_slots(s32 arg0);
|
||||
void func_80081C04(s32 number, s32 x, s32 y, s32 r, s32 g, s32 b, s32 a, UNUSED s32 font, s32 alignment);
|
||||
void func_8009CA60(s32 stackIndex);
|
||||
void func_8008E4EC(void);
|
||||
SIDeviceStatus func_800862C4(void);
|
||||
void func_8009C6D4(s32 arg0);
|
||||
s32 func_80087734(s32 buttonsPressed, s32 yAxis);
|
||||
void func_800853D0(unk800861C8 *arg0, s32 x, s32 y);
|
||||
void render_track_select(s32 x, s32 y, char *hubName, char *trackName, s32 rectOpacity, s32 imageId, s32 copyViewPort, DrawTexture *arg7, s32 arg8);
|
||||
|
||||
// Non Matching functions below here
|
||||
void load_menu_text(s32 language); // Non Matching
|
||||
@@ -515,26 +544,20 @@ s32 menu_credits_loop(s32 updateRate);
|
||||
void func_8007FFEC(s32 arg0);
|
||||
void func_800871D8(s32 arg0);
|
||||
SIDeviceStatus func_80087F14(s32 *controllerIndex, s32 arg1);
|
||||
void func_8009C6D4(s32 arg0);
|
||||
void set_D_800DD430(s8 arg0);
|
||||
void func_80099E8C(s32 updateRate);
|
||||
s32 func_800998E0(s32 arg0);
|
||||
void func_80081218(void);
|
||||
void func_80080580(Gfx **dlist, s32 startX, s32 startY, s32 width, s32 height, s32 borderWidth, s32 borderHeight, s32 colour, TextureHeader *tex);
|
||||
void func_800853D0(unk800861C8 *arg0, s32 arg1, s32 arg2);
|
||||
void func_8008D8BC(s32 updateRate);
|
||||
void renderTrackSelect(s32 arg0, s32 arg1, s8 *arg2, s8 *arg3, s32 arg4, s32 arg5, s32 arg6, DrawTexture *arg7, s32 arg8);
|
||||
//Possible names
|
||||
//void renderTrackSelect(s32 xPos, s32 yPos, char *levelName, char *arg3, s32 colour, s32 imageId, s32 copyViewPort, DrawTexture *arg7, s32 arg8);
|
||||
|
||||
s32 func_80095728(Gfx **gfx, MatrixS **mtx, Vertex **vtx, s32 updateRate);
|
||||
s32 func_8008F618(Gfx **dlist, MatrixS **mat);
|
||||
void func_80093D40(UNUSED s32 updateRate);
|
||||
void func_80080BC8(Gfx **);
|
||||
void func_80080E90(Gfx **dList, s32 startX, s32 startY, s32 width, s32 height, s32 borderWidth, s32 borderHeight, s32 colour0, s32 colour1, s32 colour2, s32 colour3);
|
||||
void func_80084854(void);
|
||||
s32 func_800862C4(void);
|
||||
s32 func_80086AFC(void);
|
||||
s32 func_80087734(s32, s32);
|
||||
void func_80085B9C(UNUSED s32 updateRate);
|
||||
void func_80098774(s32);
|
||||
void render_magic_codes_ui(s32 updateRate);
|
||||
|
||||
+11
-15
@@ -669,7 +669,7 @@ SIDeviceStatus get_file_extension(s32 controllerIndex, s32 fileType, char *fileE
|
||||
if (fileNames[fileNum] == NULL) {
|
||||
continue;
|
||||
}
|
||||
if (fileType == 3) {
|
||||
if (fileType == SAVE_FILE_TYPE_GAME_DATA) {
|
||||
if((bcmp((u8 *) fileNames[fileNum], (char *) sDKRacingAdv1, strlen((char *) sDKRacingAdv2)) != 0)) {
|
||||
continue;
|
||||
}
|
||||
@@ -1767,7 +1767,7 @@ s32 get_controller_pak_file_list(s32 controllerIndex, s32 maxNumOfFilesToGet, ch
|
||||
temp_D_800DE440 += 0x12;
|
||||
fileExtensions[i] = (char *) temp_D_800DE440;
|
||||
fileSizes[i] = 0;
|
||||
fileTypes[i] = -1;
|
||||
fileTypes[i] = SAVE_FILE_TYPE_UNSET;
|
||||
temp_D_800DE440 += 6;
|
||||
}
|
||||
|
||||
@@ -1775,7 +1775,7 @@ s32 get_controller_pak_file_list(s32 controllerIndex, s32 maxNumOfFilesToGet, ch
|
||||
fileExtensions[i] = 0;
|
||||
fileNames[i] = 0;
|
||||
fileSizes[i] = 0;
|
||||
fileTypes[i] = -1;
|
||||
fileTypes[i] = SAVE_FILE_TYPE_UNSET;
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -1794,7 +1794,7 @@ s32 get_controller_pak_file_list(s32 controllerIndex, s32 maxNumOfFilesToGet, ch
|
||||
font_codes_to_string((char *)&state.game_name, (char *)fileNames[i], PFS_FILE_NAME_LEN);
|
||||
font_codes_to_string((char *)&state.ext_name, (char *)fileExtensions[i], PFS_FILE_EXT_LEN);
|
||||
fileSizes[i] = state.file_size;
|
||||
fileTypes[i] = 6; // Unknown file type? Possibly from another game?
|
||||
fileTypes[i] = SAVE_FILE_TYPE_UNKNOWN;
|
||||
|
||||
if ((state.game_code == gameCode) && (state.company_code == COMPANY_CODE)) {
|
||||
fileTypes[i] = get_file_type(controllerIndex, i);
|
||||
@@ -2141,31 +2141,27 @@ char *string_to_font_codes(char *inString, char *outString, s32 stringLength) {
|
||||
|
||||
/**
|
||||
* For the given controller, and file, this will return a value for which type of file it is.
|
||||
* 3 = GAMD / Game Data
|
||||
* 4 = TIMD / Time Data
|
||||
* 5 = GHSS / Ghost Data
|
||||
* 6 = Unknown? Possibly from another game?
|
||||
*/
|
||||
s32 get_file_type(s32 controllerIndex, s32 fileNum) {
|
||||
SaveFileType get_file_type(s32 controllerIndex, s32 fileNum) {
|
||||
s32 *data;
|
||||
UNUSED s32 pad;
|
||||
s32 ret;
|
||||
|
||||
ret = 6;
|
||||
ret = SAVE_FILE_TYPE_UNKNOWN;
|
||||
data = allocate_from_main_pool_safe(0x100, COLOUR_TAG_BLACK);
|
||||
if (read_data_from_controller_pak(controllerIndex, fileNum, (u8 *)data, 0x100) == CONTROLLER_PAK_GOOD) {
|
||||
if (read_data_from_controller_pak(controllerIndex, fileNum, (u8 *) data, 0x100) == CONTROLLER_PAK_GOOD) {
|
||||
switch (*data) {
|
||||
case GAMD:
|
||||
ret = 3;
|
||||
ret = SAVE_FILE_TYPE_GAME_DATA;
|
||||
break;
|
||||
case TIMD:
|
||||
ret = 4;
|
||||
ret = SAVE_FILE_TYPE_TIME_DATA;
|
||||
break;
|
||||
case GHSS:
|
||||
ret = 5;
|
||||
ret = SAVE_FILE_TYPE_GHOST_DATA;
|
||||
break;
|
||||
default:
|
||||
ret = 6;
|
||||
ret = SAVE_FILE_TYPE_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+12
-1
@@ -36,6 +36,17 @@ typedef enum {
|
||||
CONTROLLER_PAK_BAD_DATA
|
||||
} SIDeviceStatus;
|
||||
|
||||
typedef enum {
|
||||
SAVE_FILE_TYPE_UNSET = -1,
|
||||
SAVE_FILE_TYPE_UNK0, //Unused?
|
||||
SAVE_FILE_TYPE_UNK1, //Unused?
|
||||
SAVE_FILE_TYPE_UNK2, //Unused?
|
||||
SAVE_FILE_TYPE_GAME_DATA,
|
||||
SAVE_FILE_TYPE_TIME_DATA,
|
||||
SAVE_FILE_TYPE_GHOST_DATA,
|
||||
SAVE_FILE_TYPE_UNKNOWN //Possibly from another game?
|
||||
} SaveFileType;
|
||||
|
||||
extern s8 *D_800DE440;
|
||||
extern u8 gN64FontCodes[68];
|
||||
extern s32 D_800DE48C;
|
||||
@@ -77,7 +88,7 @@ SIDeviceStatus read_data_from_controller_pak(s32 controllerIndex, s32 fileNum, u
|
||||
SIDeviceStatus write_controller_pak_file(s32 controllerIndex, s32 fileNumber, char *fileName, char *fileExt, u8 *dataToWrite, s32 fileSize);
|
||||
SIDeviceStatus get_file_size(s32 controllerIndex, s32 fileNum, s32 *fileSize);
|
||||
char *font_codes_to_string(char *inString, char *outString, s32 stringLength);
|
||||
s32 get_file_type(s32 controllerIndex, s32 fileNum);
|
||||
SaveFileType get_file_type(s32 controllerIndex, s32 fileNum);
|
||||
void func_80072578(s16 controllerIndex, s16 arg1, s16 arg2);
|
||||
void func_80072348(s16 controllerIndex, u8 arg1);
|
||||
void func_80072424(s16 controllerIndex, u8 arg1, f32 arg2);
|
||||
|
||||
+54
-32
@@ -49,7 +49,9 @@ void thread0_create(void) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Main thread for the epc lockup screen. Thread 0.
|
||||
*/
|
||||
void thread0_Main(UNUSED void *unused) {
|
||||
s32 sp34;
|
||||
s32 s0 = 0;
|
||||
@@ -69,29 +71,38 @@ void thread0_Main(UNUSED void *unused) {
|
||||
continue;
|
||||
}
|
||||
s0 &= ~8;
|
||||
func_800B70D0();
|
||||
func_800B7144();
|
||||
func_800B71B0();
|
||||
enable_interupts_on_main();
|
||||
stop_all_threads_except_main();
|
||||
write_epc_data_to_cpak();
|
||||
}
|
||||
}
|
||||
|
||||
void func_800B70D0(void) {
|
||||
/**
|
||||
* Enable interrupts on all idle priority threads, which should just be the main thread 1.
|
||||
*/
|
||||
void enable_interupts_on_main(void) {
|
||||
OSThread *node = __osGetActiveQueue();
|
||||
while (node->priority != -1) {
|
||||
if (node->priority == 0) {
|
||||
if (node->priority == OS_PRIORITY_IDLE) {
|
||||
//Clear all existing interrupts and disable them.
|
||||
node->context.sr &= ~(SR_IMASK | SR_IE);
|
||||
//node->context.sr |= (0x6C01);
|
||||
//Pretty sure these are the flags
|
||||
node->context.sr |= ((SR_SX | SR_UX | SR_KSU_SUP | SR_ERL) << SR_IMASKSHIFT) | SR_IE;
|
||||
//Could be this though.
|
||||
//node->context.sr | = (SR_IBIT7 | SR_IBIT6 | SR_IBIT4 | SR_IBIT3 | SR_IE);
|
||||
|
||||
//Enable interrupts
|
||||
//IP3 Int1 pin (N64: Cartridge)
|
||||
//IP4 Int2 pin (N64: Pre-NMI (Reset button))
|
||||
//IP6 Int4 pin (N64: RDB Write)
|
||||
//IP7 Timer interrupt
|
||||
node->context.sr |= (SR_IBIT7 | SR_IBIT6 | SR_IBIT4 | SR_IBIT3 | SR_IE);
|
||||
break;
|
||||
}
|
||||
node = node->tlnext;
|
||||
}
|
||||
}
|
||||
|
||||
void func_800B7144(void) {
|
||||
/**
|
||||
* Stop all threads except for the main thread 1
|
||||
*/
|
||||
void stop_all_threads_except_main(void) {
|
||||
OSThread *node = __osGetActiveQueue();
|
||||
while (node->priority != -1) {
|
||||
if (node->priority > OS_PRIORITY_IDLE && node->priority <= OS_PRIORITY_APPMAX) {
|
||||
@@ -101,7 +112,10 @@ void func_800B7144(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_800B71B0(void) {
|
||||
/**
|
||||
* Writes epc data to the controller pak so that it can be read back later.
|
||||
*/
|
||||
void write_epc_data_to_cpak(void) {
|
||||
OSThread *thread;
|
||||
UNUSED s16 sp444[0x200];
|
||||
u8 sp244[0x200];
|
||||
@@ -140,9 +154,11 @@ void func_800B71B0(void) {
|
||||
while (1) {} // Infinite loop
|
||||
}
|
||||
|
||||
#ifdef NON_EQUIVALENT
|
||||
//Rename mask to colourTag?
|
||||
void func_800B7460(s32 *epc, s32 size, u32 mask) {
|
||||
/**
|
||||
* Writes epc data to the controller pak when a memory allocation has failed,
|
||||
* but only if CHEAT_EPC_LOCK_UP_DISPLAY is active.
|
||||
*/
|
||||
void dump_memory_to_cpak(s32 epc, s32 size, u32 colourTag) {
|
||||
epcInfo epcinfo;
|
||||
s16 sp440[0x200];
|
||||
u8 sp240[0x200];
|
||||
@@ -150,38 +166,33 @@ void func_800B7460(s32 *epc, s32 size, u32 mask) {
|
||||
s16 *v0;
|
||||
s32 currentCount;
|
||||
s32 i;
|
||||
u8 zero;
|
||||
UNUSED s32 pad;
|
||||
|
||||
// This is checking if the EPC cheat is active
|
||||
if (get_filtered_cheats() & CHEAT_EPC_LOCK_UP_DISPLAY) {
|
||||
bzero(&epcinfo, sizeof(epcInfo));
|
||||
epcinfo.epc = epc;
|
||||
epcinfo.epc = epc & 0xFFFFFFFFFFFFFFFF; //fakematch
|
||||
epcinfo.a0 = size;
|
||||
epcinfo.a1 = mask;
|
||||
epcinfo.a1 = colourTag;
|
||||
epcinfo.cause = -1;
|
||||
epcinfo.objectStackTrace[0] = gObjectStackTrace[0];
|
||||
epcinfo.objectStackTrace[1] = gObjectStackTrace[1];
|
||||
epcinfo.objectStackTrace[2] = gObjectStackTrace[2];
|
||||
bcopy(&epcinfo, &sp40, sizeof(epcInfo));
|
||||
bzero(&sp240, sizeof(sp240));
|
||||
zero = 0; // Why is this needed to match?
|
||||
v0 = func_80024594(¤tCount, &size);
|
||||
for (i = zero; i < size; i++) {
|
||||
for (i = 0; i < size; i++) {
|
||||
sp440[i] = v0[currentCount];
|
||||
currentCount--;
|
||||
if (currentCount < zero) {
|
||||
if (currentCount < 0) {
|
||||
currentCount += size;
|
||||
}
|
||||
}
|
||||
write_controller_pak_file(0, -1, "CORE", "", &sp40, sizeof(sp40) + sizeof(sp240) + sizeof(sp440));
|
||||
i = sizeof(sp40) + sizeof(sp240) + sizeof(sp440); //fakematch?
|
||||
write_controller_pak_file(0, -1, "CORE", "", sp40, i);
|
||||
while (1) {} // Infinite loop; waiting for the player to reset the console?
|
||||
}
|
||||
while (1) {} // Infinite loop; waiting for the player to reset the console?
|
||||
}
|
||||
#else
|
||||
const char sCoreFileName[] = "CORE";
|
||||
const char sCoreFileExt[] = "";
|
||||
GLOBAL_ASM("asm/non_matchings/thread0_epc/func_800B7460.s")
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Mark the object type given, so if the game crashes while processing it, the debug screen will tell you which object ID is to blame.
|
||||
@@ -193,7 +204,18 @@ void update_object_stack_trace(s32 index, s32 value) {
|
||||
}
|
||||
}
|
||||
|
||||
//Called as a check to see if render_epc_lock_up_display should be called.
|
||||
#if 1
|
||||
// Ok, so this is weird... If I remove the last GLOBAL_ASM in this file,
|
||||
// even if it's not included anymore, it breaks get_lockup_status
|
||||
// as it can't seem to find the externed statics?
|
||||
#else
|
||||
//Cursed as hell, it doesn't seem to matter what file this is pointing to really.
|
||||
GLOBAL_ASM("asm/unknown_062930/func_80061D30.s")
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Called as a check to see if render_epc_lock_up_display should be called.
|
||||
*/
|
||||
s32 get_lockup_status(void) {
|
||||
s32 fileNum;
|
||||
s32 controllerIndex = 0;
|
||||
@@ -228,7 +250,7 @@ s32 get_lockup_status(void) {
|
||||
/**
|
||||
* Counts up. Automatically switches page every second.
|
||||
* Official name: diCpuTraceTick
|
||||
*/
|
||||
*/
|
||||
void lockup_screen_loop(s32 updateRate) {
|
||||
sLockupDelay += updateRate;
|
||||
if (sLockupDelay > 60) {
|
||||
@@ -244,7 +266,7 @@ void lockup_screen_loop(s32 updateRate) {
|
||||
* Page 0 shows the address of the instruction that crashed as well as fixed point registers
|
||||
* Page 1-3 show the stack dump of the crashed thread.
|
||||
* Page 4 appears to show the data of the EPC stack itself?
|
||||
*/
|
||||
*/
|
||||
void render_epc_lock_up_display(void) {
|
||||
u16 *temp;
|
||||
char *objStatusString[3] = {"setup", "control", "print"};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user