Finish doc

This commit is contained in:
MegaMech
2025-01-03 17:41:12 -07:00
parent 35fd8a412c
commit 6a00e58893
18 changed files with 2645 additions and 2606 deletions
+2 -2
View File
@@ -524,8 +524,8 @@ glabel L8009ECAC
glabel L8009ECD4
/* 09F8D4 8009ECD4 0C01BB91 */ jal load_mario_kart_64_logo
/* 09F8D8 8009ECD8 00000000 */ nop
/* 09F8DC 8009ECDC 3C028019 */ lui $v0, %hi(sMenuTextureBufferIndex) # $v0, 0x8019
/* 09F8E0 8009ECE0 2442E110 */ addiu $v0, %lo(sMenuTextureBufferIndex) # addiu $v0, $v0, -0x1ef0
/* 09F8DC 8009ECDC 3C028019 */ lui $v0, %hi(sMenuTextureListIndex) # $v0, 0x8019
/* 09F8E0 8009ECE0 2442E110 */ addiu $v0, %lo(sMenuTextureListIndex) # addiu $v0, $v0, -0x1ef0
/* 09F8E4 8009ECE4 8C590000 */ lw $t9, ($v0)
/* 09F8E8 8009ECE8 3C010001 */ lui $at, 1
/* 09F8EC 8009ECEC 3C040200 */ lui $a0, %hi(seg2_copyright_1996_texture) # $a0, 0x200
+4 -4
View File
@@ -136,8 +136,8 @@ glabel func_80099AEC
/* 09A8D0 80099CD0 014C3821 */ addu $a3, $t2, $t4
.L80099CD4:
/* 09A8D4 80099CD4 8E2F0004 */ lw $t7, 4($s1)
/* 09A8D8 80099CD8 3C098019 */ lui $t1, %hi(gMenuTextureBuffer) # $t1, 0x8019
/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(gMenuTextureBuffer)($t1)
/* 09A8D8 80099CD8 3C098019 */ lui $t1, %hi(sMenuTextureList) # $t1, 0x8019
/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(sMenuTextureList)($t1)
/* 09A8E0 80099CE0 000FC0C0 */ sll $t8, $t7, 3
/* 09A8E4 80099CE4 031EC821 */ addu $t9, $t8, $fp
/* 09A8E8 80099CE8 8F220004 */ lw $v0, 4($t9)
@@ -206,8 +206,8 @@ glabel func_80099AEC
/* 09A9D0 80099DD0 AFA90010 */ sw $t1, 0x10($sp)
.L80099DD4:
/* 09A9D4 80099DD4 8E2B0004 */ lw $t3, 4($s1)
/* 09A9D8 80099DD8 3C0F8019 */ lui $t7, %hi(gMenuTextureBuffer) # $t7, 0x8019
/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(gMenuTextureBuffer)($t7)
/* 09A9D8 80099DD8 3C0F8019 */ lui $t7, %hi(sMenuTextureList) # $t7, 0x8019
/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(sMenuTextureList)($t7)
/* 09A9E0 80099DE0 000B50C0 */ sll $t2, $t3, 3
/* 09A9E4 80099DE4 015E6021 */ addu $t4, $t2, $fp
/* 09A9E8 80099DE8 8D820004 */ lw $v0, 4($t4)
+14 -14
View File
@@ -649,7 +649,7 @@ glabel L8009FD58
glabel L8009FD90
/* 0A0990 8009FD90 8E23001C */ lw $v1, 0x1c($s1)
/* 0A0994 8009FD94 2506FFF1 */ addiu $a2, $t0, -0xf
/* 0A0998 8009FD98 3C098019 */ lui $t1, %hi(gMainMenuSelectionDepth) # $t1, 0x8019
/* 0A0998 8009FD98 3C098019 */ lui $t1, %hi(gMainMenuSelection) # $t1, 0x8019
/* 0A099C 8009FD9C 28610020 */ slti $at, $v1, 0x20
/* 0A09A0 8009FDA0 50200030 */ beql $at, $zero, .L8009FE64
/* 0A09A4 8009FDA4 2518FFF6 */ addiu $t8, $t0, -0xa
@@ -658,7 +658,7 @@ glabel L8009FD90
/* 0A09B0 8009FDB0 00084080 */ sll $t0, $t0, 2
/* 0A09B4 8009FDB4 01034021 */ addu $t0, $t0, $v1
/* 0A09B8 8009FDB8 00084040 */ sll $t0, $t0, 1
/* 0A09BC 8009FDBC 8129EDED */ lb $t1, %lo(gMainMenuSelectionDepth)($t1)
/* 0A09BC 8009FDBC 8129EDED */ lb $t1, %lo(gMainMenuSelection)($t1)
/* 0A09C0 8009FDC0 05010003 */ bgez $t0, .L8009FDD0
/* 0A09C4 8009FDC4 0008C983 */ sra $t9, $t0, 6
/* 0A09C8 8009FDC8 2501003F */ addiu $at, $t0, 0x3f
@@ -757,10 +757,10 @@ glabel L8009FF0C
.L8009FF24:
/* 0A0B24 8009FF24 00084880 */ sll $t1, $t0, 2
.L8009FF28:
/* 0A0B28 8009FF28 3C04800F */ lui $a0, %hi(D_800E8234+0x18) # 0x800f
/* 0A0B28 8009FF28 3C04800F */ lui $a0, %hi(D_800E8294-0x48) # 0x800f
/* 0A0B2C 8009FF2C 00892021 */ addu $a0, $a0, $t1
/* 0A0B30 8009FF30 AFB900A8 */ sw $t9, 0xa8($sp)
/* 0A0B34 8009FF34 8C84824C */ lw $a0, %lo(D_800E8234+0x18)($a0) # -0x7db4($a0)
/* 0A0B34 8009FF34 8C84824C */ lw $a0, %lo(D_800E8294-0x48)($a0) # -0x7db4($a0)
/* 0A0B38 8009FF38 0C026449 */ jal segmented_to_virtual_dupe
/* 0A0B3C 8009FF3C AFA600AC */ sw $a2, 0xac($sp)
/* 0A0B40 8009FF40 8FA600AC */ lw $a2, 0xac($sp)
@@ -774,10 +774,10 @@ glabel L8009FF50
/* 0A0B5C 8009FF5C 1000001B */ b .L8009FFCC
/* 0A0B60 8009FF60 2406FFFF */ li $a2, -1
.L8009FF64:
/* 0A0B64 8009FF64 3C04800F */ lui $a0, %hi(D_800E8234+0x18) # 0x800f
/* 0A0B64 8009FF64 3C04800F */ lui $a0, %hi(D_800E82A4-0x58) # 0x800f
/* 0A0B68 8009FF68 24050016 */ li $a1, 22
/* 0A0B6C 8009FF6C 008A2021 */ addu $a0, $a0, $t2
/* 0A0B70 8009FF70 8C84824C */ lw $a0, %lo(D_800E8234+0x18)($a0) # -0x7db4($a0)
/* 0A0B70 8009FF70 8C84824C */ lw $a0, %lo(D_800E82A4-0x58)($a0) # -0x7db4($a0)
/* 0A0B74 8009FF74 AFA500A8 */ sw $a1, 0xa8($sp)
/* 0A0B78 8009FF78 0C026449 */ jal segmented_to_virtual_dupe
/* 0A0B7C 8009FF7C AFA600AC */ sw $a2, 0xac($sp)
@@ -792,10 +792,10 @@ glabel L8009FF90
/* 0A0B9C 8009FF9C 1000000B */ b .L8009FFCC
/* 0A0BA0 8009FFA0 2406FFFF */ li $a2, -1
.L8009FFA4:
/* 0A0BA4 8009FFA4 3C04800F */ lui $a0, %hi(D_800E8234+0x18) # 0x800f
/* 0A0BA4 8009FFA4 3C04800F */ lui $a0, %hi(D_800E82AC-0x60) # 0x800f
/* 0A0BA8 8009FFA8 24050018 */ li $a1, 24
/* 0A0BAC 8009FFAC 008B2021 */ addu $a0, $a0, $t3
/* 0A0BB0 8009FFB0 8C84824C */ lw $a0, %lo(D_800E8234+0x18)($a0) # -0x7db4($a0)
/* 0A0BB0 8009FFB0 8C84824C */ lw $a0, %lo(D_800E82AC-0x60)($a0) # -0x7db4($a0)
/* 0A0BB4 8009FFB4 AFA500A8 */ sw $a1, 0xa8($sp)
/* 0A0BB8 8009FFB8 0C026449 */ jal segmented_to_virtual_dupe
/* 0A0BBC 8009FFBC AFA600AC */ sw $a2, 0xac($sp)
@@ -805,8 +805,8 @@ glabel L8009FF90
.L8009FFCC:
/* 0A0BCC 8009FFCC 2401FFFF */ li $at, -1
/* 0A0BD0 8009FFD0 10C1023C */ beq $a2, $at, .L800A08C4
/* 0A0BD4 8009FFD4 3C028019 */ lui $v0, %hi(gMainMenuSelectionDepth) # $v0, 0x8019
/* 0A0BD8 8009FFD8 8042EDED */ lb $v0, %lo(gMainMenuSelectionDepth)($v0)
/* 0A0BD4 8009FFD4 3C028019 */ lui $v0, %hi(gMainMenuSelection) # $v0, 0x8019
/* 0A0BD8 8009FFD8 8042EDED */ lb $v0, %lo(gMainMenuSelection)($v0)
/* 0A0BDC 8009FFDC 240E0001 */ li $t6, 1
/* 0A0BE0 8009FFE0 240F00FF */ li $t7, 255
/* 0A0BE4 8009FFE4 28410005 */ slti $at, $v0, 5
@@ -889,11 +889,11 @@ glabel L800A00FC
/* 0A0D00 800A0100 3C188019 */ lui $t8, %hi(gCharacterGridSelections) # 0x8019
/* 0A0D04 800A0104 0305C021 */ addu $t8, $t8, $a1
/* 0A0D08 800A0108 8318EDE4 */ lb $t8, %lo(gCharacterGridSelections)($t8) # -0x121c($t8)
/* 0A0D0C 800A010C 3C198019 */ lui $t9, %hi(D_8018EDE8) # 0x8019
/* 0A0D0C 800A010C 3C198019 */ lui $t9, %hi(gCharacterGridIsSelected) # 0x8019
/* 0A0D10 800A0110 0325C821 */ addu $t9, $t9, $a1
/* 0A0D14 800A0114 530001EC */ beql $t8, $zero, .L800A08C8
/* 0A0D18 800A0118 8FBF0034 */ lw $ra, 0x34($sp)
/* 0A0D1C 800A011C 8339EDE8 */ lb $t9, %lo(D_8018EDE8)($t9) # -0x1218($t9)
/* 0A0D1C 800A011C 8339EDE8 */ lb $t9, %lo(gCharacterGridIsSelected)($t9) # -0x1218($t9)
/* 0A0D20 800A0120 3C06800E */ lui $a2, %hi(gGlobalTimer) # $a2, 0x800e
/* 0A0D24 800A0124 17200003 */ bnez $t9, .L800A0134
/* 0A0D28 800A0128 00000000 */ nop
@@ -1110,8 +1110,8 @@ glabel L800A0404
/* 0A1020 800A0420 10000129 */ b .L800A08C8
/* 0A1024 800A0424 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A0428
/* 0A1028 800A0428 3C028019 */ lui $v0, %hi(gMainMenuSelectionDepth) # $v0, 0x8019
/* 0A102C 800A042C 8042EDED */ lb $v0, %lo(gMainMenuSelectionDepth)($v0)
/* 0A1028 800A0428 3C028019 */ lui $v0, %hi(gMainMenuSelection) # $v0, 0x8019
/* 0A102C 800A042C 8042EDED */ lb $v0, %lo(gMainMenuSelection)($v0)
/* 0A1030 800A0430 8FAB00A8 */ lw $t3, 0xa8($sp)
/* 0A1034 800A0434 240D0001 */ li $t5, 1
/* 0A1038 800A0438 28410005 */ slti $at, $v0, 5
+36 -36
View File
@@ -29,13 +29,13 @@ glabel main_menu_act
.L800B2A24:
/* 0B3624 800B2A24 A7A3002E */ sh $v1, 0x2e($sp)
.L800B2A28:
/* 0B3628 800B2A28 0C02D148 */ jal func_800B4520
/* 0B3628 800B2A28 0C02D148 */ jal is_screen_being_faded
/* 0B362C 800B2A2C A7A50036 */ sh $a1, 0x36($sp)
/* 0B3630 800B2A30 97A3002E */ lhu $v1, 0x2e($sp)
/* 0B3634 800B2A34 144002A8 */ bnez $v0, .L800B34D8
/* 0B3638 800B2A38 97A50036 */ lhu $a1, 0x36($sp)
/* 0B363C 800B2A3C 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019
/* 0B3640 800B2A40 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213
/* 0B363C 800B2A3C 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B3640 800B2A40 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3644 800B2A44 910C0000 */ lbu $t4, ($t0)
/* 0B3648 800B2A48 3C188019 */ lui $t8, %hi(gPlayerCount) # 0x8019
/* 0B364C 800B2A4C 2D810009 */ sltiu $at, $t4, 9
@@ -72,13 +72,13 @@ glabel L800B2AA4 # case 3
/* 0B36C0 800B2AC0 244A0001 */ addiu $t2, $v0, 1
/* 0B36C4 800B2AC4 3C018019 */ lui $at, %hi(gPlayerCount) # $at, 0x8019
/* 0B36C8 800B2AC8 A02AEDF3 */ sb $t2, %lo(gPlayerCount)($at)
/* 0B36CC 800B2ACC 0C02D12B */ jal func_800B44AC
/* 0B36CC 800B2ACC 0C02D12B */ jal reset_cycle_flash_menu
/* 0B36D0 800B2AD0 AFA3001C */ sw $v1, 0x1c($sp)
/* 0B36D4 800B2AD4 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B36D8 800B2AD8 0C032384 */ jal play_sound2
/* 0B36DC 800B2ADC 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B36E0 800B2AE0 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019
/* 0B36E4 800B2AE4 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213
/* 0B36E0 800B2AE0 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B36E4 800B2AE4 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B36E8 800B2AE8 8FA6001C */ lw $a2, 0x1c($sp)
.L800B2AEC:
/* 0B36EC 800B2AEC 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
@@ -90,14 +90,14 @@ glabel L800B2AA4 # case 3
/* 0B3704 800B2B04 244CFFFF */ addiu $t4, $v0, -1
/* 0B3708 800B2B08 3C018019 */ lui $at, %hi(gPlayerCount) # $at, 0x8019
/* 0B370C 800B2B0C A02CEDF3 */ sb $t4, %lo(gPlayerCount)($at)
/* 0B3710 800B2B10 0C02D12B */ jal func_800B44AC
/* 0B3710 800B2B10 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3714 800B2B14 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3718 800B2B18 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B371C 800B2B1C 0C032384 */ jal play_sound2
/* 0B3720 800B2B20 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B3724 800B2B24 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3728 800B2B28 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019
/* 0B372C 800B2B2C 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213
/* 0B3728 800B2B28 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B372C 800B2B2C 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3730 800B2B30 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3734 800B2B34 8FA6001C */ lw $a2, 0x1c($sp)
.L800B2B38:
@@ -137,9 +137,9 @@ glabel L800B2AA4 # case 3
/* 0B37A8 800B2BA8 0C0328CC */ jal func_800CA330
/* 0B37AC 800B2BAC 24040019 */ li $a0, 25
/* 0B37B0 800B2BB0 24070001 */ li $a3, 1
/* 0B37B4 800B2BB4 3C018019 */ lui $at, %hi(D_8018EDE0) # $at, 0x8019
/* 0B37B4 800B2BB4 3C018019 */ lui $at, %hi(gMenuFadeType) # $at, 0x8019
/* 0B37B8 800B2BB8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B37BC 800B2BBC AC27EDE0 */ sw $a3, %lo(D_8018EDE0)($at)
/* 0B37BC 800B2BBC AC27EDE0 */ sw $a3, %lo(gMenuFadeType)($at)
/* 0B37C0 800B2BC0 0C032384 */ jal play_sound2
/* 0B37C4 800B2BC4 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B37C8 800B2BC8 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
@@ -160,7 +160,7 @@ glabel L800B2AA4 # case 3
/* 0B3800 800B2C00 11400015 */ beqz $t2, .L800B2C58
/* 0B3804 800B2C04 30D90020 */ andi $t9, $a2, 0x20
/* 0B3808 800B2C08 240B0004 */ li $t3, 4
/* 0B380C 800B2C0C 0C02D12B */ jal func_800B44AC
/* 0B380C 800B2C0C 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3810 800B2C10 A10B0000 */ sb $t3, ($t0)
/* 0B3814 800B2C14 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900
/* 0B3818 800B2C18 0C032384 */ jal play_sound2
@@ -254,13 +254,13 @@ glabel L800B2D30 # case 4
/* 0B3968 800B2D68 5020000B */ beql $at, $zero, .L800B2D98
/* 0B396C 800B2D6C 30CA0800 */ andi $t2, $a2, 0x800
/* 0B3970 800B2D70 A06BFFFF */ sb $t3, -1($v1)
/* 0B3974 800B2D74 0C02D12B */ jal func_800B44AC
/* 0B3974 800B2D74 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3978 800B2D78 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B397C 800B2D7C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B3980 800B2D80 0C032384 */ jal play_sound2
/* 0B3984 800B2D84 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B3988 800B2D88 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019
/* 0B398C 800B2D8C 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213
/* 0B3988 800B2D88 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B398C 800B2D8C 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3990 800B2D90 8FA6001C */ lw $a2, 0x1c($sp)
.L800B2D94:
/* 0B3994 800B2D94 30CA0800 */ andi $t2, $a2, 0x800
@@ -275,20 +275,20 @@ glabel L800B2D30 # case 4
/* 0B39B4 800B2DB4 1880000A */ blez $a0, .L800B2DE0
/* 0B39B8 800B2DB8 248DFFFF */ addiu $t5, $a0, -1
/* 0B39BC 800B2DBC A06DFFFF */ sb $t5, -1($v1)
/* 0B39C0 800B2DC0 0C02D12B */ jal func_800B44AC
/* 0B39C0 800B2DC0 0C02D12B */ jal reset_cycle_flash_menu
/* 0B39C4 800B2DC4 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B39C8 800B2DC8 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B39CC 800B2DCC 0C032384 */ jal play_sound2
/* 0B39D0 800B2DD0 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B39D4 800B2DD4 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019
/* 0B39D8 800B2DD8 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213
/* 0B39D4 800B2DD4 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B39D8 800B2DD8 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B39DC 800B2DDC 8FA6001C */ lw $a2, 0x1c($sp)
.L800B2DE0:
/* 0B39E0 800B2DE0 30D84000 */ andi $t8, $a2, 0x4000
/* 0B39E4 800B2DE4 13000015 */ beqz $t8, .L800B2E3C
/* 0B39E8 800B2DE8 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B39EC 800B2DEC 24040003 */ li $a0, 3
/* 0B39F0 800B2DF0 0C02D12B */ jal func_800B44AC
/* 0B39F0 800B2DF0 0C02D12B */ jal reset_cycle_flash_menu
/* 0B39F4 800B2DF4 A1040000 */ sb $a0, ($t0)
/* 0B39F8 800B2DF8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B39FC 800B2DFC 0C032384 */ jal play_sound2
@@ -363,7 +363,7 @@ glabel L800B2D30 # case 4
/* 0B3AFC 800B2EFC 0C032384 */ jal play_sound2
/* 0B3B00 800B2F00 3484900D */ ori $a0, (0x4900900D & 0xFFFF) # ori $a0, $a0, 0x900d
.L800B2F04:
/* 0B3B04 800B2F04 0C02D12B */ jal func_800B44AC
/* 0B3B04 800B2F04 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3B08 800B2F08 00000000 */ nop
/* 0B3B0C 800B2F0C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B3B10 800B2F10 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
@@ -450,7 +450,7 @@ glabel L800B2F70 # case 5, 8
/* 0B3C40 800B3040 2498FFFF */ addiu $t8, $a0, -1
/* 0B3C44 800B3044 A078FFFD */ sb $t8, -3($v1)
/* 0B3C48 800B3048 AFA40028 */ sw $a0, 0x28($sp)
/* 0B3C4C 800B304C 0C02D12B */ jal func_800B44AC
/* 0B3C4C 800B304C 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3C50 800B3050 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3C54 800B3054 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B3C58 800B3058 0C032384 */ jal play_sound2
@@ -472,14 +472,14 @@ glabel L800B2F70 # case 5, 8
/* 0B3C94 800B3094 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3C98 800B3098 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((gGameModePlayerColumnExtra - 3)) # 0x800f
/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((sGameModePlayerColumnExtra - 3)) # 0x800f
/* 0B3CA4 800B30A4 00822021 */ addu $a0, $a0, $v0
/* 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
/* 0B3CB8 800B30B8 01394821 */ addu $t1, $t1, $t9
/* 0B3CBC 800B30BC 81292B6D */ lb $t1, %lo((gGameModePlayerColumnExtra - 3))($t1) # 0x2b6d($t1)
/* 0B3CBC 800B30BC 81292B6D */ lb $t1, %lo((sGameModePlayerColumnExtra - 3))($t1) # 0x2b6d($t1)
/* 0B3CC0 800B30C0 00A9082A */ slt $at, $a1, $t1
/* 0B3CC4 800B30C4 10200012 */ beqz $at, .L800B3110
/* 0B3CC8 800B30C8 00000000 */ nop
@@ -489,14 +489,14 @@ glabel L800B2F70 # case 5, 8
/* 0B3CD4 800B30D4 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3CD8 800B30D8 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((gGameModePlayerColumnDefault - 3)) # 0x800f
/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((sGameModePlayerColumnDefault - 3)) # 0x800f
/* 0B3CE4 800B30E4 00822021 */ addu $a0, $a0, $v0
/* 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
/* 0B3CF8 800B30F8 01EA7821 */ addu $t7, $t7, $t2
/* 0B3CFC 800B30FC 81EF2B61 */ lb $t7, %lo((gGameModePlayerColumnDefault - 3))($t7) # 0x2b61($t7)
/* 0B3CFC 800B30FC 81EF2B61 */ lb $t7, %lo((sGameModePlayerColumnDefault - 3))($t7) # 0x2b61($t7)
/* 0B3D00 800B3100 00AF082A */ slt $at, $a1, $t7
/* 0B3D04 800B3104 10200002 */ beqz $at, .L800B3110
/* 0B3D08 800B3108 00000000 */ nop
@@ -512,7 +512,7 @@ glabel L800B2F70 # case 5, 8
/* 0B3D2C 800B312C 806EFFFD */ lb $t6, -3($v1)
/* 0B3D30 800B3130 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3D34 800B3134 25D90001 */ addiu $t9, $t6, 1
/* 0B3D38 800B3138 0C02D12B */ jal func_800B44AC
/* 0B3D38 800B3138 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3D3C 800B313C A079FFFD */ sb $t9, -3($v1)
/* 0B3D40 800B3140 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B3D44 800B3144 0C032384 */ jal play_sound2
@@ -528,14 +528,14 @@ glabel L800B2F70 # case 5, 8
/* 0B3D68 800B3168 00024880 */ sll $t1, $v0, 2
/* 0B3D6C 800B316C 01224823 */ subu $t1, $t1, $v0
/* 0B3D70 800B3170 01245821 */ addu $t3, $t1, $a0
/* 0B3D74 800B3174 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019
/* 0B3D74 800B3174 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B3D78 800B3178 00AB2821 */ addu $a1, $a1, $t3
/* 0B3D7C 800B317C 30CA4000 */ andi $t2, $a2, 0x4000
/* 0B3D80 800B3180 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213
/* 0B3D80 800B3180 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3D84 800B3184 11400015 */ beqz $t2, .L800B31DC
/* 0B3D88 800B3188 80A586AD */ lb $a1, %lo((gGameModeSubMenuColumn - 3))($a1) # -0x7953($a1)
/* 0B3D8C 800B318C 240F0004 */ li $t7, 4
/* 0B3D90 800B3190 0C02D12B */ jal func_800B44AC
/* 0B3D90 800B3190 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3D94 800B3194 A10F0000 */ sb $t7, ($t0)
/* 0B3D98 800B3198 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B3D9C 800B319C 0C032384 */ jal play_sound2
@@ -558,7 +558,7 @@ glabel L800B2F70 # case 5, 8
/* 0B3DDC 800B31DC 30C98000 */ andi $t1, $a2, 0x8000
/* 0B3DE0 800B31E0 1120002C */ beqz $t1, .L800B3294
/* 0B3DE4 800B31E4 0002C880 */ sll $t9, $v0, 2
/* 0B3DE8 800B31E8 0C02D12B */ jal func_800B44AC
/* 0B3DE8 800B31E8 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3DEC 800B31EC AFA50028 */ sw $a1, 0x28($sp)
/* 0B3DF0 800B31F0 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3DF4 800B31F4 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
@@ -582,9 +582,9 @@ glabel L800B2F70 # case 5, 8
.L800B323C:
/* 0B3E3C 800B323C 240A0006 */ li $t2, 6
.L800B3240:
/* 0B3E40 800B3240 3C018019 */ lui $at, %hi(gMainMenuSelectionDepth) # $at, 0x8019
/* 0B3E40 800B3240 3C018019 */ lui $at, %hi(gMainMenuSelection) # $at, 0x8019
/* 0B3E44 800B3244 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900
/* 0B3E48 800B3248 A02AEDED */ sb $t2, %lo(gMainMenuSelectionDepth)($at)
/* 0B3E48 800B3248 A02AEDED */ sb $t2, %lo(gMainMenuSelection)($at)
/* 0B3E4C 800B324C 0C032384 */ jal play_sound2
/* 0B3E50 800B3250 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001
/* 0B3E54 800B3254 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019
@@ -633,8 +633,8 @@ glabel L800B32B4 # case 6, 7
.L800B32F4:
/* 0B3EF4 800B32F4 0C032384 */ jal play_sound2
/* 0B3EF8 800B32F8 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3EFC 800B32FC 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019
/* 0B3F00 800B3300 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213
/* 0B3EFC 800B32FC 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B3F00 800B3300 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3F04 800B3304 8FA6001C */ lw $a2, 0x1c($sp)
.L800B3308:
/* 0B3F08 800B3308 30CD4000 */ andi $t5, $a2, 0x4000
@@ -672,7 +672,7 @@ glabel L800B32B4 # case 6, 7
.L800B3380:
/* 0B3F80 800B3380 A10A0000 */ sb $t2, ($t0)
.L800B3384:
/* 0B3F84 800B3384 0C02D12B */ jal func_800B44AC
/* 0B3F84 800B3384 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3F88 800B3388 00000000 */ nop
/* 0B3F8C 800B338C 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B3F90 800B3390 0C032384 */ jal play_sound2
@@ -701,7 +701,7 @@ glabel L800B32B4 # case 6, 7
/* 0B3FE8 800B33E8 3C044900 */ lui $a0, (0x49008016 >> 16) # lui $a0, 0x4900
/* 0B3FEC 800B33EC 0C032384 */ jal play_sound2
/* 0B3FF0 800B33F0 34848016 */ ori $a0, (0x49008016 & 0xFFFF) # ori $a0, $a0, 0x8016
/* 0B3FF4 800B33F4 0C02CA32 */ jal func_800B28C8
/* 0B3FF4 800B33F4 0C02CA32 */ jal setup_game_mode_selected
/* 0B3FF8 800B33F8 00000000 */ nop
/* 0B3FFC 800B33FC 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019
/* 0B4000 800B3400 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1)
@@ -18,12 +18,12 @@ glabel player_select_menu_act
/* 0B4194 800B3594 3069FFFF */ andi $t1, $v1, 0xffff
/* 0B4198 800B3598 01201825 */ move $v1, $t1
.L800B359C:
/* 0B419C 800B359C 0C02D148 */ jal func_800B4520
/* 0B419C 800B359C 0C02D148 */ jal is_screen_being_faded
/* 0B41A0 800B35A0 A7A30036 */ sh $v1, 0x36($sp)
/* 0B41A4 800B35A4 14400167 */ bnez $v0, .L800B3B44
/* 0B41A8 800B35A8 97A30036 */ lhu $v1, 0x36($sp)
/* 0B41AC 800B35AC 3C028019 */ lui $v0, %hi(D_8018EDEE) # $v0, 0x8019
/* 0B41B0 800B35B0 8042EDEE */ lb $v0, %lo(D_8018EDEE)($v0)
/* 0B41AC 800B35AC 3C028019 */ lui $v0, %hi(gPlayerSelectMenuSelection) # $v0, 0x8019
/* 0B41B0 800B35B0 8042EDEE */ lb $v0, %lo(gPlayerSelectMenuSelection)($v0)
/* 0B41B4 800B35B4 24010001 */ li $at, 1
/* 0B41B8 800B35B8 97AB0046 */ lhu $t3, 0x46($sp)
/* 0B41BC 800B35BC 1041000A */ beq $v0, $at, .L800B35E8
@@ -59,8 +59,8 @@ glabel player_select_menu_act
.L800B3630:
/* 0B4230 800B3630 13000014 */ beqz $t8, .L800B3684
/* 0B4234 800B3634 97B90046 */ lhu $t9, 0x46($sp)
/* 0B4238 800B3638 3C038019 */ lui $v1, %hi(D_8018EDE8) # $v1, 0x8019
/* 0B423C 800B363C 2463EDE8 */ addiu $v1, %lo(D_8018EDE8) # addiu $v1, $v1, -0x1218
/* 0B4238 800B3638 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019
/* 0B423C 800B363C 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218
/* 0B4240 800B3640 00793821 */ addu $a3, $v1, $t9
/* 0B4244 800B3644 80E80000 */ lb $t0, ($a3)
/* 0B4248 800B3648 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
@@ -81,14 +81,14 @@ glabel player_select_menu_act
/* 0B4280 800B3680 8FA6002C */ lw $a2, 0x2c($sp)
.L800B3684:
/* 0B4284 800B3684 97A90046 */ lhu $t1, 0x46($sp)
/* 0B4288 800B3688 3C038019 */ lui $v1, %hi(D_8018EDE8) # $v1, 0x8019
/* 0B428C 800B368C 2463EDE8 */ addiu $v1, %lo(D_8018EDE8) # addiu $v1, $v1, -0x1218
/* 0B4288 800B3688 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019
/* 0B428C 800B368C 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218
/* 0B4290 800B3690 30CA8000 */ andi $t2, $a2, 0x8000
/* 0B4294 800B3694 11400017 */ beqz $t2, .L800B36F4
/* 0B4298 800B3698 00693821 */ addu $a3, $v1, $t1
/* 0B429C 800B369C 80EB0000 */ lb $t3, ($a3)
/* 0B42A0 800B36A0 240C0001 */ li $t4, 1
/* 0B42A4 800B36A4 3C05800F */ lui $a1, %hi((D_800F2BAC - 1)) # 0x800f
/* 0B42A4 800B36A4 3C05800F */ lui $a1, %hi((sCharacterGridOrder - 1)) # 0x800f
/* 0B42A8 800B36A8 55600013 */ bnel $t3, $zero, .L800B36F8
/* 0B42AC 800B36AC 00002025 */ move $a0, $zero
/* 0B42B0 800B36B0 8FAD0028 */ lw $t5, 0x28($sp)
@@ -98,14 +98,14 @@ glabel player_select_menu_act
/* 0B42C0 800B36C0 3421800E */ ori $at, (0x2900800E & 0xFFFF) # ori $at, $at, 0x800e
/* 0B42C4 800B36C4 AFA70020 */ sw $a3, 0x20($sp)
/* 0B42C8 800B36C8 00AE2821 */ addu $a1, $a1, $t6
/* 0B42CC 800B36CC 80A52BAB */ lb $a1, %lo((D_800F2BAC - 1))($a1) # 0x2bab($a1)
/* 0B42CC 800B36CC 80A52BAB */ lb $a1, %lo((sCharacterGridOrder - 1))($a1) # 0x2bab($a1)
/* 0B42D0 800B36D0 AFA6002C */ sw $a2, 0x2c($sp)
/* 0B42D4 800B36D4 93A40047 */ lbu $a0, 0x47($sp)
/* 0B42D8 800B36D8 00057900 */ sll $t7, $a1, 4
/* 0B42DC 800B36DC 0C03243D */ jal func_800C90F4
/* 0B42E0 800B36E0 01E12821 */ addu $a1, $t7, $at
/* 0B42E4 800B36E4 3C038019 */ lui $v1, %hi(D_8018EDE8) # $v1, 0x8019
/* 0B42E8 800B36E8 2463EDE8 */ addiu $v1, %lo(D_8018EDE8) # addiu $v1, $v1, -0x1218
/* 0B42E4 800B36E4 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019
/* 0B42E8 800B36E8 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218
/* 0B42EC 800B36EC 8FA6002C */ lw $a2, 0x2c($sp)
/* 0B42F0 800B36F0 8FA70020 */ lw $a3, 0x20($sp)
.L800B36F4:
@@ -133,10 +133,10 @@ glabel player_select_menu_act
.L800B3738:
/* 0B4338 800B3738 1480000B */ bnez $a0, .L800B3768
/* 0B433C 800B373C 240C0002 */ li $t4, 2
/* 0B4340 800B3740 3C018019 */ lui $at, %hi(D_8018EDEE) # $at, 0x8019
/* 0B4344 800B3744 A02CEDEE */ sb $t4, %lo(D_8018EDEE)($at)
/* 0B4340 800B3740 3C018019 */ lui $at, %hi(gPlayerSelectMenuSelection) # $at, 0x8019
/* 0B4344 800B3744 A02CEDEE */ sb $t4, %lo(gPlayerSelectMenuSelection)($at)
/* 0B4348 800B3748 AFA6002C */ sw $a2, 0x2c($sp)
/* 0B434C 800B374C 0C02D12B */ jal func_800B44AC
/* 0B434C 800B374C 0C02D12B */ jal reset_cycle_flash_menu
/* 0B4350 800B3750 AFA70020 */ sw $a3, 0x20($sp)
/* 0B4354 800B3754 3C038019 */ lui $v1, %hi(gMenuTimingCounter) # $v1, 0x8019
/* 0B4358 800B3758 2463EE00 */ addiu $v1, %lo(gMenuTimingCounter) # addiu $v1, $v1, -0x1200
@@ -375,11 +375,11 @@ glabel player_select_menu_act
/* 0B46A8 800B3AA8 11A00011 */ beqz $t5, .L800B3AF0
/* 0B46AC 800B3AAC 30C88000 */ andi $t0, $a2, 0x8000
/* 0B46B0 800B3AB0 97AF0046 */ lhu $t7, 0x46($sp)
/* 0B46B4 800B3AB4 3C038019 */ lui $v1, %hi(D_8018EDE8) # $v1, 0x8019
/* 0B46B8 800B3AB8 2463EDE8 */ addiu $v1, %lo(D_8018EDE8) # addiu $v1, $v1, -0x1218
/* 0B46B4 800B3AB4 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019
/* 0B46B8 800B3AB8 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218
/* 0B46BC 800B3ABC 240E0001 */ li $t6, 1
/* 0B46C0 800B3AC0 3C018019 */ lui $at, %hi(D_8018EDEE) # $at, 0x8019
/* 0B46C4 800B3AC4 A02EEDEE */ sb $t6, %lo(D_8018EDEE)($at)
/* 0B46C0 800B3AC0 3C018019 */ lui $at, %hi(gPlayerSelectMenuSelection) # $at, 0x8019
/* 0B46C4 800B3AC4 A02EEDEE */ sb $t6, %lo(gPlayerSelectMenuSelection)($at)
/* 0B46C8 800B3AC8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B46CC 800B3ACC 006FC021 */ addu $t8, $v1, $t7
/* 0B46D0 800B3AD0 A3000000 */ sb $zero, ($t8)
@@ -407,10 +407,10 @@ glabel player_select_menu_act
/* 0B4720 800B3B20 8063EDE4 */ lb $v1, %lo(gCharacterGridSelections)($v1) # -0x121c($v1)
.L800B3B24:
/* 0B4724 800B3B24 10600007 */ beqz $v1, .L800B3B44
/* 0B4728 800B3B28 3C0A800F */ lui $t2, %hi((D_800F2BAC - 1)) # 0x800f
/* 0B4728 800B3B28 3C0A800F */ lui $t2, %hi((sCharacterGridOrder - 1)) # 0x800f
/* 0B472C 800B3B2C 97AB0046 */ lhu $t3, 0x46($sp)
/* 0B4730 800B3B30 01435021 */ addu $t2, $t2, $v1
/* 0B4734 800B3B34 814A2BAB */ lb $t2, %lo((D_800F2BAC - 1))($t2) # 0x2bab($t2)
/* 0B4734 800B3B34 814A2BAB */ lb $t2, %lo((sCharacterGridOrder - 1))($t2) # 0x2bab($t2)
/* 0B4738 800B3B38 3C01800F */ lui $at, %hi(gCharacterSelections) # 0x800f
/* 0B473C 800B3B3C 002B0821 */ addu $at, $at, $t3
/* 0B4740 800B3B40 A02A86A8 */ sb $t2, %lo(gCharacterSelections)($at) # -0x7958($at)
-14
View File
@@ -195,20 +195,6 @@ enum { COURSE_ONE, COURSE_TWO, COURSE_THREE, COURSE_FOUR };
#define ENDING 5
#define CREDITS_SEQUENCE 9
/**
* @brief Options for gMainMenuSelectionDepth
*/
#define BLANK_MAIN_MENU 0
#define OPTIONS_SELECTION 1
#define DATA_SELECTION 2
#define PLAYER_NUM_SELECTION 3
#define GAME_MODE_SELECTION 4
#define GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION \
5 // Selecting CC for GP and Versus. Selecting "Begin" or "Data" for Time Trials. Unused for Battle
#define CONFIRM_OK_SELECTION 6
#define CONFIRM_OK_SELECTION_FROM_BACK_OUT 7
#define TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT 8
/**
* @brief Options for gScreenModeSelection and gActiveScreenMode
*/
+1 -1
View File
@@ -5339,7 +5339,7 @@ void func_80014DE4(s32 cameraIndex) {
D_801646D0[cameraIndex].unk0 = 0;
D_801646D0[cameraIndex].unk2 = 0;
D_801646D0[cameraIndex].unk4 = 0;
if ((gModeSelection == 1) && (D_8018EDFC == 0)) {
if ((gModeSelection == 1) && (gCourseMapInit == 0)) {
D_80164678[cameraIndex] = 0;
}
+2 -2
View File
@@ -384,8 +384,8 @@ void func_8006F824(s32 arg0) {
}
void func_8006F8CC(void) {
if (D_8018EDFC == 0) {
D_8018EDFC = 1;
if (gCourseMapInit == 0) {
gCourseMapInit = 1;
gHUDModes = 0;
D_801657E6 = 0;
D_801657F0 = 0;
+1466 -1466
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -60,8 +60,8 @@ u32 World::GetCupIndex() {
u32 World::NextCup() {
s32 hack = 1;
// Prevent battle mode
if (gModeSelection == GRAND_PRIX) {
// Do not display battle mode on GP, TT, or VS
if (gModeSelection != BATTLE) {
hack = 2;
}
+502 -492
View File
File diff suppressed because it is too large Load Diff
+14 -7
View File
@@ -67,12 +67,12 @@ typedef struct {
/* 0x00 */ u64* textureData; // This should be interpreted as a segmented address
/**
* Its hard to tell what exactly what this is meant to be,
* but it appears to be used as some sort of offset/index from the address stored in gMenuTextureBuffer.
* but it appears to be used as some sort of offset/index from the address stored in sMenuTextureList.
* This value is (roughly) the sum of (width * height) of the
* textures in all the previous entries in sMenuTextureMap
*/
/* 0x04 */ s32 offset;
} struct_8018E118_entry; // size = 0x08
} TextureMap; // size = 0x08
typedef struct {
/* 0x00 */ MenuTexture* textures;
@@ -133,7 +133,7 @@ enum MENU_ITEM_TYPE {
MAIN_MENU_50CC,
MAIN_MENU_100CC,
MAIN_MENU_150CC,
MENU_ITEM_TYPE_015,
MAIN_MENU_EXTRA_CC,
MENU_ITEM_TYPE_016,
MENU_ITEM_TYPE_017,
MAIN_MENU_TIME_TRIALS_BEGIN,
@@ -416,7 +416,7 @@ Gfx* draw_box_wide(Gfx*, s32, s32, s32, s32, u32, u32, u32, u32);
Gfx* func_80098FC8(Gfx*, s32, s32, s32, s32);
void dma_compressed_mio0_texture_segA(u64*, size_t, void*);
void dma_tkmk00_textures(u64*, size_t, void*);
void func_80099110(void);
void clear_menu_textures(void);
void load_menu_img(MenuTexture*);
void* segmented_to_virtual_dupe(const void*);
void* segmented_to_virtual_dupe_2(const void*);
@@ -655,13 +655,20 @@ void tkmk00decode(u8*, u8*, u8*, s32);
#define D_8018E768_SIZE 0x08
#define D_8018E7E8_SIZE 0x05
#define D_8018E810_SIZE 0x05
#define MENU_TEXTURE_BUFFER_MAX 500
/* This is where I'd put my static data, if I had any */
extern s32 D_800DDB24;
extern s16 D_80164478[];
extern u16* gMenuTextureBuffer;
/**
* Old name: sMenuTextureBuffer
* This array has been modified. Instead of holding a buffer of texture data
* It now holds a list of pointers to asset strings.
* use `load_texture()` and `replace_texture()` to add textures to the list for rendering.
*/
extern const char* sMenuTextureList[MENU_TEXTURE_BUFFER_MAX];
extern u8* gMenuCompressedBuffer;
extern u8* sTKMK00_LowResBuffer;
extern u8* sGPPointsCopy;
@@ -674,8 +681,8 @@ extern MenuItem gMenuItems[MENU_ITEMS_MAX];
extern struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE];
extern struct_8018E060_entry D_8018E060[];
extern struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE];
extern s32 sMenuTextureBufferIndex;
extern struct_8018E118_entry sMenuTextureMap[TEXTURE_MAP_MAX];
extern s32 sMenuTextureListIndex; // Old name: sMenuTextureBufferIndex, index into sMenuTextureList
extern TextureMap sMenuTextureMap[TEXTURE_MAP_MAX];
extern s32 sMenuTextureEntries;
extern Gfx* sGfxPtr;
extern s32 gNumD_8018E768Entries;
+517 -479
View File
File diff suppressed because it is too large Load Diff
+23 -24
View File
@@ -204,15 +204,15 @@ void course_data_menu_act(struct Controller*, u16);
void logo_intro_menu_act(struct Controller*, u16);
void controller_pak_menu_act(struct Controller*, u16);
void splash_menu_act(struct Controller*, u16);
void func_800B28C8(void);
void setup_game_mode_selected(void);
void main_menu_act(struct Controller*, u16);
bool is_character_spot_free(s32);
void player_select_menu_act(struct Controller* controller, u16 arg1);
void course_select_menu_act(struct Controller*, u16);
void load_menu_states(s32);
void func_800B44AC(void);
void func_800B44BC(void);
bool func_800B4520(void);
void reset_cycle_flash_menu(void);
void set_sound_mode(void);
bool is_screen_being_faded(void);
/* data */
extern s32 gIntroModelZEye;
@@ -223,16 +223,16 @@ extern f32 gIntroModelRotZ;
extern f32 gIntroModelPosX;
extern f32 gIntroModelPosY;
extern f32 gIntroModelPosZ;
extern s32 D_8018EDE0;
extern s32 gMenuFadeType;
extern s8 gCharacterGridSelections[];
extern s8 D_8018EDE8[];
extern s8 gCharacterGridIsSelected[];
extern s8 gSubMenuSelection;
extern s8 gMainMenuSelectionDepth;
extern s8 D_8018EDEE;
extern s8 gMainMenuSelection;
extern s8 gPlayerSelectMenuSelection;
extern s8 gDebugMenuSelection;
extern s8 gControllerPakMenuSelection;
extern s8 D_8018EDF1;
extern s8 gScreenModeListIndex;
extern u8 gSoundMode;
extern s8 gPlayerCount;
extern s8 gVersusResultCursorSelection;
@@ -240,18 +240,17 @@ extern s8 gTimeTrialsResultCursorSelection;
extern s8 gBattleResultCursorSelection;
extern s8 gTimeTrialDataCourseIndex;
extern s8 gCourseRecordsMenuSelection;
extern s8 D_8018EDF9;
extern s8 gCourseRecordsSubMenuSelection;
extern s8 gDebugGotoScene;
extern s8 D_8018EDFB;
extern s8 D_8018EDFC;
extern s8 gGhostPlayerInit;
extern s8 gCourseMapInit;
extern s32 gMenuTimingCounter;
extern s32 gMenuDelayTimer;
extern s8 gDemoUseController;
extern s8 gCupSelection;
extern s8 D_8018EE0A;
extern s8 sTempCupSelection;
extern s8 gCourseIndexInCup;
extern s8 D_8018EE0C;
extern struct_8018EE10_entry D_8018EE10[];
extern s8 unref_D_8018EE0C;
extern s32 gMenuSelection; // D_800E86A0
extern s32 gFadeModeSelection;
@@ -261,21 +260,21 @@ extern s8 gGameModeMenuColumn[];
extern s8 gGameModeSubMenuColumn[4][3];
extern s8 gNextDemoId;
extern s8 gControllerPakSelectedTableRow;
extern s8 D_800E86C4[];
extern s8 gControllerPakScrollDirection[];
extern s8 unref_800E86E0[];
extern s8 gControllerPakVisibleTableRows[];
extern s8 gControllerPakScrollDirection;
extern s8 unref_D_800E86D4[];
extern u32 sVIGammaOffDitherOn;
extern const s8 D_800F2B50[5];
extern const s8 D_800F2B58[5];
extern const s8 sScreenModePlayerTable[5];
extern const s8 sScreenModePlayerCount[5];
extern const s8 gPlayerModeSelection[];
extern const s8 gGameModePlayerColumnDefault[][3];
extern const s8 gGameModePlayerColumnExtra[][3];
extern const s8 sGameModePlayerColumnDefault[][3];
extern const s8 sGameModePlayerColumnExtra[][3];
extern const s32 gGameModePlayerSelection[][3];
extern const s8 D_800F2BAC[8];
extern const s8 sCharacterGridOrder[8];
extern const s16 gCupCourseOrder[NUM_CUPS][NUM_COURSES_PER_CUP];
extern const union GameModePack gSoundMenuPack;
extern const union GameModePack sSoundMenuPack;
// end of menus.c variables
+33 -37
View File
@@ -1882,56 +1882,52 @@ void func_8004C628(s32 arg0, s32 arg1, u32 arg2, u32 arg3, u8* texture) {
gSPDisplayList(gDisplayListHead++, D_0D007EB8);
}
#ifdef NON_MATCHING
// https://decomp.me/scratch/TqXqn
// There's a weird fakematch concerning `xPos`, don't know that to make of. Can't quite get it over the finish line
// though
// non-matching
void render_texture_tile_rgba32_block(s16 x, s16 y, u8* texture, u32 width, u32 height) {
s32 texSizeLess;
s32 i;
s32 yPos;
s32 xPos;
s32 texBlockCount;
u32 texSize;
s32 heightDiv;
s32 realCount;
u8* textureCopy;
s32 remainingSize;
s32 currX;
s32 currY;
u32 size;
s32 tileHeight;
s32 numTiles;
s32 numTilesDup;
currX = x - (width / 2);
currY = y - (height / 2);
xPos = x - (width / 2);
yPos = y - (height / 2);
textureCopy = texture;
gSPDisplayList(gDisplayListHead++, D_0D007EF8);
gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
texSize = width * height * 4;
texBlockCount = texSize / 4096;
if (texSize % 4096) {
texBlockCount++;
size = width * height * 4;
numTiles = size / 4096;
if (size % 4096) {
numTiles++;
}
heightDiv = height / texBlockCount;
realCount = texBlockCount;
for (i = 0; i < realCount; i++) {
load_texture_tile_rgba32_nomirror(textureCopy, width, heightDiv);
render_texture_rectangle_wrap(xPos, yPos, width, heightDiv, 1);
texSizeLess = texSize - (width * heightDiv * 4);
textureCopy += (width * heightDiv * 4);
if (texSizeLess < 0) {
heightDiv = texSize / width;
tileHeight = height / numTiles;
numTilesDup = numTiles;
for (size_t i = 0; i < numTilesDup; i++) {
load_texture_tile_rgba32_nomirror(texture, width, tileHeight);
render_texture_rectangle_wrap(currX, currY, width, tileHeight, 1);
texture += (width * tileHeight * 4);
remainingSize = size - (width * tileHeight * 4);
if (remainingSize < 0) {
tileHeight = size / width;
} else {
texSize = texSizeLess;
size -= (width * tileHeight * 4);
}
// Weird fakematch that is a HUGE improvement
xPos += yPos * 0;
yPos += heightDiv;
currX += currY * 0;
currY += tileHeight;
}
gSPDisplayList(gDisplayListHead++, D_0D007EB8);
}
#else
GLOBAL_ASM("asm/non_matchings/render_objects/render_texture_tile_rgba32_block.s")
#endif
void render_game_logo(s16 arg0, s16 arg1) {
render_texture_tile_rgba32_block(arg0, arg1, gTextureLogoMarioKart64, 0x100, 0x80);
void render_game_logo(s16 x, s16 y) {
render_texture_tile_rgba32_block(x, y, LOAD_ASSET(gTextureLogoMarioKart64), ResourceGetTexWidthByName(gTextureLogoMarioKart64), ResourceGetTexHeightByName(gTextureLogoMarioKart64));
}
UNUSED void func_8004C91C(s32 arg0, s32 arg1, u8* texture, s32 arg3, s32 arg4, s32 arg5) {
+4 -1
View File
@@ -19,6 +19,9 @@
// very fragile!
#define EEPROM_ADDR(ptr) (((uintptr_t) (ptr) - (uintptr_t) (&gSaveData)) / 8)
/** BSS **/
struct_8018EE10_entry D_8018EE10[2];
/*** data ***/
u16 gCompanyCode = PFS_COMPANY_CODE('0', '1');
u32 gGameCode = PFS_GAME_CODE('N', 'K', 'T', 'J');
@@ -93,7 +96,7 @@ void reset_save_data_grand_prix_points_and_sound_mode(void) {
}
main->saveInfo.soundMode = SOUND_STEREO;
gSoundMode = SOUND_STEREO;
func_800B44BC();
set_sound_mode();
write_save_data_grand_prix_points_and_sound_mode();
}
+2
View File
@@ -14,6 +14,7 @@
#define PFS_NO_ERROR 0 // controller pak no error return
#define PFS_NO_PAK_INSERTED 1 // no pak pressent or wrong device inserted into the controller
#define PFS_PAK_BAD_READ 2 // controller pak error while data transfer
#define PFS_PAK_CORRUPTED 3 // controller pak has courrupted or has weird data
#define PFS_FILE_OVERFLOW 4 // too many files written to in the controller pak
#define PFS_INVALID_DATA -1 // bad arguments, game note does not exist, osPfsInit was not called.
// controller pak test functions
@@ -87,6 +88,7 @@ s32 func_800B6A68(void);
// these might not be in this file, but for now...
extern u32* D_800DC714;
extern struct_8018EE10_entry D_8018EE10[];
extern u16 gCompanyCode;
extern u32 gGameCode; // osPfs gamecode
+3 -5
View File
@@ -13,15 +13,13 @@
*
*/
typedef struct {
/* 0x00 */ s16 type;
/* 0x02 */ s16 unused1;
/* 0x00 */ s32 type;
/* 0x04 */ u64* textureData; // This should be interpreted as a segmented address
/* 0x08 */ u16 width;
/* 0x0A */ u16 height;
/* 0x0C */ u16 dX;
/* 0x0E */ u16 dY;
/* 0x10 */ u16 size; // This size is NOT equal to width*height. Its likely the size of the compressed texture
/* 0x12 */ s16 unused2;
} MenuTexture; // size = 0x14
/**
@@ -493,8 +491,8 @@ extern MenuTexture D_0200450C[2];
extern MenuTexture D_02004534[2];
extern MenuTexture D_0200455C[2];
extern MenuTexture D_02004584[1];
extern MenuTexture D_02004598[2];
extern MenuTexture D_020045C0[2];
extern MenuTexture seg2_blue_sky_background_texture[2];
extern MenuTexture seg2_sunset_background_texture[2];
extern MenuTexture seg2_copyright_1996_texture[2];
extern MenuTexture seg2_push_start_button_texture[2];
extern MenuTexture D_02004638[2];