continued 2

This commit is contained in:
MegaMech
2024-12-31 21:22:07 -07:00
parent f9c661c590
commit 1080a7fb19
6 changed files with 1627 additions and 1410 deletions
+5 -5
View File
@@ -721,10 +721,10 @@ glabel L8009FD90
glabel L8009FE9C
/* 0A0A9C 8009FE9C 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0A0AA0 8009FEA0 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0A0AA4 8009FEA4 3C03800F */ lui $v1, %hi((D_800E86AC - 1)) # 0x800f
/* 0A0AA8 8009FEA8 3C06800F */ lui $a2, %hi((D_800E86B0 - 3)) # 0x800f
/* 0A0AA4 8009FEA4 3C03800F */ lui $v1, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0A0AA8 8009FEA8 3C06800F */ lui $a2, %hi((gGameModeSubMenuColumn - 3)) # 0x800f
/* 0A0AAC 8009FEAC 00621821 */ addu $v1, $v1, $v0
/* 0A0AB0 8009FEB0 806386AB */ lb $v1, %lo((D_800E86AC - 1))($v1) # -0x7955($v1)
/* 0A0AB0 8009FEB0 806386AB */ lb $v1, %lo((gGameModeMenuColumn - 1))($v1) # -0x7955($v1)
/* 0A0AB4 8009FEB4 00026880 */ sll $t5, $v0, 2
/* 0A0AB8 8009FEB8 00025880 */ sll $t3, $v0, 2
/* 0A0ABC 8009FEBC 01A26823 */ subu $t5, $t5, $v0
@@ -738,7 +738,7 @@ glabel L8009FE9C
/* 0A0ADC 8009FEDC 00CC3021 */ addu $a2, $a2, $t4
/* 0A0AE0 8009FEE0 00AF2821 */ addu $a1, $a1, $t7
/* 0A0AE4 8009FEE4 2F010008 */ sltiu $at, $t8, 8
/* 0A0AE8 8009FEE8 80C686AD */ lb $a2, %lo((D_800E86B0 - 3))($a2) # -0x7953($a2)
/* 0A0AE8 8009FEE8 80C686AD */ lb $a2, %lo((gGameModeSubMenuColumn - 3))($a2) # -0x7953($a2)
/* 0A0AEC 8009FEEC 10200037 */ beqz $at, .L8009FFCC
/* 0A0AF0 8009FEF0 8CA52B70 */ lw $a1, %lo((gGameModePlayerSelection - 0xC))($a1) # 0x2b70($a1)
/* 0A0AF4 8009FEF4 0018C080 */ sll $t8, $t8, 2
@@ -1316,7 +1316,7 @@ glabel L800A0694
/* 0A1314 800A0714 1000006C */ b .L800A08C8
/* 0A1318 800A0718 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A071C
/* 0A131C 800A071C 0C028F21 */ jal func_800A3C84
/* 0A131C 800A071C 0C028F21 */ jal time_trials_finish_text_render
/* 0A1320 800A0720 02202025 */ move $a0, $s1
/* 0A1324 800A0724 10000068 */ b .L800A08C8
/* 0A1328 800A0728 8FBF0034 */ lw $ra, 0x34($sp)
+56 -56
View File
@@ -49,10 +49,10 @@ glabel main_menu_act
glabel L800B2A6C # case 0
/* 0B366C 800B2A6C 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019
/* 0B3670 800B2A70 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5)
/* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3678 800B2A78 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B367C 800B2A7C 01ED7821 */ addu $t7, $t7, $t5
/* 0B3680 800B2A80 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7)
/* 0B3680 800B2A80 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7)
/* 0B3684 800B2A84 000D7080 */ sll $t6, $t5, 2
/* 0B3688 800B2A88 01CD7023 */ subu $t6, $t6, $t5
/* 0B368C 800B2A8C 000E7080 */ sll $t6, $t6, 2
@@ -144,10 +144,10 @@ glabel L800B2AA4 # case 3
/* 0B37C4 800B2BC4 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B37C8 800B2BC8 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B37CC 800B2BCC 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f
/* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B37D4 800B2BD4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B37D8 800B2BD8 030FC021 */ addu $t8, $t8, $t7
/* 0B37DC 800B2BDC 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8)
/* 0B37DC 800B2BDC 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8)
/* 0B37E0 800B2BE0 000F7080 */ sll $t6, $t7, 2
/* 0B37E4 800B2BE4 01CF7023 */ subu $t6, $t6, $t7
/* 0B37E8 800B2BE8 000E7080 */ sll $t6, $t6, 2
@@ -167,10 +167,10 @@ glabel L800B2AA4 # case 3
/* 0B381C 800B2C1C 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001
/* 0B3820 800B2C20 3C0C8019 */ lui $t4, %hi(gPlayerCount) # $t4, 0x8019
/* 0B3824 800B2C24 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4)
/* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B382C 800B2C2C 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3830 800B2C30 01EC7821 */ addu $t7, $t7, $t4
/* 0B3834 800B2C34 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7)
/* 0B3834 800B2C34 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7)
/* 0B3838 800B2C38 000C6880 */ sll $t5, $t4, 2
/* 0B383C 800B2C3C 01AC6823 */ subu $t5, $t5, $t4
/* 0B3840 800B2C40 000D6880 */ sll $t5, $t5, 2
@@ -189,10 +189,10 @@ glabel L800B2AA4 # case 3
/* 0B3870 800B2C70 34849010 */ ori $a0, (0x49009010 & 0xFFFF) # ori $a0, $a0, 0x9010
/* 0B3874 800B2C74 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019
/* 0B3878 800B2C78 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1)
/* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f
/* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3880 800B2C80 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3884 800B2C84 01695821 */ addu $t3, $t3, $t1
/* 0B3888 800B2C88 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3)
/* 0B3888 800B2C88 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3)
/* 0B388C 800B2C8C 00095080 */ sll $t2, $t1, 2
/* 0B3890 800B2C90 01495023 */ subu $t2, $t2, $t1
/* 0B3894 800B2C94 000A5080 */ sll $t2, $t2, 2
@@ -212,10 +212,10 @@ glabel L800B2AA4 # case 3
/* 0B38C8 800B2CC8 34849011 */ ori $a0, (0x49009011 & 0xFFFF) # ori $a0, $a0, 0x9011
/* 0B38CC 800B2CCC 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019
/* 0B38D0 800B2CD0 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6)
/* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi((D_800E86AC - 1)) # 0x800f
/* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B38D8 800B2CD8 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B38DC 800B2CDC 012E4821 */ addu $t1, $t1, $t6
/* 0B38E0 800B2CE0 812986AB */ lb $t1, %lo((D_800E86AC - 1))($t1) # -0x7955($t1)
/* 0B38E0 800B2CE0 812986AB */ lb $t1, %lo((gGameModeMenuColumn - 1))($t1) # -0x7955($t1)
/* 0B38E4 800B2CE4 000EC880 */ sll $t9, $t6, 2
/* 0B38E8 800B2CE8 032EC823 */ subu $t9, $t9, $t6
/* 0B38EC 800B2CEC 0019C880 */ sll $t9, $t9, 2
@@ -225,9 +225,9 @@ glabel L800B2AA4 # case 3
/* 0B38FC 800B2CFC 100001F4 */ b .L800B34D0
/* 0B3900 800B2D00 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B2D04:
/* 0B3904 800B2D04 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3904 800B2D04 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3908 800B2D08 01E27821 */ addu $t7, $t7, $v0
/* 0B390C 800B2D0C 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7)
/* 0B390C 800B2D0C 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7)
/* 0B3910 800B2D10 01826023 */ subu $t4, $t4, $v0
/* 0B3914 800B2D14 000C6080 */ sll $t4, $t4, 2
/* 0B3918 800B2D18 000F6880 */ sll $t5, $t7, 2
@@ -242,8 +242,8 @@ glabel L800B2D30 # case 4
/* 0B3938 800B2D38 00603025 */ move $a2, $v1
/* 0B393C 800B2D3C 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3940 800B2D40 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3944 800B2D44 3C09800F */ lui $t1, %hi(D_800E86AC) # $t1, 0x800f
/* 0B3948 800B2D48 252986AC */ addiu $t1, %lo(D_800E86AC) # addiu $t1, $t1, -0x7954
/* 0B3944 800B2D44 3C09800F */ lui $t1, %hi(gGameModeMenuColumn) # $t1, 0x800f
/* 0B3948 800B2D48 252986AC */ addiu $t1, %lo(gGameModeMenuColumn) # addiu $t1, $t1, -0x7954
/* 0B394C 800B2D4C 3C19800F */ lui $t9, %hi((gPlayerModeSelection - 1)) # 0x800f
/* 0B3950 800B2D50 0322C821 */ addu $t9, $t9, $v0
/* 0B3954 800B2D54 00491821 */ addu $v1, $v0, $t1
@@ -268,8 +268,8 @@ glabel L800B2D30 # case 4
/* 0B3998 800B2D98 11400011 */ beqz $t2, .L800B2DE0
/* 0B399C 800B2D9C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B39A0 800B2DA0 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B39A4 800B2DA4 3C0C800F */ lui $t4, %hi(D_800E86AC) # $t4, 0x800f
/* 0B39A8 800B2DA8 258C86AC */ addiu $t4, %lo(D_800E86AC) # addiu $t4, $t4, -0x7954
/* 0B39A4 800B2DA4 3C0C800F */ lui $t4, %hi(gGameModeMenuColumn) # $t4, 0x800f
/* 0B39A8 800B2DA8 258C86AC */ addiu $t4, %lo(gGameModeMenuColumn) # addiu $t4, $t4, -0x7954
/* 0B39AC 800B2DAC 01EC1821 */ addu $v1, $t7, $t4
/* 0B39B0 800B2DB0 8064FFFF */ lb $a0, -1($v1)
/* 0B39B4 800B2DB4 1880000A */ blez $a0, .L800B2DE0
@@ -295,10 +295,10 @@ glabel L800B2D30 # case 4
/* 0B3A00 800B2E00 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B3A04 800B2E04 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019
/* 0B3A08 800B2E08 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6)
/* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3A10 800B2E10 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3A14 800B2E14 032EC821 */ addu $t9, $t9, $t6
/* 0B3A18 800B2E18 833986AB */ lb $t9, %lo((D_800E86AC - 1))($t9) # -0x7955($t9)
/* 0B3A18 800B2E18 833986AB */ lb $t9, %lo((gGameModeMenuColumn - 1))($t9) # -0x7955($t9)
/* 0B3A1C 800B2E1C 000E4880 */ sll $t1, $t6, 2
/* 0B3A20 800B2E20 012E4823 */ subu $t1, $t1, $t6
/* 0B3A24 800B2E24 00094880 */ sll $t1, $t1, 2
@@ -309,11 +309,11 @@ glabel L800B2D30 # case 4
/* 0B3A38 800B2E38 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B2E3C:
/* 0B3A3C 800B2E3C 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3A44 800B2E44 30CF8000 */ andi $t7, $a2, 0x8000
/* 0B3A48 800B2E48 00822021 */ addu $a0, $a0, $v0
/* 0B3A4C 800B2E4C 11E0003F */ beqz $t7, .L800B2F4C
/* 0B3A50 800B2E50 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0)
/* 0B3A50 800B2E50 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0)
/* 0B3A54 800B2E54 00026080 */ sll $t4, $v0, 2
/* 0B3A58 800B2E58 01826023 */ subu $t4, $t4, $v0
/* 0B3A5C 800B2E5C 000C6080 */ sll $t4, $t4, 2
@@ -367,10 +367,10 @@ glabel L800B2D30 # case 4
/* 0B3B08 800B2F08 00000000 */ nop
/* 0B3B0C 800B2F0C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B3B10 800B2F10 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3B18 800B2F18 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3B1C 800B2F1C 01AF6821 */ addu $t5, $t5, $t7
/* 0B3B20 800B2F20 81AD86AB */ lb $t5, %lo((D_800E86AC - 1))($t5) # -0x7955($t5)
/* 0B3B20 800B2F20 81AD86AB */ lb $t5, %lo((gGameModeMenuColumn - 1))($t5) # -0x7955($t5)
/* 0B3B24 800B2F24 000F6080 */ sll $t4, $t7, 2
/* 0B3B28 800B2F28 018F6023 */ subu $t4, $t4, $t7
/* 0B3B2C 800B2F2C 000C6080 */ sll $t4, $t4, 2
@@ -409,10 +409,10 @@ glabel L800B2F70 # case 5, 8
/* 0B3BA8 800B2FA8 00000000 */ nop
.L800B2FAC:
/* 0B3BAC 800B2FAC 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3BB4 800B2FB4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3BB8 800B2FB8 0302C021 */ addu $t8, $t8, $v0
/* 0B3BBC 800B2FBC 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8)
/* 0B3BBC 800B2FBC 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8)
/* 0B3BC0 800B2FC0 00026080 */ sll $t4, $v0, 2
/* 0B3BC4 800B2FC4 01826023 */ subu $t4, $t4, $v0
/* 0B3BC8 800B2FC8 000C6080 */ sll $t4, $t4, 2
@@ -433,13 +433,13 @@ glabel L800B2F70 # case 5, 8
.L800B3000:
/* 0B3C00 800B3000 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3C04 800B3004 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3C08 800B3008 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3C0C 800B300C 3C0F800F */ lui $t7, %hi(D_800E86B0) # $t7, 0x800f
/* 0B3C08 800B3008 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3C0C 800B300C 3C0F800F */ lui $t7, %hi(gGameModeSubMenuColumn) # $t7, 0x800f
/* 0B3C10 800B3010 01625821 */ addu $t3, $t3, $v0
/* 0B3C14 800B3014 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3)
/* 0B3C14 800B3014 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3)
/* 0B3C18 800B3018 00024880 */ sll $t1, $v0, 2
/* 0B3C1C 800B301C 01224823 */ subu $t1, $t1, $v0
/* 0B3C20 800B3020 25EF86B0 */ addiu $t7, %lo(D_800E86B0) # addiu $t7, $t7, -0x7950
/* 0B3C20 800B3020 25EF86B0 */ addiu $t7, %lo(gGameModeSubMenuColumn) # addiu $t7, $t7, -0x7950
/* 0B3C24 800B3024 012B5021 */ addu $t2, $t1, $t3
/* 0B3C28 800B3028 014F1821 */ addu $v1, $t2, $t7
/* 0B3C2C 800B302C 8064FFFD */ lb $a0, -3($v1)
@@ -471,10 +471,10 @@ glabel L800B2F70 # case 5, 8
/* 0B3C90 800B3090 8FA6001C */ lw $a2, 0x1c($sp)
/* 0B3C94 800B3094 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3C98 800B3098 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((gGameModePlayerColumnExtra - 3)) # 0x800f
/* 0B3CA4 800B30A4 00822021 */ addu $a0, $a0, $v0
/* 0B3CA8 800B30A8 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0)
/* 0B3CA8 800B30A8 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0)
/* 0B3CAC 800B30AC 00027080 */ sll $t6, $v0, 2
/* 0B3CB0 800B30B0 01C27023 */ subu $t6, $t6, $v0
/* 0B3CB4 800B30B4 01C4C821 */ addu $t9, $t6, $a0
@@ -488,10 +488,10 @@ glabel L800B2F70 # case 5, 8
.L800B30D4:
/* 0B3CD4 800B30D4 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3CD8 800B30D8 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((gGameModePlayerColumnDefault - 3)) # 0x800f
/* 0B3CE4 800B30E4 00822021 */ addu $a0, $a0, $v0
/* 0B3CE8 800B30E8 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0)
/* 0B3CE8 800B30E8 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0)
/* 0B3CEC 800B30EC 00025880 */ sll $t3, $v0, 2
/* 0B3CF0 800B30F0 01625823 */ subu $t3, $t3, $v0
/* 0B3CF4 800B30F4 01645021 */ addu $t2, $t3, $a0
@@ -505,8 +505,8 @@ glabel L800B2F70 # case 5, 8
/* 0B3D10 800B3110 1060000F */ beqz $v1, .L800B3150
/* 0B3D14 800B3114 00026880 */ sll $t5, $v0, 2
/* 0B3D18 800B3118 01A26823 */ subu $t5, $t5, $v0
/* 0B3D1C 800B311C 3C0C800F */ lui $t4, %hi(D_800E86B0) # $t4, 0x800f
/* 0B3D20 800B3120 258C86B0 */ addiu $t4, %lo(D_800E86B0) # addiu $t4, $t4, -0x7950
/* 0B3D1C 800B311C 3C0C800F */ lui $t4, %hi(gGameModeSubMenuColumn) # $t4, 0x800f
/* 0B3D20 800B3120 258C86B0 */ addiu $t4, %lo(gGameModeSubMenuColumn) # addiu $t4, $t4, -0x7950
/* 0B3D24 800B3124 01A4C021 */ addu $t8, $t5, $a0
/* 0B3D28 800B3128 030C1821 */ addu $v1, $t8, $t4
/* 0B3D2C 800B312C 806EFFFD */ lb $t6, -3($v1)
@@ -521,10 +521,10 @@ glabel L800B2F70 # case 5, 8
.L800B3150:
/* 0B3D50 800B3150 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3D54 800B3154 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3D58 800B3158 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3D5C 800B315C 3C05800F */ lui $a1, %hi((D_800E86B0 - 3)) # 0x800f
/* 0B3D58 800B3158 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3D5C 800B315C 3C05800F */ lui $a1, %hi((gGameModeSubMenuColumn - 3)) # 0x800f
/* 0B3D60 800B3160 00822021 */ addu $a0, $a0, $v0
/* 0B3D64 800B3164 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0)
/* 0B3D64 800B3164 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0)
/* 0B3D68 800B3168 00024880 */ sll $t1, $v0, 2
/* 0B3D6C 800B316C 01224823 */ subu $t1, $t1, $v0
/* 0B3D70 800B3170 01245821 */ addu $t3, $t1, $a0
@@ -533,7 +533,7 @@ glabel L800B2F70 # case 5, 8
/* 0B3D7C 800B317C 30CA4000 */ andi $t2, $a2, 0x4000
/* 0B3D80 800B3180 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213
/* 0B3D84 800B3184 11400015 */ beqz $t2, .L800B31DC
/* 0B3D88 800B3188 80A586AD */ lb $a1, %lo((D_800E86B0 - 3))($a1) # -0x7953($a1)
/* 0B3D88 800B3188 80A586AD */ lb $a1, %lo((gGameModeSubMenuColumn - 3))($a1) # -0x7953($a1)
/* 0B3D8C 800B318C 240F0004 */ li $t7, 4
/* 0B3D90 800B3190 0C02D12B */ jal func_800B44AC
/* 0B3D94 800B3194 A10F0000 */ sb $t7, ($t0)
@@ -542,10 +542,10 @@ glabel L800B2F70 # case 5, 8
/* 0B3DA0 800B31A0 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B3DA4 800B31A4 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019
/* 0B3DA8 800B31A8 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5)
/* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3DB0 800B31B0 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3DB4 800B31B4 018D6021 */ addu $t4, $t4, $t5
/* 0B3DB8 800B31B8 818C86AB */ lb $t4, %lo((D_800E86AC - 1))($t4) # -0x7955($t4)
/* 0B3DB8 800B31B8 818C86AB */ lb $t4, %lo((gGameModeMenuColumn - 1))($t4) # -0x7955($t4)
/* 0B3DBC 800B31BC 000DC080 */ sll $t8, $t5, 2
/* 0B3DC0 800B31C0 030DC023 */ subu $t8, $t8, $t5
/* 0B3DC4 800B31C4 0018C080 */ sll $t8, $t8, 2
@@ -565,9 +565,9 @@ glabel L800B2F70 # case 5, 8
/* 0B3DF8 800B31F8 24070001 */ li $a3, 1
/* 0B3DFC 800B31FC 8FA50028 */ lw $a1, 0x28($sp)
/* 0B3E00 800B3200 14E2000E */ bne $a3, $v0, .L800B323C
/* 0B3E04 800B3204 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3E04 800B3204 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3E08 800B3208 01625821 */ addu $t3, $t3, $v0
/* 0B3E0C 800B320C 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3)
/* 0B3E0C 800B320C 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3)
/* 0B3E10 800B3210 54EB000B */ bnel $a3, $t3, .L800B3240
/* 0B3E14 800B3214 240A0006 */ li $t2, 6
/* 0B3E18 800B3218 54A70009 */ bnel $a1, $a3, .L800B3240
@@ -592,10 +592,10 @@ glabel L800B2F70 # case 5, 8
.L800B325C:
/* 0B3E5C 800B325C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B3E60 800B3260 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3E68 800B3268 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3E6C 800B326C 018F6021 */ addu $t4, $t4, $t7
/* 0B3E70 800B3270 818C86AB */ lb $t4, %lo((D_800E86AC - 1))($t4) # -0x7955($t4)
/* 0B3E70 800B3270 818C86AB */ lb $t4, %lo((gGameModeMenuColumn - 1))($t4) # -0x7955($t4)
/* 0B3E74 800B3274 000F6880 */ sll $t5, $t7, 2
/* 0B3E78 800B3278 01AF6823 */ subu $t5, $t5, $t7
/* 0B3E7C 800B327C 000D6880 */ sll $t5, $t5, 2
@@ -643,10 +643,10 @@ glabel L800B32B4 # case 6, 7
/* 0B3F10 800B3310 30D98000 */ andi $t9, $a2, 0x8000
/* 0B3F14 800B3314 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3F18 800B3318 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3F20 800B3320 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3F24 800B3324 01C27021 */ addu $t6, $t6, $v0
/* 0B3F28 800B3328 81CE86AB */ lb $t6, %lo((D_800E86AC - 1))($t6) # -0x7955($t6)
/* 0B3F28 800B3328 81CE86AB */ lb $t6, %lo((gGameModeMenuColumn - 1))($t6) # -0x7955($t6)
/* 0B3F2C 800B332C 0002C080 */ sll $t8, $v0, 2
/* 0B3F30 800B3330 0302C023 */ subu $t8, $t8, $v0
/* 0B3F34 800B3334 0018C080 */ sll $t8, $t8, 2
@@ -679,10 +679,10 @@ glabel L800B32B4 # case 6, 7
/* 0B3F94 800B3394 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B3F98 800B3398 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B3F9C 800B339C 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f
/* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3FA4 800B33A4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3FA8 800B33A8 01AF6821 */ addu $t5, $t5, $t7
/* 0B3FAC 800B33AC 81AD86AB */ lb $t5, %lo((D_800E86AC - 1))($t5) # -0x7955($t5)
/* 0B3FAC 800B33AC 81AD86AB */ lb $t5, %lo((gGameModeMenuColumn - 1))($t5) # -0x7955($t5)
/* 0B3FB0 800B33B0 000F6080 */ sll $t4, $t7, 2
/* 0B3FB4 800B33B4 018F6023 */ subu $t4, $t4, $t7
/* 0B3FB8 800B33B8 000C6080 */ sll $t4, $t4, 2
@@ -705,10 +705,10 @@ glabel L800B32B4 # case 6, 7
/* 0B3FF8 800B33F8 00000000 */ nop
/* 0B3FFC 800B33FC 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019
/* 0B4000 800B3400 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1)
/* 0B4004 800B3404 3C0A800F */ lui $t2, %hi((D_800E86AC - 1)) # 0x800f
/* 0B4004 800B3404 3C0A800F */ lui $t2, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B4008 800B3408 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B400C 800B340C 01495021 */ addu $t2, $t2, $t1
/* 0B4010 800B3410 814A86AB */ lb $t2, %lo((D_800E86AC - 1))($t2) # -0x7955($t2)
/* 0B4010 800B3410 814A86AB */ lb $t2, %lo((gGameModeMenuColumn - 1))($t2) # -0x7955($t2)
/* 0B4014 800B3414 00095880 */ sll $t3, $t1, 2
/* 0B4018 800B3418 01695823 */ subu $t3, $t3, $t1
/* 0B401C 800B341C 000B5880 */ sll $t3, $t3, 2
@@ -719,10 +719,10 @@ glabel L800B32B4 # case 6, 7
/* 0B4030 800B3430 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B3434:
/* 0B4034 800B3434 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4)
/* 0B4038 800B3438 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f
/* 0B4038 800B3438 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B403C 800B343C 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B4040 800B3440 030CC021 */ addu $t8, $t8, $t4
/* 0B4044 800B3444 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8)
/* 0B4044 800B3444 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8)
/* 0B4048 800B3448 000C7080 */ sll $t6, $t4, 2
/* 0B404C 800B344C 01CC7023 */ subu $t6, $t6, $t4
/* 0B4050 800B3450 000E7080 */ sll $t6, $t6, 2
@@ -734,10 +734,10 @@ glabel L800B32B4 # case 6, 7
glabel L800B3468 # case 1, 2
/* 0B4068 800B3468 3C0A8019 */ lui $t2, %hi(gPlayerCount) # $t2, 0x8019
/* 0B406C 800B346C 814AEDF3 */ lb $t2, %lo(gPlayerCount)($t2)
/* 0B4070 800B3470 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f
/* 0B4070 800B3470 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B4074 800B3474 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B4078 800B3478 01EA7821 */ addu $t7, $t7, $t2
/* 0B407C 800B347C 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7)
/* 0B407C 800B347C 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7)
/* 0B4080 800B3480 000A5880 */ sll $t3, $t2, 2
/* 0B4084 800B3484 016A5823 */ subu $t3, $t3, $t2
/* 0B4088 800B3488 000B5880 */ sll $t3, $t3, 2
@@ -748,10 +748,10 @@ glabel L800B3468 # case 1, 2
/* 0B409C 800B349C 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B34A0: # default
/* 0B40A0 800B34A0 8318EDF3 */ lb $t8, %lo(gPlayerCount)($t8) # -0x120d($t8)
/* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f
/* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B40A8 800B34A8 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B40AC 800B34AC 0338C821 */ addu $t9, $t9, $t8
/* 0B40B0 800B34B0 833986AB */ lb $t9, %lo((D_800E86AC - 1))($t9) # -0x7955($t9)
/* 0B40B0 800B34B0 833986AB */ lb $t9, %lo((gGameModeMenuColumn - 1))($t9) # -0x7955($t9)
/* 0B40B4 800B34B4 00187080 */ sll $t6, $t8, 2
/* 0B40B8 800B34B8 01D87023 */ subu $t6, $t6, $t8
/* 0B40BC 800B34BC 000E7080 */ sll $t6, $t6, 2
+1273 -1294
View File
File diff suppressed because it is too large Load Diff
+247 -9
View File
@@ -93,6 +93,244 @@ typedef struct {
/* 0x06 */ s16 pad1;
} Unk_D_800E70A0; // size = 0x08
enum MENU_ITEM_PRIORITY {
MENU_ITEM_UI_PRIORITY_0,
MENU_ITEM_UI_PRIORITY_1,
MENU_ITEM_UI_PRIORITY_2,
MENU_ITEM_UI_PRIORITY_3,
MENU_ITEM_UI_PRIORITY_4,
MENU_ITEM_UI_PRIORITY_5,
MENU_ITEM_UI_PRIORITY_6,
MENU_ITEM_UI_PRIORITY_7,
MENU_ITEM_UI_PRIORITY_8,
MENU_ITEM_UI_PRIORITY_9,
MENU_ITEM_UI_PRIORITY_A,
MENU_ITEM_UI_PRIORITY_B,
MENU_ITEM_UI_PRIORITY_C,
MENU_ITEM_UI_PRIORITY_D,
MENU_ITEM_UI_PRIORITY_E,
MENU_ITEM_UI_PRIORITY_F,
MENU_ITEM_UI_PRIORITY_MAX // 0x10
};
enum CenterText { LEFT_TEXT = 1, CENTER_TEXT_MODE_1, RIGHT_TEXT, CENTER_TEXT_MODE_2 };
enum MENU_ITEM_TYPE {
MENU_ITEM_UI_NONE,
MENU_ITEM_UI_START_BACKGROUND,
MENU_ITEM_UI_LOGO_AND_COPYRIGHT,
MENU_ITEM_UI_PUSH_START_BUTTON,
MENU_ITEM_UI_NO_CONTROLLER,
MENU_ITEM_UI_START_RECORD_TIME,
MENU_ITEM_UI_GAME_SELECT = 0xA,
MENU_ITEM_UI_1P_GAME,
MENU_ITEM_UI_2P_GAME,
MENU_ITEM_UI_3P_GAME,
MENU_ITEM_UI_4P_GAME,
MENU_ITEM_UI_OK,
MAIN_MENU_OPTION_GFX,
MAIN_MENU_DATA_GFX,
MAIN_MENU_50CC,
MAIN_MENU_100CC,
MAIN_MENU_150CC,
MENU_ITEM_TYPE_015,
MENU_ITEM_TYPE_016,
MENU_ITEM_TYPE_017,
MAIN_MENU_TIME_TRIALS_BEGIN,
MAIN_MENU_TIME_TRIALS_DATA,
MENU_ITEM_TYPE_01B = 0x1B,
MAIN_MENU_BACKGROUND = 0x23,
CHARACTER_SELECT_BACKGROUND,
COURSE_SELECT_BACKGROUND,
CHARACTER_SELECT_MENU_PLAYER_SELECT_BANNER = 0x2A,
CHARACTER_SELECT_MENU_MARIO,
CHARACTER_SELECT_MENU_LUIGI,
CHARACTER_SELECT_MENU_TOAD,
CHARACTER_SELECT_MENU_PEACH,
CHARACTER_SELECT_MENU_YOSHI,
CHARACTER_SELECT_MENU_DK,
CHARACTER_SELECT_MENU_WARIO,
CHARACTER_SELECT_MENU_BOWSER,
CHARACTER_SELECT_MENU_OK,
CHARACTER_SELECT_MENU_1P_CURSOR,
CHARACTER_SELECT_MENU_2P_CURSOR,
CHARACTER_SELECT_MENU_3P_CURSOR,
CHARACTER_SELECT_MENU_4P_CURSOR,
MENU_ITEM_TYPE_043 = 0x43,
MENU_ITEM_TYPE_044,
MENU_ITEM_TYPE_045,
MENU_ITEM_TYPE_046,
MENU_ITEM_TYPE_047,
MENU_ITEM_TYPE_048,
MENU_ITEM_TYPE_049,
MENU_ITEM_TYPE_050 = 0x50,
COURSE_SELECT_MAP_SELECT = 0x52,
COURSE_SELECT_MUSHROOM_CUP,
COURSE_SELECT_FLOWER_CUP,
COURSE_SELECT_STAR_CUP,
COURSE_SELECT_SPECIAL_CUP,
MENU_ITEM_TYPE_058 = 0x58,
COURSE_SELECT_COURSE_NAMES,
MENU_ITEM_TYPE_05A,
MENU_ITEM_TYPE_05B,
COURSE_SELECT_BATTLE_NAMES,
COURSE_SELECT_OK,
MENU_ITEM_TYPE_05E,
MENU_ITEM_TYPE_05F,
MENU_ITEM_TYPE_060,
MENU_ITEM_TYPE_061,
MENU_ITEM_TYPE_062,
MENU_ITEM_TYPE_064 = 0x64,
MENU_ITEM_TYPE_065,
MENU_ITEM_TYPE_066,
MENU_ITEM_TYPE_067,
MENU_ITEM_TYPE_068,
MENU_ITEM_TYPE_069,
MENU_ITEM_TYPE_06E = 0x6E,
MENU_ITEM_TYPE_078 = 0x78,
MENU_ITEM_TYPE_079,
MENU_ITEM_TYPE_07A,
MENU_ITEM_TYPE_07B,
MENU_ITEM_TYPE_07C,
MENU_ITEM_TYPE_07D,
MENU_ITEM_TYPE_07E,
MENU_ITEM_TYPE_07F,
MENU_ITEM_TYPE_080,
MENU_ITEM_TYPE_081,
MENU_ITEM_TYPE_082,
MENU_ITEM_TYPE_083,
MENU_ITEM_TYPE_084,
MENU_ITEM_TYPE_085,
MENU_ITEM_TYPE_086,
MENU_ITEM_TYPE_087,
MENU_ITEM_TYPE_088,
MENU_ITEM_TYPE_089,
MENU_ITEM_TYPE_08A,
MENU_ITEM_TYPE_08B,
MENU_ITEM_TYPE_08C,
MENU_ITEM_TYPE_08D,
MENU_ITEM_TYPE_096 = 0x96,
MENU_ITEM_TYPE_097,
MENU_ITEM_TYPE_098,
MENU_ITEM_TYPE_0A0 = 0xA0,
MENU_ITEM_TYPE_0A1,
MENU_ITEM_TYPE_0AA = 0xAA,
MENU_ITEM_TYPE_0AB,
MENU_ITEM_TYPE_0AC,
MENU_ITEM_TYPE_0AF = 0XAF,
MENU_ITEM_TYPE_0B0,
MENU_ITEM_TYPE_0B1,
MENU_ITEM_TYPE_0B2,
MENU_ITEM_TYPE_0B3,
MENU_ITEM_TYPE_0B4,
MENU_ITEM_TYPE_0B9 = 0xB9,
MENU_ITEM_TYPE_0BA,
MENU_ITEM_TYPE_0BB,
MENU_ITEM_ANNOUNCE_GHOST,
MENU_ITEM_END_COURSE_OPTION,
MENU_ITEM_TYPE_0BE,
MENU_ITEM_PAUSE = 0xC7,
MENU_ITEM_TYPE_0D2 = 0xD2,
MENU_ITEM_TYPE_0D3,
MENU_ITEM_TYPE_0D4,
MENU_ITEM_TYPE_0D5,
MENU_ITEM_TYPE_0D6,
MENU_ITEM_TYPE_0D7,
MENU_ITEM_TYPE_0D8,
MENU_ITEM_TYPE_0D9,
MENU_ITEM_TYPE_0DA,
MENU_ITEM_DATA_COURSE_IMAGE = 0xE6,
MENU_ITEM_DATA_COURSE_INFO,
MENU_ITEM_DATA_COURSE_SELECTABLE,
MENU_ITEM_TYPE_0E9,
MENU_ITEM_TYPE_0EA,
MENU_ITEM_TYPE_0F0 = 0xF0,
MENU_ITEM_TYPE_0F1,
MENU_ITEM_UI_LOGO_INTRO = 0xFA,
START_MENU_FLAG,
MENU_ITEM_TYPE_10E = 0x10E,
MENU_ITEM_TYPE_12B = 0X12B,
MENU_ITEM_TYPE_12C,
MENU_ITEM_TYPE_12D,
MENU_ITEM_TYPE_12E,
MENU_ITEM_TYPE_12F,
MENU_ITEM_TYPE_130,
MENU_ITEM_TYPE_190 = 0x190,
MENU_ITEM_TYPE_191,
MENU_ITEM_TYPE_192,
MENU_ITEM_TYPE_193,
MENU_ITEM_TYPE_194,
MENU_ITEM_TYPE_195,
MENU_ITEM_TYPE_196,
MENU_ITEM_TYPE_197,
MENU_ITEM_TYPE_198,
MENU_ITEM_TYPE_199,
MENU_ITEM_TYPE_19A,
MENU_ITEM_TYPE_19B,
MENU_ITEM_TYPE_19C,
MENU_ITEM_TYPE_19D,
MENU_ITEM_TYPE_19E,
MENU_ITEM_TYPE_19F,
MENU_ITEM_TYPE_1A0,
MENU_ITEM_TYPE_1A1,
MENU_ITEM_TYPE_1A2,
MENU_ITEM_TYPE_1A3,
MENU_ITEM_TYPE_1A4,
MENU_ITEM_TYPE_1A5,
MENU_ITEM_TYPE_1A6,
MENU_ITEM_TYPE_1A7,
MENU_ITEM_TYPE_1A8,
MENU_ITEM_TYPE_1A9,
MENU_ITEM_TYPE_1AA,
MENU_ITEM_TYPE_1AB,
MENU_ITEM_TYPE_1AC,
MENU_ITEM_TYPE_1AD,
MENU_ITEM_TYPE_1AE,
MENU_ITEM_TYPE_1AF,
MENU_ITEM_TYPE_1B0,
MENU_ITEM_TYPE_1B1,
MENU_ITEM_TYPE_1B2,
MENU_ITEM_TYPE_1B3,
MENU_ITEM_TYPE_1B4,
MENU_ITEM_TYPE_1B5,
MENU_ITEM_TYPE_1B6,
MENU_ITEM_TYPE_1B7,
MENU_ITEM_TYPE_1B8,
MENU_ITEM_TYPE_1B9,
MENU_ITEM_TYPE_1BA,
MENU_ITEM_TYPE_1BB,
MENU_ITEM_TYPE_1BC,
MENU_ITEM_TYPE_1BD,
MENU_ITEM_TYPE_1BE,
MENU_ITEM_TYPE_1BF,
MENU_ITEM_TYPE_1C0,
MENU_ITEM_TYPE_1C1,
MENU_ITEM_TYPE_1C2,
MENU_ITEM_TYPE_1C3,
MENU_ITEM_TYPE_1C4,
MENU_ITEM_TYPE_1C5,
MENU_ITEM_TYPE_1C6,
MENU_ITEM_TYPE_1C7,
MENU_ITEM_TYPE_1C8,
MENU_ITEM_TYPE_1C9,
MENU_ITEM_TYPE_1CA,
MENU_ITEM_TYPE_1CB,
MENU_ITEM_TYPE_1CC,
MENU_ITEM_TYPE_1CD,
MENU_ITEM_TYPE_1CE
};
enum LoadImgCompType {
LOAD_MENU_IMG_MIO0_ONCE = -1,
LOAD_MENU_IMG_TKMK00_ONCE,
// Force load image even if the data is loaded before
LOAD_MENU_IMG_FORCE = LOAD_MENU_IMG_TKMK00_ONCE, // 0
LOAD_MENU_IMG_MIO0_FORCE,
LOAD_MENU_IMG_TKMK00_FORCE
};
enum TEXT_MENU_ID { CONTINUE_GAME, RETRY, COURSE_CHANGE, DRIVER_CHANGE, QUIT_TEXT_MENU, REPLAY, SAVE_GHOST };
/* Function Prototypes */
f64 exponent_by_squaring(f64, s32);
@@ -283,9 +521,9 @@ void func_800A32B4(s32, s32, s32, s32);
void func_800A34A8(MenuItem*);
void func_800A3A10(s8*);
void func_800A3ADC(MenuItem*, s32, s32, s32, s32, s8*);
void func_800A3C84(MenuItem*);
void time_trials_finish_text_render(MenuItem*);
void func_800A3E60(MenuItem*);
void func_800A4550(s32, s32, s32);
void render_lap_time(s32, s32, s32);
void render_lap_times(s32, s32, s32);
void render_menu_item_announce_ghost(MenuItem*);
void render_pause_menu(MenuItem*);
@@ -317,7 +555,7 @@ void get_time_record_minutes(s32, char*);
void get_time_record_seconds(s32, char*);
void get_time_record_centiseconds(s32, char*);
void func_800A79F4(s32, char*);
void func_800A7A4C(s32);
void handle_menus_with_pri_arg(s32);
void handle_menus_default(void);
void handle_menus_special(void);
void func_800A8270(s32, MenuItem*);
@@ -341,7 +579,7 @@ void func_800A94C8(MenuItem*, s32, s32);
void func_800A954C(MenuItem*);
void func_800A9710(MenuItem*);
void func_800A97BC(MenuItem*);
void func_800A9A98(MenuItem*);
void update_ok_menu_item(MenuItem*);
void func_800A9B9C(MenuItem*);
void func_800A9C40(MenuItem*);
void func_800A9D5C(MenuItem*);
@@ -353,14 +591,14 @@ void func_800AA69C(MenuItem*);
void func_800AAA9C(MenuItem*);
void func_800AAB90(MenuItem*);
void func_800AAC18(MenuItem*);
void func_800AADD4(MenuItem*);
void update_cursor(MenuItem*);
void func_800AAE18(MenuItem*);
MenuItem* func_800AAE68(void);
MenuItem* func_800AAEB4(s32);
MenuItem* get_menu_item_player_count(void);
MenuItem* get_menu_item_character(s32);
MenuItem* find_menu_items_dupe(s32);
MenuItem* find_menu_items(s32);
s32 func_800AAF70(s32);
void func_800AAF94(MenuItem*, s32);
s32 get_character_menu_state(s32);
void hover_cursor_over_character_portrait(MenuItem*, s32);
s32 func_800AAFCC(s32);
void func_800AB020(MenuItem*);
void func_800AB098(MenuItem*);
+41 -41
View File
@@ -41,9 +41,9 @@ s8 gControllerPakMenuSelection;
s8 D_8018EDF1;
u8 gSoundMode;
s8 gPlayerCount; // main menu row id? but it is also the number of players define
s8 D_8018EDF4;
s8 D_8018EDF5;
s8 D_8018EDF6;
s8 gVersusResultCursorSelection;
s8 gTimeTrialsResultCursorSelection;
s8 gBattleResultCursorSelection;
s8 gTimeTrialDataCourseIndex;
s8 gCourseRecordsMenuSelection;
s8 D_8018EDF9;
@@ -64,15 +64,15 @@ s32 gMenuSelection = LOGO_INTRO_MENU;
s32 gFadeModeSelection = 0;
s8 gCharacterSelections[4] = { MARIO, LUIGI, YOSHI, TOAD };
// gGameModeRowSelectionForNumPlayers is (D_800E86AC - 1)
// gGameModeSubMenuRowSelectionForNumPlayers (D_800E86AC + 1)
// gGameModeRowSelectionForNumPlayers is (gGameModeMenuColumn - 1)
// gGameModeSubMenuRowSelectionForNumPlayers (gGameModeMenuColumn + 1)
// the current row selected in column i on main menu
s8 D_800E86AC[4] = { 0, 0, 0, 0 };
s8 gGameModeMenuColumn[4] = { 0, 0, 0, 0 };
// For Grand Prix and Versus, this will be the CC mode selected. For Time Trials, it will
// be whether 'Begin' or 'Data' is selected. Not used for Battle.
// indexed as [column][row]
s8 D_800E86B0[4][3] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
s8 gGameModeSubMenuColumn[4][3] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
s8 gNextDemoId = 0;
s8 gControllerPakSelectedTableRow = 0;
@@ -1209,9 +1209,9 @@ void splash_menu_act(struct Controller* controller, u16 arg1) {
void func_800B28C8(void) {
// For Grand Prix and Versus, this will be the CC mode selected. For Time Trials, it will
// be whether 'Begin' or 'Data' is selected. Not used for Battle.
s8 temp_v0 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
s8 temp_v0 = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
// Determine which game mode was selected based on the number of players and the row selected on the main menu
switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) {
switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
case GRAND_PRIX:
gCCSelection = temp_v0;
gPlaceItemBoxes = 1;
@@ -1253,7 +1253,7 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
if (!func_800B4520()) {
switch (gMainMenuSelectionDepth) {
case BLANK_MAIN_MENU: {
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
break;
}
case PLAYER_NUM_SELECTION: {
@@ -1287,41 +1287,41 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
func_800CA330(0x19);
D_8018EDE0 = 1;
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & A_BUTTON) {
// L800B2C00
gMainMenuSelectionDepth = GAME_MODE_SELECTION;
func_800B44AC();
play_sound2(SOUND_MENU_SELECT);
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & CONT_L) {
// L800B2C58
gMainMenuSelectionDepth = OPTIONS_SELECTION;
func_8009E280();
play_sound2(SOUND_MENU_OPTION);
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & CONT_R) {
gMainMenuSelectionDepth = DATA_SELECTION;
func_8009E258();
play_sound2(SOUND_MENU_DATA);
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else {
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
}
break;
}
case GAME_MODE_SELECTION: {
if (btnAndStick & D_JPAD) {
if (D_800E86AC[gPlayerCount - 1] < gPlayerModeSelection[gPlayerCount - 1]) {
D_800E86AC[gPlayerCount - 1] += 1;
if (gGameModeMenuColumn[gPlayerCount - 1] < gPlayerModeSelection[gPlayerCount - 1]) {
gGameModeMenuColumn[gPlayerCount - 1] += 1;
func_800B44AC();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
}
// L800B2D94
if (btnAndStick & U_JPAD) {
if (D_800E86AC[gPlayerCount - 1] > 0) {
D_800E86AC[gPlayerCount - 1] -= 1;
if (gGameModeMenuColumn[gPlayerCount - 1] > 0) {
gGameModeMenuColumn[gPlayerCount - 1] -= 1;
func_800B44AC();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
@@ -1331,10 +1331,10 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
gMainMenuSelectionDepth = PLAYER_NUM_SELECTION;
func_800B44AC();
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & A_BUTTON) {
// L800B2E3C
switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) {
switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
case 0:
gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION;
play_sound2(SOUND_MENU_GP);
@@ -1358,9 +1358,9 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
// L800B2F04
func_800B44AC();
gMenuTimingCounter = 0;
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else {
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
}
break;
}
@@ -1370,16 +1370,16 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
gMenuTimingCounter++;
if ((gMenuTimingCounter == 100 || gMenuTimingCounter % 300 == 0)) {
// L800B2FAC
if (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] == 0 ||
gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] == 2) {
if (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] == 0 ||
gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] == 2) {
play_sound2(SOUND_MENU_SELECT_LEVEL);
}
}
}
// L800B3000
sp28 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
sp28 = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
if ((btnAndStick & U_JPAD) && (sp28 > 0)) {
D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] -= 1;
gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] -= 1;
func_800B44AC();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
@@ -1387,33 +1387,33 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
if (btnAndStick & D_JPAD) {
sp24 = false;
if (has_unlocked_extra_mode()) {
if (sp28 < gGameModePlayerColumnExtra[gPlayerCount + 4][D_800E86AC[gPlayerCount - 1] + 1]) {
if (sp28 < gGameModePlayerColumnExtra[gPlayerCount + 4][gGameModeMenuColumn[gPlayerCount - 1] + 1]) {
sp24 = true;
}
} else {
// L800B30D4
if (sp28 < gGameModePlayerColumnDefault[gPlayerCount][D_800E86AC[gPlayerCount - 1] + 1]) {
if (sp28 < gGameModePlayerColumnDefault[gPlayerCount][gGameModeMenuColumn[gPlayerCount - 1] + 1]) {
sp24 = true;
}
}
// L800B3110
if (sp24) {
D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]++;
gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]++;
func_800B44AC();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
}
// L800B3150
sp28 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
sp28 = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
if (btnAndStick & B_BUTTON) {
gMainMenuSelectionDepth = GAME_MODE_SELECTION;
func_800B44AC();
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & A_BUTTON) {
// L800B31DC
func_800B44AC();
if (gPlayerCount == 1 && D_800E86AC[gPlayerCount - 1] == 1 && sp28 == 1) {
if (gPlayerCount == 1 && gGameModeMenuColumn[gPlayerCount - 1] == 1 && sp28 == 1) {
func_8009E258();
play_sound2(SOUND_MENU_DATA);
} else {
@@ -1421,10 +1421,10 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
play_sound2(SOUND_MENU_SELECT);
gMenuTimingCounter = 0;
}
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else {
// L800B3294
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
}
break;
}
@@ -1435,7 +1435,7 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
}
// L800B330C
if (btnAndStick & B_BUTTON) {
switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) {
switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
case 0:
case 1:
case 2:
@@ -1450,25 +1450,25 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
func_800B44AC();
play_sound2(SOUND_MENU_GO_BACK);
gMenuTimingCounter = 0;
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & A_BUTTON) {
// L800B33D8
func_8009E1C0();
play_sound2(SOUND_MENU_OK_CLICKED);
func_800B28C8();
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else {
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
}
break;
}
case OPTIONS_SELECTION:
case DATA_SELECTION: {
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
break;
}
default: {
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
break;
}
}
+5 -5
View File
@@ -56,9 +56,9 @@ extern s8 gControllerPakMenuSelection;
extern s8 D_8018EDF1;
extern u8 gSoundMode;
extern s8 gPlayerCount;
extern s8 D_8018EDF4;
extern s8 D_8018EDF5;
extern s8 D_8018EDF6;
extern s8 gVersusResultCursorSelection;
extern s8 gTimeTrialsResultCursorSelection;
extern s8 gBattleResultCursorSelection;
extern s8 gTimeTrialDataCourseIndex;
extern s8 gCourseRecordsMenuSelection;
extern s8 D_8018EDF9;
@@ -78,8 +78,8 @@ extern s32 gMenuSelection; // D_800E86A0
extern s32 gFadeModeSelection;
extern s8 gCharacterSelections[];
extern s8 D_800E86AC[];
extern s8 D_800E86B0[4][3];
extern s8 gGameModeMenuColumn[];
extern s8 gGameModeSubMenuColumn[4][3];
extern s8 gNextDemoId;
extern s8 gControllerPakSelectedTableRow;
extern s8 D_800E86C4[];