From cf2fa915b9e3b358f091bdfb59b42baff38a1246 Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Tue, 31 Oct 2023 16:09:58 -0400 Subject: [PATCH] =?UTF-8?q?Halloween!=20=F0=9F=8E=8363%=20matched!=20(#430?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Match func_80085B9C * Match draw_menu_elements * Match render_file_select_menu * Minor cleanup and semi documenting * Fix some warnings * Match func_800871D8 * More SIDeviceStatus stuff * Update progress * Fix non equivalent * Update filter alpha to blend factor * Fixed minor spacing issue * Better floats math. --- README.md | 52 +- asm/non_matchings/menu/draw_menu_elements.s | 463 ----------- asm/non_matchings/menu/func_80085B9C.s | 354 -------- asm/non_matchings/menu/func_800871D8.s | 202 ----- asm/non_matchings/menu/func_80096978.s | 8 +- .../menu/render_file_select_menu.s | 580 ------------- include/structs.h | 3 +- src/camera.c | 8 +- src/camera.h | 2 +- src/game_ui.c | 48 +- src/menu.c | 787 +++++++++--------- src/menu.h | 16 +- src/object_models.c | 1 + src/objects.c | 10 +- src/objects.h | 2 +- src/racer.c | 2 +- src/racer.h | 3 +- src/save_data.c | 38 +- src/save_data.h | 16 +- src/waves.c | 2 +- 20 files changed, 521 insertions(+), 2076 deletions(-) delete mode 100644 asm/non_matchings/menu/draw_menu_elements.s delete mode 100644 asm/non_matchings/menu/func_80085B9C.s delete mode 100644 asm/non_matchings/menu/func_800871D8.s delete mode 100644 asm/non_matchings/menu/render_file_select_menu.s diff --git a/README.md b/README.md index 80834aaf..f8fee606 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 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 30, 2023, this is our current score: +As of October 31, 2023, this is our current score: -    Decomp progress: 62.34% +    Decomp progress: 63.02%     Documentation progress: 34.35% @@ -128,31 +128,31 @@ s32 is_drumstick_unlocked(void) { ``` -As of October 30th, 2023, this is our current score: +As of October 31st, 2023, this is our current score: ``` - ====================================================================== - ADVENTURE ONE (ASM -> C Decompilation) - -------------------------- 62.34% Complete --------------------------- - # Decompiled functions: 1656 - # GLOBAL_ASM remaining: 189 - # NON_MATCHING functions: 14 - # NON_EQUIVALENT WIP functions: 55 - ---------------------------- Game Status ----------------------------- - Balloons: 30/47, Keys: 3/4, Trophies: 2/5 - T.T. Amulets: 3/4, Wizpig Amulets: 3/4 - ---------------------------------------------------------------------- - We are participating in the Trophy Race of Sherbet Island. (Round One) - ====================================================================== - ADVENTURE TWO (Cleanup & Documentation) - -------------------------- 34.35% Complete --------------------------- - # Documented functions: 761 - # Undocumented remaining: 807 - ---------------------------- 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. (2 opponents remain) - ====================================================================== + ======================================================================== + ADVENTURE ONE (ASM -> C Decompilation) + --------------------------- 63.02% Complete ---------------------------- + # Decompiled functions: 1660 + # GLOBAL_ASM remaining: 185 + # NON_MATCHING functions: 14 + # NON_EQUIVALENT WIP functions: 52 + ----------------------------- Game Status ------------------------------ + Balloons: 30/47, Keys: 3/4, Trophies: 2/5 + T.T. Amulets: 3/4, Wizpig Amulets: 3/4 + ------------------------------------------------------------------------ + We are participating in the Trophy Race of Sherbet Island. (Round Three) + ======================================================================== + ADVENTURE TWO (Cleanup & Documentation) + --------------------------- 34.35% Complete ---------------------------- + # Documented functions: 761 + # Undocumented remaining: 807 + ----------------------------- 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. (2 opponents remain) + ======================================================================== ``` diff --git a/asm/non_matchings/menu/draw_menu_elements.s b/asm/non_matchings/menu/draw_menu_elements.s deleted file mode 100644 index 8c4c5064..00000000 --- a/asm/non_matchings/menu/draw_menu_elements.s +++ /dev/null @@ -1,463 +0,0 @@ -.late_rodata -glabel jpt_800E836C -.word L800823E8, L80082454, L800824B8, L80082524, L8008256C, L80082608, L80082760, L800827C0 - -.text -glabel draw_menu_elements -/* 082DEC 800821EC 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 082DF0 800821F0 E7B4003C */ swc1 $f20, 0x3c($sp) -/* 082DF4 800821F4 4486A000 */ mtc1 $a2, $f20 -/* 082DF8 800821F8 AFB5005C */ sw $s5, 0x5c($sp) -/* 082DFC 800821FC AFB00048 */ sw $s0, 0x48($sp) -/* 082E00 80082200 24010004 */ li $at, 4 -/* 082E04 80082204 00A08025 */ move $s0, $a1 -/* 082E08 80082208 AFBF006C */ sw $ra, 0x6c($sp) -/* 082E0C 8008220C AFBE0068 */ sw $fp, 0x68($sp) -/* 082E10 80082210 AFB70064 */ sw $s7, 0x64($sp) -/* 082E14 80082214 AFB60060 */ sw $s6, 0x60($sp) -/* 082E18 80082218 AFB40058 */ sw $s4, 0x58($sp) -/* 082E1C 8008221C AFB30054 */ sw $s3, 0x54($sp) -/* 082E20 80082220 AFB20050 */ sw $s2, 0x50($sp) -/* 082E24 80082224 AFB1004C */ sw $s1, 0x4c($sp) -/* 082E28 80082228 E7B70040 */ swc1 $f23, 0x40($sp) -/* 082E2C 8008222C E7B60044 */ swc1 $f22, 0x44($sp) -/* 082E30 80082230 E7B50038 */ swc1 $f21, 0x38($sp) -/* 082E34 80082234 AFA40070 */ sw $a0, 0x70($sp) -/* 082E38 80082238 1081018F */ beq $a0, $at, .L80082878 -/* 082E3C 8008223C 0000A825 */ move $s5, $zero -/* 082E40 80082240 3C168012 */ lui $s6, %hi(sMenuCurrDisplayList) # $s6, 0x8012 -/* 082E44 80082244 26D663A0 */ addiu $s6, %lo(sMenuCurrDisplayList) # addiu $s6, $s6, 0x63a0 -/* 082E48 80082248 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 082E4C 8008224C 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 082E50 80082250 0C019FCB */ jal set_ortho_matrix_view -/* 082E54 80082254 02C02025 */ move $a0, $s6 -/* 082E58 80082258 8E110014 */ lw $s1, 0x14($s0) -/* 082E5C 8008225C 3C013B80 */ li $at, 0x3B800000 # 0.003906 -/* 082E60 80082260 12200175 */ beqz $s1, .L80082838 -/* 082E64 80082264 3C17800E */ lui $s7, %hi(gDrawElementsYOffset) # $s7, 0x800e -/* 082E68 80082268 3C1E800E */ lui $fp, %hi(gDrawElementsRegionYOffset) # $fp, 0x800e -/* 082E6C 8008226C 3C14800E */ lui $s4, %hi(gMenuImageStack) # $s4, 0x800e -/* 082E70 80082270 4481B000 */ mtc1 $at, $f22 -/* 082E74 80082274 8FA40070 */ lw $a0, 0x70($sp) -/* 082E78 80082278 2694F75C */ addiu $s4, %lo(gMenuImageStack) # addiu $s4, $s4, -0x8a4 -/* 082E7C 8008227C 27DEF79C */ addiu $fp, %lo(gDrawElementsRegionYOffset) # addiu $fp, $fp, -0x864 -/* 082E80 80082280 26F7F7A0 */ addiu $s7, %lo(gDrawElementsYOffset) # addiu $s7, $s7, -0x860 -.L80082284: -/* 082E84 80082284 3C0F8012 */ lui $t7, %hi(D_80126850) # $t7, 0x8012 -/* 082E88 80082288 25EF6850 */ addiu $t7, %lo(D_80126850) # addiu $t7, $t7, 0x6850 -/* 082E8C 8008228C 11F10166 */ beq $t7, $s1, .L80082828 -/* 082E90 80082290 00000000 */ nop -/* 082E94 80082294 14800022 */ bnez $a0, .L80082320 -/* 082E98 80082298 24010001 */ li $at, 1 -/* 082E9C 8008229C 86020000 */ lh $v0, ($s0) -/* 082EA0 800822A0 86180004 */ lh $t8, 4($s0) -/* 082EA4 800822A4 86030002 */ lh $v1, 2($s0) -/* 082EA8 800822A8 0302C823 */ subu $t9, $t8, $v0 -/* 082EAC 800822AC 44992000 */ mtc1 $t9, $f4 -/* 082EB0 800822B0 860A0006 */ lh $t2, 6($s0) -/* 082EB4 800822B4 468021A0 */ cvt.s.w $f6, $f4 -/* 082EB8 800822B8 01435823 */ subu $t3, $t2, $v1 -/* 082EBC 800822BC 448B8000 */ mtc1 $t3, $f16 -/* 082EC0 800822C0 46143202 */ mul.s $f8, $f6, $f20 -/* 082EC4 800822C4 4448F800 */ cfc1 $t0, $31 -/* 082EC8 800822C8 00000000 */ nop -/* 082ECC 800822CC 35010003 */ ori $at, $t0, 3 -/* 082ED0 800822D0 38210002 */ xori $at, $at, 2 -/* 082ED4 800822D4 44C1F800 */ ctc1 $at, $31 -/* 082ED8 800822D8 00000000 */ nop -/* 082EDC 800822DC 460042A4 */ cvt.w.s $f10, $f8 -/* 082EE0 800822E0 44C8F800 */ ctc1 $t0, $31 -/* 082EE4 800822E4 44095000 */ mfc1 $t1, $f10 -/* 082EE8 800822E8 468084A0 */ cvt.s.w $f18, $f16 -/* 082EEC 800822EC 01229021 */ addu $s2, $t1, $v0 -/* 082EF0 800822F0 46149102 */ mul.s $f4, $f18, $f20 -/* 082EF4 800822F4 444CF800 */ cfc1 $t4, $31 -/* 082EF8 800822F8 00000000 */ nop -/* 082EFC 800822FC 35810003 */ ori $at, $t4, 3 -/* 082F00 80082300 38210002 */ xori $at, $at, 2 -/* 082F04 80082304 44C1F800 */ ctc1 $at, $31 -/* 082F08 80082308 00000000 */ nop -/* 082F0C 8008230C 460021A4 */ cvt.w.s $f6, $f4 -/* 082F10 80082310 440D3000 */ mfc1 $t5, $f6 -/* 082F14 80082314 44CCF800 */ ctc1 $t4, $31 -/* 082F18 80082318 10000028 */ b .L800823BC -/* 082F1C 8008231C 01A39821 */ addu $s3, $t5, $v1 -.L80082320: -/* 082F20 80082320 14810005 */ bne $a0, $at, .L80082338 -/* 082F24 80082324 00000000 */ nop -/* 082F28 80082328 86120004 */ lh $s2, 4($s0) -/* 082F2C 8008232C 86130006 */ lh $s3, 6($s0) -/* 082F30 80082330 10000023 */ b .L800823C0 -/* 082F34 80082334 920C0013 */ lbu $t4, 0x13($s0) -.L80082338: -/* 082F38 80082338 86020004 */ lh $v0, 4($s0) -/* 082F3C 8008233C 860E0008 */ lh $t6, 8($s0) -/* 082F40 80082340 86030006 */ lh $v1, 6($s0) -/* 082F44 80082344 01C27823 */ subu $t7, $t6, $v0 -/* 082F48 80082348 448F4000 */ mtc1 $t7, $f8 -/* 082F4C 8008234C 8608000A */ lh $t0, 0xa($s0) -/* 082F50 80082350 468042A0 */ cvt.s.w $f10, $f8 -/* 082F54 80082354 01034823 */ subu $t1, $t0, $v1 -/* 082F58 80082358 44892000 */ mtc1 $t1, $f4 -/* 082F5C 8008235C 46145402 */ mul.s $f16, $f10, $f20 -/* 082F60 80082360 4458F800 */ cfc1 $t8, $31 -/* 082F64 80082364 00000000 */ nop -/* 082F68 80082368 37010003 */ ori $at, $t8, 3 -/* 082F6C 8008236C 38210002 */ xori $at, $at, 2 -/* 082F70 80082370 44C1F800 */ ctc1 $at, $31 -/* 082F74 80082374 00000000 */ nop -/* 082F78 80082378 460084A4 */ cvt.w.s $f18, $f16 -/* 082F7C 8008237C 44D8F800 */ ctc1 $t8, $31 -/* 082F80 80082380 44199000 */ mfc1 $t9, $f18 -/* 082F84 80082384 468021A0 */ cvt.s.w $f6, $f4 -/* 082F88 80082388 03229021 */ addu $s2, $t9, $v0 -/* 082F8C 8008238C 46143202 */ mul.s $f8, $f6, $f20 -/* 082F90 80082390 444AF800 */ cfc1 $t2, $31 -/* 082F94 80082394 00000000 */ nop -/* 082F98 80082398 35410003 */ ori $at, $t2, 3 -/* 082F9C 8008239C 38210002 */ xori $at, $at, 2 -/* 082FA0 800823A0 44C1F800 */ ctc1 $at, $31 -/* 082FA4 800823A4 00000000 */ nop -/* 082FA8 800823A8 460042A4 */ cvt.w.s $f10, $f8 -/* 082FAC 800823AC 440B5000 */ mfc1 $t3, $f10 -/* 082FB0 800823B0 44CAF800 */ ctc1 $t2, $31 -/* 082FB4 800823B4 01639821 */ addu $s3, $t3, $v1 -/* 082FB8 800823B8 00000000 */ nop -.L800823BC: -/* 082FBC 800823BC 920C0013 */ lbu $t4, 0x13($s0) -.L800823C0: -/* 082FC0 800823C0 00000000 */ nop -/* 082FC4 800823C4 2D810008 */ sltiu $at, $t4, 8 -/* 082FC8 800823C8 10200117 */ beqz $at, .L80082828 -/* 082FCC 800823CC 000C6080 */ sll $t4, $t4, 2 -/* 082FD0 800823D0 3C01800F */ lui $at, %hi(jpt_800E836C) # $at, 0x800f -/* 082FD4 800823D4 002C0821 */ addu $at, $at, $t4 -/* 082FD8 800823D8 8C2C836C */ lw $t4, %lo(jpt_800E836C)($at) -/* 082FDC 800823DC 00000000 */ nop -/* 082FE0 800823E0 01800008 */ jr $t4 -/* 082FE4 800823E4 00000000 */ nop -glabel L800823E8 -/* 082FE8 800823E8 86040018 */ lh $a0, 0x18($s0) -/* 082FEC 800823EC 8605001A */ lh $a1, 0x1a($s0) -/* 082FF0 800823F0 8606001C */ lh $a2, 0x1c($s0) -/* 082FF4 800823F4 8607001E */ lh $a3, 0x1e($s0) -/* 082FF8 800823F8 0C0310F3 */ jal set_text_background_colour -/* 082FFC 800823FC 00000000 */ nop -/* 083000 80082400 920D0010 */ lbu $t5, 0x10($s0) -/* 083004 80082404 9204000C */ lbu $a0, 0xc($s0) -/* 083008 80082408 9205000D */ lbu $a1, 0xd($s0) -/* 08300C 8008240C 9206000E */ lbu $a2, 0xe($s0) -/* 083010 80082410 9207000F */ lbu $a3, 0xf($s0) -/* 083014 80082414 0C0310E1 */ jal set_text_colour -/* 083018 80082418 AFAD0010 */ sw $t5, 0x10($sp) -/* 08301C 8008241C 92040011 */ lbu $a0, 0x11($s0) -/* 083020 80082420 0C0310BB */ jal set_text_font -/* 083024 80082424 00000000 */ nop -/* 083028 80082428 8FCE0000 */ lw $t6, ($fp) -/* 08302C 8008242C 920F0012 */ lbu $t7, 0x12($s0) -/* 083030 80082430 8E070014 */ lw $a3, 0x14($s0) -/* 083034 80082434 02C02025 */ move $a0, $s6 -/* 083038 80082438 02402825 */ move $a1, $s2 -/* 08303C 8008243C 026E3021 */ addu $a2, $s3, $t6 -/* 083040 80082440 0C031110 */ jal draw_text -/* 083044 80082444 AFAF0010 */ sw $t7, 0x10($sp) -/* 083048 80082448 8FA40070 */ lw $a0, 0x70($sp) -/* 08304C 8008244C 100000F7 */ b .L8008282C -/* 083050 80082450 8E110034 */ lw $s1, 0x34($s0) -glabel L80082454 -/* 083054 80082454 12A00003 */ beqz $s5, .L80082464 -/* 083058 80082458 02C02025 */ move $a0, $s6 -/* 08305C 8008245C 0C01ECF4 */ jal reset_render_settings -/* 083060 80082460 0000A825 */ move $s5, $zero -.L80082464: -/* 083064 80082464 92180010 */ lbu $t8, 0x10($s0) -/* 083068 80082468 3C01800E */ lui $at, %hi(sMenuGuiOpacity) # $at, 0x800e -/* 08306C 8008246C AC38F764 */ sw $t8, %lo(sMenuGuiOpacity)($at) -/* 083070 80082470 8E190014 */ lw $t9, 0x14($s0) -/* 083074 80082474 920A000D */ lbu $t2, 0xd($s0) -/* 083078 80082478 9207000C */ lbu $a3, 0xc($s0) -/* 08307C 8008247C 97240000 */ lhu $a0, ($t9) -/* 083080 80082480 AFAA0010 */ sw $t2, 0x10($sp) -/* 083084 80082484 920B000E */ lbu $t3, 0xe($s0) -/* 083088 80082488 8EE90000 */ lw $t1, ($s7) -/* 08308C 8008248C AFAB0014 */ sw $t3, 0x14($sp) -/* 083090 80082490 920C0011 */ lbu $t4, 0x11($s0) -/* 083094 80082494 00134023 */ negu $t0, $s3 -/* 083098 80082498 01093023 */ subu $a2, $t0, $t1 -/* 08309C 8008249C 24C60078 */ addiu $a2, $a2, 0x78 -/* 0830A0 800824A0 2645FF60 */ addiu $a1, $s2, -0xa0 -/* 0830A4 800824A4 0C020600 */ jal show_timestamp -/* 0830A8 800824A8 AFAC0018 */ sw $t4, 0x18($sp) -/* 0830AC 800824AC 8FA40070 */ lw $a0, 0x70($sp) -/* 0830B0 800824B0 100000DE */ b .L8008282C -/* 0830B4 800824B4 8E110034 */ lw $s1, 0x34($s0) -glabel L800824B8 -/* 0830B8 800824B8 12A00005 */ beqz $s5, .L800824D0 -/* 0830BC 800824BC 02C02025 */ move $a0, $s6 -/* 0830C0 800824C0 0C01ECF4 */ jal reset_render_settings -/* 0830C4 800824C4 0000A825 */ move $s5, $zero -/* 0830C8 800824C8 8E110014 */ lw $s1, 0x14($s0) -/* 0830CC 800824CC 00000000 */ nop -.L800824D0: -/* 0830D0 800824D0 920F000D */ lbu $t7, 0xd($s0) -/* 0830D4 800824D4 8E240000 */ lw $a0, ($s1) -/* 0830D8 800824D8 9207000C */ lbu $a3, 0xc($s0) -/* 0830DC 800824DC AFAF0010 */ sw $t7, 0x10($sp) -/* 0830E0 800824E0 9218000E */ lbu $t8, 0xe($s0) -/* 0830E4 800824E4 8EEE0000 */ lw $t6, ($s7) -/* 0830E8 800824E8 AFB80014 */ sw $t8, 0x14($sp) -/* 0830EC 800824EC 92190010 */ lbu $t9, 0x10($s0) -/* 0830F0 800824F0 00136823 */ negu $t5, $s3 -/* 0830F4 800824F4 AFB90018 */ sw $t9, 0x18($sp) -/* 0830F8 800824F8 92080011 */ lbu $t0, 0x11($s0) -/* 0830FC 800824FC 01AE3023 */ subu $a2, $t5, $t6 -/* 083100 80082500 AFA8001C */ sw $t0, 0x1c($sp) -/* 083104 80082504 92090012 */ lbu $t1, 0x12($s0) -/* 083108 80082508 24C60078 */ addiu $a2, $a2, 0x78 -/* 08310C 8008250C 2645FF60 */ addiu $a1, $s2, -0xa0 -/* 083110 80082510 0C020701 */ jal func_80081C04 -/* 083114 80082514 AFA90020 */ sw $t1, 0x20($sp) -/* 083118 80082518 8FA40070 */ lw $a0, 0x70($sp) -/* 08311C 8008251C 100000C3 */ b .L8008282C -/* 083120 80082520 8E110034 */ lw $s1, 0x34($s0) -glabel L80082524 -/* 083124 80082524 920B000C */ lbu $t3, 0xc($s0) -/* 083128 80082528 8FCA0000 */ lw $t2, ($fp) -/* 08312C 8008252C AFAB0010 */ sw $t3, 0x10($sp) -/* 083130 80082530 920C000D */ lbu $t4, 0xd($s0) -/* 083134 80082534 02C02025 */ move $a0, $s6 -/* 083138 80082538 AFAC0014 */ sw $t4, 0x14($sp) -/* 08313C 8008253C 920D000E */ lbu $t5, 0xe($s0) -/* 083140 80082540 02202825 */ move $a1, $s1 -/* 083144 80082544 AFAD0018 */ sw $t5, 0x18($sp) -/* 083148 80082548 920E0010 */ lbu $t6, 0x10($s0) -/* 08314C 8008254C 02403025 */ move $a2, $s2 -/* 083150 80082550 24150001 */ li $s5, 1 -/* 083154 80082554 026A3821 */ addu $a3, $s3, $t2 -/* 083158 80082558 0C01E2AE */ jal render_textured_rectangle -/* 08315C 8008255C AFAE001C */ sw $t6, 0x1c($sp) -/* 083160 80082560 8FA40070 */ lw $a0, 0x70($sp) -/* 083164 80082564 100000B1 */ b .L8008282C -/* 083168 80082568 8E110034 */ lw $s1, 0x34($s0) -glabel L8008256C -/* 08316C 8008256C 86190018 */ lh $t9, 0x18($s0) -/* 083170 80082570 44928000 */ mtc1 $s2, $f16 -/* 083174 80082574 44992000 */ mtc1 $t9, $f4 -/* 083178 80082578 8FCF0000 */ lw $t7, ($fp) -/* 08317C 8008257C 468021A0 */ cvt.s.w $f6, $f4 -/* 083180 80082580 026FC021 */ addu $t8, $s3, $t7 -/* 083184 80082584 44989000 */ mtc1 $t8, $f18 -/* 083188 80082588 46163202 */ mul.s $f8, $f6, $f22 -/* 08318C 8008258C 02C02025 */ move $a0, $s6 -/* 083190 80082590 02202825 */ move $a1, $s1 -/* 083194 80082594 24150001 */ li $s5, 1 -/* 083198 80082598 E7A80010 */ swc1 $f8, 0x10($sp) -/* 08319C 8008259C 46808420 */ cvt.s.w $f16, $f16 -/* 0831A0 800825A0 8608001A */ lh $t0, 0x1a($s0) -/* 0831A4 800825A4 00000000 */ nop -/* 0831A8 800825A8 44885000 */ mtc1 $t0, $f10 -/* 0831AC 800825AC 468094A0 */ cvt.s.w $f18, $f18 -/* 0831B0 800825B0 44068000 */ mfc1 $a2, $f16 -/* 0831B4 800825B4 46805420 */ cvt.s.w $f16, $f10 -/* 0831B8 800825B8 44079000 */ mfc1 $a3, $f18 -/* 0831BC 800825BC 46168482 */ mul.s $f18, $f16, $f22 -/* 0831C0 800825C0 E7B20014 */ swc1 $f18, 0x14($sp) -/* 0831C4 800825C4 920B000D */ lbu $t3, 0xd($s0) -/* 0831C8 800825C8 9209000C */ lbu $t1, 0xc($s0) -/* 0831CC 800825CC 920E000E */ lbu $t6, 0xe($s0) -/* 0831D0 800825D0 000B6400 */ sll $t4, $t3, 0x10 -/* 0831D4 800825D4 00095600 */ sll $t2, $t1, 0x18 -/* 0831D8 800825D8 92190010 */ lbu $t9, 0x10($s0) -/* 0831DC 800825DC 014C6825 */ or $t5, $t2, $t4 -/* 0831E0 800825E0 000E7A00 */ sll $t7, $t6, 8 -/* 0831E4 800825E4 01AFC025 */ or $t8, $t5, $t7 -/* 0831E8 800825E8 03194025 */ or $t0, $t8, $t9 -/* 0831EC 800825EC AFA80018 */ sw $t0, 0x18($sp) -/* 0831F0 800825F0 92090012 */ lbu $t1, 0x12($s0) -/* 0831F4 800825F4 0C01E340 */ jal render_texture_rectangle_scaled -/* 0831F8 800825F8 AFA9001C */ sw $t1, 0x1c($sp) -/* 0831FC 800825FC 8FA40070 */ lw $a0, 0x70($sp) -/* 083200 80082600 1000008A */ b .L8008282C -/* 083204 80082604 8E110034 */ lw $s1, 0x34($s0) -glabel L80082608 -/* 083208 80082608 12A00003 */ beqz $s5, .L80082618 -/* 08320C 8008260C 02C02025 */ move $a0, $s6 -/* 083210 80082610 0C01ECF4 */ jal reset_render_settings -/* 083214 80082614 0000A825 */ move $s5, $zero -.L80082618: -/* 083218 80082618 0C01A142 */ jal func_80068508 -/* 08321C 8008261C 24040001 */ li $a0, 1 -/* 083220 80082620 0C01EFC7 */ jal sprite_opaque -/* 083224 80082624 00002025 */ move $a0, $zero -/* 083228 80082628 264BFF60 */ addiu $t3, $s2, -0xa0 -/* 08322C 8008262C 448B2000 */ mtc1 $t3, $f4 -/* 083230 80082630 8E0C0014 */ lw $t4, 0x14($s0) -/* 083234 80082634 468021A0 */ cvt.s.w $f6, $f4 -/* 083238 80082638 8E8A0000 */ lw $t2, ($s4) -/* 08323C 8008263C 000C7140 */ sll $t6, $t4, 5 -/* 083240 80082640 014E6821 */ addu $t5, $t2, $t6 -/* 083244 80082644 E5A6000C */ swc1 $f6, 0xc($t5) -/* 083248 80082648 8EF80000 */ lw $t8, ($s7) -/* 08324C 8008264C 00137823 */ negu $t7, $s3 -/* 083250 80082650 01F8C823 */ subu $t9, $t7, $t8 -/* 083254 80082654 27280078 */ addiu $t0, $t9, 0x78 -/* 083258 80082658 44884000 */ mtc1 $t0, $f8 -/* 08325C 8008265C 8E0B0014 */ lw $t3, 0x14($s0) -/* 083260 80082660 468042A0 */ cvt.s.w $f10, $f8 -/* 083264 80082664 8E890000 */ lw $t1, ($s4) -/* 083268 80082668 000B6140 */ sll $t4, $t3, 5 -/* 08326C 8008266C 012C5021 */ addu $t2, $t1, $t4 -/* 083270 80082670 E54A0010 */ swc1 $f10, 0x10($t2) -/* 083274 80082674 8E0F0014 */ lw $t7, 0x14($s0) -/* 083278 80082678 8E8D0000 */ lw $t5, ($s4) -/* 08327C 8008267C 920E0011 */ lbu $t6, 0x11($s0) -/* 083280 80082680 000FC140 */ sll $t8, $t7, 5 -/* 083284 80082684 01B8C821 */ addu $t9, $t5, $t8 -/* 083288 80082688 A72E0018 */ sh $t6, 0x18($t9) -/* 08328C 8008268C 8E090014 */ lw $t1, 0x14($s0) -/* 083290 80082690 8E8B0000 */ lw $t3, ($s4) -/* 083294 80082694 86080018 */ lh $t0, 0x18($s0) -/* 083298 80082698 00096140 */ sll $t4, $t1, 5 -/* 08329C 8008269C 016C5021 */ addu $t2, $t3, $t4 -/* 0832A0 800826A0 A5480004 */ sh $t0, 4($t2) -/* 0832A4 800826A4 8E180014 */ lw $t8, 0x14($s0) -/* 0832A8 800826A8 8E8D0000 */ lw $t5, ($s4) -/* 0832AC 800826AC 860F001A */ lh $t7, 0x1a($s0) -/* 0832B0 800826B0 00187140 */ sll $t6, $t8, 5 -/* 0832B4 800826B4 01AEC821 */ addu $t9, $t5, $t6 -/* 0832B8 800826B8 A72F0002 */ sh $t7, 2($t9) -/* 0832BC 800826BC 8E0C0014 */ lw $t4, 0x14($s0) -/* 0832C0 800826C0 8E8B0000 */ lw $t3, ($s4) -/* 0832C4 800826C4 8609001C */ lh $t1, 0x1c($s0) -/* 0832C8 800826C8 000C4140 */ sll $t0, $t4, 5 -/* 0832CC 800826CC 01685021 */ addu $t2, $t3, $t0 -/* 0832D0 800826D0 A5490000 */ sh $t1, ($t2) -/* 0832D4 800826D4 8618001E */ lh $t8, 0x1e($s0) -/* 0832D8 800826D8 8E0E0014 */ lw $t6, 0x14($s0) -/* 0832DC 800826DC 44988000 */ mtc1 $t8, $f16 -/* 0832E0 800826E0 8E8D0000 */ lw $t5, ($s4) -/* 0832E4 800826E4 468084A0 */ cvt.s.w $f18, $f16 -/* 0832E8 800826E8 000E7940 */ sll $t7, $t6, 5 -/* 0832EC 800826EC 01AFC821 */ addu $t9, $t5, $t7 -/* 0832F0 800826F0 46169102 */ mul.s $f4, $f18, $f22 -/* 0832F4 800826F4 3C01800E */ lui $at, %hi(sMenuGuiColourR) # $at, 0x800e -/* 0832F8 800826F8 E7240008 */ swc1 $f4, 8($t9) -/* 0832FC 800826FC 920C000C */ lbu $t4, 0xc($s0) -/* 083300 80082700 00000000 */ nop -/* 083304 80082704 A02CF4A4 */ sb $t4, %lo(sMenuGuiColourR)($at) -/* 083308 80082708 920B000D */ lbu $t3, 0xd($s0) -/* 08330C 8008270C 3C01800E */ lui $at, %hi(sMenuGuiColourG) # $at, 0x800e -/* 083310 80082710 A02BF4A8 */ sb $t3, %lo(sMenuGuiColourG)($at) -/* 083314 80082714 9208000E */ lbu $t0, 0xe($s0) -/* 083318 80082718 3C01800E */ lui $at, %hi(sMenuGuiColourB) # $at, 0x800e -/* 08331C 8008271C A028F4AC */ sb $t0, %lo(sMenuGuiColourB)($at) -/* 083320 80082720 9209000F */ lbu $t1, 0xf($s0) -/* 083324 80082724 3C01800E */ lui $at, %hi(sMenuGuiColourA) # $at, 0x800e -/* 083328 80082728 A029F4B0 */ sb $t1, %lo(sMenuGuiColourA)($at) -/* 08332C 8008272C 920A0010 */ lbu $t2, 0x10($s0) -/* 083330 80082730 3C01800E */ lui $at, %hi(sMenuGuiOpacity) # $at, 0x800e -/* 083334 80082734 AC2AF764 */ sw $t2, %lo(sMenuGuiOpacity)($at) -/* 083338 80082738 8E040014 */ lw $a0, 0x14($s0) -/* 08333C 8008273C 0C027298 */ jal func_8009CA60 -/* 083340 80082740 00000000 */ nop -/* 083344 80082744 0C01A142 */ jal func_80068508 -/* 083348 80082748 00002025 */ move $a0, $zero -/* 08334C 8008274C 0C01EFC7 */ jal sprite_opaque -/* 083350 80082750 24040001 */ li $a0, 1 -/* 083354 80082754 8FA40070 */ lw $a0, 0x70($sp) -/* 083358 80082758 10000034 */ b .L8008282C -/* 08335C 8008275C 8E110034 */ lw $s1, 0x34($s0) -glabel L80082760 -/* 083360 80082760 860E001A */ lh $t6, 0x1a($s0) -/* 083364 80082764 86070018 */ lh $a3, 0x18($s0) -/* 083368 80082768 AFAE0010 */ sw $t6, 0x10($sp) -/* 08336C 8008276C 860D001C */ lh $t5, 0x1c($s0) -/* 083370 80082770 8EF80000 */ lw $t8, ($s7) -/* 083374 80082774 AFAD0014 */ sw $t5, 0x14($sp) -/* 083378 80082778 860F001E */ lh $t7, 0x1e($s0) -/* 08337C 8008277C 02C02025 */ move $a0, $s6 -/* 083380 80082780 AFAF0018 */ sw $t7, 0x18($sp) -/* 083384 80082784 9219000C */ lbu $t9, 0xc($s0) -/* 083388 80082788 02402825 */ move $a1, $s2 -/* 08338C 8008278C AFB9001C */ sw $t9, 0x1c($sp) -/* 083390 80082790 920C000D */ lbu $t4, 0xd($s0) -/* 083394 80082794 02783021 */ addu $a2, $s3, $t8 -/* 083398 80082798 AFAC0020 */ sw $t4, 0x20($sp) -/* 08339C 8008279C 920B000E */ lbu $t3, 0xe($s0) -/* 0833A0 800827A0 00000000 */ nop -/* 0833A4 800827A4 AFAB0024 */ sw $t3, 0x24($sp) -/* 0833A8 800827A8 92080010 */ lbu $t0, 0x10($s0) -/* 0833AC 800827AC 0C0203A4 */ jal func_80080E90 -/* 0833B0 800827B0 AFA80028 */ sw $t0, 0x28($sp) -/* 0833B4 800827B4 8FA40070 */ lw $a0, 0x70($sp) -/* 0833B8 800827B8 1000001C */ b .L8008282C -/* 0833BC 800827BC 8E110034 */ lw $s1, 0x34($s0) -glabel L800827C0 -/* 0833C0 800827C0 860A001A */ lh $t2, 0x1a($s0) -/* 0833C4 800827C4 86070018 */ lh $a3, 0x18($s0) -/* 0833C8 800827C8 AFAA0010 */ sw $t2, 0x10($sp) -/* 0833CC 800827CC 8618001C */ lh $t8, 0x1c($s0) -/* 0833D0 800827D0 8EE90000 */ lw $t1, ($s7) -/* 0833D4 800827D4 AFB80014 */ sw $t8, 0x14($sp) -/* 0833D8 800827D8 860E001E */ lh $t6, 0x1e($s0) -/* 0833DC 800827DC 02693021 */ addu $a2, $s3, $t1 -/* 0833E0 800827E0 AFAE0018 */ sw $t6, 0x18($sp) -/* 0833E4 800827E4 9219000D */ lbu $t9, 0xd($s0) -/* 0833E8 800827E8 920D000C */ lbu $t5, 0xc($s0) -/* 0833EC 800827EC 9208000E */ lbu $t0, 0xe($s0) -/* 0833F0 800827F0 00196400 */ sll $t4, $t9, 0x10 -/* 0833F4 800827F4 000D7E00 */ sll $t7, $t5, 0x18 -/* 0833F8 800827F8 92180010 */ lbu $t8, 0x10($s0) -/* 0833FC 800827FC 01EC5825 */ or $t3, $t7, $t4 -/* 083400 80082800 00084A00 */ sll $t1, $t0, 8 -/* 083404 80082804 01695025 */ or $t2, $t3, $t1 -/* 083408 80082808 01587025 */ or $t6, $t2, $t8 -/* 08340C 8008280C AFAE001C */ sw $t6, 0x1c($sp) -/* 083410 80082810 AFB10020 */ sw $s1, 0x20($sp) -/* 083414 80082814 02C02025 */ move $a0, $s6 -/* 083418 80082818 0C020160 */ jal func_80080580 -/* 08341C 8008281C 02402825 */ move $a1, $s2 -/* 083420 80082820 8FA40070 */ lw $a0, 0x70($sp) -/* 083424 80082824 00000000 */ nop -.L80082828: -/* 083428 80082828 8E110034 */ lw $s1, 0x34($s0) -.L8008282C: -/* 08342C 8008282C 26100020 */ addiu $s0, $s0, 0x20 -/* 083430 80082830 1620FE94 */ bnez $s1, .L80082284 -/* 083434 80082834 00000000 */ nop -.L80082838: -/* 083438 80082838 12A00004 */ beqz $s5, .L8008284C -/* 08343C 8008283C 240200FF */ li $v0, 255 -/* 083440 80082840 0C01ECF4 */ jal reset_render_settings -/* 083444 80082844 02C02025 */ move $a0, $s6 -/* 083448 80082848 240200FF */ li $v0, 255 -.L8008284C: -/* 08344C 8008284C 3C01800E */ lui $at, %hi(sMenuGuiColourR) # $at, 0x800e -/* 083450 80082850 A022F4A4 */ sb $v0, %lo(sMenuGuiColourR)($at) -/* 083454 80082854 3C01800E */ lui $at, %hi(sMenuGuiColourG) # $at, 0x800e -/* 083458 80082858 A022F4A8 */ sb $v0, %lo(sMenuGuiColourG)($at) -/* 08345C 8008285C 3C01800E */ lui $at, %hi(sMenuGuiColourB) # $at, 0x800e -/* 083460 80082860 A022F4AC */ sb $v0, %lo(sMenuGuiColourB)($at) -/* 083464 80082864 3C01800E */ lui $at, %hi(sMenuGuiColourA) # $at, 0x800e -/* 083468 80082868 A020F4B0 */ sb $zero, %lo(sMenuGuiColourA)($at) -/* 08346C 8008286C 3C01800E */ lui $at, %hi(sMenuGuiOpacity) # $at, 0x800e -/* 083470 80082870 240D00FF */ li $t5, 255 -/* 083474 80082874 AC2DF764 */ sw $t5, %lo(sMenuGuiOpacity)($at) -.L80082878: -/* 083478 80082878 8FBF006C */ lw $ra, 0x6c($sp) -/* 08347C 8008287C C7B50038 */ lwc1 $f21, 0x38($sp) -/* 083480 80082880 C7B4003C */ lwc1 $f20, 0x3c($sp) -/* 083484 80082884 C7B70040 */ lwc1 $f23, 0x40($sp) -/* 083488 80082888 C7B60044 */ lwc1 $f22, 0x44($sp) -/* 08348C 8008288C 8FB00048 */ lw $s0, 0x48($sp) -/* 083490 80082890 8FB1004C */ lw $s1, 0x4c($sp) -/* 083494 80082894 8FB20050 */ lw $s2, 0x50($sp) -/* 083498 80082898 8FB30054 */ lw $s3, 0x54($sp) -/* 08349C 8008289C 8FB40058 */ lw $s4, 0x58($sp) -/* 0834A0 800828A0 8FB5005C */ lw $s5, 0x5c($sp) -/* 0834A4 800828A4 8FB60060 */ lw $s6, 0x60($sp) -/* 0834A8 800828A8 8FB70064 */ lw $s7, 0x64($sp) -/* 0834AC 800828AC 8FBE0068 */ lw $fp, 0x68($sp) -/* 0834B0 800828B0 03E00008 */ jr $ra -/* 0834B4 800828B4 27BD0070 */ addiu $sp, $sp, 0x70 - diff --git a/asm/non_matchings/menu/func_80085B9C.s b/asm/non_matchings/menu/func_80085B9C.s deleted file mode 100644 index 6ee91c80..00000000 --- a/asm/non_matchings/menu/func_80085B9C.s +++ /dev/null @@ -1,354 +0,0 @@ -.late_rodata -glabel jpt_800E83E0 -.word L80085C30, L80085BF8, L80085BF8, L80085C00, L80085C00, L80085C08, L80085C14, L80085C24 - -.text -glabel func_80085B9C -/* 08679C 80085B9C 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 0867A0 80085BA0 AFBF003C */ sw $ra, 0x3c($sp) -/* 0867A4 80085BA4 AFB40038 */ sw $s4, 0x38($sp) -/* 0867A8 80085BA8 AFB30034 */ sw $s3, 0x34($sp) -/* 0867AC 80085BAC AFB20030 */ sw $s2, 0x30($sp) -/* 0867B0 80085BB0 AFB1002C */ sw $s1, 0x2c($sp) -/* 0867B4 80085BB4 AFB00028 */ sw $s0, 0x28($sp) -/* 0867B8 80085BB8 0C01E948 */ jal get_video_width_and_height_as_s32 -/* 0867BC 80085BBC AFA40068 */ sw $a0, 0x68($sp) -/* 0867C0 80085BC0 3C038012 */ lui $v1, %hi(gMenuOptionCount) # $v1, 0x8012 -/* 0867C4 80085BC4 8C6363E0 */ lw $v1, %lo(gMenuOptionCount)($v1) -/* 0867C8 80085BC8 3C01800F */ lui $at, %hi(jpt_800E83E0) # $at, 0x800f -/* 0867CC 80085BCC 306E0007 */ andi $t6, $v1, 7 -/* 0867D0 80085BD0 000E7080 */ sll $t6, $t6, 2 -/* 0867D4 80085BD4 002E0821 */ addu $at, $at, $t6 -/* 0867D8 80085BD8 8C2E83E0 */ lw $t6, %lo(jpt_800E83E0)($at) -/* 0867DC 80085BDC 3054FFFF */ andi $s4, $v0, 0xffff -/* 0867E0 80085BE0 00009825 */ move $s3, $zero -/* 0867E4 80085BE4 00003025 */ move $a2, $zero -/* 0867E8 80085BE8 00003825 */ move $a3, $zero -/* 0867EC 80085BEC 00004025 */ move $t0, $zero -/* 0867F0 80085BF0 01C00008 */ jr $t6 -/* 0867F4 80085BF4 00004825 */ move $t1, $zero -glabel L80085BF8 -/* 0867F8 80085BF8 1000000D */ b .L80085C30 -/* 0867FC 80085BFC 24070001 */ li $a3, 1 -glabel L80085C00 -/* 086800 80085C00 1000000B */ b .L80085C30 -/* 086804 80085C04 24130001 */ li $s3, 1 -glabel L80085C08 -/* 086808 80085C08 24130001 */ li $s3, 1 -/* 08680C 80085C0C 10000008 */ b .L80085C30 -/* 086810 80085C10 24060001 */ li $a2, 1 -glabel L80085C14 -/* 086814 80085C14 24130001 */ li $s3, 1 -/* 086818 80085C18 24060001 */ li $a2, 1 -/* 08681C 80085C1C 10000004 */ b .L80085C30 -/* 086820 80085C20 24080001 */ li $t0, 1 -glabel L80085C24 -/* 086824 80085C24 24130001 */ li $s3, 1 -/* 086828 80085C28 24060001 */ li $a2, 1 -/* 08682C 80085C2C 24070001 */ li $a3, 1 -.L80085C30: -glabel L80085C30 -/* 086830 80085C30 306F0008 */ andi $t7, $v1, 8 -/* 086834 80085C34 11E00002 */ beqz $t7, .L80085C40 -/* 086838 80085C38 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 08683C 80085C3C 24090001 */ li $t1, 1 -.L80085C40: -/* 086840 80085C40 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 086844 80085C44 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 086848 80085C48 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 08684C 80085C4C AFA6004C */ sw $a2, 0x4c($sp) -/* 086850 80085C50 AFA70048 */ sw $a3, 0x48($sp) -/* 086854 80085C54 AFA80044 */ sw $t0, 0x44($sp) -/* 086858 80085C58 0C019FCB */ jal set_ortho_matrix_view -/* 08685C 80085C5C AFA90040 */ sw $t1, 0x40($sp) -/* 086860 80085C60 00002025 */ move $a0, $zero -/* 086864 80085C64 00002825 */ move $a1, $zero -/* 086868 80085C68 00003025 */ move $a2, $zero -/* 08686C 80085C6C 0C0310F3 */ jal set_text_background_colour -/* 086870 80085C70 00003825 */ move $a3, $zero -/* 086874 80085C74 0C0310BB */ jal set_text_font -/* 086878 80085C78 24040002 */ li $a0, 2 -/* 08687C 80085C7C 24180080 */ li $t8, 128 -/* 086880 80085C80 AFB80010 */ sw $t8, 0x10($sp) -/* 086884 80085C84 00002025 */ move $a0, $zero -/* 086888 80085C88 00002825 */ move $a1, $zero -/* 08688C 80085C8C 00003025 */ move $a2, $zero -/* 086890 80085C90 0C0310E1 */ jal set_text_colour -/* 086894 80085C94 240700FF */ li $a3, 255 -/* 086898 80085C98 3C19800E */ lui $t9, %hi(gMenuText) # $t9, 0x800e -/* 08689C 80085C9C 8F39F4A0 */ lw $t9, %lo(gMenuText)($t9) -/* 0868A0 80085CA0 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0868A4 80085CA4 240A000C */ li $t2, 12 -/* 0868A8 80085CA8 8F270294 */ lw $a3, 0x294($t9) -/* 0868AC 80085CAC AFAA0010 */ sw $t2, 0x10($sp) -/* 0868B0 80085CB0 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0868B4 80085CB4 240500A1 */ li $a1, 161 -/* 0868B8 80085CB8 0C031110 */ jal draw_text -/* 0868BC 80085CBC 24060023 */ li $a2, 35 -/* 0868C0 80085CC0 240B00FF */ li $t3, 255 -/* 0868C4 80085CC4 AFAB0010 */ sw $t3, 0x10($sp) -/* 0868C8 80085CC8 240400FF */ li $a0, 255 -/* 0868CC 80085CCC 240500FF */ li $a1, 255 -/* 0868D0 80085CD0 240600FF */ li $a2, 255 -/* 0868D4 80085CD4 0C0310E1 */ jal set_text_colour -/* 0868D8 80085CD8 00003825 */ move $a3, $zero -/* 0868DC 80085CDC 3C0C800E */ lui $t4, %hi(gMenuText) # $t4, 0x800e -/* 0868E0 80085CE0 8D8CF4A0 */ lw $t4, %lo(gMenuText)($t4) -/* 0868E4 80085CE4 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0868E8 80085CE8 240D000C */ li $t5, 12 -/* 0868EC 80085CEC 8D870294 */ lw $a3, 0x294($t4) -/* 0868F0 80085CF0 AFAD0010 */ sw $t5, 0x10($sp) -/* 0868F4 80085CF4 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0868F8 80085CF8 240500A0 */ li $a1, 160 -/* 0868FC 80085CFC 0C031110 */ jal draw_text -/* 086900 80085D00 24060020 */ li $a2, 32 -/* 086904 80085D04 8FAE004C */ lw $t6, 0x4c($sp) -/* 086908 80085D08 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 -/* 08690C 80085D0C 11C0001F */ beqz $t6, .L80085D8C -/* 086910 80085D10 3C188012 */ lui $t8, %hi(gOptionBlinkTimer) # $t8, 0x8012 -/* 086914 80085D14 8DEF0300 */ lw $t7, %lo(osTvType)($t7) -/* 086918 80085D18 00009025 */ move $s2, $zero -/* 08691C 80085D1C 15E00003 */ bnez $t7, .L80085D2C -/* 086920 80085D20 3C11800E */ lui $s1, %hi(gMenuSelectionArrowDown) # $s1, 0x800e -/* 086924 80085D24 10000002 */ b .L80085D30 -/* 086928 80085D28 24100084 */ li $s0, 132 -.L80085D2C: -/* 08692C 80085D2C 24100078 */ li $s0, 120 -.L80085D30: -/* 086930 80085D30 8F1863BC */ lw $t8, %lo(gOptionBlinkTimer)($t8) -/* 086934 80085D34 2631043C */ addiu $s1, %lo(gMenuSelectionArrowDown) # addiu $s1, $s1, 0x43c -/* 086938 80085D38 3319001F */ andi $t9, $t8, 0x1f -/* 08693C 80085D3C 00195043 */ sra $t2, $t9, 1 -/* 086940 80085D40 020A8021 */ addu $s0, $s0, $t2 -.L80085D44: -/* 086944 80085D44 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086948 80085D48 240B00FF */ li $t3, 255 -/* 08694C 80085D4C 240C00FF */ li $t4, 255 -/* 086950 80085D50 240D00FF */ li $t5, 255 -/* 086954 80085D54 240E00FF */ li $t6, 255 -/* 086958 80085D58 AFAE001C */ sw $t6, 0x1c($sp) -/* 08695C 80085D5C AFAD0018 */ sw $t5, 0x18($sp) -/* 086960 80085D60 AFAC0014 */ sw $t4, 0x14($sp) -/* 086964 80085D64 AFAB0010 */ sw $t3, 0x10($sp) -/* 086968 80085D68 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 08696C 80085D6C 02202825 */ move $a1, $s1 -/* 086970 80085D70 240600A0 */ li $a2, 160 -/* 086974 80085D74 0C01E2AE */ jal render_textured_rectangle -/* 086978 80085D78 02003825 */ move $a3, $s0 -/* 08697C 80085D7C 26520001 */ addiu $s2, $s2, 1 -/* 086980 80085D80 24010002 */ li $at, 2 -/* 086984 80085D84 1641FFEF */ bne $s2, $at, .L80085D44 -/* 086988 80085D88 26100010 */ addiu $s0, $s0, 0x10 -.L80085D8C: -/* 08698C 80085D8C 1260004A */ beqz $s3, .L80085EB8 -/* 086990 80085D90 3C018012 */ lui $at, %hi(D_80126BDC) # $at, 0x8012 -/* 086994 80085D94 444FF800 */ cfc1 $t7, $31 -/* 086998 80085D98 C4206BDC */ lwc1 $f0, %lo(D_80126BDC)($at) -/* 08699C 80085D9C 35E10003 */ ori $at, $t7, 3 -/* 0869A0 80085DA0 38210002 */ xori $at, $at, 2 -/* 0869A4 80085DA4 44C1F800 */ ctc1 $at, $31 -/* 0869A8 80085DA8 3C014324 */ li $at, 0x43240000 # 164.000000 -/* 0869AC 80085DAC 46000124 */ cvt.w.s $f4, $f0 -/* 0869B0 80085DB0 44818000 */ mtc1 $at, $f16 -/* 0869B4 80085DB4 44122000 */ mfc1 $s2, $f4 -/* 0869B8 80085DB8 44CFF800 */ ctc1 $t7, $31 -/* 0869BC 80085DBC 44923000 */ mtc1 $s2, $f6 -/* 0869C0 80085DC0 240A0050 */ li $t2, 80 -/* 0869C4 80085DC4 46803220 */ cvt.s.w $f8, $f6 -/* 0869C8 80085DC8 3C0B8012 */ lui $t3, %hi(D_80126A08) # $t3, 0x8012 -/* 0869CC 80085DCC 02408025 */ move $s0, $s2 -/* 0869D0 80085DD0 46080281 */ sub.s $f10, $f0, $f8 -/* 0869D4 80085DD4 46105482 */ mul.s $f18, $f10, $f16 -/* 0869D8 80085DD8 4458F800 */ cfc1 $t8, $31 -/* 0869DC 80085DDC 00000000 */ nop -/* 0869E0 80085DE0 37010003 */ ori $at, $t8, 3 -/* 0869E4 80085DE4 38210002 */ xori $at, $at, 2 -/* 0869E8 80085DE8 44C1F800 */ ctc1 $at, $31 -/* 0869EC 80085DEC 00000000 */ nop -/* 0869F0 80085DF0 46009124 */ cvt.w.s $f4, $f18 -/* 0869F4 80085DF4 44192000 */ mfc1 $t9, $f4 -/* 0869F8 80085DF8 44D8F800 */ ctc1 $t8, $31 -/* 0869FC 80085DFC 01591023 */ subu $v0, $t2, $t9 -/* 086A00 80085E00 0054082A */ slt $at, $v0, $s4 -/* 086A04 80085E04 00408825 */ move $s1, $v0 -/* 086A08 80085E08 10200018 */ beqz $at, .L80085E6C -/* 086A0C 80085E0C AFA2005C */ sw $v0, 0x5c($sp) -/* 086A10 80085E10 8D6B6A08 */ lw $t3, %lo(D_80126A08)($t3) -/* 086A14 80085E14 AFA2005C */ sw $v0, 0x5c($sp) -/* 086A18 80085E18 024B082A */ slt $at, $s2, $t3 -/* 086A1C 80085E1C 10200013 */ beqz $at, .L80085E6C -/* 086A20 80085E20 3C138012 */ lui $s3, %hi(D_80126A0C) # $s3, 0x8012 -/* 086A24 80085E24 AFA2005C */ sw $v0, 0x5c($sp) -/* 086A28 80085E28 26736A0C */ addiu $s3, %lo(D_80126A0C) # addiu $s3, $s3, 0x6a0c -.L80085E2C: -/* 086A2C 80085E2C 8E6D0000 */ lw $t5, ($s3) -/* 086A30 80085E30 00106100 */ sll $t4, $s0, 4 -/* 086A34 80085E34 02202825 */ move $a1, $s1 -/* 086A38 80085E38 24060040 */ li $a2, 64 -/* 086A3C 80085E3C 0C0214F4 */ jal func_800853D0 -/* 086A40 80085E40 018D2021 */ addu $a0, $t4, $t5 -/* 086A44 80085E44 263100A4 */ addiu $s1, $s1, 0xa4 -/* 086A48 80085E48 0234082A */ slt $at, $s1, $s4 -/* 086A4C 80085E4C 10200007 */ beqz $at, .L80085E6C -/* 086A50 80085E50 26100001 */ addiu $s0, $s0, 1 -/* 086A54 80085E54 3C0E8012 */ lui $t6, %hi(D_80126A08) # $t6, 0x8012 -/* 086A58 80085E58 8DCE6A08 */ lw $t6, %lo(D_80126A08)($t6) -/* 086A5C 80085E5C 00000000 */ nop -/* 086A60 80085E60 020E082A */ slt $at, $s0, $t6 -/* 086A64 80085E64 1420FFF1 */ bnez $at, .L80085E2C -/* 086A68 80085E68 00000000 */ nop -.L80085E6C: -/* 086A6C 80085E6C 8FB1005C */ lw $s1, 0x5c($sp) -/* 086A70 80085E70 3C138012 */ lui $s3, %hi(D_80126A0C) # $s3, 0x8012 -/* 086A74 80085E74 26736A0C */ addiu $s3, %lo(D_80126A0C) # addiu $s3, $s3, 0x6a0c -/* 086A78 80085E78 1A20000F */ blez $s1, .L80085EB8 -/* 086A7C 80085E7C 02408025 */ move $s0, $s2 -/* 086A80 80085E80 1A40000E */ blez $s2, .L80085EBC -/* 086A84 80085E84 8FAA004C */ lw $t2, 0x4c($sp) -.L80085E88: -/* 086A88 80085E88 8E780000 */ lw $t8, ($s3) -/* 086A8C 80085E8C 2610FFFF */ addiu $s0, $s0, -1 -/* 086A90 80085E90 2631FF5C */ addiu $s1, $s1, -0xa4 -/* 086A94 80085E94 00107900 */ sll $t7, $s0, 4 -/* 086A98 80085E98 02202825 */ move $a1, $s1 -/* 086A9C 80085E9C 24060040 */ li $a2, 64 -/* 086AA0 80085EA0 0C0214F4 */ jal func_800853D0 -/* 086AA4 80085EA4 01F82021 */ addu $a0, $t7, $t8 -/* 086AA8 80085EA8 1A200004 */ blez $s1, .L80085EBC -/* 086AAC 80085EAC 8FAA004C */ lw $t2, 0x4c($sp) -/* 086AB0 80085EB0 1E00FFF5 */ bgtz $s0, .L80085E88 -/* 086AB4 80085EB4 00000000 */ nop -.L80085EB8: -/* 086AB8 80085EB8 8FAA004C */ lw $t2, 0x4c($sp) -.L80085EBC: -/* 086ABC 80085EBC 3C018012 */ lui $at, %hi(D_80126BEC) # $at, 0x8012 -/* 086AC0 80085EC0 11400047 */ beqz $t2, .L80085FE0 -/* 086AC4 80085EC4 00000000 */ nop -/* 086AC8 80085EC8 4459F800 */ cfc1 $t9, $31 -/* 086ACC 80085ECC C4206BEC */ lwc1 $f0, %lo(D_80126BEC)($at) -/* 086AD0 80085ED0 37210003 */ ori $at, $t9, 3 -/* 086AD4 80085ED4 38210002 */ xori $at, $at, 2 -/* 086AD8 80085ED8 44C1F800 */ ctc1 $at, $31 -/* 086ADC 80085EDC 3C014324 */ li $at, 0x43240000 # 164.000000 -/* 086AE0 80085EE0 460001A4 */ cvt.w.s $f6, $f0 -/* 086AE4 80085EE4 44819000 */ mtc1 $at, $f18 -/* 086AE8 80085EE8 44123000 */ mfc1 $s2, $f6 -/* 086AEC 80085EEC 44D9F800 */ ctc1 $t9, $31 -/* 086AF0 80085EF0 44924000 */ mtc1 $s2, $f8 -/* 086AF4 80085EF4 240D0050 */ li $t5, 80 -/* 086AF8 80085EF8 468042A0 */ cvt.s.w $f10, $f8 -/* 086AFC 80085EFC 3C0F8012 */ lui $t7, %hi(D_80126A00) # $t7, 0x8012 -/* 086B00 80085F00 02408025 */ move $s0, $s2 -/* 086B04 80085F04 460A0401 */ sub.s $f16, $f0, $f10 -/* 086B08 80085F08 46128102 */ mul.s $f4, $f16, $f18 -/* 086B0C 80085F0C 444BF800 */ cfc1 $t3, $31 -/* 086B10 80085F10 00000000 */ nop -/* 086B14 80085F14 35610003 */ ori $at, $t3, 3 -/* 086B18 80085F18 38210002 */ xori $at, $at, 2 -/* 086B1C 80085F1C 44C1F800 */ ctc1 $at, $31 -/* 086B20 80085F20 00000000 */ nop -/* 086B24 80085F24 460021A4 */ cvt.w.s $f6, $f4 -/* 086B28 80085F28 440C3000 */ mfc1 $t4, $f6 -/* 086B2C 80085F2C 44CBF800 */ ctc1 $t3, $31 -/* 086B30 80085F30 01AC8823 */ subu $s1, $t5, $t4 -/* 086B34 80085F34 0234082A */ slt $at, $s1, $s4 -/* 086B38 80085F38 10200016 */ beqz $at, .L80085F94 -/* 086B3C 80085F3C AFB1005C */ sw $s1, 0x5c($sp) -/* 086B40 80085F40 8DEF6A00 */ lw $t7, %lo(D_80126A00)($t7) -/* 086B44 80085F44 3C138012 */ lui $s3, %hi(D_80126A04) # $s3, 0x8012 -/* 086B48 80085F48 024F082A */ slt $at, $s2, $t7 -/* 086B4C 80085F4C 10200011 */ beqz $at, .L80085F94 -/* 086B50 80085F50 26736A04 */ addiu $s3, %lo(D_80126A04) # addiu $s3, $s3, 0x6a04 -.L80085F54: -/* 086B54 80085F54 8E6A0000 */ lw $t2, ($s3) -/* 086B58 80085F58 0010C100 */ sll $t8, $s0, 4 -/* 086B5C 80085F5C 02202825 */ move $a1, $s1 -/* 086B60 80085F60 24060090 */ li $a2, 144 -/* 086B64 80085F64 0C0214F4 */ jal func_800853D0 -/* 086B68 80085F68 030A2021 */ addu $a0, $t8, $t2 -/* 086B6C 80085F6C 263100A4 */ addiu $s1, $s1, 0xa4 -/* 086B70 80085F70 0234082A */ slt $at, $s1, $s4 -/* 086B74 80085F74 10200007 */ beqz $at, .L80085F94 -/* 086B78 80085F78 26100001 */ addiu $s0, $s0, 1 -/* 086B7C 80085F7C 3C198012 */ lui $t9, %hi(D_80126A00) # $t9, 0x8012 -/* 086B80 80085F80 8F396A00 */ lw $t9, %lo(D_80126A00)($t9) -/* 086B84 80085F84 00000000 */ nop -/* 086B88 80085F88 0219082A */ slt $at, $s0, $t9 -/* 086B8C 80085F8C 1420FFF1 */ bnez $at, .L80085F54 -/* 086B90 80085F90 00000000 */ nop -.L80085F94: -/* 086B94 80085F94 8FB1005C */ lw $s1, 0x5c($sp) -/* 086B98 80085F98 3C138012 */ lui $s3, %hi(D_80126A04) # $s3, 0x8012 -/* 086B9C 80085F9C 26736A04 */ addiu $s3, %lo(D_80126A04) # addiu $s3, $s3, 0x6a04 -/* 086BA0 80085FA0 1A20000F */ blez $s1, .L80085FE0 -/* 086BA4 80085FA4 02408025 */ move $s0, $s2 -/* 086BA8 80085FA8 1A40000D */ blez $s2, .L80085FE0 -/* 086BAC 80085FAC 00000000 */ nop -.L80085FB0: -/* 086BB0 80085FB0 8E6C0000 */ lw $t4, ($s3) -/* 086BB4 80085FB4 2610FFFF */ addiu $s0, $s0, -1 -/* 086BB8 80085FB8 2631FF5C */ addiu $s1, $s1, -0xa4 -/* 086BBC 80085FBC 00106900 */ sll $t5, $s0, 4 -/* 086BC0 80085FC0 02202825 */ move $a1, $s1 -/* 086BC4 80085FC4 24060090 */ li $a2, 144 -/* 086BC8 80085FC8 0C0214F4 */ jal func_800853D0 -/* 086BCC 80085FCC 01AC2021 */ addu $a0, $t5, $t4 -/* 086BD0 80085FD0 1A200003 */ blez $s1, .L80085FE0 -/* 086BD4 80085FD4 00000000 */ nop -/* 086BD8 80085FD8 1E00FFF5 */ bgtz $s0, .L80085FB0 -/* 086BDC 80085FDC 00000000 */ nop -.L80085FE0: -/* 086BE0 80085FE0 0C0310BB */ jal set_text_font -/* 086BE4 80085FE4 24040002 */ li $a0, 2 -/* 086BE8 80085FE8 240E00FF */ li $t6, 255 -/* 086BEC 80085FEC AFAE0010 */ sw $t6, 0x10($sp) -/* 086BF0 80085FF0 240400FF */ li $a0, 255 -/* 086BF4 80085FF4 240500FF */ li $a1, 255 -/* 086BF8 80085FF8 240600FF */ li $a2, 255 -/* 086BFC 80085FFC 0C0310E1 */ jal set_text_colour -/* 086C00 80086000 00003825 */ move $a3, $zero -/* 086C04 80086004 8FAF0044 */ lw $t7, 0x44($sp) -/* 086C08 80086008 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086C0C 8008600C 11E00008 */ beqz $t7, .L80086030 -/* 086C10 80086010 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 086C14 80086014 3C07800F */ lui $a3, %hi(D_800E8208) # $a3, 0x800f -/* 086C18 80086018 2418000C */ li $t8, 12 -/* 086C1C 8008601C AFB80010 */ sw $t8, 0x10($sp) -/* 086C20 80086020 24E78208 */ addiu $a3, %lo(D_800E8208) # addiu $a3, $a3, -0x7df8 -/* 086C24 80086024 240500A0 */ li $a1, 160 -/* 086C28 80086028 0C031110 */ jal draw_text -/* 086C2C 8008602C 24060080 */ li $a2, 128 -.L80086030: -/* 086C30 80086030 8FAA0048 */ lw $t2, 0x48($sp) -/* 086C34 80086034 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086C38 80086038 11400009 */ beqz $t2, .L80086060 -/* 086C3C 8008603C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 086C40 80086040 3C19800E */ lui $t9, %hi(gMenuText) # $t9, 0x800e -/* 086C44 80086044 8F39F4A0 */ lw $t9, %lo(gMenuText)($t9) -/* 086C48 80086048 240B000C */ li $t3, 12 -/* 086C4C 8008604C 8F2701F0 */ lw $a3, 0x1f0($t9) -/* 086C50 80086050 AFAB0010 */ sw $t3, 0x10($sp) -/* 086C54 80086054 240500A0 */ li $a1, 160 -/* 086C58 80086058 0C031110 */ jal draw_text -/* 086C5C 8008605C 24060080 */ li $a2, 128 -.L80086060: -/* 086C60 80086060 8FAD0040 */ lw $t5, 0x40($sp) -/* 086C64 80086064 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 086C68 80086068 11A00005 */ beqz $t5, .L80086080 -/* 086C6C 8008606C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 086C70 80086070 00002825 */ move $a1, $zero -/* 086C74 80086074 00003025 */ move $a2, $zero -/* 086C78 80086078 0C0316D6 */ jal render_dialogue_box -/* 086C7C 8008607C 24070007 */ li $a3, 7 -.L80086080: -/* 086C80 80086080 0C02039B */ jal func_80080E6C -/* 086C84 80086084 00000000 */ nop -/* 086C88 80086088 8FBF003C */ lw $ra, 0x3c($sp) -/* 086C8C 8008608C 8FB00028 */ lw $s0, 0x28($sp) -/* 086C90 80086090 8FB1002C */ lw $s1, 0x2c($sp) -/* 086C94 80086094 8FB20030 */ lw $s2, 0x30($sp) -/* 086C98 80086098 8FB30034 */ lw $s3, 0x34($sp) -/* 086C9C 8008609C 8FB40038 */ lw $s4, 0x38($sp) -/* 086CA0 800860A0 03E00008 */ jr $ra -/* 086CA4 800860A4 27BD0068 */ addiu $sp, $sp, 0x68 - diff --git a/asm/non_matchings/menu/func_800871D8.s b/asm/non_matchings/menu/func_800871D8.s deleted file mode 100644 index 2b14cdb4..00000000 --- a/asm/non_matchings/menu/func_800871D8.s +++ /dev/null @@ -1,202 +0,0 @@ -glabel func_800871D8 -/* 087DD8 800871D8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 087DDC 800871DC 3C013FFF */ lui $at, (0x3FFFFFFF >> 16) # lui $at, 0x3fff -/* 087DE0 800871E0 AFB50030 */ sw $s5, 0x30($sp) -/* 087DE4 800871E4 3421FFFF */ ori $at, (0x3FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 087DE8 800871E8 3C15800E */ lui $s5, %hi(D_800DFAE0) # $s5, 0x800e -/* 087DEC 800871EC 00047783 */ sra $t6, $a0, 0x1e -/* 087DF0 800871F0 0081C024 */ and $t8, $a0, $at -/* 087DF4 800871F4 26B5FAE0 */ addiu $s5, %lo(D_800DFAE0) # addiu $s5, $s5, -0x520 -/* 087DF8 800871F8 31CF0003 */ andi $t7, $t6, 3 -/* 087DFC 800871FC 0018C880 */ sll $t9, $t8, 2 -/* 087E00 80087200 3C08800E */ lui $t0, %hi(gContPakStrings) # $t0, 0x800e -/* 087E04 80087204 AFB4002C */ sw $s4, 0x2c($sp) -/* 087E08 80087208 AEAF0000 */ sw $t7, ($s5) -/* 087E0C 8008720C 01194021 */ addu $t0, $t0, $t9 -/* 087E10 80087210 8D08FBDC */ lw $t0, %lo(gContPakStrings)($t0) -/* 087E14 80087214 3C148012 */ lui $s4, %hi(D_80126A70) # $s4, 0x8012 -/* 087E18 80087218 26946A70 */ addiu $s4, %lo(D_80126A70) # addiu $s4, $s4, 0x6a70 -/* 087E1C 8008721C 3C01800E */ lui $at, %hi(D_800DFADC) # $at, 0x800e -/* 087E20 80087220 AE880000 */ sw $t0, ($s4) -/* 087E24 80087224 3C058012 */ lui $a1, %hi(D_80126A74) # $a1, 0x8012 -/* 087E28 80087228 AC38FADC */ sw $t8, %lo(D_800DFADC)($at) -/* 087E2C 8008722C 8E830000 */ lw $v1, ($s4) -/* 087E30 80087230 24A56A74 */ addiu $a1, %lo(D_80126A74) # addiu $a1, $a1, 0x6a74 -/* 087E34 80087234 AFBF0034 */ sw $ra, 0x34($sp) -/* 087E38 80087238 AFB30028 */ sw $s3, 0x28($sp) -/* 087E3C 8008723C AFB20024 */ sw $s2, 0x24($sp) -/* 087E40 80087240 AFB10020 */ sw $s1, 0x20($sp) -/* 087E44 80087244 AFB0001C */ sw $s0, 0x1c($sp) -/* 087E48 80087248 ACA00000 */ sw $zero, ($a1) -/* 087E4C 8008724C 8C690000 */ lw $t1, ($v1) -/* 087E50 80087250 00008025 */ move $s0, $zero -/* 087E54 80087254 11200006 */ beqz $t1, .L80087270 -/* 087E58 80087258 3C018012 */ lui $at, %hi(D_80126A78) # $at, 0x8012 -/* 087E5C 8008725C 00601025 */ move $v0, $v1 -.L80087260: -/* 087E60 80087260 8C4A0004 */ lw $t2, 4($v0) -/* 087E64 80087264 26100001 */ addiu $s0, $s0, 1 -/* 087E68 80087268 1540FFFD */ bnez $t2, .L80087260 -/* 087E6C 8008726C 24420004 */ addiu $v0, $v0, 4 -.L80087270: -/* 087E70 80087270 26100001 */ addiu $s0, $s0, 1 -/* 087E74 80087274 00105880 */ sll $t3, $s0, 2 -/* 087E78 80087278 006B1021 */ addu $v0, $v1, $t3 -/* 087E7C 8008727C 8C4C0000 */ lw $t4, ($v0) -/* 087E80 80087280 00000000 */ nop -/* 087E84 80087284 11800009 */ beqz $t4, .L800872AC -/* 087E88 80087288 00000000 */ nop -.L8008728C: -/* 087E8C 8008728C 8CAD0000 */ lw $t5, ($a1) -/* 087E90 80087290 26100001 */ addiu $s0, $s0, 1 -/* 087E94 80087294 25AE0001 */ addiu $t6, $t5, 1 -/* 087E98 80087298 ACAE0000 */ sw $t6, ($a1) -/* 087E9C 8008729C 8C4F0004 */ lw $t7, 4($v0) -/* 087EA0 800872A0 24420004 */ addiu $v0, $v0, 4 -/* 087EA4 800872A4 15E0FFF9 */ bnez $t7, .L8008728C -/* 087EA8 800872A8 00000000 */ nop -.L800872AC: -/* 087EAC 800872AC 8CB80000 */ lw $t8, ($a1) -/* 087EB0 800872B0 24040007 */ li $a0, 7 -/* 087EB4 800872B4 2719FFFF */ addiu $t9, $t8, -1 -/* 087EB8 800872B8 0C031525 */ jal assign_dialogue_box_id -/* 087EBC 800872BC AC396A78 */ sw $t9, %lo(D_80126A78)($at) -/* 087EC0 800872C0 00101100 */ sll $v0, $s0, 4 -/* 087EC4 800872C4 2442002C */ addiu $v0, $v0, 0x2c -/* 087EC8 800872C8 00024043 */ sra $t0, $v0, 1 -/* 087ECC 800872CC 250A0078 */ addiu $t2, $t0, 0x78 -/* 087ED0 800872D0 24090078 */ li $t1, 120 -/* 087ED4 800872D4 01283023 */ subu $a2, $t1, $t0 -/* 087ED8 800872D8 AFAA0010 */ sw $t2, 0x10($sp) -/* 087EDC 800872DC 01001025 */ move $v0, $t0 -/* 087EE0 800872E0 24040007 */ li $a0, 7 -/* 087EE4 800872E4 24050028 */ li $a1, 40 -/* 087EE8 800872E8 0C0313B7 */ jal set_current_dialogue_box_coords -/* 087EEC 800872EC 24070118 */ li $a3, 280 -/* 087EF0 800872F0 240B00A0 */ li $t3, 160 -/* 087EF4 800872F4 AFAB0010 */ sw $t3, 0x10($sp) -/* 087EF8 800872F8 24040007 */ li $a0, 7 -/* 087EFC 800872FC 00002825 */ move $a1, $zero -/* 087F00 80087300 00003025 */ move $a2, $zero -/* 087F04 80087304 0C0313EF */ jal set_current_dialogue_background_colour -/* 087F08 80087308 00003825 */ move $a3, $zero -/* 087F0C 8008730C 24040007 */ li $a0, 7 -/* 087F10 80087310 00002825 */ move $a1, $zero -/* 087F14 80087314 00003025 */ move $a2, $zero -/* 087F18 80087318 00003825 */ move $a3, $zero -/* 087F1C 8008731C 0C031414 */ jal set_current_text_background_colour -/* 087F20 80087320 AFA00010 */ sw $zero, 0x10($sp) -/* 087F24 80087324 24040007 */ li $a0, 7 -/* 087F28 80087328 0C0313DF */ jal set_dialogue_font -/* 087F2C 8008732C 24050002 */ li $a1, 2 -/* 087F30 80087330 240C00FF */ li $t4, 255 -/* 087F34 80087334 AFAC0014 */ sw $t4, 0x14($sp) -/* 087F38 80087338 24040007 */ li $a0, 7 -/* 087F3C 8008733C 240500FF */ li $a1, 255 -/* 087F40 80087340 240600FF */ li $a2, 255 -/* 087F44 80087344 240700FF */ li $a3, 255 -/* 087F48 80087348 0C031400 */ jal set_current_text_colour -/* 087F4C 8008734C AFA00010 */ sw $zero, 0x10($sp) -/* 087F50 80087350 3C02800E */ lui $v0, %hi(gMenuText) # $v0, 0x800e -/* 087F54 80087354 8C42F4A0 */ lw $v0, %lo(gMenuText)($v0) -/* 087F58 80087358 8E830000 */ lw $v1, ($s4) -/* 087F5C 8008735C 3C0D800E */ lui $t5, %hi(gContPakRumbleDetectedStrings) # $t5, 0x800e -/* 087F60 80087360 25ADFB8C */ addiu $t5, %lo(gContPakRumbleDetectedStrings) # addiu $t5, $t5, -0x474 -/* 087F64 80087364 8C470100 */ lw $a3, 0x100($v0) -/* 087F68 80087368 106D0005 */ beq $v1, $t5, .L80087380 -/* 087F6C 8008736C 24040007 */ li $a0, 7 -/* 087F70 80087370 3C0E800E */ lui $t6, %hi(gContPakSwitchToRumbleStrings) # $t6, 0x800e -/* 087F74 80087374 25CEFBA4 */ addiu $t6, %lo(gContPakSwitchToRumbleStrings) # addiu $t6, $t6, -0x45c -/* 087F78 80087378 146E0004 */ bne $v1, $t6, .L8008738C -/* 087F7C 8008737C 3C0F800E */ lui $t7, %hi(gContPakNeed2ndAdvStrings) # $t7, 0x800e -.L80087380: -/* 087F80 80087380 8C470260 */ lw $a3, 0x260($v0) -/* 087F84 80087384 10000007 */ b .L800873A4 -/* 087F88 80087388 24180001 */ li $t8, 1 -.L8008738C: -/* 087F8C 8008738C 25EFFBBC */ addiu $t7, %lo(gContPakNeed2ndAdvStrings) # addiu $t7, $t7, -0x444 -/* 087F90 80087390 146F0004 */ bne $v1, $t7, .L800873A4 -/* 087F94 80087394 24180001 */ li $t8, 1 -/* 087F98 80087398 8C4701F4 */ lw $a3, 0x1f4($v0) -/* 087F9C 8008739C 00000000 */ nop -/* 087FA0 800873A0 24180001 */ li $t8, 1 -.L800873A4: -/* 087FA4 800873A4 2419000C */ li $t9, 12 -/* 087FA8 800873A8 AFB90014 */ sw $t9, 0x14($sp) -/* 087FAC 800873AC AFB80010 */ sw $t8, 0x10($sp) -/* 087FB0 800873B0 24058000 */ li $a1, -32768 -/* 087FB4 800873B4 0C03145A */ jal render_dialogue_text -/* 087FB8 800873B8 24060014 */ li $a2, 20 -/* 087FBC 800873BC 24120034 */ li $s2, 52 -/* 087FC0 800873C0 00009825 */ move $s3, $zero -/* 087FC4 800873C4 24040007 */ li $a0, 7 -/* 087FC8 800873C8 0C0313DF */ jal set_dialogue_font -/* 087FCC 800873CC 00002825 */ move $a1, $zero -/* 087FD0 800873D0 8E830000 */ lw $v1, ($s4) -/* 087FD4 800873D4 00138080 */ sll $s0, $s3, 2 -/* 087FD8 800873D8 8C680000 */ lw $t0, ($v1) -/* 087FDC 800873DC 00704821 */ addu $t1, $v1, $s0 -/* 087FE0 800873E0 11000014 */ beqz $t0, .L80087434 -/* 087FE4 800873E4 00000000 */ nop -/* 087FE8 800873E8 8D310000 */ lw $s1, ($t1) -/* 087FEC 800873EC 00000000 */ nop -.L800873F0: -/* 087FF0 800873F0 8EAA0000 */ lw $t2, ($s5) -/* 087FF4 800873F4 240C000C */ li $t4, 12 -/* 087FF8 800873F8 254B0001 */ addiu $t3, $t2, 1 -/* 087FFC 800873FC AFAB0010 */ sw $t3, 0x10($sp) -/* 088000 80087400 AFAC0014 */ sw $t4, 0x14($sp) -/* 088004 80087404 24040007 */ li $a0, 7 -/* 088008 80087408 24058000 */ li $a1, -32768 -/* 08800C 8008740C 02403025 */ move $a2, $s2 -/* 088010 80087410 0C03145A */ jal render_dialogue_text -/* 088014 80087414 02203825 */ move $a3, $s1 -/* 088018 80087418 8E830000 */ lw $v1, ($s4) -/* 08801C 8008741C 26100004 */ addiu $s0, $s0, 4 -/* 088020 80087420 00706821 */ addu $t5, $v1, $s0 -/* 088024 80087424 8DB10000 */ lw $s1, ($t5) -/* 088028 80087428 26730001 */ addiu $s3, $s3, 1 -/* 08802C 8008742C 1620FFF0 */ bnez $s1, .L800873F0 -/* 088030 80087430 26520010 */ addiu $s2, $s2, 0x10 -.L80087434: -/* 088034 80087434 26730001 */ addiu $s3, $s3, 1 -/* 088038 80087438 00138080 */ sll $s0, $s3, 2 -/* 08803C 8008743C 00707021 */ addu $t6, $v1, $s0 -/* 088040 80087440 8DD10000 */ lw $s1, ($t6) -/* 088044 80087444 26520010 */ addiu $s2, $s2, 0x10 -/* 088048 80087448 12200013 */ beqz $s1, .L80087498 -/* 08804C 8008744C 3C138012 */ lui $s3, %hi(D_80126A80) # $s3, 0x8012 -/* 088050 80087450 26736A80 */ addiu $s3, %lo(D_80126A80) # addiu $s3, $s3, 0x6a80 -.L80087454: -/* 088054 80087454 240F0001 */ li $t7, 1 -/* 088058 80087458 2418000C */ li $t8, 12 -/* 08805C 8008745C AFB80014 */ sw $t8, 0x14($sp) -/* 088060 80087460 AFAF0010 */ sw $t7, 0x10($sp) -/* 088064 80087464 24040007 */ li $a0, 7 -/* 088068 80087468 24058000 */ li $a1, -32768 -/* 08806C 8008746C 02403025 */ move $a2, $s2 -/* 088070 80087470 0C03145A */ jal render_dialogue_text -/* 088074 80087474 02203825 */ move $a3, $s1 -/* 088078 80087478 8E990000 */ lw $t9, ($s4) -/* 08807C 8008747C 26100004 */ addiu $s0, $s0, 4 -/* 088080 80087480 AE620000 */ sw $v0, ($s3) -/* 088084 80087484 03304021 */ addu $t0, $t9, $s0 -/* 088088 80087488 8D110000 */ lw $s1, ($t0) -/* 08808C 8008748C 26730004 */ addiu $s3, $s3, 4 -/* 088090 80087490 1620FFF0 */ bnez $s1, .L80087454 -/* 088094 80087494 26520010 */ addiu $s2, $s2, 0x10 -.L80087498: -/* 088098 80087498 3C028012 */ lui $v0, %hi(gMenuOptionCount) # $v0, 0x8012 -/* 08809C 8008749C 244263E0 */ addiu $v0, %lo(gMenuOptionCount) # addiu $v0, $v0, 0x63e0 -/* 0880A0 800874A0 8C490000 */ lw $t1, ($v0) -/* 0880A4 800874A4 8FBF0034 */ lw $ra, 0x34($sp) -/* 0880A8 800874A8 8FB0001C */ lw $s0, 0x1c($sp) -/* 0880AC 800874AC 8FB10020 */ lw $s1, 0x20($sp) -/* 0880B0 800874B0 8FB20024 */ lw $s2, 0x24($sp) -/* 0880B4 800874B4 8FB30028 */ lw $s3, 0x28($sp) -/* 0880B8 800874B8 8FB4002C */ lw $s4, 0x2c($sp) -/* 0880BC 800874BC 8FB50030 */ lw $s5, 0x30($sp) -/* 0880C0 800874C0 352A0008 */ ori $t2, $t1, 8 -/* 0880C4 800874C4 AC4A0000 */ sw $t2, ($v0) -/* 0880C8 800874C8 03E00008 */ jr $ra -/* 0880CC 800874CC 27BD0038 */ addiu $sp, $sp, 0x38 \ No newline at end of file diff --git a/asm/non_matchings/menu/func_80096978.s b/asm/non_matchings/menu/func_80096978.s index f905f483..f9d702b9 100644 --- a/asm/non_matchings/menu/func_80096978.s +++ b/asm/non_matchings/menu/func_80096978.s @@ -252,9 +252,9 @@ glabel func_80096978 /* 09793C 80096D3C 3C18800E */ lui $t8, %hi(gNumberOfActivePlayers) # $t8, 0x800e /* 097940 80096D40 8F18F4BC */ lw $t8, %lo(gNumberOfActivePlayers)($t8) /* 097944 80096D44 A022F4AC */ sb $v0, %lo(sMenuGuiColourB)($at) -/* 097948 80096D48 3C01800E */ lui $at, %hi(sMenuGuiColourA) # $at, 0x800e +/* 097948 80096D48 3C01800E */ lui $at, %hi(sMenuGuiColourBlendFactor) # $at, 0x800e /* 09794C 80096D4C 1B00006E */ blez $t8, .L80096F08 -/* 097950 80096D50 A022F4B0 */ sb $v0, %lo(sMenuGuiColourA)($at) +/* 097950 80096D50 A022F4B0 */ sb $v0, %lo(sMenuGuiColourBlendFactor)($at) /* 097954 80096D54 8FAB00A8 */ lw $t3, 0xa8($sp) /* 097958 80096D58 240D0078 */ li $t5, 120 /* 09795C 80096D5C 8FA900A0 */ lw $t1, 0xa0($sp) @@ -393,8 +393,8 @@ glabel func_80096978 /* 097B48 80096F48 A02EF4A8 */ sb $t6, %lo(sMenuGuiColourG)($at) /* 097B4C 80096F4C 8FB80078 */ lw $t8, 0x78($sp) /* 097B50 80096F50 8FA80070 */ lw $t0, 0x70($sp) -/* 097B54 80096F54 3C01800E */ lui $at, %hi(sMenuGuiColourA) # $at, 0x800e -/* 097B58 80096F58 A020F4B0 */ sb $zero, %lo(sMenuGuiColourA)($at) +/* 097B54 80096F54 3C01800E */ lui $at, %hi(sMenuGuiColourBlendFactor) # $at, 0x800e +/* 097B58 80096F58 A020F4B0 */ sb $zero, %lo(sMenuGuiColourBlendFactor)($at) /* 097B5C 80096F5C 25F90001 */ addiu $t9, $t7, 1 /* 097B60 80096F60 2B210004 */ slti $at, $t9, 4 /* 097B64 80096F64 27090004 */ addiu $t1, $t8, 4 diff --git a/asm/non_matchings/menu/render_file_select_menu.s b/asm/non_matchings/menu/render_file_select_menu.s deleted file mode 100644 index cabb9130..00000000 --- a/asm/non_matchings/menu/render_file_select_menu.s +++ /dev/null @@ -1,580 +0,0 @@ -glabel render_file_select_menu -/* 08D974 8008CD74 27BDFF78 */ addiu $sp, $sp, -0x88 -/* 08D978 8008CD78 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 -/* 08D97C 8008CD7C 8DCE0300 */ lw $t6, %lo(osTvType)($t6) -/* 08D980 8008CD80 AFBF0054 */ sw $ra, 0x54($sp) -/* 08D984 8008CD84 AFB70050 */ sw $s7, 0x50($sp) -/* 08D988 8008CD88 AFB6004C */ sw $s6, 0x4c($sp) -/* 08D98C 8008CD8C AFB50048 */ sw $s5, 0x48($sp) -/* 08D990 8008CD90 AFB40044 */ sw $s4, 0x44($sp) -/* 08D994 8008CD94 AFB30040 */ sw $s3, 0x40($sp) -/* 08D998 8008CD98 AFB2003C */ sw $s2, 0x3c($sp) -/* 08D99C 8008CD9C AFB10038 */ sw $s1, 0x38($sp) -/* 08D9A0 8008CDA0 AFB00034 */ sw $s0, 0x34($sp) -/* 08D9A4 8008CDA4 15C00003 */ bnez $t6, .L8008CDB4 -/* 08D9A8 8008CDA8 AFA40088 */ sw $a0, 0x88($sp) -/* 08D9AC 8008CDAC 10000002 */ b .L8008CDB8 -/* 08D9B0 8008CDB0 2416000C */ li $s6, 12 -.L8008CDB4: -/* 08D9B4 8008CDB4 0000B025 */ move $s6, $zero -.L8008CDB8: -/* 08D9B8 8008CDB8 0C026F57 */ jal func_8009BD5C -/* 08D9BC 8008CDBC 00000000 */ nop -/* 08D9C0 8008CDC0 3C178012 */ lui $s7, %hi(sMenuCurrDisplayList) # $s7, 0x8012 -/* 08D9C4 8008CDC4 26F763A0 */ addiu $s7, %lo(sMenuCurrDisplayList) # addiu $s7, $s7, 0x63a0 -/* 08D9C8 8008CDC8 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 08D9CC 8008CDCC 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 08D9D0 8008CDD0 0C019FCB */ jal set_ortho_matrix_view -/* 08D9D4 8008CDD4 02E02025 */ move $a0, $s7 -/* 08D9D8 8008CDD8 3C118012 */ lui $s1, %hi(gSavefileInfo) # $s1, 0x8012 -/* 08D9DC 8008CDDC 3C10800E */ lui $s0, %hi(gFileSelectButtons) # $s0, 0x800e -/* 08D9E0 8008CDE0 3C158012 */ lui $s5, %hi(gMenuObjects) # $s5, 0x8012 -/* 08D9E4 8008CDE4 3C13B0E0 */ lui $s3, (0xB0E0C0FF >> 16) # lui $s3, 0xb0e0 -/* 08D9E8 8008CDE8 3C12800E */ lui $s2, %hi(gIsInAdventureTwo) # $s2, 0x800e -/* 08D9EC 8008CDEC 2652F494 */ addiu $s2, %lo(gIsInAdventureTwo) # addiu $s2, $s2, -0xb6c -/* 08D9F0 8008CDF0 3673C0FF */ ori $s3, (0xB0E0C0FF & 0xFFFF) # ori $s3, $s3, 0xc0ff -/* 08D9F4 8008CDF4 26B56550 */ addiu $s5, %lo(gMenuObjects) # addiu $s5, $s5, 0x6550 -/* 08D9F8 8008CDF8 261003CC */ addiu $s0, %lo(gFileSelectButtons) # addiu $s0, $s0, 0x3cc -/* 08D9FC 8008CDFC 263164A0 */ addiu $s1, %lo(gSavefileInfo) # addiu $s1, $s1, 0x64a0 -/* 08DA00 8008CE00 24140078 */ li $s4, 120 -.L8008CE04: -/* 08DA04 8008CE04 8E4F0000 */ lw $t7, ($s2) -/* 08DA08 8008CE08 92380000 */ lbu $t8, ($s1) -/* 08DA0C 8008CE0C 00002025 */ move $a0, $zero -/* 08DA10 8008CE10 11F80005 */ beq $t7, $t8, .L8008CE28 -/* 08DA14 8008CE14 00000000 */ nop -/* 08DA18 8008CE18 92390001 */ lbu $t9, 1($s1) -/* 08DA1C 8008CE1C 3C026A90 */ lui $v0, (0x6A9073FF >> 16) # lui $v0, 0x6a90 -/* 08DA20 8008CE20 17200003 */ bnez $t9, .L8008CE30 -/* 08DA24 8008CE24 344273FF */ ori $v0, (0x6A9073FF & 0xFFFF) # ori $v0, $v0, 0x73ff -.L8008CE28: -/* 08DA28 8008CE28 10000001 */ b .L8008CE30 -/* 08DA2C 8008CE2C 02601025 */ move $v0, $s3 -.L8008CE30: -/* 08DA30 8008CE30 86050000 */ lh $a1, ($s0) -/* 08DA34 8008CE34 86080002 */ lh $t0, 2($s0) -/* 08DA38 8008CE38 86090006 */ lh $t1, 6($s0) -/* 08DA3C 8008CE3C 860A0008 */ lh $t2, 8($s0) -/* 08DA40 8008CE40 860B000A */ lh $t3, 0xa($s0) -/* 08DA44 8008CE44 8EAC010C */ lw $t4, 0x10c($s5) -/* 08DA48 8008CE48 86070004 */ lh $a3, 4($s0) -/* 08DA4C 8008CE4C AFA2001C */ sw $v0, 0x1c($sp) -/* 08DA50 8008CE50 24A5FF60 */ addiu $a1, $a1, -0xa0 -/* 08DA54 8008CE54 02883023 */ subu $a2, $s4, $t0 -/* 08DA58 8008CE58 AFA90010 */ sw $t1, 0x10($sp) -/* 08DA5C 8008CE5C AFAA0014 */ sw $t2, 0x14($sp) -/* 08DA60 8008CE60 AFAB0018 */ sw $t3, 0x18($sp) -/* 08DA64 8008CE64 0C020160 */ jal func_80080580 -/* 08DA68 8008CE68 AFAC0020 */ sw $t4, 0x20($sp) -/* 08DA6C 8008CE6C 3C0D800E */ lui $t5, %hi(gFileSelectElementPos) # $t5, 0x800e -/* 08DA70 8008CE70 25AD03FC */ addiu $t5, %lo(gFileSelectElementPos) # addiu $t5, $t5, 0x3fc -/* 08DA74 8008CE74 26100010 */ addiu $s0, $s0, 0x10 -/* 08DA78 8008CE78 020D082B */ sltu $at, $s0, $t5 -/* 08DA7C 8008CE7C 1420FFE1 */ bnez $at, .L8008CE04 -/* 08DA80 8008CE80 2631000C */ addiu $s1, $s1, 0xc -/* 08DA84 8008CE84 0C0202F2 */ jal func_80080BC8 -/* 08DA88 8008CE88 02E02025 */ move $a0, $s7 -/* 08DA8C 8008CE8C 3C0E8012 */ lui $t6, %hi(gOpacityDecayTimer) # $t6, 0x8012 -/* 08DA90 8008CE90 8DCE63D8 */ lw $t6, %lo(gOpacityDecayTimer)($t6) -/* 08DA94 8008CE94 00000000 */ nop -/* 08DA98 8008CE98 15C00097 */ bnez $t6, .L8008D0F8 -/* 08DA9C 8008CE9C 00000000 */ nop -/* 08DAA0 8008CEA0 0C0310BB */ jal set_text_font -/* 08DAA4 8008CEA4 24040002 */ li $a0, 2 -/* 08DAA8 8008CEA8 00002025 */ move $a0, $zero -/* 08DAAC 8008CEAC 00002825 */ move $a1, $zero -/* 08DAB0 8008CEB0 00003025 */ move $a2, $zero -/* 08DAB4 8008CEB4 0C0310F3 */ jal set_text_background_colour -/* 08DAB8 8008CEB8 00003825 */ move $a3, $zero -/* 08DABC 8008CEBC 3C118012 */ lui $s1, %hi(gSavefileInfo) # $s1, 0x8012 -/* 08DAC0 8008CEC0 3C10800E */ lui $s0, %hi(gFileSelectButtons) # $s0, 0x800e -/* 08DAC4 8008CEC4 3C14800E */ lui $s4, %hi(gFileSelectElementPos) # $s4, 0x800e -/* 08DAC8 8008CEC8 3C13800E */ lui $s3, %hi(gMenuImageStack) # $s3, 0x800e -/* 08DACC 8008CECC 2673F75C */ addiu $s3, %lo(gMenuImageStack) # addiu $s3, $s3, -0x8a4 -/* 08DAD0 8008CED0 269403FC */ addiu $s4, %lo(gFileSelectElementPos) # addiu $s4, $s4, 0x3fc -/* 08DAD4 8008CED4 261003CC */ addiu $s0, %lo(gFileSelectButtons) # addiu $s0, $s0, 0x3cc -/* 08DAD8 8008CED8 263164A0 */ addiu $s1, %lo(gSavefileInfo) # addiu $s1, $s1, 0x64a0 -/* 08DADC 8008CEDC 2415000A */ li $s5, 10 -.L8008CEE0: -/* 08DAE0 8008CEE0 922F0001 */ lbu $t7, 1($s1) -/* 08DAE4 8008CEE4 240400FF */ li $a0, 255 -/* 08DAE8 8008CEE8 11E0006B */ beqz $t7, .L8008D098 -/* 08DAEC 8008CEEC 240500FF */ li $a1, 255 -/* 08DAF0 8008CEF0 00002025 */ move $a0, $zero -/* 08DAF4 8008CEF4 0C01EFC7 */ jal sprite_opaque -/* 08DAF8 8008CEF8 2412000B */ li $s2, 11 -/* 08DAFC 8008CEFC 92380000 */ lbu $t8, ($s1) -/* 08DB00 8008CF00 00003825 */ move $a3, $zero -/* 08DB04 8008CF04 13000002 */ beqz $t8, .L8008CF10 -/* 08DB08 8008CF08 240B0080 */ li $t3, 128 -/* 08DB0C 8008CF0C 2412000C */ li $s2, 12 -.L8008CF10: -/* 08DB10 8008CF10 86990004 */ lh $t9, 4($s4) -/* 08DB14 8008CF14 86080000 */ lh $t0, ($s0) -/* 08DB18 8008CF18 86890006 */ lh $t1, 6($s4) -/* 08DB1C 8008CF1C 860A0002 */ lh $t2, 2($s0) -/* 08DB20 8008CF20 02402025 */ move $a0, $s2 -/* 08DB24 8008CF24 AFA00010 */ sw $zero, 0x10($sp) -/* 08DB28 8008CF28 AFA00014 */ sw $zero, 0x14($sp) -/* 08DB2C 8008CF2C AFAB0018 */ sw $t3, 0x18($sp) -/* 08DB30 8008CF30 03282821 */ addu $a1, $t9, $t0 -/* 08DB34 8008CF34 0C02330A */ jal render_menu_image -/* 08DB38 8008CF38 012A3021 */ addu $a2, $t1, $t2 -/* 08DB3C 8008CF3C 0C01A142 */ jal func_80068508 -/* 08DB40 8008CF40 24040001 */ li $a0, 1 -/* 08DB44 8008CF44 962C0002 */ lhu $t4, 2($s1) -/* 08DB48 8008CF48 8E6E0000 */ lw $t6, ($s3) -/* 08DB4C 8008CF4C 0195001A */ div $zero, $t4, $s5 -/* 08DB50 8008CF50 24090080 */ li $t1, 128 -/* 08DB54 8008CF54 16A00002 */ bnez $s5, .L8008CF60 -/* 08DB58 8008CF58 00000000 */ nop -/* 08DB5C 8008CF5C 0007000D */ break 7 -.L8008CF60: -/* 08DB60 8008CF60 2401FFFF */ li $at, -1 -/* 08DB64 8008CF64 16A10004 */ bne $s5, $at, .L8008CF78 -/* 08DB68 8008CF68 3C018000 */ lui $at, 0x8000 -/* 08DB6C 8008CF6C 15810002 */ bne $t4, $at, .L8008CF78 -/* 08DB70 8008CF70 00000000 */ nop -/* 08DB74 8008CF74 0006000D */ break 6 -.L8008CF78: -/* 08DB78 8008CF78 00002025 */ move $a0, $zero -/* 08DB7C 8008CF7C 00003825 */ move $a3, $zero -/* 08DB80 8008CF80 00006812 */ mflo $t5 -/* 08DB84 8008CF84 A5CD0018 */ sh $t5, 0x18($t6) -/* 08DB88 8008CF88 86180000 */ lh $t8, ($s0) -/* 08DB8C 8008CF8C 868F000C */ lh $t7, 0xc($s4) -/* 08DB90 8008CF90 86080002 */ lh $t0, 2($s0) -/* 08DB94 8008CF94 8699000E */ lh $t9, 0xe($s4) -/* 08DB98 8008CF98 01F82821 */ addu $a1, $t7, $t8 -/* 08DB9C 8008CF9C 24A5FFFA */ addiu $a1, $a1, -6 -/* 08DBA0 8008CFA0 AFA90018 */ sw $t1, 0x18($sp) -/* 08DBA4 8008CFA4 AFA00014 */ sw $zero, 0x14($sp) -/* 08DBA8 8008CFA8 AFA00010 */ sw $zero, 0x10($sp) -/* 08DBAC 8008CFAC 0C02330A */ jal render_menu_image -/* 08DBB0 8008CFB0 03283021 */ addu $a2, $t9, $t0 -/* 08DBB4 8008CFB4 962A0002 */ lhu $t2, 2($s1) -/* 08DBB8 8008CFB8 8E6C0000 */ lw $t4, ($s3) -/* 08DBBC 8008CFBC 0155001A */ div $zero, $t2, $s5 -/* 08DBC0 8008CFC0 24190080 */ li $t9, 128 -/* 08DBC4 8008CFC4 16A00002 */ bnez $s5, .L8008CFD0 -/* 08DBC8 8008CFC8 00000000 */ nop -/* 08DBCC 8008CFCC 0007000D */ break 7 -.L8008CFD0: -/* 08DBD0 8008CFD0 2401FFFF */ li $at, -1 -/* 08DBD4 8008CFD4 16A10004 */ bne $s5, $at, .L8008CFE8 -/* 08DBD8 8008CFD8 3C018000 */ lui $at, 0x8000 -/* 08DBDC 8008CFDC 15410002 */ bne $t2, $at, .L8008CFE8 -/* 08DBE0 8008CFE0 00000000 */ nop -/* 08DBE4 8008CFE4 0006000D */ break 6 -.L8008CFE8: -/* 08DBE8 8008CFE8 00002025 */ move $a0, $zero -/* 08DBEC 8008CFEC 00003825 */ move $a3, $zero -/* 08DBF0 8008CFF0 00005810 */ mfhi $t3 -/* 08DBF4 8008CFF4 A58B0018 */ sh $t3, 0x18($t4) -/* 08DBF8 8008CFF8 860E0000 */ lh $t6, ($s0) -/* 08DBFC 8008CFFC 868D000C */ lh $t5, 0xc($s4) -/* 08DC00 8008D000 86180002 */ lh $t8, 2($s0) -/* 08DC04 8008D004 868F000E */ lh $t7, 0xe($s4) -/* 08DC08 8008D008 01AE2821 */ addu $a1, $t5, $t6 -/* 08DC0C 8008D00C 24A50006 */ addiu $a1, $a1, 6 -/* 08DC10 8008D010 AFB90018 */ sw $t9, 0x18($sp) -/* 08DC14 8008D014 AFA00014 */ sw $zero, 0x14($sp) -/* 08DC18 8008D018 AFA00010 */ sw $zero, 0x10($sp) -/* 08DC1C 8008D01C 0C02330A */ jal render_menu_image -/* 08DC20 8008D020 01F83021 */ addu $a2, $t7, $t8 -/* 08DC24 8008D024 0C01A142 */ jal func_80068508 -/* 08DC28 8008D028 00002025 */ move $a0, $zero -/* 08DC2C 8008D02C 24020040 */ li $v0, 64 -/* 08DC30 8008D030 3C01800E */ lui $at, %hi(sMenuGuiColourG) # $at, 0x800e -/* 08DC34 8008D034 A022F4A8 */ sb $v0, %lo(sMenuGuiColourG)($at) -/* 08DC38 8008D038 3C01800E */ lui $at, %hi(sMenuGuiColourB) # $at, 0x800e -/* 08DC3C 8008D03C A022F4AC */ sb $v0, %lo(sMenuGuiColourB)($at) -/* 08DC40 8008D040 860B0002 */ lh $t3, 2($s0) -/* 08DC44 8008D044 868A0012 */ lh $t2, 0x12($s4) -/* 08DC48 8008D048 86090000 */ lh $t1, ($s0) -/* 08DC4C 8008D04C 86880010 */ lh $t0, 0x10($s4) -/* 08DC50 8008D050 240C0080 */ li $t4, 128 -/* 08DC54 8008D054 AFAC0018 */ sw $t4, 0x18($sp) -/* 08DC58 8008D058 02A02025 */ move $a0, $s5 -/* 08DC5C 8008D05C 00003825 */ move $a3, $zero -/* 08DC60 8008D060 AFA00010 */ sw $zero, 0x10($sp) -/* 08DC64 8008D064 AFA00014 */ sw $zero, 0x14($sp) -/* 08DC68 8008D068 014B3021 */ addu $a2, $t2, $t3 -/* 08DC6C 8008D06C 0C02330A */ jal render_menu_image -/* 08DC70 8008D070 01092821 */ addu $a1, $t0, $t1 -/* 08DC74 8008D074 240200FF */ li $v0, 255 -/* 08DC78 8008D078 3C01800E */ lui $at, %hi(sMenuGuiColourG) # $at, 0x800e -/* 08DC7C 8008D07C A022F4A8 */ sb $v0, %lo(sMenuGuiColourG)($at) -/* 08DC80 8008D080 3C01800E */ lui $at, %hi(sMenuGuiColourB) # $at, 0x800e -/* 08DC84 8008D084 A022F4AC */ sb $v0, %lo(sMenuGuiColourB)($at) -/* 08DC88 8008D088 0C01EFC7 */ jal sprite_opaque -/* 08DC8C 8008D08C 24040001 */ li $a0, 1 -/* 08DC90 8008D090 10000014 */ b .L8008D0E4 -/* 08DC94 8008D094 00000000 */ nop -.L8008D098: -/* 08DC98 8008D098 240D00FF */ li $t5, 255 -/* 08DC9C 8008D09C AFAD0010 */ sw $t5, 0x10($sp) -/* 08DCA0 8008D0A0 240600FF */ li $a2, 255 -/* 08DCA4 8008D0A4 0C0310E1 */ jal set_text_colour -/* 08DCA8 8008D0A8 24070040 */ li $a3, 64 -/* 08DCAC 8008D0AC 3C09800E */ lui $t1, %hi(gMenuText) # $t1, 0x800e -/* 08DCB0 8008D0B0 8D29F4A0 */ lw $t1, %lo(gMenuText)($t1) -/* 08DCB4 8008D0B4 8698000A */ lh $t8, 0xa($s4) -/* 08DCB8 8008D0B8 86190002 */ lh $t9, 2($s0) -/* 08DCBC 8008D0BC 868E0008 */ lh $t6, 8($s4) -/* 08DCC0 8008D0C0 860F0000 */ lh $t7, ($s0) -/* 08DCC4 8008D0C4 240A000C */ li $t2, 12 -/* 08DCC8 8008D0C8 8D27012C */ lw $a3, 0x12c($t1) -/* 08DCCC 8008D0CC 03194021 */ addu $t0, $t8, $t9 -/* 08DCD0 8008D0D0 01163021 */ addu $a2, $t0, $s6 -/* 08DCD4 8008D0D4 AFAA0010 */ sw $t2, 0x10($sp) -/* 08DCD8 8008D0D8 02E02025 */ move $a0, $s7 -/* 08DCDC 8008D0DC 0C031110 */ jal draw_text -/* 08DCE0 8008D0E0 01CF2821 */ addu $a1, $t6, $t7 -.L8008D0E4: -/* 08DCE4 8008D0E4 3C0B800E */ lui $t3, %hi(gFileSelectElementPos) # $t3, 0x800e -/* 08DCE8 8008D0E8 256B03FC */ addiu $t3, %lo(gFileSelectElementPos) # addiu $t3, $t3, 0x3fc -/* 08DCEC 8008D0EC 26100010 */ addiu $s0, $s0, 0x10 -/* 08DCF0 8008D0F0 160BFF7B */ bne $s0, $t3, .L8008CEE0 -/* 08DCF4 8008D0F4 2631000C */ addiu $s1, $s1, 0xc -.L8008D0F8: -/* 08DCF8 8008D0F8 3C028012 */ lui $v0, %hi(gOptionBlinkTimer) # $v0, 0x8012 -/* 08DCFC 8008D0FC 8C4263BC */ lw $v0, %lo(gOptionBlinkTimer)($v0) -/* 08DD00 8008D100 3C14800E */ lui $s4, %hi(gFileSelectElementPos) # $s4, 0x800e -/* 08DD04 8008D104 000260C0 */ sll $t4, $v0, 3 -/* 08DD08 8008D108 29810100 */ slti $at, $t4, 0x100 -/* 08DD0C 8008D10C 269403FC */ addiu $s4, %lo(gFileSelectElementPos) # addiu $s4, $s4, 0x3fc -/* 08DD10 8008D110 14200003 */ bnez $at, .L8008D120 -/* 08DD14 8008D114 01801025 */ move $v0, $t4 -/* 08DD18 8008D118 240D01FF */ li $t5, 511 -/* 08DD1C 8008D11C 01AC1023 */ subu $v0, $t5, $t4 -.L8008D120: -/* 08DD20 8008D120 00002025 */ move $a0, $zero -/* 08DD24 8008D124 0C0310BB */ jal set_text_font -/* 08DD28 8008D128 AFA2007C */ sw $v0, 0x7c($sp) -/* 08DD2C 8008D12C 00002025 */ move $a0, $zero -/* 08DD30 8008D130 00002825 */ move $a1, $zero -/* 08DD34 8008D134 00003025 */ move $a2, $zero -/* 08DD38 8008D138 0C0310F3 */ jal set_text_background_colour -/* 08DD3C 8008D13C 00003825 */ move $a3, $zero -/* 08DD40 8008D140 240E00FF */ li $t6, 255 -/* 08DD44 8008D144 AFAE0010 */ sw $t6, 0x10($sp) -/* 08DD48 8008D148 240400FF */ li $a0, 255 -/* 08DD4C 8008D14C 240500FF */ li $a1, 255 -/* 08DD50 8008D150 240600FF */ li $a2, 255 -/* 08DD54 8008D154 0C0310E1 */ jal set_text_colour -/* 08DD58 8008D158 00003825 */ move $a3, $zero -/* 08DD5C 8008D15C 00009825 */ move $s3, $zero -/* 08DD60 8008D160 27B50064 */ addiu $s5, $sp, 0x64 -.L8008D164: -/* 08DD64 8008D164 3C0F8012 */ lui $t7, %hi(D_80126484) # $t7, 0x8012 -/* 08DD68 8008D168 8DEF6484 */ lw $t7, %lo(D_80126484)($t7) -/* 08DD6C 8008D16C 00009025 */ move $s2, $zero -/* 08DD70 8008D170 11E00014 */ beqz $t7, .L8008D1C4 -/* 08DD74 8008D174 3C088012 */ lui $t0, %hi(D_80126488) # $t0, 0x8012 -/* 08DD78 8008D178 3C028012 */ lui $v0, %hi(D_80126494) # $v0, 0x8012 -/* 08DD7C 8008D17C 8C426494 */ lw $v0, %lo(D_80126494)($v0) -/* 08DD80 8008D180 3C188012 */ lui $t8, %hi(gSaveFileIndex3) # $t8, 0x8012 -/* 08DD84 8008D184 14400007 */ bnez $v0, .L8008D1A4 -/* 08DD88 8008D188 00000000 */ nop -/* 08DD8C 8008D18C 8F18648C */ lw $t8, %lo(gSaveFileIndex3)($t8) -/* 08DD90 8008D190 00000000 */ nop -/* 08DD94 8008D194 16780003 */ bne $s3, $t8, .L8008D1A4 -/* 08DD98 8008D198 00000000 */ nop -/* 08DD9C 8008D19C 1000001C */ b .L8008D210 -/* 08DDA0 8008D1A0 24120001 */ li $s2, 1 -.L8008D1A4: -/* 08DDA4 8008D1A4 1840001A */ blez $v0, .L8008D210 -/* 08DDA8 8008D1A8 3C198012 */ lui $t9, %hi(gSaveFileIndex2) # $t9, 0x8012 -/* 08DDAC 8008D1AC 8F396490 */ lw $t9, %lo(gSaveFileIndex2)($t9) -/* 08DDB0 8008D1B0 00000000 */ nop -/* 08DDB4 8008D1B4 16790016 */ bne $s3, $t9, .L8008D210 -/* 08DDB8 8008D1B8 00000000 */ nop -/* 08DDBC 8008D1BC 10000014 */ b .L8008D210 -/* 08DDC0 8008D1C0 24120001 */ li $s2, 1 -.L8008D1C4: -/* 08DDC4 8008D1C4 8D086488 */ lw $t0, %lo(D_80126488)($t0) -/* 08DDC8 8008D1C8 3C098012 */ lui $t1, %hi(gSaveFileIndex3) # $t1, 0x8012 -/* 08DDCC 8008D1CC 11000007 */ beqz $t0, .L8008D1EC -/* 08DDD0 8008D1D0 3C0A8012 */ lui $t2, %hi(gMenuOptionCount) # $t2, 0x8012 -/* 08DDD4 8008D1D4 8D29648C */ lw $t1, %lo(gSaveFileIndex3)($t1) -/* 08DDD8 8008D1D8 00000000 */ nop -/* 08DDDC 8008D1DC 1669000C */ bne $s3, $t1, .L8008D210 -/* 08DDE0 8008D1E0 00000000 */ nop -/* 08DDE4 8008D1E4 1000000A */ b .L8008D210 -/* 08DDE8 8008D1E8 24120001 */ li $s2, 1 -.L8008D1EC: -/* 08DDEC 8008D1EC 8D4A63E0 */ lw $t2, %lo(gMenuOptionCount)($t2) -/* 08DDF0 8008D1F0 3C0B800E */ lui $t3, %hi(gSaveFileIndex) # $t3, 0x800e -/* 08DDF4 8008D1F4 15400006 */ bnez $t2, .L8008D210 -/* 08DDF8 8008D1F8 00000000 */ nop -/* 08DDFC 8008D1FC 8D6BF4CC */ lw $t3, %lo(gSaveFileIndex)($t3) -/* 08DE00 8008D200 00000000 */ nop -/* 08DE04 8008D204 166B0002 */ bne $s3, $t3, .L8008D210 -/* 08DE08 8008D208 00000000 */ nop -/* 08DE0C 8008D20C 24120001 */ li $s2, 1 -.L8008D210: -/* 08DE10 8008D210 12400018 */ beqz $s2, .L8008D274 -/* 08DE14 8008D214 02E02025 */ move $a0, $s7 -/* 08DE18 8008D218 3C0D800E */ lui $t5, %hi(gFileSelectButtons) # $t5, 0x800e -/* 08DE1C 8008D21C 25AD03CC */ addiu $t5, %lo(gFileSelectButtons) # addiu $t5, $t5, 0x3cc -/* 08DE20 8008D220 00136100 */ sll $t4, $s3, 4 -/* 08DE24 8008D224 018D8021 */ addu $s0, $t4, $t5 -/* 08DE28 8008D228 8FA2007C */ lw $v0, 0x7c($sp) -/* 08DE2C 8008D22C 2401FF00 */ li $at, -256 -/* 08DE30 8008D230 00414025 */ or $t0, $v0, $at -/* 08DE34 8008D234 860E0002 */ lh $t6, 2($s0) -/* 08DE38 8008D238 860F0006 */ lh $t7, 6($s0) -/* 08DE3C 8008D23C 86180008 */ lh $t8, 8($s0) -/* 08DE40 8008D240 8619000A */ lh $t9, 0xa($s0) -/* 08DE44 8008D244 86050000 */ lh $a1, ($s0) -/* 08DE48 8008D248 86070004 */ lh $a3, 4($s0) -/* 08DE4C 8008D24C 01001025 */ move $v0, $t0 -/* 08DE50 8008D250 AFA8001C */ sw $t0, 0x1c($sp) -/* 08DE54 8008D254 AFA80020 */ sw $t0, 0x20($sp) -/* 08DE58 8008D258 AFA80024 */ sw $t0, 0x24($sp) -/* 08DE5C 8008D25C AFA80028 */ sw $t0, 0x28($sp) -/* 08DE60 8008D260 01D63021 */ addu $a2, $t6, $s6 -/* 08DE64 8008D264 AFAF0010 */ sw $t7, 0x10($sp) -/* 08DE68 8008D268 AFB80014 */ sw $t8, 0x14($sp) -/* 08DE6C 8008D26C 0C0203A4 */ jal func_80080E90 -/* 08DE70 8008D270 AFB90018 */ sw $t9, 0x18($sp) -.L8008D274: -/* 08DE74 8008D274 3C098012 */ lui $t1, %hi(D_80126CC0) # $t1, 0x8012 -/* 08DE78 8008D278 8D296CC0 */ lw $t1, %lo(D_80126CC0)($t1) -/* 08DE7C 8008D27C 3C0A800E */ lui $t2, %hi(gSaveFileIndex) # $t2, 0x800e -/* 08DE80 8008D280 11200004 */ beqz $t1, .L8008D294 -/* 08DE84 8008D284 00135880 */ sll $t3, $s3, 2 -/* 08DE88 8008D288 8D4AF4CC */ lw $t2, %lo(gSaveFileIndex)($t2) -/* 08DE8C 8008D28C 00000000 */ nop -/* 08DE90 8008D290 126A0021 */ beq $s3, $t2, .L8008D318 -.L8008D294: -/* 08DE94 8008D294 01735823 */ subu $t3, $t3, $s3 -/* 08DE98 8008D298 3C0C8012 */ lui $t4, %hi(gSavefileInfo) # $t4, 0x8012 -/* 08DE9C 8008D29C 258C64A0 */ addiu $t4, %lo(gSavefileInfo) # addiu $t4, $t4, 0x64a0 -/* 08DEA0 8008D2A0 000B5880 */ sll $t3, $t3, 2 -/* 08DEA4 8008D2A4 016C8821 */ addu $s1, $t3, $t4 -/* 08DEA8 8008D2A8 26240004 */ addiu $a0, $s1, 4 -/* 08DEAC 8008D2AC 0C025DF4 */ jal trim_filename_string -/* 08DEB0 8008D2B0 02A02825 */ move $a1, $s5 -/* 08DEB4 8008D2B4 922D0001 */ lbu $t5, 1($s1) -/* 08DEB8 8008D2B8 00137080 */ sll $t6, $s3, 2 -/* 08DEBC 8008D2BC 15A00005 */ bnez $t5, .L8008D2D4 -/* 08DEC0 8008D2C0 3C04800E */ lui $a0, %hi(gFilenames) # $a0, 0x800e -/* 08DEC4 8008D2C4 008E2021 */ addu $a0, $a0, $t6 -/* 08DEC8 8008D2C8 8C8403B0 */ lw $a0, %lo(gFilenames)($a0) -/* 08DECC 8008D2CC 0C025DF4 */ jal trim_filename_string -/* 08DED0 8008D2D0 02A02825 */ move $a1, $s5 -.L8008D2D4: -/* 08DED4 8008D2D4 12A00010 */ beqz $s5, .L8008D318 -/* 08DED8 8008D2D8 02E02025 */ move $a0, $s7 -/* 08DEDC 8008D2DC 3C18800E */ lui $t8, %hi(gFileSelectButtons) # $t8, 0x800e -/* 08DEE0 8008D2E0 271803CC */ addiu $t8, %lo(gFileSelectButtons) # addiu $t8, $t8, 0x3cc -/* 08DEE4 8008D2E4 00137900 */ sll $t7, $s3, 4 -/* 08DEE8 8008D2E8 01F88021 */ addu $s0, $t7, $t8 -/* 08DEEC 8008D2EC 860A0002 */ lh $t2, 2($s0) -/* 08DEF0 8008D2F0 86890002 */ lh $t1, 2($s4) -/* 08DEF4 8008D2F4 86080000 */ lh $t0, ($s0) -/* 08DEF8 8008D2F8 86990000 */ lh $t9, ($s4) -/* 08DEFC 8008D2FC 240C000C */ li $t4, 12 -/* 08DF00 8008D300 012A5821 */ addu $t3, $t1, $t2 -/* 08DF04 8008D304 01763021 */ addu $a2, $t3, $s6 -/* 08DF08 8008D308 AFAC0010 */ sw $t4, 0x10($sp) -/* 08DF0C 8008D30C 02A03825 */ move $a3, $s5 -/* 08DF10 8008D310 0C031110 */ jal draw_text -/* 08DF14 8008D314 03282821 */ addu $a1, $t9, $t0 -.L8008D318: -/* 08DF18 8008D318 26730001 */ addiu $s3, $s3, 1 -/* 08DF1C 8008D31C 24010003 */ li $at, 3 -/* 08DF20 8008D320 1661FF90 */ bne $s3, $at, .L8008D164 -/* 08DF24 8008D324 00000000 */ nop -/* 08DF28 8008D328 0C0310BB */ jal set_text_font -/* 08DF2C 8008D32C 24040002 */ li $a0, 2 -/* 08DF30 8008D330 240D0080 */ li $t5, 128 -/* 08DF34 8008D334 AFAD0010 */ sw $t5, 0x10($sp) -/* 08DF38 8008D338 00002025 */ move $a0, $zero -/* 08DF3C 8008D33C 00002825 */ move $a1, $zero -/* 08DF40 8008D340 00003025 */ move $a2, $zero -/* 08DF44 8008D344 0C0310E1 */ jal set_text_colour -/* 08DF48 8008D348 240700FF */ li $a3, 255 -/* 08DF4C 8008D34C 3C0E800E */ lui $t6, %hi(gMenuText) # $t6, 0x800e -/* 08DF50 8008D350 8DCEF4A0 */ lw $t6, %lo(gMenuText)($t6) -/* 08DF54 8008D354 240F0004 */ li $t7, 4 -/* 08DF58 8008D358 8DC70130 */ lw $a3, 0x130($t6) -/* 08DF5C 8008D35C AFAF0010 */ sw $t7, 0x10($sp) -/* 08DF60 8008D360 02E02025 */ move $a0, $s7 -/* 08DF64 8008D364 240500A1 */ li $a1, 161 -/* 08DF68 8008D368 0C031110 */ jal draw_text -/* 08DF6C 8008D36C 24060013 */ li $a2, 19 -/* 08DF70 8008D370 241800FF */ li $t8, 255 -/* 08DF74 8008D374 AFB80010 */ sw $t8, 0x10($sp) -/* 08DF78 8008D378 240400FF */ li $a0, 255 -/* 08DF7C 8008D37C 240500FF */ li $a1, 255 -/* 08DF80 8008D380 240600FF */ li $a2, 255 -/* 08DF84 8008D384 0C0310E1 */ jal set_text_colour -/* 08DF88 8008D388 00003825 */ move $a3, $zero -/* 08DF8C 8008D38C 3C19800E */ lui $t9, %hi(gMenuText) # $t9, 0x800e -/* 08DF90 8008D390 8F39F4A0 */ lw $t9, %lo(gMenuText)($t9) -/* 08DF94 8008D394 24080004 */ li $t0, 4 -/* 08DF98 8008D398 8F270130 */ lw $a3, 0x130($t9) -/* 08DF9C 8008D39C AFA80010 */ sw $t0, 0x10($sp) -/* 08DFA0 8008D3A0 02E02025 */ move $a0, $s7 -/* 08DFA4 8008D3A4 240500A0 */ li $a1, 160 -/* 08DFA8 8008D3A8 0C031110 */ jal draw_text -/* 08DFAC 8008D3AC 24060010 */ li $a2, 16 -/* 08DFB0 8008D3B0 240900FF */ li $t1, 255 -/* 08DFB4 8008D3B4 AFA90010 */ sw $t1, 0x10($sp) -/* 08DFB8 8008D3B8 240400FF */ li $a0, 255 -/* 08DFBC 8008D3BC 240500FF */ li $a1, 255 -/* 08DFC0 8008D3C0 240600FF */ li $a2, 255 -/* 08DFC4 8008D3C4 0C0310E1 */ jal set_text_colour -/* 08DFC8 8008D3C8 00003825 */ move $a3, $zero -/* 08DFCC 8008D3CC 3C0A8012 */ lui $t2, %hi(D_80126484) # $t2, 0x8012 -/* 08DFD0 8008D3D0 8D4A6484 */ lw $t2, %lo(D_80126484)($t2) -/* 08DFD4 8008D3D4 26D600BB */ addiu $s6, $s6, 0xbb -/* 08DFD8 8008D3D8 1140002B */ beqz $t2, .L8008D488 -/* 08DFDC 8008D3DC 3C188012 */ lui $t8, %hi(D_80126488) # $t8, 0x8012 -/* 08DFE0 8008D3E0 3C028012 */ lui $v0, %hi(D_80126494) # $v0, 0x8012 -/* 08DFE4 8008D3E4 8C426494 */ lw $v0, %lo(D_80126494)($v0) -/* 08DFE8 8008D3E8 24010001 */ li $at, 1 -/* 08DFEC 8008D3EC 1440000E */ bnez $v0, .L8008D428 -/* 08DFF0 8008D3F0 00000000 */ nop -/* 08DFF4 8008D3F4 0C0310BB */ jal set_text_font -/* 08DFF8 8008D3F8 00002025 */ move $a0, $zero -/* 08DFFC 8008D3FC 3C0B800E */ lui $t3, %hi(gMenuText) # $t3, 0x800e -/* 08E000 8008D400 8D6BF4A0 */ lw $t3, %lo(gMenuText)($t3) -/* 08E004 8008D404 240C000C */ li $t4, 12 -/* 08E008 8008D408 8D670134 */ lw $a3, 0x134($t3) -/* 08E00C 8008D40C AFAC0010 */ sw $t4, 0x10($sp) -/* 08E010 8008D410 02E02025 */ move $a0, $s7 -/* 08E014 8008D414 240500A0 */ li $a1, 160 -/* 08E018 8008D418 0C031110 */ jal draw_text -/* 08E01C 8008D41C 02C03025 */ move $a2, $s6 -/* 08E020 8008D420 1000006B */ b .L8008D5D0 -/* 08E024 8008D424 8FBF0054 */ lw $ra, 0x54($sp) -.L8008D428: -/* 08E028 8008D428 1441000E */ bne $v0, $at, .L8008D464 -/* 08E02C 8008D42C 02E02025 */ move $a0, $s7 -/* 08E030 8008D430 0C0310BB */ jal set_text_font -/* 08E034 8008D434 00002025 */ move $a0, $zero -/* 08E038 8008D438 3C0D800E */ lui $t5, %hi(gMenuText) # $t5, 0x800e -/* 08E03C 8008D43C 8DADF4A0 */ lw $t5, %lo(gMenuText)($t5) -/* 08E040 8008D440 240E000C */ li $t6, 12 -/* 08E044 8008D444 8DA70138 */ lw $a3, 0x138($t5) -/* 08E048 8008D448 AFAE0010 */ sw $t6, 0x10($sp) -/* 08E04C 8008D44C 02E02025 */ move $a0, $s7 -/* 08E050 8008D450 240500A0 */ li $a1, 160 -/* 08E054 8008D454 0C031110 */ jal draw_text -/* 08E058 8008D458 02C03025 */ move $a2, $s6 -/* 08E05C 8008D45C 1000005C */ b .L8008D5D0 -/* 08E060 8008D460 8FBF0054 */ lw $ra, 0x54($sp) -.L8008D464: -/* 08E064 8008D464 3C07800F */ lui $a3, %hi(D_800E8234) # $a3, 0x800f -/* 08E068 8008D468 240F000C */ li $t7, 12 -/* 08E06C 8008D46C AFAF0010 */ sw $t7, 0x10($sp) -/* 08E070 8008D470 24E78234 */ addiu $a3, %lo(D_800E8234) # addiu $a3, $a3, -0x7dcc -/* 08E074 8008D474 240500A0 */ li $a1, 160 -/* 08E078 8008D478 0C031110 */ jal draw_text -/* 08E07C 8008D47C 02C03025 */ move $a2, $s6 -/* 08E080 8008D480 10000053 */ b .L8008D5D0 -/* 08E084 8008D484 8FBF0054 */ lw $ra, 0x54($sp) -.L8008D488: -/* 08E088 8008D488 8F186488 */ lw $t8, %lo(D_80126488)($t8) -/* 08E08C 8008D48C 3C198012 */ lui $t9, %hi(D_80126494) # $t9, 0x8012 -/* 08E090 8008D490 1300001A */ beqz $t8, .L8008D4FC -/* 08E094 8008D494 3C0B8012 */ lui $t3, %hi(D_80126CC0) # $t3, 0x8012 -/* 08E098 8008D498 8F396494 */ lw $t9, %lo(D_80126494)($t9) -/* 08E09C 8008D49C 02E02025 */ move $a0, $s7 -/* 08E0A0 8008D4A0 1720000E */ bnez $t9, .L8008D4DC -/* 08E0A4 8008D4A4 240500A0 */ li $a1, 160 -/* 08E0A8 8008D4A8 0C0310BB */ jal set_text_font -/* 08E0AC 8008D4AC 00002025 */ move $a0, $zero -/* 08E0B0 8008D4B0 3C08800E */ lui $t0, %hi(gMenuText) # $t0, 0x800e -/* 08E0B4 8008D4B4 8D08F4A0 */ lw $t0, %lo(gMenuText)($t0) -/* 08E0B8 8008D4B8 2409000C */ li $t1, 12 -/* 08E0BC 8008D4BC 8D07013C */ lw $a3, 0x13c($t0) -/* 08E0C0 8008D4C0 AFA90010 */ sw $t1, 0x10($sp) -/* 08E0C4 8008D4C4 02E02025 */ move $a0, $s7 -/* 08E0C8 8008D4C8 240500A0 */ li $a1, 160 -/* 08E0CC 8008D4CC 0C031110 */ jal draw_text -/* 08E0D0 8008D4D0 02C03025 */ move $a2, $s6 -/* 08E0D4 8008D4D4 1000003E */ b .L8008D5D0 -/* 08E0D8 8008D4D8 8FBF0054 */ lw $ra, 0x54($sp) -.L8008D4DC: -/* 08E0DC 8008D4DC 3C07800F */ lui $a3, %hi(D_800E8238) # $a3, 0x800f -/* 08E0E0 8008D4E0 240A000C */ li $t2, 12 -/* 08E0E4 8008D4E4 AFAA0010 */ sw $t2, 0x10($sp) -/* 08E0E8 8008D4E8 24E78238 */ addiu $a3, %lo(D_800E8238) # addiu $a3, $a3, -0x7dc8 -/* 08E0EC 8008D4EC 0C031110 */ jal draw_text -/* 08E0F0 8008D4F0 02C03025 */ move $a2, $s6 -/* 08E0F4 8008D4F4 10000036 */ b .L8008D5D0 -/* 08E0F8 8008D4F8 8FBF0054 */ lw $ra, 0x54($sp) -.L8008D4FC: -/* 08E0FC 8008D4FC 8D6B6CC0 */ lw $t3, %lo(D_80126CC0)($t3) -/* 08E100 8008D500 3C0C8012 */ lui $t4, %hi(gMenuOptionCount) # $t4, 0x8012 -/* 08E104 8008D504 15600032 */ bnez $t3, .L8008D5D0 -/* 08E108 8008D508 8FBF0054 */ lw $ra, 0x54($sp) -/* 08E10C 8008D50C 8D8C63E0 */ lw $t4, %lo(gMenuOptionCount)($t4) -/* 08E110 8008D510 24010001 */ li $at, 1 -/* 08E114 8008D514 15810007 */ bne $t4, $at, .L8008D534 -/* 08E118 8008D518 240400FF */ li $a0, 255 -/* 08E11C 8008D51C 8FA7007C */ lw $a3, 0x7c($sp) -/* 08E120 8008D520 240D00FF */ li $t5, 255 -/* 08E124 8008D524 AFAD0010 */ sw $t5, 0x10($sp) -/* 08E128 8008D528 240500FF */ li $a1, 255 -/* 08E12C 8008D52C 0C0310E1 */ jal set_text_colour -/* 08E130 8008D530 240600FF */ li $a2, 255 -.L8008D534: -/* 08E134 8008D534 3C0E800E */ lui $t6, %hi(gMenuText) # $t6, 0x800e -/* 08E138 8008D538 8DCEF4A0 */ lw $t6, %lo(gMenuText)($t6) -/* 08E13C 8008D53C 240F000C */ li $t7, 12 -/* 08E140 8008D540 8DC70140 */ lw $a3, 0x140($t6) -/* 08E144 8008D544 AFAF0010 */ sw $t7, 0x10($sp) -/* 08E148 8008D548 02E02025 */ move $a0, $s7 -/* 08E14C 8008D54C 2405005A */ li $a1, 90 -/* 08E150 8008D550 0C031110 */ jal draw_text -/* 08E154 8008D554 02C03025 */ move $a2, $s6 -/* 08E158 8008D558 3C188012 */ lui $t8, %hi(gMenuOptionCount) # $t8, 0x8012 -/* 08E15C 8008D55C 8F1863E0 */ lw $t8, %lo(gMenuOptionCount)($t8) -/* 08E160 8008D560 24010002 */ li $at, 2 -/* 08E164 8008D564 1701000A */ bne $t8, $at, .L8008D590 -/* 08E168 8008D568 240400FF */ li $a0, 255 -/* 08E16C 8008D56C 8FA7007C */ lw $a3, 0x7c($sp) -/* 08E170 8008D570 241900FF */ li $t9, 255 -/* 08E174 8008D574 AFB90010 */ sw $t9, 0x10($sp) -/* 08E178 8008D578 240400FF */ li $a0, 255 -/* 08E17C 8008D57C 240500FF */ li $a1, 255 -/* 08E180 8008D580 0C0310E1 */ jal set_text_colour -/* 08E184 8008D584 240600FF */ li $a2, 255 -/* 08E188 8008D588 10000007 */ b .L8008D5A8 -/* 08E18C 8008D58C 00000000 */ nop -.L8008D590: -/* 08E190 8008D590 240800FF */ li $t0, 255 -/* 08E194 8008D594 AFA80010 */ sw $t0, 0x10($sp) -/* 08E198 8008D598 240500FF */ li $a1, 255 -/* 08E19C 8008D59C 240600FF */ li $a2, 255 -/* 08E1A0 8008D5A0 0C0310E1 */ jal set_text_colour -/* 08E1A4 8008D5A4 00003825 */ move $a3, $zero -.L8008D5A8: -/* 08E1A8 8008D5A8 3C09800E */ lui $t1, %hi(gMenuText) # $t1, 0x800e -/* 08E1AC 8008D5AC 8D29F4A0 */ lw $t1, %lo(gMenuText)($t1) -/* 08E1B0 8008D5B0 240A000C */ li $t2, 12 -/* 08E1B4 8008D5B4 8D270144 */ lw $a3, 0x144($t1) -/* 08E1B8 8008D5B8 AFAA0010 */ sw $t2, 0x10($sp) -/* 08E1BC 8008D5BC 02E02025 */ move $a0, $s7 -/* 08E1C0 8008D5C0 240500E6 */ li $a1, 230 -/* 08E1C4 8008D5C4 0C031110 */ jal draw_text -/* 08E1C8 8008D5C8 02C03025 */ move $a2, $s6 -/* 08E1CC 8008D5CC 8FBF0054 */ lw $ra, 0x54($sp) -.L8008D5D0: -/* 08E1D0 8008D5D0 8FB00034 */ lw $s0, 0x34($sp) -/* 08E1D4 8008D5D4 8FB10038 */ lw $s1, 0x38($sp) -/* 08E1D8 8008D5D8 8FB2003C */ lw $s2, 0x3c($sp) -/* 08E1DC 8008D5DC 8FB30040 */ lw $s3, 0x40($sp) -/* 08E1E0 8008D5E0 8FB40044 */ lw $s4, 0x44($sp) -/* 08E1E4 8008D5E4 8FB50048 */ lw $s5, 0x48($sp) -/* 08E1E8 8008D5E8 8FB6004C */ lw $s6, 0x4c($sp) -/* 08E1EC 8008D5EC 8FB70050 */ lw $s7, 0x50($sp) -/* 08E1F0 8008D5F0 03E00008 */ jr $ra -/* 08E1F4 8008D5F4 27BD0088 */ addiu $sp, $sp, 0x88 - diff --git a/include/structs.h b/include/structs.h index 53f09051..6b3c24c7 100644 --- a/include/structs.h +++ b/include/structs.h @@ -151,7 +151,7 @@ typedef struct MenuElement { /* 0x0C */ u8 filterRed; /* 0x0D */ u8 filterGreen; /* 0x0E */ u8 filterBlue; - /* 0x0F */ u8 filterAlpha; // 0 = no filter color, 0xFF = full color. + /* 0x0F */ u8 filterBlendFactor; // 0 = no filter color, 0xFF = full color. /* 0x10 */ u8 opacity; // Element Properties /* 0x11 */ u8 textFont; @@ -162,6 +162,7 @@ typedef struct MenuElement { /* 0x14 */ void *element; // Generic pointer /* 0x14 */ char *asciiText; // Pointer to ascii text to be displayed on the screen. /* 0x14 */ TextureHeader *texture; // Pointer to texture to be displayed on the screen. + /* 0x14 */ DrawTexture *drawTexture; // Pointer to texture to be displayed on the screen. /* 0x14 */ s32 *number; // Pointer to a number to be displayed on the screen. /* 0x14 */ u16 *numberU16; // Pointer to a number to be displayed on the screen. /* 0x14 */ s32 value; // Some value for elementType == 5 diff --git a/src/camera.c b/src/camera.c index 78df5564..61044455 100644 --- a/src/camera.c +++ b/src/camera.c @@ -159,7 +159,7 @@ void camera_init(void) { gModelMatrixStackPos = 0; gCameraMatrixPos = 0; gNumberOfViewports = 0; - D_80120D0C = 0; + D_80120D0C = FALSE; D_80120D18 = 0; gAdjustViewportHeight = 0; gAntiPiracyViewport = 0; @@ -1006,8 +1006,8 @@ void func_80068408(Gfx **dlist, MatrixS **mtx) { gSPMatrix((*dlist)++, OS_PHYSICAL_TO_K0((*mtx)++), gMatrixType << 6); } -void func_80068508(s32 arg0) { - D_80120D0C = arg0; +void func_80068508(s32 bool) { + D_80120D0C = bool; } /** @@ -1099,7 +1099,7 @@ s32 render_sprite_billboard(Gfx **dlist, MatrixS **mtx, Vertex **vertexList, Obj gSPMatrix((*dlist)++, OS_PHYSICAL_TO_K0((*mtx)++), G_MTX_DKR_INDEX_2); gDkrEnableBillboard((*dlist)++); } - if (D_80120D0C == 0) { + if (D_80120D0C == FALSE) { textureFrame = ((textureFrame & 0xFF) * arg4->textureCount) >> 8; } flags &= ~RENDER_VEHICLE_PART; diff --git a/src/camera.h b/src/camera.h index 96ec5d75..f30f2fb8 100644 --- a/src/camera.h +++ b/src/camera.h @@ -110,7 +110,7 @@ void func_8006807C(Gfx **dlist, MatrixS **mats); void func_80068158(Gfx **dlist, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void func_800682AC(Gfx **dlist); void func_80068408(Gfx **dlist, MatrixS **mats); -void func_80068508(s32 arg0); +void func_80068508(s32 bool); ObjectSegment *get_active_camera_segment_no_cutscenes(void); ObjectSegment *get_active_camera_segment(void); ObjectSegment *get_cutscene_camera_segment(void); diff --git a/src/game_ui.c b/src/game_ui.c index b709eaee..f3ba3bab 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -517,9 +517,9 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s func_800A277C(sp2C, arg3, updateRate); } else { if (get_cutscene_id() == 10) { - func_80068508(1); + func_80068508(TRUE); render_balloon_count(racer); - func_80068508(0); + func_80068508(FALSE); } else { switch (get_current_level_race_type()) { case RACETYPE_DEFAULT: @@ -549,7 +549,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s } } if (racer->raceFinished == TRUE) { - func_80068508(1); + func_80068508(TRUE); if (is_in_time_trial()) { render_time_trial_finish((Object_Racer *) racer, updateRate); } else if (get_viewport_count() == VIEWPORTS_COUNT_1_PLAYER && racer->unk1AC == 1) { @@ -565,7 +565,7 @@ showFinish: block_95: func_800A6254(racer, updateRate); } - func_80068508(0); + func_80068508(FALSE); } D_80126CD1 = 0; sprite_opaque(TRUE); @@ -654,7 +654,7 @@ void func_800A0BD4(s32 updateRate) { void render_hud_race(s32 arg0, Object *obj, s32 updateRate) { Object_Racer *racer = &obj->unk64->racer; - func_80068508(1); + func_80068508(TRUE); render_course_indicator_arrows(racer, updateRate); render_wrong_way_text(racer, updateRate); render_race_start(arg0, updateRate); @@ -673,7 +673,7 @@ void render_hud_race(s32 arg0, Object *obj, s32 updateRate) { } render_weapon_hud(obj, updateRate); - func_80068508(0); + func_80068508(FALSE); } /** @@ -784,7 +784,7 @@ void render_hud_banana_challenge(s32 arg0, Object *obj, s32 updateRate) { racer = &obj->unk64->racer; racers = get_racer_objects(&numRacers); - func_80068508(1); + func_80068508(TRUE); render_race_start(arg0, updateRate); switch (gNumActivePlayers) { case 1: @@ -811,7 +811,7 @@ void render_hud_banana_challenge(s32 arg0, Object *obj, s32 updateRate) { reset_render_settings(&gHUDCurrDisplayList); render_racer_bananas(racer, updateRate); render_weapon_hud(obj, updateRate); - func_80068508(0); + func_80068508(FALSE); } /** @@ -820,7 +820,7 @@ void render_hud_banana_challenge(s32 arg0, Object *obj, s32 updateRate) { void render_hud_challenge_eggs(s32 arg0, Object *obj, s32 updateRate) { Object_Racer *racer = &obj->unk64->racer; if (racer->raceFinished == FALSE) { - func_80068508(1); + func_80068508(TRUE); render_race_start(arg0, updateRate); render_weapon_hud(obj, updateRate); if ((127 - (updateRate * 2)) >= gCurrentHud->unk67A) { @@ -831,7 +831,7 @@ void render_hud_challenge_eggs(s32 arg0, Object *obj, s32 updateRate) { if (gNumActivePlayers != 2) { func_800A14F0(obj, updateRate); } - func_80068508(0); + func_80068508(FALSE); } } @@ -866,7 +866,7 @@ void func_800A14F0(Object *racerObj, s32 updateRate) { racer = &racers[0]->unk64->racer; } if (numRacers == 4) { - func_80068508(1); + func_80068508(TRUE); sp44 = (s32) gCurrentHud->unk64C; sp3C = (s32) gCurrentHud->unk650; sp40 = (s32) (gCurrentHud->unk66C - sp44); @@ -895,7 +895,7 @@ void func_800A14F0(Object *racerObj, s32 updateRate) { gCurrentHud->unk66C = sp44 + sp40; gCurrentHud->unk650 = sp3C; gCurrentHud->unk670 = sp3C + sp38; - func_80068508(0); + func_80068508(FALSE); } } @@ -949,7 +949,7 @@ void render_hud_battle(s32 arg0, Object *obj, s32 updateRate) { racer = (Object_Racer *) obj->unk64; if (gNumActivePlayers != 1 || racer->raceFinished == FALSE) { - func_80068508(1); + func_80068508(TRUE); render_race_start(arg0, updateRate); render_weapon_hud(obj, updateRate); racerObjs = get_racer_objects(&numRacers); @@ -973,7 +973,7 @@ void render_hud_battle(s32 arg0, Object *obj, s32 updateRate) { render_racer_bananas(racer, updateRate); break; } - func_80068508(0); + func_80068508(FALSE); } } @@ -1019,7 +1019,7 @@ void render_hud_race_boss(s32 arg0, Object *obj, s32 updateRate) { LevelHeader *level; Object_Racer *racer = (Object_Racer *) obj->unk64; - func_80068508(1); + func_80068508(TRUE); render_wrong_way_text(racer, updateRate); render_race_start(arg0, updateRate); render_race_time(racer, updateRate); @@ -1032,7 +1032,7 @@ void render_hud_race_boss(s32 arg0, Object *obj, s32 updateRate) { render_speedometer(obj, updateRate); render_race_position(racer, updateRate); - func_80068508(0); + func_80068508(FALSE); } /** @@ -1041,14 +1041,14 @@ void render_hud_race_boss(s32 arg0, Object *obj, s32 updateRate) { void render_hud_taj_race(s32 arg0, Object *obj, s32 updateRate) { Object_Racer *racer = (Object_Racer *) obj->unk64; - func_80068508(1); + func_80068508(TRUE); render_wrong_way_text(racer, updateRate); render_lap_count(racer, updateRate); render_race_position(racer, updateRate); render_race_time(racer, updateRate); render_race_start(arg0, updateRate); render_speedometer(obj, updateRate); - func_80068508(0); + func_80068508(FALSE); } /** @@ -1061,7 +1061,7 @@ void render_hud_hubworld(Object *obj, s32 updateRate) { if (get_viewport_count() == 0) { racer = (Object_Racer *) obj->unk64; - func_80068508(1); + func_80068508(TRUE); render_balloon_count(racer); render_speedometer(obj, updateRate); if (is_in_two_player_adventure()) { @@ -1069,7 +1069,7 @@ void render_hud_hubworld(Object *obj, s32 updateRate) { temp_a3->unk6 = (get_settings()->racers[1].character + 0x38); func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, (unk80126CDC **) temp_a3); } - func_80068508(0); + func_80068508(FALSE); } } @@ -1191,7 +1191,7 @@ void func_800A277C(s32 arg0, Object* playerRacerObj, s32 updateRate) { func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, (unk80126CDC **) &gCurrentHud->unk440); } obj68->unk20 = 0; - func_80068508(1); + func_80068508(TRUE); render_course_indicator_arrows(curRacer, updateRate); if (!curRacer->raceFinished) { spB8 = gCurrentHud->unk2F0; @@ -1320,7 +1320,7 @@ void func_800A277C(s32 arg0, Object* playerRacerObj, s32 updateRate) { update_colour_cycle(D_80127194, updateRate); set_kerning(0); } - func_80068508(0); + func_80068508(FALSE); } } #else @@ -1563,13 +1563,13 @@ void render_racer_bananas(Object_Racer *racer, s32 updateRate) { } } else { gCurrentHud->unkF8 = var_v1 + 128; - func_80068508(0); + func_80068508(FALSE); sprite_opaque(TRUE); set_viewport_tv_type(TV_TYPE_NTSC); func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &gCurrentHud->unkE0); sprite_opaque(FALSE); set_viewport_tv_type(TV_TYPE_PAL); - func_80068508(1); + func_80068508(TRUE); gCurrentHud->unkF8 -= 128; } temp_lo = bananas / 10; diff --git a/src/menu.c b/src/menu.c index ac4b037f..429e8730 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 *gMenuObjects[128]; // lookup table? Contains Objects as well. Need to change name and type. +void *gMenuObjects[128]; // lookup table? Contains Textures, Objects, and Sprites. 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; @@ -208,7 +208,7 @@ u8 sControllerPakDataPresent[MAXCONTROLLERS]; //Flag to see if there's data pres char *D_80126A64; s32 gMenuOption; //sCurrentControllerIndex? s32 D_80126A6C; -s32 D_80126A70; +char **gDeviceStatusStrings; s32 D_80126A74; s32 D_80126A78; s32 D_80126A7C; @@ -312,7 +312,7 @@ char **gMenuText = NULL; u8 sMenuGuiColourR = 0xFF; u8 sMenuGuiColourG = 0xFF; u8 sMenuGuiColourB = 0xFF; -u8 sMenuGuiColourA = 0; +u8 sMenuGuiColourBlendFactor = 0; // Flags for menu/HUD sprites. Used in func_8009CA60() // Seems like it doesn't matter what you set it as? @@ -487,8 +487,8 @@ u32 gContPakSaveBgColours[MAXCONTROLLERS] = { COLOUR_RGBA32(64, 255, 64, 255) // Green for controller 4 }; -s32 D_800DFADC = 0; -s32 D_800DFAE0 = 0; +SIDeviceStatus D_800DFADC = CONTROLLER_PAK_GOOD; +s32 gControllerIndex = 0; // Strings related to the controller pak. char *gContPakNotPresentStrings[6] = { 0, 0, 0, 0, 0, 0 }; @@ -502,6 +502,7 @@ char *gContPakRumbleDetectedStrings[6] = { 0, 0, 0, 0, 0, 0 }; char *gContPakSwitchToRumbleStrings[6] = { 0, 0, 0, 0, 0, 0 }; char *gContPakNeed2ndAdvStrings[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; +//Associated with SIDeviceStatus enum values. char **gContPakStrings[11] = { NULL, gContPakNotPresentStrings, gContPakCorruptDataRepairStrings, gContPakDamagedStrings, gContPakFullStrings, gContPakDiffContStrings, gContPakNoRoomForGhostsStrings, gContPakRumbleDetectedStrings, gContPakSwitchToRumbleStrings, gContPakCorruptDataStrings, gContPakNeed2ndAdvStrings }; @@ -2305,7 +2306,7 @@ void show_timestamp(s32 frameCount, s32 xPos, s32 yPos, u8 red, u8 green, u8 blu xOffset3 = 5; } get_timestamp_from_frames(frameCount, &minutes, &seconds, &hundredths); - func_80068508(1); + func_80068508(TRUE); sprite_opaque(FALSE); gMenuImageStack[imageIndex].unk18 = minutes / 10; @@ -2345,7 +2346,7 @@ void show_timestamp(s32 frameCount, s32 xPos, s32 yPos, u8 red, u8 green, u8 blu gMenuImageStack[imageIndex].unkC = xPos; func_8009CA60(imageIndex); - func_80068508(0); + func_80068508(FALSE); sprite_opaque(TRUE); sMenuGuiColourR = (u8)255; sMenuGuiColourG = (u8)255; @@ -2396,7 +2397,7 @@ void func_80081C04(s32 number, s32 x, s32 y, s32 r, s32 g, s32 b, s32 a, UNUSED sMenuGuiColourB = b; sMenuGuiOpacity = a; sprite_opaque(0); - func_80068508(1); + func_80068508(TRUE); if (powerOfTen && number) {} // Fakematch gMenuImageStack[0].unk10 = y; for (i = 0; i < strLen; i++) { @@ -2406,7 +2407,7 @@ void func_80081C04(s32 number, s32 x, s32 y, s32 r, s32 g, s32 b, s32 a, UNUSED x += 12; } sprite_opaque(1); - func_80068508(0); + func_80068508(FALSE); sMenuGuiColourR = 255; sMenuGuiColourG = 255; sMenuGuiColourB = 255; @@ -2428,13 +2429,13 @@ void func_80081E54(MenuElement *arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4, s3 } s32 func_80081F4C(s32 updateRate) { - f32 var_f20; + f32 scale; s32 ret; s32 i; s32 buttonsPressedAllPlayers; ret = 1; - var_f20 = -1.0f; + scale = -1.0f; buttonsPressedAllPlayers = 0; if (gTrophyRankingsState != 4) { if (gIgnorePlayerInputTime == 0) { @@ -2455,7 +2456,7 @@ s32 func_80081F4C(s32 updateRate) { D_80126854 -= D_80126858; gTrophyRankingsState = 1; } else { - var_f20 = (f32) D_80126854 / (f32) D_80126858; + scale = (f32) D_80126854 / (f32) D_80126858; } } break; @@ -2478,7 +2479,7 @@ s32 func_80081F4C(s32 updateRate) { play_sound_global(SOUND_WHOOSH1, NULL); } } else { - var_f20 = (f32) D_80126854 / (f32) D_8012685C; + scale = (f32) D_80126854 / (f32) D_8012685C; } } break; @@ -2486,182 +2487,170 @@ s32 func_80081F4C(s32 updateRate) { if ((buttonsPressedAllPlayers & (A_BUTTON | START_BUTTON)) || (D_80126854 >= D_80126860)) { gTrophyRankingsState = 4; } else { - var_f20 = (f32) D_80126854 / (f32) D_80126860; + scale = (f32) D_80126854 / (f32) D_80126860; } break; } - } while ((var_f20 < 0.0f) && (gTrophyRankingsState != 4)); + } while (scale < 0.0f && gTrophyRankingsState != 4); if (gTrophyRankingsState != 4) { - draw_menu_elements(gTrophyRankingsState, gTrophyRankingsMenuElements, var_f20); + draw_menu_elements(gTrophyRankingsState, gTrophyRankingsMenuElements, scale); ret = 0; } } return ret; } -#ifdef NON_EQUIVALENT - -void draw_menu_elements(s32 arg0, MenuElement *elem, f32 arg2) { - s32 s5; - s32 tempX, tempY; +void draw_menu_elements(s32 flags, MenuElement *elems, f32 scale) { + s32 shouldResetRenderSettings; s32 xPos, yPos; - s5 = FALSE; - if (arg0 != 4) { - set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); - while (elem->unk14_a.element != NULL) { - if (elem->unk14_a.element != &D_80126850) { - if (arg0 == 0) { - tempX = elem->center - elem->left; - tempX *= arg2; - xPos = tempX + elem->left; - tempY = elem->middle - elem->top; - tempY *= arg2; - yPos = tempY + elem->top; - } else if (arg0 == 1) { - xPos = elem->center; - yPos = elem->middle; - } else { - tempX = elem->right - elem->center; - tempX *= arg2; - xPos = tempX + elem->center; - tempY = elem->bottom - elem->middle; - tempY *= arg2; - yPos = (tempY & 0xFFFFFFFFFFFFFFFFu) + elem->middle; - } - switch (elem->elementType) { - case 0: //ascii text - set_text_background_colour( - elem->details.background.backgroundRed, - elem->details.background.backgroundGreen, - elem->details.background.backgroundBlue, - elem->details.background.backgroundAlpha); - set_text_colour(elem->filterRed, elem->filterGreen, elem->filterBlue, elem->filterAlpha, elem->opacity); - set_text_font(elem->textFont); - draw_text(&sMenuCurrDisplayList, xPos, yPos + gDrawElementsRegionYOffset, elem->unk14_a.asciiText, elem->textAlignFlags); - break; - case 1: - if (s5) { - s5 = FALSE; - reset_render_settings(&sMenuCurrDisplayList); - } - sMenuGuiOpacity = elem->opacity; - show_timestamp( - *elem->unk14_a.numberU16, - xPos - 160, - (-yPos - gDrawElementsYOffset) + 120, - elem->filterRed, - elem->filterGreen, - elem->filterBlue, - elem->textFont); - break; - case 2: //Number - if (s5) { - s5 = FALSE; - reset_render_settings(&sMenuCurrDisplayList); - } - func_80081C04( - *elem->unk14_a.number, - xPos - 160, - (-yPos - gDrawElementsYOffset) + 120, - elem->filterRed, - elem->filterGreen, - elem->filterBlue, - elem->opacity, - elem->textFont, - elem->textAlignFlags); - break; - case 3: - render_textured_rectangle( - &sMenuCurrDisplayList, - elem->unk14_a.texture, - xPos, - yPos + gDrawElementsRegionYOffset, - elem->filterRed, - elem->filterGreen, - elem->filterBlue, - elem->opacity); - s5 = TRUE; - break; - case 4: - render_texture_rectangle_scaled( - &sMenuCurrDisplayList, - elem->unk14_a.element, - xPos, - yPos + gDrawElementsRegionYOffset, - elem->details.texture.width / 256.0f, - elem->details.texture.height / 256.0f, - (elem->filterRed << 24) | (elem->filterGreen << 16) | (elem->filterBlue << 8) | elem->opacity, - elem->textAlignFlags); - s5 = TRUE; - break; - case 5: - if (s5) { - s5 = FALSE; - reset_render_settings(&sMenuCurrDisplayList); - } - func_80068508(1); - sprite_opaque(FALSE); - gMenuImageStack[elem->unk14_a.value].unkC = xPos - 160; - gMenuImageStack[elem->unk14_a.value].unk10 = (-yPos - gDrawElementsYOffset) + 120; - gMenuImageStack[elem->unk14_a.value].unk18 = elem->textFont; - gMenuImageStack[elem->unk14_a.value].unk4 = elem->details.background.backgroundRed; - gMenuImageStack[elem->unk14_a.value].unk2 = elem->details.background.backgroundGreen; - gMenuImageStack[elem->unk14_a.value].unk0 = elem->details.background.backgroundBlue; - gMenuImageStack[elem->unk14_a.value].unk8 = elem->details.background.backgroundAlpha / 256.0f; - sMenuGuiColourR = elem->filterRed; - sMenuGuiColourG = elem->filterGreen; - sMenuGuiColourB = elem->filterBlue; - sMenuGuiColourA = elem->filterAlpha; - sMenuGuiOpacity = elem->opacity; - func_8009CA60(elem->unk14_a.value); - func_80068508(0); - sprite_opaque(TRUE); - break; - case 6: - func_80080E90( - &sMenuCurrDisplayList, - xPos, - yPos + gDrawElementsYOffset, - elem->details.texture.width, - elem->details.texture.height, - elem->details.texture.borderWidth, - elem->details.texture.borderHeight, - elem->filterRed, - elem->filterGreen, - elem->filterBlue, - elem->opacity); - break; - case 7: //Texture - func_80080580( - &sMenuCurrDisplayList, - xPos, - yPos + gDrawElementsYOffset, - elem->details.texture.width, - elem->details.texture.height, - elem->details.texture.borderWidth, - elem->details.texture.borderHeight, - (elem->filterRed << 24) | (elem->filterGreen << 16) | (elem->filterBlue << 8) | elem->opacity, - elem->unk14_a.element); - break; - } - } - elem++; // Go onto the next element. - } - if (s5) { - reset_render_settings(&sMenuCurrDisplayList); - } - sMenuGuiColourR = 0xFF; - sMenuGuiColourG = 0xFF; - sMenuGuiColourB = 0xFF; - sMenuGuiColourA = 0; - sMenuGuiOpacity = 0xFF; + shouldResetRenderSettings = FALSE; + if (flags == 4) { + return; } + + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); + while (elems->unk14_a.element != NULL) { + if ((elems->unk14_a.element != &D_80126850)) { //fakematch + if (flags == ((elems->unk14_a.element != (&D_80126850)) * 0)) { //fakematch + xPos = ((s32) ((elems->center - elems->left) * scale)) + elems->left; + yPos = ((s32) ((elems->middle - elems->top) * scale)) + elems->top; + } else if((flags == 1)) { + xPos = elems->center; + yPos = elems->middle; + } else { + xPos = ((s32) ((elems->right - elems->center) * scale)) + elems->center; + yPos = ((s32) ((elems->bottom - elems->middle) * scale)) + elems->middle; + } + switch (elems->elementType) { + case 0: //ascii text + set_text_background_colour( + elems->details.background.backgroundRed, + elems->details.background.backgroundGreen, + elems->details.background.backgroundBlue, + elems->details.background.backgroundAlpha); + set_text_colour(elems->filterRed, elems->filterGreen, elems->filterBlue, elems->filterBlendFactor, elems->opacity); + set_text_font(elems->textFont); + draw_text(&sMenuCurrDisplayList, xPos, yPos + gDrawElementsRegionYOffset, elems->unk14_a.asciiText, elems->textAlignFlags); + break; + case 1: + if (shouldResetRenderSettings) { + shouldResetRenderSettings = FALSE; + reset_render_settings(&sMenuCurrDisplayList); + } + sMenuGuiOpacity = elems->opacity; + show_timestamp( + *elems->unk14_a.numberU16, + xPos - 160, + (-yPos - gDrawElementsYOffset) + 120, + elems->filterRed, + elems->filterGreen, + elems->filterBlue, + elems->textFont); + break; + case 2: //Number + if (shouldResetRenderSettings) { + shouldResetRenderSettings = FALSE; + reset_render_settings(&sMenuCurrDisplayList); + } + func_80081C04( + *elems->unk14_a.number, + xPos - 160, + (-yPos - gDrawElementsYOffset) + 120, + elems->filterRed, + elems->filterGreen, + elems->filterBlue, + elems->opacity, + elems->textFont, + elems->textAlignFlags); + break; + case 3: + render_textured_rectangle( + &sMenuCurrDisplayList, + elems->unk14_a.drawTexture, + xPos, + yPos + gDrawElementsRegionYOffset, + elems->filterRed, + elems->filterGreen, + elems->filterBlue, + elems->opacity); + shouldResetRenderSettings = TRUE; + break; + case 4: + render_texture_rectangle_scaled( + &sMenuCurrDisplayList, + elems->unk14_a.element, + xPos, + yPos + gDrawElementsRegionYOffset, + elems->details.texture.width / 256.0f, + elems->details.texture.height / 256.0f, + (elems->filterRed << 24) | (elems->filterGreen << 16) | (elems->filterBlue << 8) | elems->opacity, + elems->textAlignFlags); + shouldResetRenderSettings = TRUE; + break; + case 5: + if (shouldResetRenderSettings) { + shouldResetRenderSettings = FALSE; + reset_render_settings(&sMenuCurrDisplayList); + } + func_80068508(TRUE); + sprite_opaque(FALSE); + gMenuImageStack[elems->unk14_a.value].unkC = xPos - 160; + gMenuImageStack[elems->unk14_a.value].unk10 = (-yPos - gDrawElementsYOffset) + 120; + gMenuImageStack[elems->unk14_a.value].unk18 = elems->textFont; + gMenuImageStack[elems->unk14_a.value].unk4 = elems->details.background.backgroundRed; + gMenuImageStack[elems->unk14_a.value].unk2 = elems->details.background.backgroundGreen; + gMenuImageStack[elems->unk14_a.value].unk0 = elems->details.background.backgroundBlue; + gMenuImageStack[elems->unk14_a.value].unk8 = elems->details.background.backgroundAlpha / 256.0f; + sMenuGuiColourR = elems->filterRed; + sMenuGuiColourG = elems->filterGreen; + sMenuGuiColourB = elems->filterBlue; + sMenuGuiColourBlendFactor = elems->filterBlendFactor; + sMenuGuiOpacity = elems->opacity; + func_8009CA60(elems->unk14_a.value); + func_80068508(FALSE); + sprite_opaque(TRUE); + break; + case 6: + func_80080E90( + &sMenuCurrDisplayList, + xPos, + yPos + gDrawElementsYOffset, + elems->details.texture.width, + elems->details.texture.height, + elems->details.texture.borderWidth, + elems->details.texture.borderHeight, + elems->filterRed, + elems->filterGreen, + elems->filterBlue, + elems->opacity); + break; + case 7: //Texture + func_80080580( + &sMenuCurrDisplayList, + xPos, + yPos + gDrawElementsYOffset, + elems->details.texture.width, + elems->details.texture.height, + elems->details.texture.borderWidth, + elems->details.texture.borderHeight, + (elems->filterRed << 24) | (elems->filterGreen << 16) | (elems->filterBlue << 8) | elems->opacity, + elems->unk14_a.element); + break; + } + } + elems++; // Go onto the next element. + } + if (shouldResetRenderSettings) { + reset_render_settings(&sMenuCurrDisplayList); + } + sMenuGuiColourR = 255; + sMenuGuiColourG = 255; + sMenuGuiColourB = 255; + sMenuGuiColourBlendFactor = 0; + sMenuGuiOpacity = 255; } -#else -GLOBAL_ASM("asm/non_matchings/menu/draw_menu_elements.s") -#endif void func_800828B8(void) { s32 i; @@ -2963,7 +2952,7 @@ void render_title_screen(UNUSED s32 updateRate, f32 updateRateF) { set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); scale = (f32) gTitleRevealTimer * 0.03125f; sMenuGuiOpacity = (gTitleRevealTimer * 8) - 1; - func_80068508(0); + func_80068508(FALSE); if (scale != 1.0f) { render_texture_rectangle_scaled(&sMenuCurrDisplayList, sGameTitleTileOffsets, SCREEN_WIDTH_FLOAT_HALF, 52.0f, scale, scale, 0xFFFFFFFE, TEXRECT_POINT); } else { @@ -3678,7 +3667,7 @@ void func_800853D0(unk800861C8 *arg0, s32 x, s32 y) { } else { i = 120; } - func_80068508(1); + func_80068508(TRUE); temp = (i - y); gMenuImageStack[2].unk10 = temp - 49; gMenuImageStack[sp70].unk10 = temp - 24; @@ -3692,7 +3681,7 @@ void func_800853D0(unk800861C8 *arg0, s32 x, s32 y) { sprite_opaque(1); gMenuImageStack[sp70].unkC = x - 128; func_8009CA60(sp70); - func_80068508(0); + func_80068508(FALSE); } if (drawTexture != NULL) { render_textured_rectangle(&sMenuCurrDisplayList, drawTexture, x + 60, y + 6, 255, 255, 255, 255); @@ -3713,28 +3702,26 @@ void func_800853D0(unk800861C8 *arg0, s32 x, s32 y) { } } -#ifdef NON_EQUIVALENT void func_80085B9C(UNUSED s32 updateRate) { - s32 yPos; //yPos - s32 var_s2; //for loop iterator? - s32 var_s3; //bool - s32 temp_f4; s32 videoWidth; - s32 temp_v0; - s32 drawTexturedRectangle; //bool - s32 drawPleaseWait; //bool - s32 drawOk; //bool - s32 drawDialogueBox; //bool - DrawTexture *tempTex; + s32 temp; + s32 sp5C; + s32 var_s1; + s32 var_s2; + s32 var_s3; + s32 drawTexturedRectangle; + s32 drawPleaseWait; + s32 drawOk; + s32 drawDialogueBox; videoWidth = GET_VIDEO_WIDTH(get_video_width_and_height_as_s32()); var_s3 = FALSE; - drawTexturedRectangle = FALSE; //render textured rectangle - drawPleaseWait = FALSE; //Draw Please Wait - drawOk = FALSE; //Draw "OK?" - drawDialogueBox = FALSE; //Render Dialogue Box + drawTexturedRectangle = FALSE; + drawPleaseWait = FALSE; + drawOk = FALSE; + drawDialogueBox = FALSE; switch (gMenuOptionCount & 7) { - case 0: + case 0: break; case 1: case 2: @@ -3769,50 +3756,58 @@ void func_80085B9C(UNUSED s32 updateRate) { draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF + 1, 35, gMenuText[ASSET_MENU_TEXT_SAVEOPTIONS], ALIGN_MIDDLE_CENTER); set_text_colour(255, 255, 255, 0, 255); draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 32, gMenuText[ASSET_MENU_TEXT_SAVEOPTIONS], ALIGN_MIDDLE_CENTER); + if (drawTexturedRectangle) { - yPos = (osTvType == TV_TYPE_PAL) ? SCREEN_HEIGHT_HALF_PAL : SCREEN_HEIGHT_HALF; - yPos += ((s32) (gOptionBlinkTimer & 0x1F) >> 1); - var_s2 = 0; - tempTex = &gMenuSelectionArrowDown[var_s2]; - do { - render_textured_rectangle(&sMenuCurrDisplayList, tempTex, SCREEN_WIDTH_HALF, yPos, 255, 255, 255, 255); - tempTex++; - var_s2++; - yPos += 16; - } while(var_s2 < 2); + temp = (osTvType == TV_TYPE_PAL) ? SCREEN_HEIGHT_HALF_PAL : SCREEN_HEIGHT_HALF; + temp += ((s32) (gOptionBlinkTimer & 0x1F) >> 1); + + for (var_s2 = 0; var_s2 < 2; var_s2 += 1, temp += 16) { + render_textured_rectangle(&sMenuCurrDisplayList, gMenuSelectionArrowDown, SCREEN_WIDTH_HALF, temp, 255, 255, 255, 255); + } } + if (var_s3) { - temp_f4 = D_80126BDC; - temp_v0 = 80 - (s32) ((D_80126BDC - temp_f4) * 164); - while ((temp_v0 < videoWidth) && (temp_f4 < D_80126A08)) { - func_800853D0(&D_80126A0C[temp_f4], temp_v0, 64); - temp_f4++; - temp_v0 += 164; + var_s2 = (s32) D_80126BDC; + temp = var_s2; + sp5C = 80 - (s32) ((D_80126BDC - var_s2) * 164.0f); + var_s1 = sp5C; + while (var_s1 < videoWidth && temp < D_80126A08) { + func_800853D0(&D_80126A0C[temp], var_s1, 64); + var_s1 += 164; + temp++; } - while ((temp_v0 > 0) && (temp_f4 > 0)) { - temp_f4--; - temp_v0 -= 164; - func_800853D0(&D_80126A0C[temp_f4], temp_v0, 64); + temp = var_s2; + var_s1 = sp5C; + while((var_s1 > 0) && (temp > 0)) { + temp--; + var_s1 -= 164; + func_800853D0(&D_80126A0C[temp], var_s1, 64); } } + if (drawTexturedRectangle) { - temp_f4 = D_80126BEC; - temp_v0 = 80 - (s32) ((D_80126BEC - temp_f4) * 164); - while ((temp_v0 < videoWidth) && (temp_f4 < D_80126A00)) { - func_800853D0(&D_80126A04[temp_f4], temp_v0, 144); - temp_f4++; - temp_v0 += 164; + var_s2 = (s32) D_80126BEC; + temp = var_s2; + sp5C = 80 - (s32) ((D_80126BEC - (f32) var_s2) * 164.0f); + var_s1 = sp5C; + while (var_s1 < videoWidth && temp < D_80126A00) { + func_800853D0(&D_80126A04[temp], var_s1, 144); + var_s1 += 164; + temp++; } - while ((temp_v0 > 0) && (temp_f4 > 0)) { - temp_f4--; - temp_v0 -= 164; - func_800853D0(&D_80126A04[temp_f4], temp_v0, 144); + temp = var_s2; + var_s1 = sp5C; + while (var_s1 > 0 && temp > 0) { + temp--; + var_s1 -= 164; + func_800853D0(&D_80126A04[temp], var_s1, 144); } } + set_text_font(2); set_text_colour(255, 255, 255, 0, 255); if (drawOk) { - draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 128, D_800E8208, ALIGN_MIDDLE_CENTER); // "OK?" + draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 128, (char *) D_800E8208, ALIGN_MIDDLE_CENTER); // "OK?" } if (drawPleaseWait) { draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 128, gMenuText[ASSET_MENU_TEXT_PLEASEWAIT], ALIGN_MIDDLE_CENTER); @@ -3822,12 +3817,9 @@ void func_80085B9C(UNUSED s32 updateRate) { } func_80080E6C(); } -#else -GLOBAL_ASM("asm/non_matchings/menu/func_80085B9C.s") -#endif -s32 func_800860A8(s32 controllerIndex, s32 *arg1, unk800861C8 *arg2, s32 *arg3, s32 fileSize, UNUSED s32 arg5) { - s32 ret = 0; +SIDeviceStatus func_800860A8(s32 controllerIndex, s32 *arg1, unk800861C8 *arg2, s32 *arg3, s32 fileSize, UNUSED s32 arg5) { + SIDeviceStatus ret = CONTROLLER_PAK_GOOD; if (*arg1 != 0) { ret = get_free_space(controllerIndex, &arg2[*arg3].fileSize, &sControllerPakNotesFree[controllerIndex]); @@ -3839,15 +3831,15 @@ s32 func_800860A8(s32 controllerIndex, s32 *arg1, unk800861C8 *arg2, s32 *arg3, } } else { SIDeviceStatus status = ret & 0xFF; //The upper bytes could be controllerIndex, so focus on the status - if ((*arg1 < 0) && status == RUMBLE_PAK) { + if ((*arg1 < 0) && status == CONTROLLER_PAK_RUMBLE_PAK_FOUND) { *arg1 = 0; - ret = 0; + ret = CONTROLLER_PAK_GOOD; } else if (status != CONTROLLER_PAK_WITH_BAD_ID && status != CONTROLLER_PAK_INCONSISTENT && status != CONTROLLER_PAK_BAD_DATA) { - ret = 0; + ret = CONTROLLER_PAK_GOOD; } } } @@ -3964,7 +3956,7 @@ SIDeviceStatus func_800862C4(void) { } } packDirectoryFree(); - } else if (temp == RUMBLE_PAK) { + } else if (temp == CONTROLLER_PAK_RUMBLE_PAK_FOUND) { D_80126A14 = 1; if (D_80126A18 < 0) { result = CONTROLLER_PAK_GOOD; @@ -3973,7 +3965,7 @@ SIDeviceStatus func_800862C4(void) { D_80126A10 = 1; D_80126A6C = 0; } - } else if (temp == NO_CONTROLLER_PAK) { + } else if (temp == CONTROLLER_PAK_NOT_FOUND) { result = CONTROLLER_PAK_GOOD; } else if (D_80126A18 < 0 && temp == CONTROLLER_PAK_CHANGED) { numAttempts = 0; @@ -3984,8 +3976,8 @@ SIDeviceStatus func_800862C4(void) { return result; } -s32 func_800867D4(void) { - s32 ret = 0; +SIDeviceStatus func_800867D4(void) { + SIDeviceStatus ret = CONTROLLER_PAK_GOOD; D_80126A00 = 0; @@ -4036,7 +4028,53 @@ void func_80086A48(s32 arg0) { } GLOBAL_ASM("asm/non_matchings/menu/func_80086AFC.s") -GLOBAL_ASM("asm/non_matchings/menu/func_800871D8.s") + +void func_800871D8(SIDeviceStatus deviceStatus) { + s32 i; + s32 j; + s32 k; + s32 y; + char *text; + + gControllerIndex = (deviceStatus >> 30) & 3; //Gets the controller index from the device status. + deviceStatus &= 0x3FFFFFFF; //Removes the controller index from the device status value. + gDeviceStatusStrings = gContPakStrings[deviceStatus]; + D_800DFADC = deviceStatus; + D_80126A74 = 0; + + for (k = 0; gDeviceStatusStrings[k] != NULL; k++) {} + k++; + for (; gDeviceStatusStrings[k] != NULL; D_80126A74++, k++) {} + + D_80126A78 = D_80126A74 - 1; + + assign_dialogue_box_id(7); + set_current_dialogue_box_coords(7, 40, SCREEN_HEIGHT_HALF - (((k * 16) + 44) >> 1), 280, (((k * 16) + 44) >> 1) + SCREEN_HEIGHT_HALF); + set_current_dialogue_background_colour(7, 0, 0, 0, 160); + set_current_text_background_colour(7, 0, 0, 0, 0); + set_dialogue_font(7, 2); + set_current_text_colour(7, 255, 255, 255, 0, 255); + text = gMenuText[ASSET_MENU_TEXT_PAKERROR]; + if (gDeviceStatusStrings == gContPakRumbleDetectedStrings || gDeviceStatusStrings == gContPakSwitchToRumbleStrings) { + text = gMenuText[ASSET_MENU_TEXT_CAUTION]; + } else if (gDeviceStatusStrings == gContPakNeed2ndAdvStrings) { + text = gMenuText[ASSET_MENU_TEXT_GAMEERROR]; + } + render_dialogue_text(7, POS_CENTRED, 20, text, 1, ALIGN_MIDDLE_CENTER); + y = 52; + i = 0; + set_dialogue_font(7, ASSET_FONTS_FUNFONT); + for (; gDeviceStatusStrings[i] != NULL; i++, y += 16) { + render_dialogue_text(7, POS_CENTRED, y, gDeviceStatusStrings[i], gControllerIndex + 1, ALIGN_MIDDLE_CENTER); + } + i++; + y += 16; + for (j = 0; gDeviceStatusStrings[i] != NULL; i++, j++, y += 16) { + D_80126A80[j] = render_dialogue_text(7, POS_CENTRED, y, gDeviceStatusStrings[i], 1, ALIGN_MIDDLE_CENTER); + } + gMenuOptionCount |= 8; +} + s32 func_800874D0(s32 buttonsPressed, s32 arg1) { s32 ret; @@ -4045,7 +4083,7 @@ s32 func_800874D0(s32 buttonsPressed, s32 arg1) { if (buttonsPressed & B_BUTTON) { gMenuOptionCount = 0; if (D_80126A10 != D_80126A14) { - func_800871D8(8); + func_800871D8(CONTROLLER_PAK_SWITCH_TO_RUMBLE); } else { play_sound_global(SOUND_MENU_BACK3, NULL); ret = -1; @@ -4112,7 +4150,7 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { D_80126A80[i]->unk13 = 0; } } - if (buttonsPressed & B_BUTTON || (buttonsPressed & (START_BUTTON | A_BUTTON) && (u32) D_80126A74 == (D_80126A78 + 1U))) { + if (buttonsPressed & B_BUTTON || (buttonsPressed & (START_BUTTON | A_BUTTON) && (u32) D_80126A74 == (u32) (D_80126A78 + 1))) { play_sound_global(SOUND_MENU_BACK3, NULL); gMenuOptionCount &= ~8; switch (sp1C) { @@ -4124,17 +4162,17 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { break; case 2: switch (D_800DFADC) { - case 5: + case CONTROLLER_PAK_CHANGED: gOpacityDecayTimer = 5; gMenuOptionCount = 1; break; - case 1: - case 2: - case 3: - case 9: + case CONTROLLER_PAK_NOT_FOUND: + case CONTROLLER_PAK_INCONSISTENT: + case CONTROLLER_PAK_WITH_BAD_ID: + case CONTROLLER_PAK_BAD_DATA: D_80126A18 = 0; break; - case 7: + case CONTROLLER_PAK_RUMBLE_PAK_FOUND: D_80126A18 = -1; break; default: @@ -4144,17 +4182,17 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { break; case 4: switch (D_800DFADC) { - case 1: - case 5: + case CONTROLLER_PAK_NOT_FOUND: + case CONTROLLER_PAK_CHANGED: gOpacityDecayTimer = 5; gMenuOptionCount = 1; break; - case 2: - case 3: - case 9: + case CONTROLLER_PAK_INCONSISTENT: + case CONTROLLER_PAK_WITH_BAD_ID: + case CONTROLLER_PAK_BAD_DATA: D_80126A1C = 0; break; - case 7: + case CONTROLLER_PAK_RUMBLE_PAK_FOUND: D_80126A1C = -1; break; default: @@ -4164,16 +4202,16 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { break; case 7: switch (D_800DFADC) { - case 1: - case 2: - case 3: - case 5: - case 7: + case CONTROLLER_PAK_NOT_FOUND: + case CONTROLLER_PAK_INCONSISTENT: + case CONTROLLER_PAK_WITH_BAD_ID: + case CONTROLLER_PAK_CHANGED: + case CONTROLLER_PAK_RUMBLE_PAK_FOUND: gOpacityDecayTimer = 5; gMenuOptionCount = 1; break; - case 9: - case 10: + case CONTROLLER_PAK_BAD_DATA: + case CONTROLLER_PAK_NEED_SECOND_ADVENTURE: gMenuOptionCount = 4; break; } @@ -4184,7 +4222,7 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { gMenuOptionCount &= ~8; switch (D_800DFADC) { case CONTROLLER_PAK_WITH_BAD_ID: - reformat_controller_pak(D_800DFAE0); + reformat_controller_pak(gControllerIndex); if (sp1C == 4) { D_80126A1C = 0; } else if (sp1C == 7) { @@ -4193,14 +4231,14 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { break; case CONTROLLER_PAK_INCONSISTENT: case CONTROLLER_PAK_BAD_DATA: - repair_controller_pak(D_800DFAE0); + repair_controller_pak(gControllerIndex); if (sp1C == 4) { D_80126A1C = 1; } else if (sp1C == 2) { D_80126A18 = 1; } break; - case RUMBLE_PAK: + case CONTROLLER_PAK_RUMBLE_PAK_FOUND: if (sp1C == 4) { D_80126A1C = -1; } else { @@ -4219,7 +4257,7 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { } s32 menu_save_options_loop(s32 updateRate) { - s32 result; + SIDeviceStatus result; s32 buttonsPressed; s32 i; s32 yAxis; @@ -4289,7 +4327,7 @@ s32 menu_save_options_loop(s32 updateRate) { D_80126BE4 = 0; D_80126BEC = 0.0f; result = func_800867D4(); - if (result != 0) { + if (result != CONTROLLER_PAK_GOOD) { func_800871D8(result); } else { gMenuOptionCount = 5; @@ -4305,7 +4343,7 @@ s32 menu_save_options_loop(s32 updateRate) { gOpacityDecayTimer++; if (gOpacityDecayTimer >= 4) { result = func_80086AFC(); - if (result != 0) { + if (result != CONTROLLER_PAK_GOOD) { func_800871D8(result); } else { gOpacityDecayTimer = 6; @@ -4392,7 +4430,7 @@ SIDeviceStatus func_80087F14(s32 *controllerIndex, s32 arg1) { || (pakStatusError3 != 0) || (pakStatusErrorNoFreeSpace != 0) || (pakStatusError9 != 0)) { - return NO_CONTROLLER_PAK; // Return unsuccessfully? + return CONTROLLER_PAK_NOT_FOUND; // Return unsuccessfully? } controllerIndexVal = *controllerIndex; @@ -5464,17 +5502,24 @@ s32 menu_magic_codes_list_loop(s32 updateRate) { play_sound_global(SOUND_SELECT2, NULL); code = 1 << D_80126C80[gOptionsMenuItemIndex]; gActiveMagicCodes ^= code; // Toggle active cheats? - func_8008A8F8(code, 0x10, 0x20); // func_8008A8F8() = Clear flags? - func_8008A8F8(code, 0x20, 0x10); - func_8008A8F8(code, 0x1000, 0x6080); - func_8008A8F8(code, 0x6080, 0x1000); - func_8008A8F8(code, 0x800, 0x1F8000); - func_8008A8F8(code, 0x1F8000, 0x800); - func_8008A8F8(code, 0x8000, 0xF0000); - func_8008A8F8(code, 0x10000, 0xE8000); - func_8008A8F8(code, 0x20000, 0xD8000); - func_8008A8F8(code, 0x40000, 0xB8000); - func_8008A8F8(code, 0x80000, 0x78000); + func_8008A8F8(code, 0x10, CHEAT_SMALL_CHARACTERS); // func_8008A8F8() = Clear flags? + func_8008A8F8(code, 0x20, CHEAT_BIG_CHARACTERS); + func_8008A8F8(code, 0x1000, (CHEAT_NO_LIMIT_TO_BANANAS | CHEAT_BANANAS_REDUCE_SPEED | CHEAT_START_WITH_10_BANANAS)); + func_8008A8F8(code, 0x6080, CHEAT_DISABLE_BANANAS); + func_8008A8F8(code, 0x800, (CHEAT_ALL_BALLOONS_ARE_RED | CHEAT_ALL_BALLOONS_ARE_GREEN | + CHEAT_ALL_BALLOONS_ARE_BLUE | CHEAT_ALL_BALLOONS_ARE_YELLOW | + CHEAT_ALL_BALLOONS_ARE_RAINBOW | CHEAT_MAXIMUM_POWER_UP)); + func_8008A8F8(code, 0x1F8000, CHEAT_DISABLE_WEAPONS); + func_8008A8F8(code, 0x8000, (CHEAT_ALL_BALLOONS_ARE_GREEN | CHEAT_ALL_BALLOONS_ARE_BLUE | + CHEAT_ALL_BALLOONS_ARE_YELLOW | CHEAT_ALL_BALLOONS_ARE_RAINBOW)); + func_8008A8F8(code, 0x10000, (CHEAT_ALL_BALLOONS_ARE_RED | CHEAT_ALL_BALLOONS_ARE_BLUE | + CHEAT_ALL_BALLOONS_ARE_YELLOW | CHEAT_ALL_BALLOONS_ARE_RAINBOW)); + func_8008A8F8(code, 0x20000, (CHEAT_ALL_BALLOONS_ARE_RED | CHEAT_ALL_BALLOONS_ARE_GREEN | + CHEAT_ALL_BALLOONS_ARE_YELLOW | CHEAT_ALL_BALLOONS_ARE_RAINBOW)); + func_8008A8F8(code, 0x40000, (CHEAT_ALL_BALLOONS_ARE_RED | CHEAT_ALL_BALLOONS_ARE_GREEN | + CHEAT_ALL_BALLOONS_ARE_BLUE | CHEAT_ALL_BALLOONS_ARE_RAINBOW)); + func_8008A8F8(code, 0x80000, (CHEAT_ALL_BALLOONS_ARE_RED | CHEAT_ALL_BALLOONS_ARE_GREEN | + CHEAT_ALL_BALLOONS_ARE_BLUE | CHEAT_ALL_BALLOONS_ARE_YELLOW)); } previousMenuItemIndex = gOptionsMenuItemIndex; @@ -6144,7 +6189,7 @@ void menu_game_select_init(void) { void func_8008C698(UNUSED s32 updateRate) { s32 i; - s32 filterAlpha; + s32 filterBlendFactor; s32 fade; if (gMenuDelay >= -21 && gMenuDelay < 22) { @@ -6156,12 +6201,12 @@ void func_8008C698(UNUSED s32 updateRate) { set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); for (i = 0; i <= gMenuOptionCount; i++) { - filterAlpha = 0; + filterBlendFactor = 0; if (i == gMenuCurIndex) { - filterAlpha = fade; + filterBlendFactor = fade; } //Fakematch? What's the (i ^ 0)? - gGameSelectElements[((i ^ 0) * 2) + 3].filterAlpha = filterAlpha; + gGameSelectElements[((i ^ 0) * 2) + 3].filterBlendFactor = filterBlendFactor; } if (osTvType == TV_TYPE_PAL) { @@ -6296,7 +6341,7 @@ void menu_file_select_init(void) { gOptionBlinkTimer = 0; D_80126484 = FALSE; D_80126488 = FALSE; - D_80126CC0 = 0; + D_80126CC0 = FALSE; transition_begin(&sMenuTransitionFadeOut); load_font(ASSET_FONTS_BIGFONT); play_music(SEQUENCE_CHOOSE_YOUR_RACER); @@ -6337,97 +6382,99 @@ void render_menu_image(s32 imageID, s32 xOffset, s32 yOffset, s32 red, s32 green func_8009CA60(imageID); } -#ifdef NON_EQUIVALENT -// Shouldn't have any major issues. void render_file_select_menu(UNUSED s32 updateRate) { - s32 s2; - s32 s5; - s32 y; - s32 phi_v0_2; - u8 tempName[8]; - u32 color; + s32 yPos; + s32 var_s2; + s32 temp; + u32 colour; s32 i; + UNUSED s32 pad[3]; + char trimmedFilename[4]; if (osTvType == TV_TYPE_PAL) { - y = 12; + yPos = 12; } else { - y = 0; + yPos = 0; } func_8009BD5C(); set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); 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); + colour = COLOUR_RGBA32(176, 224, 192, 255); } else { - color = COLOUR_RGBA32(106, 144, 115, 255); + colour = COLOUR_RGBA32(106, 144, 115, 255); } - func_80080580(NULL, gFileSelectButtons[i].x - 160, 120 - gFileSelectButtons[i].y, gFileSelectButtons[i].width, - gFileSelectButtons[i].height, gFileSelectButtons[i].borderWidth, gFileSelectButtons[i].borderHeight, color, gMenuObjects[TEXTURE_SURFACE_BUTTON_WOOD]); + func_80080580(NULL, gFileSelectButtons[i].x - SCREEN_WIDTH_HALF, SCREEN_HEIGHT_HALF - gFileSelectButtons[i].y, gFileSelectButtons[i].width, + gFileSelectButtons[i].height, gFileSelectButtons[i].borderWidth, gFileSelectButtons[i].borderHeight, colour, gMenuObjects[TEXTURE_SURFACE_BUTTON_WOOD]); } func_80080BC8(&sMenuCurrDisplayList); if (gOpacityDecayTimer == 0) { set_text_font(ASSET_FONTS_BIGFONT); set_text_background_colour(0, 0, 0, 0); - s5 = 10; for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { - if (gSavefileInfo[i].isStarted != 0) { - s2 = 0xB; + if (gSavefileInfo[i].isStarted) { sprite_opaque(FALSE); - if (gSavefileInfo[i].isAdventure2 != 0) { - s2 = 0xC; + var_s2 = 11; + if (gSavefileInfo[i].isAdventure2) { + var_s2 = 12; } - render_menu_image(s2, gFileSelectElementPos[2] + gFileSelectButtons[i].x, gFileSelectElementPos[3] + gFileSelectButtons[i].y, 0, 0, 0, 128); - func_80068508(1); - gMenuImageStack->unk18 = gSavefileInfo[i].balloonCount / s5; - render_menu_image(0, (gFileSelectElementPos[6] + gFileSelectButtons[i].x) - 6, gFileSelectElementPos[7] + gFileSelectButtons[i].y, 0, 0, 0, 128); - gMenuImageStack->unk18 = gSavefileInfo[i].balloonCount % s5; - render_menu_image(0, gFileSelectElementPos[6] + gFileSelectButtons[i].x + 6, gFileSelectElementPos[7] + gFileSelectButtons[i].y, 0, 0, 0, 128); - func_80068508(0); + render_menu_image(var_s2, gFileSelectButtons[i].x + gFileSelectElementPos[2], gFileSelectButtons[i].y + gFileSelectElementPos[3], 0, 0, 0, 128); + func_80068508(TRUE); + gMenuImageStack->unk18 = gSavefileInfo[i].balloonCount / 10; + render_menu_image(0, gFileSelectButtons[i].x + gFileSelectElementPos[6] - 6, gFileSelectButtons[i].y + gFileSelectElementPos[7], 0, 0, 0, 128); + gMenuImageStack->unk18 = gSavefileInfo[i].balloonCount % 10; + render_menu_image(0, gFileSelectButtons[i].x + gFileSelectElementPos[6] + 6, gFileSelectButtons[i].y + gFileSelectElementPos[7], 0, 0, 0, 128); + func_80068508(FALSE); sMenuGuiColourG = 64; sMenuGuiColourB = 64; - render_menu_image(s5, gFileSelectElementPos[8] + gFileSelectButtons[i].x, gFileSelectElementPos[9] + gFileSelectButtons[i].y, 0, 0, 0, 128); + render_menu_image(10, gFileSelectButtons[i].x + gFileSelectElementPos[8], gFileSelectButtons[i].y + gFileSelectElementPos[9], 0, 0, 0, 128); sMenuGuiColourG = 255; sMenuGuiColourB = 255; sprite_opaque(TRUE); } else { set_text_colour(255, 255, 255, 64, 255); - draw_text(&sMenuCurrDisplayList, gFileSelectElementPos[4] + gFileSelectButtons[i].x, gFileSelectElementPos[5] + gFileSelectButtons[i].y + y, gMenuText[ASSET_MENU_TEXT_NEW], ALIGN_MIDDLE_CENTER); + draw_text(&sMenuCurrDisplayList, gFileSelectButtons[i].x + gFileSelectElementPos[4], gFileSelectButtons[i].y + gFileSelectElementPos[5] + yPos, gMenuText[ASSET_MENU_TEXT_NEW], ALIGN_MIDDLE_CENTER); } } } - phi_v0_2 = gOptionBlinkTimer * 8; - if (phi_v0_2 >= 0x100) { - phi_v0_2 = 0x1FF - phi_v0_2; + temp = gOptionBlinkTimer * 8; + if (temp >= 256) { + temp = 511 - temp; } 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 < NUMBER_OF_SAVE_FILES; i++) { - s2 = FALSE; + var_s2 = FALSE; if (D_80126484 != FALSE) { if (D_80126494 == 0 && i == gSaveFileIndex3) { - s2 = TRUE; + var_s2 = TRUE; } else if (D_80126494 > 0 && i == gSaveFileIndex2) { - s2 = TRUE; + var_s2 = TRUE; + } + } else if (D_80126488 != FALSE) { + if (i == gSaveFileIndex3) { + var_s2 = TRUE; } - } else if (D_80126488 != FALSE && i == gSaveFileIndex3) { - s2 = TRUE; } else if (gMenuOptionCount == 0 && i == gSaveFileIndex) { - s2 = TRUE; + var_s2 = TRUE; } - if (s2) { - s32 temp_t0 = phi_v0_2 | ~0xFF; - func_80080E90(&sMenuCurrDisplayList, gFileSelectButtons[i].x, gFileSelectButtons[i].y + y, gFileSelectButtons[i].width, gFileSelectButtons[i].height, - gFileSelectButtons[i].borderWidth, gFileSelectButtons[i].borderHeight, temp_t0, temp_t0, temp_t0, temp_t0); + if (var_s2) { + colour = temp | ~0xFF; + func_80080E90(&sMenuCurrDisplayList, gFileSelectButtons[i].x, gFileSelectButtons[i].y + yPos, gFileSelectButtons[i].width, gFileSelectButtons[i].height, + gFileSelectButtons[i].borderWidth, gFileSelectButtons[i].borderHeight, colour, colour, colour, colour); } - if (D_80126CC0 == 0 || i != gSaveFileIndex) { - trim_filename_string(gSavefileInfo[i].name, tempName); - if (gSavefileInfo[i].isStarted == 0) { - trim_filename_string(gFilenames[i], tempName); + if (!D_80126CC0 || i != gSaveFileIndex) { + trim_filename_string(gSavefileInfo[i].name, trimmedFilename); + if (!gSavefileInfo[i].isStarted) { + trim_filename_string(gFilenames[i], trimmedFilename); } - if (tempName != NULL) { - draw_text(&sMenuCurrDisplayList, gFileSelectElementPos[0] + gFileSelectButtons[i].x, gFileSelectElementPos[1] + gFileSelectButtons[i].y + y, tempName, ALIGN_MIDDLE_CENTER); + if (trimmedFilename) { + draw_text(&sMenuCurrDisplayList, + gFileSelectButtons[i].x + gFileSelectElementPos[0], + gFileSelectButtons[i].y + gFileSelectElementPos[1] + yPos, + trimmedFilename, ALIGN_MIDDLE_CENTER); } } } @@ -6437,45 +6484,37 @@ void render_file_select_menu(UNUSED s32 updateRate) { set_text_colour(255, 255, 255, 0, 255); draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 16, gMenuText[ASSET_MENU_TEXT_GAMESELECT], ALIGN_TOP_CENTER); set_text_colour(255, 255, 255, 0, 255); - y += 0xBB; - if (D_80126484 != FALSE) { + yPos += 187; + if (D_80126484) { if (D_80126494 == 0) { set_text_font(ASSET_FONTS_FUNFONT); - draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, y, gMenuText[ASSET_MENU_TEXT_GAMETOCOPY], ALIGN_MIDDLE_CENTER); + draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, yPos, gMenuText[ASSET_MENU_TEXT_GAMETOCOPY], ALIGN_MIDDLE_CENTER); } else if (D_80126494 == 1) { set_text_font(ASSET_FONTS_FUNFONT); - draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, y, gMenuText[ASSET_MENU_TEXT_GAMETOCOPYTO], ALIGN_MIDDLE_CENTER); + draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, yPos, gMenuText[ASSET_MENU_TEXT_GAMETOCOPYTO], ALIGN_MIDDLE_CENTER); } else { - draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, y, &D_800E8234, ALIGN_MIDDLE_CENTER); + draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, yPos, (char *) &D_800E8234 /* "OK?" */, ALIGN_MIDDLE_CENTER); } - return; - } - if (D_80126488 != FALSE) { + } else if (D_80126488) { if (D_80126494 == 0) { set_text_font(ASSET_FONTS_FUNFONT); - draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, y, gMenuText[ASSET_MENU_TEXT_GAMETOERASE], ALIGN_MIDDLE_CENTER); + draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, yPos, gMenuText[ASSET_MENU_TEXT_GAMETOERASE], ALIGN_MIDDLE_CENTER); } else { - draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, y, &D_800E8238, ALIGN_MIDDLE_CENTER); + draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, yPos, (char *) &D_800E8238 /* "OK?" */, ALIGN_MIDDLE_CENTER); } - return; - } - if (D_80126CC0 == 0) { + } else if (!D_80126CC0) { if (gMenuOptionCount == 1) { - set_text_colour(255, 255, 255, phi_v0_2, 255); + set_text_colour(255, 255, 255, temp, 255); } - draw_text(&sMenuCurrDisplayList, 90, y, gMenuText[ASSET_MENU_TEXT_COPY], ALIGN_MIDDLE_CENTER); + draw_text(&sMenuCurrDisplayList, 90, yPos, gMenuText[ASSET_MENU_TEXT_COPY], ALIGN_MIDDLE_CENTER); if (gMenuOptionCount == 2) { - set_text_colour(255, 255, 255, phi_v0_2, 255); + set_text_colour(255, 255, 255, temp, 255); } else { set_text_colour(255, 255, 255, 0, 255); } - draw_text(&sMenuCurrDisplayList, 230, y, gMenuText[ASSET_MENU_TEXT_ERASE], ALIGN_MIDDLE_CENTER); - return; + draw_text(&sMenuCurrDisplayList, 230, yPos, gMenuText[ASSET_MENU_TEXT_ERASE], ALIGN_MIDDLE_CENTER); } } -#else -GLOBAL_ASM("asm/non_matchings/menu/render_file_select_menu.s") -#endif s32 func_8008D5F8(UNUSED s32 updateRate) { u32 buttonsPressed; @@ -6625,10 +6664,10 @@ void func_8008D8BC(UNUSED s32 updateRate) { return; } prevValue = gSaveFileIndex2; - if ((xAxisDirection < 0) && (gSaveFileIndex2 > 0)) { + if (xAxisDirection < 0 && gSaveFileIndex2 > 0) { gSaveFileIndex2--; } - if ((xAxisDirection > 0) && (gSaveFileIndex2 < 2)) { + if (xAxisDirection > 0 && gSaveFileIndex2 < 2) { gSaveFileIndex2++; } if (prevValue != gSaveFileIndex2) { @@ -6651,9 +6690,7 @@ void func_8008D8BC(UNUSED s32 updateRate) { gSaveFileIndex = gSaveFileIndex2; gMenuOptionCount = 0; D_80126484 = FALSE; - return; - } - if (buttonsPressed & B_BUTTON) { + } else if (buttonsPressed & B_BUTTON) { play_sound_global(SOUND_MENU_BACK3, NULL); D_80126494 = 1; } @@ -6669,7 +6706,7 @@ void func_8008DC7C(UNUSED s32 updateRate) { controllerXAxisDirection = gControllersXAxisDirection[0]; if (gNumberOfActivePlayers == 2) { - buttonsPressed |= get_buttons_pressed_from_player(1); + buttonsPressed |= get_buttons_pressed_from_player(PLAYER_TWO); controllerXAxisDirection += gControllersXAxisDirection[1]; } @@ -6777,18 +6814,18 @@ s32 menu_file_select_loop(s32 updateRate) { func_8008D8BC(updateRate); } else if (D_80126488 != FALSE) { func_8008DC7C(updateRate); - } else if (D_80126CC0 != 0) { + } else if (D_80126CC0) { buttonsPressed = get_buttons_pressed_from_player(PLAYER_ONE); if ((buttonsPressed & B_BUTTON) && (gCurrentFilenameChars == 0)) { unload_big_font_4(); - D_80126CC0 = 0; + D_80126CC0 = FALSE; gSavefileInfo[i].name[0] = 'D'; gSavefileInfo[i].name[1] = 'K'; gSavefileInfo[i].name[2] = 'R'; gSavefileInfo[i].name[3] = '\0'; } else if (menu_enter_filename_loop(updateRate) != 0) { unload_big_font_4(); - D_80126CC0 = 0; + D_80126CC0 = FALSE; gSavefileInfo[gSaveFileIndex].isAdventure2 = 0; if (gIsInAdventureTwo != 0) { gSavefileInfo[gSaveFileIndex].isAdventure2 = 1; @@ -6810,7 +6847,7 @@ s32 menu_file_select_loop(s32 updateRate) { mark_read_save_file(gSaveFileIndex); set_music_fade_timer(-128); } else { - D_80126CC0 = 1; + D_80126CC0 = TRUE; gIndexOfCurInputCharacter = 0; i = 0; if (osTvType == TV_TYPE_PAL) { @@ -7425,7 +7462,7 @@ void render_track_select(s32 x, s32 y, char *hubName, char *trackName, s32 rectO if (copyViewPort) { copy_viewport_frame_size_to_coords(0, &x1, &y1, &x2, &y2); temp = x1; - sp58 = (x2 - temp) * (1.0f / 128.0f); + sp58 = (x2 - temp) / 128.0f; sp54 = (y2 - y1) / 96.0f; } else { x2 = xTemp + 80; @@ -7969,7 +8006,7 @@ void render_track_select_setup_ui(s32 updateRate) { draw_text(&sMenuCurrDisplayList, gTwoPlayerRacerCountMenu.textPos[2] + gTwoPlayerRacerCountMenu.x + 1, gTwoPlayerRacerCountMenu.textPos[3] + gTwoPlayerRacerCountMenu.y + 1, gMenuText[ASSET_MENU_TEXT_NUMBEROFRACERS], ALIGN_MIDDLE_CENTER); set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF); draw_text(&sMenuCurrDisplayList, gTwoPlayerRacerCountMenu.textPos[2] + gTwoPlayerRacerCountMenu.x - 1, gTwoPlayerRacerCountMenu.textPos[3] + gTwoPlayerRacerCountMenu.y - 1, gMenuText[ASSET_MENU_TEXT_NUMBEROFRACERS], ALIGN_MIDDLE_CENTER); - func_80068508(1); + func_80068508(TRUE); sprite_opaque(FALSE); for (i = 0; i < 3; i++) { s32 index = i * 2; @@ -7993,7 +8030,7 @@ void render_track_select_setup_ui(s32 updateRate) { sMenuGuiColourB = 0xFF; } sprite_opaque(TRUE); - func_80068508(0); + func_80068508(FALSE); } } } @@ -8667,7 +8704,7 @@ void func_80094688(s32 arg0, s32 arg1) { } else { gMenuOptionCount = 7; } - D_80126CC0 = 0; + D_80126CC0 = FALSE; gOptionBlinkTimer = 0; gOpacityDecayTimer = 0; gMenuDelay = 0; @@ -8966,23 +9003,23 @@ void func_80094D28(UNUSED s32 updateRate) { GLOBAL_ASM("asm/non_matchings/menu/func_80094D28.s") #endif -void func_80095624(s32 status) { +void func_80095624(SIDeviceStatus status) { // status may contain controllerIndex in it's upper bits // so grab the lower bits for the SIDeviceStatus switch (status & 0xFF) { - case NO_CONTROLLER_PAK: + case CONTROLLER_PAK_NOT_FOUND: case CONTROLLER_PAK_CHANGED: /*Required to match*/ \ D_80126C1C = sNoControllerPakMenuText; break; case CONTROLLER_PAK_FULL: - case CONTROLLER_PAK_UNK6: /*Required to match*/ \ + case CONTROLLER_PAK_NO_ROOM_FOR_GHOSTS: /*Required to match*/ \ D_80126C1C = sControllerPakFullMenuText; break; - case RUMBLE_PAK: + case CONTROLLER_PAK_RUMBLE_PAK_FOUND: // If you wish to use / the Controller Pak / insert it now! D_80126C1C = sInsertControllerPakMenuText; break; - case CONTROLLER_PAK_UNK8: + case CONTROLLER_PAK_SWITCH_TO_RUMBLE: //If you wish to use / the Rumble Pak / insert it now! D_80126C1C = sInsertRumblePakMenuText; break; @@ -9152,7 +9189,7 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update sp54 = 1; } else { if (D_80126C1C == sInsertControllerPakMenuText) { - func_80095624(8); + func_80095624(CONTROLLER_PAK_SWITCH_TO_RUMBLE); } else { D_80126C1C = NULL; } @@ -11869,17 +11906,17 @@ s32 tt_menu_loop(void) { case CONTROLLER_PAK_GOOD: sCurrentMenuID = gPreviousMenuID; break; - case RUMBLE_PAK: + case CONTROLLER_PAK_RUMBLE_PAK_FOUND: sCurrentMenuID = TT_MENU_INSERT_CONT_PAK; break; - case NO_CONTROLLER_PAK: + case CONTROLLER_PAK_NOT_FOUND: // NO CONTROLLER PAK // If you wish to change / Controller Pak or Rumble Pak, / please do so now. gTTSaveGhostPakErrorText = sNoControllerPakMenuText; sCurrentMenuID = TT_MENU_CONT_PAK_ERROR_1; break; case CONTROLLER_PAK_FULL: - case CONTROLLER_PAK_UNK6: + case CONTROLLER_PAK_NO_ROOM_FOR_GHOSTS: // CONTROLLER PAK FULL // If you wish to change / Controller Pak or Rumble Pak, / please do so now. gTTSaveGhostPakErrorText = sControllerPakFullMenuText; @@ -11895,7 +11932,7 @@ s32 tt_menu_loop(void) { case CONTROLLER_PAK_INCONSISTENT: case CONTROLLER_PAK_WITH_BAD_ID: case CONTROLLER_PAK_CHANGED: - case CONTROLLER_PAK_UNK8: + case CONTROLLER_PAK_SWITCH_TO_RUMBLE: default: // BAD CONTROLLER PAK // If you wish to change / Controller Pak or Rumble Pak, / please do so now. @@ -11930,7 +11967,7 @@ void func_8009E3D0(void) { return; } settings = get_settings(); - func_80068508(1); + func_80068508(TRUE); if (osTvType == TV_TYPE_PAL) { y = 10; } else { @@ -12008,7 +12045,7 @@ void func_8009E3D0(void) { } func_8009CA60(14); } - func_80068508(0); + func_80068508(FALSE); } diff --git a/src/menu.h b/src/menu.h index 60d95039..73ea6f2e 100644 --- a/src/menu.h +++ b/src/menu.h @@ -348,7 +348,7 @@ void unload_big_font_1(void); void menu_audio_options_init(void); void func_800851FC(void); void menu_save_options_init(void); -s32 func_800860A8(s32 controllerIndex, s32 *arg1, unk800861C8 *arg2, s32 *arg3, s32 fileSize, s32 arg5); +SIDeviceStatus func_800860A8(s32 controllerIndex, s32 *arg1, unk800861C8 *arg2, s32 *arg3, s32 fileSize, s32 arg5); void func_800861C8(unk800861C8 *arg0, s32 *arg1); s32 func_800874D0(s32 buttonsPressed, s32 arg1); s32 func_800875E4(s32 buttonsPressed, s32 arg1); @@ -460,7 +460,7 @@ s32 menu_character_select_loop(s32 updateRate); s32 menu_caution_loop(s32 updateRate); void func_8008DC7C(UNUSED s32 updateRate); s32 menu_adventure_track_loop(s32 updateRate); -void func_80095624(s32 status); +void func_80095624(SIDeviceStatus status); s32 menu_boot_loop(s32 arg0); void menu_magic_codes_init(void); s32 menu_game_select_loop(s32 updateRate); @@ -471,7 +471,7 @@ PakError check_for_controller_pak_errors(void); void func_80093A40(void); s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate); s32 menu_track_select_loop(s32 updateRate); -s32 func_800867D4(void); +SIDeviceStatus func_800867D4(void); s32 menu_enter_filename_loop(s32 updateRate); s32 menu_file_select_loop(s32 updateRate); s32 func_8008D5F8(s32 updateRate); @@ -512,13 +512,15 @@ s32 func_800998E0(s32 arg0); void render_magic_codes_ui(s32 updateRate); void render_magic_codes_list_menu_text(s32 updateRate); void func_800904E8(s32 updateRate); +void func_80085B9C(UNUSED s32 updateRate); +void draw_menu_elements(s32 flags, MenuElement *elems, f32 scale); +void render_file_select_menu(UNUSED s32 updateRate); +void func_800871D8(SIDeviceStatus deviceStatus); // Non Matching functions below here void load_menu_text(s32 language); // Non Matching -void draw_menu_elements(s32 arg0, MenuElement *elem, f32 arg2); s32 menu_controller_pak_loop(s32 updateRate); void menu_game_select_init(void); -void render_file_select_menu(s32 arg0); void func_8008FF1C(s32 updateRate); void func_80090918(s32 updateRate); void render_track_select_setup_ui(s32 updateRate); @@ -533,7 +535,6 @@ s32 menu_title_screen_loop(s32 updateRate); s32 menu_magic_codes_loop(s32 updateRate); s32 menu_credits_loop(s32 updateRate); void func_8007FFEC(s32 arg0); -void func_800871D8(s32 arg0); SIDeviceStatus func_80087F14(s32 *controllerIndex, s32 arg1); void set_gIntDisFlag(s8 bool); void func_80081218(void); @@ -544,8 +545,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); -s32 func_80086AFC(void); -void func_80085B9C(UNUSED s32 updateRate); +SIDeviceStatus func_80086AFC(void); void func_80098774(s32); void func_80096978(s32, f32); void func_80094D28(UNUSED s32 updateRate); diff --git a/src/object_models.c b/src/object_models.c index 21439718..c3f33fea 100644 --- a/src/object_models.c +++ b/src/object_models.c @@ -9,6 +9,7 @@ #include "asset_loading.h" #include "textures_sprites.h" #include "racer.h" +#include "save_data.h" /************ .data ************/ diff --git a/src/objects.c b/src/objects.c index 7d0fb3d0..8e8c077a 100644 --- a/src/objects.c +++ b/src/objects.c @@ -1153,19 +1153,19 @@ GLOBAL_ASM("asm/non_matchings/objects/func_8000CC7C.s") s32 get_contpak_error(void) { // D_8011AD38 is likely an SIDeviceStatus value, but not 100% sure yet. switch (D_8011AD38) { - case NO_CONTROLLER_PAK: + case CONTROLLER_PAK_NOT_FOUND: return CONTPAK_ERROR_MISSING; - case RUMBLE_PAK: + case CONTROLLER_PAK_RUMBLE_PAK_FOUND: return CONTPAK_ERROR_NONE; case CONTROLLER_PAK_INCONSISTENT: case CONTROLLER_PAK_WITH_BAD_ID: return CONTPAK_ERROR_DAMAGED; case CONTROLLER_PAK_FULL: - case CONTROLLER_PAK_UNK6: + case CONTROLLER_PAK_NO_ROOM_FOR_GHOSTS: return CONTPAK_ERROR_FULL; case CONTROLLER_PAK_GOOD: case CONTROLLER_PAK_CHANGED: - case CONTROLLER_PAK_UNK8: + case CONTROLLER_PAK_SWITCH_TO_RUMBLE: return func_80059E20(); default: return CONTPAK_ERROR_NONE; @@ -4286,7 +4286,7 @@ s32 func_8001B668(s32 arg0) { return func_800599B8(arg0, get_current_map_id(), D_8011AE82, NULL, NULL); } -s32 func_8001B738(s32 controllerIndex) { +SIDeviceStatus func_8001B738(s32 controllerIndex) { return func_80059B7C(controllerIndex, func_800599A8(), D_800DC728, D_800DC72C, D_800DC724); } diff --git a/src/objects.h b/src/objects.h index 8ea3835f..13b02cd5 100644 --- a/src/objects.h +++ b/src/objects.h @@ -378,7 +378,7 @@ Object *func_8001B2E0(void); s32 is_time_trial_ghost(Object* obj); Object *get_time_trial_ghost(void); s32 unbeaten_staff_time(void); -s32 func_8001B738(s32 controllerIndex); +SIDeviceStatus func_8001B738(s32 controllerIndex); u8 has_ghost_to_save(void); void set_ghost_none(void); f32 func_8001B834(Object_Racer *racer1, Object_Racer *racer2); diff --git a/src/racer.c b/src/racer.c index 55b94905..99e496b4 100644 --- a/src/racer.c +++ b/src/racer.c @@ -5667,7 +5667,7 @@ void free_tt_ghost_data(void) { gGhostData[2] = NULL; } -s32 func_80059B7C(s32 controllerIndex, s32 mapId, s16 arg2, s16 arg3, s16 arg4) { +SIDeviceStatus func_80059B7C(s32 controllerIndex, s32 mapId, s16 arg2, s16 arg3, s16 arg4) { return func_80075000(controllerIndex, (s16) mapId, arg2, arg3, arg4, D_8011D5A0[D_8011D59C], (GhostHeader *) gGhostData[D_8011D59C]); } diff --git a/src/racer.h b/src/racer.h index a3ca3c85..2798f2f0 100644 --- a/src/racer.h +++ b/src/racer.h @@ -4,6 +4,7 @@ #include "types.h" #include "structs.h" #include "level_object_entries.h" +#include "save_data.h" #define SEGMENT_NONE -1 // If the level in question does not use segmentation. @@ -188,7 +189,7 @@ s32 func_800599A8(void); s32 func_800599B8(s32 arg0, s32 mapId, s16 arg2, s16 *arg3, s16 *arg4); s32 load_tt_ghost(s32 ghostOffset, s32 size, s16 *outTime); void free_tt_ghost_data(void); -s32 func_80059B7C(s32 controllerIndex, s32 mapId, s16 arg2, s16 arg3, s16 arg4); +SIDeviceStatus func_80059B7C(s32 controllerIndex, s32 mapId, s16 arg2, s16 arg3, s16 arg4); s16 func_80059E20(void); void disable_racer_input(void); void racer_set_dialogue_camera(void); diff --git a/src/save_data.c b/src/save_data.c index 5a70ae3c..e7ef32b7 100644 --- a/src/save_data.c +++ b/src/save_data.c @@ -1196,25 +1196,25 @@ loop_10: } } if (fileOffset == 0) { - ret = CONTROLLER_PAK_UNK6; + ret = CONTROLLER_PAK_NO_ROOM_FOR_GHOSTS; if (fileData[4] == 0xFF) { - ret = CONTROLLER_PAK_UNK8; + ret = CONTROLLER_PAK_SWITCH_TO_RUMBLE; } temp_v0_4 = temp_a1 + (2 * 4); if (fileData[4] == 0xFF) { - ret = CONTROLLER_PAK_UNK8; + ret = CONTROLLER_PAK_SWITCH_TO_RUMBLE; } if (temp_v0_4[0] == 0xFF) { - ret = CONTROLLER_PAK_UNK8; + ret = CONTROLLER_PAK_SWITCH_TO_RUMBLE; } if (temp_v0_4[4] == 0xFF) { - ret = CONTROLLER_PAK_UNK8; + ret = CONTROLLER_PAK_SWITCH_TO_RUMBLE; } if (temp_v0_4[8] == 0xFF) { - ret = CONTROLLER_PAK_UNK8; + ret = CONTROLLER_PAK_SWITCH_TO_RUMBLE; } if (temp_v0_4[12] == 0xFF) { - ret = CONTROLLER_PAK_UNK8; + ret = CONTROLLER_PAK_SWITCH_TO_RUMBLE; } } } else { @@ -1310,12 +1310,12 @@ typedef struct GhostData { GLOBAL_ASM("asm/non_matchings/save_data/func_80074EB8.s") #ifdef NON_EQUIVALENT -s32 func_80075000(s32 controllerIndex, s16 levelId, s16 vehicleId, s16 ghostCharacterId, s16 ghostTime, s16 ghostNodeCount, GhostHeader *ghostData) { +SIDeviceStatus func_80075000(s32 controllerIndex, s16 levelId, s16 vehicleId, s16 ghostCharacterId, s16 ghostTime, s16 ghostNodeCount, GhostHeader *ghostData) { GhostHeaderAlt *sp70; s32 sp58; s32 fileSize; s32 fileNumber; - s32 ret; + SIDeviceStatus ret; s32 ghostIndex; s32 i; GhostHeader *ghostFileData; @@ -1376,7 +1376,7 @@ s32 func_80075000(s32 controllerIndex, s16 levelId, s16 vehicleId, s16 ghostChar if (ghostIndex == -2) { ret = CONTROLLER_PAK_GOOD; } else if (ghostIndex == -1) { - ret = CONTROLLER_PAK_UNK6; + ret = CONTROLLER_PAK_NO_ROOM_FOR_GHOSTS; } else { sp58 = (0x1100 - ghostFileData[ghostIndex].nodeCount) + ghostFileData[ghostIndex].unk2; fileDataToWrite = allocate_from_main_pool_safe(fileSize + 0x100, COLOUR_TAG_BLACK); @@ -1556,7 +1556,7 @@ SIDeviceStatus get_si_device_status(s32 controllerIndex) { if (sControllerMesgQueue->validCount == 0) { if (osMotorInit(sControllerMesgQueue, &pfs[controllerIndex], controllerIndex) == 0) { - return RUMBLE_PAK; + return CONTROLLER_PAK_RUMBLE_PAK_FOUND; } } @@ -1574,18 +1574,18 @@ SIDeviceStatus get_si_device_status(s32 controllerIndex) { } if (ret == PFS_ERR_ID_FATAL) { if (osMotorInit(sControllerMesgQueue, &pfs[controllerIndex], controllerIndex) == 0) { - return RUMBLE_PAK; + return CONTROLLER_PAK_RUMBLE_PAK_FOUND; } } if (ret == PFS_ERR_NEW_PACK) { if ((osPfsInit(sControllerMesgQueue, &pfs[controllerIndex], controllerIndex) == PFS_ERR_ID_FATAL) && (osMotorInit(sControllerMesgQueue, &pfs[controllerIndex], controllerIndex) == 0)) { - return RUMBLE_PAK; + return CONTROLLER_PAK_RUMBLE_PAK_FOUND; } return CONTROLLER_PAK_CHANGED; } if (ret == PFS_ERR_NOPACK || ret == PFS_ERR_DEVICE) { - return NO_CONTROLLER_PAK; + return CONTROLLER_PAK_NOT_FOUND; } if (ret == PFS_ERR_BAD_DATA) { return CONTROLLER_PAK_BAD_DATA; @@ -1601,7 +1601,7 @@ SIDeviceStatus get_si_device_status(s32 controllerIndex) { } } - return NO_CONTROLLER_PAK; + return CONTROLLER_PAK_NOT_FOUND; } /* Official name: packClose */ @@ -1666,7 +1666,7 @@ UNUSED SIDeviceStatus check_for_rumble_pak(s32 controllerIndex) { ret = get_si_device_status(controllerIndex); start_reading_controller_data(controllerIndex); - if (ret == RUMBLE_PAK) { + if (ret == CONTROLLER_PAK_RUMBLE_PAK_FOUND) { sRumblePaksPresent |= 1 << controllerIndex; } @@ -1945,7 +1945,7 @@ SIDeviceStatus get_file_number(s32 controllerIndex, char *fileName, char *fileEx return CONTROLLER_PAK_GOOD; } if ((ret == PFS_ERR_NOPACK) || (ret == PFS_ERR_DEVICE)) { - return NO_CONTROLLER_PAK; + return CONTROLLER_PAK_NOT_FOUND; } if (ret == PFS_ERR_INCONSISTENT) { return CONTROLLER_PAK_INCONSISTENT; @@ -1968,7 +1968,7 @@ SIDeviceStatus read_data_from_controller_pak(s32 controllerIndex, s32 fileNum, u return CONTROLLER_PAK_GOOD; } if ((readResult == PFS_ERR_NOPACK) || (readResult == PFS_ERR_DEVICE)) { - return NO_CONTROLLER_PAK; + return CONTROLLER_PAK_NOT_FOUND; } if (readResult == PFS_ERR_INCONSISTENT) { return CONTROLLER_PAK_INCONSISTENT; @@ -2043,7 +2043,7 @@ SIDeviceStatus write_controller_pak_file(s32 controllerIndex, s32 fileNumber, ch if (temp == 0) { ret = CONTROLLER_PAK_GOOD; } else if ((temp == PFS_ERR_NOPACK) || (temp == PFS_ERR_DEVICE)) { - ret = NO_CONTROLLER_PAK; + ret = CONTROLLER_PAK_NOT_FOUND; } else if (temp == PFS_ERR_INCONSISTENT) { ret = CONTROLLER_PAK_INCONSISTENT; } else if (temp == PFS_ERR_ID_FATAL) { diff --git a/src/save_data.h b/src/save_data.h index 4b58471a..24b1bd5a 100644 --- a/src/save_data.h +++ b/src/save_data.h @@ -23,17 +23,21 @@ #define NUMBER_OF_SAVE_FILES 3 +// One unique thing about results using SIDeviceStatus is that they +// store the enum value in the lower 0xFF byte, and they store +// the controller index in the upper 3 bits. typedef enum { CONTROLLER_PAK_GOOD, - NO_CONTROLLER_PAK, + CONTROLLER_PAK_NOT_FOUND, CONTROLLER_PAK_INCONSISTENT, CONTROLLER_PAK_WITH_BAD_ID, CONTROLLER_PAK_FULL, CONTROLLER_PAK_CHANGED, - CONTROLLER_PAK_UNK6, //Could be another way to mark as full according to tt_menu_loop - RUMBLE_PAK, - CONTROLLER_PAK_UNK8, // func_80074B34 Sets this, possibly set in func_800860A8 - CONTROLLER_PAK_BAD_DATA + CONTROLLER_PAK_NO_ROOM_FOR_GHOSTS, + CONTROLLER_PAK_RUMBLE_PAK_FOUND, + CONTROLLER_PAK_SWITCH_TO_RUMBLE, + CONTROLLER_PAK_BAD_DATA, + CONTROLLER_PAK_NEED_SECOND_ADVENTURE } SIDeviceStatus; typedef enum { @@ -115,7 +119,7 @@ char *string_to_font_codes(char *inString, char *outString, s32 stringLength); //Reasonably certain about these names for now. s32 func_80074EB8(s32 controllerIndex, s16 arg1, s16 arg2, s16 ghostCharacterId, s16 ghostTime, s16 ghostNodeCount, u8 *dest); -s32 func_80075000(s32 controllerIndex, s16 arg1, s16 arg2, s16 ghostCharacterId, s16 ghostTime, s16 ghostNodeCount, GhostHeader *arg6); +SIDeviceStatus func_80075000(s32 controllerIndex, s16 arg1, s16 arg2, s16 ghostCharacterId, s16 ghostTime, s16 ghostNodeCount, GhostHeader *arg6); s32 func_800753D8(s32 controllerIndex, s32 arg1); #endif diff --git a/src/waves.c b/src/waves.c index 8bf700bf..5718d1b7 100644 --- a/src/waves.c +++ b/src/waves.c @@ -719,7 +719,7 @@ void obj_loop_wavepower(Object *obj) { diffY = racerObj->segment.trans.y_position - obj->segment.trans.y_position; diffZ = racerObj->segment.trans.z_position - obj->segment.trans.z_position; if ((diffX * diffX) + (diffY * diffY) + (diffZ * diffZ) < distance) { - D_8012A720 = entry->unkA * (1.0f / 256.0f); + D_8012A720 = entry->unkA / 256.0f; D_8012A724 = (D_8012A720 - D_80129FC8->unk40) / (f32) entry->unkC; D_8012A728 = entry->unkC; gWaveGeneratorObj = obj;