From fc678db85ae50952d335eea9984993c7d24b31d4 Mon Sep 17 00:00:00 2001 From: David Benepe Date: Tue, 3 Aug 2021 19:59:08 -0500 Subject: [PATCH] Decompiled 4 functions --- asm/non_matchings/game_text/func_800C3564.s | 2 +- asm/non_matchings/menu/func_80081F4C.s | 2 +- asm/non_matchings/menu/func_800853D0.s | 2 +- asm/non_matchings/menu/func_80088938.s | 4 +- asm/non_matchings/menu/func_800890AC.s | 10 +- asm/non_matchings/menu/func_8008CC28.s | 85 --- asm/non_matchings/menu/func_8008D5F8.s | 4 +- asm/non_matchings/menu/func_8008D8BC.s | 4 +- asm/non_matchings/menu/func_8008DC7C.s | 4 +- asm/non_matchings/menu/func_8008E4EC.s | 2 +- asm/non_matchings/menu/func_80093A40.s | 2 +- asm/non_matchings/menu/func_80094170.s | 2 +- asm/non_matchings/menu/func_80095728.s | 2 +- asm/non_matchings/menu/func_80097918.s | 2 +- asm/non_matchings/menu/func_80097D10.s | 2 +- asm/non_matchings/menu/func_8009D360.s | 2 +- asm/non_matchings/menu/func_8009DB3C.s | 2 +- asm/non_matchings/menu/func_8009E7E8.s | 2 +- asm/non_matchings/menu/menu_23_loop.s | 2 +- .../menu/menu_audio_options_loop.s | 2 +- asm/non_matchings/menu/menu_credits_loop.s | 2 +- .../menu/menu_file_select_loop.s | 4 +- .../menu/menu_game_select_loop.s | 4 +- asm/non_matchings/menu/menu_ghost_data_loop.s | 2 +- .../menu/menu_magic_codes_list_loop.s | 2 +- .../menu/menu_magic_codes_loop.s | 2 +- asm/non_matchings/menu/menu_options_loop.s | 2 +- .../menu/menu_save_options_loop.s | 2 +- .../menu/menu_trophy_race_rankings_loop.s | 2 +- ...c_8008CD74.s => render_file_select_menu.s} | 6 +- ...func_800977D0.s => trim_filename_string.s} | 2 +- .../unknown_005740/func_800050D0.s | 4 +- .../unknown_00BC20/func_80010994.s | 2 +- .../unknown_00BC20/func_80019808.s | 2 +- .../unknown_00BC20/func_8001A8F4.s | 2 +- .../unknown_00BC20/func_8001F460.s | 2 +- .../unknown_032760/func_800361E0.s | 2 +- .../unknown_032760/func_80037A18.s | 2 +- .../unknown_032760/func_80039330.s | 2 +- .../unknown_043920/func_8004DE38.s | 4 +- .../unknown_06B2B0/func_8006BFC8.s | 115 ---- .../unknown_06B2B0/func_8006CCF0.s | 60 +- .../unknown_06B2B0/func_8006DCF8.s | 28 +- .../unknown_06B2B0/func_8006E3BC.s | 130 ---- .../unknown_06B2B0/func_8006E770.s | 148 ----- .../unknown_06B2B0/func_8006ECFC.s | 100 +-- .../unknown_06B2B0/func_8006EFDC.s | 92 +-- .../unknown_09F8F0/func_800A01A0.s | 6 +- include/structs.h | 17 +- src/camera.c | 4 +- src/menu.c | 497 +++++++++++---- src/menu.h | 44 +- src/unknown_0348C0.c | 4 +- src/unknown_06B2B0.c | 573 +++++++++++------- src/unknown_06B2B0.h | 17 +- 55 files changed, 966 insertions(+), 1060 deletions(-) delete mode 100644 asm/non_matchings/menu/func_8008CC28.s rename asm/non_matchings/menu/{func_8008CD74.s => render_file_select_menu.s} (99%) rename asm/non_matchings/menu/{func_800977D0.s => trim_filename_string.s} (98%) delete mode 100644 asm/non_matchings/unknown_06B2B0/func_8006BFC8.s delete mode 100644 asm/non_matchings/unknown_06B2B0/func_8006E3BC.s delete mode 100644 asm/non_matchings/unknown_06B2B0/func_8006E770.s diff --git a/asm/non_matchings/game_text/func_800C3564.s b/asm/non_matchings/game_text/func_800C3564.s index 8497e347..df862c3c 100644 --- a/asm/non_matchings/game_text/func_800C3564.s +++ b/asm/non_matchings/game_text/func_800C3564.s @@ -178,7 +178,7 @@ glabel func_800C3564 .L800C37F0: /* 0C43F0 800C37F0 1640FFC7 */ bnez $s2, .L800C3710 /* 0C43F4 800C37F4 00000000 */ nop -/* 0C43F8 800C37F8 0C01A955 */ jal get_button_inputs_from_player +/* 0C43F8 800C37F8 0C01A955 */ jal get_buttons_pressed_from_player /* 0C43FC 800C37FC 00002025 */ move $a0, $zero /* 0C4400 800C3800 3C0B8013 */ lui $t3, %hi(D_8012A787) # $t3, 0x8013 /* 0C4404 800C3804 816BA787 */ lb $t3, %lo(D_8012A787)($t3) diff --git a/asm/non_matchings/menu/func_80081F4C.s b/asm/non_matchings/menu/func_80081F4C.s index e26f14cb..7ed84dd1 100644 --- a/asm/non_matchings/menu/func_80081F4C.s +++ b/asm/non_matchings/menu/func_80081F4C.s @@ -31,7 +31,7 @@ glabel func_80081F4C /* 082BC0 80081FC0 1B00000B */ blez $t8, .L80081FF0 /* 082BC4 80081FC4 00000000 */ nop .L80081FC8: -/* 082BC8 80081FC8 0C01A955 */ jal get_button_inputs_from_player +/* 082BC8 80081FC8 0C01A955 */ jal get_buttons_pressed_from_player /* 082BCC 80081FCC 02002025 */ move $a0, $s0 /* 082BD0 80081FD0 3C19800E */ lui $t9, %hi(gNumberOfActivePlayers) # $t9, 0x800e /* 082BD4 80081FD4 8F39F4BC */ lw $t9, %lo(gNumberOfActivePlayers)($t9) diff --git a/asm/non_matchings/menu/func_800853D0.s b/asm/non_matchings/menu/func_800853D0.s index c8c39bc1..0f10b255 100644 --- a/asm/non_matchings/menu/func_800853D0.s +++ b/asm/non_matchings/menu/func_800853D0.s @@ -46,7 +46,7 @@ glabel L8008541C /* 086068 80085468 0C025DBE */ jal decompress_filename_string /* 08606C 8008546C 24060003 */ li $a2, 3 /* 086070 80085470 27A40050 */ addiu $a0, $sp, 0x50 -/* 086074 80085474 0C025DF4 */ jal func_800977D0 +/* 086074 80085474 0C025DF4 */ jal trim_filename_string /* 086078 80085478 00802825 */ move $a1, $a0 /* 08607C 8008547C 27AC0050 */ addiu $t4, $sp, 0x50 /* 086080 80085480 AFAC0064 */ sw $t4, 0x64($sp) diff --git a/asm/non_matchings/menu/func_80088938.s b/asm/non_matchings/menu/func_80088938.s index 3bd480e6..9d8bedc2 100644 --- a/asm/non_matchings/menu/func_80088938.s +++ b/asm/non_matchings/menu/func_80088938.s @@ -28,7 +28,7 @@ glabel func_80088938 /* 08959C 8008899C 8F186BC8 */ lw $t8, %lo(D_80126BC8)($t8) /* 0895A0 800889A0 24040001 */ li $a0, 1 /* 0895A4 800889A4 13000007 */ beqz $t8, .L800889C4 -/* 0895A8 800889A8 3C19800E */ lui $t9, %hi(D_800DFD94) # $t9, 0x800e +/* 0895A8 800889A8 3C19800E */ lui $t9, %hi(gShowControllerPakMenu) # $t9, 0x800e /* 0895AC 800889AC 3C05800E */ lui $a1, %hi(D_800DFCB4) # $a1, 0x800e /* 0895B0 800889B0 24A5FCB4 */ addiu $a1, %lo(D_800DFCB4) # addiu $a1, $a1, -0x34c /* 0895B4 800889B4 0C02087B */ jal draw_menu_element @@ -36,7 +36,7 @@ glabel func_80088938 /* 0895BC 800889BC 100001B1 */ b .L80089084 /* 0895C0 800889C0 8FBF0044 */ lw $ra, 0x44($sp) .L800889C4: -/* 0895C4 800889C4 8F39FD94 */ lw $t9, %lo(D_800DFD94)($t9) +/* 0895C4 800889C4 8F39FD94 */ lw $t9, %lo(gShowControllerPakMenu)($t9) /* 0895C8 800889C8 00000000 */ nop /* 0895CC 800889CC 132001AD */ beqz $t9, .L80089084 /* 0895D0 800889D0 8FBF0044 */ lw $ra, 0x44($sp) diff --git a/asm/non_matchings/menu/func_800890AC.s b/asm/non_matchings/menu/func_800890AC.s index 4bf36434..dbc41455 100644 --- a/asm/non_matchings/menu/func_800890AC.s +++ b/asm/non_matchings/menu/func_800890AC.s @@ -39,7 +39,7 @@ glabel func_800890AC /* 089D38 80089138 AFA50018 */ sw $a1, 0x18($sp) /* 089D3C 8008913C AFA60040 */ sw $a2, 0x40($sp) /* 089D40 80089140 AFA7003C */ sw $a3, 0x3c($sp) -/* 089D44 80089144 0C01A955 */ jal get_button_inputs_from_player +/* 089D44 80089144 0C01A955 */ jal get_buttons_pressed_from_player /* 089D48 80089148 AFA80038 */ sw $t0, 0x38($sp) /* 089D4C 8008914C 8FA3001C */ lw $v1, 0x1c($sp) /* 089D50 80089150 8FA50018 */ lw $a1, 0x18($sp) @@ -81,15 +81,15 @@ glabel func_800890AC /* 089DDC 800891DC 0C0220CB */ jal func_8008832C /* 089DE0 800891E0 00000000 */ nop /* 089DE4 800891E4 14400002 */ bnez $v0, .L800891F0 -/* 089DE8 800891E8 3C01800E */ lui $at, %hi(D_800DFD94) # $at, 0x800e -/* 089DEC 800891EC AC20FD94 */ sw $zero, %lo(D_800DFD94)($at) +/* 089DE8 800891E8 3C01800E */ lui $at, %hi(gShowControllerPakMenu) # $at, 0x800e +/* 089DEC 800891EC AC20FD94 */ sw $zero, %lo(gShowControllerPakMenu)($at) .L800891F0: /* 089DF0 800891F0 3C0E8012 */ lui $t6, %hi(D_80126BC8) # $t6, 0x8012 /* 089DF4 800891F4 8DCE6BC8 */ lw $t6, %lo(D_80126BC8)($t6) -/* 089DF8 800891F8 3C0F800E */ lui $t7, %hi(D_800DFD94) # $t7, 0x800e +/* 089DF8 800891F8 3C0F800E */ lui $t7, %hi(gShowControllerPakMenu) # $t7, 0x800e /* 089DFC 800891FC 15C000C4 */ bnez $t6, .L80089510 /* 089E00 80089200 00000000 */ nop -/* 089E04 80089204 8DEFFD94 */ lw $t7, %lo(D_800DFD94)($t7) +/* 089E04 80089204 8DEFFD94 */ lw $t7, %lo(gShowControllerPakMenu)($t7) /* 089E08 80089208 24180001 */ li $t8, 1 /* 089E0C 8008920C 15E000C0 */ bnez $t7, .L80089510 /* 089E10 80089210 24190001 */ li $t9, 1 diff --git a/asm/non_matchings/menu/func_8008CC28.s b/asm/non_matchings/menu/func_8008CC28.s deleted file mode 100644 index 58c6269b..00000000 --- a/asm/non_matchings/menu/func_8008CC28.s +++ /dev/null @@ -1,85 +0,0 @@ -glabel func_8008CC28 -/* 08D828 8008CC28 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 08D82C 8008CC2C 3C0A800E */ lui $t2, %hi(D_800DF4AC) # $t2, 0x800e -/* 08D830 8008CC30 254AF4AC */ addiu $t2, %lo(D_800DF4AC) # addiu $t2, $t2, -0xb54 -/* 08D834 8008CC34 91580000 */ lbu $t8, ($t2) -/* 08D838 8008CC38 3C08800E */ lui $t0, %hi(D_800DF4A4) # $t0, 0x800e -/* 08D83C 8008CC3C 3C0B800E */ lui $t3, %hi(D_800DF764) # $t3, 0x800e -/* 08D840 8008CC40 256BF764 */ addiu $t3, %lo(D_800DF764) # addiu $t3, $t3, -0x89c -/* 08D844 8008CC44 2508F4A4 */ addiu $t0, %lo(D_800DF4A4) # addiu $t0, $t0, -0xb5c -/* 08D848 8008CC48 AFB80024 */ sw $t8, 0x24($sp) -/* 08D84C 8008CC4C 910E0000 */ lbu $t6, ($t0) -/* 08D850 8008CC50 8D790000 */ lw $t9, ($t3) -/* 08D854 8008CC54 3C09800E */ lui $t1, %hi(D_800DF4A8) # $t1, 0x800e -/* 08D858 8008CC58 24B8FF61 */ addiu $t8, $a1, -0x9f -/* 08D85C 8008CC5C 44982000 */ mtc1 $t8, $f4 -/* 08D860 8008CC60 2529F4A8 */ addiu $t1, %lo(D_800DF4A8) # addiu $t1, $t1, -0xb58 -/* 08D864 8008CC64 3C03800E */ lui $v1, %hi(D_800DF75C) # $v1, 0x800e -/* 08D868 8008CC68 912F0000 */ lbu $t7, ($t1) -/* 08D86C 8008CC6C 8FAC0040 */ lw $t4, 0x40($sp) -/* 08D870 8008CC70 2463F75C */ addiu $v1, %lo(D_800DF75C) # addiu $v1, $v1, -0x8a4 -/* 08D874 8008CC74 AFAE002C */ sw $t6, 0x2c($sp) -/* 08D878 8008CC78 AFB90020 */ sw $t9, 0x20($sp) -/* 08D87C 8008CC7C 468021A0 */ cvt.s.w $f6, $f4 -/* 08D880 8008CC80 8FAD0044 */ lw $t5, 0x44($sp) -/* 08D884 8008CC84 8FAE0048 */ lw $t6, 0x48($sp) -/* 08D888 8008CC88 8C790000 */ lw $t9, ($v1) -/* 08D88C 8008CC8C 00041140 */ sll $v0, $a0, 5 -/* 08D890 8008CC90 A12C0000 */ sb $t4, ($t1) -/* 08D894 8008CC94 AFBF0014 */ sw $ra, 0x14($sp) -/* 08D898 8008CC98 AFA50034 */ sw $a1, 0x34($sp) -/* 08D89C 8008CC9C AFA60038 */ sw $a2, 0x38($sp) -/* 08D8A0 8008CCA0 A1070000 */ sb $a3, ($t0) -/* 08D8A4 8008CCA4 AFAF0028 */ sw $t7, 0x28($sp) -/* 08D8A8 8008CCA8 A14D0000 */ sb $t5, ($t2) -/* 08D8AC 8008CCAC AD6E0000 */ sw $t6, ($t3) -/* 08D8B0 8008CCB0 03226021 */ addu $t4, $t9, $v0 -/* 08D8B4 8008CCB4 E586000C */ swc1 $f6, 0xc($t4) -/* 08D8B8 8008CCB8 8FAD0038 */ lw $t5, 0x38($sp) -/* 08D8BC 8008CCBC 240E0077 */ li $t6, 119 -/* 08D8C0 8008CCC0 01CD7823 */ subu $t7, $t6, $t5 -/* 08D8C4 8008CCC4 448F4000 */ mtc1 $t7, $f8 -/* 08D8C8 8008CCC8 8C780000 */ lw $t8, ($v1) -/* 08D8CC 8008CCCC 468042A0 */ cvt.s.w $f10, $f8 -/* 08D8D0 8008CCD0 0302C821 */ addu $t9, $t8, $v0 -/* 08D8D4 8008CCD4 E72A0010 */ swc1 $f10, 0x10($t9) -/* 08D8D8 8008CCD8 AFA40030 */ sw $a0, 0x30($sp) -/* 08D8DC 8008CCDC 0C027298 */ jal func_8009CA60 -/* 08D8E0 8008CCE0 AFA2001C */ sw $v0, 0x1c($sp) -/* 08D8E4 8008CCE4 8FAC002C */ lw $t4, 0x2c($sp) -/* 08D8E8 8008CCE8 3C01800E */ lui $at, %hi(D_800DF4A4) # $at, 0x800e -/* 08D8EC 8008CCEC 8FAE0028 */ lw $t6, 0x28($sp) -/* 08D8F0 8008CCF0 A02CF4A4 */ sb $t4, %lo(D_800DF4A4)($at) -/* 08D8F4 8008CCF4 3C01800E */ lui $at, %hi(D_800DF4A8) # $at, 0x800e -/* 08D8F8 8008CCF8 8FAD0024 */ lw $t5, 0x24($sp) -/* 08D8FC 8008CCFC 8FB80034 */ lw $t8, 0x34($sp) -/* 08D900 8008CD00 A02EF4A8 */ sb $t6, %lo(D_800DF4A8)($at) -/* 08D904 8008CD04 3C01800E */ lui $at, %hi(D_800DF4AC) # $at, 0x800e -/* 08D908 8008CD08 8FAF0020 */ lw $t7, 0x20($sp) -/* 08D90C 8008CD0C A02DF4AC */ sb $t5, %lo(D_800DF4AC)($at) -/* 08D910 8008CD10 2719FF5F */ addiu $t9, $t8, -0xa1 -/* 08D914 8008CD14 44998000 */ mtc1 $t9, $f16 -/* 08D918 8008CD18 3C03800E */ lui $v1, %hi(D_800DF75C) # $v1, 0x800e -/* 08D91C 8008CD1C 3C01800E */ lui $at, %hi(D_800DF764) # $at, 0x800e -/* 08D920 8008CD20 2463F75C */ addiu $v1, %lo(D_800DF75C) # addiu $v1, $v1, -0x8a4 -/* 08D924 8008CD24 AC2FF764 */ sw $t7, %lo(D_800DF764)($at) -/* 08D928 8008CD28 468084A0 */ cvt.s.w $f18, $f16 -/* 08D92C 8008CD2C 8FA2001C */ lw $v0, 0x1c($sp) -/* 08D930 8008CD30 8C6C0000 */ lw $t4, ($v1) -/* 08D934 8008CD34 8FA40030 */ lw $a0, 0x30($sp) -/* 08D938 8008CD38 01827021 */ addu $t6, $t4, $v0 -/* 08D93C 8008CD3C E5D2000C */ swc1 $f18, 0xc($t6) -/* 08D940 8008CD40 8FAD0038 */ lw $t5, 0x38($sp) -/* 08D944 8008CD44 240F0079 */ li $t7, 121 -/* 08D948 8008CD48 01EDC023 */ subu $t8, $t7, $t5 -/* 08D94C 8008CD4C 44982000 */ mtc1 $t8, $f4 -/* 08D950 8008CD50 8C790000 */ lw $t9, ($v1) -/* 08D954 8008CD54 468021A0 */ cvt.s.w $f6, $f4 -/* 08D958 8008CD58 03226021 */ addu $t4, $t9, $v0 -/* 08D95C 8008CD5C 0C027298 */ jal func_8009CA60 -/* 08D960 8008CD60 E5860010 */ swc1 $f6, 0x10($t4) -/* 08D964 8008CD64 8FBF0014 */ lw $ra, 0x14($sp) -/* 08D968 8008CD68 27BD0030 */ addiu $sp, $sp, 0x30 -/* 08D96C 8008CD6C 03E00008 */ jr $ra -/* 08D970 8008CD70 00000000 */ nop - diff --git a/asm/non_matchings/menu/func_8008D5F8.s b/asm/non_matchings/menu/func_8008D5F8.s index a22ef850..2e83e3c0 100644 --- a/asm/non_matchings/menu/func_8008D5F8.s +++ b/asm/non_matchings/menu/func_8008D5F8.s @@ -2,7 +2,7 @@ glabel func_8008D5F8 /* 08E1F8 8008D5F8 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 08E1FC 8008D5FC AFBF0014 */ sw $ra, 0x14($sp) /* 08E200 8008D600 AFA40028 */ sw $a0, 0x28($sp) -/* 08E204 8008D604 0C01A955 */ jal get_button_inputs_from_player +/* 08E204 8008D604 0C01A955 */ jal get_buttons_pressed_from_player /* 08E208 8008D608 00002025 */ move $a0, $zero /* 08E20C 8008D60C 3C0E800E */ lui $t6, %hi(gNumberOfActivePlayers) # $t6, 0x800e /* 08E210 8008D610 8DCEF4BC */ lw $t6, %lo(gNumberOfActivePlayers)($t6) @@ -16,7 +16,7 @@ glabel func_8008D5F8 /* 08E230 8008D630 24040001 */ li $a0, 1 /* 08E234 8008D634 AFA20024 */ sw $v0, 0x24($sp) /* 08E238 8008D638 AFA60020 */ sw $a2, 0x20($sp) -/* 08E23C 8008D63C 0C01A955 */ jal get_button_inputs_from_player +/* 08E23C 8008D63C 0C01A955 */ jal get_buttons_pressed_from_player /* 08E240 8008D640 AFA7001C */ sw $a3, 0x1c($sp) /* 08E244 8008D644 3C0F8012 */ lui $t7, %hi(gControllersXAxisDirection+1) # $t7, 0x8012 /* 08E248 8008D648 3C188012 */ lui $t8, %hi(gControllersYAxisDirection+1) # $t8, 0x8012 diff --git a/asm/non_matchings/menu/func_8008D8BC.s b/asm/non_matchings/menu/func_8008D8BC.s index 37f18256..7fe2f4d7 100644 --- a/asm/non_matchings/menu/func_8008D8BC.s +++ b/asm/non_matchings/menu/func_8008D8BC.s @@ -4,7 +4,7 @@ glabel func_8008D8BC /* 08E4C4 8008D8C4 0C01BAA4 */ jal get_settings /* 08E4C8 8008D8C8 AFA40030 */ sw $a0, 0x30($sp) /* 08E4CC 8008D8CC AFA2001C */ sw $v0, 0x1c($sp) -/* 08E4D0 8008D8D0 0C01A955 */ jal get_button_inputs_from_player +/* 08E4D0 8008D8D0 0C01A955 */ jal get_buttons_pressed_from_player /* 08E4D4 8008D8D4 00002025 */ move $a0, $zero /* 08E4D8 8008D8D8 3C0E800E */ lui $t6, %hi(gNumberOfActivePlayers) # $t6, 0x800e /* 08E4DC 8008D8DC 8DCEF4BC */ lw $t6, %lo(gNumberOfActivePlayers)($t6) @@ -15,7 +15,7 @@ glabel func_8008D8BC /* 08E4F0 8008D8F0 00401825 */ move $v1, $v0 /* 08E4F4 8008D8F4 24040001 */ li $a0, 1 /* 08E4F8 8008D8F8 AFA20028 */ sw $v0, 0x28($sp) -/* 08E4FC 8008D8FC 0C01A955 */ jal get_button_inputs_from_player +/* 08E4FC 8008D8FC 0C01A955 */ jal get_buttons_pressed_from_player /* 08E500 8008D900 AFA50024 */ sw $a1, 0x24($sp) /* 08E504 8008D904 3C0F8012 */ lui $t7, %hi(gControllersXAxisDirection+1) # $t7, 0x8012 /* 08E508 8008D908 8FA30028 */ lw $v1, 0x28($sp) diff --git a/asm/non_matchings/menu/func_8008DC7C.s b/asm/non_matchings/menu/func_8008DC7C.s index 8b342c0d..155e3040 100644 --- a/asm/non_matchings/menu/func_8008DC7C.s +++ b/asm/non_matchings/menu/func_8008DC7C.s @@ -2,7 +2,7 @@ glabel func_8008DC7C /* 08E87C 8008DC7C 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 08E880 8008DC80 AFBF0014 */ sw $ra, 0x14($sp) /* 08E884 8008DC84 AFA40020 */ sw $a0, 0x20($sp) -/* 08E888 8008DC88 0C01A955 */ jal get_button_inputs_from_player +/* 08E888 8008DC88 0C01A955 */ jal get_buttons_pressed_from_player /* 08E88C 8008DC8C 00002025 */ move $a0, $zero /* 08E890 8008DC90 3C0E800E */ lui $t6, %hi(gNumberOfActivePlayers) # $t6, 0x800e /* 08E894 8008DC94 8DCEF4BC */ lw $t6, %lo(gNumberOfActivePlayers)($t6) @@ -13,7 +13,7 @@ glabel func_8008DC7C /* 08E8A8 8008DCA8 00401825 */ move $v1, $v0 /* 08E8AC 8008DCAC 24040001 */ li $a0, 1 /* 08E8B0 8008DCB0 AFA2001C */ sw $v0, 0x1c($sp) -/* 08E8B4 8008DCB4 0C01A955 */ jal get_button_inputs_from_player +/* 08E8B4 8008DCB4 0C01A955 */ jal get_buttons_pressed_from_player /* 08E8B8 8008DCB8 AFA50018 */ sw $a1, 0x18($sp) /* 08E8BC 8008DCBC 3C0F8012 */ lui $t7, %hi(gControllersXAxisDirection+1) # $t7, 0x8012 /* 08E8C0 8008DCC0 8FA3001C */ lw $v1, 0x1c($sp) diff --git a/asm/non_matchings/menu/func_8008E4EC.s b/asm/non_matchings/menu/func_8008E4EC.s index 21b6c103..dfafa96f 100644 --- a/asm/non_matchings/menu/func_8008E4EC.s +++ b/asm/non_matchings/menu/func_8008E4EC.s @@ -46,7 +46,7 @@ glabel func_8008E4EC /* 08F198 8008E598 00009825 */ move $s3, $zero /* 08F19C 8008E59C 27B00060 */ addiu $s0, $sp, 0x60 .L8008E5A0: -/* 08F1A0 8008E5A0 0C01A94A */ jal func_8006A528 +/* 08F1A0 8008E5A0 0C01A94A */ jal get_buttons_held_from_player /* 08F1A4 8008E5A4 02602025 */ move $a0, $s3 /* 08F1A8 8008E5A8 8FCF0000 */ lw $t7, ($fp) /* 08F1AC 8008E5AC 82830000 */ lb $v1, ($s4) diff --git a/asm/non_matchings/menu/func_80093A40.s b/asm/non_matchings/menu/func_80093A40.s index 4a7da61e..96c83f1a 100644 --- a/asm/non_matchings/menu/func_80093A40.s +++ b/asm/non_matchings/menu/func_80093A40.s @@ -21,7 +21,7 @@ glabel func_80093A40 /* 09468C 80093A8C 05E10010 */ bgez $t7, .L80093AD0 /* 094690 80093A90 00000000 */ nop .L80093A94: -/* 094694 80093A94 0C01A94A */ jal func_8006A528 +/* 094694 80093A94 0C01A94A */ jal get_buttons_held_from_player /* 094698 80093A98 02002025 */ move $a0, $s0 /* 09469C 80093A9C 30581000 */ andi $t8, $v0, 0x1000 /* 0946A0 80093AA0 13000002 */ beqz $t8, .L80093AAC diff --git a/asm/non_matchings/menu/func_80094170.s b/asm/non_matchings/menu/func_80094170.s index 4999b116..5b79568f 100644 --- a/asm/non_matchings/menu/func_80094170.s +++ b/asm/non_matchings/menu/func_80094170.s @@ -28,7 +28,7 @@ glabel func_80094170 /* 094DD4 800941D4 15400005 */ bnez $t2, .L800941EC /* 094DD8 800941D8 3C04800E */ lui $a0, %hi(D_800E098C) # $a0, 0x800e /* 094DDC 800941DC 8C84098C */ lw $a0, %lo(D_800E098C)($a0) -/* 094DE0 800941E0 0C01A955 */ jal get_button_inputs_from_player +/* 094DE0 800941E0 0C01A955 */ jal get_buttons_pressed_from_player /* 094DE4 800941E4 00000000 */ nop /* 094DE8 800941E8 00401825 */ move $v1, $v0 .L800941EC: diff --git a/asm/non_matchings/menu/func_80095728.s b/asm/non_matchings/menu/func_80095728.s index 243dd17f..57ac868b 100644 --- a/asm/non_matchings/menu/func_80095728.s +++ b/asm/non_matchings/menu/func_80095728.s @@ -126,7 +126,7 @@ glabel func_80095728 .L800958E4: /* 0964E4 800958E4 AFA30040 */ sw $v1, 0x40($sp) /* 0964E8 800958E8 AFA40048 */ sw $a0, 0x48($sp) -/* 0964EC 800958EC 0C01A955 */ jal get_button_inputs_from_player +/* 0964EC 800958EC 0C01A955 */ jal get_buttons_pressed_from_player /* 0964F0 800958F0 AFAA0030 */ sw $t2, 0x30($sp) /* 0964F4 800958F4 8FA40048 */ lw $a0, 0x48($sp) /* 0964F8 800958F8 8FA30040 */ lw $v1, 0x40($sp) diff --git a/asm/non_matchings/menu/func_80097918.s b/asm/non_matchings/menu/func_80097918.s index 2b5fee77..2a0064c3 100644 --- a/asm/non_matchings/menu/func_80097918.s +++ b/asm/non_matchings/menu/func_80097918.s @@ -214,7 +214,7 @@ glabel func_80097918 /* 098830 80097C30 3C048012 */ lui $a0, %hi(D_80126C74) # $a0, 0x8012 /* 098834 80097C34 27B00050 */ addiu $s0, $sp, 0x50 /* 098838 80097C38 8C846C74 */ lw $a0, %lo(D_80126C74)($a0) -/* 09883C 80097C3C 0C025DF4 */ jal func_800977D0 +/* 09883C 80097C3C 0C025DF4 */ jal trim_filename_string /* 098840 80097C40 02002825 */ move $a1, $s0 /* 098844 80097C44 12000026 */ beqz $s0, .L80097CE0 /* 098848 80097C48 3C04800E */ lui $a0, %hi(D_800E0F9C) # $a0, 0x800e diff --git a/asm/non_matchings/menu/func_80097D10.s b/asm/non_matchings/menu/func_80097D10.s index 6ee1d481..43b6f020 100644 --- a/asm/non_matchings/menu/func_80097D10.s +++ b/asm/non_matchings/menu/func_80097D10.s @@ -9,7 +9,7 @@ glabel func_80097D10 /* 098918 80097D18 AFA40030 */ sw $a0, 0x30($sp) /* 09891C 80097D1C E7B50010 */ swc1 $f21, 0x10($sp) /* 098920 80097D20 E7B40014 */ swc1 $f20, 0x14($sp) -/* 098924 80097D24 0C01A955 */ jal get_button_inputs_from_player +/* 098924 80097D24 0C01A955 */ jal get_buttons_pressed_from_player /* 098928 80097D28 00002025 */ move $a0, $zero /* 09892C 80097D2C 00002025 */ move $a0, $zero /* 098930 80097D30 0C01A967 */ jal func_8006A59C diff --git a/asm/non_matchings/menu/func_8009D360.s b/asm/non_matchings/menu/func_8009D360.s index 76c85dbf..fdad74de 100644 --- a/asm/non_matchings/menu/func_8009D360.s +++ b/asm/non_matchings/menu/func_8009D360.s @@ -45,7 +45,7 @@ glabel func_8009D360 /* 09DFF0 8009D3F0 00002825 */ move $a1, $zero .L8009D3F4: /* 09DFF4 8009D3F4 AFA0002C */ sw $zero, 0x2c($sp) -/* 09DFF8 8009D3F8 0C01A955 */ jal get_button_inputs_from_player +/* 09DFF8 8009D3F8 0C01A955 */ jal get_buttons_pressed_from_player /* 09DFFC 8009D3FC 00002025 */ move $a0, $zero /* 09E000 8009D400 3C018012 */ lui $at, %hi(D_80126504) # $at, 0x8012 /* 09E004 8009D404 3C058012 */ lui $a1, %hi(D_801264E2) # $a1, 0x8012 diff --git a/asm/non_matchings/menu/func_8009DB3C.s b/asm/non_matchings/menu/func_8009DB3C.s index b7d58aed..431b9d5e 100644 --- a/asm/non_matchings/menu/func_8009DB3C.s +++ b/asm/non_matchings/menu/func_8009DB3C.s @@ -63,7 +63,7 @@ glabel func_8009DB3C /* 09E800 8009DC00 0C0313DF */ jal func_800C4F7C /* 09E804 8009DC04 00002825 */ move $a1, $zero /* 09E808 8009DC08 AFA00044 */ sw $zero, 0x44($sp) -/* 09E80C 8009DC0C 0C01A955 */ jal get_button_inputs_from_player +/* 09E80C 8009DC0C 0C01A955 */ jal get_buttons_pressed_from_player /* 09E810 8009DC10 00002025 */ move $a0, $zero /* 09E814 8009DC14 3C018012 */ lui $at, %hi(D_80126504) # $at, 0x8012 /* 09E818 8009DC18 A0206504 */ sb $zero, %lo(D_80126504)($at) diff --git a/asm/non_matchings/menu/func_8009E7E8.s b/asm/non_matchings/menu/func_8009E7E8.s index 408cace8..d0aebfc0 100644 --- a/asm/non_matchings/menu/func_8009E7E8.s +++ b/asm/non_matchings/menu/func_8009E7E8.s @@ -12,7 +12,7 @@ glabel func_8009E7E8 /* 09F410 8009E810 0C0313DF */ jal func_800C4F7C /* 09F414 8009E814 00002825 */ move $a1, $zero /* 09F418 8009E818 AFA00024 */ sw $zero, 0x24($sp) -/* 09F41C 8009E81C 0C01A955 */ jal get_button_inputs_from_player +/* 09F41C 8009E81C 0C01A955 */ jal get_buttons_pressed_from_player /* 09F420 8009E820 00002025 */ move $a0, $zero /* 09F424 8009E824 3C0F800E */ lui $t7, %hi(D_800DF4A0) # $t7, 0x800e /* 09F428 8009E828 8DEFF4A0 */ lw $t7, %lo(D_800DF4A0)($t7) diff --git a/asm/non_matchings/menu/menu_23_loop.s b/asm/non_matchings/menu/menu_23_loop.s index 184d448e..c0037d47 100644 --- a/asm/non_matchings/menu/menu_23_loop.s +++ b/asm/non_matchings/menu/menu_23_loop.s @@ -20,7 +20,7 @@ glabel menu_23_loop /* 09B944 8009AD44 19E00008 */ blez $t7, .L8009AD68 /* 09B948 8009AD48 00000000 */ nop .L8009AD4C: -/* 09B94C 8009AD4C 0C01A955 */ jal get_button_inputs_from_player +/* 09B94C 8009AD4C 0C01A955 */ jal get_buttons_pressed_from_player /* 09B950 8009AD50 02002025 */ move $a0, $s0 /* 09B954 8009AD54 8E380000 */ lw $t8, ($s1) /* 09B958 8009AD58 26100001 */ addiu $s0, $s0, 1 diff --git a/asm/non_matchings/menu/menu_audio_options_loop.s b/asm/non_matchings/menu/menu_audio_options_loop.s index 501e10d2..fc60e7fe 100644 --- a/asm/non_matchings/menu/menu_audio_options_loop.s +++ b/asm/non_matchings/menu/menu_audio_options_loop.s @@ -55,7 +55,7 @@ glabel menu_audio_options_loop /* 085938 80084D38 AFA50024 */ sw $a1, 0x24($sp) /* 08593C 80084D3C AFA60034 */ sw $a2, 0x34($sp) /* 085940 80084D40 AFA70038 */ sw $a3, 0x38($sp) -/* 085944 80084D44 0C01A955 */ jal get_button_inputs_from_player +/* 085944 80084D44 0C01A955 */ jal get_buttons_pressed_from_player /* 085948 80084D48 AFA8003C */ sw $t0, 0x3c($sp) /* 08594C 80084D4C 8FAD0040 */ lw $t5, 0x40($sp) /* 085950 80084D50 02002025 */ move $a0, $s0 diff --git a/asm/non_matchings/menu/menu_credits_loop.s b/asm/non_matchings/menu/menu_credits_loop.s index f92285ce..5988707a 100644 --- a/asm/non_matchings/menu/menu_credits_loop.s +++ b/asm/non_matchings/menu/menu_credits_loop.s @@ -499,7 +499,7 @@ glabel menu_credits_loop /* 09C640 8009BA40 15200008 */ bnez $t1, .L8009BA64 /* 09C644 8009BA44 24110004 */ li $s1, 4 .L8009BA48: -/* 09C648 8009BA48 0C01A955 */ jal get_button_inputs_from_player +/* 09C648 8009BA48 0C01A955 */ jal get_buttons_pressed_from_player /* 09C64C 8009BA4C 02002025 */ move $a0, $s0 /* 09C650 8009BA50 26100001 */ addiu $s0, $s0, 1 /* 09C654 8009BA54 1611FFFC */ bne $s0, $s1, .L8009BA48 diff --git a/asm/non_matchings/menu/menu_file_select_loop.s b/asm/non_matchings/menu/menu_file_select_loop.s index 40d2c2f2..366e9ef2 100644 --- a/asm/non_matchings/menu/menu_file_select_loop.s +++ b/asm/non_matchings/menu/menu_file_select_loop.s @@ -97,7 +97,7 @@ glabel menu_file_select_loop /* 08EBD0 8008DFD0 28410015 */ slti $at, $v0, 0x15 /* 08EBD4 8008DFD4 10200008 */ beqz $at, .L8008DFF8 /* 08EBD8 8008DFD8 00A02025 */ move $a0, $a1 -/* 08EBDC 8008DFDC 0C02335D */ jal func_8008CD74 +/* 08EBDC 8008DFDC 0C02335D */ jal render_file_select_menu /* 08EBE0 8008DFE0 AFA80044 */ sw $t0, 0x44($sp) /* 08EBE4 8008DFE4 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e /* 08EBE8 8008DFE8 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) @@ -133,7 +133,7 @@ glabel menu_file_select_loop /* 08EC54 8008E054 00002025 */ move $a0, $zero /* 08EC58 8008E058 13000048 */ beqz $t8, .L8008E17C /* 08EC5C 8008E05C 00000000 */ nop -/* 08EC60 8008E060 0C01A955 */ jal get_button_inputs_from_player +/* 08EC60 8008E060 0C01A955 */ jal get_buttons_pressed_from_player /* 08EC64 8008E064 AFA80044 */ sw $t0, 0x44($sp) /* 08EC68 8008E068 8FA80044 */ lw $t0, 0x44($sp) /* 08EC6C 8008E06C 30594000 */ andi $t9, $v0, 0x4000 diff --git a/asm/non_matchings/menu/menu_game_select_loop.s b/asm/non_matchings/menu/menu_game_select_loop.s index 79fc59bf..1e8143e3 100644 --- a/asm/non_matchings/menu/menu_game_select_loop.s +++ b/asm/non_matchings/menu/menu_game_select_loop.s @@ -121,7 +121,7 @@ glabel menu_game_select_loop /* 08D574 8008C974 00000000 */ nop /* 08D578 8008C978 15E0004D */ bnez $t7, .L8008CAB0 /* 08D57C 8008C97C 00000000 */ nop -/* 08D580 8008C980 0C01A955 */ jal get_button_inputs_from_player +/* 08D580 8008C980 0C01A955 */ jal get_buttons_pressed_from_player /* 08D584 8008C984 00002025 */ move $a0, $zero /* 08D588 8008C988 3C18800E */ lui $t8, %hi(gNumberOfActivePlayers) # $t8, 0x800e /* 08D58C 8008C98C 8F18F4BC */ lw $t8, %lo(gNumberOfActivePlayers)($t8) @@ -132,7 +132,7 @@ glabel menu_game_select_loop /* 08D5A0 8008C9A0 00401825 */ move $v1, $v0 /* 08D5A4 8008C9A4 24040001 */ li $a0, 1 /* 08D5A8 8008C9A8 AFA20024 */ sw $v0, 0x24($sp) -/* 08D5AC 8008C9AC 0C01A955 */ jal get_button_inputs_from_player +/* 08D5AC 8008C9AC 0C01A955 */ jal get_buttons_pressed_from_player /* 08D5B0 8008C9B0 AFA60020 */ sw $a2, 0x20($sp) /* 08D5B4 8008C9B4 3C198012 */ lui $t9, %hi(gControllersYAxisDirection+1) # $t9, 0x8012 /* 08D5B8 8008C9B8 8FA30024 */ lw $v1, 0x24($sp) diff --git a/asm/non_matchings/menu/menu_ghost_data_loop.s b/asm/non_matchings/menu/menu_ghost_data_loop.s index 5fe7c8f8..bb206f25 100644 --- a/asm/non_matchings/menu/menu_ghost_data_loop.s +++ b/asm/non_matchings/menu/menu_ghost_data_loop.s @@ -52,7 +52,7 @@ glabel menu_ghost_data_loop /* 09B48C 8009A88C AFA50024 */ sw $a1, 0x24($sp) /* 09B490 8009A890 AFA6003C */ sw $a2, 0x3c($sp) /* 09B494 8009A894 AFA70040 */ sw $a3, 0x40($sp) -/* 09B498 8009A898 0C01A955 */ jal get_button_inputs_from_player +/* 09B498 8009A898 0C01A955 */ jal get_buttons_pressed_from_player /* 09B49C 8009A89C AFA80038 */ sw $t0, 0x38($sp) /* 09B4A0 8009A8A0 8FA30028 */ lw $v1, 0x28($sp) /* 09B4A4 8009A8A4 8FA50024 */ lw $a1, 0x24($sp) diff --git a/asm/non_matchings/menu/menu_magic_codes_list_loop.s b/asm/non_matchings/menu/menu_magic_codes_list_loop.s index e71fbac2..9e466a1c 100644 --- a/asm/non_matchings/menu/menu_magic_codes_list_loop.s +++ b/asm/non_matchings/menu/menu_magic_codes_list_loop.s @@ -58,7 +58,7 @@ glabel menu_magic_codes_list_loop /* 08B5F8 8008A9F8 02002025 */ move $a0, $s0 /* 08B5FC 8008A9FC AFA30030 */ sw $v1, 0x30($sp) /* 08B600 8008AA00 AFA5002C */ sw $a1, 0x2c($sp) -/* 08B604 8008AA04 0C01A955 */ jal get_button_inputs_from_player +/* 08B604 8008AA04 0C01A955 */ jal get_buttons_pressed_from_player /* 08B608 8008AA08 AFA60050 */ sw $a2, 0x50($sp) /* 08B60C 8008AA0C 8FA30030 */ lw $v1, 0x30($sp) /* 08B610 8008AA10 8FA5002C */ lw $a1, 0x2c($sp) diff --git a/asm/non_matchings/menu/menu_magic_codes_loop.s b/asm/non_matchings/menu/menu_magic_codes_loop.s index 117929a9..72ec7a8e 100644 --- a/asm/non_matchings/menu/menu_magic_codes_loop.s +++ b/asm/non_matchings/menu/menu_magic_codes_loop.s @@ -76,7 +76,7 @@ glabel menu_magic_codes_loop /* 08A9E8 80089DE8 AFA70044 */ sw $a3, 0x44($sp) /* 08A9EC 80089DEC AFA80054 */ sw $t0, 0x54($sp) /* 08A9F0 80089DF0 AFA90050 */ sw $t1, 0x50($sp) -/* 08A9F4 80089DF4 0C01A955 */ jal get_button_inputs_from_player +/* 08A9F4 80089DF4 0C01A955 */ jal get_buttons_pressed_from_player /* 08A9F8 80089DF8 AFAA0058 */ sw $t2, 0x58($sp) /* 08A9FC 80089DFC 8FA30020 */ lw $v1, 0x20($sp) /* 08AA00 80089E00 8FA5001C */ lw $a1, 0x1c($sp) diff --git a/asm/non_matchings/menu/menu_options_loop.s b/asm/non_matchings/menu/menu_options_loop.s index 29eb7201..041f504d 100644 --- a/asm/non_matchings/menu/menu_options_loop.s +++ b/asm/non_matchings/menu/menu_options_loop.s @@ -50,7 +50,7 @@ glabel menu_options_loop /* 08500C 8008440C AFA5001C */ sw $a1, 0x1c($sp) /* 085010 80084410 AFA60044 */ sw $a2, 0x44($sp) /* 085014 80084414 AFA70038 */ sw $a3, 0x38($sp) -/* 085018 80084418 0C01A955 */ jal get_button_inputs_from_player +/* 085018 80084418 0C01A955 */ jal get_buttons_pressed_from_player /* 08501C 8008441C AFA80034 */ sw $t0, 0x34($sp) /* 085020 80084420 8FA30020 */ lw $v1, 0x20($sp) /* 085024 80084424 8FA5001C */ lw $a1, 0x1c($sp) diff --git a/asm/non_matchings/menu/menu_save_options_loop.s b/asm/non_matchings/menu/menu_save_options_loop.s index 41a0505a..b600ab56 100644 --- a/asm/non_matchings/menu/menu_save_options_loop.s +++ b/asm/non_matchings/menu/menu_save_options_loop.s @@ -94,7 +94,7 @@ glabel menu_save_options_loop /* 08889C 80087C9C 02002025 */ move $a0, $s0 /* 0888A0 80087CA0 AFA60030 */ sw $a2, 0x30($sp) /* 0888A4 80087CA4 028CA021 */ addu $s4, $s4, $t4 -/* 0888A8 80087CA8 0C01A955 */ jal get_button_inputs_from_player +/* 0888A8 80087CA8 0C01A955 */ jal get_buttons_pressed_from_player /* 0888AC 80087CAC 026D9821 */ addu $s3, $s3, $t5 /* 0888B0 80087CB0 8FA60030 */ lw $a2, 0x30($sp) /* 0888B4 80087CB4 26100001 */ addiu $s0, $s0, 1 diff --git a/asm/non_matchings/menu/menu_trophy_race_rankings_loop.s b/asm/non_matchings/menu/menu_trophy_race_rankings_loop.s index 4d503ae4..9cea2923 100644 --- a/asm/non_matchings/menu/menu_trophy_race_rankings_loop.s +++ b/asm/non_matchings/menu/menu_trophy_race_rankings_loop.s @@ -137,7 +137,7 @@ glabel menu_trophy_race_rankings_loop /* 099DCC 800991CC AFA5004C */ sw $a1, 0x4c($sp) /* 099DD0 800991D0 AFA70020 */ sw $a3, 0x20($sp) /* 099DD4 800991D4 AFA80044 */ sw $t0, 0x44($sp) -/* 099DD8 800991D8 0C01A955 */ jal get_button_inputs_from_player +/* 099DD8 800991D8 0C01A955 */ jal get_buttons_pressed_from_player /* 099DDC 800991DC AFAB002C */ sw $t3, 0x2c($sp) /* 099DE0 800991E0 8FA70020 */ lw $a3, 0x20($sp) /* 099DE4 800991E4 8FA80044 */ lw $t0, 0x44($sp) diff --git a/asm/non_matchings/menu/func_8008CD74.s b/asm/non_matchings/menu/render_file_select_menu.s similarity index 99% rename from asm/non_matchings/menu/func_8008CD74.s rename to asm/non_matchings/menu/render_file_select_menu.s index 222a3b76..3332690b 100644 --- a/asm/non_matchings/menu/func_8008CD74.s +++ b/asm/non_matchings/menu/render_file_select_menu.s @@ -1,4 +1,4 @@ -glabel func_8008CD74 +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) @@ -355,7 +355,7 @@ glabel func_8008CD74 /* 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 func_800977D0 +/* 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 @@ -363,7 +363,7 @@ glabel func_8008CD74 /* 08DEC0 8008D2C0 3C04800E */ lui $a0, %hi(D_800E03B0) # $a0, 0x800e /* 08DEC4 8008D2C4 008E2021 */ addu $a0, $a0, $t6 /* 08DEC8 8008D2C8 8C8403B0 */ lw $a0, %lo(D_800E03B0)($a0) -/* 08DECC 8008D2CC 0C025DF4 */ jal func_800977D0 +/* 08DECC 8008D2CC 0C025DF4 */ jal trim_filename_string /* 08DED0 8008D2D0 02A02825 */ move $a1, $s5 .L8008D2D4: /* 08DED4 8008D2D4 12A00010 */ beqz $s5, .L8008D318 diff --git a/asm/non_matchings/menu/func_800977D0.s b/asm/non_matchings/menu/trim_filename_string.s similarity index 98% rename from asm/non_matchings/menu/func_800977D0.s rename to asm/non_matchings/menu/trim_filename_string.s index 5c483f9d..9b48a927 100644 --- a/asm/non_matchings/menu/func_800977D0.s +++ b/asm/non_matchings/menu/trim_filename_string.s @@ -1,4 +1,4 @@ -glabel func_800977D0 +glabel trim_filename_string /* 0983D0 800977D0 908E0000 */ lbu $t6, ($a0) /* 0983D4 800977D4 00A03825 */ move $a3, $a1 /* 0983D8 800977D8 11C00024 */ beqz $t6, .L8009786C diff --git a/asm/non_matchings/unknown_005740/func_800050D0.s b/asm/non_matchings/unknown_005740/func_800050D0.s index 8fb68109..20663fae 100644 --- a/asm/non_matchings/unknown_005740/func_800050D0.s +++ b/asm/non_matchings/unknown_005740/func_800050D0.s @@ -30,13 +30,13 @@ glabel func_800050D0 /* 005D40 80005140 00000000 */ nop /* 005D44 80005144 1081000D */ beq $a0, $at, .L8000517C /* 005D48 80005148 00000000 */ nop -/* 005D4C 8000514C 0C01A94A */ jal func_8006A528 +/* 005D4C 8000514C 0C01A94A */ jal get_buttons_held_from_player /* 005D50 80005150 00000000 */ nop /* 005D54 80005154 3C0A8012 */ lui $t2, %hi(D_80119C3C) # $t2, 0x8012 /* 005D58 80005158 8D4A9C3C */ lw $t2, %lo(D_80119C3C)($t2) /* 005D5C 8000515C 00000000 */ nop /* 005D60 80005160 85440000 */ lh $a0, ($t2) -/* 005D64 80005164 0C01A955 */ jal get_button_inputs_from_player +/* 005D64 80005164 0C01A955 */ jal get_buttons_pressed_from_player /* 005D68 80005168 AFA20028 */ sw $v0, 0x28($sp) /* 005D6C 8000516C 3C058012 */ lui $a1, %hi(D_80119C38) # $a1, 0x8012 /* 005D70 80005170 8FA60028 */ lw $a2, 0x28($sp) diff --git a/asm/non_matchings/unknown_00BC20/func_80010994.s b/asm/non_matchings/unknown_00BC20/func_80010994.s index 7e7b621b..15a5c11d 100644 --- a/asm/non_matchings/unknown_00BC20/func_80010994.s +++ b/asm/non_matchings/unknown_00BC20/func_80010994.s @@ -487,7 +487,7 @@ glabel func_80010994 /* 011C8C 8001108C 24100004 */ li $s0, 4 .L80011090: /* 011C90 80011090 02602025 */ move $a0, $s3 -/* 011C94 80011094 0C01A955 */ jal get_button_inputs_from_player +/* 011C94 80011094 0C01A955 */ jal get_buttons_pressed_from_player /* 011C98 80011098 AFA50054 */ sw $a1, 0x54($sp) /* 011C9C 8001109C 8FA50054 */ lw $a1, 0x54($sp) /* 011CA0 800110A0 26730001 */ addiu $s3, $s3, 1 diff --git a/asm/non_matchings/unknown_00BC20/func_80019808.s b/asm/non_matchings/unknown_00BC20/func_80019808.s index 8d48db4c..47cdfc93 100644 --- a/asm/non_matchings/unknown_00BC20/func_80019808.s +++ b/asm/non_matchings/unknown_00BC20/func_80019808.s @@ -776,7 +776,7 @@ glabel func_80019808 /* 01AF10 8001A310 00008025 */ move $s0, $zero .L8001A314: /* 01AF14 8001A314 02002025 */ move $a0, $s0 -/* 01AF18 8001A318 0C01A955 */ jal get_button_inputs_from_player +/* 01AF18 8001A318 0C01A955 */ jal get_buttons_pressed_from_player /* 01AF1C 8001A31C AFA50094 */ sw $a1, 0x94($sp) /* 01AF20 8001A320 8FA50094 */ lw $a1, 0x94($sp) /* 01AF24 8001A324 26100001 */ addiu $s0, $s0, 1 diff --git a/asm/non_matchings/unknown_00BC20/func_8001A8F4.s b/asm/non_matchings/unknown_00BC20/func_8001A8F4.s index 7f3d5fb6..1648a72a 100644 --- a/asm/non_matchings/unknown_00BC20/func_8001A8F4.s +++ b/asm/non_matchings/unknown_00BC20/func_8001A8F4.s @@ -322,7 +322,7 @@ glabel func_8001A8F4 /* 01B9A4 8001ADA4 0C02AC75 */ jal func_800AB1D4 /* 01B9A8 8001ADA8 24040001 */ li $a0, 1 .L8001ADAC: -/* 01B9AC 8001ADAC 0C01A955 */ jal get_button_inputs_from_player +/* 01B9AC 8001ADAC 0C01A955 */ jal get_buttons_pressed_from_player /* 01B9B0 8001ADB0 00002025 */ move $a0, $zero /* 01B9B4 8001ADB4 0C01BAA4 */ jal get_settings /* 01B9B8 8001ADB8 30508000 */ andi $s0, $v0, 0x8000 diff --git a/asm/non_matchings/unknown_00BC20/func_8001F460.s b/asm/non_matchings/unknown_00BC20/func_8001F460.s index 5ab4c4e7..901d55c4 100644 --- a/asm/non_matchings/unknown_00BC20/func_8001F460.s +++ b/asm/non_matchings/unknown_00BC20/func_8001F460.s @@ -77,7 +77,7 @@ glabel func_8001F460 /* 020150 8001F550 03004025 */ move $t0, $t8 .L8001F554: /* 020154 8001F554 02002025 */ move $a0, $s0 -/* 020158 8001F558 0C01A955 */ jal get_button_inputs_from_player +/* 020158 8001F558 0C01A955 */ jal get_buttons_pressed_from_player /* 02015C 8001F55C AFA80174 */ sw $t0, 0x174($sp) /* 020160 8001F560 8FA80174 */ lw $t0, 0x174($sp) /* 020164 8001F564 26100001 */ addiu $s0, $s0, 1 diff --git a/asm/non_matchings/unknown_032760/func_800361E0.s b/asm/non_matchings/unknown_032760/func_800361E0.s index 88a6efdc..9c50ab97 100644 --- a/asm/non_matchings/unknown_032760/func_800361E0.s +++ b/asm/non_matchings/unknown_032760/func_800361E0.s @@ -128,7 +128,7 @@ glabel func_800361E0 /* 036F9C 8003639C AE0C007C */ sw $t4, 0x7c($s0) /* 036FA0 800363A0 AFA3005C */ sw $v1, 0x5c($sp) .L800363A4: -/* 036FA4 800363A4 0C01A955 */ jal get_button_inputs_from_player +/* 036FA4 800363A4 0C01A955 */ jal get_buttons_pressed_from_player /* 036FA8 800363A8 00002025 */ move $a0, $zero /* 036FAC 800363AC 8E0D0078 */ lw $t5, 0x78($s0) /* 036FB0 800363B0 8FA3005C */ lw $v1, 0x5c($sp) diff --git a/asm/non_matchings/unknown_032760/func_80037A18.s b/asm/non_matchings/unknown_032760/func_80037A18.s index daa8d388..d0e45cf3 100644 --- a/asm/non_matchings/unknown_032760/func_80037A18.s +++ b/asm/non_matchings/unknown_032760/func_80037A18.s @@ -122,7 +122,7 @@ glabel func_80037A18 /* 0387D4 80037BD4 00000000 */ nop /* 0387D8 80037BD8 11000008 */ beqz $t0, .L80037BFC /* 0387DC 80037BDC 00000000 */ nop -/* 0387E0 80037BE0 0C01A955 */ jal get_button_inputs_from_player +/* 0387E0 80037BE0 0C01A955 */ jal get_buttons_pressed_from_player /* 0387E4 80037BE4 AFA7002C */ sw $a3, 0x2c($sp) /* 0387E8 80037BE8 8FA7002C */ lw $a3, 0x2c($sp) /* 0387EC 80037BEC 30490001 */ andi $t1, $v0, 1 diff --git a/asm/non_matchings/unknown_032760/func_80039330.s b/asm/non_matchings/unknown_032760/func_80039330.s index 22961e95..9a2ebc73 100644 --- a/asm/non_matchings/unknown_032760/func_80039330.s +++ b/asm/non_matchings/unknown_032760/func_80039330.s @@ -98,7 +98,7 @@ glabel func_80039330 /* 03A054 80039454 460A9300 */ add.s $f12, $f18, $f10 /* 03A058 80039458 E7A0009C */ swc1 $f0, 0x9c($sp) .L8003945C: -/* 03A05C 8003945C 0C01A955 */ jal get_button_inputs_from_player +/* 03A05C 8003945C 0C01A955 */ jal get_buttons_pressed_from_player /* 03A060 80039460 00002025 */ move $a0, $zero /* 03A064 80039464 8E190078 */ lw $t9, 0x78($s0) /* 03A068 80039468 00003025 */ move $a2, $zero diff --git a/asm/non_matchings/unknown_043920/func_8004DE38.s b/asm/non_matchings/unknown_043920/func_8004DE38.s index 042dff37..8c2fc46f 100644 --- a/asm/non_matchings/unknown_043920/func_8004DE38.s +++ b/asm/non_matchings/unknown_043920/func_8004DE38.s @@ -607,11 +607,11 @@ glabel func_8004DE38 /* 04F2A0 8004E6A0 AFA600AC */ sw $a2, 0xac($sp) /* 04F2A4 8004E6A4 8FA400AC */ lw $a0, 0xac($sp) /* 04F2A8 8004E6A8 3C018012 */ lui $at, %hi(D_8011D538) # $at, 0x8012 -/* 04F2AC 8004E6AC 0C01A94A */ jal func_8006A528 +/* 04F2AC 8004E6AC 0C01A94A */ jal get_buttons_held_from_player /* 04F2B0 8004E6B0 AC22D538 */ sw $v0, %lo(D_8011D538)($at) /* 04F2B4 8004E6B4 8FA400AC */ lw $a0, 0xac($sp) /* 04F2B8 8004E6B8 3C018012 */ lui $at, %hi(D_8011D528) # $at, 0x8012 -/* 04F2BC 8004E6BC 0C01A955 */ jal get_button_inputs_from_player +/* 04F2BC 8004E6BC 0C01A955 */ jal get_buttons_pressed_from_player /* 04F2C0 8004E6C0 AC22D528 */ sw $v0, %lo(D_8011D528)($at) /* 04F2C4 8004E6C4 8FA400AC */ lw $a0, 0xac($sp) /* 04F2C8 8004E6C8 3C018012 */ lui $at, %hi(gActivePlayerButtonPress) # $at, 0x8012 diff --git a/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s b/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s deleted file mode 100644 index 478f18f4..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s +++ /dev/null @@ -1,115 +0,0 @@ -glabel func_8006BFC8 -/* 06CBC8 8006BFC8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 06CBCC 8006BFCC AFBF001C */ sw $ra, 0x1c($sp) -/* 06CBD0 8006BFD0 AFB00018 */ sw $s0, 0x18($sp) -/* 06CBD4 8006BFD4 AFA40028 */ sw $a0, 0x28($sp) -/* 06CBD8 8006BFD8 0C0270B4 */ jal is_in_tracks_mode -/* 06CBDC 8006BFDC 00008025 */ move $s0, $zero -/* 06CBE0 8006BFE0 14400011 */ bnez $v0, .L8006C028 -/* 06CBE4 8006BFE4 00000000 */ nop -/* 06CBE8 8006BFE8 0C01BAA4 */ jal get_settings -/* 06CBEC 8006BFEC 00000000 */ nop -/* 06CBF0 8006BFF0 904F0049 */ lbu $t7, 0x49($v0) -/* 06CBF4 8006BFF4 8C4E0004 */ lw $t6, 4($v0) -/* 06CBF8 8006BFF8 000FC080 */ sll $t8, $t7, 2 -/* 06CBFC 8006BFFC 01D8C821 */ addu $t9, $t6, $t8 -/* 06CC00 8006C000 8F270000 */ lw $a3, ($t9) -/* 06CC04 8006C004 00000000 */ nop -/* 06CC08 8006C008 30E90002 */ andi $t1, $a3, 2 -/* 06CC0C 8006C00C 11200002 */ beqz $t1, .L8006C018 -/* 06CC10 8006C010 30EA0004 */ andi $t2, $a3, 4 -/* 06CC14 8006C014 24100001 */ li $s0, 1 -.L8006C018: -/* 06CC18 8006C018 11400004 */ beqz $t2, .L8006C02C -/* 06CC1C 8006C01C 00000000 */ nop -/* 06CC20 8006C020 10000002 */ b .L8006C02C -/* 06CC24 8006C024 24100002 */ li $s0, 2 -.L8006C028: -/* 06CC28 8006C028 24100003 */ li $s0, 3 -.L8006C02C: -/* 06CC2C 8006C02C 0C02658B */ jal get_trophy_race_world_id -/* 06CC30 8006C030 00000000 */ nop -/* 06CC34 8006C034 10400002 */ beqz $v0, .L8006C040 -/* 06CC38 8006C038 00000000 */ nop -/* 06CC3C 8006C03C 24100004 */ li $s0, 4 -.L8006C040: -/* 06CC40 8006C040 0C027B1C */ jal is_in_adventure_two -/* 06CC44 8006C044 00000000 */ nop -/* 06CC48 8006C048 8FAD0028 */ lw $t5, 0x28($sp) -/* 06CC4C 8006C04C 10400005 */ beqz $v0, .L8006C064 -/* 06CC50 8006C050 020D7821 */ addu $t7, $s0, $t5 -/* 06CC54 8006C054 26100005 */ addiu $s0, $s0, 5 -/* 06CC58 8006C058 00105E00 */ sll $t3, $s0, 0x18 -/* 06CC5C 8006C05C 000B8603 */ sra $s0, $t3, 0x18 -/* 06CC60 8006C060 020D7821 */ addu $t7, $s0, $t5 -.L8006C064: -/* 06CC64 8006C064 81F00000 */ lb $s0, ($t7) -/* 06CC68 8006C068 0C0270C3 */ jal get_filtered_cheats -/* 06CC6C 8006C06C 00000000 */ nop -/* 06CC70 8006C070 00027180 */ sll $t6, $v0, 6 -/* 06CC74 8006C074 05C10002 */ bgez $t6, .L8006C080 -/* 06CC78 8006C078 00000000 */ nop -/* 06CC7C 8006C07C 24100009 */ li $s0, 9 -.L8006C080: -/* 06CC80 8006C080 0C01B683 */ jal func_8006DA0C -/* 06CC84 8006C084 00000000 */ nop -/* 06CC88 8006C088 24010001 */ li $at, 1 -/* 06CC8C 8006C08C 14410002 */ bne $v0, $at, .L8006C098 -/* 06CC90 8006C090 00000000 */ nop -/* 06CC94 8006C094 24100005 */ li $s0, 5 -.L8006C098: -/* 06CC98 8006C098 0C01DB16 */ jal load_asset_section_from_rom -/* 06CC9C 8006C09C 24040001 */ li $a0, 1 -/* 06CCA0 8006C0A0 3C088012 */ lui $t0, %hi(gTempAssetTable) # $t0, 0x8012 -/* 06CCA4 8006C0A4 25081160 */ addiu $t0, %lo(gTempAssetTable) # addiu $t0, $t0, 0x1160 -/* 06CCA8 8006C0A8 AD020000 */ sw $v0, ($t0) -/* 06CCAC 8006C0AC 8C580000 */ lw $t8, ($v0) -/* 06CCB0 8006C0B0 2404FFFF */ li $a0, -1 -/* 06CCB4 8006C0B4 00001825 */ move $v1, $zero -/* 06CCB8 8006C0B8 1098000A */ beq $a0, $t8, .L8006C0E4 -/* 06CCBC 8006C0BC 00403025 */ move $a2, $v0 -.L8006C0C0: -/* 06CCC0 8006C0C0 24630001 */ addiu $v1, $v1, 1 -/* 06CCC4 8006C0C4 0003CC00 */ sll $t9, $v1, 0x10 -/* 06CCC8 8006C0C8 00191C03 */ sra $v1, $t9, 0x10 -/* 06CCCC 8006C0CC 00035080 */ sll $t2, $v1, 2 -/* 06CCD0 8006C0D0 00CA5821 */ addu $t3, $a2, $t2 -/* 06CCD4 8006C0D4 8D6C0000 */ lw $t4, ($t3) -/* 06CCD8 8006C0D8 00000000 */ nop -/* 06CCDC 8006C0DC 148CFFF8 */ bne $a0, $t4, .L8006C0C0 -/* 06CCE0 8006C0E0 00000000 */ nop -.L8006C0E4: -/* 06CCE4 8006C0E4 2463FFFF */ addiu $v1, $v1, -1 -/* 06CCE8 8006C0E8 00036C00 */ sll $t5, $v1, 0x10 -/* 06CCEC 8006C0EC 000D7C03 */ sra $t7, $t5, 0x10 -/* 06CCF0 8006C0F0 020F082A */ slt $at, $s0, $t7 -/* 06CCF4 8006C0F4 14200002 */ bnez $at, .L8006C100 -/* 06CCF8 8006C0F8 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff -/* 06CCFC 8006C0FC 00008025 */ move $s0, $zero -.L8006C100: -/* 06CD00 8006C100 00107080 */ sll $t6, $s0, 2 -/* 06CD04 8006C104 00CE1021 */ addu $v0, $a2, $t6 -/* 06CD08 8006C108 8C430000 */ lw $v1, ($v0) -/* 06CD0C 8006C10C 8C580004 */ lw $t8, 4($v0) -/* 06CD10 8006C110 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 06CD14 8006C114 03032023 */ subu $a0, $t8, $v1 -/* 06CD18 8006C118 AFA40024 */ sw $a0, 0x24($sp) -/* 06CD1C 8006C11C 0C01C327 */ jal allocate_from_main_pool_safe -/* 06CD20 8006C120 AFA30020 */ sw $v1, 0x20($sp) -/* 06CD24 8006C124 3C038012 */ lui $v1, %hi(D_801211C0) # $v1, 0x8012 -/* 06CD28 8006C128 246311C0 */ addiu $v1, %lo(D_801211C0) # addiu $v1, $v1, 0x11c0 -/* 06CD2C 8006C12C 8FA70024 */ lw $a3, 0x24($sp) -/* 06CD30 8006C130 8FA60020 */ lw $a2, 0x20($sp) -/* 06CD34 8006C134 AC620000 */ sw $v0, ($v1) -/* 06CD38 8006C138 00002025 */ move $a0, $zero -/* 06CD3C 8006C13C 0C01DB9A */ jal load_asset_to_address -/* 06CD40 8006C140 00402825 */ move $a1, $v0 -/* 06CD44 8006C144 3C048012 */ lui $a0, %hi(gTempAssetTable) # $a0, 0x8012 -/* 06CD48 8006C148 8C841160 */ lw $a0, %lo(gTempAssetTable)($a0) -/* 06CD4C 8006C14C 0C01C450 */ jal free_from_memory_pool -/* 06CD50 8006C150 00000000 */ nop -/* 06CD54 8006C154 8FBF001C */ lw $ra, 0x1c($sp) -/* 06CD58 8006C158 8FB00018 */ lw $s0, 0x18($sp) -/* 06CD5C 8006C15C 03E00008 */ jr $ra -/* 06CD60 8006C160 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s b/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s index 9ede803c..1ec9a99d 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s @@ -24,10 +24,10 @@ glabel func_8006CCF0 /* 06D924 8006CD24 00000000 */ nop /* 06D928 8006CD28 8FA40044 */ lw $a0, 0x44($sp) .L8006CD2C: -/* 06D92C 8006CD2C 0C01A94A */ jal func_8006A528 +/* 06D92C 8006CD2C 0C01A94A */ jal get_buttons_held_from_player /* 06D930 8006CD30 00000000 */ nop /* 06D934 8006CD34 8FA40044 */ lw $a0, 0x44($sp) -/* 06D938 8006CD38 0C01A955 */ jal get_button_inputs_from_player +/* 06D938 8006CD38 0C01A955 */ jal get_buttons_pressed_from_player /* 06D93C 8006CD3C 02028025 */ or $s0, $s0, $v0 /* 06D940 8006CD40 8FB90044 */ lw $t9, 0x44($sp) /* 06D944 8006CD44 8FAF004C */ lw $t7, 0x4c($sp) @@ -134,14 +134,14 @@ glabel func_8006CCF0 /* 06DAB8 8006CEB8 0C006FC8 */ jal func_8001BF20 /* 06DABC 8006CEBC 00000000 */ nop /* 06DAC0 8006CEC0 8FB90050 */ lw $t9, 0x50($sp) -/* 06DAC4 8006CEC4 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06DAC8 8006CEC8 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06DACC 8006CECC 3C068012 */ lui $a2, %hi(D_80121218) # $a2, 0x8012 -/* 06DAD0 8006CED0 3C078012 */ lui $a3, %hi(D_80121228) # $a3, 0x8012 -/* 06DAD4 8006CED4 24E71228 */ addiu $a3, %lo(D_80121228) # addiu $a3, $a3, 0x1228 -/* 06DAD8 8006CED8 24C61218 */ addiu $a2, %lo(D_80121218) # addiu $a2, $a2, 0x1218 -/* 06DADC 8006CEDC 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 -/* 06DAE0 8006CEE0 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 +/* 06DAC4 8006CEC4 3C048012 */ lui $a0, %hi(gCurrDisplayList) # $a0, 0x8012 +/* 06DAC8 8006CEC8 3C058012 */ lui $a1, %hi(gCurrHudMat) # $a1, 0x8012 +/* 06DACC 8006CECC 3C068012 */ lui $a2, %hi(gCurrHudVerts) # $a2, 0x8012 +/* 06DAD0 8006CED0 3C078012 */ lui $a3, %hi(gCurrHudTris) # $a3, 0x8012 +/* 06DAD4 8006CED4 24E71228 */ addiu $a3, %lo(gCurrHudTris) # addiu $a3, $a3, 0x1228 +/* 06DAD8 8006CED8 24C61218 */ addiu $a2, %lo(gCurrHudVerts) # addiu $a2, $a2, 0x1218 +/* 06DADC 8006CEDC 24A51208 */ addiu $a1, %lo(gCurrHudMat) # addiu $a1, $a1, 0x1208 +/* 06DAE0 8006CEE0 248411F8 */ addiu $a0, %lo(gCurrDisplayList) # addiu $a0, $a0, 0x11f8 /* 06DAE4 8006CEE4 0C009355 */ jal func_80024D54 /* 06DAE8 8006CEE8 AFB90010 */ sw $t9, 0x10($sp) /* 06DAEC 8006CEEC 3C098012 */ lui $t1, %hi(D_801234EC) # $t1, 0x8012 @@ -153,15 +153,15 @@ glabel func_8006CCF0 /* 06DB04 8006CF04 01408025 */ move $s0, $t2 .L8006CF08: /* 06DB08 8006CF08 816B3516 */ lb $t3, %lo(D_80123516)($t3) -/* 06DB0C 8006CF0C 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 +/* 06DB0C 8006CF0C 3C048012 */ lui $a0, %hi(gCurrDisplayList) # $a0, 0x8012 /* 06DB10 8006CF10 11600044 */ beqz $t3, .L8006D024 -/* 06DB14 8006CF14 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06DB18 8006CF18 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06DB1C 8006CF1C 3C068012 */ lui $a2, %hi(D_80121218) # $a2, 0x8012 +/* 06DB14 8006CF14 248411F8 */ addiu $a0, %lo(gCurrDisplayList) # addiu $a0, $a0, 0x11f8 +/* 06DB18 8006CF18 3C058012 */ lui $a1, %hi(gCurrHudMat) # $a1, 0x8012 +/* 06DB1C 8006CF1C 3C068012 */ lui $a2, %hi(gCurrHudVerts) # $a2, 0x8012 /* 06DB20 8006CF20 8FA70050 */ lw $a3, 0x50($sp) -/* 06DB24 8006CF24 24C61218 */ addiu $a2, %lo(D_80121218) # addiu $a2, $a2, 0x1218 +/* 06DB24 8006CF24 24C61218 */ addiu $a2, %lo(gCurrHudVerts) # addiu $a2, $a2, 0x1218 /* 06DB28 8006CF28 0C0255CA */ jal func_80095728 -/* 06DB2C 8006CF2C 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 +/* 06DB2C 8006CF2C 24A51208 */ addiu $a1, %lo(gCurrHudMat) # addiu $a1, $a1, 0x1208 /* 06DB30 8006CF30 244CFFFF */ addiu $t4, $v0, -1 /* 06DB34 8006CF34 2D81000D */ sltiu $at, $t4, 0xd /* 06DB38 8006CF38 1020003A */ beqz $at, .L8006D024 @@ -261,9 +261,9 @@ glabel L8006D024 /* 06DC74 8006D074 818C3515 */ lb $t4, %lo(gIsPaused)($t4) /* 06DC78 8006D078 8FA50050 */ lw $a1, 0x50($sp) /* 06DC7C 8006D07C 11800050 */ beqz $t4, .L8006D1C0 -/* 06DC80 8006D080 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 +/* 06DC80 8006D080 3C048012 */ lui $a0, %hi(gCurrDisplayList) # $a0, 0x8012 /* 06DC84 8006D084 0C02505C */ jal func_80094170 -/* 06DC88 8006D088 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 +/* 06DC88 8006D088 248411F8 */ addiu $a0, %lo(gCurrDisplayList) # addiu $a0, $a0, 0x11f8 /* 06DC8C 8006D08C 244DFFFF */ addiu $t5, $v0, -1 /* 06DC90 8006D090 2DA1000C */ sltiu $at, $t5, 0xc /* 06DC94 8006D094 1020004A */ beqz $at, .L8006D1C0 @@ -353,23 +353,23 @@ glabel L8006D19C /* 06DDBC 8006D1BC 01608025 */ move $s0, $t3 .L8006D1C0: glabel L8006D1C0 -/* 06DDC0 8006D1C0 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 +/* 06DDC0 8006D1C0 3C048012 */ lui $a0, %hi(gCurrDisplayList) # $a0, 0x8012 /* 06DDC4 8006D1C4 0C01E015 */ jal func_80078054 -/* 06DDC8 8006D1C8 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06DDCC 8006D1CC 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 +/* 06DDC8 8006D1C8 248411F8 */ addiu $a0, %lo(gCurrDisplayList) # addiu $a0, $a0, 0x11f8 +/* 06DDCC 8006D1CC 3C048012 */ lui $a0, %hi(gCurrDisplayList) # $a0, 0x8012 /* 06DDD0 8006D1D0 0C01DC14 */ jal render_borders_for_multiplayer -/* 06DDD4 8006D1D4 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06DDD8 8006D1D8 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06DDDC 8006D1DC 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06DDE0 8006D1E0 3C068012 */ lui $a2, %hi(D_80121218) # $a2, 0x8012 +/* 06DDD4 8006D1D4 248411F8 */ addiu $a0, %lo(gCurrDisplayList) # addiu $a0, $a0, 0x11f8 +/* 06DDD8 8006D1D8 3C048012 */ lui $a0, %hi(gCurrDisplayList) # $a0, 0x8012 +/* 06DDDC 8006D1DC 3C058012 */ lui $a1, %hi(gCurrHudMat) # $a1, 0x8012 +/* 06DDE0 8006D1E0 3C068012 */ lui $a2, %hi(gCurrHudVerts) # $a2, 0x8012 /* 06DDE4 8006D1E4 8FA70050 */ lw $a3, 0x50($sp) -/* 06DDE8 8006D1E8 24C61218 */ addiu $a2, %lo(D_80121218) # addiu $a2, $a2, 0x1218 -/* 06DDEC 8006D1EC 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 +/* 06DDE8 8006D1E8 24C61218 */ addiu $a2, %lo(gCurrHudVerts) # addiu $a2, $a2, 0x1218 +/* 06DDEC 8006D1EC 24A51208 */ addiu $a1, %lo(gCurrHudMat) # addiu $a1, $a1, 0x1208 /* 06DDF0 8006D1F0 0C02A11D */ jal func_800A8474 -/* 06DDF4 8006D1F4 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06DDF8 8006D1F8 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 +/* 06DDF4 8006D1F4 248411F8 */ addiu $a0, %lo(gCurrDisplayList) # addiu $a0, $a0, 0x11f8 +/* 06DDF8 8006D1F8 3C048012 */ lui $a0, %hi(gCurrDisplayList) # $a0, 0x8012 /* 06DDFC 8006D1FC 0C01DC9A */ jal func_80077268 -/* 06DE00 8006D200 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 +/* 06DE00 8006D200 248411F8 */ addiu $a0, %lo(gCurrDisplayList) # addiu $a0, $a0, 0x11f8 /* 06DE04 8006D204 3C0C800E */ lui $t4, %hi(D_800DD39C) # $t4, 0x800e /* 06DE08 8006D208 818CD39C */ lb $t4, %lo(D_800DD39C)($t4) /* 06DE0C 8006D20C 00000000 */ nop diff --git a/asm/non_matchings/unknown_06B2B0/func_8006DCF8.s b/asm/non_matchings/unknown_06B2B0/func_8006DCF8.s index fed9fec3..cd37fc27 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006DCF8.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006DCF8.s @@ -25,14 +25,14 @@ glabel func_8006DCF8 .L8006DD40: /* 06E940 8006DD40 8FB80030 */ lw $t8, 0x30($sp) .L8006DD44: -/* 06E944 8006DD44 3C108012 */ lui $s0, %hi(D_801211F8) # $s0, 0x8012 -/* 06E948 8006DD48 261011F8 */ addiu $s0, %lo(D_801211F8) # addiu $s0, $s0, 0x11f8 -/* 06E94C 8006DD4C 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06E950 8006DD50 3C068012 */ lui $a2, %hi(D_80121218) # $a2, 0x8012 -/* 06E954 8006DD54 3C078012 */ lui $a3, %hi(D_80121228) # $a3, 0x8012 -/* 06E958 8006DD58 24E71228 */ addiu $a3, %lo(D_80121228) # addiu $a3, $a3, 0x1228 -/* 06E95C 8006DD5C 24C61218 */ addiu $a2, %lo(D_80121218) # addiu $a2, $a2, 0x1218 -/* 06E960 8006DD60 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 +/* 06E944 8006DD44 3C108012 */ lui $s0, %hi(gCurrDisplayList) # $s0, 0x8012 +/* 06E948 8006DD48 261011F8 */ addiu $s0, %lo(gCurrDisplayList) # addiu $s0, $s0, 0x11f8 +/* 06E94C 8006DD4C 3C058012 */ lui $a1, %hi(gCurrHudMat) # $a1, 0x8012 +/* 06E950 8006DD50 3C068012 */ lui $a2, %hi(gCurrHudVerts) # $a2, 0x8012 +/* 06E954 8006DD54 3C078012 */ lui $a3, %hi(gCurrHudTris) # $a3, 0x8012 +/* 06E958 8006DD58 24E71228 */ addiu $a3, %lo(gCurrHudTris) # addiu $a3, $a3, 0x1228 +/* 06E95C 8006DD5C 24C61218 */ addiu $a2, %lo(gCurrHudVerts) # addiu $a2, $a2, 0x1218 +/* 06E960 8006DD60 24A51208 */ addiu $a1, %lo(gCurrHudMat) # addiu $a1, $a1, 0x1208 /* 06E964 8006DD64 02002025 */ move $a0, $s0 /* 06E968 8006DD68 0C020569 */ jal menu_loop /* 06E96C 8006DD6C AFB80010 */ sw $t8, 0x10($sp) @@ -55,10 +55,10 @@ glabel func_8006DCF8 /* 06E9AC 8006DDAC 00000000 */ nop /* 06E9B0 8006DDB0 3C0D8012 */ lui $t5, %hi(D_801234E8) # $t5, 0x8012 /* 06E9B4 8006DDB4 8DAD34E8 */ lw $t5, %lo(D_801234E8)($t5) -/* 06E9B8 8006DDB8 3C0F8012 */ lui $t7, %hi(D_801211F0) # $t7, 0x8012 +/* 06E9B8 8006DDB8 3C0F8012 */ lui $t7, %hi(gDisplayLists) # $t7, 0x8012 /* 06E9BC 8006DDBC 000D7080 */ sll $t6, $t5, 2 /* 06E9C0 8006DDC0 01EE7821 */ addu $t7, $t7, $t6 -/* 06E9C4 8006DDC4 8DEF11F0 */ lw $t7, %lo(D_801211F0)($t7) +/* 06E9C4 8006DDC4 8DEF11F0 */ lw $t7, %lo(gDisplayLists)($t7) /* 06E9C8 8006DDC8 3C19E900 */ lui $t9, 0xe900 /* 06E9CC 8006DDCC AE0F0000 */ sw $t7, ($s0) /* 06E9D0 8006DDD0 25F80008 */ addiu $t8, $t7, 8 @@ -284,10 +284,10 @@ glabel L8006E0E0 /* 06ED10 8006E110 00000000 */ nop /* 06ED14 8006E114 3C0D8012 */ lui $t5, %hi(D_801234E8) # $t5, 0x8012 /* 06ED18 8006E118 8DAD34E8 */ lw $t5, %lo(D_801234E8)($t5) -/* 06ED1C 8006E11C 3C0F8012 */ lui $t7, %hi(D_801211F0) # $t7, 0x8012 +/* 06ED1C 8006E11C 3C0F8012 */ lui $t7, %hi(gDisplayLists) # $t7, 0x8012 /* 06ED20 8006E120 000D7080 */ sll $t6, $t5, 2 /* 06ED24 8006E124 01EE7821 */ addu $t7, $t7, $t6 -/* 06ED28 8006E128 8DEF11F0 */ lw $t7, %lo(D_801211F0)($t7) +/* 06ED28 8006E128 8DEF11F0 */ lw $t7, %lo(gDisplayLists)($t7) /* 06ED2C 8006E12C 8FAA002C */ lw $t2, 0x2c($sp) /* 06ED30 8006E130 AE0F0000 */ sw $t7, ($s0) /* 06ED34 8006E134 25F80008 */ addiu $t8, $t7, 8 @@ -355,10 +355,10 @@ glabel L8006E0E0 /* 06EE28 8006E228 00000000 */ nop /* 06EE2C 8006E22C 3C198012 */ lui $t9, %hi(D_801234E8) # $t9, 0x8012 /* 06EE30 8006E230 8F3934E8 */ lw $t9, %lo(D_801234E8)($t9) -/* 06EE34 8006E234 3C0D8012 */ lui $t5, %hi(D_801211F0) # $t5, 0x8012 +/* 06EE34 8006E234 3C0D8012 */ lui $t5, %hi(gDisplayLists) # $t5, 0x8012 /* 06EE38 8006E238 00196080 */ sll $t4, $t9, 2 /* 06EE3C 8006E23C 01AC6821 */ addu $t5, $t5, $t4 -/* 06EE40 8006E240 8DAD11F0 */ lw $t5, %lo(D_801211F0)($t5) +/* 06EE40 8006E240 8DAD11F0 */ lw $t5, %lo(gDisplayLists)($t5) /* 06EE44 8006E244 3C0FE900 */ lui $t7, 0xe900 /* 06EE48 8006E248 AE0D0000 */ sw $t5, ($s0) /* 06EE4C 8006E24C 25AE0008 */ addiu $t6, $t5, 8 diff --git a/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s b/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s deleted file mode 100644 index 97cff690..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s +++ /dev/null @@ -1,130 +0,0 @@ -glabel func_8006E3BC -/* 06EFBC 8006E3BC 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 06EFC0 8006E3C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 06EFC4 8006E3C4 0C01A9AC */ jal func_8006A6B0 -/* 06EFC8 8006E3C8 00000000 */ nop -/* 06EFCC 8006E3CC 0C027055 */ jal reset_character_id_slots -/* 06EFD0 8006E3D0 00000000 */ nop -/* 06EFD4 8006E3D4 27A40018 */ addiu $a0, $sp, 0x18 -/* 06EFD8 8006E3D8 0C01AC89 */ jal get_number_of_levels_and_worlds -/* 06EFDC 8006E3DC 27A5001C */ addiu $a1, $sp, 0x1c -/* 06EFE0 8006E3E0 8FA70018 */ lw $a3, 0x18($sp) -/* 06EFE4 8006E3E4 8FAF001C */ lw $t7, 0x1c($sp) -/* 06EFE8 8006E3E8 24030118 */ li $v1, 280 -/* 06EFEC 8006E3EC 00077080 */ sll $t6, $a3, 2 -/* 06EFF0 8006E3F0 006E3021 */ addu $a2, $v1, $t6 -/* 06EFF4 8006E3F4 000FC040 */ sll $t8, $t7, 1 -/* 06EFF8 8006E3F8 00D84021 */ addu $t0, $a2, $t8 -/* 06EFFC 8006E3FC 00071040 */ sll $v0, $a3, 1 -/* 06F000 8006E400 01024821 */ addu $t1, $t0, $v0 -/* 06F004 8006E404 01225021 */ addu $t2, $t1, $v0 -/* 06F008 8006E408 01425821 */ addu $t3, $t2, $v0 -/* 06F00C 8006E40C 01626021 */ addu $t4, $t3, $v0 -/* 06F010 8006E410 01826821 */ addu $t5, $t4, $v0 -/* 06F014 8006E414 01A2F821 */ addu $ra, $t5, $v0 -/* 06F018 8006E418 03E2C821 */ addu $t9, $ra, $v0 -/* 06F01C 8006E41C 03227821 */ addu $t7, $t9, $v0 -/* 06F020 8006E420 AFB90044 */ sw $t9, 0x44($sp) -/* 06F024 8006E424 01E2C021 */ addu $t8, $t7, $v0 -/* 06F028 8006E428 0302C821 */ addu $t9, $t8, $v0 -/* 06F02C 8006E42C 03227021 */ addu $t6, $t9, $v0 -/* 06F030 8006E430 01C22021 */ addu $a0, $t6, $v0 -/* 06F034 8006E434 AFBF0040 */ sw $ra, 0x40($sp) -/* 06F038 8006E438 AFAF0048 */ sw $t7, 0x48($sp) -/* 06F03C 8006E43C AFB8004C */ sw $t8, 0x4c($sp) -/* 06F040 8006E440 AFB90050 */ sw $t9, 0x50($sp) -/* 06F044 8006E444 AFAE0054 */ sw $t6, 0x54($sp) -/* 06F048 8006E448 AFA40058 */ sw $a0, 0x58($sp) -/* 06F04C 8006E44C AFAD003C */ sw $t5, 0x3c($sp) -/* 06F050 8006E450 AFAC0038 */ sw $t4, 0x38($sp) -/* 06F054 8006E454 AFAB0034 */ sw $t3, 0x34($sp) -/* 06F058 8006E458 AFAA0030 */ sw $t2, 0x30($sp) -/* 06F05C 8006E45C AFA9002C */ sw $t1, 0x2c($sp) -/* 06F060 8006E460 AFA80028 */ sw $t0, 0x28($sp) -/* 06F064 8006E464 AFA60024 */ sw $a2, 0x24($sp) -/* 06F068 8006E468 AFA30020 */ sw $v1, 0x20($sp) -/* 06F06C 8006E46C 0C01C327 */ jal allocate_from_main_pool_safe -/* 06F070 8006E470 2405FFFF */ li $a1, -1 -/* 06F074 8006E474 8FB80020 */ lw $t8, 0x20($sp) -/* 06F078 8006E478 3C048012 */ lui $a0, %hi(gSettingsPtr) # $a0, 0x8012 -/* 06F07C 8006E47C 24843510 */ addiu $a0, %lo(gSettingsPtr) # addiu $a0, $a0, 0x3510 -/* 06F080 8006E480 AC820000 */ sw $v0, ($a0) -/* 06F084 8006E484 0302C821 */ addu $t9, $t8, $v0 -/* 06F088 8006E488 AC590004 */ sw $t9, 4($v0) -/* 06F08C 8006E48C 8C830000 */ lw $v1, ($a0) -/* 06F090 8006E490 8FAE0024 */ lw $t6, 0x24($sp) -/* 06F094 8006E494 3C01800E */ lui $at, %hi(D_800DD37C) # $at, 0x800e -/* 06F098 8006E498 01C37821 */ addu $t7, $t6, $v1 -/* 06F09C 8006E49C AC6F0000 */ sw $t7, ($v1) -/* 06F0A0 8006E4A0 8C980000 */ lw $t8, ($a0) -/* 06F0A4 8006E4A4 00000000 */ nop -/* 06F0A8 8006E4A8 A7000014 */ sh $zero, 0x14($t8) -/* 06F0AC 8006E4AC 8C830000 */ lw $v1, ($a0) -/* 06F0B0 8006E4B0 8FB90028 */ lw $t9, 0x28($sp) -/* 06F0B4 8006E4B4 00000000 */ nop -/* 06F0B8 8006E4B8 03237021 */ addu $t6, $t9, $v1 -/* 06F0BC 8006E4BC AC6E0018 */ sw $t6, 0x18($v1) -/* 06F0C0 8006E4C0 8C830000 */ lw $v1, ($a0) -/* 06F0C4 8006E4C4 8FAF002C */ lw $t7, 0x2c($sp) -/* 06F0C8 8006E4C8 00000000 */ nop -/* 06F0CC 8006E4CC 01E3C021 */ addu $t8, $t7, $v1 -/* 06F0D0 8006E4D0 AC78001C */ sw $t8, 0x1c($v1) -/* 06F0D4 8006E4D4 8C830000 */ lw $v1, ($a0) -/* 06F0D8 8006E4D8 8FB90030 */ lw $t9, 0x30($sp) -/* 06F0DC 8006E4DC 00000000 */ nop -/* 06F0E0 8006E4E0 03237021 */ addu $t6, $t9, $v1 -/* 06F0E4 8006E4E4 AC6E0020 */ sw $t6, 0x20($v1) -/* 06F0E8 8006E4E8 8C830000 */ lw $v1, ($a0) -/* 06F0EC 8006E4EC 8FAF0034 */ lw $t7, 0x34($sp) -/* 06F0F0 8006E4F0 00000000 */ nop -/* 06F0F4 8006E4F4 01E3C021 */ addu $t8, $t7, $v1 -/* 06F0F8 8006E4F8 AC780024 */ sw $t8, 0x24($v1) -/* 06F0FC 8006E4FC 8C830000 */ lw $v1, ($a0) -/* 06F100 8006E500 8FB90038 */ lw $t9, 0x38($sp) -/* 06F104 8006E504 00000000 */ nop -/* 06F108 8006E508 03237021 */ addu $t6, $t9, $v1 -/* 06F10C 8006E50C AC6E0028 */ sw $t6, 0x28($v1) -/* 06F110 8006E510 8C830000 */ lw $v1, ($a0) -/* 06F114 8006E514 8FAF003C */ lw $t7, 0x3c($sp) -/* 06F118 8006E518 00000000 */ nop -/* 06F11C 8006E51C 01E3C021 */ addu $t8, $t7, $v1 -/* 06F120 8006E520 AC78002C */ sw $t8, 0x2c($v1) -/* 06F124 8006E524 8C830000 */ lw $v1, ($a0) -/* 06F128 8006E528 8FB90040 */ lw $t9, 0x40($sp) -/* 06F12C 8006E52C 00000000 */ nop -/* 06F130 8006E530 03237021 */ addu $t6, $t9, $v1 -/* 06F134 8006E534 AC6E0030 */ sw $t6, 0x30($v1) -/* 06F138 8006E538 8C830000 */ lw $v1, ($a0) -/* 06F13C 8006E53C 8FAF0044 */ lw $t7, 0x44($sp) -/* 06F140 8006E540 00000000 */ nop -/* 06F144 8006E544 01E3C021 */ addu $t8, $t7, $v1 -/* 06F148 8006E548 AC780034 */ sw $t8, 0x34($v1) -/* 06F14C 8006E54C 8C830000 */ lw $v1, ($a0) -/* 06F150 8006E550 8FB90048 */ lw $t9, 0x48($sp) -/* 06F154 8006E554 00000000 */ nop -/* 06F158 8006E558 03237021 */ addu $t6, $t9, $v1 -/* 06F15C 8006E55C AC6E0038 */ sw $t6, 0x38($v1) -/* 06F160 8006E560 8C830000 */ lw $v1, ($a0) -/* 06F164 8006E564 8FAF004C */ lw $t7, 0x4c($sp) -/* 06F168 8006E568 00000000 */ nop -/* 06F16C 8006E56C 01E3C021 */ addu $t8, $t7, $v1 -/* 06F170 8006E570 AC78003C */ sw $t8, 0x3c($v1) -/* 06F174 8006E574 8C830000 */ lw $v1, ($a0) -/* 06F178 8006E578 8FB90050 */ lw $t9, 0x50($sp) -/* 06F17C 8006E57C 00000000 */ nop -/* 06F180 8006E580 03237021 */ addu $t6, $t9, $v1 -/* 06F184 8006E584 AC6E0040 */ sw $t6, 0x40($v1) -/* 06F188 8006E588 8C830000 */ lw $v1, ($a0) -/* 06F18C 8006E58C 8FAF0054 */ lw $t7, 0x54($sp) -/* 06F190 8006E590 3C198012 */ lui $t9, %hi(D_80121250) # $t9, 0x8012 -/* 06F194 8006E594 01E3C021 */ addu $t8, $t7, $v1 -/* 06F198 8006E598 AC780044 */ sw $t8, 0x44($v1) -/* 06F19C 8006E59C 8C8E0000 */ lw $t6, ($a0) -/* 06F1A0 8006E5A0 27391250 */ addiu $t9, %lo(D_80121250) # addiu $t9, $t9, 0x1250 -/* 06F1A4 8006E5A4 ADD9004C */ sw $t9, 0x4c($t6) -/* 06F1A8 8006E5A8 8FBF0014 */ lw $ra, 0x14($sp) -/* 06F1AC 8006E5AC 240F0107 */ li $t7, 263 -/* 06F1B0 8006E5B0 AC2FD37C */ sw $t7, %lo(D_800DD37C)($at) -/* 06F1B4 8006E5B4 03E00008 */ jr $ra -/* 06F1B8 8006E5B8 27BD0060 */ addiu $sp, $sp, 0x60 - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006E770.s b/asm/non_matchings/unknown_06B2B0/func_8006E770.s deleted file mode 100644 index 188f77c9..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006E770.s +++ /dev/null @@ -1,148 +0,0 @@ -glabel func_8006E770 -/* 06F370 8006E770 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 06F374 8006E774 AFB10018 */ sw $s1, 0x18($sp) -/* 06F378 8006E778 AFB00014 */ sw $s0, 0x14($sp) -/* 06F37C 8006E77C 00808025 */ move $s0, $a0 -/* 06F380 8006E780 00A08825 */ move $s1, $a1 -/* 06F384 8006E784 AFBF001C */ sw $ra, 0x1c($sp) -/* 06F388 8006E788 27A5003C */ addiu $a1, $sp, 0x3c -/* 06F38C 8006E78C 0C01AC89 */ jal get_number_of_levels_and_worlds -/* 06F390 8006E790 27A40038 */ addiu $a0, $sp, 0x38 -/* 06F394 8006E794 0C0078A7 */ jal get_misc_asset -/* 06F398 8006E798 24040017 */ li $a0, 23 -/* 06F39C 8006E79C 00004025 */ move $t0, $zero -/* 06F3A0 8006E7A0 240C0003 */ li $t4, 3 -/* 06F3A4 8006E7A4 2409000C */ li $t1, 12 -/* 06F3A8 8006E7A8 8FAE0038 */ lw $t6, 0x38($sp) -.L8006E7AC: -/* 06F3AC 8006E7AC 00003825 */ move $a3, $zero -/* 06F3B0 8006E7B0 19C00070 */ blez $t6, .L8006E974 -/* 06F3B4 8006E7B4 322A0001 */ andi $t2, $s1, 1 -/* 06F3B8 8006E7B8 31C30001 */ andi $v1, $t6, 1 -/* 06F3BC 8006E7BC 1060001F */ beqz $v1, .L8006E83C -/* 06F3C0 8006E7C0 322B0002 */ andi $t3, $s1, 2 -/* 06F3C4 8006E7C4 1140000C */ beqz $t2, .L8006E7F8 -/* 06F3C8 8006E7C8 00081880 */ sll $v1, $t0, 2 -/* 06F3CC 8006E7CC 00037840 */ sll $t7, $v1, 1 -/* 06F3D0 8006E7D0 004F2821 */ addu $a1, $v0, $t7 -/* 06F3D4 8006E7D4 02032021 */ addu $a0, $s0, $v1 -/* 06F3D8 8006E7D8 8C990018 */ lw $t9, 0x18($a0) -/* 06F3DC 8006E7DC 94B80006 */ lhu $t8, 6($a1) -/* 06F3E0 8006E7E0 00000000 */ nop -/* 06F3E4 8006E7E4 A7380000 */ sh $t8, ($t9) -/* 06F3E8 8006E7E8 8C8E0024 */ lw $t6, 0x24($a0) -/* 06F3EC 8006E7EC 94AD0004 */ lhu $t5, 4($a1) -/* 06F3F0 8006E7F0 00000000 */ nop -/* 06F3F4 8006E7F4 A5CD0000 */ sh $t5, ($t6) -.L8006E7F8: -/* 06F3F8 8006E7F8 1160000C */ beqz $t3, .L8006E82C -/* 06F3FC 8006E7FC 00081880 */ sll $v1, $t0, 2 -/* 06F400 8006E800 00037840 */ sll $t7, $v1, 1 -/* 06F404 8006E804 004F2821 */ addu $a1, $v0, $t7 -/* 06F408 8006E808 02032021 */ addu $a0, $s0, $v1 -/* 06F40C 8006E80C 8C990030 */ lw $t9, 0x30($a0) -/* 06F410 8006E810 94B80002 */ lhu $t8, 2($a1) -/* 06F414 8006E814 00000000 */ nop -/* 06F418 8006E818 A7380000 */ sh $t8, ($t9) -/* 06F41C 8006E81C 8C8E003C */ lw $t6, 0x3c($a0) -/* 06F420 8006E820 94AD0000 */ lhu $t5, ($a1) -/* 06F424 8006E824 00000000 */ nop -/* 06F428 8006E828 A5CD0000 */ sh $t5, ($t6) -.L8006E82C: -/* 06F42C 8006E82C 8FAF0038 */ lw $t7, 0x38($sp) -/* 06F430 8006E830 24070001 */ li $a3, 1 -/* 06F434 8006E834 10EF004F */ beq $a3, $t7, .L8006E974 -/* 06F438 8006E838 00000000 */ nop -.L8006E83C: -/* 06F43C 8006E83C 11400011 */ beqz $t2, .L8006E884 -/* 06F440 8006E840 00000000 */ nop -/* 06F444 8006E844 00E90019 */ multu $a3, $t1 -/* 06F448 8006E848 00081880 */ sll $v1, $t0, 2 -/* 06F44C 8006E84C 02032021 */ addu $a0, $s0, $v1 -/* 06F450 8006E850 8C8F0018 */ lw $t7, 0x18($a0) -/* 06F454 8006E854 00072840 */ sll $a1, $a3, 1 -/* 06F458 8006E858 0000C012 */ mflo $t8 -/* 06F45C 8006E85C 0303C821 */ addu $t9, $t8, $v1 -/* 06F460 8006E860 00196840 */ sll $t5, $t9, 1 -/* 06F464 8006E864 004D3021 */ addu $a2, $v0, $t5 -/* 06F468 8006E868 94CE0006 */ lhu $t6, 6($a2) -/* 06F46C 8006E86C 01E5C021 */ addu $t8, $t7, $a1 -/* 06F470 8006E870 A70E0000 */ sh $t6, ($t8) -/* 06F474 8006E874 8C8D0024 */ lw $t5, 0x24($a0) -/* 06F478 8006E878 94D90004 */ lhu $t9, 4($a2) -/* 06F47C 8006E87C 01A57821 */ addu $t7, $t5, $a1 -/* 06F480 8006E880 A5F90000 */ sh $t9, ($t7) -.L8006E884: -/* 06F484 8006E884 11600011 */ beqz $t3, .L8006E8CC -/* 06F488 8006E888 00000000 */ nop -/* 06F48C 8006E88C 00E90019 */ multu $a3, $t1 -/* 06F490 8006E890 00081880 */ sll $v1, $t0, 2 -/* 06F494 8006E894 02032021 */ addu $a0, $s0, $v1 -/* 06F498 8006E898 8C8F0030 */ lw $t7, 0x30($a0) -/* 06F49C 8006E89C 00072840 */ sll $a1, $a3, 1 -/* 06F4A0 8006E8A0 00007012 */ mflo $t6 -/* 06F4A4 8006E8A4 01C3C021 */ addu $t8, $t6, $v1 -/* 06F4A8 8006E8A8 00186840 */ sll $t5, $t8, 1 -/* 06F4AC 8006E8AC 004D3021 */ addu $a2, $v0, $t5 -/* 06F4B0 8006E8B0 94D90002 */ lhu $t9, 2($a2) -/* 06F4B4 8006E8B4 01E57021 */ addu $t6, $t7, $a1 -/* 06F4B8 8006E8B8 A5D90000 */ sh $t9, ($t6) -/* 06F4BC 8006E8BC 8C8D003C */ lw $t5, 0x3c($a0) -/* 06F4C0 8006E8C0 94D80000 */ lhu $t8, ($a2) -/* 06F4C4 8006E8C4 01A57821 */ addu $t7, $t5, $a1 -/* 06F4C8 8006E8C8 A5F80000 */ sh $t8, ($t7) -.L8006E8CC: -/* 06F4CC 8006E8CC 11400012 */ beqz $t2, .L8006E918 -/* 06F4D0 8006E8D0 00000000 */ nop -/* 06F4D4 8006E8D4 00E90019 */ multu $a3, $t1 -/* 06F4D8 8006E8D8 00081880 */ sll $v1, $t0, 2 -/* 06F4DC 8006E8DC 02032021 */ addu $a0, $s0, $v1 -/* 06F4E0 8006E8E0 8C8F0018 */ lw $t7, 0x18($a0) -/* 06F4E4 8006E8E4 00072840 */ sll $a1, $a3, 1 -/* 06F4E8 8006E8E8 0000C812 */ mflo $t9 -/* 06F4EC 8006E8EC 03237021 */ addu $t6, $t9, $v1 -/* 06F4F0 8006E8F0 000E6840 */ sll $t5, $t6, 1 -/* 06F4F4 8006E8F4 004D3021 */ addu $a2, $v0, $t5 -/* 06F4F8 8006E8F8 94D8001E */ lhu $t8, 0x1e($a2) -/* 06F4FC 8006E8FC 01E5C821 */ addu $t9, $t7, $a1 -/* 06F500 8006E900 A7380002 */ sh $t8, 2($t9) -/* 06F504 8006E904 8C8D0024 */ lw $t5, 0x24($a0) -/* 06F508 8006E908 94CE001C */ lhu $t6, 0x1c($a2) -/* 06F50C 8006E90C 01A57821 */ addu $t7, $t5, $a1 -/* 06F510 8006E910 24C60018 */ addiu $a2, $a2, 0x18 -/* 06F514 8006E914 A5EE0002 */ sh $t6, 2($t7) -.L8006E918: -/* 06F518 8006E918 11600013 */ beqz $t3, .L8006E968 -/* 06F51C 8006E91C 8FAE0038 */ lw $t6, 0x38($sp) -/* 06F520 8006E920 00E90019 */ multu $a3, $t1 -/* 06F524 8006E924 00081880 */ sll $v1, $t0, 2 -/* 06F528 8006E928 02032021 */ addu $a0, $s0, $v1 -/* 06F52C 8006E92C 8C8F0030 */ lw $t7, 0x30($a0) -/* 06F530 8006E930 00072840 */ sll $a1, $a3, 1 -/* 06F534 8006E934 0000C012 */ mflo $t8 -/* 06F538 8006E938 0303C821 */ addu $t9, $t8, $v1 -/* 06F53C 8006E93C 00196840 */ sll $t5, $t9, 1 -/* 06F540 8006E940 004D3021 */ addu $a2, $v0, $t5 -/* 06F544 8006E944 94CE001A */ lhu $t6, 0x1a($a2) -/* 06F548 8006E948 01E5C021 */ addu $t8, $t7, $a1 -/* 06F54C 8006E94C A70E0002 */ sh $t6, 2($t8) -/* 06F550 8006E950 8C8D003C */ lw $t5, 0x3c($a0) -/* 06F554 8006E954 94D90018 */ lhu $t9, 0x18($a2) -/* 06F558 8006E958 01A57821 */ addu $t7, $t5, $a1 -/* 06F55C 8006E95C 24C60018 */ addiu $a2, $a2, 0x18 -/* 06F560 8006E960 A5F90002 */ sh $t9, 2($t7) -/* 06F564 8006E964 8FAE0038 */ lw $t6, 0x38($sp) -.L8006E968: -/* 06F568 8006E968 24E70002 */ addiu $a3, $a3, 2 -/* 06F56C 8006E96C 14EEFFB3 */ bne $a3, $t6, .L8006E83C -/* 06F570 8006E970 00000000 */ nop -.L8006E974: -/* 06F574 8006E974 25080001 */ addiu $t0, $t0, 1 -/* 06F578 8006E978 150CFF8C */ bne $t0, $t4, .L8006E7AC -/* 06F57C 8006E97C 8FAE0038 */ lw $t6, 0x38($sp) -/* 06F580 8006E980 8FBF001C */ lw $ra, 0x1c($sp) -/* 06F584 8006E984 8FB00014 */ lw $s0, 0x14($sp) -/* 06F588 8006E988 8FB10018 */ lw $s1, 0x18($sp) -/* 06F58C 8006E98C 03E00008 */ jr $ra -/* 06F590 8006E990 27BD0048 */ addiu $sp, $sp, 0x48 - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006ECFC.s b/asm/non_matchings/unknown_06B2B0/func_8006ECFC.s index 990fb43b..ff75ab6a 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006ECFC.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006ECFC.s @@ -12,8 +12,8 @@ glabel func_8006ECFC /* 06F924 8006ED24 00002025 */ move $a0, $zero /* 06F928 8006ED28 0C01C42C */ jal set_free_queue_state /* 06F92C 8006ED2C AFA50048 */ sw $a1, 0x48($sp) -/* 06F930 8006ED30 3C118012 */ lui $s1, %hi(D_801211F0) # $s1, 0x8012 -/* 06F934 8006ED34 263111F0 */ addiu $s1, %lo(D_801211F0) # addiu $s1, $s1, 0x11f0 +/* 06F930 8006ED30 3C118012 */ lui $s1, %hi(gDisplayLists) # $s1, 0x8012 +/* 06F934 8006ED34 263111F0 */ addiu $s1, %lo(gDisplayLists) # addiu $s1, $s1, 0x11f0 /* 06F938 8006ED38 8E240000 */ lw $a0, ($s1) /* 06F93C 8006ED3C 0C01C450 */ jal free_from_memory_pool /* 06F940 8006ED40 00000000 */ nop @@ -21,19 +21,19 @@ glabel func_8006ECFC /* 06F948 8006ED48 0C01C450 */ jal free_from_memory_pool /* 06F94C 8006ED4C 00000000 */ nop /* 06F950 8006ED50 8FA20048 */ lw $v0, 0x48($sp) -/* 06F954 8006ED54 3C18800E */ lui $t8, %hi(D_800DD3E0) # $t8, 0x800e -/* 06F958 8006ED58 2718D3E0 */ addiu $t8, %lo(D_800DD3E0) # addiu $t8, $t8, -0x2c20 -/* 06F95C 8006ED5C 3C19800E */ lui $t9, %hi(D_800DD3B0) # $t9, 0x800e +/* 06F954 8006ED54 3C18800E */ lui $t8, %hi(gNumHudTrisPerPlayer) # $t8, 0x800e +/* 06F958 8006ED58 2718D3E0 */ addiu $t8, %lo(gNumHudTrisPerPlayer) # addiu $t8, $t8, -0x2c20 +/* 06F95C 8006ED5C 3C19800E */ lui $t9, %hi(gNumF3dCmdsPerPlayer) # $t9, 0x800e /* 06F960 8006ED60 00027880 */ sll $t7, $v0, 2 /* 06F964 8006ED64 01F84021 */ addu $t0, $t7, $t8 -/* 06F968 8006ED68 2739D3B0 */ addiu $t9, %lo(D_800DD3B0) # addiu $t9, $t9, -0x2c50 +/* 06F968 8006ED68 2739D3B0 */ addiu $t9, %lo(gNumF3dCmdsPerPlayer) # addiu $t9, $t9, -0x2c50 /* 06F96C 8006ED6C 01F91821 */ addu $v1, $t7, $t9 -/* 06F970 8006ED70 3C0C800E */ lui $t4, %hi(D_800DD3D0) # $t4, 0x800e -/* 06F974 8006ED74 3C0D800E */ lui $t5, %hi(D_800DD3C0) # $t5, 0x800e +/* 06F970 8006ED70 3C0C800E */ lui $t4, %hi(gNumHudMatPerPlayer) # $t4, 0x800e +/* 06F974 8006ED74 3C0D800E */ lui $t5, %hi(gNumHudVertsPerPlayer) # $t5, 0x800e /* 06F978 8006ED78 8C780000 */ lw $t8, ($v1) /* 06F97C 8006ED7C 8D0E0000 */ lw $t6, ($t0) -/* 06F980 8006ED80 25ADD3C0 */ addiu $t5, %lo(D_800DD3C0) # addiu $t5, $t5, -0x2c40 -/* 06F984 8006ED84 258CD3D0 */ addiu $t4, %lo(D_800DD3D0) # addiu $t4, $t4, -0x2c30 +/* 06F980 8006ED80 25ADD3C0 */ addiu $t5, %lo(gNumHudVertsPerPlayer) # addiu $t5, $t5, -0x2c40 +/* 06F984 8006ED84 258CD3D0 */ addiu $t4, %lo(gNumHudMatPerPlayer) # addiu $t4, $t4, -0x2c30 /* 06F988 8006ED88 01EC3821 */ addu $a3, $t7, $t4 /* 06F98C 8006ED8C 01ED4821 */ addu $t1, $t7, $t5 /* 06F990 8006ED90 0018C8C0 */ sll $t9, $t8, 3 @@ -92,76 +92,76 @@ glabel func_8006ECFC /* 06FA54 8006EE54 8FAD002C */ lw $t5, 0x2c($sp) /* 06FA58 8006EE58 8FAE0028 */ lw $t6, 0x28($sp) /* 06FA5C 8006EE5C 8DA20000 */ lw $v0, ($t5) -/* 06FA60 8006EE60 3C018012 */ lui $at, %hi(D_80121200) # $at, 0x8012 +/* 06FA60 8006EE60 3C018012 */ lui $at, %hi(gHudMatrices) # $at, 0x8012 /* 06FA64 8006EE64 000218C0 */ sll $v1, $v0, 3 /* 06FA68 8006EE68 00706021 */ addu $t4, $v1, $s0 -/* 06FA6C 8006EE6C 3C0A8012 */ lui $t2, %hi(D_80121200) # $t2, 0x8012 -/* 06FA70 8006EE70 AC2C1200 */ sw $t4, %lo(D_80121200)($at) +/* 06FA6C 8006EE6C 3C0A8012 */ lui $t2, %hi(gHudMatrices) # $t2, 0x8012 +/* 06FA70 8006EE70 AC2C1200 */ sw $t4, %lo(gHudMatrices)($at) /* 06FA74 8006EE74 8DC60000 */ lw $a2, ($t6) -/* 06FA78 8006EE78 254A1200 */ addiu $t2, %lo(D_80121200) # addiu $t2, $t2, 0x1200 +/* 06FA78 8006EE78 254A1200 */ addiu $t2, %lo(gHudMatrices) # addiu $t2, $t2, 0x1200 /* 06FA7C 8006EE7C 8D4F0000 */ lw $t7, ($t2) /* 06FA80 8006EE80 00063980 */ sll $a3, $a2, 6 /* 06FA84 8006EE84 8FB90024 */ lw $t9, 0x24($sp) -/* 06FA88 8006EE88 3C018012 */ lui $at, %hi(D_80121220) # $at, 0x8012 +/* 06FA88 8006EE88 3C018012 */ lui $at, %hi(gHudTriangles) # $at, 0x8012 /* 06FA8C 8006EE8C 00EFC021 */ addu $t8, $a3, $t7 -/* 06FA90 8006EE90 3C0B8012 */ lui $t3, %hi(D_80121220) # $t3, 0x8012 -/* 06FA94 8006EE94 AC381220 */ sw $t8, %lo(D_80121220)($at) +/* 06FA90 8006EE90 3C0B8012 */ lui $t3, %hi(gHudTriangles) # $t3, 0x8012 +/* 06FA94 8006EE94 AC381220 */ sw $t8, %lo(gHudTriangles)($at) /* 06FA98 8006EE98 8F280000 */ lw $t0, ($t9) -/* 06FA9C 8006EE9C 256B1220 */ addiu $t3, %lo(D_80121220) # addiu $t3, $t3, 0x1220 +/* 06FA9C 8006EE9C 256B1220 */ addiu $t3, %lo(gHudTriangles) # addiu $t3, $t3, 0x1220 /* 06FAA0 8006EEA0 8D6D0000 */ lw $t5, ($t3) /* 06FAA4 8006EEA4 00084900 */ sll $t1, $t0, 4 -/* 06FAA8 8006EEA8 3C018012 */ lui $at, %hi(D_80121210) # $at, 0x8012 +/* 06FAA8 8006EEA8 3C018012 */ lui $at, %hi(gHudVertices) # $at, 0x8012 /* 06FAAC 8006EEAC 012D6021 */ addu $t4, $t1, $t5 -/* 06FAB0 8006EEB0 AC2C1210 */ sw $t4, %lo(D_80121210)($at) -/* 06FAB4 8006EEB4 3C018012 */ lui $at, %hi(D_80121200+4) # $at, 0x8012 +/* 06FAB0 8006EEB0 AC2C1210 */ sw $t4, %lo(gHudVertices)($at) +/* 06FAB4 8006EEB4 3C018012 */ lui $at, %hi(gHudMatrices+4) # $at, 0x8012 /* 06FAB8 8006EEB8 00657021 */ addu $t6, $v1, $a1 -/* 06FABC 8006EEBC AC2E1204 */ sw $t6, %lo(D_80121200+4)($at) +/* 06FABC 8006EEBC AC2E1204 */ sw $t6, %lo(gHudMatrices+4)($at) /* 06FAC0 8006EEC0 8D4F0004 */ lw $t7, 4($t2) -/* 06FAC4 8006EEC4 3C018012 */ lui $at, %hi(D_80121220+4) # $at, 0x8012 +/* 06FAC4 8006EEC4 3C018012 */ lui $at, %hi(gHudTriangles+4) # $at, 0x8012 /* 06FAC8 8006EEC8 00EFC021 */ addu $t8, $a3, $t7 -/* 06FACC 8006EECC AC381224 */ sw $t8, %lo(D_80121220+4)($at) +/* 06FACC 8006EECC AC381224 */ sw $t8, %lo(gHudTriangles+4)($at) /* 06FAD0 8006EED0 8D790004 */ lw $t9, 4($t3) -/* 06FAD4 8006EED4 3C018012 */ lui $at, %hi(D_80121210+4) # $at, 0x8012 +/* 06FAD4 8006EED4 3C018012 */ lui $at, %hi(gHudVertices+4) # $at, 0x8012 /* 06FAD8 8006EED8 01396821 */ addu $t5, $t1, $t9 -/* 06FADC 8006EEDC AC2D1214 */ sw $t5, %lo(D_80121210+4)($at) -/* 06FAE0 8006EEE0 3C018012 */ lui $at, %hi(D_80123528) # $at, 0x8012 -/* 06FAE4 8006EEE4 AC223528 */ sw $v0, %lo(D_80123528)($at) -/* 06FAE8 8006EEE8 3C018012 */ lui $at, %hi(D_8012352C) # $at, 0x8012 -/* 06FAEC 8006EEEC AC26352C */ sw $a2, %lo(D_8012352C)($at) +/* 06FADC 8006EEDC AC2D1214 */ sw $t5, %lo(gHudVertices+4)($at) +/* 06FAE0 8006EEE0 3C018012 */ lui $at, %hi(gCurrNumF3dCmdsPerPlayer) # $at, 0x8012 +/* 06FAE4 8006EEE4 AC223528 */ sw $v0, %lo(gCurrNumF3dCmdsPerPlayer)($at) +/* 06FAE8 8006EEE8 3C018012 */ lui $at, %hi(gCurrNumHudMatPerPlayer) # $at, 0x8012 +/* 06FAEC 8006EEEC AC26352C */ sw $a2, %lo(gCurrNumHudMatPerPlayer)($at) /* 06FAF0 8006EEF0 8FAC0020 */ lw $t4, 0x20($sp) -/* 06FAF4 8006EEF4 3C018012 */ lui $at, %hi(D_80123530) # $at, 0x8012 -/* 06FAF8 8006EEF8 AC283530 */ sw $t0, %lo(D_80123530)($at) +/* 06FAF4 8006EEF4 3C018012 */ lui $at, %hi(gCurrNumHudTrisPerPlayer) # $at, 0x8012 +/* 06FAF8 8006EEF8 AC283530 */ sw $t0, %lo(gCurrNumHudTrisPerPlayer)($at) /* 06FAFC 8006EEFC 8D8E0000 */ lw $t6, ($t4) -/* 06FB00 8006EF00 3C018012 */ lui $at, %hi(D_80123534) # $at, 0x8012 +/* 06FB00 8006EF00 3C018012 */ lui $at, %hi(gCurrNumHudVertsPerPlayer) # $at, 0x8012 /* 06FB04 8006EF04 24040002 */ li $a0, 2 /* 06FB08 8006EF08 0C01C42C */ jal set_free_queue_state -/* 06FB0C 8006EF0C AC2E3534 */ sw $t6, %lo(D_80123534)($at) +/* 06FB0C 8006EF0C AC2E3534 */ sw $t6, %lo(gCurrNumHudVertsPerPlayer)($at) .L8006EF10: /* 06FB10 8006EF10 3C038012 */ lui $v1, %hi(D_801234E8) # $v1, 0x8012 /* 06FB14 8006EF14 8C6334E8 */ lw $v1, %lo(D_801234E8)($v1) -/* 06FB18 8006EF18 3C118012 */ lui $s1, %hi(D_801211F0) # $s1, 0x8012 -/* 06FB1C 8006EF1C 263111F0 */ addiu $s1, %lo(D_801211F0) # addiu $s1, $s1, 0x11f0 +/* 06FB18 8006EF18 3C118012 */ lui $s1, %hi(gDisplayLists) # $s1, 0x8012 +/* 06FB1C 8006EF1C 263111F0 */ addiu $s1, %lo(gDisplayLists) # addiu $s1, $s1, 0x11f0 /* 06FB20 8006EF20 00037880 */ sll $t7, $v1, 2 /* 06FB24 8006EF24 022FC021 */ addu $t8, $s1, $t7 /* 06FB28 8006EF28 8F190000 */ lw $t9, ($t8) -/* 06FB2C 8006EF2C 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06FB30 8006EF30 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06FB34 8006EF34 3C0D8012 */ lui $t5, %hi(D_80121200) # $t5, 0x8012 +/* 06FB2C 8006EF2C 3C048012 */ lui $a0, %hi(gCurrDisplayList) # $a0, 0x8012 +/* 06FB30 8006EF30 248411F8 */ addiu $a0, %lo(gCurrDisplayList) # addiu $a0, $a0, 0x11f8 +/* 06FB34 8006EF34 3C0D8012 */ lui $t5, %hi(gHudMatrices) # $t5, 0x8012 /* 06FB38 8006EF38 01AF6821 */ addu $t5, $t5, $t7 /* 06FB3C 8006EF3C AC990000 */ sw $t9, ($a0) -/* 06FB40 8006EF40 8DAD1200 */ lw $t5, %lo(D_80121200)($t5) -/* 06FB44 8006EF44 3C0C8012 */ lui $t4, %hi(D_80121220) # $t4, 0x8012 -/* 06FB48 8006EF48 3C018012 */ lui $at, %hi(D_80121208) # $at, 0x8012 +/* 06FB40 8006EF40 8DAD1200 */ lw $t5, %lo(gHudMatrices)($t5) +/* 06FB44 8006EF44 3C0C8012 */ lui $t4, %hi(gHudTriangles) # $t4, 0x8012 +/* 06FB48 8006EF48 3C018012 */ lui $at, %hi(gCurrHudMat) # $at, 0x8012 /* 06FB4C 8006EF4C 018F6021 */ addu $t4, $t4, $t7 -/* 06FB50 8006EF50 8D8C1220 */ lw $t4, %lo(D_80121220)($t4) -/* 06FB54 8006EF54 3C0E8012 */ lui $t6, %hi(D_80121210) # $t6, 0x8012 -/* 06FB58 8006EF58 AC2D1208 */ sw $t5, %lo(D_80121208)($at) -/* 06FB5C 8006EF5C 3C018012 */ lui $at, %hi(D_80121228) # $at, 0x8012 +/* 06FB50 8006EF50 8D8C1220 */ lw $t4, %lo(gHudTriangles)($t4) +/* 06FB54 8006EF54 3C0E8012 */ lui $t6, %hi(gHudVertices) # $t6, 0x8012 +/* 06FB58 8006EF58 AC2D1208 */ sw $t5, %lo(gCurrHudMat)($at) +/* 06FB5C 8006EF5C 3C018012 */ lui $at, %hi(gCurrHudTris) # $at, 0x8012 /* 06FB60 8006EF60 01CF7021 */ addu $t6, $t6, $t7 -/* 06FB64 8006EF64 8DCE1210 */ lw $t6, %lo(D_80121210)($t6) -/* 06FB68 8006EF68 AC2C1228 */ sw $t4, %lo(D_80121228)($at) -/* 06FB6C 8006EF6C 3C018012 */ lui $at, %hi(D_80121218) # $at, 0x8012 -/* 06FB70 8006EF70 AC2E1218 */ sw $t6, %lo(D_80121218)($at) +/* 06FB64 8006EF64 8DCE1210 */ lw $t6, %lo(gHudVertices)($t6) +/* 06FB68 8006EF68 AC2C1228 */ sw $t4, %lo(gCurrHudTris)($at) +/* 06FB6C 8006EF6C 3C018012 */ lui $at, %hi(gCurrHudVerts) # $at, 0x8012 +/* 06FB70 8006EF70 AC2E1218 */ sw $t6, %lo(gCurrHudVerts)($at) /* 06FB74 8006EF74 8C820000 */ lw $v0, ($a0) /* 06FB78 8006EF78 3C18E900 */ lui $t8, 0xe900 /* 06FB7C 8006EF7C 244F0008 */ addiu $t7, $v0, 8 diff --git a/asm/non_matchings/unknown_06B2B0/func_8006EFDC.s b/asm/non_matchings/unknown_06B2B0/func_8006EFDC.s index e7c1d916..e6b5efc7 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006EFDC.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006EFDC.s @@ -1,14 +1,14 @@ glabel func_8006EFDC -/* 06FBDC 8006EFDC 3C0F800E */ lui $t7, %hi(D_800DD3EC) # $t7, 0x800e -/* 06FBE0 8006EFE0 3C19800E */ lui $t9, %hi(D_800DD3BC) # $t9, 0x800e -/* 06FBE4 8006EFE4 3C0D800E */ lui $t5, %hi(D_800DD3CC) # $t5, 0x800e -/* 06FBE8 8006EFE8 8DADD3CC */ lw $t5, %lo(D_800DD3CC)($t5) -/* 06FBEC 8006EFEC 8F39D3BC */ lw $t9, %lo(D_800DD3BC)($t9) -/* 06FBF0 8006EFF0 8DEFD3EC */ lw $t7, %lo(D_800DD3EC)($t7) +/* 06FBDC 8006EFDC 3C0F800E */ lui $t7, %hi(gNumHudTrisPerPlayer+12) # $t7, 0x800e +/* 06FBE0 8006EFE0 3C19800E */ lui $t9, %hi(gNumF3dCmdsPerPlayer+12) # $t9, 0x800e +/* 06FBE4 8006EFE4 3C0D800E */ lui $t5, %hi(gNumHudVertsPerPlayer+12) # $t5, 0x800e +/* 06FBE8 8006EFE8 8DADD3CC */ lw $t5, %lo(gNumHudVertsPerPlayer+12)($t5) +/* 06FBEC 8006EFEC 8F39D3BC */ lw $t9, %lo(gNumF3dCmdsPerPlayer+12)($t9) +/* 06FBF0 8006EFF0 8DEFD3EC */ lw $t7, %lo(gNumHudTrisPerPlayer+12)($t7) /* 06FBF4 8006EFF4 240E0003 */ li $t6, 3 /* 06FBF8 8006EFF8 3C018012 */ lui $at, %hi(D_8012350C) # $at, 0x8012 -/* 06FBFC 8006EFFC 3C0A800E */ lui $t2, %hi(D_800DD3DC) # $t2, 0x800e -/* 06FC00 8006F000 8D4AD3DC */ lw $t2, %lo(D_800DD3DC)($t2) +/* 06FBFC 8006EFFC 3C0A800E */ lui $t2, %hi(gNumHudMatPerPlayer+12) # $t2, 0x800e +/* 06FC00 8006F000 8D4AD3DC */ lw $t2, %lo(gNumHudMatPerPlayer+12)($t2) /* 06FC04 8006F004 AC2E350C */ sw $t6, %lo(D_8012350C)($at) /* 06FC08 8006F008 000D7080 */ sll $t6, $t5, 2 /* 06FC0C 8006F00C 001940C0 */ sll $t0, $t9, 3 @@ -25,67 +25,67 @@ glabel func_8006EFDC /* 06FC38 8006F038 34A500FF */ ori $a1, (0xFF0000FF & 0xFFFF) # ori $a1, $a1, 0xff /* 06FC3C 8006F03C 0C01C327 */ jal allocate_from_main_pool_safe /* 06FC40 8006F040 AFA40018 */ sw $a0, 0x18($sp) -/* 06FC44 8006F044 3C038012 */ lui $v1, %hi(D_801211F0) # $v1, 0x8012 -/* 06FC48 8006F048 246311F0 */ addiu $v1, %lo(D_801211F0) # addiu $v1, $v1, 0x11f0 +/* 06FC44 8006F044 3C038012 */ lui $v1, %hi(gDisplayLists) # $v1, 0x8012 +/* 06FC48 8006F048 246311F0 */ addiu $v1, %lo(gDisplayLists) # addiu $v1, $v1, 0x11f0 /* 06FC4C 8006F04C AC620000 */ sw $v0, ($v1) -/* 06FC50 8006F050 3C0F800E */ lui $t7, %hi(D_800DD3BC) # $t7, 0x800e -/* 06FC54 8006F054 8DEFD3BC */ lw $t7, %lo(D_800DD3BC)($t7) -/* 06FC58 8006F058 3C0A800E */ lui $t2, %hi(D_800DD3DC) # $t2, 0x800e -/* 06FC5C 8006F05C 3C0D800E */ lui $t5, %hi(D_800DD3CC) # $t5, 0x800e -/* 06FC60 8006F060 8D4AD3DC */ lw $t2, %lo(D_800DD3DC)($t2) -/* 06FC64 8006F064 8DADD3CC */ lw $t5, %lo(D_800DD3CC)($t5) +/* 06FC50 8006F050 3C0F800E */ lui $t7, %hi(gNumF3dCmdsPerPlayer+12) # $t7, 0x800e +/* 06FC54 8006F054 8DEFD3BC */ lw $t7, %lo(gNumF3dCmdsPerPlayer+12)($t7) +/* 06FC58 8006F058 3C0A800E */ lui $t2, %hi(gNumHudMatPerPlayer+12) # $t2, 0x800e +/* 06FC5C 8006F05C 3C0D800E */ lui $t5, %hi(gNumHudVertsPerPlayer+12) # $t5, 0x800e +/* 06FC60 8006F060 8D4AD3DC */ lw $t2, %lo(gNumHudMatPerPlayer+12)($t2) +/* 06FC64 8006F064 8DADD3CC */ lw $t5, %lo(gNumHudVertsPerPlayer+12)($t5) /* 06FC68 8006F068 000FC8C0 */ sll $t9, $t7, 3 /* 06FC6C 8006F06C 03224021 */ addu $t0, $t9, $v0 -/* 06FC70 8006F070 3C018012 */ lui $at, %hi(D_80121200) # $at, 0x8012 -/* 06FC74 8006F074 AC281200 */ sw $t0, %lo(D_80121200)($at) +/* 06FC70 8006F070 3C018012 */ lui $at, %hi(gHudMatrices) # $at, 0x8012 +/* 06FC74 8006F074 AC281200 */ sw $t0, %lo(gHudMatrices)($at) /* 06FC78 8006F078 000A4980 */ sll $t1, $t2, 6 /* 06FC7C 8006F07C 000D6080 */ sll $t4, $t5, 2 /* 06FC80 8006F080 01285821 */ addu $t3, $t1, $t0 -/* 06FC84 8006F084 3C018012 */ lui $at, %hi(D_80121210) # $at, 0x8012 +/* 06FC84 8006F084 3C018012 */ lui $at, %hi(gHudVertices) # $at, 0x8012 /* 06FC88 8006F088 018D6021 */ addu $t4, $t4, $t5 -/* 06FC8C 8006F08C AC2B1210 */ sw $t3, %lo(D_80121210)($at) +/* 06FC8C 8006F08C AC2B1210 */ sw $t3, %lo(gHudVertices)($at) /* 06FC90 8006F090 000C6040 */ sll $t4, $t4, 1 /* 06FC94 8006F094 8FA40018 */ lw $a0, 0x18($sp) /* 06FC98 8006F098 018B7021 */ addu $t6, $t4, $t3 -/* 06FC9C 8006F09C 3C018012 */ lui $at, %hi(D_80121220) # $at, 0x8012 +/* 06FC9C 8006F09C 3C018012 */ lui $at, %hi(gHudTriangles) # $at, 0x8012 /* 06FCA0 8006F0A0 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff -/* 06FCA4 8006F0A4 AC2E1220 */ sw $t6, %lo(D_80121220)($at) +/* 06FCA4 8006F0A4 AC2E1220 */ sw $t6, %lo(gHudTriangles)($at) /* 06FCA8 8006F0A8 0C01C327 */ jal allocate_from_main_pool_safe /* 06FCAC 8006F0AC 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 06FCB0 8006F0B0 3C04800E */ lui $a0, %hi(D_800DD3BC) # $a0, 0x800e -/* 06FCB4 8006F0B4 8C84D3BC */ lw $a0, %lo(D_800DD3BC)($a0) -/* 06FCB8 8006F0B8 3C05800E */ lui $a1, %hi(D_800DD3DC) # $a1, 0x800e -/* 06FCBC 8006F0BC 3C06800E */ lui $a2, %hi(D_800DD3CC) # $a2, 0x800e -/* 06FCC0 8006F0C0 8CC6D3CC */ lw $a2, %lo(D_800DD3CC)($a2) -/* 06FCC4 8006F0C4 8CA5D3DC */ lw $a1, %lo(D_800DD3DC)($a1) -/* 06FCC8 8006F0C8 3C038012 */ lui $v1, %hi(D_801211F0) # $v1, 0x8012 -/* 06FCCC 8006F0CC 246311F0 */ addiu $v1, %lo(D_801211F0) # addiu $v1, $v1, 0x11f0 +/* 06FCB0 8006F0B0 3C04800E */ lui $a0, %hi(gNumF3dCmdsPerPlayer+12) # $a0, 0x800e +/* 06FCB4 8006F0B4 8C84D3BC */ lw $a0, %lo(gNumF3dCmdsPerPlayer+12)($a0) +/* 06FCB8 8006F0B8 3C05800E */ lui $a1, %hi(gNumHudMatPerPlayer+12) # $a1, 0x800e +/* 06FCBC 8006F0BC 3C06800E */ lui $a2, %hi(gNumHudVertsPerPlayer+12) # $a2, 0x800e +/* 06FCC0 8006F0C0 8CC6D3CC */ lw $a2, %lo(gNumHudVertsPerPlayer+12)($a2) +/* 06FCC4 8006F0C4 8CA5D3DC */ lw $a1, %lo(gNumHudMatPerPlayer+12)($a1) +/* 06FCC8 8006F0C8 3C038012 */ lui $v1, %hi(gDisplayLists) # $v1, 0x8012 +/* 06FCCC 8006F0CC 246311F0 */ addiu $v1, %lo(gDisplayLists) # addiu $v1, $v1, 0x11f0 /* 06FCD0 8006F0D0 000478C0 */ sll $t7, $a0, 3 /* 06FCD4 8006F0D4 AC620004 */ sw $v0, 4($v1) /* 06FCD8 8006F0D8 01E2C021 */ addu $t8, $t7, $v0 -/* 06FCDC 8006F0DC 3C018012 */ lui $at, %hi(D_80121200+4) # $at, 0x8012 -/* 06FCE0 8006F0E0 AC381204 */ sw $t8, %lo(D_80121200+4)($at) +/* 06FCDC 8006F0DC 3C018012 */ lui $at, %hi(gHudMatrices+4) # $at, 0x8012 +/* 06FCE0 8006F0E0 AC381204 */ sw $t8, %lo(gHudMatrices+4)($at) /* 06FCE4 8006F0E4 00064080 */ sll $t0, $a2, 2 /* 06FCE8 8006F0E8 00055180 */ sll $t2, $a1, 6 /* 06FCEC 8006F0EC 01584821 */ addu $t1, $t2, $t8 -/* 06FCF0 8006F0F0 3C018012 */ lui $at, %hi(D_80121210+4) # $at, 0x8012 +/* 06FCF0 8006F0F0 3C018012 */ lui $at, %hi(gHudVertices+4) # $at, 0x8012 /* 06FCF4 8006F0F4 01064021 */ addu $t0, $t0, $a2 -/* 06FCF8 8006F0F8 AC291214 */ sw $t1, %lo(D_80121210+4)($at) +/* 06FCF8 8006F0F8 AC291214 */ sw $t1, %lo(gHudVertices+4)($at) /* 06FCFC 8006F0FC 00084040 */ sll $t0, $t0, 1 /* 06FD00 8006F100 01096821 */ addu $t5, $t0, $t1 -/* 06FD04 8006F104 3C018012 */ lui $at, %hi(D_80121220+4) # $at, 0x8012 -/* 06FD08 8006F108 AC2D1224 */ sw $t5, %lo(D_80121220+4)($at) -/* 06FD0C 8006F10C 3C018012 */ lui $at, %hi(D_80123528) # $at, 0x8012 -/* 06FD10 8006F110 AC243528 */ sw $a0, %lo(D_80123528)($at) -/* 06FD14 8006F114 3C018012 */ lui $at, %hi(D_8012352C) # $at, 0x8012 -/* 06FD18 8006F118 3C0C800E */ lui $t4, %hi(D_800DD3EC) # $t4, 0x800e -/* 06FD1C 8006F11C 8D8CD3EC */ lw $t4, %lo(D_800DD3EC)($t4) -/* 06FD20 8006F120 AC25352C */ sw $a1, %lo(D_8012352C)($at) -/* 06FD24 8006F124 3C018012 */ lui $at, %hi(D_80123530) # $at, 0x8012 +/* 06FD04 8006F104 3C018012 */ lui $at, %hi(gHudTriangles+4) # $at, 0x8012 +/* 06FD08 8006F108 AC2D1224 */ sw $t5, %lo(gHudTriangles+4)($at) +/* 06FD0C 8006F10C 3C018012 */ lui $at, %hi(gCurrNumF3dCmdsPerPlayer) # $at, 0x8012 +/* 06FD10 8006F110 AC243528 */ sw $a0, %lo(gCurrNumF3dCmdsPerPlayer)($at) +/* 06FD14 8006F114 3C018012 */ lui $at, %hi(gCurrNumHudMatPerPlayer) # $at, 0x8012 +/* 06FD18 8006F118 3C0C800E */ lui $t4, %hi(gNumHudTrisPerPlayer+12) # $t4, 0x800e +/* 06FD1C 8006F11C 8D8CD3EC */ lw $t4, %lo(gNumHudTrisPerPlayer+12)($t4) +/* 06FD20 8006F120 AC25352C */ sw $a1, %lo(gCurrNumHudMatPerPlayer)($at) +/* 06FD24 8006F124 3C018012 */ lui $at, %hi(gCurrNumHudTrisPerPlayer) # $at, 0x8012 /* 06FD28 8006F128 8FBF0014 */ lw $ra, 0x14($sp) -/* 06FD2C 8006F12C AC2C3530 */ sw $t4, %lo(D_80123530)($at) -/* 06FD30 8006F130 3C018012 */ lui $at, %hi(D_80123534) # $at, 0x8012 +/* 06FD2C 8006F12C AC2C3530 */ sw $t4, %lo(gCurrNumHudTrisPerPlayer)($at) +/* 06FD30 8006F130 3C018012 */ lui $at, %hi(gCurrNumHudVertsPerPlayer) # $at, 0x8012 /* 06FD34 8006F134 27BD0020 */ addiu $sp, $sp, 0x20 /* 06FD38 8006F138 03E00008 */ jr $ra -/* 06FD3C 8006F13C AC263534 */ sw $a2, %lo(D_80123534)($at) +/* 06FD3C 8006F13C AC263534 */ sw $a2, %lo(gCurrNumHudVertsPerPlayer)($at) diff --git a/asm/non_matchings/unknown_09F8F0/func_800A01A0.s b/asm/non_matchings/unknown_09F8F0/func_800A01A0.s index 77f26038..6502e3a2 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A01A0.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A01A0.s @@ -132,7 +132,7 @@ glabel func_800A01A0 /* 0A0F8C 800A038C 00000000 */ nop /* 0A0F90 800A0390 3C048012 */ lui $a0, %hi(D_80126D10) # $a0, 0x8012 /* 0A0F94 800A0394 8C846D10 */ lw $a0, %lo(D_80126D10)($a0) -/* 0A0F98 800A0398 0C01A955 */ jal get_button_inputs_from_player +/* 0A0F98 800A0398 0C01A955 */ jal get_buttons_pressed_from_player /* 0A0F9C 800A039C 00000000 */ nop /* 0A0FA0 800A03A0 30590004 */ andi $t9, $v0, 4 /* 0A0FA4 800A03A4 13200059 */ beqz $t9, .L800A050C @@ -180,7 +180,7 @@ glabel func_800A01A0 /* 0A1044 800A0444 A02027B8 */ sb $zero, %lo(D_800E27B8)($at) .L800A0448: /* 0A1048 800A0448 8C846D10 */ lw $a0, %lo(D_80126D10)($a0) -/* 0A104C 800A044C 0C01A955 */ jal get_button_inputs_from_player +/* 0A104C 800A044C 0C01A955 */ jal get_buttons_pressed_from_player /* 0A1050 800A0450 00000000 */ nop /* 0A1054 800A0454 30480004 */ andi $t0, $v0, 4 /* 0A1058 800A0458 1100002C */ beqz $t0, .L800A050C @@ -233,7 +233,7 @@ glabel func_800A01A0 .L800A050C: /* 0A110C 800A050C 3C048012 */ lui $a0, %hi(D_80126D10) # $a0, 0x8012 /* 0A1110 800A0510 8C846D10 */ lw $a0, %lo(D_80126D10)($a0) -/* 0A1114 800A0514 0C01A955 */ jal get_button_inputs_from_player +/* 0A1114 800A0514 0C01A955 */ jal get_buttons_pressed_from_player /* 0A1118 800A0518 00000000 */ nop /* 0A111C 800A051C 3C068012 */ lui $a2, %hi(D_80126CD0) # $a2, 0x8012 /* 0A1120 800A0520 30490001 */ andi $t1, $v0, 1 diff --git a/include/structs.h b/include/structs.h index b01af9ca..c8baaee8 100644 --- a/include/structs.h +++ b/include/structs.h @@ -109,7 +109,7 @@ typedef struct Settings4C { u8 unkF; } Settings4C; -/* Size: 0x840 bytes */ +/* Size: 0x118 bytes */ typedef struct Settings { /* 0x0000 */ s16 *balloonsPtr; /* 0x0004 */ s32 *courseFlagsPtr; @@ -140,10 +140,10 @@ typedef struct Settings { /* 0x0014 */ u16 tajFlags; /* 0x0016 */ u8 ttAmulet; /* 0x0017 */ u8 wizpigAmulet; - /* 0x0018 */ void *flapInitialsPtr[3]; - /* 0x0024 */ void *flapTimesPtr[3]; - /* 0x0030 */ void *courseInitialsPtr[3]; - /* 0x003C */ void *courseTimesPtr[3]; + /* 0x0018 */ u16 *flapInitialsPtr[3]; + /* 0x0024 */ u16 *flapTimesPtr[3]; + /* 0x0030 */ u16 *courseInitialsPtr[3]; + /* 0x003C */ u16 *courseTimesPtr[3]; /* 0x0048 */ u8 worldId; /* 0x0049 */ u8 courseId; /* 0x004A */ u8 gObjectCount; @@ -154,13 +154,6 @@ typedef struct Settings { /* 0x0114 */ u8 timeTrialRacer; /* 0x0115 */ char unk115[2]; /* 0x0117 */ u8 display_times; - /* 0x0118 */ u32 courseFlags[65]; - /* 0x021C */ u16 balloons; - /* 0x021E */ u16 worldBalloons[5]; - /* 0x0228 */ u16 flapInitials[3][65]; - /* 0x03AE */ u16 flapTimes[3][65]; - /* 0x0534 */ u16 courseInitials[3][65]; - /* 0x06BA */ u16 courseTimes[3][65]; } Settings; /* Size: 0xC4 bytes */ diff --git a/src/camera.c b/src/camera.c index 6444d3ba..5505118d 100644 --- a/src/camera.c +++ b/src/camera.c @@ -854,11 +854,11 @@ void func_8006A50C(void) { D_80121150[1] = temp; } -u16 func_8006A528(s32 arg0) { +u16 get_buttons_held_from_player(s32 arg0) { return D_80121110[D_80121150[arg0]].unk0; } -u16 get_button_inputs_from_player(s32 arg0) { +u16 get_buttons_pressed_from_player(s32 arg0) { return D_80121140[D_80121150[arg0]]; } diff --git a/src/menu.c b/src/menu.c index 4a885a8c..2b0d2868 100644 --- a/src/menu.c +++ b/src/menu.c @@ -5,17 +5,17 @@ #include "memory.h" #include "fade_transition.h" +#include #include "types.h" #include "macros.h" #include "structs.h" #include "f3ddkr.h" +#include "video.h" /** * @file Contains all the code used for every menu in the game. */ -extern s32 osTvType; - /************ .bss ************/ // The bss section needs to stay above the data section! @@ -81,7 +81,18 @@ s32 D_80126490; s32 D_80126494; s32 D_80126498; s32 D_8012649C; -s32 D_801264A0[12]; + +/* Size: 0x0C Bytes */ +typedef struct unk801264A0 { + u8 unk0; + u8 unk1; + u16 unk2; + char name[4]; + u32 pad8; +} unk801264A0; + +unk801264A0 D_801264A0[4]; + s32 D_801264D0; s32 D_801264D4; s8 D_801264D8; @@ -287,7 +298,7 @@ s32 gIsInAdventureTwo = 0; s32 gPlayerHasSeenCautionMenu = 0; s32 D_800DF49C = 0; // Currently unknown, might be a different type. -unk800DF4A0 *D_800DF4A0 = NULL; +char **D_800DF4A0 = NULL; u8 D_800DF4A4 = 0xFF; u8 D_800DF4A8 = 0xFF; @@ -529,7 +540,7 @@ u16 D_800DFCB4[112] = { 0x0000, 0x0000, 0x0000, 0x0000 }; -s32 D_800DFD94 = 0; +s32 gShowControllerPakMenu = FALSE; s32 gActiveMagicCodes = 0; s32 gUnlockedMagicCodes = 0; @@ -650,23 +661,23 @@ s16 D_800E03A4[6] = { 0x00, 0x0B, 0x0C, 0x0A, -1, 0 }; -u16 D_800E03B0[14] = { - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x004C, 0x0070, - 0x00F4, 0x0070, 0x004C, 0x00D0, - 0x00F4, 0x00D0 +char *D_800E03B0[3] = { + NULL, NULL, NULL }; -u16 D_800E03CC[24] = { - 0x0018, 0x0051, 0x0058, 0x0040, - 0x0004, 0x0004, 0x4080, 0xFFC0, - 0x0074, 0x0051, 0x0058, 0x0040, - 0x0004, 0x0004, 0x4080, 0xFFC0, - 0x00D0, 0x0051, 0x0058, 0x0040, - 0x0004, 0x0004, 0x4080, 0xFFC0 +// Unused? +u16 D_800E03BC[8] = { + 0x004C, 0x0070, 0x00F4, 0x0070, + 0x004C, 0x00D0, 0x00F4, 0x00D0, }; -u16 D_800E03FC[10] = { +unk800E03CC D_800E03CC[3] = { + { 0x0018, 0x0051, 0x0058, 0x0040, 0x0004, 0x0004, 0x4080, 0xFFC0 }, + { 0x0074, 0x0051, 0x0058, 0x0040, 0x0004, 0x0004, 0x4080, 0xFFC0 }, + { 0x00D0, 0x0051, 0x0058, 0x0040, 0x0004, 0x0004, 0x4080, 0xFFC0 }, +}; + +s16 D_800E03FC[10] = { 0x002C, 0x0036, 0x0015, 0x0019, 0x002C, 0x001B, @@ -1529,6 +1540,12 @@ void func_8009C508(s32 arg0); void *allocate_from_main_pool_safe(s32, u32); void func_800C4170(s32 arg0); void play_music(s32 arg0); +void func_800C01D8(s32); +void render_textured_rectangle(Gfx **dlist, DrawTexture *arg1, s32 arg2, s32 arg3, u8 red, u8 green, u8 blue, u8 alpha); +void func_8007B3D0(Gfx **dlist); +void func_8009BD5C(void); +void load_level_for_menu(s32, s32, s32); +void func_8008CACC(void); GLOBAL_ASM("asm/non_matchings/menu/func_8007F900.s") @@ -1872,13 +1889,13 @@ void func_800829F8(s32 arg0, s32 arg1) { if (D_800DF46C & 0x10) { func_8007F900(get_language()); set_text_font(0); - set_text_color(0xFF, 0xFF, 0xFF, 0, 0xFF); + set_text_color(255, 255, 255, 0, 0xFF); set_text_background_color(0, 0, 0, 0); temp = 0xD0; if (osTvType == 0) { temp = 0xEA; } - draw_text(arg0, -0x8000, temp, D_800DF4A0->unk25C, 0xC); + draw_text(arg0, -0x8000, temp, D_800DF4A0[151], 0xC); } } @@ -1951,9 +1968,9 @@ void func_800841B8(s32 arg0) { set_text_font(2); set_text_background_color(0, 0, 0, 0); set_text_color(0, 0, 0, 0xFF, 0x80); - draw_text(&D_801263A0, 0xA1, 0x23, D_800DF4A0->unk90, 0xC); - set_text_color(0xFF, 0xFF, 0xFF, 0, 0xFF); - draw_text(&D_801263A0, 0xA0, 0x20, D_800DF4A0->unk90, 0xC); + draw_text(&D_801263A0, 0xA1, 0x23, D_800DF4A0[36], 0xC); + set_text_color(255, 255, 255, 0, 0xFF); + draw_text(&D_801263A0, 0xA0, 0x20, D_800DF4A0[36], 0xC); phi_s1 = 0; phi_s2 = 0x4C; @@ -1969,7 +1986,7 @@ void func_800841B8(s32 arg0) { } else { phi_a3 = 0; } - set_text_color(0xFF, 0xFF, 0xFF, phi_a3, 0xFF); + set_text_color(255, 255, 255, phi_a3, 0xFF); draw_text(&D_801263A0, -0x8000, phi_s2, D_800DFA10[phi_s1], 0xC); phi_s1++; @@ -2012,7 +2029,7 @@ s32 menu_options_loop(s32 arg0) { for (i = 0; i < 4; i++) { analogY += gControllersYAxisDirection[i]; // Y axis (-1 = down, 1 = up) for controller analogX += gControllersXAxisDirection[i]; // X axis (-1 = left, 1 = right) for controller - buttonsPressed |= get_button_inputs_from_player(i); // Button presses for controller + buttonsPressed |= get_buttons_pressed_from_player(i); // Button presses for controller } } @@ -2041,12 +2058,12 @@ s32 menu_options_loop(s32 arg0) { func_80001D04(0xEB, 0); func_8009EABC(0, 0x2000000); func_800C2AF4(0); - D_800DFA10[1] = D_800DF4A0->unk2DC; + D_800DFA10[1] = D_800DF4A0[183]; } else { func_80001D04(0xEB, 0); func_8009EA78(0, 0x2000000); func_800C2AF4(1); - D_800DFA10[1] = D_800DF4A0->unk2D8; + D_800DFA10[1] = D_800DF4A0[182]; } } else { // Move up & down the list @@ -2169,7 +2186,7 @@ s32 menu_audio_options_loop(s32 arg0) { phi_s0 = 0; while(phi_s0 != 4) { - sp40 |= get_button_inputs_from_player(phi_s0); + sp40 |= get_buttons_pressed_from_player(phi_s0); phi_a2 += func_8006A59C(phi_s0); phi_a3 += gControllersYAxisDirection[phi_s0]; phi_t0 += gControllersXAxisDirection[phi_s0]; @@ -2406,24 +2423,23 @@ void func_800861C8(unk800861C8* arg0, s32 *arg1) { GLOBAL_ASM("asm/non_matchings/menu/func_800862C4.s") GLOBAL_ASM("asm/non_matchings/menu/func_800867D4.s") -#if 1 -GLOBAL_ASM("asm/non_matchings/menu/func_80086A48.s") -#else +#ifdef NON_MATCHING void func_80086A48(s32 arg0) { - f32 temp, temp2, temp3; + f32 temp, temp2; temp = D_80126BD4; temp2 = D_80126BE4; while (arg0 > 0) { - temp3 = 0.1f; if (D_80126A08 > 0) { - D_80126BDC = D_80126BDC + temp3 * (temp - D_80126BDC); + D_80126BDC += (temp - D_80126BDC) * 0.1f; } if (D_801263E0 > 0 && D_80126A00 > 0) { - D_80126BEC = D_80126BEC + temp3 * (temp2 - D_80126BEC); + D_80126BEC += (temp2 - D_80126BEC) * 0.1f; } arg0--; } } +#else +GLOBAL_ASM("asm/non_matchings/menu/func_80086A48.s") #endif GLOBAL_ASM("asm/non_matchings/menu/func_80086AFC.s") @@ -2523,23 +2539,35 @@ void menu_boot_init(void) { #ifdef NON_MATCHING void func_800887E8(void); void func_800887C4(void); +s32 func_800C018C(void); +s32 func_800890AC(s32); s32 menu_boot_loop(s32 arg0) { - s32 sp2C; - s32 phi_v1; + // arg0 = sp30 + s32 out; // sp2C + s32 y; // sp28 + // ra = sp24 - sp2C = 0; - phi_v1 = 0x78; - if (osTvType == 0) { - phi_v1 = 0x84; + out = 0; + + // Regalloc issue. + // How do you make this not use a3 without introducing another local variable? + y = 120; + if (osTvType == TV_TYPE_PAL) { + y = 132; } + // You can make it use the correct register if you add in a temp variable like: + // temp = y; + // Then replace all the `y` instances below with `temp`. + // However, this makes the stack too big. There is no room for another local variable. :\ + switch(D_80126C20) { case 0: - if (D_80126C18 < 0x20) { + if (D_80126C18 < 32) { D_80126C18 += arg0; - if (D_80126C18 >= 0x21) { - D_80126C18 = 0x20; + if (D_80126C18 >= 33) { + D_80126C18 = 32; } } else { func_800887E8(); @@ -2547,34 +2575,34 @@ s32 menu_boot_loop(s32 arg0) { } break; case 1: - if (D_80126C18 < 0x8C) { + if (D_80126C18 < 140) { D_80126C18 += arg0; - if (D_80126C18 >= 0x8D) { - D_80126C18 = 0x8C; + if (D_80126C18 >= 141) { + D_80126C18 = 140; } } else { func_800887C4(); D_80126C20 = 2; } - if (D_80126C18 >= 0x81) { - phi_v1 = 0x12C; + if (D_80126C18 >= 129) { + y = 300; } break; case 2: - if (gMenuDelay && func_800C018C(arg0, 0x12C) == 0) { - func_800C01D8(&D_800DF76C, arg0); + if (gMenuDelay && func_800C018C() == 0) { + func_800C01D8(&D_800DF76C); } - sp2C = func_800890AC(arg0); - phi_v1 = 0x12C; + y = 300; + out = func_800890AC(arg0); break; } - if (phi_v1 < 0x12C) { - render_textured_rectangle(&D_801263A0, &D_800DF7DC, 0xA0, phi_v1, 0xFF, 0xFF, 0xFF, 0xFF); + if (y < 300) { + render_textured_rectangle(&D_801263A0, &D_800DF7DC, 160, y, 255, 255, 255, 255); func_8007B3D0(&D_801263A0); } - return sp2C; + return out; } #else GLOBAL_ASM("asm/non_matchings/menu/MenuBootLoop.s") @@ -2609,7 +2637,7 @@ void func_800887E8(void) { } else if (func_8008832C() == 0) { gMenuDelay = 0x14; } - if (D_80126BC8 == 0 && D_800DFD94 == 0) { + if (D_80126BC8 == 0 && !gShowControllerPakMenu) { gMenuDelay = 0x14; } D_800DF460 = 0; @@ -2668,7 +2696,7 @@ void menu_magic_codes_list_init(void) { func_8009C6D4(0x3F); func_8008E4B0(); func_800C01D8(D_800DF77C); - if (osTvType == 0) { + if (osTvType == TV_TYPE_PAL) { D_80126C70 = 0xB; } else { D_80126C70 = 0xA; @@ -2691,7 +2719,7 @@ GLOBAL_ASM("asm/non_matchings/menu/menu_magic_codes_list_loop.s") extern s16 D_80126C80[0x1E]; // Array of shorts of the unlocked cheat's bit ids. void func_8008AD1C(void); void func_8008A56C(void); -s32 get_button_inputs_from_player(s32 arg0); +s32 get_buttons_pressed_from_player(s32 arg0); s32 menu_magic_codes_list_loop(s32 arg0) { s32 temp_t0; @@ -2726,7 +2754,7 @@ s32 menu_magic_codes_list_loop(s32 arg0) { temp = (s8*)&gControllersYAxisDirection; temp2 = (s8*)&gControllersXAxisDirection; while(phi_s0 < 4) { - phi_s3 |= get_button_inputs_from_player(phi_s0); + phi_s3 |= get_buttons_pressed_from_player(phi_s0); phi_a2 += *temp; phi_s2 += *temp2; temp++; @@ -2863,10 +2891,10 @@ void draw_character_select_text(s32 arg0) { set_text_background_color(0, 0, 0, 0); set_text_color(0, 0, 0, 0xFF, 0x80); // Draw "Object Select" text drop shadow - draw_text(&D_801263A0, 0xA1, 0x23, D_800DF4A0->unk21C, 0xC); - set_text_color(0xFF, 0xFF, 0xFF, 0, 0xFF); + draw_text(&D_801263A0, 0xA1, 0x23, D_800DF4A0[135], 0xC); + set_text_color(255, 255, 255, 0, 0xFF); // Draw "Object Select" text - draw_text(&D_801263A0, 0xA0, 0x20, D_800DF4A0->unk21C, 0xC); + draw_text(&D_801263A0, 0xA0, 0x20, D_800DF4A0[135], 0xC); if (gNumberOfReadyPlayers == gNumberOfActivePlayers && gNumberOfActivePlayers > 0) { yPos = 0xD0; if (osTvType == 0) { @@ -3027,7 +3055,7 @@ void draw_menu_element(s32, MenuElement*, f32); s32 menu_caution_loop(s32 arg0) { if (gMenuDelay != 0) { gMenuDelay += arg0; - } else if (gIgnorePlayerInput <= 0 && get_button_inputs_from_player(0) & 0xD000) { + } else if (gIgnorePlayerInput <= 0 && get_buttons_pressed_from_player(0) & 0xD000) { func_80001D04(0xEF, NULL); gMenuDelay = 1; func_800C01D8(&D_800DF774); @@ -3143,7 +3171,104 @@ void func_8008C698(s32 arg0) { } #endif +#ifdef NON_MATCHING + +s32 menu_game_select_loop(s32 arg0) { + s32 playerInputs; + s32 playerYDir; + s32 charSelectScene; + s32 temp; + + func_8008C168(); + + // Regalloc issue: This needs to use v1, not a2! + D_801263BC = (D_801263BC + arg0) & 0x3F; + + if (D_801263D8 != 0) { + D_801263D8++; + if (D_801263D8 >= 3) { + func_800828B8(); + D_801263D8 = 0; + } + } + if (gMenuDelay != 0) { + if (gMenuDelay < 0) { + gMenuDelay -= arg0; + } else { + gMenuDelay += arg0; + } + } + if (gMenuDelay >= 0x1F) { + func_8008CACC(); + if (D_800DF460 == D_801263E0) { + func_80000B28(); + gIsInTracksMode = TRUE; + func_8006E5BC(); + load_level_for_menu(-1, -1, 0); + menu_init(MENU_TRACK_SELECT); + } else { + gIsInAdventureTwo = D_800DF460; + gIsInTracksMode = FALSE; + gPlayerSelectVehicle[0] = 0; + func_8006DB14(0); + menu_init(MENU_FILE_SELECT); + } + return 0; + } else if (gMenuDelay < -0x1E) { + func_8008CACC(); + charSelectScene = 0; + if (is_drumstick_unlocked()) { + charSelectScene = 1; + } + if (is_tt_unlocked()) { + charSelectScene ^= 3; + } + load_level_for_menu(0x16, -1, charSelectScene); + func_8008AEB4(0, 0); + menu_init(MENU_CHARACTER_SELECT); + return 0; + } else { + func_8008C698(arg0, &D_801263D8); + if ((gMenuDelay == 0) && (D_801263D8 == 0)) { + playerInputs = get_buttons_pressed_from_player(0); + playerYDir = gControllersYAxisDirection[0]; + playerInputs = playerInputs; + if (gNumberOfActivePlayers == 2) { + playerInputs |= get_buttons_pressed_from_player(1); + playerYDir += gControllersYAxisDirection[1]; + } + if (playerInputs & (A_BUTTON | START_BUTTON)) { + if (D_800DF460 == D_801263E0) { + func_80000C98(-0x80); + } + func_800C01D8(&D_800DF774); + gMenuDelay = 1; + func_80001D04(0xEF, 0); + } else if (playerInputs & B_BUTTON) { + func_800C01D8(&D_800DF774); + gMenuDelay = -1; + } else { + if (playerYDir < 0) { + if (D_800DF460 < D_801263E0) { + D_800DF460++; + func_80001D04(0xEB, 0); + } + } + if (playerYDir > 0) { + if (D_800DF460 > 0) { + D_800DF460--; + func_80001D04(0xEB, 0); + } + } + } + } + gIgnorePlayerInput = FALSE; + return 0; + } +} +#else GLOBAL_ASM("asm/non_matchings/menu/menu_game_select_loop.s") +#endif void func_8008CACC(void) { func_800C422C(2); @@ -3182,9 +3307,168 @@ void menu_file_select_init(void) { func_80000B18(); } -GLOBAL_ASM("asm/non_matchings/menu/func_8008CC28.s") +void func_8008CC28(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { + s32 saved0 = D_800DF4A4; + s32 saved1 = D_800DF4A8; + s32 saved2 = D_800DF4AC; + s32 saved3 = D_800DF764; + D_800DF4A4 = arg3; + D_800DF4A8 = arg4; + D_800DF4AC = arg5; + D_800DF764 = arg6; + D_800DF75C[arg0].unkC = arg1 - 0x9F; + D_800DF75C[arg0].unk10 = 0x77 - arg2; + func_8009CA60(arg0); + D_800DF4A4 = saved0; + D_800DF4A8 = saved1; + D_800DF4AC = saved2; + D_800DF764 = saved3; + D_800DF75C[arg0].unkC = arg1 - 0xA1; + D_800DF75C[arg0].unk10 = 0x79 - arg2; + func_8009CA60(arg0); +} + +#ifdef NON_MATCHING +// Shouldn't have any major issues. +void render_file_select_menu(s32 arg0) { + s32 s2; + s32 s5; + s32 y; + s32 phi_v0_2; + u8 tempName[8]; + u32 color; + s32 i; + + if (osTvType == TV_TYPE_PAL) { + y = 12; + } else { + y = 0; + } + + func_8009BD5C(); + func_80067F2C(&D_801263A0, &D_801263A8); + for (i = 0; i < 3; i++) { // 3 files + if (D_801264A0[i].unk0 == gIsInAdventureTwo || D_801264A0[i].unk1 == 0) { + color = 0xB0E0C0FF; + } else { + color = 0x6A9073FF; + } + func_80080580(0, D_800E03CC[i].unk0 - 0xA0, 0x78 - D_800E03CC[i].unk2, D_800E03CC[i].unk4, + D_800E03CC[i].unk6, D_800E03CC[i].unk8, D_800E03CC[i].unkA, color, D_80126550[67]); + } + func_80080BC8(&D_801263A0); + if (D_801263D8 == 0) { + set_text_font(2); + set_text_background_color(0, 0, 0, 0); + s5 = 10; + for (i = 0; i < 3; i++) { + if (D_801264A0[i].unk1 != 0) { + s2 = 0xB; + func_8007BF1C(0, 0xFF); + if (D_801264A0[i].unk0 != 0) { + s2 = 0xC; + } + func_8008CC28(s2, D_800E03FC[2] + D_800E03CC[i].unk0, D_800E03FC[3] + D_800E03CC[i].unk2, 0, 0, 0, 0x80); + func_80068508(1); + D_800DF75C->unk18 = D_801264A0[i].unk2 / s5; + func_8008CC28(NULL, (D_800E03FC[6] + D_800E03CC[i].unk0) - 6, D_800E03FC[7] + D_800E03CC[i].unk2, 0, 0, 0, 0x80); + D_800DF75C->unk18 = D_801264A0[i].unk2 % s5; + func_8008CC28(NULL, D_800E03FC[6] + D_800E03CC[i].unk0 + 6, D_800E03FC[7] + D_800E03CC[i].unk2, 0, 0, 0, 0x80); + func_80068508(0); + D_800DF4A8 = 0x40; + D_800DF4AC = 0x40; + func_8008CC28(s5, D_800E03FC[8] + D_800E03CC[i].unk0, D_800E03FC[9] + D_800E03CC[i].unk2, 0, 0, 0, 0x80); + D_800DF4A8 = 0xFF; + D_800DF4AC = 0xFF; + func_8007BF1C(1); + } else { + set_text_color(255, 255, 255, 64, 255); + draw_text(&D_801263A0, D_800E03FC[4] + D_800E03CC[i].unk0, D_800E03FC[5] + D_800E03CC[i].unk2 + y, D_800DF4A0[75], 0xC); + } + } + } + phi_v0_2 = D_801263BC * 8; + if (phi_v0_2 >= 0x100) { + phi_v0_2 = 0x1FF - phi_v0_2; + } + set_text_font(0); + set_text_background_color(0, 0, 0, 0); + set_text_color(255, 255, 255, 0, 255); + for (i = 0; i < 3; i++) { + s2 = FALSE; + if (D_80126484 != 0) { + if (D_80126494 == 0 && i == D_8012648C) { + s2 = TRUE; + } + else if (D_80126494 > 0 && i == D_80126490) { + s2 = TRUE; + } + } else if (D_80126488 != 0 && i == D_8012648C) { + s2 = TRUE; + } else if (D_801263E0 == 0 && i == gSaveFileIndex) { + s2 = TRUE; + } + if (s2) { + s32 temp_t0 = phi_v0_2 | ~0xFF; + func_80080E90(&D_801263A0, D_800E03CC[i].unk0, D_800E03CC[i].unk2 + y, D_800E03CC[i].unk4, D_800E03CC[i].unk6, + D_800E03CC[i].unk8, D_800E03CC[i].unkA, temp_t0, temp_t0, temp_t0, temp_t0); + } + if (D_80126CC0 == 0 || i != gSaveFileIndex) { + trim_filename_string(D_801264A0[i].name, tempName); + if (D_801264A0[i].unk1 == 0) { + trim_filename_string(D_800E03B0[i], tempName); + } + if (tempName != NULL) { + draw_text(&D_801263A0, D_800E03FC[0] + D_800E03CC[i].unk0, D_800E03FC[1] + D_800E03CC[i].unk2 + y, tempName, 0xC); + } + } + } + set_text_font(2); + set_text_color(0, 0, 0, 255, 128); + draw_text(&D_801263A0, 0xA1, 0x13, D_800DF4A0[76], 4); + set_text_color(255, 255, 255, 0, 255); + draw_text(&D_801263A0, 0xA0, 0x10, D_800DF4A0[76], 4); + set_text_color(255, 255, 255, 0, 255); + y += 0xBB; + if (D_80126484 != 0) { + if (D_80126494 == 0) { + set_text_font(0); + draw_text(&D_801263A0, 0xA0, y, D_800DF4A0[77], 0xC); + } else if (D_80126494 == 1) { + set_text_font(0); + draw_text(&D_801263A0, 0xA0, y, D_800DF4A0[78], 0xC); + } else { + draw_text(&D_801263A0, 0xA0, y, &D_800E8234, 0xC); + } + return; + } + if (D_80126488 != 0) { + if (D_80126494 == 0) { + set_text_font(0); + draw_text(&D_801263A0, 0xA0, y, D_800DF4A0[79], 0xC); + } else { + draw_text(&D_801263A0, 0xA0, y, &D_800E8238, 0xC); + } + return; + } + if (D_80126CC0 == 0) { + if (D_801263E0 == 1) { + set_text_color(255, 255, 255, phi_v0_2, 255); + } + draw_text(&D_801263A0, 0x5A, y, D_800DF4A0[80], 0xC); + if (D_801263E0 == 2) { + set_text_color(255, 255, 255, phi_v0_2, 255); + } else { + set_text_color(255, 255, 255, 0, 255); + } + draw_text(&D_801263A0, 0xE6, y, D_800DF4A0[81], 0xC); + return; + } +} +#else +GLOBAL_ASM("asm/non_matchings/menu/render_file_select_menu.s") +#endif -GLOBAL_ASM("asm/non_matchings/menu/func_8008CD74.s") GLOBAL_ASM("asm/non_matchings/menu/func_8008D5F8.s") GLOBAL_ASM("asm/non_matchings/menu/func_8008D8BC.s") @@ -3210,10 +3494,10 @@ void func_8008DC7C(s32 arg0) { s32 phi_v1; s32 phi_v1_2; - phi_v1 = get_button_inputs_from_player(0); + phi_v1 = get_buttons_pressed_from_player(0); temp_a1 = gControllersXAxisDirection; if (gNumberOfActivePlayers == 2) { - phi_v1 = phi_v1 | get_button_inputs_from_player(1); + phi_v1 = phi_v1 | get_buttons_pressed_from_player(1); temp_a1 += gControllersXAxisDirection+1; } @@ -3641,9 +3925,9 @@ void menu_11_init(void) { s8 temp_a2; settings = get_settings(); - D_80126BF0[0] = (s32) D_800DF4A0->unk60; - D_80126BF0[1] = (s32) D_800DF4A0->unk5C; - D_80126BF0[2] = (s32) D_800DF4A0->unk70; + D_80126BF0[0] = (s32) D_800DF4A0[24]; + D_80126BF0[1] = (s32) D_800DF4A0[23]; + D_80126BF0[2] = (s32) D_800DF4A0[28]; D_80126C14 = 3; @@ -3735,35 +4019,38 @@ s32 compress_filename_string(unsigned char *filename, s32 length) { return output; } -#if 1 -GLOBAL_ASM("asm/non_matchings/menu/func_800977D0.s") -#else -s32 func_800977D0(unsigned char *arg0, unsigned char *arg1) { - s32 phi_v0 = 0; - s32 phi_v1 = 0; - while (*arg0 != '\0') { - if (*arg0 == ' ') { - arg0++; - phi_v0++; - while (*arg0 == ' ') { - arg0++; - phi_v0++; +#ifdef NON_MATCHING + +// Not matching, but functionally equivalent. +// Trims the trailing end of the string, so that spaces won't show up at the end. +s32 trim_filename_string(u8 *input, u8 *output) { + s32 numSpaces, numSpacesProcessed; + while (*input != '\0') { + numSpaces = 0; + numSpacesProcessed = 0; + if (*input == ' ') { + u8 *temp = input; + temp++; + numSpaces++; + while (*temp == ' ') { + temp++; + numSpaces++; } - if (*arg0 != '\0') { - while(phi_v1 < phi_v0){ - *arg1 = *arg0; - arg0++; - arg1++; - phi_v1++; - } + if (*temp == '\0') { + break; + } + while(numSpacesProcessed < numSpaces){ + *(output++) = *(input++); + numSpacesProcessed++; } - } else { - *(arg1++) = *(arg0++); + *(output++) = *(input++); } } - *arg1 = '\0'; + *output = '\0'; } +#else +GLOBAL_ASM("asm/non_matchings/menu/trim_filename_string.s") #endif void func_80097874(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 *arg4, s32 arg5, s32 arg6) { @@ -3863,11 +4150,11 @@ void func_800983C0(s32 arg0) { set_text_font(2); set_text_color(0, 0, 0, 0xFF, 0x80); draw_text(&D_801263A0, 0xA1, 0x23, sp28, 0xC); - draw_text(&D_801263A0, 0xA1, 0x43, D_800DF4A0->unk118, 0xC); - set_text_color(0xFF, 0xFF, 0xFF, 0, 0xFF); + draw_text(&D_801263A0, 0xA1, 0x43, D_800DF4A0[70], 0xC); + set_text_color(255, 255, 255, 0, 0xFF); draw_text(&D_801263A0, 0xA0, 0x20, sp28, 0xC); - draw_text(&D_801263A0, 0xA0, 0x40, D_800DF4A0->unk118, 0xC); - draw_text(&D_801263A0, 0xA0, sp2C + 0xB0, D_800DF4A0->unk228[D_800E0FEC], 0xC); + draw_text(&D_801263A0, 0xA0, 0x40, D_800DF4A0[70], 0xC); + draw_text(&D_801263A0, 0xA0, sp2C + 0xB0, D_800DF4A0[138 + D_800E0FEC], 0xC); draw_text(&D_801263A0, 0xA0, sp2C + 0xD0, sp24, 0xC); } @@ -4483,17 +4770,17 @@ s32 func_8009D9F4(void) { func_800C4EDC(1, 0x18, 0x10, 0xB8, 0x87); func_800C4F7C(1, 0); state = 0; - playerInput = get_button_inputs_from_player(0); + playerInput = get_buttons_pressed_from_player(0); D_80126504 = 0; D_800DF4DC = 0; - func_800C5168(1, -0x8000, 6, D_800DF4A0->unkC4, 1, 4); - func_800C5168(1, -0x8000, 0x14, D_800DF4A0->unkC8, 1, 4); + func_800C5168(1, -0x8000, 6, D_800DF4A0[49], 1, 4); + func_800C5168(1, -0x8000, 0x14, D_800DF4A0[50], 1, 4); D_8012650E = 0x32; - func_8009D1B8(D_800DF4A0->unk5C, 0x14, 0); - func_8009D1B8(D_800DF4A0->unkCC, 0x14, 1); + func_8009D1B8(D_800DF4A0[23], 0x14, 0); + func_8009D1B8(D_800DF4A0[51], 0x14, 1); func_8009D26C(); - if (playerInput & 0x8000) { - func_80001D04(0xEF, NULL); + if (playerInput & A_BUTTON) { + func_80001D04(0xEF, NULL); switch(D_80126516) { case 0: state = 1; diff --git a/src/menu.h b/src/menu.h index 146a34ce..a5e6da47 100644 --- a/src/menu.h +++ b/src/menu.h @@ -98,32 +98,7 @@ extern s32 gIsInAdventureTwo; extern s32 gPlayerHasSeenCautionMenu; extern s32 D_800DF49C; -typedef struct unk800DF4A0 { - u8 pad0[0x5C]; - s32 unk5C; - s32 unk60; - u8 unk64[0xC]; - s32 unk70; - u8 pad74[0x1C]; - s32 unk90; - u8 pad94[0x30]; - s32 unkC4; - s32 unkC8; - s32 unkCC; - u8 padD0[0x48]; - s32 unk118; - u8 pad11C[0x100]; - s32 unk21C; - u8 pad220[0x8]; - s32 unk228[4]; - u8 pad238[0x24]; - s32 unk25C; - u8 pad260[0x78]; - s32 unk2D8; - s32 unk2DC; -} unk800DF4A0; - -extern unk800DF4A0* D_800DF4A0; +extern char **D_800DF4A0; extern u8 D_800DF4A4; extern u8 D_800DF4A8; @@ -295,7 +270,7 @@ extern s16 D_800DFCAC[4]; extern u16 D_800DFCB4[112]; -extern s32 D_800DFD94; +extern s32 gShowControllerPakMenu; extern s32 gActiveMagicCodes; extern s32 gUnlockedMagicCodes; @@ -332,11 +307,20 @@ extern s16 D_800E0398[6]; extern s16 D_800E03A4[6]; -extern u16 D_800E03B0[14]; +typedef struct unk800E03CC { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; + s16 unkE; +} unk800E03CC; -extern u16 D_800E03CC[24]; +extern unk800E03CC D_800E03CC[3]; -extern u16 D_800E03FC[10]; +extern s16 D_800E03FC[10]; extern s32 gMultiplayerSelectedNumberOfRacers; extern s32 D_800E0414; diff --git a/src/unknown_0348C0.c b/src/unknown_0348C0.c index 5a1a8ed3..0c5d5c75 100644 --- a/src/unknown_0348C0.c +++ b/src/unknown_0348C0.c @@ -339,7 +339,7 @@ void func_800357D4(Object *obj, s32 arg1) { temp_v1 = obj->unk4C; if (temp_v1->unk13 < 0xC8) { if (someObj == temp_v1->unk0) { - if ((get_button_inputs_from_player(0) & Z_TRIG) || someObj == obj->unk5C->unk100) { + if ((get_buttons_pressed_from_player(0) & Z_TRIG) || someObj == obj->unk5C->unk100) { func_8006F29C(); } } @@ -861,7 +861,7 @@ void func_800388D4(Object *arg0, s32 arg1) { if (playerObj->descriptor_ptr->unk54 == 1) { Object_64_800388D4* playerObj64 = playerObj->unk64; temp_a0 = playerObj64->unk0; - if ((temp_a0 != -1) && (get_button_inputs_from_player(temp_a0) & Z_TRIG)) { + if ((temp_a0 != -1) && (get_buttons_pressed_from_player(temp_a0) & Z_TRIG)) { func_800C31EC(arg0->unk78 & 0xFF, arg0); } } diff --git a/src/unknown_06B2B0.c b/src/unknown_06B2B0.c index 395f517d..5a8ea0fb 100644 --- a/src/unknown_06B2B0.c +++ b/src/unknown_06B2B0.c @@ -11,6 +11,7 @@ #include "f3ddkr.h" #include "asset_sections.h" #include "menu.h" +#include "video.h" /************ .rodata ************/ @@ -45,13 +46,13 @@ s16 D_800DD32C = 0; s8 D_800DD330 = 0; -// Unused? +// Unused char *D_800DD334[6] = { NULL, NULL, NULL, // These could be a file boundary. D_800E7110, D_800E7118, D_800E7128 }; -// Unused? +// Unused char gBuildString[40] = "Version 7.7 29/09/97 15.00 L.Schuneman"; s8 D_800DD374 = 0; @@ -69,22 +70,10 @@ s8 D_800DD3A0 = 0; s32 D_800DD3A4 = 0; // Currently unknown, might be a different type. s32 D_800DD3A8 = 0; // Currently unknown, might be a different type. s32 D_800DD3AC = 0; // Currently unknown, might be a different type. -s32 D_800DD3B0 = 0x1194; -s32 D_800DD3B4 = 0x1B58; -s32 D_800DD3B8 = 0x2AF8; -s32 D_800DD3BC = 0x2AF8; -s32 D_800DD3C0 = 0x12C; -s32 D_800DD3C4 = 0x258; -s32 D_800DD3C8 = 0x352; -s32 D_800DD3CC = 0x384; -s32 D_800DD3D0 = 0x12C; -s32 D_800DD3D4 = 0x190; -s32 D_800DD3D8 = 0x226; -s32 D_800DD3DC = 0x258; -s32 D_800DD3E0 = 0x14; -s32 D_800DD3E4 = 0x1E; -s32 D_800DD3E8 = 0x28; -s32 D_800DD3EC = 0x32; +s32 gNumF3dCmdsPerPlayer[4] = { 4500, 7000, 11000, 11000 }; +s32 gNumHudVertsPerPlayer[4] = { 300, 600, 850, 900 }; +s32 gNumHudMatPerPlayer[4] = { 300, 400, 550, 600 }; +s32 gNumHudTrisPerPlayer[4] = { 20, 30, 40, 50 }; s8 D_800DD3F0 = 0; s16 D_800DD3F4[8] = { @@ -113,7 +102,7 @@ s32 D_800DD424[2] = { /*******************************/ -extern s32 D_800DFD94; +extern s32 gShowControllerPakMenu; /************ .bss ************/ @@ -140,15 +129,15 @@ s32 D_80121180[16]; s32 D_801211C0[2]; s16 D_801211C8[20]; -Gfx *D_801211F0[2]; -Gfx *D_801211F8; +Gfx *gDisplayLists[2]; +Gfx *gCurrDisplayList; s32 D_801211FC; -s32 D_80121200[2]; -s32 D_80121208; -s32 D_80121210[2]; -s32 D_80121218; -s32 D_80121220[2]; -s32 D_80121228; +s32 *gHudMatrices[2]; +s32 gCurrHudMat; +s32 *gHudVertices[2]; +s32 gCurrHudVerts; +s32 *gHudTriangles[2]; +s32 gCurrHudTris; s32 D_80121230[8]; s8 D_80121250[16]; s32 D_80121260[2210]; @@ -172,10 +161,10 @@ s32 D_80123520; s8 D_80123524; s8 D_80123525; s8 D_80123526; -s32 D_80123528; -s32 D_8012352C; -s32 D_80123530; -s32 D_80123534; +s32 gCurrNumF3dCmdsPerPlayer; +s32 gCurrNumHudMatPerPlayer; +s32 gCurrNumHudTrisPerPlayer; +s32 gCurrNumHudVertsPerPlayer; s32 D_80123538[3]; s32 D_80123544; s32 *D_80123548; // This is actually an OSMesgQueue pointer. @@ -188,7 +177,6 @@ s32 D_80123560[8]; extern s32 gVideoCurrFramebuffer; extern s32 gVideoLastFramebuffer; extern s32 gVideoLastDepthBuffer; -extern s32 osTvType; void func_8006F43C(void); @@ -231,6 +219,12 @@ void func_80072708(void); void update_camera_fov(f32); void func_8006BFC8(s8 *arg0); void func_80068158(Gfx**, s32, s32, s32, s32); +s32 get_trophy_race_world_id(void); +void func_8006DCF8(s32 arg0); +void func_8006EC48(s32 arg0); +void calc_and_alloc_heap_for_settings(void); +void reset_character_id_slots(void); +void func_8006EFDC(void); #ifdef NON_MATCHING @@ -320,7 +314,10 @@ s16 func_8006ABB4(s32 arg0) { return D_8012117C[arg0].unk4; } +// Unused? GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006AC00.s") + +// Unused? GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006AE2C.s") // Unused. @@ -407,7 +404,6 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, s32 size; s32 offset; s32 temp; - s32 temp2; s32 phi_v1_2; s32 phi_v0_2; s8 *someAsset; @@ -453,7 +449,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, if (func_8006C2F0() == 0) { if (D_800DD32C == 0) { if (gCurrentLevelHeader->race_type == RACE_TYPE_BOSS) { - phi_v1_2 = settings->courseFlagsPtr[temp2]; + phi_v1_2 = settings->courseFlagsPtr[levelId]; phi_v0_2 = FALSE; if (gCurrentLevelHeader->world == 0 || gCurrentLevelHeader->world == 5) { phi_v0_2 = TRUE; @@ -730,21 +726,20 @@ void func_8006BEFC(void) { } } -#ifdef NON_MATCHING void func_8006BFC8(s8 *arg0) { s32 temp, temp2; s16 phi_v1; s8 phi_s0; Settings *settings; - phi_s0 = 0; + phi_s0 = 0; if (!is_in_tracks_mode()) { settings = get_settings(); - // Regalloc issue here - if (settings->courseFlagsPtr[settings->courseId] & 2) { + temp = settings->courseFlagsPtr[settings->courseId]; + if (temp & 2) { phi_s0 = 1; } - if (settings->courseFlagsPtr[settings->courseId] & 4) { + if (temp & 4) { phi_s0 = 2; } } else { @@ -782,9 +777,6 @@ void func_8006BFC8(s8 *arg0) { load_asset_to_address(ASSET_UNKNOWN_0, D_801211C0[0], temp2, temp); free_from_memory_pool(gTempAssetTable); } -#else -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006BFC8.s") -#endif void func_8006C164(void) { free_from_memory_pool(D_801211C0[0]); @@ -870,15 +862,15 @@ void func_8006C3E0(void) { if (func_8006F4EC() != 0) { D_800DD374 = FALSE; } - D_80123514 = 0; + D_80123514 = FALSE; D_80123518 = 0; - if (osTvType == 0) { - sp24 = 0xE; - } else if (osTvType == 1) { + if (osTvType == TV_TYPE_PAL) { + sp24 = 14; + } else if (osTvType == TV_TYPE_NTSC) { sp24 = 0; - } else if (osTvType == 2) { - sp24 = 0x1C; + } else if (osTvType == TV_TYPE_MPAL) { + sp24 = 28; } osCreateScheduler(&D_80121260, &D_801234E8, 0xD, sp24, 1); @@ -899,7 +891,7 @@ void func_8006C3E0(void) { func_800598D0(); func_800AE530(); func_800AB1F0(); - func_8006E3BC(); + calc_and_alloc_heap_for_settings(); func_8006EFDC(); load_fonts(); func_80075B18(); @@ -912,9 +904,9 @@ void func_8006C3E0(void) { D_80123508 = 0; D_801234E8 = 0; - D_801211F8 = D_801211F0[D_801234E8]; - gDPFullSync(D_801211F8++) - gSPEndDisplayList(D_801211F8++) + gCurrDisplayList = gDisplayLists[D_801234E8]; + gDPFullSync(gCurrDisplayList++) + gSPEndDisplayList(gCurrDisplayList++) osSetTime(0); } @@ -929,14 +921,14 @@ void render(void) { osSetTime(0); if (D_800DD380 == 8) { - D_801211F8 = D_801211F0[D_801234E8]; - set_rsp_segment(&D_801211F8, 0, 0); - set_rsp_segment(&D_801211F8, 1, gVideoCurrFramebuffer); - set_rsp_segment(&D_801211F8, 2, gVideoLastDepthBuffer); - set_rsp_segment(&D_801211F8, 4, gVideoCurrFramebuffer - 0x500); + gCurrDisplayList = gDisplayLists[D_801234E8]; + set_rsp_segment(&gCurrDisplayList, 0, 0); + set_rsp_segment(&gCurrDisplayList, 1, gVideoCurrFramebuffer); + set_rsp_segment(&gCurrDisplayList, 2, gVideoLastDepthBuffer); + set_rsp_segment(&gCurrDisplayList, 4, gVideoCurrFramebuffer - 0x500); } if (D_800DD3F0 == 0) { - setupOSTasks(D_801211F0[D_801234E8], D_801211F8, 0); + setupOSTasks(gDisplayLists[D_801234E8], gCurrDisplayList, 0); D_801234E8 += 1; D_801234E8 &= 1; } @@ -944,18 +936,18 @@ void render(void) { D_800DD3F0 -= 1; } - D_801211F8 = D_801211F0[D_801234E8]; - D_80121208 = D_80121200[D_801234E8]; - D_80121218 = D_80121210[D_801234E8]; - D_80121228 = D_80121220[D_801234E8]; + gCurrDisplayList = gDisplayLists[D_801234E8]; + gCurrHudMat = gHudMatrices[D_801234E8]; + gCurrHudVerts = gHudVertices[D_801234E8]; + gCurrHudTris = gHudTriangles[D_801234E8]; - set_rsp_segment(&D_801211F8, 0, 0, &D_801234E8); - set_rsp_segment(&D_801211F8, 1, gVideoLastFramebuffer); - set_rsp_segment(&D_801211F8, 2, gVideoLastDepthBuffer); - set_rsp_segment(&D_801211F8, 4, gVideoLastFramebuffer - 0x500); - func_800780DC(&D_801211F8); - func_80078054(&D_801211F8); - render_background(&D_801211F8, &D_80121208, 1); + set_rsp_segment(&gCurrDisplayList, 0, 0, &D_801234E8); + set_rsp_segment(&gCurrDisplayList, 1, gVideoLastFramebuffer); + set_rsp_segment(&gCurrDisplayList, 2, gVideoLastDepthBuffer); + set_rsp_segment(&gCurrDisplayList, 4, gVideoLastFramebuffer - 0x500); + func_800780DC(&gCurrDisplayList); + func_80078054(&gCurrDisplayList); + render_background(&gCurrDisplayList, &gCurrHudMat, 1); D_800DD37C = func_8006A1C4(D_800DD37C, D_800DD404); if (func_800B76DC() != 0) { render_epc_lock_up_display(); @@ -972,7 +964,7 @@ void render(void) { } switch(D_801234EC) { - case -1: + case -1: // Pre-boot screen func_8006F43C(); break; case 1: // In a menu @@ -981,7 +973,7 @@ void render(void) { case 0: // In game (Controlling a character) func_8006CCF0(D_800DD404); break; - case 5: + case 5: // EPC (lockup display) func_800B77D4(D_800DD404); break; } @@ -990,19 +982,19 @@ void render(void) { // menus & gameplay. func_80000D00((u8)D_800DD404); - func_800B5F78(&D_801211F8); - func_800C56FC(&D_801211F8, &D_80121208, &D_80121218); + func_800B5F78(&gCurrDisplayList); + func_800C56FC(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts); func_800C5620(4); func_800C5494(4); if (func_800C0494(D_800DD404) != 0) { - render_fade_transition(&D_801211F8, &D_80121208, &D_80121218); + render_fade_transition(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts); } if ((D_80123520 >= 8) && (func_8006F4C8() != 0)) { - func_800829F8(&D_801211F8, D_800DD404); + func_800829F8(&gCurrDisplayList, D_800DD404); } - gDPFullSync(D_801211F8++) - gSPEndDisplayList(D_801211F8++) + gDPFullSync(gCurrDisplayList++) + gSPEndDisplayList(gCurrDisplayList++) func_80066610(); if (D_800DD3F0 != 1) { @@ -1014,13 +1006,13 @@ void render(void) { } D_800DD38C = 0; func_80071198(); - if (gIsPaused == 0) { + if (!gIsPaused) { func_80066520(); } if (D_800DD3F0 == 2) { - phi_v0_2 = 153600; - if (osTvType == 0) { - phi_v0_2 = 168960; + phi_v0_2 = 320 * 240 * 2; + if (osTvType == TV_TYPE_PAL) { + phi_v0_2 = (s32)((320 * 240 * 2) * 1.1); } func_80070B04(gVideoLastFramebuffer, gVideoCurrFramebuffer, gVideoCurrFramebuffer + phi_v0_2); } @@ -1075,9 +1067,9 @@ void func_8006CC14(void) { func_800AE270(); func_800A003C(); func_800C30CC(); - D_801211F8 = D_801211F0[D_801234E8]; - gDPFullSync(D_801211F8++) - gSPEndDisplayList(D_801211F8++) + gCurrDisplayList = gDisplayLists[D_801234E8]; + gDPFullSync(gCurrDisplayList++) + gSPEndDisplayList(gCurrDisplayList++) set_free_queue_state(2); } @@ -1091,25 +1083,25 @@ void load_menu_with_level_background(s32 menuId, s32 levelId, s32 cutsceneId); // Almost matching except for a couple minor issues. void func_8006CCF0(s32 arg0) { - s32 i, s0, sp40, sp3C, buttonInputs, phi_v1_2; + s32 i, buttonHeldInputs, sp40, sp3C, buttonPressedInputs, phi_v1_2; sp40 = 0; - s0 = 0; - buttonInputs = 0; + buttonHeldInputs = 0; + buttonPressedInputs = 0; for (i = 0; i < func_8009C3D8(); i++) { - s0 |= func_8006A528(i); - buttonInputs |= get_button_inputs_from_player(i); + buttonHeldInputs |= get_buttons_held_from_player(i); + buttonPressedInputs |= get_buttons_pressed_from_player(i); } if (D_800DD374) { - buttonInputs |= START_BUTTON; + buttonPressedInputs |= START_BUTTON; } if (!gIsPaused) { func_80010994(arg0); if (func_80066510() == 0 || func_8001139C()) { - if ((buttonInputs & START_BUTTON) && (func_8006C2F0() == 0) && (D_800DD390 == 0) + if ((buttonPressedInputs & START_BUTTON) && (func_8006C2F0() == 0) && (D_800DD390 == 0) && (D_801234EC == 0) && (D_80123516 == 0) && (D_800DD394 == 0) && (D_800DD398 == 0)) { - buttonInputs = 0; + buttonPressedInputs = 0; gIsPaused = TRUE; func_80093A40(); } @@ -1126,15 +1118,16 @@ void func_8006CCF0(s32 arg0) { } gParticlePtrList_flush(); func_8001BF20(); - func_80024D54(&D_801211F8, &D_80121208, &D_80121218, &D_80121228, arg0); + func_80024D54(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, &gCurrHudTris, arg0); if (D_801234EC == 0) { - s0 &= ~0x2030; + // Ignore the user's L/R/Z buttons. + buttonHeldInputs &= ~(L_TRIG | R_TRIG | Z_TRIG); } if (D_80123516 != 0) { - i = func_80095728(&D_801211F8, &D_80121208, &D_80121218, arg0); + i = func_80095728(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, arg0); switch (i - 1) { case 1: - s0 |= 0x2020; + buttonHeldInputs |= (L_TRIG | Z_TRIG); break; case 0: D_80123516 = 0; @@ -1143,36 +1136,36 @@ void func_8006CCF0(s32 arg0) { case 3: func_8006C2E4(); D_800DD390 = 0; - s0 |= 0x30; + buttonHeldInputs |= (L_TRIG | R_TRIG); break; // Issue with the below cases. case 4: sp40 = 1; - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 7: sp40 = 2; - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 8: sp40 = 3; - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 9: sp40 = 4; - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 10: sp40 = 5; - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 11: sp40 = 6; - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 12: sp40 = 7; - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; } } @@ -1188,7 +1181,7 @@ void func_8006CCF0(s32 arg0) { } } if (gIsPaused) { - i = func_80094170(&D_801211F8, arg0); + i = func_80094170(&gCurrDisplayList, arg0); switch (i - 1) { case 0: gIsPaused = FALSE; @@ -1199,7 +1192,7 @@ void func_8006CCF0(s32 arg0) { if (func_80023568() != 0 && is_in_two_player_adventure()) { func_8006F398(); } - s0 |= 0x2020; + buttonHeldInputs |= (L_TRIG | R_TRIG); break; case 2: func_80001050(); @@ -1207,17 +1200,17 @@ void func_8006CCF0(s32 arg0) { if (func_80023568() != 0 && is_in_two_player_adventure()) { func_8006F398(); } - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 4: sp40 = 1; func_800C314C(); - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 11: sp40 = 6; func_800C314C(); - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; break; case 5: gIsPaused = FALSE; @@ -1231,14 +1224,14 @@ void func_8006CCF0(s32 arg0) { func_80001050(); func_800C314C(); func_8006C2E4(); - s0 |= 0x30; + buttonHeldInputs |= (L_TRIG | R_TRIG); break; } } - func_80078054(&D_801211F8); - render_borders_for_multiplayer(&D_801211F8); - func_800A8474(&D_801211F8, &D_80121208, &D_80121218, arg0); - func_80077268(&D_801211F8); + func_80078054(&gCurrDisplayList); + render_borders_for_multiplayer(&gCurrDisplayList); + func_800A8474(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, arg0); + func_80077268(&gCurrDisplayList); if (D_800DD39C != 0) { if (func_800214C4() != 0) { D_801234F4 = 0x23; @@ -1260,10 +1253,10 @@ void func_8006CCF0(s32 arg0) { if (D_800DD394 > 0) { D_800DD394 -= arg0; if (D_800DD394 <= 0) { - s0 = 0x20; + buttonHeldInputs = L_TRIG; switch(D_80123524) { case 1: - s0 = 0x2020; + buttonHeldInputs = (L_TRIG | Z_TRIG); break; case 2: sp40 = 3; @@ -1279,7 +1272,7 @@ void func_8006CCF0(s32 arg0) { D_801234F4 = D_80123525; D_80123504 = 0; D_80123508 = 0; - s0 = 0; + buttonHeldInputs = 0; break; } D_80123524 = 0; @@ -1295,17 +1288,17 @@ void func_8006CCF0(s32 arg0) { if (D_801234F4 == -10 && is_in_two_player_adventure()) { func_8006F398(); } - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; D_801234FC = 2; } else { - s0 = 0; + buttonHeldInputs = 0; D_801234FC = 1; sp40 = 8; } } else { D_801234FC = 0; D_801234F8 = 1; - s0 = 0; + buttonHeldInputs = 0; } } } else { @@ -1313,7 +1306,7 @@ void func_8006CCF0(s32 arg0) { if (func_8006C2F0() != 0) { if (D_800DD394 == 0) { // Minor issue here. - if ((func_800214C4() != 0) || ((buttonInputs & A_BUTTON) && (sp3C != 0))) { + if ((func_800214C4() != 0) || ((buttonPressedInputs & A_BUTTON) && (sp3C != 0))) { if (sp3C != 0) { func_80000B28(); } @@ -1324,10 +1317,10 @@ void func_8006CCF0(s32 arg0) { if (D_801234F4 == -10 && is_in_two_player_adventure()) { func_8006F398(); } - s0 |= 0x20; + buttonHeldInputs |= L_TRIG; D_801234FC = 2; } else { - s0 = 0; + buttonHeldInputs = 0; D_801234FC = 1; sp40 = 8; } @@ -1338,14 +1331,14 @@ void func_8006CCF0(s32 arg0) { } } } - if (((s0 & 0x20) && (D_801234EC == 0)) || (D_801234FC != 0)) { + if (((buttonHeldInputs & L_TRIG) && (D_801234EC == 0)) || (D_801234FC != 0)) { gIsPaused = FALSE; D_800DD394 = 0; D_80123516 = 0; func_8006CC14(); func_8006EC48(get_save_file_index()); if (sp40 != 0) { - D_80123514 = 0; + D_80123514 = FALSE; switch (sp40) { case 1: // Go to track select menu from "Select Track" option in tracks menu. @@ -1377,9 +1370,9 @@ void func_8006CCF0(s32 arg0) { load_menu_with_level_background(MENU_CHARACTER_SELECT, 0x16, i); break; case 7: - D_80123514 = 1; + D_80123514 = TRUE; load_menu_with_level_background(MENU_UNKNOWN_23, -1, 0); - D_80123514 = 0; + D_80123514 = FALSE; break; case 8: load_menu_with_level_background(MENU_CREDITS, -1, 0); @@ -1389,11 +1382,11 @@ void func_8006CCF0(s32 arg0) { if (D_80121250[2] == -1) { load_menu_with_level_background(MENU_UNUSED_8, -1, 0); } else { - D_80123514 = 1; + D_80123514 = TRUE; load_menu_with_level_background(MENU_UNKNOWN_5, -1, -1); } - } else if (!(s0 & 0x10)) { - if (!(s0 & 0x2000)) { + } else if (!(buttonHeldInputs & R_TRIG)) { + if (!(buttonHeldInputs & Z_TRIG)) { D_801234F4 = D_80121250[0]; D_80123504 = D_80121250[15]; D_80123508 = D_80121250[D_80121250[1] + 8]; @@ -1485,10 +1478,10 @@ void load_menu_with_level_background(s32 menuId, s32 levelId, s32 cutsceneId) { func_80004A60(2, 0x7FFF); func_80065EA0(); - if (D_80123514 == 0) { - D_80123514 = 0; // Someone at Rare: "I know I just checked if this was zero, but I need to be sure!" + if (!D_80123514) { + D_80123514 = FALSE; if (levelId < 0) { - D_80123514 = 1; + D_80123514 = TRUE; } else { load_level_3(levelId, -1, 0, 2, cutsceneId); } @@ -1529,8 +1522,8 @@ void load_level_3(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleI } void func_8006DBE4(void) { - if (D_80123514 == 0) { - D_80123514 = 1; + if (!D_80123514) { + D_80123514 = TRUE; set_free_queue_state(0); func_8006BEFC(); func_800C01D8(&D_800DD3F4); @@ -1539,7 +1532,7 @@ void func_8006DBE4(void) { func_800C30CC(); set_free_queue_state(2); } - D_80123514 = 0; + D_80123514 = FALSE; } void func_8006DC58(s32 arg0) { @@ -1547,35 +1540,196 @@ void func_8006DC58(s32 arg0) { func_80010994(arg0); gParticlePtrList_flush(); func_8001BF20(); - func_80024D54(&D_801211F8, &D_80121208, &D_80121218, &D_80121228, arg0); + func_80024D54(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, &gCurrHudTris, arg0); func_800C3440(arg0); - func_80078054(&D_801211F8); - render_borders_for_multiplayer(&D_801211F8); - func_80077268(&D_801211F8); + func_80078054(&gCurrDisplayList); + render_borders_for_multiplayer(&gCurrDisplayList); + func_80077268(&gCurrDisplayList); } } -// Has a jump table +#ifdef NON_MATCHING +// Minor & regalloc issues. +void func_8006DCF8(s32 arg0) { + s32 menuLoopResult, temp, temp2, tempResult; + + gIsPaused = FALSE; + D_80123516 = 0; + if (!D_80123514 && D_801234F0) { + func_8006DC58(arg0); + } + menuLoopResult = menu_loop(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, &gCurrHudTris, arg0); + D_801234F0 = TRUE; + if (menuLoopResult == -2) { + D_801234F0 = FALSE; + return; + } + if ((menuLoopResult != -1) && (menuLoopResult & 0x200)) { + func_8006DBE4(); + gCurrDisplayList = gDisplayLists[D_801234E8]; + gDPFullSync(gCurrDisplayList++) + gSPEndDisplayList(gCurrDisplayList++) + D_801234F4 = menuLoopResult & 0x7F; + D_80123518 = func_8006B0AC(D_801234F4); + D_80123504 = 0; + D_80123508 = 0x64; + D_801234EC = 0; + gIsPaused = FALSE; + D_80123516 = 0; + load_level_2(D_801234F4, D_80123500, D_80123504, D_80123518); + func_8006EC48(get_save_file_index()); + return; + } + if ((menuLoopResult != -1) && (menuLoopResult & 0x100)) { + func_8006CC14(); + gIsPaused = FALSE; + D_80123516 = 0; + switch (menuLoopResult & 0x7F) { + case 5: + load_menu_with_level_background(MENU_TRACK_SELECT, -1, 1); + break; + case 14: + D_801234F4 = 0; + D_80123504 = 0; + D_80123508 = 0x64; + D_801234EC = 0; + load_level_2(D_801234F4, D_80123500, D_80123504, D_80123518); + func_8006EC48(get_save_file_index()); + break; + case 1: + D_80123504 = 0; + D_80123508 = 0x64; + D_801234F4 = D_80121250[0]; + D_801234EC = 0; + // Minor issue with these 2 if statements + temp2 = D_80121250[D_80121250[1] + 8]; + temp = D_80121250[15]; + if (temp >= 0) { + D_80123504 = temp; + } + if (temp2 >= 0) { + D_80123508 = temp2; + } + load_level_2(D_801234F4, D_80123500, D_80123504, D_80123518); + func_8006EC48(get_save_file_index()); + break; + case 2: + D_801234EC = 0; + load_level_2(D_801234F4, D_80123500, D_80123504, D_80123518); + break; + case 3: + D_801234EC = 0; + D_801234F4 = D_80121250[0]; + D_80123504 = D_80121250[15]; + D_80123508 = D_80121250[D_80121250[1] + 8]; + D_80123518 = func_8006B0AC(D_801234F4); + load_level_2(D_801234F4, D_80123500, D_80123504, D_80123518); + break; + default: + load_menu_with_level_background(MENU_TITLE, -1, 0); + break; + } + return; + } + if ((menuLoopResult & 0x80) && (menuLoopResult != -1)) { + func_8006DBE4(); + // Minor issue here. + gCurrDisplayList = gDisplayLists[D_801234E8]; + gDPFullSync(gCurrDisplayList++) + gSPEndDisplayList(gCurrDisplayList++) + temp = menuLoopResult & 0x7F; + D_80121250[1] = temp; + D_80121250[0] = D_801234F4; + D_801234F4 = D_80121250[temp + 2]; + D_80123504 = D_80121250[temp + 4]; + D_801234EC = 0; + D_80123508 = D_80121250[temp + 12]; + temp = get_player_selected_vehicle(0); + D_80123500 = gSettingsPtr->gObjectCount - 1; + load_level_2(D_801234F4, D_80123500, D_80123504, temp); + D_801234FC = 0; + D_80123518 = D_8012351C; + return; + } + if (menuLoopResult > 0) { + func_8006DBE4(); + gCurrDisplayList = gDisplayLists[D_801234E8]; + gDPFullSync(gCurrDisplayList++) + gSPEndDisplayList(gCurrDisplayList++) + D_801234EC = 0; + func_8006CAE4(menuLoopResult, -1, D_80123518); + if (gSettingsPtr->newGame && !is_in_tracks_mode()) { + func_80000B28(); + gSettingsPtr->newGame = FALSE; + } + } +} + +#else GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006DCF8.s") +#endif void load_level_for_menu(s32 levelId, s32 numberOfPlayers, s32 cutsceneId) { - if (D_80123514 == 0) { + if (!D_80123514) { func_8006DBE4(); if (get_thread30_level_id_to_load() == 0) { - D_801211F8 = D_801211F0[D_801234E8]; - gDPFullSync(D_801211F8++) - gSPEndDisplayList(D_801211F8++) + gCurrDisplayList = gDisplayLists[D_801234E8]; + gDPFullSync(gCurrDisplayList++) + gSPEndDisplayList(gCurrDisplayList++) } } if (levelId != -1) { load_level_3(levelId, numberOfPlayers, 0, 2, cutsceneId); - D_80123514 = (u8)0; + D_80123514 = FALSE; return; } - D_80123514 = (u8)1; + D_80123514 = TRUE; } -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006E3BC.s") +void calc_and_alloc_heap_for_settings(void) { + s32 dataSize; + u32 sizes[15]; + s32 numWorlds, numLevels; + + func_8006A6B0(); + reset_character_id_slots(); + get_number_of_levels_and_worlds(&numLevels, &numWorlds); + sizes[0] = sizeof(Settings); + sizes[1] = sizes[0] + (numLevels * 4); // balloonsPtr + sizes[2] = sizes[1] + (numWorlds * 2); // flapInitialsPtr[0] + dataSize = (numLevels * 2); + sizes[3] = sizes[2] + dataSize; // flapInitialsPtr[1] + sizes[4] = sizes[3] + dataSize; // flapInitialsPtr[2] + sizes[5] = sizes[4] + dataSize; // flapTimesPtr[0] + sizes[6] = sizes[5] + dataSize; // flapTimesPtr[1] + sizes[7] = sizes[6] + dataSize; // flapTimesPtr[2] + sizes[8] = sizes[7] + dataSize; // courseInitialsPtr[0] + sizes[9] = sizes[8] + dataSize; // courseInitialsPtr[1] + sizes[10] = sizes[9] + dataSize; // courseInitialsPtr[2] + sizes[11] = sizes[10] + dataSize; // courseTimesPtr[0] + sizes[12] = sizes[11] + dataSize; // courseTimesPtr[1] + sizes[13] = sizes[12] + dataSize; // courseTimesPtr[2] + sizes[14] = sizes[13] + dataSize; // total size + + gSettingsPtr = allocate_from_main_pool_safe(sizes[14], COLOR_TAG_WHITE); + gSettingsPtr->courseFlagsPtr = (u8*)gSettingsPtr + sizes[0]; + gSettingsPtr->balloonsPtr = (u8*)gSettingsPtr + sizes[1]; + gSettingsPtr->tajFlags = 0; + gSettingsPtr->flapInitialsPtr[0] = (u8*)gSettingsPtr + sizes[2]; + gSettingsPtr->flapInitialsPtr[1] = (u8*)gSettingsPtr + sizes[3]; + gSettingsPtr->flapInitialsPtr[2] = (u8*)gSettingsPtr + sizes[4]; + gSettingsPtr->flapTimesPtr[0] = (u8*)gSettingsPtr + sizes[5]; + gSettingsPtr->flapTimesPtr[1] = (u8*)gSettingsPtr + sizes[6]; + gSettingsPtr->flapTimesPtr[2] = (u8*)gSettingsPtr + sizes[7]; + gSettingsPtr->courseInitialsPtr[0] = (u8*)gSettingsPtr + sizes[8]; + gSettingsPtr->courseInitialsPtr[1] = (u8*)gSettingsPtr + sizes[9]; + gSettingsPtr->courseInitialsPtr[2] = (u8*)gSettingsPtr + sizes[10]; + gSettingsPtr->courseTimesPtr[0] = (u8*)gSettingsPtr + sizes[11]; + gSettingsPtr->courseTimesPtr[1] = (u8*)gSettingsPtr + sizes[12]; + gSettingsPtr->courseTimesPtr[2] = (u8*)gSettingsPtr + sizes[13]; + gSettingsPtr->unk4C = &D_80121250; + D_800DD37C = 263; +} void func_8006E5BC(void) { s32 i, j; @@ -1607,7 +1761,28 @@ void func_8006E5BC(void) { gSettingsPtr->courseId = 0; } -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006E770.s") +void func_8006E770(Settings *settings, s32 arg1) { + s32 i, j; + s32 numWorlds, numLevels; + s32 index; + u16 *temp_v0; + + get_number_of_levels_and_worlds(&numLevels, &numWorlds); + temp_v0 = (u16*)get_misc_asset(0x17); + for (i = 0; i < 3; i++) { // 3 = number of save files? + for(j = 0; j < numLevels; j++) { + index = (j * 12) + (i * 4); + if (arg1 & 1) { + settings->flapInitialsPtr[i][j] = temp_v0[index + 3]; + settings->flapTimesPtr[i][j] = temp_v0[index + 2]; + } + if (arg1 & 2) { + settings->courseInitialsPtr[i][j] = temp_v0[index + 1]; + settings->courseTimesPtr[i][j] = temp_v0[index]; + } + } + } +} void func_8006E994(Settings* settings) { s32 i; @@ -1736,77 +1911,37 @@ s32 func_8006EFB8(void) { return 1; } -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006EFDC.s") -#else - -/* Size: 0x40 bytes, I think this might be a 4x4 matrix. */ -typedef struct unk80121200 { - u8 pad0[0x40]; -} unk80121200; - -/* Size: 10 bytes */ -typedef struct unk80121210 { - u8 pad0[10]; -} unk80121210; - -/* Size: 16 bytes */ -typedef struct unk80121220 { - u8 pad0[16]; -} unk80121220; - -extern s32 D_8012350C; - -extern s32 D_800DD3BC; -extern s32 D_800DD3CC; -extern s32 D_800DD3DC; -extern s32 D_800DD3EC; - -extern s32 D_80123528; -extern s32 D_8012352C; -extern s32 D_80123530; -extern s32 D_80123534; - -extern unk80121200 *D_80121200[3]; -extern unk80121210 *D_80121210[3]; -extern unk80121220 *D_80121220[3]; - -void *allocate_from_main_pool_safe(s32, s32); +#ifdef NON_MATCHING +// Not close to matching, but should be the same functionality-wise. void func_8006EFDC(void) { - s32 size; - s8* current; + s32 size1, size2, size3, size4, totalSize; D_8012350C = 3; - size = (D_800DD3EC * sizeof(unk80121220)) + - (D_800DD3BC * sizeof(Gfx)) + - (D_800DD3DC * sizeof(unk80121200)) + - (D_800DD3CC * sizeof(unk80121210)); + size1 = (gNumF3dCmdsPerPlayer[3] * sizeof(Gwords)); + size2 = (gNumHudMatPerPlayer[3] * sizeof(Mtx)); + size3 = (gNumHudVertsPerPlayer[3] * sizeof(Vertex)); + size4 = (gNumHudTrisPerPlayer[3] * sizeof(Triangle)); + totalSize = size1 + size2 + size3 + size4; - current = (s8*)allocate_from_main_pool_safe(size, COLOR_TAG_RED); - D_801211F0[0] = (Gfx*)current; - current += (D_800DD3BC * sizeof(Gfx)); - D_80121200[0] = (unk80121200*)current; - current += (D_800DD3DC * sizeof(unk80121200)); - D_80121210[0] = (unk80121210*)current; - current += (D_800DD3CC * sizeof(unk80121210)); - D_80121220[0] = (unk80121220*)current; + gDisplayLists[0] = (u8*)allocate_from_main_pool_safe(totalSize, COLOR_TAG_RED); + gHudMatrices[0] = (u8*)gDisplayLists[0] + size1; + gHudVertices[0] = (u8*)gHudMatrices[0] + size2; + gHudTriangles[0] = (u8*)gHudVertices[0] + size3; - current = (s8*)allocate_from_main_pool_safe(size, COLOR_TAG_YELLOW); - D_801211F0[1] = (Gfx*)current; - current += (D_800DD3BC * sizeof(Gfx)); - D_80121200[1] = (unk80121200*)current; - current += (D_800DD3DC * sizeof(unk80121200)); - D_80121210[1] = (unk80121210*)current; - current += (D_800DD3CC * sizeof(unk80121210)); - D_80121220[1] = (unk80121220*)current; + gDisplayLists[1] = (u8*)allocate_from_main_pool_safe(totalSize, COLOR_TAG_YELLOW); + gHudMatrices[1] = (u8*)gDisplayLists[1] + size1; + gHudVertices[1] = (u8*)gHudMatrices[1] + size2; + gHudTriangles[1] = (u8*)gHudVertices[1] + size3; - D_80123528 = D_800DD3BC; - D_8012352C = D_800DD3DC; - D_80123530 = D_800DD3EC; - D_80123534 = D_800DD3CC; + gCurrNumF3dCmdsPerPlayer = gNumF3dCmdsPerPlayer[3]; + gCurrNumHudMatPerPlayer = gNumHudMatPerPlayer[3]; + gCurrNumHudTrisPerPlayer = gNumHudTrisPerPlayer[3]; + gCurrNumHudVertsPerPlayer = gNumHudVertsPerPlayer[3]; } +#else +GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006EFDC.s") #endif void func_8006F140(s32 arg0) { @@ -1897,18 +2032,18 @@ void func_8006F42C(void) { } void func_8006F43C(void) { - s32 phi_s1 = 0; - s32 phi_s0 = 0; - while(phi_s0 != 4) { - phi_s1 |= func_8006A528(phi_s0); - phi_s0++; + s32 i; + s32 buttonInputs = 0; + + for(i = 0; i < MAXCONTROLLERS; i++) { + buttonInputs |= get_buttons_held_from_player(i); } - if (phi_s1 & 0x1000) { - D_800DFD94 = 1; + if (buttonInputs & START_BUTTON) { + gShowControllerPakMenu = TRUE; } D_80123520++; if (D_80123520 >= 8) { - load_menu_with_level_background(0x1A, 0x27, 2); + load_menu_with_level_background(MENU_BOOT, 0x27, 2); } } diff --git a/src/unknown_06B2B0.h b/src/unknown_06B2B0.h index 44d5a417..776b63fe 100644 --- a/src/unknown_06B2B0.h +++ b/src/unknown_06B2B0.h @@ -71,22 +71,7 @@ extern s8 D_800DD3A0; extern s32 D_800DD3A4; extern s32 D_800DD3A8; extern s32 D_800DD3AC; -extern s32 D_800DD3B0; -extern s32 D_800DD3B4; -extern s32 D_800DD3B8; -extern s32 D_800DD3BC; -extern s32 D_800DD3C0; -extern s32 D_800DD3C4; -extern s32 D_800DD3C8; -extern s32 D_800DD3CC; -extern s32 D_800DD3D0; -extern s32 D_800DD3D4; -extern s32 D_800DD3D8; -extern s32 D_800DD3DC; -extern s32 D_800DD3E0; -extern s32 D_800DD3E4; -extern s32 D_800DD3E8; -extern s32 D_800DD3EC; + extern s8 D_800DD3F0; extern s16 D_800DD3F4[8];