diff --git a/README.md b/README.md index 5041dfdf..c5889d66 100644 --- a/README.md +++ b/README.md @@ -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. -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% --- @@ -128,31 +128,31 @@ s32 is_drumstick_unlocked(void) { ``` -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) + ======================================================= ``` diff --git a/asm/non_matchings/menu/func_800853D0.s b/asm/non_matchings/menu/func_800853D0.s deleted file mode 100644 index 552258bf..00000000 --- a/asm/non_matchings/menu/func_800853D0.s +++ /dev/null @@ -1,534 +0,0 @@ -.late_rodata -glabel jpt_800E83B8 -.word L8008541C, L8008553C, L80085574, L80085690, L800856DC, L80085728, L80085828, L80085774, L800857C0, L800857F0 - -.text -glabel func_800853D0 -/* 085FD0 800853D0 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 085FD4 800853D4 240E000B */ li $t6, 11 -/* 085FD8 800853D8 AFBF0034 */ sw $ra, 0x34($sp) -/* 085FDC 800853DC AFB00030 */ sw $s0, 0x30($sp) -/* 085FE0 800853E0 AFA50084 */ sw $a1, 0x84($sp) -/* 085FE4 800853E4 AFA60088 */ sw $a2, 0x88($sp) -/* 085FE8 800853E8 AFAE0070 */ sw $t6, 0x70($sp) -/* 085FEC 800853EC 908F0000 */ lbu $t7, ($a0) -/* 085FF0 800853F0 00808025 */ move $s0, $a0 -/* 085FF4 800853F4 25F8FFFF */ addiu $t8, $t7, -1 -/* 085FF8 800853F8 2F01000A */ sltiu $at, $t8, 0xa -/* 085FFC 800853FC 1020010A */ beqz $at, .L80085828 -/* 086000 80085400 0018C080 */ sll $t8, $t8, 2 -/* 086004 80085404 3C01800F */ lui $at, %hi(jpt_800E83B8) # $at, 0x800f -/* 086008 80085408 00380821 */ addu $at, $at, $t8 -/* 08600C 8008540C 8C3883B8 */ lw $t8, %lo(jpt_800E83B8)($at) -/* 086010 80085410 00000000 */ nop -/* 086014 80085414 03000008 */ jr $t8 -/* 086018 80085418 00000000 */ nop -glabel L8008541C -/* 08601C 8008541C 3C19800E */ lui $t9, %hi(D_800DFC10) # $t9, 0x800e -/* 086020 80085420 2739FC10 */ addiu $t9, %lo(D_800DFC10) # addiu $t9, $t9, -0x3f0 -/* 086024 80085424 AFB90068 */ sw $t9, 0x68($sp) -/* 086028 80085428 92030006 */ lbu $v1, 6($s0) -/* 08602C 8008542C 3C028012 */ lui $v0, %hi(gSavefileData) # $v0, 0x8012 -/* 086030 80085430 00035080 */ sll $t2, $v1, 2 -/* 086034 80085434 004A1021 */ addu $v0, $v0, $t2 -/* 086038 80085438 8C426530 */ lw $v0, %lo(gSavefileData)($v0) -/* 08603C 8008543C 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 086040 80085440 904B004B */ lbu $t3, 0x4b($v0) -/* 086044 80085444 8D08665C */ lw $t0, %lo(gMenuTextures + 0x10C)($t0) -/* 086048 80085448 3C09B0E0 */ lui $t1, (0xB0E0C0FF >> 16) # lui $t1, 0xb0e0 -/* 08604C 8008544C 3529C0FF */ ori $t1, (0xB0E0C0FF & 0xFFFF) # ori $t1, $t1, 0xc0ff -/* 086050 80085450 1560002F */ bnez $t3, .L80085510 -/* 086054 80085454 01401825 */ move $v1, $t2 -/* 086058 80085458 8C440050 */ lw $a0, 0x50($v0) -/* 08605C 8008545C AFA9006C */ sw $t1, 0x6c($sp) -/* 086060 80085460 AFA8004C */ sw $t0, 0x4c($sp) -/* 086064 80085464 27A50050 */ addiu $a1, $sp, 0x50 -/* 086068 80085468 0C025DBE */ jal decompress_filename_string -/* 08606C 8008546C 24060003 */ li $a2, 3 -/* 086070 80085470 27A40050 */ addiu $a0, $sp, 0x50 -/* 086074 80085474 0C025DF4 */ jal trim_filename_string -/* 086078 80085478 00802825 */ move $a1, $a0 -/* 08607C 8008547C 27AC0050 */ addiu $t4, $sp, 0x50 -/* 086080 80085480 AFAC0064 */ sw $t4, 0x64($sp) -/* 086084 80085484 920D0006 */ lbu $t5, 6($s0) -/* 086088 80085488 3C028012 */ lui $v0, %hi(gSavefileData) # $v0, 0x8012 -/* 08608C 8008548C 000D7080 */ sll $t6, $t5, 2 -/* 086090 80085490 004E1021 */ addu $v0, $v0, $t6 -/* 086094 80085494 8C426530 */ lw $v0, %lo(gSavefileData)($v0) -/* 086098 80085498 2404000A */ li $a0, 10 -/* 08609C 8008549C 8C4F0000 */ lw $t7, ($v0) -/* 0860A0 800854A0 8FA8004C */ lw $t0, 0x4c($sp) -/* 0860A4 800854A4 85E30000 */ lh $v1, ($t7) -/* 0860A8 800854A8 8FA9006C */ lw $t1, 0x6c($sp) -/* 0860AC 800854AC 0064001A */ div $zero, $v1, $a0 -/* 0860B0 800854B0 240E000C */ li $t6, 12 -/* 0860B4 800854B4 14800002 */ bnez $a0, .L800854C0 -/* 0860B8 800854B8 00000000 */ nop -/* 0860BC 800854BC 0007000D */ break 7 -.L800854C0: -/* 0860C0 800854C0 2401FFFF */ li $at, -1 -/* 0860C4 800854C4 14810004 */ bne $a0, $at, .L800854D8 -/* 0860C8 800854C8 3C018000 */ lui $at, 0x8000 -/* 0860CC 800854CC 14610002 */ bne $v1, $at, .L800854D8 -/* 0860D0 800854D0 00000000 */ nop -/* 0860D4 800854D4 0006000D */ break 6 -.L800854D8: -/* 0860D8 800854D8 0000C012 */ mflo $t8 -/* 0860DC 800854DC AFB80078 */ sw $t8, 0x78($sp) -/* 0860E0 800854E0 0300C825 */ move $t9, $t8 -/* 0860E4 800854E4 03040019 */ multu $t8, $a0 -/* 0860E8 800854E8 00005012 */ mflo $t2 -/* 0860EC 800854EC 006A5823 */ subu $t3, $v1, $t2 -/* 0860F0 800854F0 AFAB0074 */ sw $t3, 0x74($sp) -/* 0860F4 800854F4 8C4C0010 */ lw $t4, 0x10($v0) -/* 0860F8 800854F8 00000000 */ nop -/* 0860FC 800854FC 318D0004 */ andi $t5, $t4, 4 -/* 086100 80085500 11A00008 */ beqz $t5, .L80085524 -/* 086104 80085504 00000000 */ nop -/* 086108 80085508 10000006 */ b .L80085524 -/* 08610C 8008550C AFAE0070 */ sw $t6, 0x70($sp) -.L80085510: -/* 086110 80085510 3C0F800E */ lui $t7, %hi(gFilenames) # $t7, 0x800e -/* 086114 80085514 01E37821 */ addu $t7, $t7, $v1 -/* 086118 80085518 8DEF03B0 */ lw $t7, %lo(gFilenames)($t7) -/* 08611C 8008551C 00000000 */ nop -/* 086120 80085520 AFAF0064 */ sw $t7, 0x64($sp) -.L80085524: -/* 086124 80085524 3C18800E */ lui $t8, %hi(gMenuText) # $t8, 0x800e -/* 086128 80085528 8F18F4A0 */ lw $t8, %lo(gMenuText)($t8) -/* 08612C 8008552C 00000000 */ nop -/* 086130 80085530 8F1901DC */ lw $t9, 0x1dc($t8) -/* 086134 80085534 100000C8 */ b .L80085858 -/* 086138 80085538 AFB90060 */ sw $t9, 0x60($sp) -glabel L8008553C -/* 08613C 8008553C 3C0A800E */ lui $t2, %hi(D_800DFC20) # $t2, 0x800e -/* 086140 80085540 3C03800E */ lui $v1, %hi(gMenuText) # $v1, 0x800e -/* 086144 80085544 8C63F4A0 */ lw $v1, %lo(gMenuText)($v1) -/* 086148 80085548 254AFC20 */ addiu $t2, %lo(D_800DFC20) # addiu $t2, $t2, -0x3e0 -/* 08614C 8008554C AFAA0068 */ sw $t2, 0x68($sp) -/* 086150 80085550 8C6B01E0 */ lw $t3, 0x1e0($v1) -/* 086154 80085554 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 086158 80085558 AFAB0064 */ sw $t3, 0x64($sp) -/* 08615C 8008555C 8C6C01DC */ lw $t4, 0x1dc($v1) -/* 086160 80085560 8D08665C */ lw $t0, %lo(gMenuTextures + 0x10C)($t0) -/* 086164 80085564 3C09B0E0 */ lui $t1, (0xB0E0C0FF >> 16) # lui $t1, 0xb0e0 -/* 086168 80085568 3529C0FF */ ori $t1, (0xB0E0C0FF & 0xFFFF) # ori $t1, $t1, 0xc0ff -/* 08616C 8008556C 100000BA */ b .L80085858 -/* 086170 80085570 AFAC0060 */ sw $t4, 0x60($sp) -glabel L80085574 -/* 086174 80085574 3C0D800E */ lui $t5, %hi(D_800DFC10) # $t5, 0x800e -/* 086178 80085578 25ADFC10 */ addiu $t5, %lo(D_800DFC10) # addiu $t5, $t5, -0x3f0 -/* 08617C 8008557C AFAD0068 */ sw $t5, 0x68($sp) -/* 086180 80085580 920E0006 */ lbu $t6, 6($s0) -/* 086184 80085584 27A50050 */ addiu $a1, $sp, 0x50 -/* 086188 80085588 3C09800E */ lui $t1, %hi(D_800DFACC) # $t1, 0x800e -/* 08618C 8008558C 000E7880 */ sll $t7, $t6, 2 -/* 086190 80085590 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 086194 80085594 012F4821 */ addu $t1, $t1, $t7 -/* 086198 80085598 AFA50064 */ sw $a1, 0x64($sp) -/* 08619C 8008559C 8D086660 */ lw $t0, %lo(gMenuTextures + 0x110)($t0) -/* 0861A0 800855A0 8D29FACC */ lw $t1, %lo(D_800DFACC)($t1) -/* 0861A4 800855A4 86040004 */ lh $a0, 4($s0) -/* 0861A8 800855A8 24060003 */ li $a2, 3 -/* 0861AC 800855AC AFA8004C */ sw $t0, 0x4c($sp) -/* 0861B0 800855B0 0C025DBE */ jal decompress_filename_string -/* 0861B4 800855B4 AFA9006C */ sw $t1, 0x6c($sp) -/* 0861B8 800855B8 3C06800E */ lui $a2, %hi(D_800E1E10) # $a2, 0x800e -/* 0861BC 800855BC 8CC61E10 */ lw $a2, %lo(D_800E1E10)($a2) -/* 0861C0 800855C0 8FA8004C */ lw $t0, 0x4c($sp) -/* 0861C4 800855C4 90D80000 */ lbu $t8, ($a2) -/* 0861C8 800855C8 8FA9006C */ lw $t1, 0x6c($sp) -/* 0861CC 800855CC 1300000A */ beqz $t8, .L800855F8 -/* 0861D0 800855D0 00002825 */ move $a1, $zero -/* 0861D4 800855D4 90C40000 */ lbu $a0, ($a2) -/* 0861D8 800855D8 27A20050 */ addiu $v0, $sp, 0x50 -/* 0861DC 800855DC 00C01825 */ move $v1, $a2 -.L800855E0: -/* 0861E0 800855E0 A0440003 */ sb $a0, 3($v0) -/* 0861E4 800855E4 90640001 */ lbu $a0, 1($v1) -/* 0861E8 800855E8 24A50001 */ addiu $a1, $a1, 1 -/* 0861EC 800855EC 24420001 */ addiu $v0, $v0, 1 -/* 0861F0 800855F0 1480FFFB */ bnez $a0, .L800855E0 -/* 0861F4 800855F4 24630001 */ addiu $v1, $v1, 1 -.L800855F8: -/* 0861F8 800855F8 8E0A0008 */ lw $t2, 8($s0) -/* 0861FC 800855FC 27B90050 */ addiu $t9, $sp, 0x50 -/* 086200 80085600 914B0000 */ lbu $t3, ($t2) -/* 086204 80085604 00B91021 */ addu $v0, $a1, $t9 -/* 086208 80085608 240C0029 */ li $t4, 41 -/* 08620C 8008560C A04C0004 */ sb $t4, 4($v0) -/* 086210 80085610 A0400005 */ sb $zero, 5($v0) -/* 086214 80085614 A04B0003 */ sb $t3, 3($v0) -/* 086218 80085618 920E0006 */ lbu $t6, 6($s0) -/* 08621C 8008561C 3C0D800E */ lui $t5, %hi(gMenuText) # $t5, 0x800e -/* 086220 80085620 8DADF4A0 */ lw $t5, %lo(gMenuText)($t5) -/* 086224 80085624 000E7880 */ sll $t7, $t6, 2 -/* 086228 80085628 01AFC021 */ addu $t8, $t5, $t7 -/* 08622C 8008562C 8F190158 */ lw $t9, 0x158($t8) -/* 086230 80085630 2404000A */ li $a0, 10 -/* 086234 80085634 AFB90060 */ sw $t9, 0x60($sp) -/* 086238 80085638 92030002 */ lbu $v1, 2($s0) -/* 08623C 8008563C 240E000C */ li $t6, 12 -/* 086240 80085640 0064001A */ div $zero, $v1, $a0 -/* 086244 80085644 14800002 */ bnez $a0, .L80085650 -/* 086248 80085648 00000000 */ nop -/* 08624C 8008564C 0007000D */ break 7 -.L80085650: -/* 086250 80085650 2401FFFF */ li $at, -1 -/* 086254 80085654 14810004 */ bne $a0, $at, .L80085668 -/* 086258 80085658 3C018000 */ lui $at, 0x8000 -/* 08625C 8008565C 14610002 */ bne $v1, $at, .L80085668 -/* 086260 80085660 00000000 */ nop -/* 086264 80085664 0006000D */ break 6 -.L80085668: -/* 086268 80085668 00005012 */ mflo $t2 -/* 08626C 8008566C 00005810 */ mfhi $t3 -/* 086270 80085670 AFAA0078 */ sw $t2, 0x78($sp) -/* 086274 80085674 AFAB0074 */ sw $t3, 0x74($sp) -/* 086278 80085678 920C0003 */ lbu $t4, 3($s0) -/* 08627C 8008567C 00000000 */ nop -/* 086280 80085680 11800076 */ beqz $t4, .L8008585C -/* 086284 80085684 8FA50084 */ lw $a1, 0x84($sp) -/* 086288 80085688 10000073 */ b .L80085858 -/* 08628C 8008568C AFAE0070 */ sw $t6, 0x70($sp) -glabel L80085690 -/* 086290 80085690 3C0D800E */ lui $t5, %hi(D_800DFC20) # $t5, 0x800e -/* 086294 80085694 25ADFC20 */ addiu $t5, %lo(D_800DFC20) # addiu $t5, $t5, -0x3e0 -/* 086298 80085698 AFAD0068 */ sw $t5, 0x68($sp) -/* 08629C 8008569C 92020006 */ lbu $v0, 6($s0) -/* 0862A0 800856A0 3C19800E */ lui $t9, %hi(gMenuText) # $t9, 0x800e -/* 0862A4 800856A4 8E180008 */ lw $t8, 8($s0) -/* 0862A8 800856A8 8F39F4A0 */ lw $t9, %lo(gMenuText)($t9) -/* 0862AC 800856AC 00025080 */ sll $t2, $v0, 2 -/* 0862B0 800856B0 3C09800E */ lui $t1, %hi(D_800DFACC) # $t1, 0x800e -/* 0862B4 800856B4 00027880 */ sll $t7, $v0, 2 -/* 0862B8 800856B8 AFB80064 */ sw $t8, 0x64($sp) -/* 0862BC 800856BC 032A5821 */ addu $t3, $t9, $t2 -/* 0862C0 800856C0 8D6C0158 */ lw $t4, 0x158($t3) -/* 0862C4 800856C4 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 0862C8 800856C8 012F4821 */ addu $t1, $t1, $t7 -/* 0862CC 800856CC 8D086660 */ lw $t0, %lo(gMenuTextures + 0x110)($t0) -/* 0862D0 800856D0 8D29FACC */ lw $t1, %lo(D_800DFACC)($t1) -/* 0862D4 800856D4 10000060 */ b .L80085858 -/* 0862D8 800856D8 AFAC0060 */ sw $t4, 0x60($sp) -glabel L800856DC -/* 0862DC 800856DC 3C0E800E */ lui $t6, %hi(D_800DFC30) # $t6, 0x800e -/* 0862E0 800856E0 25CEFC30 */ addiu $t6, %lo(D_800DFC30) # addiu $t6, $t6, -0x3d0 -/* 0862E4 800856E4 3C03800E */ lui $v1, %hi(gMenuText) # $v1, 0x800e -/* 0862E8 800856E8 8C63F4A0 */ lw $v1, %lo(gMenuText)($v1) -/* 0862EC 800856EC AFAE0068 */ sw $t6, 0x68($sp) -/* 0862F0 800856F0 92020006 */ lbu $v0, 6($s0) -/* 0862F4 800856F4 8C6F01E4 */ lw $t7, 0x1e4($v1) -/* 0862F8 800856F8 0002C080 */ sll $t8, $v0, 2 -/* 0862FC 800856FC 3C09800E */ lui $t1, %hi(D_800DFACC) # $t1, 0x800e -/* 086300 80085700 0078C821 */ addu $t9, $v1, $t8 -/* 086304 80085704 00026880 */ sll $t5, $v0, 2 -/* 086308 80085708 AFAF0064 */ sw $t7, 0x64($sp) -/* 08630C 8008570C 8F2A0158 */ lw $t2, 0x158($t9) -/* 086310 80085710 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 086314 80085714 012D4821 */ addu $t1, $t1, $t5 -/* 086318 80085718 8D086660 */ lw $t0, %lo(gMenuTextures + 0x110)($t0) -/* 08631C 8008571C 8D29FACC */ lw $t1, %lo(D_800DFACC)($t1) -/* 086320 80085720 1000004D */ b .L80085858 -/* 086324 80085724 AFAA0060 */ sw $t2, 0x60($sp) -glabel L80085728 -/* 086328 80085728 3C0B800E */ lui $t3, %hi(D_800DFC40) # $t3, 0x800e -/* 08632C 8008572C 256BFC40 */ addiu $t3, %lo(D_800DFC40) # addiu $t3, $t3, -0x3c0 -/* 086330 80085730 AFAB0068 */ sw $t3, 0x68($sp) -/* 086334 80085734 92020006 */ lbu $v0, 6($s0) -/* 086338 80085738 3C0D800E */ lui $t5, %hi(gMenuText) # $t5, 0x800e -/* 08633C 8008573C 8E0E0008 */ lw $t6, 8($s0) -/* 086340 80085740 8DADF4A0 */ lw $t5, %lo(gMenuText)($t5) -/* 086344 80085744 00027880 */ sll $t7, $v0, 2 -/* 086348 80085748 3C09800E */ lui $t1, %hi(D_800DFACC) # $t1, 0x800e -/* 08634C 8008574C 00026080 */ sll $t4, $v0, 2 -/* 086350 80085750 AFAE0064 */ sw $t6, 0x64($sp) -/* 086354 80085754 01AFC021 */ addu $t8, $t5, $t7 -/* 086358 80085758 8F190158 */ lw $t9, 0x158($t8) -/* 08635C 8008575C 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 086360 80085760 012C4821 */ addu $t1, $t1, $t4 -/* 086364 80085764 8D086660 */ lw $t0, %lo(gMenuTextures + 0x110)($t0) -/* 086368 80085768 8D29FACC */ lw $t1, %lo(D_800DFACC)($t1) -/* 08636C 8008576C 1000003A */ b .L80085858 -/* 086370 80085770 AFB90060 */ sw $t9, 0x60($sp) -glabel L80085774 -/* 086374 80085774 3C0A800E */ lui $t2, %hi(D_800DFC50) # $t2, 0x800e -/* 086378 80085778 254AFC50 */ addiu $t2, %lo(D_800DFC50) # addiu $t2, $t2, -0x3b0 -/* 08637C 8008577C 3C03800E */ lui $v1, %hi(gMenuText) # $v1, 0x800e -/* 086380 80085780 8C63F4A0 */ lw $v1, %lo(gMenuText)($v1) -/* 086384 80085784 AFAA0068 */ sw $t2, 0x68($sp) -/* 086388 80085788 92020006 */ lbu $v0, 6($s0) -/* 08638C 8008578C 8C6C01E8 */ lw $t4, 0x1e8($v1) -/* 086390 80085790 00027080 */ sll $t6, $v0, 2 -/* 086394 80085794 3C09800E */ lui $t1, %hi(D_800DFACC) # $t1, 0x800e -/* 086398 80085798 006E6821 */ addu $t5, $v1, $t6 -/* 08639C 8008579C 00025880 */ sll $t3, $v0, 2 -/* 0863A0 800857A0 AFAC0064 */ sw $t4, 0x64($sp) -/* 0863A4 800857A4 8DAF0158 */ lw $t7, 0x158($t5) -/* 0863A8 800857A8 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 0863AC 800857AC 012B4821 */ addu $t1, $t1, $t3 -/* 0863B0 800857B0 8D086660 */ lw $t0, %lo(gMenuTextures + 0x110)($t0) -/* 0863B4 800857B4 8D29FACC */ lw $t1, %lo(D_800DFACC)($t1) -/* 0863B8 800857B8 10000027 */ b .L80085858 -/* 0863BC 800857BC AFAF0060 */ sw $t7, 0x60($sp) -glabel L800857C0 -/* 0863C0 800857C0 3C18800E */ lui $t8, %hi(D_800DFC30) # $t8, 0x800e -/* 0863C4 800857C4 3C19800E */ lui $t9, %hi(gMenuText) # $t9, 0x800e -/* 0863C8 800857C8 8F39F4A0 */ lw $t9, %lo(gMenuText)($t9) -/* 0863CC 800857CC 2718FC30 */ addiu $t8, %lo(D_800DFC30) # addiu $t8, $t8, -0x3d0 -/* 0863D0 800857D0 AFB80068 */ sw $t8, 0x68($sp) -/* 0863D4 800857D4 8F2A01EC */ lw $t2, 0x1ec($t9) -/* 0863D8 800857D8 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 0863DC 800857DC 8D086664 */ lw $t0, %lo(gMenuTextures + 0x114)($t0) -/* 0863E0 800857E0 2409FFFF */ li $t1, -1 -/* 0863E4 800857E4 AFA00060 */ sw $zero, 0x60($sp) -/* 0863E8 800857E8 1000001B */ b .L80085858 -/* 0863EC 800857EC AFAA0064 */ sw $t2, 0x64($sp) -glabel L800857F0 -/* 0863F0 800857F0 3C0B800E */ lui $t3, %hi(D_800DFC10) # $t3, 0x800e -/* 0863F4 800857F4 3C03800E */ lui $v1, %hi(gMenuText) # $v1, 0x800e -/* 0863F8 800857F8 8C63F4A0 */ lw $v1, %lo(gMenuText)($v1) -/* 0863FC 800857FC 256BFC10 */ addiu $t3, %lo(D_800DFC10) # addiu $t3, $t3, -0x3f0 -/* 086400 80085800 AFAB0068 */ sw $t3, 0x68($sp) -/* 086404 80085804 8C6C02D4 */ lw $t4, 0x2d4($v1) -/* 086408 80085808 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 08640C 8008580C AFAC0064 */ sw $t4, 0x64($sp) -/* 086410 80085810 8C6E01DC */ lw $t6, 0x1dc($v1) -/* 086414 80085814 8D08665C */ lw $t0, %lo(gMenuTextures + 0x10C)($t0) -/* 086418 80085818 3C09B0E0 */ lui $t1, (0xB0E0C0FF >> 16) # lui $t1, 0xb0e0 -/* 08641C 8008581C 3529C0FF */ ori $t1, (0xB0E0C0FF & 0xFFFF) # ori $t1, $t1, 0xc0ff -/* 086420 80085820 1000000D */ b .L80085858 -/* 086424 80085824 AFAE0060 */ sw $t6, 0x60($sp) -.L80085828: -glabel L80085828 -/* 086428 80085828 3C0D800E */ lui $t5, %hi(D_800DFC60) # $t5, 0x800e -/* 08642C 8008582C 3C0F800E */ lui $t7, %hi(gMenuText) # $t7, 0x800e -/* 086430 80085830 8DEFF4A0 */ lw $t7, %lo(gMenuText)($t7) -/* 086434 80085834 25ADFC60 */ addiu $t5, %lo(D_800DFC60) # addiu $t5, $t5, -0x3a0 -/* 086438 80085838 AFAD0068 */ sw $t5, 0x68($sp) -/* 08643C 8008583C 8DF80144 */ lw $t8, 0x144($t7) -/* 086440 80085840 3C088012 */ lui $t0, %hi(gMenuTextures) # $t0, 0x8012 -/* 086444 80085844 3C098080 */ lui $t1, (0x808080FF >> 16) # lui $t1, 0x8080 -/* 086448 80085848 8D086664 */ lw $t0, %lo(gMenuTextures + 0x114)($t0) -/* 08644C 8008584C 352980FF */ ori $t1, (0x808080FF & 0xFFFF) # ori $t1, $t1, 0x80ff -/* 086450 80085850 AFA00060 */ sw $zero, 0x60($sp) -/* 086454 80085854 AFB80064 */ sw $t8, 0x64($sp) -.L80085858: -/* 086458 80085858 8FA50084 */ lw $a1, 0x84($sp) -.L8008585C: -/* 08645C 8008585C 8FB90088 */ lw $t9, 0x88($sp) -/* 086460 80085860 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086464 80085864 240A0078 */ li $t2, 120 -/* 086468 80085868 240B0040 */ li $t3, 64 -/* 08646C 8008586C 240C0004 */ li $t4, 4 -/* 086470 80085870 240E0004 */ li $t6, 4 -/* 086474 80085874 AFAE0018 */ sw $t6, 0x18($sp) -/* 086478 80085878 AFAC0014 */ sw $t4, 0x14($sp) -/* 08647C 8008587C AFAB0010 */ sw $t3, 0x10($sp) -/* 086480 80085880 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 086484 80085884 240700A0 */ li $a3, 160 -/* 086488 80085888 AFA9001C */ sw $t1, 0x1c($sp) -/* 08648C 8008588C AFA80020 */ sw $t0, 0x20($sp) -/* 086490 80085890 24A5FF60 */ addiu $a1, $a1, -0xa0 -/* 086494 80085894 0C020160 */ jal func_80080580 -/* 086498 80085898 01593023 */ subu $a2, $t2, $t9 -/* 08649C 8008589C 3C038000 */ lui $v1, %hi(osTvType) # $v1, 0x8000 -/* 0864A0 800858A0 8C630300 */ lw $v1, %lo(osTvType)($v1) -/* 0864A4 800858A4 8FAD0088 */ lw $t5, 0x88($sp) -/* 0864A8 800858A8 14600002 */ bnez $v1, .L800858B4 -/* 0864AC 800858AC 25AF000C */ addiu $t7, $t5, 0xc -/* 0864B0 800858B0 AFAF0088 */ sw $t7, 0x88($sp) -.L800858B4: -/* 0864B4 800858B4 92020000 */ lbu $v0, ($s0) -/* 0864B8 800858B8 24010003 */ li $at, 3 -/* 0864BC 800858BC 1041000E */ beq $v0, $at, .L800858F8 -/* 0864C0 800858C0 24040001 */ li $a0, 1 -/* 0864C4 800858C4 24010001 */ li $at, 1 -/* 0864C8 800858C8 14410050 */ bne $v0, $at, .L80085A0C -/* 0864CC 800858CC 8FAA0068 */ lw $t2, 0x68($sp) -/* 0864D0 800858D0 92180006 */ lbu $t8, 6($s0) -/* 0864D4 800858D4 3C198012 */ lui $t9, %hi(gSavefileData) # $t9, 0x8012 -/* 0864D8 800858D8 00185080 */ sll $t2, $t8, 2 -/* 0864DC 800858DC 032AC821 */ addu $t9, $t9, $t2 -/* 0864E0 800858E0 8F396530 */ lw $t9, %lo(gSavefileData)($t9) -/* 0864E4 800858E4 00000000 */ nop -/* 0864E8 800858E8 932B004B */ lbu $t3, 0x4b($t9) -/* 0864EC 800858EC 00000000 */ nop -/* 0864F0 800858F0 15600046 */ bnez $t3, .L80085A0C -/* 0864F4 800858F4 8FAA0068 */ lw $t2, 0x68($sp) -.L800858F8: -/* 0864F8 800858F8 14600003 */ bnez $v1, .L80085908 -/* 0864FC 800858FC 24050078 */ li $a1, 120 -/* 086500 80085900 10000001 */ b .L80085908 -/* 086504 80085904 24050086 */ li $a1, 134 -.L80085908: -/* 086508 80085908 0C01A142 */ jal func_80068508 -/* 08650C 8008590C AFA5007C */ sw $a1, 0x7c($sp) -/* 086510 80085910 8FA5007C */ lw $a1, 0x7c($sp) -/* 086514 80085914 8FAC0088 */ lw $t4, 0x88($sp) -/* 086518 80085918 3C03800E */ lui $v1, %hi(gMenuImageStack) # $v1, 0x800e -/* 08651C 8008591C 00AC1023 */ subu $v0, $a1, $t4 -/* 086520 80085920 244EFFCF */ addiu $t6, $v0, -0x31 -/* 086524 80085924 448E2000 */ mtc1 $t6, $f4 -/* 086528 80085928 2463F75C */ addiu $v1, %lo(gMenuImageStack) # addiu $v1, $v1, -0x8a4 -/* 08652C 8008592C 468021A0 */ cvt.s.w $f6, $f4 -/* 086530 80085930 8C6D0000 */ lw $t5, ($v1) -/* 086534 80085934 2458FFE8 */ addiu $t8, $v0, -0x18 -/* 086538 80085938 E5A60050 */ swc1 $f6, 0x50($t5) -/* 08653C 8008593C 8FB00070 */ lw $s0, 0x70($sp) -/* 086540 80085940 44984000 */ mtc1 $t8, $f8 -/* 086544 80085944 8C6A0000 */ lw $t2, ($v1) -/* 086548 80085948 468042A0 */ cvt.s.w $f10, $f8 -/* 08654C 8008594C 00107940 */ sll $t7, $s0, 5 -/* 086550 80085950 014FC821 */ addu $t9, $t2, $t7 -/* 086554 80085954 E72A0010 */ swc1 $f10, 0x10($t9) -/* 086558 80085958 01E08025 */ move $s0, $t7 -/* 08655C 8008595C 0C01EFC7 */ jal sprite_opaque -/* 086560 80085960 00002025 */ move $a0, $zero -/* 086564 80085964 8FAB0084 */ lw $t3, 0x84($sp) -/* 086568 80085968 3C02800E */ lui $v0, %hi(gMenuImageStack) # $v0, 0x800e -/* 08656C 8008596C 256CFF7B */ addiu $t4, $t3, -0x85 -/* 086570 80085970 448C8000 */ mtc1 $t4, $f16 -/* 086574 80085974 2442F75C */ addiu $v0, %lo(gMenuImageStack) # addiu $v0, $v0, -0x8a4 -/* 086578 80085978 468084A0 */ cvt.s.w $f18, $f16 -/* 08657C 8008597C 8C4E0000 */ lw $t6, ($v0) -/* 086580 80085980 24040002 */ li $a0, 2 -/* 086584 80085984 E5D2004C */ swc1 $f18, 0x4c($t6) -/* 086588 80085988 8C4F0000 */ lw $t7, ($v0) -/* 08658C 8008598C 8FAD0078 */ lw $t5, 0x78($sp) -/* 086590 80085990 0C027298 */ jal func_8009CA60 -/* 086594 80085994 A5ED0058 */ sh $t5, 0x58($t7) -/* 086598 80085998 8FB80084 */ lw $t8, 0x84($sp) -/* 08659C 8008599C 3C02800E */ lui $v0, %hi(gMenuImageStack) # $v0, 0x800e -/* 0865A0 800859A0 270AFF83 */ addiu $t2, $t8, -0x7d -/* 0865A4 800859A4 448A2000 */ mtc1 $t2, $f4 -/* 0865A8 800859A8 2442F75C */ addiu $v0, %lo(gMenuImageStack) # addiu $v0, $v0, -0x8a4 -/* 0865AC 800859AC 468021A0 */ cvt.s.w $f6, $f4 -/* 0865B0 800859B0 8C590000 */ lw $t9, ($v0) -/* 0865B4 800859B4 24040002 */ li $a0, 2 -/* 0865B8 800859B8 E726004C */ swc1 $f6, 0x4c($t9) -/* 0865BC 800859BC 8C4C0000 */ lw $t4, ($v0) -/* 0865C0 800859C0 8FAB0074 */ lw $t3, 0x74($sp) -/* 0865C4 800859C4 0C027298 */ jal func_8009CA60 -/* 0865C8 800859C8 A58B0058 */ sh $t3, 0x58($t4) -/* 0865CC 800859CC 0C01EFC7 */ jal sprite_opaque -/* 0865D0 800859D0 24040001 */ li $a0, 1 -/* 0865D4 800859D4 8FAE0084 */ lw $t6, 0x84($sp) -/* 0865D8 800859D8 3C0F800E */ lui $t7, %hi(gMenuImageStack) # $t7, 0x800e -/* 0865DC 800859DC 25CDFF80 */ addiu $t5, $t6, -0x80 -/* 0865E0 800859E0 448D4000 */ mtc1 $t5, $f8 -/* 0865E4 800859E4 8DEFF75C */ lw $t7, %lo(gMenuImageStack)($t7) -/* 0865E8 800859E8 468042A0 */ cvt.s.w $f10, $f8 -/* 0865EC 800859EC 01F0C021 */ addu $t8, $t7, $s0 -/* 0865F0 800859F0 E70A000C */ swc1 $f10, 0xc($t8) -/* 0865F4 800859F4 8FA40070 */ lw $a0, 0x70($sp) -/* 0865F8 800859F8 0C027298 */ jal func_8009CA60 -/* 0865FC 800859FC 00000000 */ nop -/* 086600 80085A00 0C01A142 */ jal func_80068508 -/* 086604 80085A04 00002025 */ move $a0, $zero -/* 086608 80085A08 8FAA0068 */ lw $t2, 0x68($sp) -.L80085A0C: -/* 08660C 80085A0C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086610 80085A10 1140000F */ beqz $t2, .L80085A50 -/* 086614 80085A14 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 086618 80085A18 8FA60084 */ lw $a2, 0x84($sp) -/* 08661C 80085A1C 8FA70088 */ lw $a3, 0x88($sp) -/* 086620 80085A20 241900FF */ li $t9, 255 -/* 086624 80085A24 240B00FF */ li $t3, 255 -/* 086628 80085A28 240C00FF */ li $t4, 255 -/* 08662C 80085A2C 240E00FF */ li $t6, 255 -/* 086630 80085A30 AFAE001C */ sw $t6, 0x1c($sp) -/* 086634 80085A34 AFAC0018 */ sw $t4, 0x18($sp) -/* 086638 80085A38 AFAB0014 */ sw $t3, 0x14($sp) -/* 08663C 80085A3C AFB90010 */ sw $t9, 0x10($sp) -/* 086640 80085A40 01402825 */ move $a1, $t2 -/* 086644 80085A44 24C6003C */ addiu $a2, $a2, 0x3c -/* 086648 80085A48 0C01E2AE */ jal render_textured_rectangle -/* 08664C 80085A4C 24E70006 */ addiu $a3, $a3, 6 -.L80085A50: -/* 086650 80085A50 8FAD0060 */ lw $t5, 0x60($sp) -/* 086654 80085A54 00000000 */ nop -/* 086658 80085A58 11A00026 */ beqz $t5, .L80085AF4 -/* 08665C 80085A5C 8FAB0064 */ lw $t3, 0x64($sp) -/* 086660 80085A60 0C0310BB */ jal set_text_font -/* 086664 80085A64 00002025 */ move $a0, $zero -/* 086668 80085A68 240F0080 */ li $t7, 128 -/* 08666C 80085A6C AFAF0010 */ sw $t7, 0x10($sp) -/* 086670 80085A70 00002025 */ move $a0, $zero -/* 086674 80085A74 00002825 */ move $a1, $zero -/* 086678 80085A78 00003025 */ move $a2, $zero -/* 08667C 80085A7C 0C0310E1 */ jal set_text_colour -/* 086680 80085A80 240700FF */ li $a3, 255 -/* 086684 80085A84 8FA50084 */ lw $a1, 0x84($sp) -/* 086688 80085A88 8FA60088 */ lw $a2, 0x88($sp) -/* 08668C 80085A8C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086690 80085A90 8FA70060 */ lw $a3, 0x60($sp) -/* 086694 80085A94 2418000C */ li $t8, 12 -/* 086698 80085A98 AFB80010 */ sw $t8, 0x10($sp) -/* 08669C 80085A9C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0866A0 80085AA0 24A50051 */ addiu $a1, $a1, 0x51 -/* 0866A4 80085AA4 0C031110 */ jal draw_text -/* 0866A8 80085AA8 24C60001 */ addiu $a2, $a2, 1 -/* 0866AC 80085AAC 240A00FF */ li $t2, 255 -/* 0866B0 80085AB0 AFAA0010 */ sw $t2, 0x10($sp) -/* 0866B4 80085AB4 240400FF */ li $a0, 255 -/* 0866B8 80085AB8 24050040 */ li $a1, 64 -/* 0866BC 80085ABC 240600FF */ li $a2, 255 -/* 0866C0 80085AC0 0C0310E1 */ jal set_text_colour -/* 0866C4 80085AC4 24070040 */ li $a3, 64 -/* 0866C8 80085AC8 8FA50084 */ lw $a1, 0x84($sp) -/* 0866CC 80085ACC 8FA60088 */ lw $a2, 0x88($sp) -/* 0866D0 80085AD0 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0866D4 80085AD4 8FA70060 */ lw $a3, 0x60($sp) -/* 0866D8 80085AD8 2419000C */ li $t9, 12 -/* 0866DC 80085ADC AFB90010 */ sw $t9, 0x10($sp) -/* 0866E0 80085AE0 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0866E4 80085AE4 24A5004F */ addiu $a1, $a1, 0x4f -/* 0866E8 80085AE8 0C031110 */ jal draw_text -/* 0866EC 80085AEC 24C6FFFF */ addiu $a2, $a2, -1 -/* 0866F0 80085AF0 8FAB0064 */ lw $t3, 0x64($sp) -.L80085AF4: -/* 0866F4 80085AF4 8FB00084 */ lw $s0, 0x84($sp) -/* 0866F8 80085AF8 11600024 */ beqz $t3, .L80085B8C -/* 0866FC 80085AFC 24040001 */ li $a0, 1 -/* 086700 80085B00 0C0310BB */ jal set_text_font -/* 086704 80085B04 2610004F */ addiu $s0, $s0, 0x4f -/* 086708 80085B08 240C00A0 */ li $t4, 160 -/* 08670C 80085B0C AFAC0010 */ sw $t4, 0x10($sp) -/* 086710 80085B10 00002025 */ move $a0, $zero -/* 086714 80085B14 00002825 */ move $a1, $zero -/* 086718 80085B18 00003025 */ move $a2, $zero -/* 08671C 80085B1C 0C0310E1 */ jal set_text_colour -/* 086720 80085B20 240700FF */ li $a3, 255 -/* 086724 80085B24 8FA50084 */ lw $a1, 0x84($sp) -/* 086728 80085B28 8FA60088 */ lw $a2, 0x88($sp) -/* 08672C 80085B2C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086730 80085B30 8FA70064 */ lw $a3, 0x64($sp) -/* 086734 80085B34 240E0004 */ li $t6, 4 -/* 086738 80085B38 AFAE0010 */ sw $t6, 0x10($sp) -/* 08673C 80085B3C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 086740 80085B40 24A50050 */ addiu $a1, $a1, 0x50 -/* 086744 80085B44 0C031110 */ jal draw_text -/* 086748 80085B48 24C60030 */ addiu $a2, $a2, 0x30 -/* 08674C 80085B4C 240D00FF */ li $t5, 255 -/* 086750 80085B50 AFAD0010 */ sw $t5, 0x10($sp) -/* 086754 80085B54 240400FF */ li $a0, 255 -/* 086758 80085B58 240500FF */ li $a1, 255 -/* 08675C 80085B5C 240600FF */ li $a2, 255 -/* 086760 80085B60 0C0310E1 */ jal set_text_colour -/* 086764 80085B64 240700FF */ li $a3, 255 -/* 086768 80085B68 8FA60088 */ lw $a2, 0x88($sp) -/* 08676C 80085B6C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086770 80085B70 8FA70064 */ lw $a3, 0x64($sp) -/* 086774 80085B74 240F0004 */ li $t7, 4 -/* 086778 80085B78 AFAF0010 */ sw $t7, 0x10($sp) -/* 08677C 80085B7C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 086780 80085B80 02002825 */ move $a1, $s0 -/* 086784 80085B84 0C031110 */ jal draw_text -/* 086788 80085B88 24C6002F */ addiu $a2, $a2, 0x2f -.L80085B8C: -/* 08678C 80085B8C 8FBF0034 */ lw $ra, 0x34($sp) -/* 086790 80085B90 8FB00030 */ lw $s0, 0x30($sp) -/* 086794 80085B94 03E00008 */ jr $ra -/* 086798 80085B98 27BD0080 */ addiu $sp, $sp, 0x80 - diff --git a/asm/non_matchings/menu/func_800862C4.s b/asm/non_matchings/menu/func_800862C4.s deleted file mode 100644 index 9b083ad4..00000000 --- a/asm/non_matchings/menu/func_800862C4.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/menu/func_80087734.s b/asm/non_matchings/menu/func_80087734.s deleted file mode 100644 index 0c5c3088..00000000 --- a/asm/non_matchings/menu/func_80087734.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/menu/func_8008FF1C.s b/asm/non_matchings/menu/func_8008FF1C.s index 8c6df15a..198e4618 100644 --- a/asm/non_matchings/menu/func_8008FF1C.s +++ b/asm/non_matchings/menu/func_8008FF1C.s @@ -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 diff --git a/asm/non_matchings/menu/func_80092188.s b/asm/non_matchings/menu/func_80092188.s index 419a72af..e03a826a 100644 --- a/asm/non_matchings/menu/func_80092188.s +++ b/asm/non_matchings/menu/func_80092188.s @@ -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 diff --git a/asm/non_matchings/menu/func_80095728.s b/asm/non_matchings/menu/func_80095728.s index 3d67e2c2..db20f880 100644 --- a/asm/non_matchings/menu/func_80095728.s +++ b/asm/non_matchings/menu/func_80095728.s @@ -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 diff --git a/asm/non_matchings/menu/func_8009C6D4.s b/asm/non_matchings/menu/func_8009C6D4.s deleted file mode 100644 index c257a5ba..00000000 --- a/asm/non_matchings/menu/func_8009C6D4.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/menu/renderTrackSelect.s b/asm/non_matchings/menu/renderTrackSelect.s deleted file mode 100644 index c3f453c5..00000000 --- a/asm/non_matchings/menu/renderTrackSelect.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/object_models/func_80060C58.s b/asm/non_matchings/object_models/func_80060C58.s deleted file mode 100644 index 2ebaccc0..00000000 --- a/asm/non_matchings/object_models/func_80060C58.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/thread0_epc/func_800B7460.s b/asm/non_matchings/thread0_epc/func_800B7460.s deleted file mode 100644 index cdebe248..00000000 --- a/asm/non_matchings/thread0_epc/func_800B7460.s +++ /dev/null @@ -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 - diff --git a/src/audio.c b/src/audio.c index cd847eaf..89e11e8f 100644 --- a/src/audio.c +++ b/src/audio.c @@ -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++; diff --git a/src/audio.h b/src/audio.h index 1d52db37..9a22a123 100644 --- a/src/audio.h +++ b/src/audio.h @@ -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); diff --git a/src/camera.h b/src/camera.h index e70681bb..ab7be72c 100644 --- a/src/camera.h +++ b/src/camera.h @@ -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); diff --git a/src/memory.c b/src/memory.c index 6965a05a..f21d1064 100644 --- a/src/memory.c +++ b/src/memory.c @@ -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; } diff --git a/src/menu.c b/src/menu.c index 5b01853e..6d78b1ed 100644 --- a/src/menu.c +++ b/src/menu.c @@ -133,7 +133,7 @@ u16 D_80126520[6]; Settings *gSavefileData[4]; u8 D_80126540[8]; s32 gMultiplayerSelectedNumberOfRacersCopy; // Saved version gMultiplayerSelectedNumberOfRacers? -TextureHeader *gMenuTextures[128]; // lookup table? TEXTURES +TextureHeader *gMenuTextures[128]; // lookup table? Contains Objects as well. Need to change name and type. u8 D_80126750[128]; // Seems to be a boolean for "This texture exists" for the above array. s32 D_801267D0; s32 D_801267D4; @@ -163,7 +163,7 @@ s16 gTitleDemoTimer; s32 gTitleRevealTimer; f32 gTitleAudioCounter; s8 *sTitleScreenDemoIds; //Misc Asset 66 - title_screen_demo_ids.bin - 12 or 13 values. -s32 D_80126878[24]; +unk80126878 D_80126878[8]; f32 D_801268D8; s32 D_801268DC; s32 D_801268E0; @@ -186,7 +186,7 @@ char *gMusicTestString; f32 gTrackSelectY; f32 D_801269E8; f32 D_801269EC; -s32 D_801269F0; +char *D_801269F0; s32 gSelectedTrackX; s32 gSelectedTrackY; s32 *D_801269FC; @@ -205,14 +205,14 @@ u8 sControllerPakNoFreeSpace[MAXCONTROLLERS]; //Flag to see if there's no free s u8 sControllerPakBadData[MAXCONTROLLERS]; //Flag to see if there's bad data for the given controller pak char *gMenuOptionText[8]; //Menu Text u8 sControllerPakDataPresent[MAXCONTROLLERS]; //Flag to see if there's data present for the given controller pak? Not sure -u8 *D_80126A64; +char *D_80126A64; s32 gMenuOption; //sCurrentControllerIndex? s32 D_80126A6C; s32 D_80126A70; s32 D_80126A74; s32 D_80126A78; s32 D_80126A7C; -s32 D_80126A80[4]; +unk80126A80 *D_80126A80[4]; s32 D_80126A90; s32 D_80126A94; s32 D_80126A98; @@ -419,8 +419,15 @@ unk800DF83C D_800DF83C[10] = { s32 D_800DF9F4 = 0; -u16 D_800DF9F8[12] = { - 0xFFFF, 0x00FF, 0xCC00, 0xFF00, 0xFF99, 0x00FF, 0xFFFF, 0x6600, 0x00FF, 0xFF33, 0x0000, 0x0F78 +MenuColour D_800DF9F8[4] = { + { 255, 255, 0, 255, 204 }, + { 0, 255, 0, 255, 153 }, + { 0, 255, 255, 255, 102 }, + { 0, 0, 255, 255, 51 } +}; + +UNUSED u8 D_800DFA10[4] = { + 0, 0, 15, 120 }; char *gOptionMenuStrings[7] = { @@ -449,9 +456,12 @@ s32 gMusicVolumeSliderValue = 256; // Value from 0 to 256 s32 D_800DFAC8 = 0; -// Unsure about typing here. -u16 D_800DFACC[8] = { - 0x4040, 0xFFFF, 0xFF40, 0x40FF, 0xFFD0, 0x40FF, 0x40FF, 0x40FF +// This is used for RGBA colors for the save options Controller Pak BG. +u32 D_800DFACC[MAXCONTROLLERS] = { + COLOUR_RGBA32(64, 64, 255, 255), // Blue for controller 1 + COLOUR_RGBA32(255, 64, 64, 255), // Red for controller 2 + COLOUR_RGBA32(255, 208, 64, 255), // Yellow for controller 3 + COLOUR_RGBA32(64, 255, 64, 255) // Green for controller 4 }; s32 D_800DFADC = 0; // Currently unknown, might be a different type. @@ -767,11 +777,13 @@ u16 D_800E06B0[10] = { 0x68, 0x21, 0xFB, 0x27, 0x8E, 0xF5, 0x27, 0x6C, 0xB0, 0xF5 }; +//Paired X / Y Offsets. X Is First, Y is Second. For NTSC. s16 D_800E06C4[8] = { 0x0000, 0xFFC2, 0x0055, 0x0000, 0x0000, 0x003E, 0xFFAB, 0x0000, }; +//Paired X / Y Offsets. X Is First, Y is Second. For PAL. s16 D_800E06D4[8] = { 0x0000, 0xFFB6, 0x0055, 0x0000, 0x0000, 0x004A, 0xFFAB, 0x0000, @@ -801,21 +813,62 @@ s16 D_800E0730[19] = { 0x0000, 0x0000, 0x0000 }; -s16 D_800E0758[54] = { - 0xFFFF, 0xFFFF, - 0x0129, 0x011A, 0x0120, 0x0115, - 0x0126, 0x011D, 0x0130, 0x0121, - 0x0117, 0x0154, 0x0128, 0x0119, - 0x012C, 0x0123, 0xFFFF, 0x0122, - 0x011C, 0x0116, 0x0127, 0xFFFF, - 0xFFFF, 0xFFFF, 0x012D, 0x012E, - 0x0153, 0x012B, 0x011B, 0x011F, - 0x0124, 0x011E, 0x0118, 0x0125, - 0x012F, 0x012A, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0x0000 +// ID for T.Ts voice lines for each track id. +// T.T. will say nothing for tracks with -1 +s16 gTTVoiceLines[53] = { + -1, + -1, + SOUND_VOICE_TT_DRAGON_FOREST, + SOUND_VOICE_TT_FOSSIL_CANYON, + SOUND_VOICE_TT_PIRATE_LAGOON, + SOUND_VOICE_TT_ANCIENT_LAKE, + SOUND_VOICE_TT_WALRUS_COVE, + SOUND_VOICE_TT_HOT_TOP_VOLCANO, + SOUND_VOICE_TT_WHALE_BAY, + SOUND_VOICE_TT_SNOWBALL_VALLEY, + SOUND_VOICE_TT_CRESCENT_ISLAND, + SOUND_VOICE_TT_FIRE_MOUNTAIN, + SOUND_VOICE_TT_DINO_DOMAIN, + SOUND_VOICE_TT_EVERFROST_PEAK, + SOUND_VOICE_TT_SHERBET_ISLAND, + SOUND_VOICE_TT_SPACEPORT_ALPHA, + -1, + SOUND_VOICE_TT_SPACEDUST_VALLEY, + SOUND_VOICE_TT_GREENWOOD_VILLAGE, + SOUND_VOICE_TT_BOULDER_CANYON, + SOUND_VOICE_TT_WINDMILL_PLAINS, + -1, + -1, + -1, + SOUND_VOICE_TT_SNOWFLAKE_MOUNTAIN, + SOUND_VOICE_TT_SMOKEY_CASTLE, + SOUND_VOICE_TT_DARKWATER_BEACH, + SOUND_VOICE_TT_ICICLE_PYRAMID, + SOUND_VOICE_TT_FROSTY_VILLAGE, + SOUND_VOICE_TT_JUNGLE_FALLS, + SOUND_VOICE_TT_TREASURE_CAVES, + SOUND_VOICE_TT_HAUNTED_WOODS, + SOUND_VOICE_TT_DARKMOON_CAVERNS, + SOUND_VOICE_TT_STAR_CITY, + SOUND_VOICE_TT_TROPHY_RACE, + SOUND_VOICE_TT_FUTURE_FUN_LAND, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1 }; s16 D_800E07C4[14] = { @@ -2440,7 +2493,7 @@ void func_800828B8(void) { for (i = 0; i < numLevels; i++) { settings->courseFlagsPtr[i] = RACE_UNATTEMPTED; - for (numWorlds = 0; numWorlds < 3; numWorlds++) { + for (numWorlds = 0; numWorlds < NUMBER_OF_SAVE_FILES; numWorlds++) { settings->courseFlagsPtr[i] |= gSavefileData[numWorlds]->courseFlagsPtr[i]; } } @@ -2449,7 +2502,7 @@ void func_800828B8(void) { settings->keys = 0; settings->bosses = 0; settings->cutsceneFlags = 0; - for (i = 0; i < 3; i++) { + for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { settings->trophies |= gSavefileData[i]->trophies; settings->keys |= gSavefileData[i]->keys; settings->bosses |= gSavefileData[i]->bosses; @@ -2576,7 +2629,89 @@ void init_title_screen_variables(void) { load_menu_text(get_language()); } +#ifdef NON_MATCHING +void func_80083098(f32 arg0) { + f32 temp; + f32 temp2; + s32 didUpdate; + s32 xPos; + s32 yPos; + s32 i; + unk800DF83C *introCharData; + char *text; + s32 j; + + didUpdate = FALSE; + xPos = 0; + yPos = 0; + text = NULL; + if (D_801268E0 < 10) { + introCharData = &D_800DF83C[D_801268E0]; + D_801268D8 += arg0; + set_text_font(ASSET_FONTS_BIGFONT); + set_text_background_colour(0, 0, 0, 0); + i = 0; + while (i < D_800DF9F4) { + // set_text_colour(D_800DF9F8[D_80126878[i].colourIndex].red, D_800DF9F8[D_80126878[i].colourIndex].green, D_800DF9F8[D_80126878[i].colourIndex].blue, D_800DF9F8[D_80126878[i].colourIndex].alpha, D_800DF9F8[D_80126878[i].colourIndex].opacity); + j = D_80126878[i].colourIndex; // This seems super fake, but I can't do any better. + set_text_colour(D_800DF9F8[j].red, D_800DF9F8[j].green, D_800DF9F8[j].blue, D_800DF9F8[j].alpha, D_800DF9F8[j].opacity); + draw_text(&sMenuCurrDisplayList, D_80126878[i].x, D_80126878[i].y, D_80126878[i].text, ALIGN_MIDDLE_CENTER); + D_80126878[i].colourIndex++; + if (D_80126878[i].colourIndex >= 4) { + j = i; + D_800DF9F4--; + while(j < D_800DF9F4) { + D_80126878[j].text = D_80126878[j+1].text; + D_80126878[j].x = D_80126878[j+1].x; + D_80126878[j].y = D_80126878[j+1].y; + D_80126878[j].colourIndex = D_80126878[j+1].colourIndex; + j++; + } + } else { + i++; + } + } + if (introCharData->unk4 <= D_801268D8) { + if (D_801268D8 < introCharData->unk8) { + temp = (D_801268D8 - introCharData->unk4); + temp2 = (introCharData->unk8 - introCharData->unk4); + xPos = (introCharData->unk14 + (((introCharData->unk1C - introCharData->unk14) * temp) / temp2)); + yPos = (introCharData->unk18 + (((introCharData->unk20 - introCharData->unk18) * temp) / temp2)); + text = introCharData->unk0; + didUpdate = TRUE; + } else if (D_801268D8 <= introCharData->unkC) { + xPos = introCharData->unk1C; + yPos = introCharData->unk20; + text = introCharData->unk0; + didUpdate = TRUE; + } else if (D_801268D8 < introCharData->unk10) { + temp = (D_801268D8 - introCharData->unkC); + temp2 = (introCharData->unk10 - introCharData->unkC); + xPos = (introCharData->unk1C + (((introCharData->unk24 - introCharData->unk1C) * temp) / temp2)); + yPos = (introCharData->unk20 + (((introCharData->unk28 - introCharData->unk20) * temp) / temp2)); + text = introCharData->unk0; + didUpdate = TRUE; + } else { + if (!D_800DF9F8){} // Fake + D_801268E0++; + } + } + if (didUpdate) { + if (D_800DF9F4 < 4) { + D_80126878[D_800DF9F4].colourIndex = 0; + D_80126878[D_800DF9F4].text = text; + D_80126878[D_800DF9F4].x = xPos; + D_80126878[D_800DF9F4].y = yPos; + D_800DF9F4++; + } + set_text_colour(255, 255, 255, 0, 255); + draw_text(&sMenuCurrDisplayList, xPos, yPos, text, ALIGN_MIDDLE_CENTER); + } + } +} +#else GLOBAL_ASM("asm/non_matchings/menu/func_80083098.s") +#endif /** * Initialise the title screen menu. @@ -3217,7 +3352,7 @@ void menu_save_options_init(void) { gMenuDelay = 0; gMenuOptionCount = 1; gOpacityDecayTimer = 0; - D_80126A64 = (u8 *) allocate_from_main_pool_safe(0x800, COLOUR_TAG_WHITE); + D_80126A64 = (char *) allocate_from_main_pool_safe(0x800, COLOUR_TAG_WHITE); D_80126A0C = (unk800861C8 *) allocate_from_main_pool_safe(0xA00, COLOUR_TAG_WHITE); D_80126A04 = &D_80126A0C[80]; D_80126A08 = 0; @@ -3241,7 +3376,161 @@ void menu_save_options_init(void) { transition_begin(&sMenuTransitionFadeOut); } -GLOBAL_ASM("asm/non_matchings/menu/func_800853D0.s") +void func_800853D0(unk800861C8 *arg0, s32 x, s32 y) { + s32 i; + s32 sp78; + s32 sp74; + s32 sp70; + s32 colour; + DrawTexture *drawTexture; + char *text2; + char *text; + char buffer[16]; + TextureHeader *texture; + s32 temp; + + sp70 = 11; + switch (arg0->unk0) { + case 1: + drawTexture = D_800DFC10; + texture = gMenuTextures[TEXTURE_SURFACE_BUTTON_WOOD]; + colour = COLOUR_RGBA32(176, 224, 192, 255); + if (!gSavefileData[arg0->controllerIndex]->newGame) { + decompress_filename_string(gSavefileData[arg0->controllerIndex]->filename, buffer, 3); + trim_filename_string(buffer, buffer); + text2 = buffer; + sp78 = *gSavefileData[arg0->controllerIndex]->balloonsPtr / 10; + sp74 = *gSavefileData[arg0->controllerIndex]->balloonsPtr - (sp78 * 10); + //Is Adventure Two? + if (gSavefileData[arg0->controllerIndex]->cutsceneFlags & 4) { + sp70 = 12; + } + } else { + text2 = gFilenames[arg0->controllerIndex]; + } + text = gMenuText[ASSET_MENU_TEXT_GAMEPAK]; + break; + case 2: + drawTexture = D_800DFC20; + texture = gMenuTextures[TEXTURE_SURFACE_BUTTON_WOOD]; + colour = COLOUR_RGBA32(176, 224, 192, 255); + text2 = gMenuText[ASSET_MENU_TEXT_TIMES]; + text = gMenuText[ASSET_MENU_TEXT_GAMEPAK]; + break; + case 3: + drawTexture = D_800DFC10; + texture = gMenuTextures[TEXTURE_UNK_44]; + colour = D_800DFACC[arg0->controllerIndex]; + text2 = buffer; + decompress_filename_string(arg0->compressedFilename, buffer, 3); + // char *D_800E1E10 = " (ADV."; + for (i = 0; D_800E1E10[i] != '\0'; i++) { + buffer[i+3] = D_800E1E10[i]; + } + buffer[i+3] = arg0->unk8[0]; + buffer[i+4] = ')'; + buffer[i+5] = '\0'; + text = gMenuText[86 + arg0->controllerIndex]; + sp78 = arg0->unk2 / 10; + sp74 = arg0->unk2 % 10; + if (arg0->unk3 != 0) { + sp70 = 12; + } + break; + case 4: + drawTexture = D_800DFC20; + texture = gMenuTextures[TEXTURE_UNK_44]; + colour = D_800DFACC[arg0->controllerIndex]; + text2 = arg0->unk8; + text = gMenuText[ASSET_MENU_TEXT_CONTPAK1 + arg0->controllerIndex]; + break; + case 5: + drawTexture = D_800DFC30; + texture = gMenuTextures[TEXTURE_UNK_44]; + colour = D_800DFACC[arg0->controllerIndex]; + text2 = gMenuText[ASSET_MENU_TEXT_GHOSTS]; + text = gMenuText[ASSET_MENU_TEXT_CONTPAK1 + arg0->controllerIndex]; + break; + case 6: + drawTexture = D_800DFC40; + texture = gMenuTextures[TEXTURE_UNK_44]; + colour = D_800DFACC[arg0->controllerIndex]; + text2 = arg0->unk8; + text = gMenuText[ASSET_MENU_TEXT_CONTPAK1 + arg0->controllerIndex]; + break; + case 8: + drawTexture = D_800DFC50; + texture = gMenuTextures[TEXTURE_UNK_44]; + colour = D_800DFACC[arg0->controllerIndex]; + text2 = gMenuText[ASSET_MENU_TEXT_EMPTYSLOT]; + text = gMenuText[ASSET_MENU_TEXT_CONTPAK1 + arg0->controllerIndex]; + break; + case 9: + drawTexture = D_800DFC30; + texture = gMenuTextures[TEXTURE_UNK_45]; + colour = -1; + text2 = gMenuText[ASSET_MENU_TEXT_VIEWGHOSTS]; + text = NULL; + break; + case 10: + drawTexture = D_800DFC10; + text2 = gMenuText[ASSET_MENU_TEXT_GAMEPAKBONUSES]; + texture = gMenuTextures[TEXTURE_SURFACE_BUTTON_WOOD]; + colour = COLOUR_RGBA32(176, 224, 192, 255); + text = gMenuText[ASSET_MENU_TEXT_GAMEPAK]; + break; + default: + drawTexture = D_800DFC60; + texture = gMenuTextures[TEXTURE_UNK_45]; + colour = COLOUR_RGBA32(128, 128, 128, 255); + text2 = gMenuText[ASSET_MENU_TEXT_ERASE]; + text = NULL; + break; + } + func_80080580(&sMenuCurrDisplayList, x - 160, 120 - y, 160, 64, 4, 4, colour, texture); + if (osTvType == TV_TYPE_PAL) { + y += 12; + } + if ((arg0->unk0 == 3) || ((arg0->unk0 == 1) && (gSavefileData[arg0->controllerIndex]->newGame == 0))) { + if (osTvType == TV_TYPE_PAL) { + i = 134; + } else { + i = 120; + } + func_80068508(1); + temp = (i - y); + gMenuImageStack[2].unk10 = temp - 49; + gMenuImageStack[sp70].unk10 = temp - 24; + sprite_opaque(0); + gMenuImageStack[2].unkC = x - 133; + gMenuImageStack[2].unk18 = sp78; + func_8009CA60(2); + gMenuImageStack[2].unkC = x - 125; + gMenuImageStack[2].unk18 = sp74; + func_8009CA60(2); + sprite_opaque(1); + gMenuImageStack[sp70].unkC = x - 128; + func_8009CA60(sp70); + func_80068508(0); + } + if (drawTexture != NULL) { + render_textured_rectangle(&sMenuCurrDisplayList, drawTexture, x + 60, y + 6, 255, 255, 255, 255); + } + if (text != NULL) { + set_text_font(0); + set_text_colour(0, 0, 0, 255, 128); + draw_text(&sMenuCurrDisplayList, x + 81, y + 1, text, ALIGN_MIDDLE_CENTER); + set_text_colour(255, 64, 255, 64, 255); + draw_text(&sMenuCurrDisplayList, x + 79, y - 1, text, ALIGN_MIDDLE_CENTER); + } + if (text2 != NULL) { + set_text_font(1); + set_text_colour(0, 0, 0, 255, 160); + draw_text(&sMenuCurrDisplayList, x + 80, y + 48, text2, ALIGN_TOP_CENTER); + set_text_colour(255, 255, 255, 255, 255); + draw_text(&sMenuCurrDisplayList, x + 79, y + 47, text2, ALIGN_TOP_CENTER); + } +} #ifdef NON_EQUIVALENT void func_80085B9C(UNUSED s32 updateRate) { @@ -3387,7 +3676,7 @@ s32 func_800860A8(s32 controllerIndex, s32 *arg1, unk800861C8 *arg2, s32 *arg3, void func_800861C8(unk800861C8 *arg0, s32 *arg1) { s32 i; - for (i = 0; i < 3; i++) { + for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { if (gSavefileData[i]->newGame) { arg0[*arg1].unk0 = 1; arg0[*arg1].unk1 = 0; @@ -3399,7 +3688,120 @@ void func_800861C8(unk800861C8 *arg0, s32 *arg1) { } } -GLOBAL_ASM("asm/non_matchings/menu/func_800862C4.s") +SIDeviceStatus func_800862C4(void) { + s32 numAttempts; + s32 i; + s32 fileIndex; + SIDeviceStatus result; + SIDeviceStatus temp; + char *fileNames[16]; + char *fileExts[16]; + u8 fileTypes[16]; + Settings *settings; + u32 fileSizes[16]; + char *temp_D_80126A64; + + settings = gSavefileData[3]; + D_80126A08 = 0; + D_80126BD4 = 0; + D_80126BDC = 0.0f; + for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { + if (!gSavefileData[i]->newGame) { + D_80126A0C[D_80126A08].unk0 = 1; + D_80126A0C[D_80126A08].unk1 = 1; + D_80126A0C[D_80126A08].unk2 = gSavefileData[i]->balloonsPtr[0]; + D_80126A0C[D_80126A08].controllerIndex = i; + D_80126A0C[D_80126A08].fileSize = get_game_data_file_size(); + D_80126A08++; + } + } + + D_80126A0C[D_80126A08].unk0 = 2; + D_80126A0C[D_80126A08].unk1 = 1; + D_80126A0C[D_80126A08++].fileSize = get_time_data_file_size(); + D_80126A0C[D_80126A08++].unk0 = 10; + temp_D_80126A64 = D_80126A64; + do { + numAttempts = 1; + if (D_80126A18 != 0) { + D_80126A14 = 0; + + do { + result = get_controller_pak_file_list(0, 16, fileNames, fileExts, fileSizes, fileTypes); + temp = result & 0xFF; //strip the controller index from the result to just get the SI Device Status + numAttempts++; + } while ((temp == CONTROLLER_PAK_CHANGED) && (numAttempts < 3)); + + if (result == CONTROLLER_PAK_GOOD) { + for (fileIndex = 0; fileIndex < 16; fileIndex++) { + if ((fileTypes[fileIndex] >= SAVE_FILE_TYPE_GAME_DATA) && (fileTypes[fileIndex] <= SAVE_FILE_TYPE_UNKNOWN)) { + (*sControllerPakNotesFree)--; + D_80126A0C[D_80126A08].unk0 = fileTypes[fileIndex]; + D_80126A0C[D_80126A08].controllerIndex = 0; + D_80126A0C[D_80126A08].unk7 = fileIndex; + D_80126A0C[D_80126A08].fileSize = fileSizes[fileIndex]; + if (fileTypes[fileIndex] == SAVE_FILE_TYPE_GAME_DATA) { + if (read_game_data_from_controller_pak(0, fileExts[fileIndex], settings) == CONTROLLER_PAK_GOOD) { + D_80126A0C[D_80126A08].unk8 = temp_D_80126A64; + temp_D_80126A64[0] = *fileExts[fileIndex]; + temp_D_80126A64[1] = 0; + temp_D_80126A64 += 2; + D_80126A0C[D_80126A08].unk2 = *settings->balloonsPtr; + D_80126A0C[D_80126A08].unk3 = (settings->cutsceneFlags & 4) != 0; // Is in Adventure Two? + D_80126A0C[D_80126A08].compressedFilename = settings->filename; + } else { + D_80126A08--; + } + } else { + temp = 0; + if ((fileTypes[fileIndex] == SAVE_FILE_TYPE_UNKNOWN) || (fileTypes[fileIndex] == SAVE_FILE_TYPE_TIME_DATA)) { + if (fileTypes[fileIndex] == SAVE_FILE_TYPE_TIME_DATA) { + temp = CONTROLLER_PAK_BAD_DATA; + } + D_80126A0C[D_80126A08].unk8 = temp_D_80126A64; + while (fileNames[fileIndex][temp] != '\0') { + *temp_D_80126A64 = fileNames[fileIndex][temp]; + temp++; + temp_D_80126A64++; + } + + if ((fileExts[fileIndex] != NULL) && (fileExts[fileIndex][0] != '\0')) { + *temp_D_80126A64 = '.'; + temp_D_80126A64++; + temp = 0; + while (fileExts[fileIndex][temp] != '\0') { + *temp_D_80126A64 = fileExts[fileIndex][temp]; + temp_D_80126A64++; + temp++; + } + } + *temp_D_80126A64 = 0; + temp_D_80126A64++; + } + } + D_80126A08++; + } + } + packDirectoryFree(); + } else if (temp == RUMBLE_PAK) { + D_80126A14 = 1; + if (D_80126A18 < 0) { + result = CONTROLLER_PAK_GOOD; + } + if (D_80126A6C != 0) { + D_80126A10 = 1; + D_80126A6C = 0; + } + } else if (temp == NO_CONTROLLER_PAK) { + result = CONTROLLER_PAK_GOOD; + } else if (D_80126A18 < 0 && temp == CONTROLLER_PAK_CHANGED) { + numAttempts = 0; + } + } + } + while (numAttempts == 0); + return result; +} s32 func_800867D4(void) { s32 ret = 0; @@ -3511,7 +3913,129 @@ s32 func_800876CC(s32 buttonsPressed, UNUSED s32 arg1) { return 0; } -GLOBAL_ASM("asm/non_matchings/menu/func_80087734.s") +s32 func_80087734(s32 buttonsPressed, s32 yAxis) { + UNUSED s32 pad[2]; + s32 sp1C; + s32 i; + s32 temp; + + temp = gOptionBlinkTimer * 8; + if (temp > 255) { + temp = 511 - temp; + } + sp1C = (gMenuOptionCount & 7); + for(i = 0; i < D_80126A74; i++) { + if (i == D_80126A78) { + D_80126A80[i]->unk13 = temp; + } else { + D_80126A80[i]->unk13 = 0; + } + } + if (buttonsPressed & B_BUTTON || (buttonsPressed & (START_BUTTON | A_BUTTON) && D_80126A74 == (D_80126A78 + 1U))) { + play_sound_global(SOUND_MENU_BACK3, NULL); + gMenuOptionCount &= ~8; + switch (sp1C) { + case 0: + if (!(buttonsPressed & (START_BUTTON | A_BUTTON))) { + gOpacityDecayTimer = 6; + gMenuOptionCount = 1; + } + break; + case 2: + switch (D_800DFADC) { + case 5: + gOpacityDecayTimer = 5; + gMenuOptionCount = 1; + break; + case 1: + case 2: + case 3: + case 9: + D_80126A18 = 0; + break; + case 7: + D_80126A18 = -1; + break; + default: + D_80126A18 = 1; + break; + } + break; + case 4: + switch (D_800DFADC) { + case 1: + case 5: + gOpacityDecayTimer = 5; + gMenuOptionCount = 1; + break; + case 2: + case 3: + case 9: + D_80126A1C = 0; + break; + case 7: + D_80126A1C = -1; + break; + default: + D_80126A1C = 1; + break; + } + break; + case 7: + switch (D_800DFADC) { + case 1: + case 2: + case 3: + case 5: + case 7: + gOpacityDecayTimer = 5; + gMenuOptionCount = 1; + break; + case 9: + case 10: + gMenuOptionCount = 4; + break; + } + break; + } + } else if (buttonsPressed & (START_BUTTON | A_BUTTON)) { + play_sound_global(SOUND_SELECT2, NULL); + gMenuOptionCount &= ~8; + switch (D_800DFADC) { + case CONTROLLER_PAK_WITH_BAD_ID: + reformat_controller_pak(D_800DFAE0); + if (sp1C == 4) { + D_80126A1C = 0; + } else if (sp1C == 7) { + D_80126A18 = 0; + } + break; + case CONTROLLER_PAK_INCONSISTENT: + case CONTROLLER_PAK_BAD_DATA: + repair_controller_pak(D_800DFAE0); + if (sp1C == 4) { + D_80126A1C = 1; + } else if (sp1C == 2) { + D_80126A18 = 1; + } + break; + case RUMBLE_PAK: + if (sp1C == 4) { + D_80126A1C = -1; + } else { + D_80126A18 = -1; + } + break; + } + } else if (yAxis < 0 && D_80126A78 < (D_80126A74 - 1)) { + play_sound_global(SOUND_MENU_PICK2, NULL); + D_80126A78++; + } else if (yAxis > 0 && D_80126A78 > 0) { + play_sound_global(SOUND_MENU_PICK2, NULL); + D_80126A78--; + } + return 0; +} s32 menu_save_options_loop(s32 updateRate) { s32 result; @@ -4173,7 +4697,7 @@ s32 menu_controller_pak_loop(s32 updateRate) { default: if (pressedButtons & (A_BUTTON | START_BUTTON)) { //Check if the selected menu item is a file or blank - if ((sCurrentControllerPakAllFileTypes[D_800DF460] >= 3) && (sCurrentControllerPakAllFileTypes[D_800DF460] <= 6)) { + if ((sCurrentControllerPakAllFileTypes[D_800DF460] >= SAVE_FILE_TYPE_GAME_DATA) && (sCurrentControllerPakAllFileTypes[D_800DF460] <= SAVE_FILE_TYPE_UNKNOWN)) { D_80126C10 = 0; gMenuOptionCount = 2; playSelectedSound = TRUE; @@ -5662,7 +6186,7 @@ void render_file_select_menu(UNUSED s32 updateRate) { func_8009BD5C(); set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); - for (i = 0; i < 3; i++) { // 3 files + for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { if (gSavefileInfo[i].isAdventure2 == gIsInAdventureTwo || gSavefileInfo[i].isStarted == 0) { color = COLOUR_RGBA32(176, 224, 192, 255); } else { @@ -5676,7 +6200,7 @@ void render_file_select_menu(UNUSED s32 updateRate) { set_text_font(ASSET_FONTS_BIGFONT); set_text_background_colour(0, 0, 0, 0); s5 = 10; - for (i = 0; i < 3; i++) { + for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { if (gSavefileInfo[i].isStarted != 0) { s2 = 0xB; sprite_opaque(FALSE); @@ -5709,7 +6233,7 @@ void render_file_select_menu(UNUSED s32 updateRate) { set_text_font(ASSET_FONTS_FUNFONT); set_text_background_colour(0, 0, 0, 0); set_text_colour(255, 255, 255, 0, 255); - for (i = 0; i < 3; i++) { + for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { s2 = FALSE; if (D_80126484 != FALSE) { if (D_80126494 == 0 && i == gSaveFileIndex3) { @@ -6046,7 +6570,7 @@ s32 menu_file_select_loop(s32 updateRate) { gOpacityDecayTimer++; if (gOpacityDecayTimer >= 3) { - for (i = 0; i < 3; i++) { + for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { gSavefileInfo[i].isAdventure2 = 0; if (gSavefileData[i]->newGame) { gSavefileInfo[i].isStarted = 0; @@ -6571,7 +7095,96 @@ void func_8008F534(void) { //https://decomp.me/scratch/ubeU1 GLOBAL_ASM("asm/non_matchings/menu/func_8008F618.s") -GLOBAL_ASM("asm/non_matchings/menu/renderTrackSelect.s") + +void render_track_select(s32 x, s32 y, char *hubName, char *trackName, s32 rectOpacity, s32 imageId, s32 copyViewPort, DrawTexture *arg7, s32 arg8) { + s32 xTemp; + s32 yTemp; + s32 opacity; + s32 i; + s32 sp6C; + s32 x1; + s32 y1; + s32 x2; + s32 y2; + f32 sp58; + f32 sp54; + s16 *offsets; + s32 temp; + + sp6C = 0; + xTemp = x + 160; + yTemp = gTrackSelectViewPortHalfY - y; + if (osTvType == TV_TYPE_PAL) { + sp6C = 12; + } + set_text_font(ASSET_FONTS_BIGFONT); + set_text_background_colour(0, 0, 0, 0); + if (gMenuDelay > 0) { + opacity = 255 - (gMenuDelay * 16); + if (opacity < 0) { + opacity = 0; + } + } else { + opacity = 255; + } + if (hubName != D_801269F0) { + temp = get_level_name(get_hub_area_id(3)); + if ((s32) hubName == temp) { + set_kerning(TRUE); + } + set_text_colour(0, 0, 0, 255, opacity / 2); + draw_text(&sMenuCurrDisplayList, 161, (yTemp - sp6C) - 85, hubName, ALIGN_MIDDLE_CENTER); + set_text_colour(255, 255, 255, 0, opacity); + draw_text(&sMenuCurrDisplayList, 160, (yTemp - sp6C) - 88, hubName, ALIGN_MIDDLE_CENTER); + D_801269F0 = hubName; + set_kerning(0); + } + set_text_colour(255, 255, 255, 0, opacity); + draw_text(&sMenuCurrDisplayList, xTemp, sp6C + yTemp + 88, trackName, ALIGN_MIDDLE_CENTER); + if (rectOpacity > 0) { + if (((yTemp - (gTrackSelectViewportY >> 2)) < gTrackSelectViewportY) && (((gTrackSelectViewportY >> 2) + yTemp) > 0)) { + sp58 = 1.25f; + sp54 = 1.25f; + if (osTvType == TV_TYPE_PAL) { + sp54 *= 1.1; + } + temp = xTemp - 80; + if (copyViewPort) { + copy_viewport_frame_size_to_coords(0, &x1, &y1, &x2, &y2); + temp = x1; + sp58 = (x2 - temp) * (1.0f / 128.0f); + sp54 = (y2 - y1) / 96.0f; + } else { + x2 = xTemp + 80; + } + x1 = temp; + if (temp < SCREEN_WIDTH && xTemp > 0) { + render_texture_rectangle_scaled(&sMenuCurrDisplayList, arg7, xTemp, yTemp, sp58, sp54, (rectOpacity & 0xFF) | ~0xFF, 0x1000); + } + if (xTemp < SCREEN_WIDTH && x2 > 0) { + render_texture_rectangle_scaled(&sMenuCurrDisplayList, arg7, xTemp, yTemp, sp58, sp54, (rectOpacity & 0xFF) | ~0xFF, 0); + } + reset_render_settings(&sMenuCurrDisplayList); + } + } + gMenuImageStack[imageId].unkC = x; + gMenuImageStack[imageId].unk10 = y; + if (osTvType == TV_TYPE_PAL) { + D_800DF454 = 1.2f; + offsets = D_800E06D4; + } else { + offsets = D_800E06C4; + } + func_8009CA60(imageId); + D_800DF454 = 1.0f; + for(i = 0; i < 4; i++) { + if ((1 << i) & arg8) { + render_textured_rectangle(&sMenuCurrDisplayList, gMenuSelectionArrows[i], offsets[(i << 1)] + xTemp + 1, offsets[(i << 1) + 1] + yTemp + 1, 0, 0, 0, 128); + render_textured_rectangle(&sMenuCurrDisplayList, gMenuSelectionArrows[i], offsets[(i << 1)] + xTemp - 1, offsets[(i << 1) + 1] + yTemp - 1, 255, 255, 255, 255); + } + } + reset_render_settings(&sMenuCurrDisplayList); +} #ifdef NON_EQUIVALENT void func_8008FF1C(s32 updateRate) { @@ -6677,7 +7290,7 @@ void func_8008FF1C(s32 updateRate) { for (yOffset = 0; yOffset < ARRAY_COUNT(gTrackSelectRenderDetails); yOffset++) { if (gTrackSelectRenderDetails[yOffset].visible != 0) { - renderTrackSelect( + render_track_select( gTrackSelectRenderDetails[yOffset].xOff, gTrackSelectRenderDetails[yOffset].yOff, gTrackSelectRenderDetails[yOffset].hubName, @@ -7160,7 +7773,7 @@ void menu_adventure_track_init(void) { Settings *settings; s32 result; s32 mapId; - s16 temp; + s16 ttVoiceLine; settings = get_settings(); gTrackIdForPreview = ASSET_LEVEL_CENTRALAREAHUB; @@ -7170,17 +7783,17 @@ void menu_adventure_track_init(void) { gPlayerSelectVehicle[PLAYER_ONE] = get_map_default_vehicle(mapId); result = get_map_race_type(mapId); if ((result == 5) || (result == 8) || (!(result & 0x40) && (!(settings->courseFlagsPtr[mapId] & RACE_CLEARED)))) { - temp = D_800E0758[mapId]; - if (temp != -1) { - func_80000FDC(temp, 0, 1.0f); + ttVoiceLine = gTTVoiceLines[mapId]; + if (ttVoiceLine != -1) { + func_80000FDC(ttVoiceLine, 0, 1.0f); } gMenuOptionCount = -1; } else { - temp = D_800E0758[mapId]; - if (temp != -1) { - func_80000FDC(temp, 0, 0.5f); + ttVoiceLine = gTTVoiceLines[mapId]; + if (ttVoiceLine != -1) { + func_80000FDC(ttVoiceLine, 0, 0.5f); } - set_music_player_voice_limit(0x18); + set_music_player_voice_limit(24); play_music(SEQUENCE_MAIN_MENU); func_80000B18(); gMenuOptionCount = 0; @@ -7205,7 +7818,7 @@ void menu_adventure_track_init(void) { } assign_dialogue_box_id(7); if (get_map_race_type(mapId) & 0x40) { - set_current_text(get_map_world_id(mapId) + 0x3B); + set_current_text(get_map_world_id(mapId) + 59); } } @@ -7667,8 +8280,8 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { return 1; } if ((gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_RESTARTRACE]) || (gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_RESTARTCHALLENGE])) { - if ((gIsInTracksMode == 0) && (D_800E0758[get_ingame_map_id()] != -1)) { - func_80000FDC(D_800E0758[get_ingame_map_id()], 0, 1.0f); + if ((gIsInTracksMode == 0) && (gTTVoiceLines[get_ingame_map_id()] != -1)) { + func_80000FDC(gTTVoiceLines[get_ingame_map_id()], 0, 1.0f); } return 2; } @@ -8525,7 +9138,7 @@ void draw_trophy_race_text(UNUSED s32 updateRate) { s32 menu_trophy_race_round_loop(s32 updateRate) { s8 *trackMenuIds; - s16 temp_a2; + s16 ttVoiceLine; s32 temp; trackMenuIds = (s8 *)get_misc_asset(ASSET_MISC_TRACKS_MENU_IDS); //tracks_menu_ids @@ -8534,9 +9147,9 @@ s32 menu_trophy_race_round_loop(s32 updateRate) { if (gTrackNameVoiceDelay <= 0) { //This is mostly likely supposed to be a multi dimensional array temp = trackMenuIds[(((gTrophyRaceWorldId - 1) * 6) + gTrophyRaceRound)]; - temp_a2 = D_800E0758[temp]; - if (temp_a2 != -1) { - play_sound_global(temp_a2, NULL); + ttVoiceLine = gTTVoiceLines[temp]; + if (ttVoiceLine != -1) { + play_sound_global(ttVoiceLine, NULL); } gTrackNameVoiceDelay = 0; } @@ -9616,8 +10229,44 @@ void func_8009C674(s16 *textureIndex) { } } -// Educated guess says this is a function that renders texture tiles on screen. -GLOBAL_ASM("asm/non_matchings/menu/func_8009C6D4.s") +void func_8009C6D4(s32 arg0) { + s32 i; + LevelObjectEntryCommon entry; + + if (*gAssetsMenuElementIds == NULL) { + *gAssetsMenuElementIds = (s16 *) load_asset_section_from_rom(ASSET_MENU_ELEMENT_IDS); + for(D_800DF754 = 0; (*gAssetsMenuElementIds)[D_800DF754] != -1; D_800DF754++){} + D_800DF758 = 0; + for(i = 0; i < D_800DF754; i++) { + D_80126750[i] = FALSE; + } + } + if (!D_80126750[arg0]) { + i = (*gAssetsMenuElementIds)[arg0]; + + if (((!arg0) && (!arg0)) && (!arg0)){} // Fakematch + + if ((i & 0xC000) == 0xC000) { + gMenuTextures[arg0] = load_texture(i & 0x3FFF); + } else if (i & 0x8000) { + gMenuTextures[arg0] = func_8007C12C(i & 0x3FFF, 0); + } else if (i & 0x4000) { + if (D_800DF754){} // Fakematch + entry.objectID = i & 0xFFFF; + entry.size = 8; + entry.x = 0; + entry.y = 0; + entry.z = 0; + gMenuTextures[arg0] = spawn_object(&entry, 0); + } else { + gMenuTextures[arg0] = func_8005F99C(i & 0x3FFF, 0); + } + + D_80126750[arg0] = TRUE; + D_800DF758++; + } +} + void allocate_menu_images(s16 *imageSet) { s32 index = 0; diff --git a/src/menu.h b/src/menu.h index 6f9ce964..fa3539d0 100644 --- a/src/menu.h +++ b/src/menu.h @@ -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); diff --git a/src/save_data.c b/src/save_data.c index 6dd301f2..e7476b78 100644 --- a/src/save_data.c +++ b/src/save_data.c @@ -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; } } diff --git a/src/save_data.h b/src/save_data.h index 00671357..338b788a 100644 --- a/src/save_data.h +++ b/src/save_data.h @@ -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); diff --git a/src/thread0_epc.c b/src/thread0_epc.c index 90ee774b..8b3e7dc5 100644 --- a/src/thread0_epc.c +++ b/src/thread0_epc.c @@ -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"}; diff --git a/src/thread0_epc.h b/src/thread0_epc.h index 263557db..57ea56b2 100644 --- a/src/thread0_epc.h +++ b/src/thread0_epc.h @@ -84,16 +84,15 @@ enum ObjectStackTraceID { OBJECT_DRAW }; -void func_800B70D0(void); -void func_800B7144(void); +void enable_interupts_on_main(void); +void stop_all_threads_except_main(void); void update_object_stack_trace(s32 arg0, s32 arg1); s32 get_lockup_status(void); void lockup_screen_loop(s32 arg0); void thread0_create(void); -void func_800B71B0(void); - -void thread0_Main(UNUSED void *unused); // Non Matching -void func_800B7460(s32 *epc, s32 size, u32 mask); // Non Matching -void render_epc_lock_up_display(void); // Non Matching +void write_epc_data_to_cpak(void); +void dump_memory_to_cpak(s32 epc, s32 size, u32 colourTag); +void thread0_Main(UNUSED void *unused); +void render_epc_lock_up_display(void); #endif