From 88d0931f7a29521930393eb02502f30a9a1960a7 Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Tue, 11 Mar 2025 11:14:49 -0400 Subject: [PATCH] Match func_80080580 (#477) * Match func_80080580 * Update score * Remove dialogue_tt_gamestatus file * Match func_80084854 * Update score * Update func_80094D28 to a closer match --- README.md | 52 ++-- asm/non_matchings/menu/func_80080580.s | 416 ------------------------- asm/non_matchings/menu/func_80084854.s | 280 ----------------- asm/non_matchings/menu/func_8009E3D0.s | 284 ----------------- src/menu.c | 410 ++++++++++++++---------- src/menu.h | 25 +- 6 files changed, 279 insertions(+), 1188 deletions(-) delete mode 100644 asm/non_matchings/menu/func_80080580.s delete mode 100644 asm/non_matchings/menu/func_80084854.s delete mode 100644 asm/non_matchings/menu/func_8009E3D0.s diff --git a/README.md b/README.md index 0ca5b7b6..062761ba 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the Currently, only the US 1.0 version (SHA1 = 0cb115d8716dbbc2922fda38e533b9fe63bb9670) of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time. -As of March 8, 2025, this is our current score: +As of March 11, 2025, this is our current score: -    Decomp progress: 74.23% +    Decomp progress: 74.53%     Documentation progress: 49.99% @@ -126,31 +126,31 @@ s32 is_drumstick_unlocked(void) { ``` -As of March 9, 2025, this is our current score: +As of March 11, 2025, this is our current score: ``` - ========================================================== - ADVENTURE ONE (ASM -> C Decompilation) - --------- 74.23% Complete (76.72% NON_MATCHING) ---------- - # Decompiled functions: 1822 - # GLOBAL_ASM remaining: 119 - # NON_MATCHING functions: 14 - # NON_EQUIVALENT WIP functions: 41 - ---------------------- Game Status ----------------------- - Balloons: 35/47, Keys: 4/4, Trophies: 3/5 - T.T. Amulets: 3/4, Wizpig Amulets: 3/4 - ---------------------------------------------------------- - We are collecting bananas in Smokey Castle. (9/10 Bananas) - ========================================================== - ADVENTURE TWO (Cleanup & Documentation) - -------------------- 49.99% Complete --------------------- - # Documented functions: 1091 - # Undocumented remaining: 556 - ---------------------- Game Status ----------------------- - Balloons: 24/47, Keys: 3/4, Trophies: 2/5 - T.T. Amulets: 2/4, Wizpig Amulets: 2/4 - ---------------------------------------------------------- - We are racing in Pirate Lagoon. (Lap 3/3) - ========================================================== + ===================================================================== + ADVENTURE ONE (ASM -> C Decompilation) + --------------- 74.53% Complete (77.02% NON_MATCHING) --------------- + # Decompiled functions: 1824 + # GLOBAL_ASM remaining: 117 + # NON_MATCHING functions: 14 + # NON_EQUIVALENT WIP functions: 40 + ---------------------------- Game Status ---------------------------- + Balloons: 35/47, Keys: 4/4, Trophies: 3/5 + T.T. Amulets: 4/4, Wizpig Amulets: 3/4 + --------------------------------------------------------------------- + We are collecting silver coins in Windmill Plains. (1/8 silver coins) + ===================================================================== + ADVENTURE TWO (Cleanup & Documentation) + -------------------------- 49.99% Complete -------------------------- + # Documented functions: 1091 + # Undocumented remaining: 556 + ---------------------------- Game Status ---------------------------- + Balloons: 24/47, Keys: 3/4, Trophies: 2/5 + T.T. Amulets: 2/4, Wizpig Amulets: 2/4 + --------------------------------------------------------------------- + We are racing in Pirate Lagoon. (Lap 3/3) + ===================================================================== ``` diff --git a/asm/non_matchings/menu/func_80080580.s b/asm/non_matchings/menu/func_80080580.s deleted file mode 100644 index 1f909cb4..00000000 --- a/asm/non_matchings/menu/func_80080580.s +++ /dev/null @@ -1,416 +0,0 @@ -glabel func_80080580 -/* 081180 80080580 27BDFF40 */ addiu $sp, $sp, -0xc0 -/* 081184 80080584 AFBE0038 */ sw $fp, 0x38($sp) -/* 081188 80080588 3C1E800E */ lui $fp, %hi(gWoodPanelCount) # $fp, 0x800e -/* 08118C 8008058C 27DE1DB8 */ addiu $fp, %lo(gWoodPanelCount) # addiu $fp, $fp, 0x1db8 -/* 081190 80080590 8FCF0000 */ lw $t7, ($fp) -/* 081194 80080594 3C0E8012 */ lui $t6, %hi(gMenuGeometry) # $t6, 0x8012 -/* 081198 80080598 000FC140 */ sll $t8, $t7, 5 -/* 08119C 8008059C 8DCE6C2C */ lw $t6, %lo(gMenuGeometry)($t6) -/* 0811A0 800805A0 3C0F800E */ lui $t7, %hi(gMenuTrisFlip) # $t7, 0x800e -/* 0811A4 800805A4 8DEF1DB4 */ lw $t7, %lo(gMenuTrisFlip)($t7) -/* 0811A8 800805A8 AFB30024 */ sw $s3, 0x24($sp) -/* 0811AC 800805AC 01D8C821 */ addu $t9, $t6, $t8 -/* 0811B0 800805B0 8FB300E0 */ lw $s3, 0xe0($sp) -/* 0811B4 800805B4 000F7080 */ sll $t6, $t7, 2 -/* 0811B8 800805B8 AFBF003C */ sw $ra, 0x3c($sp) -/* 0811BC 800805BC AFB70034 */ sw $s7, 0x34($sp) -/* 0811C0 800805C0 AFB60030 */ sw $s6, 0x30($sp) -/* 0811C4 800805C4 AFB5002C */ sw $s5, 0x2c($sp) -/* 0811C8 800805C8 AFB40028 */ sw $s4, 0x28($sp) -/* 0811CC 800805CC AFB20020 */ sw $s2, 0x20($sp) -/* 0811D0 800805D0 AFB1001C */ sw $s1, 0x1c($sp) -/* 0811D4 800805D4 AFB00018 */ sw $s0, 0x18($sp) -/* 0811D8 800805D8 032EC021 */ addu $t8, $t9, $t6 -/* 0811DC 800805DC 00E08025 */ move $s0, $a3 -/* 0811E0 800805E0 00A08825 */ move $s1, $a1 -/* 0811E4 800805E4 00C09025 */ move $s2, $a2 -/* 0811E8 800805E8 0080B825 */ move $s7, $a0 -/* 0811EC 800805EC 12600086 */ beqz $s3, .L80080808 -/* 0811F0 800805F0 AF130010 */ sw $s3, 0x10($t8) -/* 0811F4 800805F4 3C05800E */ lui $a1, %hi(gWoodPanelTexScaleU) # $a1, 0x800e -/* 0811F8 800805F8 8FAB00D4 */ lw $t3, 0xd4($sp) -/* 0811FC 800805FC 8CA51DC0 */ lw $a1, %lo(gWoodPanelTexScaleU)($a1) -/* 081200 80080600 00EBC823 */ subu $t9, $a3, $t3 -/* 081204 80080604 00AB0019 */ multu $a1, $t3 -/* 081208 80080608 3C06800E */ lui $a2, %hi(gWoodPanelTexScaleV) # $a2, 0x800e -/* 08120C 8008060C 8FAC00D8 */ lw $t4, 0xd8($sp) -/* 081210 80080610 8CC61DC4 */ lw $a2, %lo(gWoodPanelTexScaleV)($a2) -/* 081214 80080614 8FAD00D0 */ lw $t5, 0xd0($sp) -/* 081218 80080618 AFA000B0 */ sw $zero, 0xb0($sp) -/* 08121C 8008061C AFA000A0 */ sw $zero, 0xa0($sp) -/* 081220 80080620 3C02800E */ lui $v0, %hi(gWoodPanelTexCoords) # $v0, 0x800e -/* 081224 80080624 24421CF0 */ addiu $v0, %lo(gWoodPanelTexCoords) # addiu $v0, $v0, 0x1cf0 -/* 081228 80080628 0000F825 */ move $ra, $zero -/* 08122C 8008062C 27A400B0 */ addiu $a0, $sp, 0xb0 -/* 081230 80080630 00007812 */ mflo $t7 -/* 081234 80080634 AFAF00B4 */ sw $t7, 0xb4($sp) -/* 081238 80080638 00000000 */ nop -/* 08123C 8008063C 03250019 */ multu $t9, $a1 -/* 081240 80080640 01ACC823 */ subu $t9, $t5, $t4 -/* 081244 80080644 00007012 */ mflo $t6 -/* 081248 80080648 AFAE00B8 */ sw $t6, 0xb8($sp) -/* 08124C 8008064C 00000000 */ nop -/* 081250 80080650 00A70019 */ multu $a1, $a3 -/* 081254 80080654 27A500A0 */ addiu $a1, $sp, 0xa0 -/* 081258 80080658 0000C012 */ mflo $t8 -/* 08125C 8008065C AFB800BC */ sw $t8, 0xbc($sp) -/* 081260 80080660 00000000 */ nop -/* 081264 80080664 00CC0019 */ multu $a2, $t4 -/* 081268 80080668 00007812 */ mflo $t7 -/* 08126C 8008066C AFAF00A4 */ sw $t7, 0xa4($sp) -/* 081270 80080670 3C0F8012 */ lui $t7, %hi(gMenuGeometry) # $t7, 0x8012 -/* 081274 80080674 03260019 */ multu $t9, $a2 -/* 081278 80080678 8FD90000 */ lw $t9, ($fp) -/* 08127C 8008067C 8DEF6C2C */ lw $t7, %lo(gMenuGeometry)($t7) -/* 081280 80080680 00007012 */ mflo $t6 -/* 081284 80080684 AFAE00A8 */ sw $t6, 0xa8($sp) -/* 081288 80080688 00197140 */ sll $t6, $t9, 5 -/* 08128C 8008068C 00CD0019 */ multu $a2, $t5 -/* 081290 80080690 3C19800E */ lui $t9, %hi(gMenuTrisFlip) # $t9, 0x800e -/* 081294 80080694 8F391DB4 */ lw $t9, %lo(gMenuTrisFlip)($t9) -/* 081298 80080698 2406000A */ li $a2, 10 -/* 08129C 8008069C 0000C012 */ mflo $t8 -/* 0812A0 800806A0 AFB800AC */ sw $t8, 0xac($sp) -/* 0812A4 800806A4 01EEC021 */ addu $t8, $t7, $t6 -/* 0812A8 800806A8 00197880 */ sll $t7, $t9, 2 -/* 0812AC 800806AC 030F7021 */ addu $t6, $t8, $t7 -/* 0812B0 800806B0 8DC30008 */ lw $v1, 8($t6) -/* 0812B4 800806B4 00000000 */ nop -.L800806B8: -/* 0812B8 800806B8 90590000 */ lbu $t9, ($v0) -/* 0812BC 800806BC 27FF0002 */ addiu $ra, $ra, 2 -/* 0812C0 800806C0 0019C080 */ sll $t8, $t9, 2 -/* 0812C4 800806C4 00987821 */ addu $t7, $a0, $t8 -/* 0812C8 800806C8 8DEE0000 */ lw $t6, ($t7) -/* 0812CC 800806CC 2442000C */ addiu $v0, $v0, 0xc -/* 0812D0 800806D0 A46E0004 */ sh $t6, 4($v1) -/* 0812D4 800806D4 9059FFF5 */ lbu $t9, -0xb($v0) -/* 0812D8 800806D8 24630020 */ addiu $v1, $v1, 0x20 -/* 0812DC 800806DC 0019C080 */ sll $t8, $t9, 2 -/* 0812E0 800806E0 00B87821 */ addu $t7, $a1, $t8 -/* 0812E4 800806E4 8DEE0000 */ lw $t6, ($t7) -/* 0812E8 800806E8 00000000 */ nop -/* 0812EC 800806EC A46EFFE6 */ sh $t6, -0x1a($v1) -/* 0812F0 800806F0 9059FFF6 */ lbu $t9, -0xa($v0) -/* 0812F4 800806F4 00000000 */ nop -/* 0812F8 800806F8 0019C080 */ sll $t8, $t9, 2 -/* 0812FC 800806FC 00987821 */ addu $t7, $a0, $t8 -/* 081300 80080700 8DEE0000 */ lw $t6, ($t7) -/* 081304 80080704 00000000 */ nop -/* 081308 80080708 A46EFFE8 */ sh $t6, -0x18($v1) -/* 08130C 8008070C 9059FFF7 */ lbu $t9, -9($v0) -/* 081310 80080710 00000000 */ nop -/* 081314 80080714 0019C080 */ sll $t8, $t9, 2 -/* 081318 80080718 00B87821 */ addu $t7, $a1, $t8 -/* 08131C 8008071C 8DEE0000 */ lw $t6, ($t7) -/* 081320 80080720 00000000 */ nop -/* 081324 80080724 A46EFFEA */ sh $t6, -0x16($v1) -/* 081328 80080728 9059FFF8 */ lbu $t9, -8($v0) -/* 08132C 8008072C 00000000 */ nop -/* 081330 80080730 0019C080 */ sll $t8, $t9, 2 -/* 081334 80080734 00987821 */ addu $t7, $a0, $t8 -/* 081338 80080738 8DEE0000 */ lw $t6, ($t7) -/* 08133C 8008073C 00000000 */ nop -/* 081340 80080740 A46EFFEC */ sh $t6, -0x14($v1) -/* 081344 80080744 9059FFF9 */ lbu $t9, -7($v0) -/* 081348 80080748 00000000 */ nop -/* 08134C 8008074C 0019C080 */ sll $t8, $t9, 2 -/* 081350 80080750 00B87821 */ addu $t7, $a1, $t8 -/* 081354 80080754 8DEE0000 */ lw $t6, ($t7) -/* 081358 80080758 00000000 */ nop -/* 08135C 8008075C A46EFFEE */ sh $t6, -0x12($v1) -/* 081360 80080760 9059FFFA */ lbu $t9, -6($v0) -/* 081364 80080764 00000000 */ nop -/* 081368 80080768 0019C080 */ sll $t8, $t9, 2 -/* 08136C 8008076C 00987821 */ addu $t7, $a0, $t8 -/* 081370 80080770 8DEE0000 */ lw $t6, ($t7) -/* 081374 80080774 00000000 */ nop -/* 081378 80080778 A46EFFF4 */ sh $t6, -0xc($v1) -/* 08137C 8008077C 9059FFFB */ lbu $t9, -5($v0) -/* 081380 80080780 00000000 */ nop -/* 081384 80080784 0019C080 */ sll $t8, $t9, 2 -/* 081388 80080788 00B87821 */ addu $t7, $a1, $t8 -/* 08138C 8008078C 8DEE0000 */ lw $t6, ($t7) -/* 081390 80080790 00000000 */ nop -/* 081394 80080794 A46EFFF6 */ sh $t6, -0xa($v1) -/* 081398 80080798 9059FFFC */ lbu $t9, -4($v0) -/* 08139C 8008079C 00000000 */ nop -/* 0813A0 800807A0 0019C080 */ sll $t8, $t9, 2 -/* 0813A4 800807A4 00987821 */ addu $t7, $a0, $t8 -/* 0813A8 800807A8 8DEE0000 */ lw $t6, ($t7) -/* 0813AC 800807AC 00000000 */ nop -/* 0813B0 800807B0 A46EFFF8 */ sh $t6, -8($v1) -/* 0813B4 800807B4 9059FFFD */ lbu $t9, -3($v0) -/* 0813B8 800807B8 00000000 */ nop -/* 0813BC 800807BC 0019C080 */ sll $t8, $t9, 2 -/* 0813C0 800807C0 00B87821 */ addu $t7, $a1, $t8 -/* 0813C4 800807C4 8DEE0000 */ lw $t6, ($t7) -/* 0813C8 800807C8 00000000 */ nop -/* 0813CC 800807CC A46EFFFA */ sh $t6, -6($v1) -/* 0813D0 800807D0 9059FFFE */ lbu $t9, -2($v0) -/* 0813D4 800807D4 00000000 */ nop -/* 0813D8 800807D8 0019C080 */ sll $t8, $t9, 2 -/* 0813DC 800807DC 00987821 */ addu $t7, $a0, $t8 -/* 0813E0 800807E0 8DEE0000 */ lw $t6, ($t7) -/* 0813E4 800807E4 00000000 */ nop -/* 0813E8 800807E8 A46EFFFC */ sh $t6, -4($v1) -/* 0813EC 800807EC 9059FFFF */ lbu $t9, -1($v0) -/* 0813F0 800807F0 00000000 */ nop -/* 0813F4 800807F4 0019C080 */ sll $t8, $t9, 2 -/* 0813F8 800807F8 00B87821 */ addu $t7, $a1, $t8 -/* 0813FC 800807FC 8DEE0000 */ lw $t6, ($t7) -/* 081400 80080800 17E6FFAD */ bne $ra, $a2, .L800806B8 -/* 081404 80080804 A46EFFFE */ sh $t6, -2($v1) -.L80080808: -/* 081408 80080808 8FA400DC */ lw $a0, 0xdc($sp) -/* 08140C 8008080C 3C0E8012 */ lui $t6, %hi(gMenuGeometry) # $t6, 0x8012 -/* 081410 80080810 00049E03 */ sra $s3, $a0, 0x18 -/* 081414 80080814 327900FF */ andi $t9, $s3, 0xff -/* 081418 80080818 03209825 */ move $s3, $t9 -/* 08141C 8008081C 0004A403 */ sra $s4, $a0, 0x10 -/* 081420 80080820 8FD90000 */ lw $t9, ($fp) -/* 081424 80080824 329800FF */ andi $t8, $s4, 0xff -/* 081428 80080828 0300A025 */ move $s4, $t8 -/* 08142C 8008082C 0004AA03 */ sra $s5, $a0, 8 -/* 081430 80080830 0019C140 */ sll $t8, $t9, 5 -/* 081434 80080834 8DCE6C2C */ lw $t6, %lo(gMenuGeometry)($t6) -/* 081438 80080838 32AF00FF */ andi $t7, $s5, 0xff -/* 08143C 8008083C 3C19800E */ lui $t9, %hi(gMenuTrisFlip) # $t9, 0x800e -/* 081440 80080840 8F391DB4 */ lw $t9, %lo(gMenuTrisFlip)($t9) -/* 081444 80080844 01E0A825 */ move $s5, $t7 -/* 081448 80080848 01D87821 */ addu $t7, $t6, $t8 -/* 08144C 8008084C 00197080 */ sll $t6, $t9, 2 -/* 081450 80080850 01EEC021 */ addu $t8, $t7, $t6 -/* 081454 80080854 3C0A800E */ lui $t2, %hi(gWoodPanelVertColours) # $t2, 0x800e -/* 081458 80080858 3C03800E */ lui $v1, %hi(gWoodPanelVertCoords) # $v1, 0x800e -/* 08145C 8008085C 8FAB00D4 */ lw $t3, 0xd4($sp) -/* 081460 80080860 8FAC00D8 */ lw $t4, 0xd8($sp) -/* 081464 80080864 8FAD00D0 */ lw $t5, 0xd0($sp) -/* 081468 80080868 8F020000 */ lw $v0, ($t8) -/* 08146C 8008086C 24631D2C */ addiu $v1, %lo(gWoodPanelVertCoords) # addiu $v1, $v1, 0x1d2c -/* 081470 80080870 254A1D7C */ addiu $t2, %lo(gWoodPanelVertColours) # addiu $t2, $t2, 0x1d7c -/* 081474 80080874 0000F825 */ move $ra, $zero -/* 081478 80080878 24090004 */ li $t1, 4 -/* 08147C 8008087C 309600FF */ andi $s6, $a0, 0xff -.L80080880: -/* 081480 80080880 85590000 */ lh $t9, ($t2) -/* 081484 80080884 854E0002 */ lh $t6, 2($t2) -/* 081488 80080888 03330019 */ multu $t9, $s3 -/* 08148C 8008088C 85590004 */ lh $t9, 4($t2) -/* 081490 80080890 27FF0001 */ addiu $ra, $ra, 1 -/* 081494 80080894 2BE10005 */ slti $at, $ra, 5 -/* 081498 80080898 254A0008 */ addiu $t2, $t2, 8 -/* 08149C 8008089C 00002025 */ move $a0, $zero -/* 0814A0 800808A0 00002812 */ mflo $a1 -/* 0814A4 800808A4 00057A03 */ sra $t7, $a1, 8 -/* 0814A8 800808A8 01E02825 */ move $a1, $t7 -/* 0814AC 800808AC 01D40019 */ multu $t6, $s4 -/* 0814B0 800808B0 854EFFFE */ lh $t6, -2($t2) -/* 0814B4 800808B4 00003012 */ mflo $a2 -/* 0814B8 800808B8 0006C203 */ sra $t8, $a2, 8 -/* 0814BC 800808BC 03003025 */ move $a2, $t8 -/* 0814C0 800808C0 03350019 */ multu $t9, $s5 -/* 0814C4 800808C4 00003812 */ mflo $a3 -/* 0814C8 800808C8 00077A03 */ sra $t7, $a3, 8 -/* 0814CC 800808CC 01E03825 */ move $a3, $t7 -/* 0814D0 800808D0 01D60019 */ multu $t6, $s6 -/* 0814D4 800808D4 00004012 */ mflo $t0 -/* 0814D8 800808D8 0008C203 */ sra $t8, $t0, 8 -/* 0814DC 800808DC 03004025 */ move $t0, $t8 -.L800808E0: -/* 0814E0 800808E0 A4510000 */ sh $s1, ($v0) -/* 0814E4 800808E4 806F0000 */ lb $t7, ($v1) -/* 0814E8 800808E8 84590000 */ lh $t9, ($v0) -/* 0814EC 800808EC 01F00019 */ multu $t7, $s0 -/* 0814F0 800808F0 24840001 */ addiu $a0, $a0, 1 -/* 0814F4 800808F4 24630004 */ addiu $v1, $v1, 4 -/* 0814F8 800808F8 2442000A */ addiu $v0, $v0, 0xa -/* 0814FC 800808FC 00007012 */ mflo $t6 -/* 081500 80080900 032EC021 */ addu $t8, $t9, $t6 -/* 081504 80080904 A458FFF6 */ sh $t8, -0xa($v0) -/* 081508 80080908 8079FFFD */ lb $t9, -3($v1) -/* 08150C 8008090C 844FFFF6 */ lh $t7, -0xa($v0) -/* 081510 80080910 032B0019 */ multu $t9, $t3 -/* 081514 80080914 A452FFF8 */ sh $s2, -8($v0) -/* 081518 80080918 8459FFF8 */ lh $t9, -8($v0) -/* 08151C 8008091C 00007012 */ mflo $t6 -/* 081520 80080920 01EEC021 */ addu $t8, $t7, $t6 -/* 081524 80080924 A458FFF6 */ sh $t8, -0xa($v0) -/* 081528 80080928 806FFFFE */ lb $t7, -2($v1) -/* 08152C 8008092C 00000000 */ nop -/* 081530 80080930 01ED0019 */ multu $t7, $t5 -/* 081534 80080934 00007012 */ mflo $t6 -/* 081538 80080938 032EC021 */ addu $t8, $t9, $t6 -/* 08153C 8008093C A458FFF8 */ sh $t8, -8($v0) -/* 081540 80080940 8079FFFF */ lb $t9, -1($v1) -/* 081544 80080944 844FFFF8 */ lh $t7, -8($v0) -/* 081548 80080948 032C0019 */ multu $t9, $t4 -/* 08154C 8008094C A440FFFA */ sh $zero, -6($v0) -/* 081550 80080950 A045FFFC */ sb $a1, -4($v0) -/* 081554 80080954 A046FFFD */ sb $a2, -3($v0) -/* 081558 80080958 A047FFFE */ sb $a3, -2($v0) -/* 08155C 8008095C A048FFFF */ sb $t0, -1($v0) -/* 081560 80080960 00007012 */ mflo $t6 -/* 081564 80080964 01EEC021 */ addu $t8, $t7, $t6 -/* 081568 80080968 1489FFDD */ bne $a0, $t1, .L800808E0 -/* 08156C 8008096C A458FFF8 */ sh $t8, -8($v0) -/* 081570 80080970 1420FFC3 */ bnez $at, .L80080880 -/* 081574 80080974 00000000 */ nop -/* 081578 80080978 12E0007B */ beqz $s7, .L80080B68 -/* 08157C 8008097C 3C0E8012 */ lui $t6, %hi(gMenuGeometry) # $t6, 0x8012 -/* 081580 80080980 3C088012 */ lui $t0, %hi(gMenuGeometry) # $t0, 0x8012 -/* 081584 80080984 8FCE0000 */ lw $t6, ($fp) -/* 081588 80080988 25086C2C */ addiu $t0, %lo(gMenuGeometry) # addiu $t0, $t0, 0x6c2c -/* 08158C 8008098C 8D0F0000 */ lw $t7, ($t0) -/* 081590 80080990 3C07800E */ lui $a3, %hi(gMenuTrisFlip) # $a3, 0x800e -/* 081594 80080994 000EC140 */ sll $t8, $t6, 5 -/* 081598 80080998 24E71DB4 */ addiu $a3, %lo(gMenuTrisFlip) # addiu $a3, $a3, 0x1db4 -/* 08159C 8008099C 01F87021 */ addu $t6, $t7, $t8 -/* 0815A0 800809A0 8CEF0000 */ lw $t7, ($a3) -/* 0815A4 800809A4 8FA600E0 */ lw $a2, 0xe0($sp) -/* 0815A8 800809A8 000FC080 */ sll $t8, $t7, 2 -/* 0815AC 800809AC 01D87821 */ addu $t7, $t6, $t8 -/* 0815B0 800809B0 24190001 */ li $t9, 1 -/* 0815B4 800809B4 ADF90018 */ sw $t9, 0x18($t7) -/* 0815B8 800809B8 8EE20000 */ lw $v0, ($s7) -/* 0815BC 800809BC 3C19800E */ lui $t9, %hi(dMenuHudSettings) # $t9, 0x800e -/* 0815C0 800809C0 244E0008 */ addiu $t6, $v0, 8 -/* 0815C4 800809C4 AEEE0000 */ sw $t6, ($s7) -/* 0815C8 800809C8 27391C70 */ addiu $t9, %lo(dMenuHudSettings) # addiu $t9, $t9, 0x1c70 -/* 0815CC 800809CC 3C180600 */ lui $t8, 0x600 -/* 0815D0 800809D0 AC580000 */ sw $t8, ($v0) -/* 0815D4 800809D4 10C0001C */ beqz $a2, .L80080A48 -/* 0815D8 800809D8 AC590004 */ sw $t9, 4($v0) -/* 0815DC 800809DC 8EE20000 */ lw $v0, ($s7) -/* 0815E0 800809E0 3C0E0702 */ lui $t6, (0x07020010 >> 16) # lui $t6, 0x702 -/* 0815E4 800809E4 244F0008 */ addiu $t7, $v0, 8 -/* 0815E8 800809E8 AEEF0000 */ sw $t7, ($s7) - # dMenuHudSettings - 0x7FFFFFC0 = 0xE1CB0 -/* 0815EC 800809EC 3C18000E */ lui $t8, %hi(dMenuHudSettings - 0x7FFFFFC0) # $t8, 0xe - # dMenuHudSettings - 0x7FFFFFC0 = 0xE1CB0 -/* 0815F0 800809F0 27181CB0 */ addiu $t8, %lo(dMenuHudSettings - 0x7FFFFFC0) # addiu $t8, $t8, 0x1cb0 -/* 0815F4 800809F4 35CE0010 */ ori $t6, (0x07020010 & 0xFFFF) # ori $t6, $t6, 0x10 -/* 0815F8 800809F8 AC4E0000 */ sw $t6, ($v0) -/* 0815FC 800809FC AC580004 */ sw $t8, 4($v0) -/* 081600 80080A00 8EE20000 */ lw $v0, ($s7) -/* 081604 80080A04 3C010700 */ lui $at, 0x700 -/* 081608 80080A08 24590008 */ addiu $t9, $v0, 8 -/* 08160C 80080A0C AEF90000 */ sw $t9, ($s7) -/* 081610 80080A10 84C5000A */ lh $a1, 0xa($a2) -/* 081614 80080A14 3C098000 */ lui $t1, 0x8000 -/* 081618 80080A18 30AF00FF */ andi $t7, $a1, 0xff -/* 08161C 80080A1C 000F7400 */ sll $t6, $t7, 0x10 -/* 081620 80080A20 0005C8C0 */ sll $t9, $a1, 3 -/* 081624 80080A24 332FFFFF */ andi $t7, $t9, 0xffff -/* 081628 80080A28 01C1C025 */ or $t8, $t6, $at -/* 08162C 80080A2C 030F7025 */ or $t6, $t8, $t7 -/* 081630 80080A30 AC4E0000 */ sw $t6, ($v0) -/* 081634 80080A34 8CD9000C */ lw $t9, 0xc($a2) -/* 081638 80080A38 241F0001 */ li $ra, 1 -/* 08163C 80080A3C 0329C021 */ addu $t8, $t9, $t1 -/* 081640 80080A40 1000000C */ b .L80080A74 -/* 081644 80080A44 AC580004 */ sw $t8, 4($v0) -.L80080A48: -/* 081648 80080A48 8EE20000 */ lw $v0, ($s7) -/* 08164C 80080A4C 3C0E0702 */ lui $t6, (0x07020010 >> 16) # lui $t6, 0x702 -/* 081650 80080A50 244F0008 */ addiu $t7, $v0, 8 -/* 081654 80080A54 AEEF0000 */ sw $t7, ($s7) - # dMenuHudSettings - 0x7FFFFFD0 = 0xE1CA0 -/* 081658 80080A58 3C19000E */ lui $t9, %hi(dMenuHudSettings - 0x7FFFFFD0) # $t9, 0xe - # dMenuHudSettings - 0x7FFFFFD0 = 0xE1CA0 -/* 08165C 80080A5C 27391CA0 */ addiu $t9, %lo(dMenuHudSettings - 0x7FFFFFD0) # addiu $t9, $t9, 0x1ca0 -/* 081660 80080A60 35CE0010 */ ori $t6, (0x07020010 & 0xFFFF) # ori $t6, $t6, 0x10 -/* 081664 80080A64 0000F825 */ move $ra, $zero -/* 081668 80080A68 3C098000 */ lui $t1, 0x8000 -/* 08166C 80080A6C AC4E0000 */ sw $t6, ($v0) -/* 081670 80080A70 AC590004 */ sw $t9, 4($v0) -.L80080A74: -/* 081674 80080A74 8EE20000 */ lw $v0, ($s7) -/* 081678 80080A78 3C0FE700 */ lui $t7, 0xe700 -/* 08167C 80080A7C 24580008 */ addiu $t8, $v0, 8 -/* 081680 80080A80 AEF80000 */ sw $t8, ($s7) -/* 081684 80080A84 AC400004 */ sw $zero, 4($v0) -/* 081688 80080A88 AC4F0000 */ sw $t7, ($v0) -/* 08168C 80080A8C 8EE20000 */ lw $v0, ($s7) -/* 081690 80080A90 3C010400 */ lui $at, 0x400 -/* 081694 80080A94 244E0008 */ addiu $t6, $v0, 8 -/* 081698 80080A98 AEEE0000 */ sw $t6, ($s7) -/* 08169C 80080A9C 8FD80000 */ lw $t8, ($fp) -/* 0816A0 80080AA0 8D190000 */ lw $t9, ($t0) -/* 0816A4 80080AA4 00187940 */ sll $t7, $t8, 5 -/* 0816A8 80080AA8 8CF80000 */ lw $t8, ($a3) -/* 0816AC 80080AAC 032F7021 */ addu $t6, $t9, $t7 -/* 0816B0 80080AB0 0018C880 */ sll $t9, $t8, 2 -/* 0816B4 80080AB4 01D97821 */ addu $t7, $t6, $t9 -/* 0816B8 80080AB8 8DF80000 */ lw $t8, ($t7) -/* 0816BC 80080ABC 02E02025 */ move $a0, $s7 -/* 0816C0 80080AC0 03097021 */ addu $t6, $t8, $t1 -/* 0816C4 80080AC4 31D90006 */ andi $t9, $t6, 6 -/* 0816C8 80080AC8 372F0098 */ ori $t7, $t9, 0x98 -/* 0816CC 80080ACC 31F800FF */ andi $t8, $t7, 0xff -/* 0816D0 80080AD0 00187400 */ sll $t6, $t8, 0x10 -/* 0816D4 80080AD4 01C1C825 */ or $t9, $t6, $at -/* 0816D8 80080AD8 372F0170 */ ori $t7, $t9, 0x170 -/* 0816DC 80080ADC AC4F0000 */ sw $t7, ($v0) -/* 0816E0 80080AE0 8FCE0000 */ lw $t6, ($fp) -/* 0816E4 80080AE4 8D180000 */ lw $t8, ($t0) -/* 0816E8 80080AE8 000EC940 */ sll $t9, $t6, 5 -/* 0816EC 80080AEC 8CEE0000 */ lw $t6, ($a3) -/* 0816F0 80080AF0 03197821 */ addu $t7, $t8, $t9 -/* 0816F4 80080AF4 000EC080 */ sll $t8, $t6, 2 -/* 0816F8 80080AF8 01F8C821 */ addu $t9, $t7, $t8 -/* 0816FC 80080AFC 8F2E0000 */ lw $t6, ($t9) -/* 081700 80080B00 37F90090 */ ori $t9, $ra, 0x90 -/* 081704 80080B04 01C97821 */ addu $t7, $t6, $t1 -/* 081708 80080B08 AC4F0004 */ sw $t7, 4($v0) -/* 08170C 80080B0C 8EE20000 */ lw $v0, ($s7) -/* 081710 80080B10 332E00FF */ andi $t6, $t9, 0xff -/* 081714 80080B14 24580008 */ addiu $t8, $v0, 8 -/* 081718 80080B18 AEF80000 */ sw $t8, ($s7) -/* 08171C 80080B1C 000E7C00 */ sll $t7, $t6, 0x10 -/* 081720 80080B20 3C010500 */ lui $at, 0x500 -/* 081724 80080B24 01E1C025 */ or $t8, $t7, $at -/* 081728 80080B28 371900A0 */ ori $t9, $t8, 0xa0 -/* 08172C 80080B2C AC590000 */ sw $t9, ($v0) -/* 081730 80080B30 8FCF0000 */ lw $t7, ($fp) -/* 081734 80080B34 8D0E0000 */ lw $t6, ($t0) -/* 081738 80080B38 000FC140 */ sll $t8, $t7, 5 -/* 08173C 80080B3C 8CEF0000 */ lw $t7, ($a3) -/* 081740 80080B40 01D8C821 */ addu $t9, $t6, $t8 -/* 081744 80080B44 000F7080 */ sll $t6, $t7, 2 -/* 081748 80080B48 032EC021 */ addu $t8, $t9, $t6 -/* 08174C 80080B4C 8F0F0008 */ lw $t7, 8($t8) -/* 081750 80080B50 00000000 */ nop -/* 081754 80080B54 01E9C821 */ addu $t9, $t7, $t1 -/* 081758 80080B58 0C01ECF4 */ jal reset_render_settings -/* 08175C 80080B5C AC590004 */ sw $t9, 4($v0) -/* 081760 80080B60 1000000B */ b .L80080B90 -/* 081764 80080B64 8FD80000 */ lw $t8, ($fp) -.L80080B68: -/* 081768 80080B68 8FD80000 */ lw $t8, ($fp) -/* 08176C 80080B6C 8DCE6C2C */ lw $t6, %lo(gMenuGeometry)($t6) -/* 081770 80080B70 00187940 */ sll $t7, $t8, 5 -/* 081774 80080B74 3C18800E */ lui $t8, %hi(gMenuTrisFlip) # $t8, 0x800e -/* 081778 80080B78 8F181DB4 */ lw $t8, %lo(gMenuTrisFlip)($t8) -/* 08177C 80080B7C 01CFC821 */ addu $t9, $t6, $t7 -/* 081780 80080B80 00187080 */ sll $t6, $t8, 2 -/* 081784 80080B84 032E7821 */ addu $t7, $t9, $t6 -/* 081788 80080B88 ADE00018 */ sw $zero, 0x18($t7) -/* 08178C 80080B8C 8FD80000 */ lw $t8, ($fp) -.L80080B90: -/* 081790 80080B90 8FBF003C */ lw $ra, 0x3c($sp) -/* 081794 80080B94 27190001 */ addiu $t9, $t8, 1 -/* 081798 80080B98 AFD90000 */ sw $t9, ($fp) -/* 08179C 80080B9C 8FBE0038 */ lw $fp, 0x38($sp) -/* 0817A0 80080BA0 8FB00018 */ lw $s0, 0x18($sp) -/* 0817A4 80080BA4 8FB1001C */ lw $s1, 0x1c($sp) -/* 0817A8 80080BA8 8FB20020 */ lw $s2, 0x20($sp) -/* 0817AC 80080BAC 8FB30024 */ lw $s3, 0x24($sp) -/* 0817B0 80080BB0 8FB40028 */ lw $s4, 0x28($sp) -/* 0817B4 80080BB4 8FB5002C */ lw $s5, 0x2c($sp) -/* 0817B8 80080BB8 8FB60030 */ lw $s6, 0x30($sp) -/* 0817BC 80080BBC 8FB70034 */ lw $s7, 0x34($sp) -/* 0817C0 80080BC0 03E00008 */ jr $ra -/* 0817C4 80080BC4 27BD00C0 */ addiu $sp, $sp, 0xc0 - diff --git a/asm/non_matchings/menu/func_80084854.s b/asm/non_matchings/menu/func_80084854.s deleted file mode 100644 index 77884264..00000000 --- a/asm/non_matchings/menu/func_80084854.s +++ /dev/null @@ -1,280 +0,0 @@ -glabel func_80084854 -/* 085454 80084854 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 085458 80084858 3C058012 */ lui $a1, %hi(gMusicTestString) # $a1, 0x8012 -/* 08545C 8008485C 24A569E0 */ addiu $a1, %lo(gMusicTestString) # addiu $a1, $a1, 0x69e0 -/* 085460 80084860 8CA30000 */ lw $v1, ($a1) -/* 085464 80084864 AFBF003C */ sw $ra, 0x3c($sp) -/* 085468 80084868 AFB30038 */ sw $s3, 0x38($sp) -/* 08546C 8008486C AFB20034 */ sw $s2, 0x34($sp) -/* 085470 80084870 AFB10030 */ sw $s1, 0x30($sp) -/* 085474 80084874 AFB0002C */ sw $s0, 0x2c($sp) -/* 085478 80084878 AFA40058 */ sw $a0, 0x58($sp) -/* 08547C 8008487C 906E0000 */ lbu $t6, ($v1) -/* 085480 80084880 3C13800E */ lui $s3, %hi(gMusicTestSongIndex) # $s3, 0x800e -/* 085484 80084884 8E73FABC */ lw $s3, %lo(gMusicTestSongIndex)($s3) -/* 085488 80084888 29C10030 */ slti $at, $t6, 0x30 -/* 08548C 8008488C 14200006 */ bnez $at, .L800848A8 -/* 085490 80084890 00008825 */ move $s1, $zero -/* 085494 80084894 906F0000 */ lbu $t7, ($v1) -/* 085498 80084898 00000000 */ nop -/* 08549C 8008489C 29E1003A */ slti $at, $t7, 0x3a -/* 0854A0 800848A0 1420000C */ bnez $at, .L800848D4 -/* 0854A4 800848A4 2404000A */ li $a0, 10 -.L800848A8: -/* 0854A8 800848A8 26310001 */ addiu $s1, $s1, 1 -/* 0854AC 800848AC 0071C021 */ addu $t8, $v1, $s1 -/* 0854B0 800848B0 93020000 */ lbu $v0, ($t8) -/* 0854B4 800848B4 00000000 */ nop -/* 0854B8 800848B8 28410030 */ slti $at, $v0, 0x30 -/* 0854BC 800848BC 1420FFFA */ bnez $at, .L800848A8 -/* 0854C0 800848C0 00000000 */ nop -/* 0854C4 800848C4 2841003A */ slti $at, $v0, 0x3a -/* 0854C8 800848C8 1020FFF7 */ beqz $at, .L800848A8 -/* 0854CC 800848CC 00000000 */ nop -/* 0854D0 800848D0 2404000A */ li $a0, 10 -.L800848D4: -/* 0854D4 800848D4 0264001A */ div $zero, $s3, $a0 -/* 0854D8 800848D8 00714021 */ addu $t0, $v1, $s1 -/* 0854DC 800848DC 14800002 */ bnez $a0, .L800848E8 -/* 0854E0 800848E0 00000000 */ nop -/* 0854E4 800848E4 0007000D */ break 7 -.L800848E8: -/* 0854E8 800848E8 2401FFFF */ li $at, -1 -/* 0854EC 800848EC 14810004 */ bne $a0, $at, .L80084900 -/* 0854F0 800848F0 3C018000 */ lui $at, 0x8000 -/* 0854F4 800848F4 16610002 */ bne $s3, $at, .L80084900 -/* 0854F8 800848F8 00000000 */ nop -/* 0854FC 800848FC 0006000D */ break 6 -.L80084900: -/* 085500 80084900 26310001 */ addiu $s1, $s1, 1 -/* 085504 80084904 3C128012 */ lui $s2, %hi(sMenuCurrDisplayList) # $s2, 0x8012 -/* 085508 80084908 265263A0 */ addiu $s2, %lo(sMenuCurrDisplayList) # addiu $s2, $s2, 0x63a0 -/* 08550C 8008490C 3C0F800E */ lui $t7, %hi(gAudioOutputType) # $t7, 0x800e -/* 085510 80084910 00001012 */ mflo $v0 -/* 085514 80084914 24590030 */ addiu $t9, $v0, 0x30 -/* 085518 80084918 A1190000 */ sb $t9, ($t0) -/* 08551C 8008491C 00440019 */ multu $v0, $a0 -/* 085520 80084920 8CAB0000 */ lw $t3, ($a1) -/* 085524 80084924 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 085528 80084928 01716021 */ addu $t4, $t3, $s1 -/* 08552C 8008492C 3C198012 */ lui $t9, %hi(gAudioOutputStrings) # $t9, 0x8012 -/* 085530 80084930 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 085534 80084934 02402025 */ move $a0, $s2 -/* 085538 80084938 00004812 */ mflo $t1 -/* 08553C 8008493C 02699823 */ subu $s3, $s3, $t1 -/* 085540 80084940 266A0030 */ addiu $t2, $s3, 0x30 -/* 085544 80084944 A18A0000 */ sb $t2, ($t4) -/* 085548 80084948 3C138012 */ lui $s3, %hi(gOptionBlinkTimer) # $s3, 0x8012 -/* 08554C 8008494C 8E7363BC */ lw $s3, %lo(gOptionBlinkTimer)($s3) -/* 085550 80084950 00000000 */ nop -/* 085554 80084954 001368C0 */ sll $t5, $s3, 3 -/* 085558 80084958 29A10100 */ slti $at, $t5, 0x100 -/* 08555C 8008495C 14200003 */ bnez $at, .L8008496C -/* 085560 80084960 01A09825 */ move $s3, $t5 -/* 085564 80084964 240E01FF */ li $t6, 511 -/* 085568 80084968 01CD9823 */ subu $s3, $t6, $t5 -.L8008496C: -/* 08556C 8008496C 8DEFFAC8 */ lw $t7, %lo(gAudioOutputType)($t7) -/* 085570 80084970 3C01800E */ lui $at, %hi(gAudioMenuStrings+12) # $at, 0x800e -/* 085574 80084974 000FC080 */ sll $t8, $t7, 2 -/* 085578 80084978 0338C821 */ addu $t9, $t9, $t8 -/* 08557C 8008497C 8F3969D0 */ lw $t9, %lo(gAudioOutputStrings)($t9) -/* 085580 80084980 0C019FCB */ jal set_ortho_matrix_view -/* 085584 80084984 AC39FA48 */ sw $t9, %lo(gAudioMenuStrings+12)($at) -/* 085588 80084988 3C088000 */ lui $t0, %hi(osTvType) # $t0, 0x8000 -/* 08558C 8008498C 8D080300 */ lw $t0, %lo(osTvType)($t0) -/* 085590 80084990 3C11FFC0 */ lui $s1, (0xFFC040FF >> 16) # lui $s1, 0xffc0 -/* 085594 80084994 15000003 */ bnez $t0, .L800849A4 -/* 085598 80084998 363140FF */ ori $s1, (0xFFC040FF & 0xFFFF) # ori $s1, $s1, 0x40ff -/* 08559C 8008499C 10000002 */ b .L800849A8 -/* 0855A0 800849A0 24100065 */ li $s0, 101 -.L800849A4: -/* 0855A4 800849A4 24100071 */ li $s0, 113 -.L800849A8: -/* 0855A8 800849A8 3C0D8012 */ lui $t5, %hi(gMenuAssets) # $t5, 0x8012 -/* 0855AC 800849AC 8DAD6660 */ lw $t5, %lo(gMenuAssets + 0x110)($t5) -/* 0855B0 800849B0 24090078 */ li $t1, 120 -/* 0855B4 800849B4 240B000E */ li $t3, 14 -/* 0855B8 800849B8 240A0006 */ li $t2, 6 -/* 0855BC 800849BC 240C0004 */ li $t4, 4 -/* 0855C0 800849C0 AFAC0018 */ sw $t4, 0x18($sp) -/* 0855C4 800849C4 AFAA0014 */ sw $t2, 0x14($sp) -/* 0855C8 800849C8 AFAB0010 */ sw $t3, 0x10($sp) -/* 0855CC 800849CC 01303023 */ subu $a2, $t1, $s0 -/* 0855D0 800849D0 00002025 */ move $a0, $zero -/* 0855D4 800849D4 2405FFB8 */ li $a1, -72 -/* 0855D8 800849D8 24070090 */ li $a3, 144 -/* 0855DC 800849DC AFB1001C */ sw $s1, 0x1c($sp) -/* 0855E0 800849E0 0C020160 */ jal func_80080580 -/* 0855E4 800849E4 AFAD0020 */ sw $t5, 0x20($sp) -/* 0855E8 800849E8 3C088012 */ lui $t0, %hi(gMenuAssets) # $t0, 0x8012 -/* 0855EC 800849EC 8D086660 */ lw $t0, %lo(gMenuAssets + 0x110)($t0) -/* 0855F0 800849F0 240E0050 */ li $t6, 80 -/* 0855F4 800849F4 240F000E */ li $t7, 14 -/* 0855F8 800849F8 24180006 */ li $t8, 6 -/* 0855FC 800849FC 24190004 */ li $t9, 4 -/* 085600 80084A00 AFB90018 */ sw $t9, 0x18($sp) -/* 085604 80084A04 AFB80014 */ sw $t8, 0x14($sp) -/* 085608 80084A08 AFAF0010 */ sw $t7, 0x10($sp) -/* 08560C 80084A0C 01D03023 */ subu $a2, $t6, $s0 -/* 085610 80084A10 00002025 */ move $a0, $zero -/* 085614 80084A14 2405FFB8 */ li $a1, -72 -/* 085618 80084A18 24070090 */ li $a3, 144 -/* 08561C 80084A1C AFB1001C */ sw $s1, 0x1c($sp) -/* 085620 80084A20 0C020160 */ jal func_80080580 -/* 085624 80084A24 AFA80020 */ sw $t0, 0x20($sp) -/* 085628 80084A28 0C0202F2 */ jal func_80080BC8 -/* 08562C 80084A2C 02402025 */ move $a0, $s2 -/* 085630 80084A30 0C031525 */ jal dialogue_clear -/* 085634 80084A34 24040007 */ li $a0, 7 -/* 085638 80084A38 240900FF */ li $t1, 255 -/* 08563C 80084A3C AFA90010 */ sw $t1, 0x10($sp) -/* 085640 80084A40 24040007 */ li $a0, 7 -/* 085644 80084A44 00002825 */ move $a1, $zero -/* 085648 80084A48 00003025 */ move $a2, $zero -/* 08564C 80084A4C 0C0313EF */ jal set_current_dialogue_background_colour -/* 085650 80084A50 00003825 */ move $a3, $zero -/* 085654 80084A54 240B007B */ li $t3, 123 -/* 085658 80084A58 AFAB0010 */ sw $t3, 0x10($sp) -/* 08565C 80084A5C 24040007 */ li $a0, 7 -/* 085660 80084A60 2405005E */ li $a1, 94 -/* 085664 80084A64 24060075 */ li $a2, 117 -/* 085668 80084A68 0C0313B7 */ jal set_current_dialogue_box_coords -/* 08566C 80084A6C 240700E2 */ li $a3, 226 -/* 085670 80084A70 02402025 */ move $a0, $s2 -/* 085674 80084A74 00002825 */ move $a1, $zero -/* 085678 80084A78 00003025 */ move $a2, $zero -/* 08567C 80084A7C 0C0316D6 */ jal render_dialogue_box -/* 085680 80084A80 24070007 */ li $a3, 7 -/* 085684 80084A84 240A00A3 */ li $t2, 163 -/* 085688 80084A88 AFAA0010 */ sw $t2, 0x10($sp) -/* 08568C 80084A8C 24040007 */ li $a0, 7 -/* 085690 80084A90 2405005E */ li $a1, 94 -/* 085694 80084A94 2406009D */ li $a2, 157 -/* 085698 80084A98 0C0313B7 */ jal set_current_dialogue_box_coords -/* 08569C 80084A9C 240700E2 */ li $a3, 226 -/* 0856A0 80084AA0 02402025 */ move $a0, $s2 -/* 0856A4 80084AA4 00002825 */ move $a1, $zero -/* 0856A8 80084AA8 00003025 */ move $a2, $zero -/* 0856AC 80084AAC 0C0316D6 */ jal render_dialogue_box -/* 0856B0 80084AB0 24070007 */ li $a3, 7 -/* 0856B4 80084AB4 3C06800E */ lui $a2, %hi(gSfxVolumeSliderValue) # $a2, 0x800e -/* 0856B8 80084AB8 8CC6FAC0 */ lw $a2, %lo(gSfxVolumeSliderValue)($a2) -/* 0856BC 80084ABC 3C10800E */ lui $s0, %hi(gMenuSelectionArrowLeft) # $s0, 0x800e -/* 0856C0 80084AC0 2610042C */ addiu $s0, %lo(gMenuSelectionArrowLeft) # addiu $s0, $s0, 0x42c -/* 0856C4 80084AC4 240D00FF */ li $t5, 255 -/* 0856C8 80084AC8 240E00FF */ li $t6, 255 -/* 0856CC 80084ACC 240F00FF */ li $t7, 255 -/* 0856D0 80084AD0 241800FF */ li $t8, 255 -/* 0856D4 80084AD4 00066043 */ sra $t4, $a2, 1 -/* 0856D8 80084AD8 25860060 */ addiu $a2, $t4, 0x60 -/* 0856DC 80084ADC AFB8001C */ sw $t8, 0x1c($sp) -/* 0856E0 80084AE0 AFAF0018 */ sw $t7, 0x18($sp) -/* 0856E4 80084AE4 AFAE0014 */ sw $t6, 0x14($sp) -/* 0856E8 80084AE8 AFAD0010 */ sw $t5, 0x10($sp) -/* 0856EC 80084AEC 02002825 */ move $a1, $s0 -/* 0856F0 80084AF0 02402025 */ move $a0, $s2 -/* 0856F4 80084AF4 0C01E2AE */ jal texrect_draw -/* 0856F8 80084AF8 24070078 */ li $a3, 120 -/* 0856FC 80084AFC 3C06800E */ lui $a2, %hi(gMusicVolumeSliderValue) # $a2, 0x800e -/* 085700 80084B00 8CC6FAC4 */ lw $a2, %lo(gMusicVolumeSliderValue)($a2) -/* 085704 80084B04 240800FF */ li $t0, 255 -/* 085708 80084B08 240900FF */ li $t1, 255 -/* 08570C 80084B0C 240B00FF */ li $t3, 255 -/* 085710 80084B10 240A00FF */ li $t2, 255 -/* 085714 80084B14 0006C843 */ sra $t9, $a2, 1 -/* 085718 80084B18 27260060 */ addiu $a2, $t9, 0x60 -/* 08571C 80084B1C AFAA001C */ sw $t2, 0x1c($sp) -/* 085720 80084B20 AFAB0018 */ sw $t3, 0x18($sp) -/* 085724 80084B24 AFA90014 */ sw $t1, 0x14($sp) -/* 085728 80084B28 AFA80010 */ sw $t0, 0x10($sp) -/* 08572C 80084B2C 02402025 */ move $a0, $s2 -/* 085730 80084B30 02002825 */ move $a1, $s0 -/* 085734 80084B34 0C01E2AE */ jal texrect_draw -/* 085738 80084B38 240700A0 */ li $a3, 160 -/* 08573C 80084B3C 0C01ECF4 */ jal reset_render_settings -/* 085740 80084B40 02402025 */ move $a0, $s2 -/* 085744 80084B44 00002025 */ move $a0, $zero -/* 085748 80084B48 00002825 */ move $a1, $zero -/* 08574C 80084B4C 00003025 */ move $a2, $zero -/* 085750 80084B50 0C0310F3 */ jal set_text_background_colour -/* 085754 80084B54 00003825 */ move $a3, $zero -/* 085758 80084B58 3C0C8012 */ lui $t4, %hi(gMenuStage) # $t4, 0x8012 -/* 08575C 80084B5C 8D8C63E0 */ lw $t4, %lo(gMenuStage)($t4) -/* 085760 80084B60 00001825 */ move $v1, $zero -/* 085764 80084B64 29810005 */ slti $at, $t4, 5 -/* 085768 80084B68 10200005 */ beqz $at, .L80084B80 -/* 08576C 80084B6C 3C0D800E */ lui $t5, %hi(gAudioMenuStrings+12) # $t5, 0x800e -/* 085770 80084B70 3C118012 */ lui $s1, %hi(gOptionsMenuItemIndex) # $s1, 0x8012 -/* 085774 80084B74 86316C46 */ lh $s1, %lo(gOptionsMenuItemIndex)($s1) -/* 085778 80084B78 1000000E */ b .L80084BB4 -/* 08577C 80084B7C 00000000 */ nop -.L80084B80: -/* 085780 80084B80 3C028012 */ lui $v0, %hi(gOptionsMenuItemIndex) # $v0, 0x8012 -/* 085784 80084B84 84426C46 */ lh $v0, %lo(gOptionsMenuItemIndex)($v0) -/* 085788 80084B88 00000000 */ nop -/* 08578C 80084B8C 28410003 */ slti $at, $v0, 3 -/* 085790 80084B90 10200004 */ beqz $at, .L80084BA4 -/* 085794 80084B94 24010003 */ li $at, 3 -/* 085798 80084B98 10000006 */ b .L80084BB4 -/* 08579C 80084B9C 00408825 */ move $s1, $v0 -/* 0857A0 80084BA0 24010003 */ li $at, 3 -.L80084BA4: -/* 0857A4 80084BA4 14410003 */ bne $v0, $at, .L80084BB4 -/* 0857A8 80084BA8 24110003 */ li $s1, 3 -/* 0857AC 80084BAC 10000001 */ b .L80084BB4 -/* 0857B0 80084BB0 24110006 */ li $s1, 6 -.L80084BB4: -/* 0857B4 80084BB4 8DADFA48 */ lw $t5, %lo(gAudioMenuStrings+12)($t5) -/* 0857B8 80084BB8 00037100 */ sll $t6, $v1, 4 -/* 0857BC 80084BBC 11A00026 */ beqz $t5, .L80084C58 -/* 0857C0 80084BC0 3C0F800E */ lui $t7, %hi(gAudioMenuStrings) # $t7, 0x800e -/* 0857C4 80084BC4 25EFFA3C */ addiu $t7, %lo(gAudioMenuStrings) # addiu $t7, $t7, -0x5c4 -/* 0857C8 80084BC8 0011C100 */ sll $t8, $s1, 4 -/* 0857CC 80084BCC 030FC821 */ addu $t9, $t8, $t7 -/* 0857D0 80084BD0 AFB90040 */ sw $t9, 0x40($sp) -/* 0857D4 80084BD4 01CF8021 */ addu $s0, $t6, $t7 -.L80084BD8: -/* 0857D8 80084BD8 92040009 */ lbu $a0, 9($s0) -/* 0857DC 80084BDC 0C0310BB */ jal set_text_font -/* 0857E0 80084BE0 00000000 */ nop -/* 0857E4 80084BE4 8FA80040 */ lw $t0, 0x40($sp) -/* 0857E8 80084BE8 240400FF */ li $a0, 255 -/* 0857EC 80084BEC 16080008 */ bne $s0, $t0, .L80084C10 -/* 0857F0 80084BF0 240500FF */ li $a1, 255 -/* 0857F4 80084BF4 240900FF */ li $t1, 255 -/* 0857F8 80084BF8 AFA90010 */ sw $t1, 0x10($sp) -/* 0857FC 80084BFC 240600FF */ li $a2, 255 -/* 085800 80084C00 0C0310E1 */ jal set_text_colour -/* 085804 80084C04 02603825 */ move $a3, $s3 -/* 085808 80084C08 10000009 */ b .L80084C30 -/* 08580C 80084C0C 860A000A */ lh $t2, 0xa($s0) -.L80084C10: -/* 085810 80084C10 920B0008 */ lbu $t3, 8($s0) -/* 085814 80084C14 92040004 */ lbu $a0, 4($s0) -/* 085818 80084C18 92050005 */ lbu $a1, 5($s0) -/* 08581C 80084C1C 92060006 */ lbu $a2, 6($s0) -/* 085820 80084C20 92070007 */ lbu $a3, 7($s0) -/* 085824 80084C24 0C0310E1 */ jal set_text_colour -/* 085828 80084C28 AFAB0010 */ sw $t3, 0x10($sp) -/* 08582C 80084C2C 860A000A */ lh $t2, 0xa($s0) -.L80084C30: -/* 085830 80084C30 86050000 */ lh $a1, ($s0) -/* 085834 80084C34 86060002 */ lh $a2, 2($s0) -/* 085838 80084C38 8E07000C */ lw $a3, 0xc($s0) -/* 08583C 80084C3C 02402025 */ move $a0, $s2 -/* 085840 80084C40 0C031110 */ jal draw_text -/* 085844 80084C44 AFAA0010 */ sw $t2, 0x10($sp) -/* 085848 80084C48 8E0C001C */ lw $t4, 0x1c($s0) -/* 08584C 80084C4C 26100010 */ addiu $s0, $s0, 0x10 -/* 085850 80084C50 1580FFE1 */ bnez $t4, .L80084BD8 -/* 085854 80084C54 00000000 */ nop -.L80084C58: -/* 085858 80084C58 8FBF003C */ lw $ra, 0x3c($sp) -/* 08585C 80084C5C 8FB0002C */ lw $s0, 0x2c($sp) -/* 085860 80084C60 8FB10030 */ lw $s1, 0x30($sp) -/* 085864 80084C64 8FB20034 */ lw $s2, 0x34($sp) -/* 085868 80084C68 8FB30038 */ lw $s3, 0x38($sp) -/* 08586C 80084C6C 03E00008 */ jr $ra -/* 085870 80084C70 27BD0058 */ addiu $sp, $sp, 0x58 - diff --git a/asm/non_matchings/menu/func_8009E3D0.s b/asm/non_matchings/menu/func_8009E3D0.s deleted file mode 100644 index 956405fd..00000000 --- a/asm/non_matchings/menu/func_8009E3D0.s +++ /dev/null @@ -1,284 +0,0 @@ -glabel dialogue_tt_gamestatus -/* 09EFD0 8009E3D0 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 09EFD4 8009E3D4 3C03800E */ lui $v1, %hi(gGameStatusVisible) # $v1, 0x800e -/* 09EFD8 8009E3D8 24631E28 */ addiu $v1, %lo(gGameStatusVisible) # addiu $v1, $v1, 0x1e28 -/* 09EFDC 8009E3DC 80620000 */ lb $v0, ($v1) -/* 09EFE0 8009E3E0 AFB4002C */ sw $s4, 0x2c($sp) -/* 09EFE4 8009E3E4 24140001 */ li $s4, 1 -/* 09EFE8 8009E3E8 AFBF0034 */ sw $ra, 0x34($sp) -/* 09EFEC 8009E3EC AFB50030 */ sw $s5, 0x30($sp) -/* 09EFF0 8009E3F0 AFB30028 */ sw $s3, 0x28($sp) -/* 09EFF4 8009E3F4 AFB20024 */ sw $s2, 0x24($sp) -/* 09EFF8 8009E3F8 AFB10020 */ sw $s1, 0x20($sp) -/* 09EFFC 8009E3FC AFB0001C */ sw $s0, 0x1c($sp) -/* 09F000 8009E400 E7B50010 */ swc1 $f21, 0x10($sp) -/* 09F004 8009E404 16820004 */ bne $s4, $v0, .L8009E418 -/* 09F008 8009E408 E7B40014 */ swc1 $f20, 0x14($sp) -/* 09F00C 8009E40C 244E0001 */ addiu $t6, $v0, 1 -/* 09F010 8009E410 100000EA */ b .L8009E7BC -/* 09F014 8009E414 A06E0000 */ sb $t6, ($v1) -.L8009E418: -/* 09F018 8009E418 0C01BAA4 */ jal get_settings -/* 09F01C 8009E41C 00000000 */ nop -/* 09F020 8009E420 AFA20048 */ sw $v0, 0x48($sp) -/* 09F024 8009E424 0C01A142 */ jal sprite_anim_off -/* 09F028 8009E428 02802025 */ move $a0, $s4 -/* 09F02C 8009E42C 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 -/* 09F030 8009E430 8DEF0300 */ lw $t7, %lo(osTvType)($t7) -/* 09F034 8009E434 8FB80048 */ lw $t8, 0x48($sp) -/* 09F038 8009E438 15E00003 */ bnez $t7, .L8009E448 -/* 09F03C 8009E43C 3C12800E */ lui $s2, %hi(gMenuImages) # $s2, 0x800e -/* 09F040 8009E440 10000002 */ b .L8009E44C -/* 09F044 8009E444 2415000A */ li $s5, 10 -.L8009E448: -/* 09F048 8009E448 24150014 */ li $s5, 20 -.L8009E44C: -/* 09F04C 8009E44C 8F190010 */ lw $t9, 0x10($t8) -/* 09F050 8009E450 24130008 */ li $s3, 8 -/* 09F054 8009E454 33280004 */ andi $t0, $t9, 4 -/* 09F058 8009E458 11000002 */ beqz $t0, .L8009E464 -/* 09F05C 8009E45C 2652F75C */ addiu $s2, %lo(gMenuImages) # addiu $s2, $s2, -0x8a4 -/* 09F060 8009E460 24130009 */ li $s3, 9 -.L8009E464: -/* 09F064 8009E464 2409FFB6 */ li $t1, -74 -/* 09F068 8009E468 44892000 */ mtc1 $t1, $f4 -/* 09F06C 8009E46C 8E4A0000 */ lw $t2, ($s2) -/* 09F070 8009E470 468021A0 */ cvt.s.w $f6, $f4 -/* 09F074 8009E474 00131140 */ sll $v0, $s3, 5 -/* 09F078 8009E478 240C0041 */ li $t4, 65 -/* 09F07C 8009E47C 01956823 */ subu $t5, $t4, $s5 -/* 09F080 8009E480 01425821 */ addu $t3, $t2, $v0 -/* 09F084 8009E484 448D4000 */ mtc1 $t5, $f8 -/* 09F088 8009E488 E566000C */ swc1 $f6, 0xc($t3) -/* 09F08C 8009E48C 8E4E0000 */ lw $t6, ($s2) -/* 09F090 8009E490 468042A0 */ cvt.s.w $f10, $f8 -/* 09F094 8009E494 01C27821 */ addu $t7, $t6, $v0 -/* 09F098 8009E498 02602025 */ move $a0, $s3 -/* 09F09C 8009E49C 0C027298 */ jal menu_element_render -/* 09F0A0 8009E4A0 E5EA0010 */ swc1 $f10, 0x10($t7) -/* 09F0A4 8009E4A4 0C01EFC7 */ jal sprite_opaque -/* 09F0A8 8009E4A8 00002025 */ move $a0, $zero -/* 09F0AC 8009E4AC 2418FFE3 */ li $t8, -29 -/* 09F0B0 8009E4B0 44988000 */ mtc1 $t8, $f16 -/* 09F0B4 8009E4B4 24080062 */ li $t0, 98 -/* 09F0B8 8009E4B8 468084A0 */ cvt.s.w $f18, $f16 -/* 09F0BC 8009E4BC 01154823 */ subu $t1, $t0, $s5 -/* 09F0C0 8009E4C0 8E590000 */ lw $t9, ($s2) -/* 09F0C4 8009E4C4 44892000 */ mtc1 $t1, $f4 -/* 09F0C8 8009E4C8 E7B2003C */ swc1 $f18, 0x3c($sp) -/* 09F0CC 8009E4CC 46802520 */ cvt.s.w $f20, $f4 -/* 09F0D0 8009E4D0 E732000C */ swc1 $f18, 0xc($t9) -/* 09F0D4 8009E4D4 8E4A0000 */ lw $t2, ($s2) -/* 09F0D8 8009E4D8 3C0140C0 */ li $at, 0x40C00000 # 6.000000 -/* 09F0DC 8009E4DC E5540010 */ swc1 $f20, 0x10($t2) -/* 09F0E0 8009E4E0 8E430000 */ lw $v1, ($s2) -/* 09F0E4 8009E4E4 44814000 */ mtc1 $at, $f8 -/* 09F0E8 8009E4E8 C466000C */ lwc1 $f6, 0xc($v1) -/* 09F0EC 8009E4EC 2410000A */ li $s0, 10 -/* 09F0F0 8009E4F0 46083281 */ sub.s $f10, $f6, $f8 -/* 09F0F4 8009E4F4 E46A000C */ swc1 $f10, 0xc($v1) -/* 09F0F8 8009E4F8 8FAB0048 */ lw $t3, 0x48($sp) -/* 09F0FC 8009E4FC 00000000 */ nop -/* 09F100 8009E500 8D6C0000 */ lw $t4, ($t3) -/* 09F104 8009E504 00000000 */ nop -/* 09F108 8009E508 85850000 */ lh $a1, ($t4) -/* 09F10C 8009E50C 00000000 */ nop -/* 09F110 8009E510 00B0001A */ div $zero, $a1, $s0 -/* 09F114 8009E514 16000002 */ bnez $s0, .L8009E520 -/* 09F118 8009E518 00000000 */ nop -/* 09F11C 8009E51C 0007000D */ break 7 -.L8009E520: -/* 09F120 8009E520 2401FFFF */ li $at, -1 -/* 09F124 8009E524 16010004 */ bne $s0, $at, .L8009E538 -/* 09F128 8009E528 3C018000 */ lui $at, 0x8000 -/* 09F12C 8009E52C 14A10002 */ bne $a1, $at, .L8009E538 -/* 09F130 8009E530 00000000 */ nop -/* 09F134 8009E534 0006000D */ break 6 -.L8009E538: -/* 09F138 8009E538 00001012 */ mflo $v0 -/* 09F13C 8009E53C 10400012 */ beqz $v0, .L8009E588 -/* 09F140 8009E540 00000000 */ nop -/* 09F144 8009E544 8E4D0000 */ lw $t5, ($s2) -/* 09F148 8009E548 00002025 */ move $a0, $zero -/* 09F14C 8009E54C 0C027298 */ jal menu_element_render -/* 09F150 8009E550 A5A20018 */ sh $v0, 0x18($t5) -/* 09F154 8009E554 8E430000 */ lw $v1, ($s2) -/* 09F158 8009E558 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 09F15C 8009E55C 44819000 */ mtc1 $at, $f18 -/* 09F160 8009E560 C470000C */ lwc1 $f16, 0xc($v1) -/* 09F164 8009E564 00000000 */ nop -/* 09F168 8009E568 46128100 */ add.s $f4, $f16, $f18 -/* 09F16C 8009E56C E464000C */ swc1 $f4, 0xc($v1) -/* 09F170 8009E570 8FAE0048 */ lw $t6, 0x48($sp) -/* 09F174 8009E574 00000000 */ nop -/* 09F178 8009E578 8DCF0000 */ lw $t7, ($t6) -/* 09F17C 8009E57C 00000000 */ nop -/* 09F180 8009E580 85E50000 */ lh $a1, ($t7) -/* 09F184 8009E584 00000000 */ nop -.L8009E588: -/* 09F188 8009E588 00B0001A */ div $zero, $a1, $s0 -/* 09F18C 8009E58C 8E590000 */ lw $t9, ($s2) -/* 09F190 8009E590 16000002 */ bnez $s0, .L8009E59C -/* 09F194 8009E594 00000000 */ nop -/* 09F198 8009E598 0007000D */ break 7 -.L8009E59C: -/* 09F19C 8009E59C 2401FFFF */ li $at, -1 -/* 09F1A0 8009E5A0 16010004 */ bne $s0, $at, .L8009E5B4 -/* 09F1A4 8009E5A4 3C018000 */ lui $at, 0x8000 -/* 09F1A8 8009E5A8 14A10002 */ bne $a1, $at, .L8009E5B4 -/* 09F1AC 8009E5AC 00000000 */ nop -/* 09F1B0 8009E5B0 0006000D */ break 6 -.L8009E5B4: -/* 09F1B4 8009E5B4 00002025 */ move $a0, $zero -/* 09F1B8 8009E5B8 0000C010 */ mfhi $t8 -/* 09F1BC 8009E5BC A7380018 */ sh $t8, 0x18($t9) -/* 09F1C0 8009E5C0 0C027298 */ jal menu_element_render -/* 09F1C4 8009E5C4 00000000 */ nop -/* 09F1C8 8009E5C8 2408FFCF */ li $t0, -49 -/* 09F1CC 8009E5CC 44883000 */ mtc1 $t0, $f6 -/* 09F1D0 8009E5D0 8E490000 */ lw $t1, ($s2) -/* 09F1D4 8009E5D4 46803220 */ cvt.s.w $f8, $f6 -/* 09F1D8 8009E5D8 2404000A */ li $a0, 10 -/* 09F1DC 8009E5DC E528014C */ swc1 $f8, 0x14c($t1) -/* 09F1E0 8009E5E0 8E4A0000 */ lw $t2, ($s2) -/* 09F1E4 8009E5E4 0C027298 */ jal menu_element_render -/* 09F1E8 8009E5E8 E5540150 */ swc1 $f20, 0x150($t2) -/* 09F1EC 8009E5EC 0C01EFC7 */ jal sprite_opaque -/* 09F1F0 8009E5F0 02802025 */ move $a0, $s4 -/* 09F1F4 8009E5F4 240BFFA7 */ li $t3, -89 -/* 09F1F8 8009E5F8 448B5000 */ mtc1 $t3, $f10 -/* 09F1FC 8009E5FC 26B50032 */ addiu $s5, $s5, 0x32 -/* 09F200 8009E600 240D005F */ li $t5, 95 -/* 09F204 8009E604 46805420 */ cvt.s.w $f16, $f10 -/* 09F208 8009E608 01B57023 */ subu $t6, $t5, $s5 -/* 09F20C 8009E60C 8E4C0000 */ lw $t4, ($s2) -/* 09F210 8009E610 448E9000 */ mtc1 $t6, $f18 -/* 09F214 8009E614 E59001EC */ swc1 $f16, 0x1ec($t4) -/* 09F218 8009E618 46809520 */ cvt.s.w $f20, $f18 -/* 09F21C 8009E61C 8E4F0000 */ lw $t7, ($s2) -/* 09F220 8009E620 2404000F */ li $a0, 15 -/* 09F224 8009E624 E5F401F0 */ swc1 $f20, 0x1f0($t7) -/* 09F228 8009E628 8FB80048 */ lw $t8, 0x48($sp) -/* 09F22C 8009E62C 8E480000 */ lw $t0, ($s2) -/* 09F230 8009E630 93190017 */ lbu $t9, 0x17($t8) -/* 09F234 8009E634 0C027298 */ jal menu_element_render -/* 09F238 8009E638 A51901F8 */ sh $t9, 0x1f8($t0) -/* 09F23C 8009E63C C7A4003C */ lwc1 $f4, 0x3c($sp) -/* 09F240 8009E640 8E490000 */ lw $t1, ($s2) -/* 09F244 8009E644 24040010 */ li $a0, 16 -/* 09F248 8009E648 E524020C */ swc1 $f4, 0x20c($t1) -/* 09F24C 8009E64C 8E4A0000 */ lw $t2, ($s2) -/* 09F250 8009E650 00000000 */ nop -/* 09F254 8009E654 E5540210 */ swc1 $f20, 0x210($t2) -/* 09F258 8009E658 8FAB0048 */ lw $t3, 0x48($sp) -/* 09F25C 8009E65C 8E4D0000 */ lw $t5, ($s2) -/* 09F260 8009E660 916C0016 */ lbu $t4, 0x16($t3) -/* 09F264 8009E664 0C027298 */ jal menu_element_render -/* 09F268 8009E668 A5AC0218 */ sh $t4, 0x218($t5) -/* 09F26C 8009E66C 8FAE0048 */ lw $t6, 0x48($sp) -/* 09F270 8009E670 24020003 */ li $v0, 3 -/* 09F274 8009E674 95C3000E */ lhu $v1, 0xe($t6) -/* 09F278 8009E678 00009825 */ move $s3, $zero -/* 09F27C 8009E67C 00008025 */ move $s0, $zero -.L8009E680: -/* 09F280 8009E680 00627824 */ and $t7, $v1, $v0 -/* 09F284 8009E684 144F0002 */ bne $v0, $t7, .L8009E690 -/* 09F288 8009E688 0002C080 */ sll $t8, $v0, 2 -/* 09F28C 8009E68C 26730001 */ addiu $s3, $s3, 1 -.L8009E690: -/* 09F290 8009E690 26100001 */ addiu $s0, $s0, 1 -/* 09F294 8009E694 2A010010 */ slti $at, $s0, 0x10 -/* 09F298 8009E698 1420FFF9 */ bnez $at, .L8009E680 -/* 09F29C 8009E69C 03001025 */ move $v0, $t8 -/* 09F2A0 8009E6A0 26B50032 */ addiu $s5, $s5, 0x32 -/* 09F2A4 8009E6A4 2419005F */ li $t9, 95 -/* 09F2A8 8009E6A8 03354023 */ subu $t0, $t9, $s5 -/* 09F2AC 8009E6AC 44883000 */ mtc1 $t0, $f6 -/* 09F2B0 8009E6B0 24110014 */ li $s1, 20 -/* 09F2B4 8009E6B4 00008025 */ move $s0, $zero -/* 09F2B8 8009E6B8 46803520 */ cvt.s.w $f20, $f6 -.L8009E6BC: -/* 09F2BC 8009E6BC 2629FF84 */ addiu $t1, $s1, -0x7c -/* 09F2C0 8009E6C0 44894000 */ mtc1 $t1, $f8 -/* 09F2C4 8009E6C4 8E4A0000 */ lw $t2, ($s2) -/* 09F2C8 8009E6C8 468042A0 */ cvt.s.w $f10, $f8 -/* 09F2CC 8009E6CC 0213082A */ slt $at, $s0, $s3 -/* 09F2D0 8009E6D0 E54A01AC */ swc1 $f10, 0x1ac($t2) -/* 09F2D4 8009E6D4 8E4B0000 */ lw $t3, ($s2) -/* 09F2D8 8009E6D8 10200004 */ beqz $at, .L8009E6EC -/* 09F2DC 8009E6DC E57401B0 */ swc1 $f20, 0x1b0($t3) -/* 09F2E0 8009E6E0 8E4C0000 */ lw $t4, ($s2) -/* 09F2E4 8009E6E4 10000004 */ b .L8009E6F8 -/* 09F2E8 8009E6E8 A59401B8 */ sh $s4, 0x1b8($t4) -.L8009E6EC: -/* 09F2EC 8009E6EC 8E4D0000 */ lw $t5, ($s2) -/* 09F2F0 8009E6F0 00000000 */ nop -/* 09F2F4 8009E6F4 A5A001B8 */ sh $zero, 0x1b8($t5) -.L8009E6F8: -/* 09F2F8 8009E6F8 0C027298 */ jal menu_element_render -/* 09F2FC 8009E6FC 2404000D */ li $a0, 13 -/* 09F300 8009E700 26100001 */ addiu $s0, $s0, 1 -/* 09F304 8009E704 2A010004 */ slti $at, $s0, 4 -/* 09F308 8009E708 1420FFEC */ bnez $at, .L8009E6BC -/* 09F30C 8009E70C 2631001E */ addiu $s1, $s1, 0x1e -/* 09F310 8009E710 8FAE0048 */ lw $t6, 0x48($sp) -/* 09F314 8009E714 00009825 */ move $s3, $zero -/* 09F318 8009E718 95C30008 */ lhu $v1, 8($t6) -/* 09F31C 8009E71C 02801025 */ move $v0, $s4 -/* 09F320 8009E720 00008025 */ move $s0, $zero -.L8009E724: -/* 09F324 8009E724 00627824 */ and $t7, $v1, $v0 -/* 09F328 8009E728 144F0002 */ bne $v0, $t7, .L8009E734 -/* 09F32C 8009E72C 0002C040 */ sll $t8, $v0, 1 -/* 09F330 8009E730 26730001 */ addiu $s3, $s3, 1 -.L8009E734: -/* 09F334 8009E734 26100001 */ addiu $s0, $s0, 1 -/* 09F338 8009E738 2A010010 */ slti $at, $s0, 0x10 -/* 09F33C 8009E73C 1420FFF9 */ bnez $at, .L8009E724 -/* 09F340 8009E740 03001025 */ move $v0, $t8 -/* 09F344 8009E744 26B5002D */ addiu $s5, $s5, 0x2d -/* 09F348 8009E748 2419005F */ li $t9, 95 -/* 09F34C 8009E74C 03354023 */ subu $t0, $t9, $s5 -/* 09F350 8009E750 44888000 */ mtc1 $t0, $f16 -/* 09F354 8009E754 24110014 */ li $s1, 20 -/* 09F358 8009E758 00008025 */ move $s0, $zero -/* 09F35C 8009E75C 46808520 */ cvt.s.w $f20, $f16 -.L8009E760: -/* 09F360 8009E760 2629FF84 */ addiu $t1, $s1, -0x7c -/* 09F364 8009E764 44899000 */ mtc1 $t1, $f18 -/* 09F368 8009E768 8E4A0000 */ lw $t2, ($s2) -/* 09F36C 8009E76C 46809120 */ cvt.s.w $f4, $f18 -/* 09F370 8009E770 0213082A */ slt $at, $s0, $s3 -/* 09F374 8009E774 E54401CC */ swc1 $f4, 0x1cc($t2) -/* 09F378 8009E778 8E4B0000 */ lw $t3, ($s2) -/* 09F37C 8009E77C 10200004 */ beqz $at, .L8009E790 -/* 09F380 8009E780 E57401D0 */ swc1 $f20, 0x1d0($t3) -/* 09F384 8009E784 8E4C0000 */ lw $t4, ($s2) -/* 09F388 8009E788 10000004 */ b .L8009E79C -/* 09F38C 8009E78C A59401D8 */ sh $s4, 0x1d8($t4) -.L8009E790: -/* 09F390 8009E790 8E4D0000 */ lw $t5, ($s2) -/* 09F394 8009E794 00000000 */ nop -/* 09F398 8009E798 A5A001D8 */ sh $zero, 0x1d8($t5) -.L8009E79C: -/* 09F39C 8009E79C 0C027298 */ jal menu_element_render -/* 09F3A0 8009E7A0 2404000E */ li $a0, 14 -/* 09F3A4 8009E7A4 26100001 */ addiu $s0, $s0, 1 -/* 09F3A8 8009E7A8 24010004 */ li $at, 4 -/* 09F3AC 8009E7AC 1601FFEC */ bne $s0, $at, .L8009E760 -/* 09F3B0 8009E7B0 2631001E */ addiu $s1, $s1, 0x1e -/* 09F3B4 8009E7B4 0C01A142 */ jal sprite_anim_off -/* 09F3B8 8009E7B8 00002025 */ move $a0, $zero -.L8009E7BC: -/* 09F3BC 8009E7BC 8FBF0034 */ lw $ra, 0x34($sp) -/* 09F3C0 8009E7C0 C7B50010 */ lwc1 $f21, 0x10($sp) -/* 09F3C4 8009E7C4 C7B40014 */ lwc1 $f20, 0x14($sp) -/* 09F3C8 8009E7C8 8FB0001C */ lw $s0, 0x1c($sp) -/* 09F3CC 8009E7CC 8FB10020 */ lw $s1, 0x20($sp) -/* 09F3D0 8009E7D0 8FB20024 */ lw $s2, 0x24($sp) -/* 09F3D4 8009E7D4 8FB30028 */ lw $s3, 0x28($sp) -/* 09F3D8 8009E7D8 8FB4002C */ lw $s4, 0x2c($sp) -/* 09F3DC 8009E7DC 8FB50030 */ lw $s5, 0x30($sp) -/* 09F3E0 8009E7E0 03E00008 */ jr $ra -/* 09F3E4 8009E7E4 27BD0060 */ addiu $sp, $sp, 0x60 - diff --git a/src/menu.c b/src/menu.c index bb5a39b1..399f49f5 100644 --- a/src/menu.c +++ b/src/menu.c @@ -431,24 +431,28 @@ unk800DF83C gTitleCinematicText[10] = { s32 gTitleCinematicTextColourCount = 0; // Colours used for the Character Names during the title screen cinematic -MenuColour gTitleCinematicTextColours[4] = { +MenuColour gTitleCinematicTextColours[] = { { 255, 255, 0, 255, 204 }, // Yellow { 0, 255, 0, 255, 153 }, // Green { 0, 255, 255, 255, 102 }, // Cyan { 0, 0, 255, 255, 51 } // Blue }; -UNUSED u8 unused_800DFA10[4] = { 0, 0, 15, 120 }; +UNUSED u8 unused_800DFA10[] = { 0, 0, 15, 120 }; -char *gOptionMenuStrings[7] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL }; +char *gOptionMenuStrings[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL }; -s16 gOptionMenuTextures[8] = { 0x3D, 0x3C, 0x3F, 0x3E, 0x44, -1, -1, 0 }; +s16 gOptionMenuTextures[] = { 0x3D, 0x3C, 0x3F, 0x3E, 0x44, -1, -1, 0 }; -unk800DFA3C gAudioMenuStrings[8] = { - { 160, 80, 0xFF, 0xFF, 0xFF, 0, 0xFF, 0, 0, 12, NULL }, { 160, 104, 0xFF, 0xFF, 0xFF, 0, 0xFF, 0, 0, 12, NULL }, - { 160, 144, 0xFF, 0xFF, 0xFF, 0, 0xFF, 0, 0, 12, NULL }, { 160, 192, 0xFF, 0xFF, 0xFF, 0, 0xFF, 0, 0, 12, NULL }, - { 161, 35, 0, 0, 0, 0xFF, 0x80, 2, 0, 12, NULL }, { 160, 32, 0xFF, 0x80, 0xFF, 0, 0xFF, 2, 0, 12, NULL }, - { 160, 188, 0xFF, 0xFF, 0xFF, 0, 0xFF, 0, 0, 12, NULL }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }, +unk800DFA3C gAudioMenuStrings[] = { + { 160, 80, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 12, NULL }, + { 160, 104, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 12, NULL }, + { 160, 144, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 12, NULL }, + { 160, 192, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 12, NULL }, + { 161, 35, 0, 0, 0, 255, 128, ASSET_FONTS_BIGFONT, 12, NULL }, + { 160, 32, 255, 128, 255, 0, 255, ASSET_FONTS_BIGFONT, 12, NULL }, + { 160, 188, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 12, NULL }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, }; // Current song index used in the music test (from JUKEBOX magic code) @@ -1602,11 +1606,11 @@ void load_menu_text(s32 language) { gAudioOutputStrings[0] = menuText[ASSET_MENU_TEXT_STEREO]; // "STEREO" gAudioOutputStrings[1] = menuText[ASSET_MENU_TEXT_MONO]; // "MONO" gAudioOutputStrings[2] = menuText[ASSET_MENU_TEXT_HEADPHONES]; // "HEADPHONES" - gAudioMenuStrings[1].unkC = menuText[ASSET_MENU_TEXT_SFXVOLUME]; // "SFX VOLUME" - gAudioMenuStrings[2].unkC = menuText[ASSET_MENU_TEXT_MUSICVOLUME]; // "MUSIC VOLUME" - gAudioMenuStrings[3].unkC = menuText[ASSET_MENU_TEXT_RETURN]; // "RETURN" - gAudioMenuStrings[4].unkC = menuText[ASSET_MENU_TEXT_AUDIOOPTIONS]; // "AUDIO OPTIONS" - gAudioMenuStrings[5].unkC = menuText[ASSET_MENU_TEXT_AUDIOOPTIONS]; // "AUDIO OPTIONS" + gAudioMenuStrings[1].text = menuText[ASSET_MENU_TEXT_SFXVOLUME]; // "SFX VOLUME" + gAudioMenuStrings[2].text = menuText[ASSET_MENU_TEXT_MUSICVOLUME]; // "MUSIC VOLUME" + gAudioMenuStrings[3].text = menuText[ASSET_MENU_TEXT_RETURN]; // "RETURN" + gAudioMenuStrings[4].text = menuText[ASSET_MENU_TEXT_AUDIOOPTIONS]; // "AUDIO OPTIONS" + gAudioMenuStrings[5].text = menuText[ASSET_MENU_TEXT_AUDIOOPTIONS]; // "AUDIO OPTIONS" gMusicTestString = menuText[ASSET_MENU_TEXT_MUSICTEST]; // "MUSIC TEST 00" gMagicCodeMenuStrings[0] = menuText[ASSET_MENU_TEXT_ENTERCODE]; // "ENTER CODE" gMagicCodeMenuStrings[1] = menuText[ASSET_MENU_TEXT_CLEARALLCODES]; // "CLEAR ALL CODES" @@ -1745,106 +1749,101 @@ UNUSED void menu_button_uvs(f32 u, f32 v) { gWoodPanelTexScaleV = v * 32.0f; } -// https://decomp.me/scratch/W0adv -#ifdef NON_EQUIVALENT -void func_80080580(Gfx **dList, s32 startX, s32 startY, s32 width, s32 height, s32 borderWidth, s32 borderHeight, +void func_80080580(Gfx **dlist, s32 startX, s32 startY, s32 width, s32 height, s32 borderWidth, s32 borderHeight, s32 colour, TextureHeader *tex) { s32 uVals[4]; s32 vVals[4]; - Vertex *verts; - Triangle *tris; - s32 j; + Vertex *vertices; + Triangle *triangles; s32 i; - s32 texEnabled; + s32 j; + s32 r, g, b, a; + s32 r0, g0, b0, a0; + s8 *texCoords; + s16 *texColors; + u8 *woodPanelTexCoords; + s32 temp; - //((unk80080BC8*)((u8*)gMenuGeometry[gWoodPanelCount] + (gMenuTrisFlip * 4)))->texture = tex; - //((unk80080BC8 *) ((u8 *) gMenuGeometry + (gWoodPanelCount << 5) + (gMenuTrisFlip * 4)))->texture = tex; - //(&(*gMenuGeometry)[gWoodPanelCount] + (gMenuTrisFlip * 4))->texture = tex; - //gMenuGeometry->texture[gWoodPanelCount] = tex; + gMenuGeometry[gWoodPanelCount].texture[gMenuTrisFlip] = tex; if (tex != NULL) { + woodPanelTexCoords = gWoodPanelTexCoords; uVals[0] = 0; - vVals[0] = 0; uVals[1] = gWoodPanelTexScaleU * borderWidth; uVals[2] = (width - borderWidth) * gWoodPanelTexScaleU; uVals[3] = gWoodPanelTexScaleU * width; - vVals[1] = gWoodPanelTexScaleV * borderHeight; + vVals[0] = 0; + j = gWoodPanelTexScaleV; // fake + vVals[1] = j * borderHeight; vVals[2] = (height - borderHeight) * gWoodPanelTexScaleV; vVals[3] = gWoodPanelTexScaleV * height; - tris = ((unk80080BC8 *) ((u8 *) gMenuGeometry + (gWoodPanelCount << 5) + (gMenuTrisFlip * 4)))->triangles; - for (i = 0; i < 5; i++) { - tris[i * 2].uv0.u = uVals[gWoodPanelTexCoords[i][0]]; - tris[i * 2].uv0.v = vVals[gWoodPanelTexCoords[i][1]]; - tris[i * 2].uv1.u = uVals[gWoodPanelTexCoords[i][2]]; - tris[i * 2].uv1.v = vVals[gWoodPanelTexCoords[i][3]]; - tris[i * 2].uv2.u = uVals[gWoodPanelTexCoords[i][4]]; - tris[i * 2].uv2.v = vVals[gWoodPanelTexCoords[i][5]]; - tris[i * 2 + 1].uv0.u = uVals[gWoodPanelTexCoords[i][6]]; - tris[i * 2 + 1].uv0.v = vVals[gWoodPanelTexCoords[i][7]]; - tris[i * 2 + 1].uv1.u = uVals[gWoodPanelTexCoords[i][8]]; - tris[i * 2 + 1].uv1.v = vVals[gWoodPanelTexCoords[i][9]]; - tris[i * 2 + 1].uv2.u = uVals[gWoodPanelTexCoords[i][10]]; - tris[i * 2 + 1].uv2.v = vVals[gWoodPanelTexCoords[i][11]]; + triangles = gMenuGeometry[gWoodPanelCount].triangles[gMenuTrisFlip]; + for (i = 0; i < 10; i += 2) { + if (1) {} + if (1) {} + if (1) {} // fake + triangles[0].uv0.u = uVals[woodPanelTexCoords[0]]; + triangles[0].uv0.v = vVals[woodPanelTexCoords[1]]; + triangles[0].uv1.u = uVals[woodPanelTexCoords[2]]; + triangles[0].uv1.v = vVals[woodPanelTexCoords[3]]; + triangles[0].uv2.u = uVals[woodPanelTexCoords[4]]; + triangles[0].uv2.v = vVals[woodPanelTexCoords[5]]; + triangles[1].uv0.u = uVals[woodPanelTexCoords[6]]; + triangles[1].uv0.v = vVals[woodPanelTexCoords[7]]; + triangles[1].uv1.u = uVals[woodPanelTexCoords[8]]; + triangles[1].uv1.v = vVals[woodPanelTexCoords[9]]; + triangles[1].uv2.u = uVals[woodPanelTexCoords[10]]; + triangles[1].uv2.v = vVals[woodPanelTexCoords[11]]; + woodPanelTexCoords += 12; + triangles += 2; } } - verts = ((unk80080BC8 *) ((u8 *) gMenuGeometry + (gWoodPanelCount << 5) + (gMenuTrisFlip * 4)))->vertices; - for (i = 0; i < 5; i++) { + r0 = ((colour >> 24) & 0xFF); + g0 = ((colour >> 16) & 0xFF); + b0 = ((colour >> 8) & 0xFF); + a0 = (colour & 0xFF); + vertices = gMenuGeometry[gWoodPanelCount].vertices[gMenuTrisFlip]; + for (texColors = gWoodPanelVertColours, texCoords = gWoodPanelVertCoords, i = 0; i < 5; i++) { + r = (texColors[0] * r0) >> 8; + g = (texColors[1] * g0) >> 8; + b = (texColors[2] * b0) >> 8; + a = (texColors[3] * a0) >> 8; + texColors += 4; for (j = 0; j < 4; j++) { - verts[j].x = startX; - verts[j].y = startY; - verts[j].x += (gWoodPanelVertCoords[j][0] * width); - verts[j].x += (gWoodPanelVertCoords[j][1] * borderWidth); - verts[j].y += (gWoodPanelVertCoords[j][2] * height); - verts[j].y += (gWoodPanelVertCoords[j][3] * borderHeight); - verts[j].z = 0; - verts[j].r = (s32) (gWoodPanelVertColours[i][0] * ((colour >> 24) & 0xFF)) >> 8; - verts[j].g = (s32) (gWoodPanelVertColours[i][1] * ((colour >> 16) & 0xFF)) >> 8; - verts[j].b = (s32) (gWoodPanelVertColours[i][2] * ((colour >> 8) & 0xFF)) >> 8; - verts[j].a = (s32) (gWoodPanelVertColours[i][3] * (colour & 0xFF)) >> 8; + vertices->x = startX; + vertices->x += texCoords[0] * width; + vertices->x += (texCoords[1] * borderWidth); + vertices->y = startY; + vertices->y += texCoords[2] * height; + vertices->y += texCoords[3] * borderHeight; + vertices->z = 0; + vertices->r = r; + vertices->g = g; + vertices->b = b; + vertices->a = a; + texCoords += 4; + vertices++; } } - if (dList != NULL) { - //((unk80080BC8 *) ((u8 *) gMenuGeometry + (gWoodPanelCount << 5) + (gMenuTrisFlip * 4)))->unk18 = 1; - gSPDisplayList((*dList)++, &dMenuHudSettings); + if (dlist != NULL) { + gMenuGeometry[gWoodPanelCount].unk18[gMenuTrisFlip] = 1; + gSPDisplayList((*dlist)++, &dMenuHudSettings); if (tex != NULL) { - texEnabled = TRUE; - gDkrDmaDisplayList((*dList)++, OS_K0_TO_PHYSICAL(&dMenuHudDrawModes[1]), 2); - gDkrDmaDisplayList((*dList)++, OS_K0_TO_PHYSICAL(tex->cmd), tex->numberOfCommands); + gDkrDmaDisplayList((*dlist)++, OS_K0_TO_PHYSICAL(&dMenuHudDrawModes[1]), 2); + gDkrDmaDisplayList((*dlist)++, OS_PHYSICAL_TO_K0(tex->cmd), tex->numberOfCommands); + i = TRUE; // texEnabled } else { - texEnabled = FALSE; - gDkrDmaDisplayList((*dList)++, OS_K0_TO_PHYSICAL(&dMenuHudDrawModes[0]), 2); + gDkrDmaDisplayList((*dlist)++, OS_K0_TO_PHYSICAL(&dMenuHudDrawModes[0]), 2); + i = FALSE; // texEnabled } - gDPPipeSync((*dList)++); - /* - temp_v0_6 = *dList; - *dList = temp_v0_6 + 8; - temp_v0_6->words.w0 = (((((*(gMenuGeometry + (gWoodPanelCount << 5) + (gMenuTrisFlip * 4)) + 0x80000000) & 6) | - 0x98) & 0xFF) << 0x10) | 0x04000000 | 0x170; temp_v0_6->words.w1 = *(gMenuGeometry + (gWoodPanelCount << 5) + - (gMenuTrisFlip - * 4)) + 0x80000000; - */ - gSPVertexDKR( - (*dList)++, - OS_K0_TO_PHYSICAL(((unk80080BC8 *) ((u8 *) gMenuGeometry + (i * 32) + (gMenuTrisFlip * 4)))->vertices), 20, - 0); - /* - temp_v0_7 = *dList; - *dList = temp_v0_7 + 8; - temp_v0_7->words.w0 = (((texEnabled | 0x90) & 0xFF) << 0x10) | 0x05000000 | 0xA0; - temp_v0_7->words.w1 = (gMenuGeometry + (gWoodPanelCount << 5) + (gMenuTrisFlip * 4))->unk8 + 0x80000000; - */ - gSPPolygon( - (*dList)++, - OS_K0_TO_PHYSICAL(((unk80080BC8 *) ((u8 *) gMenuGeometry + (i * 32) + (gMenuTrisFlip * 4)))->triangles), 10, - texEnabled); - reset_render_settings(dList); + gDPPipeSync((*dlist)++); + gSPVertexDKR((*dlist)++, OS_PHYSICAL_TO_K0(gMenuGeometry[gWoodPanelCount].vertices[gMenuTrisFlip]), 20, 0); + gSPPolygon((*dlist)++, OS_PHYSICAL_TO_K0(gMenuGeometry[gWoodPanelCount].triangles[gMenuTrisFlip]), 10, i); + reset_render_settings(dlist); } else { - //((unk80080BC8 *) ((u8 *) gMenuGeometry + (gWoodPanelCount * 32) + (gMenuTrisFlip * 4)))->unk18 = 0; + gMenuGeometry[gWoodPanelCount].unk18[gMenuTrisFlip] = 0; } gWoodPanelCount++; } -#else -GLOBAL_ASM("asm/non_matchings/menu/func_80080580.s") -#endif void func_80080BC8(Gfx **dList) { s16 temp_a1; @@ -3270,20 +3269,91 @@ void menu_audio_options_init(void) { gMusicVolumeSliderValue = music_volume_config(); gSfxVolumeSliderValue = get_sfx_volume_slider(); if (gActiveMagicCodes & CHEAT_MUSIC_MENU) { // Check if "JUKEBOX" cheat is active - gAudioMenuStrings[6].unkC = gMusicTestString; - gAudioMenuStrings[3].unk2 = 212; + gAudioMenuStrings[6].text = gMusicTestString; + gAudioMenuStrings[3].y = 212; music_voicelimit_set(32); gMenuStage = 5; } else { - gAudioMenuStrings[6].unkC = NULL; - gAudioMenuStrings[3].unk2 = 192; + gAudioMenuStrings[6].text = NULL; + gAudioMenuStrings[3].y = 192; gMenuStage = 4; } load_font(ASSET_FONTS_BIGFONT); } // Probably soundoption_render -GLOBAL_ASM("asm/non_matchings/menu/func_80084854.s") +void func_80084854(s32 updateRate) { + s32 i; + s32 yOffset; + s32 j; + s32 temp; + + temp = gMusicTestSongIndex; + + for (i = 0; (gMusicTestString[i] < '0') || (gMusicTestString[i] > '9'); i++) {} + + j = temp / 10; + gMusicTestString[i] = '0' + j; + temp -= (j * 10); + i++; + gMusicTestString[i] = '0' + temp; + + temp = gOptionBlinkTimer * 8; + if (temp >= 256) { + temp = 511 - temp; + } + gAudioMenuStrings[0].text = gAudioOutputStrings[gAudioOutputType]; + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); + + if (osTvType == OS_TV_TYPE_PAL) { + yOffset = 101; + } else { + yOffset = 113; + } + func_80080580(NULL, -72, 120 - yOffset, 144, 14, 6, 4, COLOUR_RGBA32(255, 192, 64, 255), + (TextureHeader *) gMenuAssets[TEXTURE_UNK_44]); + func_80080580(NULL, -72, 80 - yOffset, 144, 14, 6, 4, COLOUR_RGBA32(255, 192, 64, 255), + (TextureHeader *) gMenuAssets[TEXTURE_UNK_44]); + func_80080BC8(&sMenuCurrDisplayList); + dialogue_clear(7); + set_current_dialogue_background_colour(7, 0, 0, 0, 255); + set_current_dialogue_box_coords(7, 94, 117, 226, 123); + render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 7); + set_current_dialogue_box_coords(7, 94, 157, 226, 163); + render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 7); + texrect_draw(&sMenuCurrDisplayList, gMenuSelectionArrowLeft, (gSfxVolumeSliderValue >> 1) + 96, 120, 255, 255, 255, + 255); + texrect_draw(&sMenuCurrDisplayList, gMenuSelectionArrowLeft, (gMusicVolumeSliderValue >> 1) + 96, 160, 255, 255, + 255, 255); + reset_render_settings(&sMenuCurrDisplayList); + set_text_background_colour(0, 0, 0, 0); + + // j must be here. + j = 0; + + if (gMenuStage < 5) { + i = gOptionsMenuItemIndex; + } else if (gOptionsMenuItemIndex < 3) { + i = gOptionsMenuItemIndex; + } else if (gOptionsMenuItemIndex == 3) { + i = 6; + } else { + i = 3; + } + + // Must be a for loop? + for (; gAudioMenuStrings[j].text != NULL; j++) { + set_text_font(gAudioMenuStrings[j].font); + if (j == i) { + set_text_colour(255, 255, 255, temp, 255); + } else { + set_text_colour(gAudioMenuStrings[j].red, gAudioMenuStrings[j].green, gAudioMenuStrings[j].blue, + gAudioMenuStrings[j].alpha, gAudioMenuStrings[j].opacity); + } + draw_text(&sMenuCurrDisplayList, gAudioMenuStrings[j].x, gAudioMenuStrings[j].y, gAudioMenuStrings[j].text, + gAudioMenuStrings[j].alignmentFlags); + } +} /** * Handles the input for the audio options menu. @@ -3307,7 +3377,7 @@ s32 menu_audio_options_loop(s32 updateRate) { } } if (gMenuDelay > -20 && gMenuDelay < 20) { - func_80084854(); + func_80084854(updateRate); } if (gIgnorePlayerInputTime == 0) { contX = 0; @@ -8572,10 +8642,9 @@ void func_80092188(s32 updateRate) { yOffset = ((xOffset + 20) * gTrackSelectViewPortHalfY) / 40; yOffset2 = yOffset + gTrackSelectViewPortHalfY; viewport_menu_set(0, 80 - (xOffset * 4), gTrackSelectViewPortHalfY - yOffset, (xOffset * 4) + 240, yOffset2); - // TODO: gMenuImages is not just an array of MenuAsset? - ((f32 *) gMenuImages)[34] = (f32) (sMenuImageProperties[4].scale * (1.0f + ((f32) xOffset / 20.0f))); - ((f32 *) gMenuImages)[42] = (f32) (sMenuImageProperties[5].scale * (1.0f + ((f32) xOffset / 20.0f))); - ((f32 *) gMenuImages)[50] = (f32) (sMenuImageProperties[6].scale * (1.0f + ((f32) xOffset / 20.0f))); + gMenuImages[4].scale = sMenuImageProperties[4].scale * (1.0f + ((f32) xOffset / 20.0f)); + gMenuImages[5].scale = sMenuImageProperties[5].scale * (1.0f + ((f32) xOffset / 20.0f)); + gMenuImages[6].scale = sMenuImageProperties[6].scale * (1.0f + ((f32) xOffset / 20.0f)); } if (gMenuDelay > 0) { sMenuMusicVolume -= updateRate * 4; @@ -9600,55 +9669,56 @@ void postrace_music_fade(s32 updateRate) { #ifdef NON_MATCHING // postrace_render void func_80094D28(UNUSED s32 updateRate) { - s32 y; - s32 textAlpha; - s32 viewportULX; - s32 viewportLRY; - s32 viewportULY; + s32 temp; + s32 var_s3; Settings *settings; - s32 j; + s32 sp50; + s32 var_s2; + s32 var_s0; + s32 sp40; s32 i; s32 sp3C; - s32 temp; + s32 var_v0; settings = get_settings(); if (gNumberOfActivePlayers == 1) { set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); } camDisableUserView(0, TRUE); - textAlpha = gOptionBlinkTimer * 8; - if (textAlpha > 255) { - textAlpha = 511 - textAlpha; + var_s3 = gOptionBlinkTimer * 8; + if (var_s3 > 255) { + var_s3 = 511 - var_s3; } switch (gMenuStage) { case 1: - temp = gPostRaceTimer; - if (temp > 60) { - temp = 60; + var_s0 = gPostRaceTimer; + if (var_s0 > 60) { + var_s0 = 60; } - viewportULY = ((gTrackSelectViewPortHalfY - ((gTrackSelectViewPortHalfY * 4) / 5)) * temp) / 60; - viewportLRY = - gTrackSelectViewportY - (((gTrackSelectViewPortHalfY - (gTrackSelectViewPortHalfY / 5)) * temp) / 60); - viewportULX = (temp * 80) / 60; - viewport_menu_set(0, viewportULX, viewportULY, SCREEN_WIDTH - viewportULX, viewportLRY); + var_s2 = ((gTrackSelectViewPortHalfY - ((gTrackSelectViewPortHalfY * 4) / 5)) * var_s0) / 60; + temp = var_s2; + sp50 = + gTrackSelectViewportY - (((gTrackSelectViewPortHalfY - (gTrackSelectViewPortHalfY / 5)) * var_s0) / 60); + var_v0 = (var_s0 * 80) / 60; + viewport_menu_set(0, var_v0, temp, SCREEN_WIDTH - var_v0, sp50); gMenuImages[4].x = 0.0f; - gMenuImages[4].y = gTrackSelectViewPortHalfY - ((viewportULY + viewportLRY) >> 1); - gMenuImages[4].scale = sMenuImageProperties[4].scale * (2.0f - (temp / 60.0f)); + gMenuImages[4].y = gTrackSelectViewPortHalfY - ((var_s2 + sp50) >> 1); + gMenuImages[4].scale = sMenuImageProperties[4].scale * (2.0f - (var_s0 / 60.0f)); break; case 2: for (i = 0; i < 3; i++) { if (settings->display_times && settings->racers[0].best_times & (1 << i)) { - gRaceResultsMenuElements[i + 3].filterGreen = 192 - ((textAlpha * 3) >> 2); - gRaceResultsMenuElements[i + 3].filterBlue = 255 - textAlpha; + gRaceResultsMenuElements[i + 3].filterGreen = 192 - ((var_s3 * 3) >> 2); + gRaceResultsMenuElements[i + 3].filterBlue = 255 - var_s3; } else { gRaceResultsMenuElements[i + 3].filterGreen = 192; gRaceResultsMenuElements[i + 3].filterBlue = 255; } } if (settings->display_times && settings->racers[0].best_times & (1 << 7)) { - gRaceResultsMenuElements[6].filterRed = (textAlpha >> 1) + 128; - gRaceResultsMenuElements[6].filterGreen = 255 - textAlpha; - gRaceResultsMenuElements[6].filterBlue = 255 - textAlpha; + gRaceResultsMenuElements[6].filterRed = (var_s3 >> 1) + 128; + gRaceResultsMenuElements[6].filterGreen = 255 - var_s3; + gRaceResultsMenuElements[6].filterBlue = 255 - var_s3; } else { gRaceResultsMenuElements[6].filterRed = 128; gRaceResultsMenuElements[6].filterGreen = 255; @@ -9656,38 +9726,37 @@ void func_80094D28(UNUSED s32 updateRate) { } break; case 3: - for (j = 0; j < 8; j++) { - i = j; + for (sp40 = 0; sp40 < 8; sp40++) { + i = sp40; sp3C = 255; if (is_in_two_player_adventure()) { - i = j - 1; + i = sp40 - 1; if (i == settings->racers[1].starting_position) { - sp3C = (textAlpha >> 1) + 128; + sp3C = (var_s3 >> 1) + 128; } } if (i == settings->racers[0].starting_position) { - sp3C = (textAlpha >> 1) + 128; + sp3C = (var_s3 >> 1) + 128; } - if (y) {} // Fake - gRaceOrderMenuElements[7 - j].filterRed = sp3C; - gRaceOrderMenuElements[7 - j].filterGreen = sp3C; - gRaceOrderMenuElements[7 - j].filterBlue = sp3C; + gRaceOrderMenuElements[7 - sp40].filterRed = sp3C; + gRaceOrderMenuElements[7 - sp40].filterGreen = sp3C; + gRaceOrderMenuElements[7 - sp40].filterBlue = sp3C; } break; case 5: if (settings->display_times && settings->racers[0].best_times & (s8) ~(1 << 7)) { gRecordTimesMenuElements[6].filterRed = 255; - gRecordTimesMenuElements[6].filterGreen = 192 - ((textAlpha * 3) >> 2); - gRecordTimesMenuElements[6].filterBlue = 255 - textAlpha; + gRecordTimesMenuElements[6].filterGreen = 192 - ((var_s3 * 3) >> 2); + gRecordTimesMenuElements[6].filterBlue = 255 - var_s3; } else { gRecordTimesMenuElements[6].filterRed = 255; gRecordTimesMenuElements[6].filterGreen = 192; gRecordTimesMenuElements[6].filterBlue = 255; } if (settings->display_times && settings->racers[0].best_times & (1 << 7)) { - gRecordTimesMenuElements[3].filterRed = (textAlpha >> 1) + 128; - gRecordTimesMenuElements[3].filterGreen = 255 - textAlpha; - gRecordTimesMenuElements[3].filterBlue = 255 - textAlpha; + gRecordTimesMenuElements[3].filterRed = (var_s3 >> 1) + 128; + gRecordTimesMenuElements[3].filterGreen = 255 - var_s3; + gRecordTimesMenuElements[3].filterBlue = 255 - var_s3; } else { gRecordTimesMenuElements[3].filterRed = 128; gRecordTimesMenuElements[3].filterGreen = 255; @@ -9701,62 +9770,65 @@ void func_80094D28(UNUSED s32 updateRate) { set_current_text_background_colour(7, 0, 0, 0, 0); if (gTracksSaveGhost != 0) { - temp = 1; + var_s0 = 1; } else if (gPostRaceMessage != NULL) { - temp = gPostRaceLineCount; + var_s0 = gPostRaceLineCount; } else { - temp = gResultOptionCount; + var_s0 = gResultOptionCount; } - if (temp >= 5) { - viewportULX = 2; - viewportLRY = 13; + if (var_s0 >= 5) { + var_v0 = 2; + sp50 = 13; } else { - viewportULX = 0; - viewportLRY = 16; + var_v0 = 0; + sp50 = 16; } - viewportULY = ((temp * viewportLRY) + 1) >> 1; - temp = 192; + var_s2 = ((var_s0 * sp50) + 1) >> 1; + var_s0 = 192; if (osTvType == OS_TV_TYPE_PAL) { - temp = 218; + var_s0 = 218; } - set_current_dialogue_box_coords(7, 0, temp - viewportULY - viewportULX - 4, SCREEN_WIDTH, - temp + viewportULY + viewportULX + 4); + set_current_dialogue_box_coords(7, 0, var_s0 - var_s2 - var_v0 - 4, SCREEN_WIDTH, + var_s0 + var_s2 + var_v0 + 4); set_current_dialogue_background_colour(7, 64, 64, 255, 0); set_current_text_colour(7, 255, 0, 255, 64, 255); if (gTracksSaveGhost != 0) { render_dialogue_text(7, POS_CENTRED, 12, gMenuText[ASSET_MENU_TEXT_PLEASEWAIT], 1, ALIGN_MIDDLE_CENTER); } else if (gPostRaceMessage != NULL) { - for (y = 12, temp = 0; temp < gPostRaceLineCount; temp++, y += viewportLRY) { - render_dialogue_text(7, POS_CENTRED, y, gPostRaceMessage[temp], 1, ALIGN_MIDDLE_CENTER); + var_s2 = 12; + for (var_s0 = 0; var_s0 < gPostRaceLineCount; var_s0++) { + render_dialogue_text(7, POS_CENTRED, var_s2, gPostRaceMessage[var_s0], 1, ALIGN_MIDDLE_CENTER); + var_s2 += sp50; } } else { - if (y && y) {} // fake - viewportULY -= 24; + var_s2 -= 24; if (gMenuSubOption != 0) { - render_dialogue_text(7, POS_CENTRED, viewportULY + 8, gMenuText[ASSET_MENU_TEXT_QUITGAMETITLE], 1, + render_dialogue_text(7, POS_CENTRED, var_s2 + 8, gMenuText[ASSET_MENU_TEXT_QUITGAMETITLE], 1, ALIGN_MIDDLE_CENTER); - temp = 0; + var_s0 = 0; if (gMenuSubOption == 1) { - temp = textAlpha; + var_s0 = var_s3; } - set_current_text_colour(7, 255, 255, 255, temp, 255); - render_dialogue_text(7, POS_CENTRED, viewportULY + 26, gMenuText[ASSET_MENU_TEXT_OK], 1, + set_current_text_colour(7, 255, 255, 255, var_s0, 255); + render_dialogue_text(7, POS_CENTRED, var_s2 + 26, gMenuText[ASSET_MENU_TEXT_OK], 1, ALIGN_MIDDLE_CENTER); - temp = 0; + var_s0 = 0; if (gMenuSubOption == 2) { - temp = textAlpha; + var_s0 = var_s3; } - set_current_text_colour(7, 255, 255, 255, temp, 255); - render_dialogue_text(7, POS_CENTRED, viewportULY + 42, gMenuText[ASSET_MENU_TEXT_CANCEL], 1, + set_current_text_colour(7, 255, 255, 255, var_s0, 255); + render_dialogue_text(7, POS_CENTRED, var_s2 + 42, gMenuText[ASSET_MENU_TEXT_CANCEL], 1, ALIGN_MIDDLE_CENTER); } else { - for (y = 12, temp = 0; temp < gResultOptionCount; temp++, y += viewportLRY) { - if (temp == gMenuOption) { - set_current_text_colour(7, 255, 255, 255, textAlpha, 255); + for (var_s2 = 12, var_s0 = 0; var_s0 < gResultOptionCount; var_s0++) { + if (var_s0 == gMenuOption) { + set_current_text_colour(7, 255, 255, 255, var_s3, 255); } else { set_current_text_colour(7, 255, 255, 255, 0, 255); } - render_dialogue_text(7, SCREEN_WIDTH_HALF, y, gResultOptionText[temp], 1, ALIGN_MIDDLE_CENTER); + render_dialogue_text(7, SCREEN_WIDTH_HALF, var_s2, gResultOptionText[var_s0], 1, + ALIGN_MIDDLE_CENTER); + var_s2 += sp50; } } } diff --git a/src/menu.h b/src/menu.h index ba0a241d..5f2f2feb 100644 --- a/src/menu.h +++ b/src/menu.h @@ -336,17 +336,16 @@ typedef struct unk800DF83C { } unk800DF83C; typedef struct unk800DFA3C { - s16 unk0; - s16 unk2; - u8 unk4; - u8 unk5; - u8 unk6; - u8 unk7; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - char *unkC; + /* 0x00 */ s16 x; + /* 0x02 */ s16 y; + /* 0x04 */ u8 red; + /* 0x05 */ u8 green; + /* 0x06 */ u8 blue; + /* 0x07 */ u8 alpha; + /* 0x08 */ u8 opacity; + /* 0x09 */ u8 font; + /* 0x0A */ s16 alignmentFlags; + /* 0x0C */ char *text; } unk800DFA3C; typedef struct ButtonElement { @@ -684,7 +683,7 @@ void func_8007FFEC(s32 arg0); SIDeviceStatus func_80087F14(s32 *controllerIndex, s32 arg1); void set_gIntDisFlag(s8 setting); void init_save_data(void); -void func_80080580(Gfx **dList, s32 startX, s32 startY, s32 width, s32 height, s32 borderWidth, s32 borderHeight, +void func_80080580(Gfx **dlist, s32 startX, s32 startY, s32 width, s32 height, s32 borderWidth, s32 borderHeight, s32 colour, TextureHeader *tex); void fileselect_input_copy(s32 updateRate); @@ -692,7 +691,7 @@ s32 func_8008F618(Gfx **dList, MatrixS **mtx); 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); +void func_80084854(s32 updateRate); void func_80098774(s32); void func_80094D28(UNUSED s32 updateRate);