Merge pull request #134 from MegaMech/91750

The Big code_80091750.c PR
This commit is contained in:
MegaMech
2025-01-04 14:47:22 -07:00
committed by GitHub
67 changed files with 8647 additions and 10044 deletions
+1 -1
View File
@@ -244,7 +244,7 @@ include $(MAKEFILE_SPLIT)
# These are files that need to be encoded into EUC-JP in order for the ROM to match
# We filter them out from the regular C_FILES since we don't need nor want the
# UTF-8 versions getting compiled
EUC_JP_FILES := src/ending/credits.c src/code_80005FD0.c src/code_80091750.c
EUC_JP_FILES := src/ending/credits.c src/code_80005FD0.c src/menu_items.c
C_FILES := $(filter-out %.inc.c,$(filter-out $(EUC_JP_FILES),$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))))
S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
# Include source files in courses/course_name/files.c but exclude .inc.c files.
@@ -1,146 +0,0 @@
glabel load_menu_img
/* 099D84 80099184 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 099D88 80099188 AFBF0034 */ sw $ra, 0x34($sp)
/* 099D8C 8009918C AFB60030 */ sw $s6, 0x30($sp)
/* 099D90 80099190 AFB5002C */ sw $s5, 0x2c($sp)
/* 099D94 80099194 AFB40028 */ sw $s4, 0x28($sp)
/* 099D98 80099198 AFB30024 */ sw $s3, 0x24($sp)
/* 099D9C 8009919C AFB20020 */ sw $s2, 0x20($sp)
/* 099DA0 800991A0 AFB1001C */ sw $s1, 0x1c($sp)
/* 099DA4 800991A4 0C026449 */ jal segmented_to_virtual_dupe
/* 099DA8 800991A8 AFB00018 */ sw $s0, 0x18($sp)
/* 099DAC 800991AC 8C4E0004 */ lw $t6, 4($v0)
/* 099DB0 800991B0 00408825 */ move $s1, $v0
/* 099DB4 800991B4 24160003 */ li $s6, 3
/* 099DB8 800991B8 11C0006C */ beqz $t6, .L8009936C
/* 099DBC 800991BC 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019
/* 099DC0 800991C0 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019
/* 099DC4 800991C4 3C138019 */ lui $s3, %hi(gNumD_8018E118Entries) # $s3, 0x8019
/* 099DC8 800991C8 3C128019 */ lui $s2, %hi(gMenuTextureBufferIndex) # $s2, 0x8019
/* 099DCC 800991CC 3C108019 */ lui $s0, %hi(D_8018E118) # $s0, 0x8019
/* 099DD0 800991D0 2610E118 */ addiu $s0, %lo(D_8018E118) # addiu $s0, $s0, -0x1ee8
/* 099DD4 800991D4 2652E110 */ addiu $s2, %lo(gMenuTextureBufferIndex) # addiu $s2, $s2, -0x1ef0
/* 099DD8 800991D8 2673E758 */ addiu $s3, %lo(gNumD_8018E118Entries) # addiu $s3, $s3, -0x18a8
/* 099DDC 800991DC 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c
/* 099DE0 800991E0 26B5D9B0 */ addiu $s5, %lo(D_8018D9B0) # addiu $s5, $s5, -0x2650
/* 099DE4 800991E4 8E630000 */ lw $v1, ($s3)
.L800991E8:
/* 099DE8 800991E8 00002825 */ move $a1, $zero
/* 099DEC 800991EC 00001025 */ move $v0, $zero
/* 099DF0 800991F0 1860000D */ blez $v1, .L80099228
/* 099DF4 800991F4 00000000 */ nop
/* 099DF8 800991F8 8E240004 */ lw $a0, 4($s1)
/* 099DFC 800991FC 000278C0 */ sll $t7, $v0, 3
.L80099200:
/* 099E00 80099200 020FC021 */ addu $t8, $s0, $t7
/* 099E04 80099204 8F190000 */ lw $t9, ($t8)
/* 099E08 80099208 24420001 */ addiu $v0, $v0, 1
/* 099E0C 8009920C 0043082A */ slt $at, $v0, $v1
/* 099E10 80099210 17240003 */ bne $t9, $a0, .L80099220
/* 099E14 80099214 00000000 */ nop
/* 099E18 80099218 10000003 */ b .L80099228
/* 099E1C 8009921C 24050001 */ li $a1, 1
.L80099220:
/* 099E20 80099220 5420FFF7 */ bnel $at, $zero, .L80099200
/* 099E24 80099224 000278C0 */ sll $t7, $v0, 3
.L80099228:
/* 099E28 80099228 54A0004D */ bnel $a1, $zero, .L80099360
/* 099E2C 8009922C 8E2A0018 */ lw $t2, 0x18($s1)
/* 099E30 80099230 86280000 */ lh $t0, ($s1)
/* 099E34 80099234 8E240004 */ lw $a0, 4($s1)
/* 099E38 80099238 56C80022 */ bnel $s6, $t0, .L800992C4
/* 099E3C 8009923C 962F000A */ lhu $t7, 0xa($s1)
/* 099E40 80099240 96220010 */ lhu $v0, 0x10($s1)
/* 099E44 80099244 24051000 */ li $a1, 4096
/* 099E48 80099248 10400003 */ beqz $v0, .L80099258
/* 099E4C 8009924C 00000000 */ nop
/* 099E50 80099250 10000001 */ b .L80099258
/* 099E54 80099254 3045FFFF */ andi $a1, $v0, 0xffff
.L80099258:
/* 099E58 80099258 00A01025 */ move $v0, $a1
/* 099E5C 8009925C 04410004 */ bgez $v0, .L80099270
/* 099E60 80099260 30490007 */ andi $t1, $v0, 7
/* 099E64 80099264 11200002 */ beqz $t1, .L80099270
/* 099E68 80099268 00000000 */ nop
/* 099E6C 8009926C 2529FFF8 */ addiu $t1, $t1, -8
.L80099270:
/* 099E70 80099270 11200009 */ beqz $t1, .L80099298
/* 099E74 80099274 00000000 */ nop
/* 099E78 80099278 04410003 */ bgez $v0, .L80099288
/* 099E7C 8009927C 000228C3 */ sra $a1, $v0, 3
/* 099E80 80099280 24410007 */ addiu $at, $v0, 7
/* 099E84 80099284 000128C3 */ sra $a1, $at, 3
.L80099288:
/* 099E88 80099288 000550C0 */ sll $t2, $a1, 3
/* 099E8C 8009928C 25450008 */ addiu $a1, $t2, 8
/* 099E90 80099290 30ABFFFF */ andi $t3, $a1, 0xffff
/* 099E94 80099294 01602825 */ move $a1, $t3
.L80099298:
/* 099E98 80099298 0C026400 */ jal dma_copy_base_729a30
/* 099E9C 8009929C 8E860000 */ lw $a2, ($s4)
/* 099EA0 800992A0 8E4C0000 */ lw $t4, ($s2)
/* 099EA4 800992A4 8EAE0000 */ lw $t6, ($s5)
/* 099EA8 800992A8 8E840000 */ lw $a0, ($s4)
/* 099EAC 800992AC 000C6840 */ sll $t5, $t4, 1
/* 099EB0 800992B0 0C010034 */ jal mio0decode
/* 099EB4 800992B4 01AE2821 */ addu $a1, $t5, $t6
/* 099EB8 800992B8 1000000D */ b .L800992F0
/* 099EBC 800992BC 8E6C0000 */ lw $t4, ($s3)
/* 099EC0 800992C0 962F000A */ lhu $t7, 0xa($s1)
.L800992C4:
/* 099EC4 800992C4 96380008 */ lhu $t8, 8($s1)
/* 099EC8 800992C8 8E480000 */ lw $t0, ($s2)
/* 099ECC 800992CC 8EAA0000 */ lw $t2, ($s5)
/* 099ED0 800992D0 01F80019 */ multu $t7, $t8
/* 099ED4 800992D4 00084840 */ sll $t1, $t0, 1
/* 099ED8 800992D8 012A3021 */ addu $a2, $t1, $t2
/* 099EDC 800992DC 00002812 */ mflo $a1
/* 099EE0 800992E0 0005C840 */ sll $t9, $a1, 1
/* 099EE4 800992E4 0C026400 */ jal dma_copy_base_729a30
/* 099EE8 800992E8 03202825 */ move $a1, $t9
/* 099EEC 800992EC 8E6C0000 */ lw $t4, ($s3)
.L800992F0:
/* 099EF0 800992F0 8E2B0004 */ lw $t3, 4($s1)
/* 099EF4 800992F4 000C68C0 */ sll $t5, $t4, 3
/* 099EF8 800992F8 020D7021 */ addu $t6, $s0, $t5
/* 099EFC 800992FC ADCB0000 */ sw $t3, ($t6)
/* 099F00 80099300 8E780000 */ lw $t8, ($s3)
/* 099F04 80099304 8E4F0000 */ lw $t7, ($s2)
/* 099F08 80099308 0018C8C0 */ sll $t9, $t8, 3
/* 099F0C 8009930C 02194021 */ addu $t0, $s0, $t9
/* 099F10 80099310 AD0F0004 */ sw $t7, 4($t0)
/* 099F14 80099314 962A0008 */ lhu $t2, 8($s1)
/* 099F18 80099318 9629000A */ lhu $t1, 0xa($s1)
/* 099F1C 8009931C 8E4D0000 */ lw $t5, ($s2)
/* 099F20 80099320 8E680000 */ lw $t0, ($s3)
/* 099F24 80099324 012A0019 */ multu $t1, $t2
/* 099F28 80099328 25090001 */ addiu $t1, $t0, 1
/* 099F2C 8009932C AE690000 */ sw $t1, ($s3)
/* 099F30 80099330 00006012 */ mflo $t4
/* 099F34 80099334 01AC5821 */ addu $t3, $t5, $t4
/* 099F38 80099338 01607025 */ move $t6, $t3
/* 099F3C 8009933C AE4B0000 */ sw $t3, ($s2)
/* 099F40 80099340 05C10003 */ bgez $t6, .L80099350
/* 099F44 80099344 000EC0C3 */ sra $t8, $t6, 3
/* 099F48 80099348 25C10007 */ addiu $at, $t6, 7
/* 099F4C 8009934C 0001C0C3 */ sra $t8, $at, 3
.L80099350:
/* 099F50 80099350 0018C8C0 */ sll $t9, $t8, 3
/* 099F54 80099354 272F0008 */ addiu $t7, $t9, 8
/* 099F58 80099358 AE4F0000 */ sw $t7, ($s2)
/* 099F5C 8009935C 8E2A0018 */ lw $t2, 0x18($s1)
.L80099360:
/* 099F60 80099360 26310014 */ addiu $s1, $s1, 0x14
/* 099F64 80099364 5540FFA0 */ bnel $t2, $zero, .L800991E8
/* 099F68 80099368 8E630000 */ lw $v1, ($s3)
.L8009936C:
/* 099F6C 8009936C 8FBF0034 */ lw $ra, 0x34($sp)
/* 099F70 80099370 8FB00018 */ lw $s0, 0x18($sp)
/* 099F74 80099374 8FB1001C */ lw $s1, 0x1c($sp)
/* 099F78 80099378 8FB20020 */ lw $s2, 0x20($sp)
/* 099F7C 8009937C 8FB30024 */ lw $s3, 0x24($sp)
/* 099F80 80099380 8FB40028 */ lw $s4, 0x28($sp)
/* 099F84 80099384 8FB5002C */ lw $s5, 0x2c($sp)
/* 099F88 80099388 8FB60030 */ lw $s6, 0x30($sp)
/* 099F8C 8009938C 03E00008 */ jr $ra
/* 099F90 80099390 27BD0038 */ addiu $sp, $sp, 0x38
@@ -1,112 +0,0 @@
glabel func_80099394
/* 099F94 80099394 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 099F98 80099398 AFBF0034 */ sw $ra, 0x34($sp)
/* 099F9C 8009939C AFB60030 */ sw $s6, 0x30($sp)
/* 099FA0 800993A0 AFB5002C */ sw $s5, 0x2c($sp)
/* 099FA4 800993A4 AFB40028 */ sw $s4, 0x28($sp)
/* 099FA8 800993A8 AFB30024 */ sw $s3, 0x24($sp)
/* 099FAC 800993AC AFB20020 */ sw $s2, 0x20($sp)
/* 099FB0 800993B0 AFB1001C */ sw $s1, 0x1c($sp)
/* 099FB4 800993B4 0C026449 */ jal segmented_to_virtual_dupe
/* 099FB8 800993B8 AFB00018 */ sw $s0, 0x18($sp)
/* 099FBC 800993BC 8C4E0004 */ lw $t6, 4($v0)
/* 099FC0 800993C0 3C168019 */ lui $s6, %hi(D_8018D9B0) # $s6, 0x8019
/* 099FC4 800993C4 00409025 */ move $s2, $v0
/* 099FC8 800993C8 11C0004E */ beqz $t6, .L80099504
/* 099FCC 800993CC 26D6D9B0 */ addiu $s6, %lo(D_8018D9B0) # addiu $s6, $s6, -0x2650
/* 099FD0 800993D0 3C148019 */ lui $s4, %hi(gNumD_8018E118Entries) # $s4, 0x8019
/* 099FD4 800993D4 3C138019 */ lui $s3, %hi(gMenuTextureBufferIndex) # $s3, 0x8019
/* 099FD8 800993D8 3C118019 */ lui $s1, %hi(D_8018E118) # $s1, 0x8019
/* 099FDC 800993DC 2631E118 */ addiu $s1, %lo(D_8018E118) # addiu $s1, $s1, -0x1ee8
/* 099FE0 800993E0 2673E110 */ addiu $s3, %lo(gMenuTextureBufferIndex) # addiu $s3, $s3, -0x1ef0
/* 099FE4 800993E4 2694E758 */ addiu $s4, %lo(gNumD_8018E118Entries) # addiu $s4, $s4, -0x18a8
/* 099FE8 800993E8 24150005 */ li $s5, 5
/* 099FEC 800993EC 8E830000 */ lw $v1, ($s4)
.L800993F0:
/* 099FF0 800993F0 00002025 */ move $a0, $zero
/* 099FF4 800993F4 00001025 */ move $v0, $zero
/* 099FF8 800993F8 1860000D */ blez $v1, .L80099430
/* 099FFC 800993FC 00000000 */ nop
/* 09A000 80099400 8E500004 */ lw $s0, 4($s2)
/* 09A004 80099404 000278C0 */ sll $t7, $v0, 3
.L80099408:
/* 09A008 80099408 022FC021 */ addu $t8, $s1, $t7
/* 09A00C 8009940C 8F190000 */ lw $t9, ($t8)
/* 09A010 80099410 24420001 */ addiu $v0, $v0, 1
/* 09A014 80099414 0043082A */ slt $at, $v0, $v1
/* 09A018 80099418 17300003 */ bne $t9, $s0, .L80099428
/* 09A01C 8009941C 00000000 */ nop
/* 09A020 80099420 10000003 */ b .L80099430
/* 09A024 80099424 24040001 */ li $a0, 1
.L80099428:
/* 09A028 80099428 5420FFF7 */ bnel $at, $zero, .L80099408
/* 09A02C 8009942C 000278C0 */ sll $t7, $v0, 3
.L80099430:
/* 09A030 80099430 54800031 */ bnel $a0, $zero, .L800994F8
/* 09A034 80099434 8E4C0018 */ lw $t4, 0x18($s2)
/* 09A038 80099438 86480000 */ lh $t0, ($s2)
/* 09A03C 8009943C 8E500004 */ lw $s0, 4($s2)
/* 09A040 80099440 56A80013 */ bnel $s5, $t0, .L80099490
/* 09A044 80099444 000378C0 */ sll $t7, $v1, 3
/* 09A048 80099448 9649000A */ lhu $t1, 0xa($s2)
/* 09A04C 8009944C 964A0008 */ lhu $t2, 8($s2)
/* 09A050 80099450 8E6C0000 */ lw $t4, ($s3)
/* 09A054 80099454 8ECE0000 */ lw $t6, ($s6)
/* 09A058 80099458 012A0019 */ multu $t1, $t2
/* 09A05C 8009945C 000C6840 */ sll $t5, $t4, 1
/* 09A060 80099460 02002025 */ move $a0, $s0
/* 09A064 80099464 01AE3021 */ addu $a2, $t5, $t6
/* 09A068 80099468 00002812 */ mflo $a1
/* 09A06C 8009946C 04A10003 */ bgez $a1, .L8009947C
/* 09A070 80099470 00055843 */ sra $t3, $a1, 1
/* 09A074 80099474 24A10001 */ addiu $at, $a1, 1
/* 09A078 80099478 00015843 */ sra $t3, $at, 1
.L8009947C:
/* 09A07C 8009947C 0C026400 */ jal dma_copy_base_729a30
/* 09A080 80099480 01602825 */ move $a1, $t3
/* 09A084 80099484 8E830000 */ lw $v1, ($s4)
/* 09A088 80099488 8E500004 */ lw $s0, 4($s2)
/* 09A08C 8009948C 000378C0 */ sll $t7, $v1, 3
.L80099490:
/* 09A090 80099490 022FC021 */ addu $t8, $s1, $t7
/* 09A094 80099494 AF100000 */ sw $s0, ($t8)
/* 09A098 80099498 8E880000 */ lw $t0, ($s4)
/* 09A09C 8009949C 8E790000 */ lw $t9, ($s3)
/* 09A0A0 800994A0 000848C0 */ sll $t1, $t0, 3
/* 09A0A4 800994A4 02295021 */ addu $t2, $s1, $t1
/* 09A0A8 800994A8 AD590004 */ sw $t9, 4($t2)
/* 09A0AC 800994AC 964C0008 */ lhu $t4, 8($s2)
/* 09A0B0 800994B0 964B000A */ lhu $t3, 0xa($s2)
/* 09A0B4 800994B4 8E6E0000 */ lw $t6, ($s3)
/* 09A0B8 800994B8 8E8A0000 */ lw $t2, ($s4)
/* 09A0BC 800994BC 016C0019 */ multu $t3, $t4
/* 09A0C0 800994C0 254B0001 */ addiu $t3, $t2, 1
/* 09A0C4 800994C4 AE8B0000 */ sw $t3, ($s4)
/* 09A0C8 800994C8 00006812 */ mflo $t5
/* 09A0CC 800994CC 01CD7821 */ addu $t7, $t6, $t5
/* 09A0D0 800994D0 01E0C025 */ move $t8, $t7
/* 09A0D4 800994D4 AE6F0000 */ sw $t7, ($s3)
/* 09A0D8 800994D8 07010003 */ bgez $t8, .L800994E8
/* 09A0DC 800994DC 001840C3 */ sra $t0, $t8, 3
/* 09A0E0 800994E0 27010007 */ addiu $at, $t8, 7
/* 09A0E4 800994E4 000140C3 */ sra $t0, $at, 3
.L800994E8:
/* 09A0E8 800994E8 000848C0 */ sll $t1, $t0, 3
/* 09A0EC 800994EC 25390008 */ addiu $t9, $t1, 8
/* 09A0F0 800994F0 AE790000 */ sw $t9, ($s3)
/* 09A0F4 800994F4 8E4C0018 */ lw $t4, 0x18($s2)
.L800994F8:
/* 09A0F8 800994F8 26520014 */ addiu $s2, $s2, 0x14
/* 09A0FC 800994FC 5580FFBC */ bnel $t4, $zero, .L800993F0
/* 09A100 80099500 8E830000 */ lw $v1, ($s4)
.L80099504:
/* 09A104 80099504 8FBF0034 */ lw $ra, 0x34($sp)
/* 09A108 80099508 8FB00018 */ lw $s0, 0x18($sp)
/* 09A10C 8009950C 8FB1001C */ lw $s1, 0x1c($sp)
/* 09A110 80099510 8FB20020 */ lw $s2, 0x20($sp)
/* 09A114 80099514 8FB30024 */ lw $s3, 0x24($sp)
/* 09A118 80099518 8FB40028 */ lw $s4, 0x28($sp)
/* 09A11C 8009951C 8FB5002C */ lw $s5, 0x2c($sp)
/* 09A120 80099520 8FB60030 */ lw $s6, 0x30($sp)
/* 09A124 80099524 03E00008 */ jr $ra
/* 09A128 80099528 27BD0038 */ addiu $sp, $sp, 0x38
@@ -1,100 +0,0 @@
glabel func_8009952C
/* 09A12C 8009952C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 09A130 80099530 AFBF002C */ sw $ra, 0x2c($sp)
/* 09A134 80099534 AFB50028 */ sw $s5, 0x28($sp)
/* 09A138 80099538 AFB40024 */ sw $s4, 0x24($sp)
/* 09A13C 8009953C AFB30020 */ sw $s3, 0x20($sp)
/* 09A140 80099540 AFB2001C */ sw $s2, 0x1c($sp)
/* 09A144 80099544 AFB10018 */ sw $s1, 0x18($sp)
/* 09A148 80099548 0C026449 */ jal segmented_to_virtual_dupe
/* 09A14C 8009954C AFB00014 */ sw $s0, 0x14($sp)
/* 09A150 80099550 8C4E0004 */ lw $t6, 4($v0)
/* 09A154 80099554 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019
/* 09A158 80099558 00408825 */ move $s1, $v0
/* 09A15C 8009955C 11C00046 */ beqz $t6, .L80099678
/* 09A160 80099560 26B5D9B0 */ addiu $s5, %lo(D_8018D9B0) # addiu $s5, $s5, -0x2650
/* 09A164 80099564 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019
/* 09A168 80099568 3C138019 */ lui $s3, %hi(gNumD_8018E118Entries) # $s3, 0x8019
/* 09A16C 8009956C 3C128019 */ lui $s2, %hi(gMenuTextureBufferIndex) # $s2, 0x8019
/* 09A170 80099570 3C108019 */ lui $s0, %hi(D_8018E118) # $s0, 0x8019
/* 09A174 80099574 2610E118 */ addiu $s0, %lo(D_8018E118) # addiu $s0, $s0, -0x1ee8
/* 09A178 80099578 2652E110 */ addiu $s2, %lo(gMenuTextureBufferIndex) # addiu $s2, $s2, -0x1ef0
/* 09A17C 8009957C 2673E758 */ addiu $s3, %lo(gNumD_8018E118Entries) # addiu $s3, $s3, -0x18a8
/* 09A180 80099580 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c
/* 09A184 80099584 8E630000 */ lw $v1, ($s3)
.L80099588:
/* 09A188 80099588 00002825 */ move $a1, $zero
/* 09A18C 8009958C 00001025 */ move $v0, $zero
/* 09A190 80099590 1860000D */ blez $v1, .L800995C8
/* 09A194 80099594 00000000 */ nop
/* 09A198 80099598 8E240004 */ lw $a0, 4($s1)
/* 09A19C 8009959C 000278C0 */ sll $t7, $v0, 3
.L800995A0:
/* 09A1A0 800995A0 020FC021 */ addu $t8, $s0, $t7
/* 09A1A4 800995A4 8F190000 */ lw $t9, ($t8)
/* 09A1A8 800995A8 24420001 */ addiu $v0, $v0, 1
/* 09A1AC 800995AC 0043082A */ slt $at, $v0, $v1
/* 09A1B0 800995B0 17240003 */ bne $t9, $a0, .L800995C0
/* 09A1B4 800995B4 00000000 */ nop
/* 09A1B8 800995B8 10000003 */ b .L800995C8
/* 09A1BC 800995BC 24050001 */ li $a1, 1
.L800995C0:
/* 09A1C0 800995C0 5420FFF7 */ bnel $at, $zero, .L800995A0
/* 09A1C4 800995C4 000278C0 */ sll $t7, $v0, 3
.L800995C8:
/* 09A1C8 800995C8 54A00028 */ bnel $a1, $zero, .L8009966C
/* 09A1CC 800995CC 8E2A0018 */ lw $t2, 0x18($s1)
/* 09A1D0 800995D0 8E240004 */ lw $a0, 4($s1)
/* 09A1D4 800995D4 34058000 */ li $a1, 32768
/* 09A1D8 800995D8 0C026400 */ jal dma_copy_base_729a30
/* 09A1DC 800995DC 8E860000 */ lw $a2, ($s4)
/* 09A1E0 800995E0 8E480000 */ lw $t0, ($s2)
/* 09A1E4 800995E4 8EAA0000 */ lw $t2, ($s5)
/* 09A1E8 800995E8 8E840000 */ lw $a0, ($s4)
/* 09A1EC 800995EC 00084840 */ sll $t1, $t0, 1
/* 09A1F0 800995F0 0C010034 */ jal mio0decode
/* 09A1F4 800995F4 012A2821 */ addu $a1, $t1, $t2
/* 09A1F8 800995F8 8E6C0000 */ lw $t4, ($s3)
/* 09A1FC 800995FC 8E2B0004 */ lw $t3, 4($s1)
/* 09A200 80099600 000C68C0 */ sll $t5, $t4, 3
/* 09A204 80099604 020D7021 */ addu $t6, $s0, $t5
/* 09A208 80099608 ADCB0000 */ sw $t3, ($t6)
/* 09A20C 8009960C 8E780000 */ lw $t8, ($s3)
/* 09A210 80099610 8E4F0000 */ lw $t7, ($s2)
/* 09A214 80099614 0018C8C0 */ sll $t9, $t8, 3
/* 09A218 80099618 02194021 */ addu $t0, $s0, $t9
/* 09A21C 8009961C AD0F0004 */ sw $t7, 4($t0)
/* 09A220 80099620 962A0008 */ lhu $t2, 8($s1)
/* 09A224 80099624 9629000A */ lhu $t1, 0xa($s1)
/* 09A228 80099628 8E4D0000 */ lw $t5, ($s2)
/* 09A22C 8009962C 8E680000 */ lw $t0, ($s3)
/* 09A230 80099630 012A0019 */ multu $t1, $t2
/* 09A234 80099634 25090001 */ addiu $t1, $t0, 1
/* 09A238 80099638 AE690000 */ sw $t1, ($s3)
/* 09A23C 8009963C 00006012 */ mflo $t4
/* 09A240 80099640 01AC5821 */ addu $t3, $t5, $t4
/* 09A244 80099644 01607025 */ move $t6, $t3
/* 09A248 80099648 AE4B0000 */ sw $t3, ($s2)
/* 09A24C 8009964C 05C10003 */ bgez $t6, .L8009965C
/* 09A250 80099650 000EC0C3 */ sra $t8, $t6, 3
/* 09A254 80099654 25C10007 */ addiu $at, $t6, 7
/* 09A258 80099658 0001C0C3 */ sra $t8, $at, 3
.L8009965C:
/* 09A25C 8009965C 0018C8C0 */ sll $t9, $t8, 3
/* 09A260 80099660 272F0008 */ addiu $t7, $t9, 8
/* 09A264 80099664 AE4F0000 */ sw $t7, ($s2)
/* 09A268 80099668 8E2A0018 */ lw $t2, 0x18($s1)
.L8009966C:
/* 09A26C 8009966C 26310014 */ addiu $s1, $s1, 0x14
/* 09A270 80099670 5540FFC5 */ bnel $t2, $zero, .L80099588
/* 09A274 80099674 8E630000 */ lw $v1, ($s3)
.L80099678:
/* 09A278 80099678 8FBF002C */ lw $ra, 0x2c($sp)
/* 09A27C 8009967C 8FB00014 */ lw $s0, 0x14($sp)
/* 09A280 80099680 8FB10018 */ lw $s1, 0x18($sp)
/* 09A284 80099684 8FB2001C */ lw $s2, 0x1c($sp)
/* 09A288 80099688 8FB30020 */ lw $s3, 0x20($sp)
/* 09A28C 8009968C 8FB40024 */ lw $s4, 0x24($sp)
/* 09A290 80099690 8FB50028 */ lw $s5, 0x28($sp)
/* 09A294 80099694 03E00008 */ jr $ra
/* 09A298 80099698 27BD0030 */ addiu $sp, $sp, 0x30
@@ -1,189 +0,0 @@
glabel load_menu_img2
/* 09A2BC 800996BC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 09A2C0 800996C0 AFBF003C */ sw $ra, 0x3c($sp)
/* 09A2C4 800996C4 AFB20020 */ sw $s2, 0x20($sp)
/* 09A2C8 800996C8 00A09025 */ move $s2, $a1
/* 09A2CC 800996CC AFBE0038 */ sw $fp, 0x38($sp)
/* 09A2D0 800996D0 AFB70034 */ sw $s7, 0x34($sp)
/* 09A2D4 800996D4 AFB60030 */ sw $s6, 0x30($sp)
/* 09A2D8 800996D8 AFB5002C */ sw $s5, 0x2c($sp)
/* 09A2DC 800996DC AFB40028 */ sw $s4, 0x28($sp)
/* 09A2E0 800996E0 AFB30024 */ sw $s3, 0x24($sp)
/* 09A2E4 800996E4 AFB1001C */ sw $s1, 0x1c($sp)
/* 09A2E8 800996E8 0C026449 */ jal segmented_to_virtual_dupe
/* 09A2EC 800996EC AFB00018 */ sw $s0, 0x18($sp)
/* 09A2F0 800996F0 8C4E0004 */ lw $t6, 4($v0)
/* 09A2F4 800996F4 00408025 */ move $s0, $v0
/* 09A2F8 800996F8 241E0002 */ li $fp, 2
/* 09A2FC 800996FC 11C0008A */ beqz $t6, .L80099928
/* 09A300 80099700 2417FFFF */ li $s7, -1
/* 09A304 80099704 3C158019 */ lui $s5, %hi(D_8018D9B4) # $s5, 0x8019
/* 09A308 80099708 3C148019 */ lui $s4, %hi(gNumD_8018E118Entries) # $s4, 0x8019
/* 09A30C 8009970C 3C138019 */ lui $s3, %hi(gMenuTextureBufferIndex) # $s3, 0x8019
/* 09A310 80099710 3C118019 */ lui $s1, %hi(D_8018E118) # $s1, 0x8019
/* 09A314 80099714 2631E118 */ addiu $s1, %lo(D_8018E118) # addiu $s1, $s1, -0x1ee8
/* 09A318 80099718 2673E110 */ addiu $s3, %lo(gMenuTextureBufferIndex) # addiu $s3, $s3, -0x1ef0
/* 09A31C 8009971C 2694E758 */ addiu $s4, %lo(gNumD_8018E118Entries) # addiu $s4, $s4, -0x18a8
/* 09A320 80099720 26B5D9B4 */ addiu $s5, %lo(D_8018D9B4) # addiu $s5, $s5, -0x264c
/* 09A324 80099724 24160001 */ li $s6, 1
/* 09A328 80099728 8E830000 */ lw $v1, ($s4)
.L8009972C:
/* 09A32C 8009972C 00002825 */ move $a1, $zero
/* 09A330 80099730 00001025 */ move $v0, $zero
/* 09A334 80099734 1860000D */ blez $v1, .L8009976C
/* 09A338 80099738 00000000 */ nop
/* 09A33C 8009973C 8E040004 */ lw $a0, 4($s0)
/* 09A340 80099740 000278C0 */ sll $t7, $v0, 3
.L80099744:
/* 09A344 80099744 022FC021 */ addu $t8, $s1, $t7
/* 09A348 80099748 8F190000 */ lw $t9, ($t8)
/* 09A34C 8009974C 24420001 */ addiu $v0, $v0, 1
/* 09A350 80099750 0043082A */ slt $at, $v0, $v1
/* 09A354 80099754 17240003 */ bne $t9, $a0, .L80099764
/* 09A358 80099758 00000000 */ nop
/* 09A35C 8009975C 10000003 */ b .L8009976C
/* 09A360 80099760 02C02825 */ move $a1, $s6
.L80099764:
/* 09A364 80099764 5420FFF7 */ bnel $at, $zero, .L80099744
/* 09A368 80099768 000278C0 */ sll $t7, $v0, 3
.L8009976C:
/* 09A36C 8009976C 50A00004 */ beql $a1, $zero, .L80099780
/* 09A370 80099770 96020010 */ lhu $v0, 0x10($s0)
/* 09A374 80099774 5A400069 */ blezl $s2, .L8009991C
/* 09A378 80099778 8E0F0018 */ lw $t7, 0x18($s0)
/* 09A37C 8009977C 96020010 */ lhu $v0, 0x10($s0)
.L80099780:
/* 09A380 80099780 24051000 */ li $a1, 4096
/* 09A384 80099784 10400003 */ beqz $v0, .L80099794
/* 09A388 80099788 00000000 */ nop
/* 09A38C 8009978C 10000001 */ b .L80099794
/* 09A390 80099790 3045FFFF */ andi $a1, $v0, 0xffff
.L80099794:
/* 09A394 80099794 00A01025 */ move $v0, $a1
/* 09A398 80099798 04410004 */ bgez $v0, .L800997AC
/* 09A39C 8009979C 30480007 */ andi $t0, $v0, 7
/* 09A3A0 800997A0 11000002 */ beqz $t0, .L800997AC
/* 09A3A4 800997A4 00000000 */ nop
/* 09A3A8 800997A8 2508FFF8 */ addiu $t0, $t0, -8
.L800997AC:
/* 09A3AC 800997AC 11000009 */ beqz $t0, .L800997D4
/* 09A3B0 800997B0 00000000 */ nop
/* 09A3B4 800997B4 04410003 */ bgez $v0, .L800997C4
/* 09A3B8 800997B8 000228C3 */ sra $a1, $v0, 3
/* 09A3BC 800997BC 24410007 */ addiu $at, $v0, 7
/* 09A3C0 800997C0 000128C3 */ sra $a1, $at, 3
.L800997C4:
/* 09A3C4 800997C4 000548C0 */ sll $t1, $a1, 3
/* 09A3C8 800997C8 25250008 */ addiu $a1, $t1, 8
/* 09A3CC 800997CC 30AAFFFF */ andi $t2, $a1, 0xffff
/* 09A3D0 800997D0 01402825 */ move $a1, $t2
.L800997D4:
/* 09A3D4 800997D4 5257000A */ beql $s2, $s7, .L80099800
/* 09A3D8 800997D8 8E040004 */ lw $a0, 4($s0)
/* 09A3DC 800997DC 5240000D */ beql $s2, $zero, .L80099814
/* 09A3E0 800997E0 8E040004 */ lw $a0, 4($s0)
/* 09A3E4 800997E4 52560006 */ beql $s2, $s6, .L80099800
/* 09A3E8 800997E8 8E040004 */ lw $a0, 4($s0)
/* 09A3EC 800997EC 525E0009 */ beql $s2, $fp, .L80099814
/* 09A3F0 800997F0 8E040004 */ lw $a0, 4($s0)
/* 09A3F4 800997F4 10000009 */ b .L8009981C
/* 09A3F8 800997F8 00000000 */ nop
/* 09A3FC 800997FC 8E040004 */ lw $a0, 4($s0)
.L80099800:
/* 09A400 80099800 0C026400 */ jal dma_copy_base_729a30
/* 09A404 80099804 8EA60000 */ lw $a2, ($s5)
/* 09A408 80099808 10000004 */ b .L8009981C
/* 09A40C 8009980C 00000000 */ nop
/* 09A410 80099810 8E040004 */ lw $a0, 4($s0)
.L80099814:
/* 09A414 80099814 0C026422 */ jal dma_copy_base_7fa3c0
/* 09A418 80099818 8EA60000 */ lw $a2, ($s5)
.L8009981C:
/* 09A41C 8009981C 1257000A */ beq $s2, $s7, .L80099848
/* 09A420 80099820 3C0D8019 */ lui $t5, %hi(D_8018D9B0) # $t5, 0x8019
/* 09A424 80099824 12400011 */ beqz $s2, .L8009986C
/* 09A428 80099828 3C058019 */ lui $a1, %hi(D_8018D9B8) # 0x8019
/* 09A42C 8009982C 52560007 */ beql $s2, $s6, .L8009984C
/* 09A430 80099830 8E6B0000 */ lw $t3, ($s3)
/* 09A434 80099834 525E000E */ beql $s2, $fp, .L80099870
/* 09A438 80099838 860E0000 */ lh $t6, ($s0)
/* 09A43C 8009983C 8E830000 */ lw $v1, ($s4)
/* 09A440 80099840 1000001B */ b .L800998B0
/* 09A444 80099844 8E040004 */ lw $a0, 4($s0)
.L80099848:
/* 09A448 80099848 8E6B0000 */ lw $t3, ($s3)
.L8009984C:
/* 09A44C 8009984C 8DADD9B0 */ lw $t5, %lo(D_8018D9B0)($t5)
/* 09A450 80099850 8EA40000 */ lw $a0, ($s5)
/* 09A454 80099854 000B6040 */ sll $t4, $t3, 1
/* 09A458 80099858 0C010034 */ jal mio0decode
/* 09A45C 8009985C 018D2821 */ addu $a1, $t4, $t5
/* 09A460 80099860 8E830000 */ lw $v1, ($s4)
/* 09A464 80099864 10000012 */ b .L800998B0
/* 09A468 80099868 8E040004 */ lw $a0, 4($s0)
.L8009986C:
/* 09A46C 8009986C 860E0000 */ lh $t6, ($s0)
.L80099870:
/* 09A470 80099870 24020001 */ li $v0, 1
/* 09A474 80099874 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019
/* 09A478 80099878 16CE0003 */ bne $s6, $t6, .L80099888
/* 09A47C 8009987C 00000000 */ nop
/* 09A480 80099880 10000001 */ b .L80099888
/* 09A484 80099884 240200BE */ li $v0, 190
.L80099888:
/* 09A488 80099888 8E6F0000 */ lw $t7, ($s3)
/* 09A48C 8009988C 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9)
/* 09A490 80099890 8EA40000 */ lw $a0, ($s5)
/* 09A494 80099894 000FC040 */ sll $t8, $t7, 1
/* 09A498 80099898 8CA5D9B8 */ lw $a1, %lo(D_8018D9B8)($a1) # -0x2648($a1)
/* 09A49C 8009989C 00403825 */ move $a3, $v0
/* 09A4A0 800998A0 0C010174 */ jal tkmk00decode
/* 09A4A4 800998A4 03193021 */ addu $a2, $t8, $t9
/* 09A4A8 800998A8 8E830000 */ lw $v1, ($s4)
/* 09A4AC 800998AC 8E040004 */ lw $a0, 4($s0)
.L800998B0:
/* 09A4B0 800998B0 000340C0 */ sll $t0, $v1, 3
/* 09A4B4 800998B4 02284821 */ addu $t1, $s1, $t0
/* 09A4B8 800998B8 AD240000 */ sw $a0, ($t1)
/* 09A4BC 800998BC 8E8B0000 */ lw $t3, ($s4)
/* 09A4C0 800998C0 8E6A0000 */ lw $t2, ($s3)
/* 09A4C4 800998C4 000B60C0 */ sll $t4, $t3, 3
/* 09A4C8 800998C8 022C6821 */ addu $t5, $s1, $t4
/* 09A4CC 800998CC ADAA0004 */ sw $t2, 4($t5)
/* 09A4D0 800998D0 960F0008 */ lhu $t7, 8($s0)
/* 09A4D4 800998D4 960E000A */ lhu $t6, 0xa($s0)
/* 09A4D8 800998D8 8E790000 */ lw $t9, ($s3)
/* 09A4DC 800998DC 8E8D0000 */ lw $t5, ($s4)
/* 09A4E0 800998E0 01CF0019 */ multu $t6, $t7
/* 09A4E4 800998E4 25AE0001 */ addiu $t6, $t5, 1
/* 09A4E8 800998E8 AE8E0000 */ sw $t6, ($s4)
/* 09A4EC 800998EC 0000C012 */ mflo $t8
/* 09A4F0 800998F0 03384021 */ addu $t0, $t9, $t8
/* 09A4F4 800998F4 01004825 */ move $t1, $t0
/* 09A4F8 800998F8 AE680000 */ sw $t0, ($s3)
/* 09A4FC 800998FC 05210003 */ bgez $t1, .L8009990C
/* 09A500 80099900 000958C3 */ sra $t3, $t1, 3
/* 09A504 80099904 25210007 */ addiu $at, $t1, 7
/* 09A508 80099908 000158C3 */ sra $t3, $at, 3
.L8009990C:
/* 09A50C 8009990C 000B60C0 */ sll $t4, $t3, 3
/* 09A510 80099910 258A0008 */ addiu $t2, $t4, 8
/* 09A514 80099914 AE6A0000 */ sw $t2, ($s3)
/* 09A518 80099918 8E0F0018 */ lw $t7, 0x18($s0)
.L8009991C:
/* 09A51C 8009991C 26100014 */ addiu $s0, $s0, 0x14
/* 09A520 80099920 55E0FF82 */ bnel $t7, $zero, .L8009972C
/* 09A524 80099924 8E830000 */ lw $v1, ($s4)
.L80099928:
/* 09A528 80099928 8FBF003C */ lw $ra, 0x3c($sp)
/* 09A52C 8009992C 8FB00018 */ lw $s0, 0x18($sp)
/* 09A530 80099930 8FB1001C */ lw $s1, 0x1c($sp)
/* 09A534 80099934 8FB20020 */ lw $s2, 0x20($sp)
/* 09A538 80099938 8FB30024 */ lw $s3, 0x24($sp)
/* 09A53C 8009993C 8FB40028 */ lw $s4, 0x28($sp)
/* 09A540 80099940 8FB5002C */ lw $s5, 0x2c($sp)
/* 09A544 80099944 8FB60030 */ lw $s6, 0x30($sp)
/* 09A548 80099948 8FB70034 */ lw $s7, 0x34($sp)
/* 09A54C 8009994C 8FBE0038 */ lw $fp, 0x38($sp)
/* 09A550 80099950 03E00008 */ jr $ra
/* 09A554 80099954 27BD0040 */ addiu $sp, $sp, 0x40
@@ -1,64 +0,0 @@
glabel func_800A09E0
/* 0A15E0 800A09E0 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 0A15E4 800A09E4 AFB10018 */ sw $s1, 0x18($sp)
/* 0A15E8 800A09E8 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015
/* 0A15EC 800A09EC 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298
/* 0A15F0 800A09F0 8E230000 */ lw $v1, ($s1)
/* 0A15F4 800A09F4 AFB70030 */ sw $s7, 0x30($sp)
/* 0A15F8 800A09F8 AFB6002C */ sw $s6, 0x2c($sp)
/* 0A15FC 800A09FC AFB50028 */ sw $s5, 0x28($sp)
/* 0A1600 800A0A00 AFB40024 */ sw $s4, 0x24($sp)
/* 0A1604 800A0A04 AFB30020 */ sw $s3, 0x20($sp)
/* 0A1608 800A0A08 AFB2001C */ sw $s2, 0x1c($sp)
/* 0A160C 800A0A0C AFB00014 */ sw $s0, 0x14($sp)
/* 0A1610 800A0A10 246E0008 */ addiu $t6, $v1, 8
/* 0A1614 800A0A14 AFBF0034 */ sw $ra, 0x34($sp)
/* 0A1618 800A0A18 AE2E0000 */ sw $t6, ($s1)
/* 0A161C 800A0A1C 3C18004F */ lui $t8, (0x004FC308 >> 16) # lui $t8, 0x4f
/* 0A1620 800A0A20 3718C308 */ ori $t8, (0x004FC308 & 0xFFFF) # ori $t8, $t8, 0xc308
/* 0A1624 800A0A24 3C0FED00 */ lui $t7, 0xed00
/* 0A1628 800A0A28 3C13800F */ lui $s3, %hi(D_800E86D0) # $s3, 0x800f
/* 0A162C 800A0A2C 3C160200 */ lui $s6, %hi(D_0200157C) # $s6, 0x200
/* 0A1630 800A0A30 00809025 */ move $s2, $a0
/* 0A1634 800A0A34 26D6157C */ addiu $s6, %lo(D_0200157C) # addiu $s6, $s6, 0x157c
/* 0A1638 800A0A38 267386D0 */ addiu $s3, %lo(D_800E86D0) # addiu $s3, $s3, -0x7930
/* 0A163C 800A0A3C 00008025 */ move $s0, $zero
/* 0A1640 800A0A40 24140008 */ li $s4, 8
/* 0A1644 800A0A44 24150009 */ li $s5, 9
/* 0A1648 800A0A48 2417000A */ li $s7, 10
/* 0A164C 800A0A4C AC6F0000 */ sw $t7, ($v1)
/* 0A1650 800A0A50 AC780004 */ sw $t8, 4($v1)
/* 0A1654 800A0A54 82790000 */ lb $t9, ($s3)
.L800A0A58:
/* 0A1658 800A0A58 17200005 */ bnez $t9, .L800A0A70
/* 0A165C 800A0A5C 00000000 */ nop
/* 0A1660 800A0A60 5200000E */ beql $s0, $zero, .L800A0A9C
/* 0A1664 800A0A64 26100001 */ addiu $s0, $s0, 1
/* 0A1668 800A0A68 5214000C */ beql $s0, $s4, .L800A0A9C
/* 0A166C 800A0A6C 26100001 */ addiu $s0, $s0, 1
.L800A0A70:
/* 0A1670 800A0A70 02170019 */ multu $s0, $s7
/* 0A1674 800A0A74 8E490010 */ lw $t1, 0x10($s2)
/* 0A1678 800A0A78 8E240000 */ lw $a0, ($s1)
/* 0A167C 800A0A7C 02C02825 */ move $a1, $s6
/* 0A1680 800A0A80 24060020 */ li $a2, 32
/* 0A1684 800A0A84 00004012 */ mflo $t0
/* 0A1688 800A0A88 01093821 */ addu $a3, $t0, $t1
/* 0A168C 800A0A8C 0C026E9D */ jal func_8009BA74
/* 0A1690 800A0A90 00000000 */ nop
/* 0A1694 800A0A94 AE220000 */ sw $v0, ($s1)
/* 0A1698 800A0A98 26100001 */ addiu $s0, $s0, 1
.L800A0A9C:
/* 0A169C 800A0A9C 5615FFEE */ bnel $s0, $s5, .L800A0A58
/* 0A16A0 800A0AA0 82790000 */ lb $t9, ($s3)
/* 0A16A4 800A0AA4 8FBF0034 */ lw $ra, 0x34($sp)
/* 0A16A8 800A0AA8 8FB00014 */ lw $s0, 0x14($sp)
/* 0A16AC 800A0AAC 8FB10018 */ lw $s1, 0x18($sp)
/* 0A16B0 800A0AB0 8FB2001C */ lw $s2, 0x1c($sp)
/* 0A16B4 800A0AB4 8FB30020 */ lw $s3, 0x20($sp)
/* 0A16B8 800A0AB8 8FB40024 */ lw $s4, 0x24($sp)
/* 0A16BC 800A0ABC 8FB50028 */ lw $s5, 0x28($sp)
/* 0A16C0 800A0AC0 8FB6002C */ lw $s6, 0x2c($sp)
/* 0A16C4 800A0AC4 8FB70030 */ lw $s7, 0x30($sp)
/* 0A16C8 800A0AC8 03E00008 */ jr $ra
/* 0A16CC 800A0ACC 27BD0038 */ addiu $sp, $sp, 0x38
@@ -1,367 +0,0 @@
.section .late_rodata
glabel jpt_800F2688
.word L800AC488, L800AC4EC, L800AC580, L800AC5D0
.word L800AC5D0, L800AC5D0, L800AC5D0, L800AC738
.word L800AC78C, L800AC7CC, L800AC878, L800AC8A0
.word L800AC8E0, L800AC968
.section .text
glabel func_800AC458
/* 0AD058 800AC458 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0AD05C 800AC45C AFBF0014 */ sw $ra, 0x14($sp)
/* 0AD060 800AC460 8C820004 */ lw $v0, 4($a0)
/* 0AD064 800AC464 00803825 */ move $a3, $a0
/* 0AD068 800AC468 2C41000E */ sltiu $at, $v0, 0xe
/* 0AD06C 800AC46C 1020013E */ beqz $at, .L800AC968
/* 0AD070 800AC470 00027080 */ sll $t6, $v0, 2
/* 0AD074 800AC474 3C01800F */ lui $at, %hi(jpt_800F2688)
/* 0AD078 800AC478 002E0821 */ addu $at, $at, $t6
/* 0AD07C 800AC47C 8C2E2688 */ lw $t6, %lo(jpt_800F2688)($at)
/* 0AD080 800AC480 01C00008 */ jr $t6
/* 0AD084 800AC484 00000000 */ nop
glabel L800AC488
/* 0AD088 800AC488 240FFF60 */ li $t7, -160
/* 0AD08C 800AC48C 24180001 */ li $t8, 1
/* 0AD090 800AC490 ACEF000C */ sw $t7, 0xc($a3)
/* 0AD094 800AC494 ACF80004 */ sw $t8, 4($a3)
/* 0AD098 800AC498 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019
/* 0AD09C 800AC49C 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644
/* 0AD0A0 800AC4A0 3C19800F */ lui $t9, %hi(gGPPointRewards) # $t9, 0x800f
/* 0AD0A4 800AC4A4 83390B18 */ lb $t9, %lo(gGPPointRewards)($t9)
/* 0AD0A8 800AC4A8 8C4A0000 */ lw $t2, ($v0)
/* 0AD0AC 800AC4AC 3C0B800F */ lui $t3, %hi(gGPPointRewards + 1) # $t3, 0x800f
/* 0AD0B0 800AC4B0 3C0D800F */ lui $t5, %hi(gGPPointRewards + 2) # $t5, 0x800f
/* 0AD0B4 800AC4B4 A1590000 */ sb $t9, ($t2)
/* 0AD0B8 800AC4B8 8C4C0000 */ lw $t4, ($v0)
/* 0AD0BC 800AC4BC 816B0B19 */ lb $t3, %lo(gGPPointRewards + 1)($t3)
/* 0AD0C0 800AC4C0 3C0F800F */ lui $t7, %hi(gGPPointRewards + 3) # $t7, 0x800f
/* 0AD0C4 800AC4C4 A18B0001 */ sb $t3, 1($t4)
/* 0AD0C8 800AC4C8 8C4E0000 */ lw $t6, ($v0)
/* 0AD0CC 800AC4CC 81AD0B1A */ lb $t5, %lo(gGPPointRewards + 2)($t5)
/* 0AD0D0 800AC4D0 A1CD0002 */ sb $t5, 2($t6)
/* 0AD0D4 800AC4D4 8C580000 */ lw $t8, ($v0)
/* 0AD0D8 800AC4D8 81EF0B1B */ lb $t7, %lo(gGPPointRewards + 3)($t7)
/* 0AD0DC 800AC4DC A30F0003 */ sb $t7, 3($t8)
/* 0AD0E0 800AC4E0 8CF9000C */ lw $t9, 0xc($a3)
/* 0AD0E4 800AC4E4 10000120 */ b .L800AC968
/* 0AD0E8 800AC4E8 ACF90020 */ sw $t9, 0x20($a3)
glabel L800AC4EC
/* 0AD0EC 800AC4EC 8CE50020 */ lw $a1, 0x20($a3)
/* 0AD0F0 800AC4F0 3C0A8019 */ lui $t2, %hi(D_8018D9D8) # $t2, 0x8019
/* 0AD0F4 800AC4F4 24040010 */ li $a0, 16
/* 0AD0F8 800AC4F8 ACE5000C */ sw $a1, 0xc($a3)
/* 0AD0FC 800AC4FC 814AD9D8 */ lb $t2, %lo(D_8018D9D8)($t2)
/* 0AD100 800AC500 3C02800E */ lui $v0, %hi(D_800DC5EC) # $v0, 0x800e
/* 0AD104 800AC504 240F0002 */ li $t7, 2
/* 0AD108 800AC508 11400003 */ beqz $t2, .L800AC518
/* 0AD10C 800AC50C 3C19800E */ lui $t9, %hi(D_800DC5EC) # $t9, 0x800e
/* 0AD110 800AC510 10000001 */ b .L800AC518
/* 0AD114 800AC514 24040020 */ li $a0, 32
.L800AC518:
/* 0AD118 800AC518 00A43021 */ addu $a2, $a1, $a0
/* 0AD11C 800AC51C 04C3000D */ bgezl $a2, .L800AC554
/* 0AD120 800AC520 ACE00020 */ sw $zero, 0x20($a3)
/* 0AD124 800AC524 ACE60020 */ sw $a2, 0x20($a3)
/* 0AD128 800AC528 8C42C5EC */ lw $v0, %lo(D_800DC5EC)($v0)
/* 0AD12C 800AC52C 3C03800E */ lui $v1, %hi(D_800DC5F0) # $v1, 0x800e
/* 0AD130 800AC530 844B0030 */ lh $t3, 0x30($v0)
/* 0AD134 800AC534 01646021 */ addu $t4, $t3, $a0
/* 0AD138 800AC538 A44C0030 */ sh $t4, 0x30($v0)
/* 0AD13C 800AC53C 8C63C5F0 */ lw $v1, %lo(D_800DC5F0)($v1)
/* 0AD140 800AC540 846D0030 */ lh $t5, 0x30($v1)
/* 0AD144 800AC544 01A47023 */ subu $t6, $t5, $a0
/* 0AD148 800AC548 10000107 */ b .L800AC968
/* 0AD14C 800AC54C A46E0030 */ sh $t6, 0x30($v1)
/* 0AD150 800AC550 ACE00020 */ sw $zero, 0x20($a3)
.L800AC554:
/* 0AD154 800AC554 ACE0000C */ sw $zero, 0xc($a3)
/* 0AD158 800AC558 ACEF0004 */ sw $t7, 4($a3)
/* 0AD15C 800AC55C ACE0001C */ sw $zero, 0x1c($a3)
/* 0AD160 800AC560 8F39C5EC */ lw $t9, %lo(D_800DC5EC)($t9)
/* 0AD164 800AC564 241800F0 */ li $t8, 240
/* 0AD168 800AC568 3C0B800E */ lui $t3, %hi(D_800DC5F0) # $t3, 0x800e
/* 0AD16C 800AC56C A7380030 */ sh $t8, 0x30($t9)
/* 0AD170 800AC570 8D6BC5F0 */ lw $t3, %lo(D_800DC5F0)($t3)
/* 0AD174 800AC574 240A0050 */ li $t2, 80
/* 0AD178 800AC578 100000FB */ b .L800AC968
/* 0AD17C 800AC57C A56A0030 */ sh $t2, 0x30($t3)
glabel L800AC580
/* 0AD180 800AC580 8CEC001C */ lw $t4, 0x1c($a3)
/* 0AD184 800AC584 ACE0000C */ sw $zero, 0xc($a3)
/* 0AD188 800AC588 3C0E8019 */ lui $t6, %hi(D_8018D9D8) # $t6, 0x8019
/* 0AD18C 800AC58C 258D0001 */ addiu $t5, $t4, 1
/* 0AD190 800AC590 ACED001C */ sw $t5, 0x1c($a3)
/* 0AD194 800AC594 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6)
/* 0AD198 800AC598 29A1001F */ slti $at, $t5, 0x1f
/* 0AD19C 800AC59C 3C18800E */ lui $t8, %hi(D_800DDB24) # $t8, 0x800e
/* 0AD1A0 800AC5A0 15C00003 */ bnez $t6, .L800AC5B0
/* 0AD1A4 800AC5A4 00000000 */ nop
/* 0AD1A8 800AC5A8 542000F0 */ bnel $at, $zero, .L800AC96C
/* 0AD1AC 800AC5AC 8FBF0014 */ lw $ra, 0x14($sp)
.L800AC5B0:
/* 0AD1B0 800AC5B0 8F18DB24 */ lw $t8, %lo(D_800DDB24)($t8)
/* 0AD1B4 800AC5B4 24190003 */ li $t9, 3
/* 0AD1B8 800AC5B8 530000EC */ beql $t8, $zero, .L800AC96C
/* 0AD1BC 800AC5BC 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AD1C0 800AC5C0 ACF90004 */ sw $t9, 4($a3)
/* 0AD1C4 800AC5C4 ACE0001C */ sw $zero, 0x1c($a3)
/* 0AD1C8 800AC5C8 100000E7 */ b .L800AC968
/* 0AD1CC 800AC5CC ACE00020 */ sw $zero, 0x20($a3)
glabel L800AC5D0
/* 0AD1D0 800AC5D0 8CEA001C */ lw $t2, 0x1c($a3)
/* 0AD1D4 800AC5D4 24010003 */ li $at, 3
/* 0AD1D8 800AC5D8 00004825 */ move $t1, $zero
/* 0AD1DC 800AC5DC 254B0001 */ addiu $t3, $t2, 1
/* 0AD1E0 800AC5E0 0161001A */ div $zero, $t3, $at
/* 0AD1E4 800AC5E4 00006810 */ mfhi $t5
/* 0AD1E8 800AC5E8 2445FFFD */ addiu $a1, $v0, -3
/* 0AD1EC 800AC5EC 11A00004 */ beqz $t5, .L800AC600
/* 0AD1F0 800AC5F0 ACEB001C */ sw $t3, 0x1c($a3)
/* 0AD1F4 800AC5F4 3C0E8019 */ lui $t6, %hi(D_8018D9D8) # $t6, 0x8019
/* 0AD1F8 800AC5F8 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6)
/* 0AD1FC 800AC5FC 11C00032 */ beqz $t6, .L800AC6C8
.L800AC600:
/* 0AD200 800AC600 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019
/* 0AD204 800AC604 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644
/* 0AD208 800AC608 8C4F0000 */ lw $t7, ($v0)
/* 0AD20C 800AC60C 0005C840 */ sll $t9, $a1, 1
/* 0AD210 800AC610 3C0A8016 */ lui $t2, %hi(gGPCurrentRacePlayerIdByRank) # 0x8016
/* 0AD214 800AC614 01E53021 */ addu $a2, $t7, $a1
/* 0AD218 800AC618 90C80000 */ lbu $t0, ($a2)
/* 0AD21C 800AC61C 01595021 */ addu $t2, $t2, $t9
/* 0AD220 800AC620 3C0C800F */ lui $t4, %hi(gPlayers+0x254) # 0x800f
/* 0AD224 800AC624 19000028 */ blez $t0, .L800AC6C8
/* 0AD228 800AC628 2518FFFF */ addiu $t8, $t0, -1
/* 0AD22C 800AC62C A0D80000 */ sb $t8, ($a2)
/* 0AD230 800AC630 854A4360 */ lh $t2, %lo(gGPCurrentRacePlayerIdByRank)($t2) # 0x4360($t2)
/* 0AD234 800AC634 3C0D8019 */ lui $t5, %hi(gGPPointsByCharacterId) # $t5, 0x8019
/* 0AD238 800AC638 25ADD9C8 */ addiu $t5, %lo(gGPPointsByCharacterId) # addiu $t5, $t5, -0x2638
/* 0AD23C 800AC63C 000A58C0 */ sll $t3, $t2, 3
/* 0AD240 800AC640 016A5823 */ subu $t3, $t3, $t2
/* 0AD244 800AC644 000B5900 */ sll $t3, $t3, 4
/* 0AD248 800AC648 016A5823 */ subu $t3, $t3, $t2
/* 0AD24C 800AC64C 000B5880 */ sll $t3, $t3, 2
/* 0AD250 800AC650 016A5823 */ subu $t3, $t3, $t2
/* 0AD254 800AC654 000B58C0 */ sll $t3, $t3, 3
/* 0AD258 800AC658 018B6021 */ addu $t4, $t4, $t3
/* 0AD25C 800AC65C 958C6BE4 */ lhu $t4, %lo(gPlayers+0x254)($t4) # 0x6be4($t4)
/* 0AD260 800AC660 3C044900 */ lui $a0, (0x49008017 >> 16) # lui $a0, 0x4900
/* 0AD264 800AC664 34848017 */ ori $a0, (0x49008017 & 0xFFFF) # ori $a0, $a0, 0x8017
/* 0AD268 800AC668 018D1821 */ addu $v1, $t4, $t5
/* 0AD26C 800AC66C 806E0000 */ lb $t6, ($v1)
/* 0AD270 800AC670 AFA90018 */ sw $t1, 0x18($sp)
/* 0AD274 800AC674 AFA70020 */ sw $a3, 0x20($sp)
/* 0AD278 800AC678 25CF0001 */ addiu $t7, $t6, 1
/* 0AD27C 800AC67C A06F0000 */ sb $t7, ($v1)
/* 0AD280 800AC680 0C032384 */ jal play_sound2
/* 0AD284 800AC684 AFA5001C */ sw $a1, 0x1c($sp)
/* 0AD288 800AC688 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019
/* 0AD28C 800AC68C 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644
/* 0AD290 800AC690 8FA5001C */ lw $a1, 0x1c($sp)
/* 0AD294 800AC694 8C580000 */ lw $t8, ($v0)
/* 0AD298 800AC698 8FA70020 */ lw $a3, 0x20($sp)
/* 0AD29C 800AC69C 8FA90018 */ lw $t1, 0x18($sp)
/* 0AD2A0 800AC6A0 0305C821 */ addu $t9, $t8, $a1
/* 0AD2A4 800AC6A4 932A0000 */ lbu $t2, ($t9)
/* 0AD2A8 800AC6A8 55400008 */ bnel $t2, $zero, .L800AC6CC
/* 0AD2AC 800AC6AC 8CED0020 */ lw $t5, 0x20($a3)
/* 0AD2B0 800AC6B0 8CEB0020 */ lw $t3, 0x20($a3)
/* 0AD2B4 800AC6B4 240C0001 */ li $t4, 1
/* 0AD2B8 800AC6B8 55600004 */ bnel $t3, $zero, .L800AC6CC
/* 0AD2BC 800AC6BC 8CED0020 */ lw $t5, 0x20($a3)
/* 0AD2C0 800AC6C0 ACEC0020 */ sw $t4, 0x20($a3)
/* 0AD2C4 800AC6C4 ACE0001C */ sw $zero, 0x1c($a3)
.L800AC6C8:
/* 0AD2C8 800AC6C8 8CED0020 */ lw $t5, 0x20($a3)
.L800AC6CC:
/* 0AD2CC 800AC6CC 11A0000D */ beqz $t5, .L800AC704
/* 0AD2D0 800AC6D0 00000000 */ nop
/* 0AD2D4 800AC6D4 8CE2001C */ lw $v0, 0x1c($a3)
/* 0AD2D8 800AC6D8 3C0E8019 */ lui $t6, %hi(D_8018D9D8) # $t6, 0x8019
/* 0AD2DC 800AC6DC 2841000B */ slti $at, $v0, 0xb
/* 0AD2E0 800AC6E0 50200008 */ beql $at, $zero, .L800AC704
/* 0AD2E4 800AC6E4 24090001 */ li $t1, 1
/* 0AD2E8 800AC6E8 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6)
/* 0AD2EC 800AC6EC 28410004 */ slti $at, $v0, 4
/* 0AD2F0 800AC6F0 11C00004 */ beqz $t6, .L800AC704
/* 0AD2F4 800AC6F4 00000000 */ nop
/* 0AD2F8 800AC6F8 14200002 */ bnez $at, .L800AC704
/* 0AD2FC 800AC6FC 00000000 */ nop
/* 0AD300 800AC700 24090001 */ li $t1, 1
.L800AC704:
/* 0AD304 800AC704 51200099 */ beql $t1, $zero, .L800AC96C
/* 0AD308 800AC708 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AD30C 800AC70C 8CE20004 */ lw $v0, 4($a3)
/* 0AD310 800AC710 ACE00020 */ sw $zero, 0x20($a3)
/* 0AD314 800AC714 ACE0001C */ sw $zero, 0x1c($a3)
/* 0AD318 800AC718 28410006 */ slti $at, $v0, 6
/* 0AD31C 800AC71C 10200004 */ beqz $at, .L800AC730
/* 0AD320 800AC720 24180007 */ li $t8, 7
/* 0AD324 800AC724 244F0001 */ addiu $t7, $v0, 1
/* 0AD328 800AC728 1000008F */ b .L800AC968
/* 0AD32C 800AC72C ACEF0004 */ sw $t7, 4($a3)
.L800AC730:
/* 0AD330 800AC730 1000008D */ b .L800AC968
/* 0AD334 800AC734 ACF80004 */ sw $t8, 4($a3)
glabel L800AC738
/* 0AD338 800AC738 8CF9001C */ lw $t9, 0x1c($a3)
/* 0AD33C 800AC73C 3C0B8019 */ lui $t3, %hi(D_8018D9D8) # $t3, 0x8019
/* 0AD340 800AC740 272A0001 */ addiu $t2, $t9, 1
/* 0AD344 800AC744 ACEA001C */ sw $t2, 0x1c($a3)
/* 0AD348 800AC748 816BD9D8 */ lb $t3, %lo(D_8018D9D8)($t3)
/* 0AD34C 800AC74C 2941000B */ slti $at, $t2, 0xb
/* 0AD350 800AC750 51600004 */ beql $t3, $zero, .L800AC764
/* 0AD354 800AC754 8CED001C */ lw $t5, 0x1c($a3)
/* 0AD358 800AC758 10200004 */ beqz $at, .L800AC76C
/* 0AD35C 800AC75C 00000000 */ nop
/* 0AD360 800AC760 8CED001C */ lw $t5, 0x1c($a3)
.L800AC764:
/* 0AD364 800AC764 29A1003D */ slti $at, $t5, 0x3d
/* 0AD368 800AC768 1420007F */ bnez $at, .L800AC968
.L800AC76C:
/* 0AD36C 800AC76C 3C0E800E */ lui $t6, %hi(D_800DDB24) # $t6, 0x800e
/* 0AD370 800AC770 8DCEDB24 */ lw $t6, %lo(D_800DDB24)($t6)
/* 0AD374 800AC774 24060008 */ li $a2, 8
/* 0AD378 800AC778 51C0007C */ beql $t6, $zero, .L800AC96C
/* 0AD37C 800AC77C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AD380 800AC780 ACE60004 */ sw $a2, 4($a3)
/* 0AD384 800AC784 10000078 */ b .L800AC968
/* 0AD388 800AC788 ACE0001C */ sw $zero, 0x1c($a3)
glabel L800AC78C
/* 0AD38C 800AC78C 8CEF001C */ lw $t7, 0x1c($a3)
/* 0AD390 800AC790 3C198019 */ lui $t9, %hi(D_8018D9D8) # $t9, 0x8019
/* 0AD394 800AC794 240D0009 */ li $t5, 9
/* 0AD398 800AC798 25F80001 */ addiu $t8, $t7, 1
/* 0AD39C 800AC79C ACF8001C */ sw $t8, 0x1c($a3)
/* 0AD3A0 800AC7A0 8339D9D8 */ lb $t9, %lo(D_8018D9D8)($t9)
/* 0AD3A4 800AC7A4 270B0005 */ addiu $t3, $t8, 5
/* 0AD3A8 800AC7A8 53200003 */ beql $t9, $zero, .L800AC7B8
/* 0AD3AC 800AC7AC 8CEC001C */ lw $t4, 0x1c($a3)
/* 0AD3B0 800AC7B0 ACEB001C */ sw $t3, 0x1c($a3)
/* 0AD3B4 800AC7B4 8CEC001C */ lw $t4, 0x1c($a3)
.L800AC7B8:
/* 0AD3B8 800AC7B8 29810029 */ slti $at, $t4, 0x29
/* 0AD3BC 800AC7BC 5420006B */ bnel $at, $zero, .L800AC96C
/* 0AD3C0 800AC7C0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AD3C4 800AC7C4 10000068 */ b .L800AC968
/* 0AD3C8 800AC7C8 ACED0004 */ sw $t5, 4($a3)
glabel L800AC7CC
/* 0AD3CC 800AC7CC 8CEE001C */ lw $t6, 0x1c($a3)
/* 0AD3D0 800AC7D0 3C188019 */ lui $t8, %hi(D_8018D9D8) # $t8, 0x8019
/* 0AD3D4 800AC7D4 240C000A */ li $t4, 10
/* 0AD3D8 800AC7D8 25CFFFFF */ addiu $t7, $t6, -1
/* 0AD3DC 800AC7DC ACEF001C */ sw $t7, 0x1c($a3)
/* 0AD3E0 800AC7E0 8318D9D8 */ lb $t8, %lo(D_8018D9D8)($t8)
/* 0AD3E4 800AC7E4 25EAFFFB */ addiu $t2, $t7, -5
/* 0AD3E8 800AC7E8 3C0D8019 */ lui $t5, %hi(gCourseIndexInCup) # $t5, 0x8019
/* 0AD3EC 800AC7EC 53000003 */ beql $t8, $zero, .L800AC7FC
/* 0AD3F0 800AC7F0 8CEB001C */ lw $t3, 0x1c($a3)
/* 0AD3F4 800AC7F4 ACEA001C */ sw $t2, 0x1c($a3)
/* 0AD3F8 800AC7F8 8CEB001C */ lw $t3, 0x1c($a3)
.L800AC7FC:
/* 0AD3FC 800AC7FC 5D60005B */ bgtzl $t3, .L800AC96C
/* 0AD400 800AC800 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AD404 800AC804 ACEC0004 */ sw $t4, 4($a3)
/* 0AD408 800AC808 ACE0001C */ sw $zero, 0x1c($a3)
/* 0AD40C 800AC80C 81ADEE0B */ lb $t5, %lo(gCourseIndexInCup)($t5)
/* 0AD410 800AC810 24010003 */ li $at, 3
/* 0AD414 800AC814 00002825 */ move $a1, $zero
/* 0AD418 800AC818 15A10053 */ bne $t5, $at, .L800AC968
/* 0AD41C 800AC81C 3C028019 */ lui $v0, %hi(gCharacterIdByGPOverallRank) # $v0, 0x8019
/* 0AD420 800AC820 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019
/* 0AD424 800AC824 3C048016 */ lui $a0, %hi(D_80164478) # $a0, 0x8016
/* 0AD428 800AC828 24844478 */ addiu $a0, %lo(D_80164478) # addiu $a0, $a0, 0x4478
/* 0AD42C 800AC82C 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1)
/* 0AD430 800AC830 2442D9D0 */ addiu $v0, %lo(gCharacterIdByGPOverallRank) # addiu $v0, $v0, -0x2630
/* 0AD434 800AC834 24060008 */ li $a2, 8
.L800AC838:
/* 0AD438 800AC838 804E0000 */ lb $t6, ($v0)
/* 0AD43C 800AC83C 000E7840 */ sll $t7, $t6, 1
/* 0AD440 800AC840 008FC021 */ addu $t8, $a0, $t7
/* 0AD444 800AC844 87190000 */ lh $t9, ($t8)
/* 0AD448 800AC848 0323082A */ slt $at, $t9, $v1
/* 0AD44C 800AC84C 50200006 */ beql $at, $zero, .L800AC868
/* 0AD450 800AC850 24A50001 */ addiu $a1, $a1, 1
/* 0AD454 800AC854 0C02D4DB */ jal func_800B536C
/* 0AD458 800AC858 00A02025 */ move $a0, $a1
/* 0AD45C 800AC85C 10000043 */ b .L800AC96C
/* 0AD460 800AC860 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AD464 800AC864 24A50001 */ addiu $a1, $a1, 1
.L800AC868:
/* 0AD468 800AC868 14A6FFF3 */ bne $a1, $a2, .L800AC838
/* 0AD46C 800AC86C 24420001 */ addiu $v0, $v0, 1
/* 0AD470 800AC870 1000003E */ b .L800AC96C
/* 0AD474 800AC874 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800AC878
/* 0AD478 800AC878 8CEA001C */ lw $t2, 0x1c($a3)
/* 0AD47C 800AC87C 240D000B */ li $t5, 11
/* 0AD480 800AC880 254B0001 */ addiu $t3, $t2, 1
/* 0AD484 800AC884 19600038 */ blez $t3, .L800AC968
/* 0AD488 800AC888 ACEB001C */ sw $t3, 0x1c($a3)
/* 0AD48C 800AC88C ACED0004 */ sw $t5, 4($a3)
/* 0AD490 800AC890 0C02486D */ jal func_800921B4
/* 0AD494 800AC894 ACE0001C */ sw $zero, 0x1c($a3)
/* 0AD498 800AC898 10000034 */ b .L800AC96C
/* 0AD49C 800AC89C 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800AC8A0
/* 0AD4A0 800AC8A0 3C0E8019 */ lui $t6, %hi(D_8018D9D8) # $t6, 0x8019
/* 0AD4A4 800AC8A4 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6)
/* 0AD4A8 800AC8A8 3C0F800E */ lui $t7, %hi(D_800DDB24) # $t7, 0x800e
/* 0AD4AC 800AC8AC 51C0002F */ beql $t6, $zero, .L800AC96C
/* 0AD4B0 800AC8B0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AD4B4 800AC8B4 8DEFDB24 */ lw $t7, %lo(D_800DDB24)($t7)
/* 0AD4B8 800AC8B8 3C044900 */ lui $a0, (0x49008015 >> 16) # lui $a0, 0x4900
/* 0AD4BC 800AC8BC 2418000C */ li $t8, 12
/* 0AD4C0 800AC8C0 11E00029 */ beqz $t7, .L800AC968
/* 0AD4C4 800AC8C4 34848015 */ ori $a0, (0x49008015 & 0xFFFF) # ori $a0, $a0, 0x8015
/* 0AD4C8 800AC8C8 8CF90010 */ lw $t9, 0x10($a3)
/* 0AD4CC 800AC8CC ACF80004 */ sw $t8, 4($a3)
/* 0AD4D0 800AC8D0 0C032384 */ jal play_sound2
/* 0AD4D4 800AC8D4 ACF90020 */ sw $t9, 0x20($a3)
/* 0AD4D8 800AC8D8 10000024 */ b .L800AC96C
/* 0AD4DC 800AC8DC 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800AC8E0
/* 0AD4E0 800AC8E0 8CE50020 */ lw $a1, 0x20($a3)
/* 0AD4E4 800AC8E4 240F000D */ li $t7, 13
/* 0AD4E8 800AC8E8 2418012C */ li $t8, 300
/* 0AD4EC 800AC8EC 28A100F0 */ slti $at, $a1, 0xf0
/* 0AD4F0 800AC8F0 1020000E */ beqz $at, .L800AC92C
/* 0AD4F4 800AC8F4 ACE50010 */ sw $a1, 0x10($a3)
/* 0AD4F8 800AC8F8 24AA0010 */ addiu $t2, $a1, 0x10
/* 0AD4FC 800AC8FC ACEA0020 */ sw $t2, 0x20($a3)
/* 0AD500 800AC900 3C02800E */ lui $v0, %hi(D_800DC5EC) # $v0, 0x800e
/* 0AD504 800AC904 8C42C5EC */ lw $v0, %lo(D_800DC5EC)($v0)
/* 0AD508 800AC908 3C03800E */ lui $v1, %hi(D_800DC5F0) # $v1, 0x800e
/* 0AD50C 800AC90C 844B0032 */ lh $t3, 0x32($v0)
/* 0AD510 800AC910 256C0010 */ addiu $t4, $t3, 0x10
/* 0AD514 800AC914 A44C0032 */ sh $t4, 0x32($v0)
/* 0AD518 800AC918 8C63C5F0 */ lw $v1, %lo(D_800DC5F0)($v1)
/* 0AD51C 800AC91C 846D0032 */ lh $t5, 0x32($v1)
/* 0AD520 800AC920 25AEFFF0 */ addiu $t6, $t5, -0x10
/* 0AD524 800AC924 10000010 */ b .L800AC968
/* 0AD528 800AC928 A46E0032 */ sh $t6, 0x32($v1)
.L800AC92C:
/* 0AD52C 800AC92C ACE00020 */ sw $zero, 0x20($a3)
/* 0AD530 800AC930 ACEF0004 */ sw $t7, 4($a3)
/* 0AD534 800AC934 ACE0001C */ sw $zero, 0x1c($a3)
/* 0AD538 800AC938 3C19800E */ lui $t9, %hi(D_800DC5EC) # $t9, 0x800e
/* 0AD53C 800AC93C 8F39C5EC */ lw $t9, %lo(D_800DC5EC)($t9)
/* 0AD540 800AC940 3C0B800E */ lui $t3, %hi(D_800DC5F0) # $t3, 0x800e
/* 0AD544 800AC944 240AFFC4 */ li $t2, -60
/* 0AD548 800AC948 A7380032 */ sh $t8, 0x32($t9)
/* 0AD54C 800AC94C 8D6BC5F0 */ lw $t3, %lo(D_800DC5F0)($t3)
/* 0AD550 800AC950 240C0004 */ li $t4, 4
/* 0AD554 800AC954 3C018016 */ lui $at, %hi(D_8015F894) # $at, 0x8016
/* 0AD558 800AC958 A56A0032 */ sh $t2, 0x32($t3)
/* 0AD55C 800AC95C A42CF894 */ sh $t4, %lo(D_8015F894)($at)
/* 0AD560 800AC960 0C0328CC */ jal func_800CA330
/* 0AD564 800AC964 24040019 */ li $a0, 25
.L800AC968:
glabel L800AC968
/* 0AD568 800AC968 8FBF0014 */ lw $ra, 0x14($sp)
.L800AC96C:
/* 0AD56C 800AC96C 27BD0020 */ addiu $sp, $sp, 0x20
/* 0AD570 800AC970 03E00008 */ jr $ra
/* 0AD574 800AC974 00000000 */ nop
@@ -84,16 +84,16 @@ glabel D_800F15E0
.section .text
glabel add_ui_element
glabel add_menu_item
/* 09F250 8009E650 27BDFF80 */ addiu $sp, $sp, -0x80
/* 09F254 8009E654 AFBF001C */ sw $ra, 0x1c($sp)
/* 09F258 8009E658 AFA7008C */ sw $a3, 0x8c($sp)
/* 09F25C 8009E65C 00077600 */ sll $t6, $a3, 0x18
/* 09F260 8009E660 3C1F8019 */ lui $ra, %hi(D_8018D9E0) # $ra, 0x8019
/* 09F260 8009E660 3C1F8019 */ lui $ra, %hi(gMenuItems) # $ra, 0x8019
/* 09F264 8009E664 000E3E03 */ sra $a3, $t6, 0x18
/* 09F268 8009E668 AFA40080 */ sw $a0, 0x80($sp)
/* 09F26C 8009E66C 00001025 */ move $v0, $zero
/* 09F270 8009E670 27FFD9E0 */ addiu $ra, %lo(D_8018D9E0) # addiu $ra, $ra, -0x2620
/* 09F270 8009E670 27FFD9E0 */ addiu $ra, %lo(gMenuItems) # addiu $ra, $ra, -0x2620
.L8009E674:
/* 09F274 8009E674 8FF80000 */ lw $t8, ($ra)
/* 09F278 8009E678 24420001 */ addiu $v0, $v0, 1
@@ -167,72 +167,72 @@ glabel add_ui_element
/* 09F370 8009E770 00000000 */ nop
glabel L8009E774
/* 09F374 8009E774 44802000 */ mtc1 $zero, $f4
/* 09F378 8009E778 3C018019 */ lui $at, %hi(s8018ED94) # $at, 0x8019
/* 09F37C 8009E77C AC20ED94 */ sw $zero, %lo(s8018ED94)($at)
/* 09F380 8009E780 3C01800F */ lui $at, %hi(D_800E8530) # $at, 0x800f
/* 09F384 8009E784 E4248530 */ swc1 $f4, %lo(D_800E8530)($at)
/* 09F378 8009E778 3C018019 */ lui $at, %hi(sIntroLogoTimer) # $at, 0x8019
/* 09F37C 8009E77C AC20ED94 */ sw $zero, %lo(sIntroLogoTimer)($at)
/* 09F380 8009E780 3C01800F */ lui $at, %hi(sIntroModelMotionSpeed) # $at, 0x800f
/* 09F384 8009E784 E4248530 */ swc1 $f4, %lo(sIntroModelMotionSpeed)($at)
/* 09F388 8009E788 3C014040 */ li $at, 0x40400000 # 3.000000
/* 09F38C 8009E78C 44813000 */ mtc1 $at, $f6
/* 09F390 8009E790 3C01800F */ lui $at, %hi(D_800E8534) # $at, 0x800f
/* 09F390 8009E790 3C01800F */ lui $at, %hi(sIntroModelSpeed) # $at, 0x800f
/* 09F394 8009E794 44800000 */ mtc1 $zero, $f0
/* 09F398 8009E798 E4268534 */ swc1 $f6, %lo(D_800E8534)($at)
/* 09F39C 8009E79C 3C018019 */ lui $at, %hi(D_8018EDC0) # $at, 0x8019
/* 09F398 8009E798 E4268534 */ swc1 $f6, %lo(sIntroModelSpeed)($at)
/* 09F39C 8009E79C 3C018019 */ lui $at, %hi(gIntroModelZEye) # $at, 0x8019
/* 09F3A0 8009E7A0 241909C4 */ li $t9, 2500
/* 09F3A4 8009E7A4 AC39EDC0 */ sw $t9, %lo(D_8018EDC0)($at)
/* 09F3A8 8009E7A8 3C018019 */ lui $at, %hi(D_8018EDC8) # $at, 0x8019
/* 09F3AC 8009E7AC E420EDC8 */ swc1 $f0, %lo(D_8018EDC8)($at)
/* 09F3A4 8009E7A4 AC39EDC0 */ sw $t9, %lo(gIntroModelZEye)($at)
/* 09F3A8 8009E7A8 3C018019 */ lui $at, %hi(gIntroModelRotX) # $at, 0x8019
/* 09F3AC 8009E7AC E420EDC8 */ swc1 $f0, %lo(gIntroModelRotX)($at)
/* 09F3B0 8009E7B0 3C01C387 */ li $at, 0xC3870000 # -270.000000
/* 09F3B4 8009E7B4 44814000 */ mtc1 $at, $f8
/* 09F3B8 8009E7B8 3C018019 */ lui $at, %hi(D_8018EDCC) # $at, 0x8019
/* 09F3B8 8009E7B8 3C018019 */ lui $at, %hi(gIntroModelRotY) # $at, 0x8019
/* 09F3BC 8009E7BC 240EFFFF */ li $t6, -1
/* 09F3C0 8009E7C0 E428EDCC */ swc1 $f8, %lo(D_8018EDCC)($at)
/* 09F3C4 8009E7C4 3C018019 */ lui $at, %hi(D_8018EDD0) # $at, 0x8019
/* 09F3C8 8009E7C8 E420EDD0 */ swc1 $f0, %lo(D_8018EDD0)($at)
/* 09F3CC 8009E7CC 3C018019 */ lui $at, %hi(D_8018EDD4) # $at, 0x8019
/* 09F3D0 8009E7D0 E420EDD4 */ swc1 $f0, %lo(D_8018EDD4)($at)
/* 09F3D4 8009E7D4 3C018019 */ lui $at, %hi(D_8018EDD8) # $at, 0x8019
/* 09F3D8 8009E7D8 E420EDD8 */ swc1 $f0, %lo(D_8018EDD8)($at)
/* 09F3DC 8009E7DC 3C018019 */ lui $at, %hi(D_8018EDDC) # $at, 0x8019
/* 09F3E0 8009E7E0 E420EDDC */ swc1 $f0, %lo(D_8018EDDC)($at)
/* 09F3C0 8009E7C0 E428EDCC */ swc1 $f8, %lo(gIntroModelRotY)($at)
/* 09F3C4 8009E7C4 3C018019 */ lui $at, %hi(gIntroModelRotZ) # $at, 0x8019
/* 09F3C8 8009E7C8 E420EDD0 */ swc1 $f0, %lo(gIntroModelRotZ)($at)
/* 09F3CC 8009E7CC 3C018019 */ lui $at, %hi(gIntroModelPosX) # $at, 0x8019
/* 09F3D0 8009E7D0 E420EDD4 */ swc1 $f0, %lo(gIntroModelPosX)($at)
/* 09F3D4 8009E7D4 3C018019 */ lui $at, %hi(gIntroModelPosY) # $at, 0x8019
/* 09F3D8 8009E7D8 E420EDD8 */ swc1 $f0, %lo(gIntroModelPosY)($at)
/* 09F3DC 8009E7DC 3C018019 */ lui $at, %hi(gIntroModelPosZ) # $at, 0x8019
/* 09F3E0 8009E7E0 E420EDDC */ swc1 $f0, %lo(gIntroModelPosZ)($at)
/* 09F3E4 8009E7E4 3C014040 */ li $at, 0x40400000 # 3.000000
/* 09F3E8 8009E7E8 44815000 */ mtc1 $at, $f10
/* 09F3EC 8009E7EC 3C018019 */ lui $at, %hi(D_8018EDC4) # $at, 0x8019
/* 09F3F0 8009E7F0 E42AEDC4 */ swc1 $f10, %lo(D_8018EDC4)($at)
/* 09F3EC 8009E7EC 3C018019 */ lui $at, %hi(gIntroModelScale) # $at, 0x8019
/* 09F3F0 8009E7F0 E42AEDC4 */ swc1 $f10, %lo(gIntroModelScale)($at)
/* 09F3F4 8009E7F4 AFEE001C */ sw $t6, 0x1c($ra)
/* 09F3F8 8009E7F8 10000375 */ b .L8009F5D0
/* 09F3FC 8009E7FC AFE30020 */ sw $v1, 0x20($ra)
glabel L8009E800
/* 09F400 8009E800 240F0708 */ li $t7, 1800
/* 09F404 8009E804 3C018019 */ lui $at, %hi(D_8018EDC0) # $at, 0x8019
/* 09F408 8009E808 AC2FEDC0 */ sw $t7, %lo(D_8018EDC0)($at)
/* 09F404 8009E804 3C018019 */ lui $at, %hi(gIntroModelZEye) # $at, 0x8019
/* 09F408 8009E808 AC2FEDC0 */ sw $t7, %lo(gIntroModelZEye)($at)
/* 09F40C 8009E80C 3C01C24C */ li $at, 0xC24C0000 # -51.000000
/* 09F410 8009E810 44818000 */ mtc1 $at, $f16
/* 09F414 8009E814 3C018019 */ lui $at, %hi(D_8018EDC8) # $at, 0x8019
/* 09F414 8009E814 3C018019 */ lui $at, %hi(gIntroModelRotX) # $at, 0x8019
/* 09F418 8009E818 44800000 */ mtc1 $zero, $f0
/* 09F41C 8009E81C E430EDC8 */ swc1 $f16, %lo(D_8018EDC8)($at)
/* 09F41C 8009E81C E430EDC8 */ swc1 $f16, %lo(gIntroModelRotX)($at)
/* 09F420 8009E820 3C01C140 */ li $at, 0xC1400000 # -12.000000
/* 09F424 8009E824 44819000 */ mtc1 $at, $f18
/* 09F428 8009E828 3C018019 */ lui $at, %hi(D_8018EDCC) # $at, 0x8019
/* 09F428 8009E828 3C018019 */ lui $at, %hi(gIntroModelRotY) # $at, 0x8019
/* 09F42C 8009E82C 2418FFFF */ li $t8, -1
/* 09F430 8009E830 E432EDCC */ swc1 $f18, %lo(D_8018EDCC)($at)
/* 09F430 8009E830 E432EDCC */ swc1 $f18, %lo(gIntroModelRotY)($at)
/* 09F434 8009E834 3C01C190 */ li $at, 0xC1900000 # -18.000000
/* 09F438 8009E838 44812000 */ mtc1 $at, $f4
/* 09F43C 8009E83C 3C018019 */ lui $at, %hi(D_8018EDD0) # $at, 0x8019
/* 09F440 8009E840 E424EDD0 */ swc1 $f4, %lo(D_8018EDD0)($at)
/* 09F43C 8009E83C 3C018019 */ lui $at, %hi(gIntroModelRotZ) # $at, 0x8019
/* 09F440 8009E840 E424EDD0 */ swc1 $f4, %lo(gIntroModelRotZ)($at)
/* 09F444 8009E844 3C01C387 */ li $at, 0xC3870000 # -270.000000
/* 09F448 8009E848 44813000 */ mtc1 $at, $f6
/* 09F44C 8009E84C 3C018019 */ lui $at, %hi(D_8018EDD4) # $at, 0x8019
/* 09F450 8009E850 E426EDD4 */ swc1 $f6, %lo(D_8018EDD4)($at)
/* 09F44C 8009E84C 3C018019 */ lui $at, %hi(gIntroModelPosX) # $at, 0x8019
/* 09F450 8009E850 E426EDD4 */ swc1 $f6, %lo(gIntroModelPosX)($at)
/* 09F454 8009E854 3C01800F */ lui $at, %hi(D_800F15E0) # $at, 0x800f
/* 09F458 8009E858 C42815E0 */ lwc1 $f8, %lo(D_800F15E0)($at)
/* 09F45C 8009E85C 3C018019 */ lui $at, %hi(D_8018EDD8) # $at, 0x8019
/* 09F460 8009E860 E428EDD8 */ swc1 $f8, %lo(D_8018EDD8)($at)
/* 09F464 8009E864 3C018019 */ lui $at, %hi(D_8018EDDC) # $at, 0x8019
/* 09F468 8009E868 E420EDDC */ swc1 $f0, %lo(D_8018EDDC)($at)
/* 09F45C 8009E85C 3C018019 */ lui $at, %hi(gIntroModelPosY) # $at, 0x8019
/* 09F460 8009E860 E428EDD8 */ swc1 $f8, %lo(gIntroModelPosY)($at)
/* 09F464 8009E864 3C018019 */ lui $at, %hi(gIntroModelPosZ) # $at, 0x8019
/* 09F468 8009E868 E420EDDC */ swc1 $f0, %lo(gIntroModelPosZ)($at)
/* 09F46C 8009E86C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 09F470 8009E870 44815000 */ mtc1 $at, $f10
/* 09F474 8009E874 3C018019 */ lui $at, %hi(D_8018EDC4) # $at, 0x8019
/* 09F478 8009E878 E42AEDC4 */ swc1 $f10, %lo(D_8018EDC4)($at)
/* 09F474 8009E874 3C018019 */ lui $at, %hi(gIntroModelScale) # $at, 0x8019
/* 09F478 8009E878 E42AEDC4 */ swc1 $f10, %lo(gIntroModelScale)($at)
/* 09F47C 8009E87C AFF8001C */ sw $t8, 0x1c($ra)
/* 09F480 8009E880 10000353 */ b .L8009F5D0
/* 09F484 8009E884 AFE30020 */ sw $v1, 0x20($ra)
@@ -240,22 +240,22 @@ glabel L8009E888
/* 09F488 8009E888 3C040200 */ lui $a0, %hi(D_020014C8) # $a0, 0x200
/* 09F48C 8009E88C AFBF007C */ sw $ra, 0x7c($sp)
/* 09F490 8009E890 248414C8 */ addiu $a0, %lo(D_020014C8) # addiu $a0, $a0, 0x14c8
/* 09F494 8009E894 0C0265AF */ jal load_menu_img2
/* 09F494 8009E894 0C0265AF */ jal load_menu_img_comp_type
/* 09F498 8009E898 00002825 */ move $a1, $zero
/* 09F49C 8009E89C 3C040200 */ lui $a0, %hi(D_020014C8) # $a0, 0x200
/* 09F4A0 8009E8A0 0C026E55 */ jal func_8009B954
/* 09F4A4 8009E8A4 248414C8 */ addiu $a0, %lo(D_020014C8) # addiu $a0, $a0, 0x14c8
/* 09F4A8 8009E8A8 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F4AC 8009E8AC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F4B0 8009E8B0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F4AC 8009E8AC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F4B0 8009E8B0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F4B4 8009E8B4 3C050200 */ lui $a1, %hi(D_020014C8) # $a1, 0x200
/* 09F4B8 8009E8B8 8FE6000C */ lw $a2, 0xc($ra)
/* 09F4BC 8009E8BC 8FE70010 */ lw $a3, 0x10($ra)
/* 09F4C0 8009E8C0 24A514C8 */ addiu $a1, %lo(D_020014C8) # addiu $a1, $a1, 0x14c8
/* 09F4C4 8009E8C4 0C026E9D */ jal func_8009BA74
/* 09F4C4 8009E8C4 0C026E9D */ jal render_menu_textures
/* 09F4C8 8009E8C8 8D040000 */ lw $a0, ($t0)
/* 09F4CC 8009E8CC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F4D0 8009E8D0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F4CC 8009E8CC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F4D0 8009E8D0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F4D4 8009E8D4 0C026E66 */ jal func_8009B998
/* 09F4D8 8009E8D8 AD020000 */ sw $v0, ($t0)
/* 09F4DC 8009E8DC 1000033D */ b .L8009F5D4
@@ -264,22 +264,22 @@ glabel L8009E8E4
/* 09F4E4 8009E8E4 3C040200 */ lui $a0, %hi(D_02001540) # $a0, 0x200
/* 09F4E8 8009E8E8 AFBF007C */ sw $ra, 0x7c($sp)
/* 09F4EC 8009E8EC 24841540 */ addiu $a0, %lo(D_02001540) # addiu $a0, $a0, 0x1540
/* 09F4F0 8009E8F0 0C0265AF */ jal load_menu_img2
/* 09F4F0 8009E8F0 0C0265AF */ jal load_menu_img_comp_type
/* 09F4F4 8009E8F4 00002825 */ move $a1, $zero
/* 09F4F8 8009E8F8 3C040200 */ lui $a0, %hi(D_02001540) # $a0, 0x200
/* 09F4FC 8009E8FC 0C026E55 */ jal func_8009B954
/* 09F500 8009E900 24841540 */ addiu $a0, %lo(D_02001540) # addiu $a0, $a0, 0x1540
/* 09F504 8009E904 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F508 8009E908 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F50C 8009E90C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F508 8009E908 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F50C 8009E90C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F510 8009E910 3C050200 */ lui $a1, %hi(D_02001540) # $a1, 0x200
/* 09F514 8009E914 8FE6000C */ lw $a2, 0xc($ra)
/* 09F518 8009E918 8FE70010 */ lw $a3, 0x10($ra)
/* 09F51C 8009E91C 24A51540 */ addiu $a1, %lo(D_02001540) # addiu $a1, $a1, 0x1540
/* 09F520 8009E920 0C026E9D */ jal func_8009BA74
/* 09F520 8009E920 0C026E9D */ jal render_menu_textures
/* 09F524 8009E924 8D040000 */ lw $a0, ($t0)
/* 09F528 8009E928 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F52C 8009E92C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F528 8009E928 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F52C 8009E92C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F530 8009E930 0C026E66 */ jal func_8009B998
/* 09F534 8009E934 AD020000 */ sw $v0, ($t0)
/* 09F538 8009E938 10000326 */ b .L8009F5D4
@@ -289,7 +289,7 @@ glabel L8009E940
/* 09F544 8009E944 AFBF007C */ sw $ra, 0x7c($sp)
/* 09F548 8009E948 2484157C */ addiu $a0, %lo(D_0200157C) # addiu $a0, $a0, 0x157c
/* 09F54C 8009E94C 00002825 */ move $a1, $zero
/* 09F550 8009E950 0C0265AF */ jal load_menu_img2
/* 09F550 8009E950 0C0265AF */ jal load_menu_img_comp_type
/* 09F554 8009E954 00001025 */ move $v0, $zero
/* 09F558 8009E958 3C040200 */ lui $a0, %hi(D_02001874) # $a0, 0x200
/* 09F55C 8009E95C 0C026461 */ jal load_menu_img
@@ -322,16 +322,16 @@ glabel L8009E9AC
/* 09F5C0 8009E9C0 0C026E55 */ jal func_8009B954
/* 09F5C4 8009E9C4 248415A4 */ addiu $a0, %lo(D_020015A4) # addiu $a0, $a0, 0x15a4
/* 09F5C8 8009E9C8 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F5CC 8009E9CC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F5D0 8009E9D0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F5CC 8009E9CC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F5D0 8009E9D0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F5D4 8009E9D4 3C050200 */ lui $a1, %hi(D_020015A4) # $a1, 0x200
/* 09F5D8 8009E9D8 8FE6000C */ lw $a2, 0xc($ra)
/* 09F5DC 8009E9DC 8FE70010 */ lw $a3, 0x10($ra)
/* 09F5E0 8009E9E0 24A515A4 */ addiu $a1, %lo(D_020015A4) # addiu $a1, $a1, 0x15a4
/* 09F5E4 8009E9E4 0C026E9D */ jal func_8009BA74
/* 09F5E4 8009E9E4 0C026E9D */ jal render_menu_textures
/* 09F5E8 8009E9E8 8D040000 */ lw $a0, ($t0)
/* 09F5EC 8009E9EC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F5F0 8009E9F0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F5EC 8009E9EC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F5F0 8009E9F0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F5F4 8009E9F4 AD020000 */ sw $v0, ($t0)
/* 09F5F8 8009E9F8 244F0008 */ addiu $t7, $v0, 8
/* 09F5FC 8009E9FC AD0F0000 */ sw $t7, ($t0)
@@ -343,8 +343,8 @@ glabel L8009E9AC
/* 09F614 8009EA14 AFA2006C */ sw $v0, 0x6c($sp)
/* 09F618 8009EA18 8FB9006C */ lw $t9, 0x6c($sp)
/* 09F61C 8009EA1C 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F620 8009EA20 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F624 8009EA24 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F620 8009EA20 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F624 8009EA24 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F628 8009EA28 AF220004 */ sw $v0, 4($t9)
/* 09F62C 8009EA2C 8D030000 */ lw $v1, ($t0)
/* 09F630 8009EA30 3C180708 */ lui $t8, (0x07080200 >> 16) # lui $t8, 0x708
@@ -425,16 +425,16 @@ glabel L8009E9AC
/* 09F75C 8009EB5C 0C026E55 */ jal func_8009B954
/* 09F760 8009EB60 248415CC */ addiu $a0, %lo(D_020015CC) # addiu $a0, $a0, 0x15cc
/* 09F764 8009EB64 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F768 8009EB68 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F76C 8009EB6C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F768 8009EB68 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F76C 8009EB6C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F770 8009EB70 3C050200 */ lui $a1, %hi(D_020015CC) # $a1, 0x200
/* 09F774 8009EB74 8FE6000C */ lw $a2, 0xc($ra)
/* 09F778 8009EB78 8FE70010 */ lw $a3, 0x10($ra)
/* 09F77C 8009EB7C 24A515CC */ addiu $a1, %lo(D_020015CC) # addiu $a1, $a1, 0x15cc
/* 09F780 8009EB80 0C026E9D */ jal func_8009BA74
/* 09F780 8009EB80 0C026E9D */ jal render_menu_textures
/* 09F784 8009EB84 8D040000 */ lw $a0, ($t0)
/* 09F788 8009EB88 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F78C 8009EB8C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F788 8009EB88 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F78C 8009EB8C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F790 8009EB90 0C026E66 */ jal func_8009B998
/* 09F794 8009EB94 AD020000 */ sw $v0, ($t0)
/* 09F798 8009EB98 3C040200 */ lui $a0, %hi(D_02001630) # $a0, 0x200
@@ -444,16 +444,16 @@ glabel L8009E9AC
/* 09F7A8 8009EBA8 0C026E55 */ jal func_8009B954
/* 09F7AC 8009EBAC 24841630 */ addiu $a0, %lo(D_02001630) # addiu $a0, $a0, 0x1630
/* 09F7B0 8009EBB0 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F7B4 8009EBB4 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F7B8 8009EBB8 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F7B4 8009EBB4 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F7B8 8009EBB8 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F7BC 8009EBBC 3C050200 */ lui $a1, %hi(D_02001630) # $a1, 0x200
/* 09F7C0 8009EBC0 8FE6000C */ lw $a2, 0xc($ra)
/* 09F7C4 8009EBC4 8FE70010 */ lw $a3, 0x10($ra)
/* 09F7C8 8009EBC8 24A51630 */ addiu $a1, %lo(D_02001630) # addiu $a1, $a1, 0x1630
/* 09F7CC 8009EBCC 0C026E9D */ jal func_8009BA74
/* 09F7CC 8009EBCC 0C026E9D */ jal render_menu_textures
/* 09F7D0 8009EBD0 8D040000 */ lw $a0, ($t0)
/* 09F7D4 8009EBD4 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F7D8 8009EBD8 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F7D4 8009EBD4 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F7D8 8009EBD8 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F7DC 8009EBDC 0C026E66 */ jal func_8009B998
/* 09F7E0 8009EBE0 AD020000 */ sw $v0, ($t0)
/* 09F7E4 8009EBE4 3C040200 */ lui $a0, %hi(D_02001658) # $a0, 0x200
@@ -463,16 +463,16 @@ glabel L8009E9AC
/* 09F7F4 8009EBF4 0C026E55 */ jal func_8009B954
/* 09F7F8 8009EBF8 24841658 */ addiu $a0, %lo(D_02001658) # addiu $a0, $a0, 0x1658
/* 09F7FC 8009EBFC 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F800 8009EC00 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F804 8009EC04 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F800 8009EC00 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F804 8009EC04 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F808 8009EC08 3C050200 */ lui $a1, %hi(D_02001658) # $a1, 0x200
/* 09F80C 8009EC0C 8FE6000C */ lw $a2, 0xc($ra)
/* 09F810 8009EC10 8FE70010 */ lw $a3, 0x10($ra)
/* 09F814 8009EC14 24A51658 */ addiu $a1, %lo(D_02001658) # addiu $a1, $a1, 0x1658
/* 09F818 8009EC18 0C026E9D */ jal func_8009BA74
/* 09F818 8009EC18 0C026E9D */ jal render_menu_textures
/* 09F81C 8009EC1C 8D040000 */ lw $a0, ($t0)
/* 09F820 8009EC20 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F824 8009EC24 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F820 8009EC20 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F824 8009EC24 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F828 8009EC28 0C026E66 */ jal func_8009B998
/* 09F82C 8009EC2C AD020000 */ sw $v0, ($t0)
/* 09F830 8009EC30 10000268 */ b .L8009F5D4
@@ -514,45 +514,45 @@ glabel L8009ECAC
/* 09F8AC 8009ECAC 0C02D557 */ jal has_unlocked_extra_mode
/* 09F8B0 8009ECB0 00000000 */ nop
/* 09F8B4 8009ECB4 0002C080 */ sll $t8, $v0, 2
/* 09F8B8 8009ECB8 3C04800E */ lui $a0, %hi(D_800E7D4C)
/* 09F8B8 8009ECB8 3C04800E */ lui $a0, %hi(gMenuTexturesBackground)
/* 09F8BC 8009ECBC 00982021 */ addu $a0, $a0, $t8
/* 09F8C0 8009ECC0 8C847D4C */ lw $a0, %lo(D_800E7D4C)($a0)
/* 09F8C4 8009ECC4 0C0265AF */ jal load_menu_img2
/* 09F8C0 8009ECC0 8C847D4C */ lw $a0, %lo(gMenuTexturesBackground)($a0)
/* 09F8C4 8009ECC4 0C0265AF */ jal load_menu_img_comp_type
/* 09F8C8 8009ECC8 00002825 */ move $a1, $zero
/* 09F8CC 8009ECCC 10000241 */ b .L8009F5D4
/* 09F8D0 8009ECD0 8FBF001C */ lw $ra, 0x1c($sp)
glabel L8009ECD4
/* 09F8D4 8009ECD4 0C01BB91 */ jal load_mario_kart_64_logo
/* 09F8D8 8009ECD8 00000000 */ nop
/* 09F8DC 8009ECDC 3C028019 */ lui $v0, %hi(gMenuTextureBufferIndex) # $v0, 0x8019
/* 09F8E0 8009ECE0 2442E110 */ addiu $v0, %lo(gMenuTextureBufferIndex) # 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(D_020045E8) # $a0, 0x200
/* 09F8EC 8009ECEC 3C040200 */ lui $a0, %hi(seg2_copyright_1996_texture) # $a0, 0x200
/* 09F8F0 8009ECF0 03217021 */ addu $t6, $t9, $at
/* 09F8F4 8009ECF4 AC4E0000 */ sw $t6, ($v0)
/* 09F8F8 8009ECF8 0C026461 */ jal load_menu_img
/* 09F8FC 8009ECFC 248445E8 */ addiu $a0, %lo(D_020045E8) # addiu $a0, $a0, 0x45e8
/* 09F8FC 8009ECFC 248445E8 */ addiu $a0, %lo(seg2_copyright_1996_texture) # addiu $a0, $a0, 0x45e8
/* 09F900 8009ED00 10000234 */ b .L8009F5D4
/* 09F904 8009ED04 8FBF001C */ lw $ra, 0x1c($sp)
glabel L8009ED08
/* 09F908 8009ED08 3C040200 */ lui $a0, %hi(D_02004610) # $a0, 0x200
/* 09F908 8009ED08 3C040200 */ lui $a0, %hi(seg2_push_start_button_texture) # $a0, 0x200
/* 09F90C 8009ED0C 0C026461 */ jal load_menu_img
/* 09F910 8009ED10 24844610 */ addiu $a0, %lo(D_02004610) # addiu $a0, $a0, 0x4610
/* 09F910 8009ED10 24844610 */ addiu $a0, %lo(seg2_push_start_button_texture) # addiu $a0, $a0, 0x4610
/* 09F914 8009ED14 1000022F */ b .L8009F5D4
/* 09F918 8009ED18 8FBF001C */ lw $ra, 0x1c($sp)
glabel L8009ED1C
/* 09F91C 8009ED1C 0C02D557 */ jal has_unlocked_extra_mode
/* 09F920 8009ED20 00000000 */ nop
/* 09F924 8009ED24 00027880 */ sll $t7, $v0, 2
/* 09F928 8009ED28 3C04800E */ lui $a0, %hi(D_800E7D4C)
/* 09F928 8009ED28 3C04800E */ lui $a0, %hi(gMenuTexturesBackground)
/* 09F92C 8009ED2C 008F2021 */ addu $a0, $a0, $t7
/* 09F930 8009ED30 8C847D4C */ lw $a0, %lo(D_800E7D4C)($a0)
/* 09F934 8009ED34 0C0265AF */ jal load_menu_img2
/* 09F930 8009ED30 8C847D4C */ lw $a0, %lo(gMenuTexturesBackground)($a0)
/* 09F934 8009ED34 0C0265AF */ jal load_menu_img_comp_type
/* 09F938 8009ED38 00002825 */ move $a1, $zero
/* 09F93C 8009ED3C 3C040200 */ lui $a0, %hi(D_02004B74) # $a0, 0x200
/* 09F940 8009ED40 24844B74 */ addiu $a0, %lo(D_02004B74) # addiu $a0, $a0, 0x4b74
/* 09F944 8009ED44 0C0265AF */ jal load_menu_img2
/* 09F944 8009ED44 0C0265AF */ jal load_menu_img_comp_type
/* 09F948 8009ED48 00002825 */ move $a1, $zero
/* 09F94C 8009ED4C 00002025 */ move $a0, $zero
/* 09F950 8009ED50 0C026C29 */ jal convert_img_to_greyscale
@@ -583,7 +583,7 @@ glabel L8009ED9C
/* 09F9AC 8009EDAC 0C026449 */ jal segmented_to_virtual_dupe
/* 09F9B0 8009EDB0 8C84822C */ lw $a0, %lo(D_800E822C)($a0) # -0x7dd4($a0)
/* 09F9B4 8009EDB4 00402025 */ move $a0, $v0
/* 09F9B8 8009EDB8 0C0265AF */ jal load_menu_img2
/* 09F9B8 8009EDB8 0C0265AF */ jal load_menu_img_comp_type
/* 09F9BC 8009EDBC 00002825 */ move $a1, $zero
/* 09F9C0 8009EDC0 10000204 */ b .L8009F5D4
/* 09F9C4 8009EDC4 8FBF001C */ lw $ra, 0x1c($sp)
@@ -597,7 +597,7 @@ glabel L8009EDC8
/* 09F9E0 8009EDE0 0C026449 */ jal segmented_to_virtual_dupe
/* 09F9E4 8009EDE4 AFA20024 */ sw $v0, 0x24($sp)
/* 09F9E8 8009EDE8 00402025 */ move $a0, $v0
/* 09F9EC 8009EDEC 0C0265AF */ jal load_menu_img2
/* 09F9EC 8009EDEC 0C0265AF */ jal load_menu_img_comp_type
/* 09F9F0 8009EDF0 00002825 */ move $a1, $zero
/* 09F9F4 8009EDF4 8FAF0024 */ lw $t7, 0x24($sp)
/* 09F9F8 8009EDF8 0C026449 */ jal segmented_to_virtual_dupe
@@ -609,7 +609,7 @@ glabel L8009EDC8
glabel L8009EE10
/* 09FA10 8009EE10 3C040200 */ lui $a0, %hi(D_02004B4C) # $a0, 0x200
/* 09FA14 8009EE14 24844B4C */ addiu $a0, %lo(D_02004B4C) # addiu $a0, $a0, 0x4b4c
/* 09FA18 8009EE18 0C0265AF */ jal load_menu_img2
/* 09FA18 8009EE18 0C0265AF */ jal load_menu_img_comp_type
/* 09FA1C 8009EE1C 00002825 */ move $a1, $zero
/* 09FA20 8009EE20 100001EC */ b .L8009F5D4
/* 09FA24 8009EE24 8FBF001C */ lw $ra, 0x1c($sp)
@@ -617,7 +617,7 @@ glabel L8009EE28
/* 09FA28 8009EE28 3C040200 */ lui $a0, %hi(D_02004B74) # $a0, 0x200
/* 09FA2C 8009EE2C AFBF007C */ sw $ra, 0x7c($sp)
/* 09FA30 8009EE30 24844B74 */ addiu $a0, %lo(D_02004B74) # addiu $a0, $a0, 0x4b74
/* 09FA34 8009EE34 0C0265AF */ jal load_menu_img2
/* 09FA34 8009EE34 0C0265AF */ jal load_menu_img_comp_type
/* 09FA38 8009EE38 00002825 */ move $a1, $zero
/* 09FA3C 8009EE3C 8FBF007C */ lw $ra, 0x7c($sp)
/* 09FA40 8009EE40 24180020 */ li $t8, 32
@@ -654,7 +654,7 @@ glabel L8009EE74
/* 09FAB4 8009EEB4 0C026449 */ jal segmented_to_virtual_dupe
/* 09FAB8 8009EEB8 8C847CA8 */ lw $a0, %lo(D_800E7D54 - 0xAC)($a0)
/* 09FABC 8009EEBC 00402025 */ move $a0, $v0
/* 09FAC0 8009EEC0 0C0265AF */ jal load_menu_img2
/* 09FAC0 8009EEC0 0C0265AF */ jal load_menu_img_comp_type
/* 09FAC4 8009EEC4 00002825 */ move $a1, $zero
/* 09FAC8 8009EEC8 100001C2 */ b .L8009F5D4
/* 09FACC 8009EECC 8FBF001C */ lw $ra, 0x1c($sp)
@@ -682,7 +682,7 @@ glabel L8009EF08
/* 09FB18 8009EF18 0C026449 */ jal segmented_to_virtual_dupe
/* 09FB1C 8009EF1C 8C84817C */ lw $a0, %lo(D_800E817C)($a0) # -0x7e84($a0)
/* 09FB20 8009EF20 00402025 */ move $a0, $v0
/* 09FB24 8009EF24 0C0265AF */ jal load_menu_img2
/* 09FB24 8009EF24 0C0265AF */ jal load_menu_img_comp_type
/* 09FB28 8009EF28 00002825 */ move $a1, $zero
/* 09FB2C 8009EF2C 100001A9 */ b .L8009F5D4
/* 09FB30 8009EF30 8FBF001C */ lw $ra, 0x1c($sp)
@@ -772,7 +772,7 @@ glabel L8009F050
/* 09FC68 8009F068 0C026449 */ jal segmented_to_virtual_dupe
/* 09FC6C 8009F06C 8C848294 */ lw $a0, %lo(D_800E8294)($a0) # -0x7d6c($a0)
/* 09FC70 8009F070 00402025 */ move $a0, $v0
/* 09FC74 8009F074 0C0265AF */ jal load_menu_img2
/* 09FC74 8009F074 0C0265AF */ jal load_menu_img_comp_type
/* 09FC78 8009F078 00002825 */ move $a1, $zero
/* 09FC7C 8009F07C 8FBF007C */ lw $ra, 0x7c($sp)
/* 09FC80 8009F080 24180037 */ li $t8, 55
@@ -785,7 +785,7 @@ glabel L8009F094
/* 09FC98 8009F098 0C026449 */ jal segmented_to_virtual_dupe
/* 09FC9C 8009F09C 24844A0C */ addiu $a0, %lo(D_02004A0C) # addiu $a0, $a0, 0x4a0c
/* 09FCA0 8009F0A0 00402025 */ move $a0, $v0
/* 09FCA4 8009F0A4 0C0265AF */ jal load_menu_img2
/* 09FCA4 8009F0A4 0C0265AF */ jal load_menu_img_comp_type
/* 09FCA8 8009F0A8 00002825 */ move $a1, $zero
/* 09FCAC 8009F0AC 0C02D6E5 */ jal controller_pak_1_status
/* 09FCB0 8009F0B0 00000000 */ nop
@@ -809,16 +809,16 @@ glabel L8009F0E0
/* 09FCF0 8009F0F0 0C026449 */ jal segmented_to_virtual_dupe
/* 09FCF4 8009F0F4 8C848114 */ lw $a0, %lo(D_800E8114)($a0) # -0x7eec($a0)
/* 09FCF8 8009F0F8 00402025 */ move $a0, $v0
/* 09FCFC 8009F0FC 0C0265AF */ jal load_menu_img2
/* 09FCFC 8009F0FC 0C0265AF */ jal load_menu_img_comp_type
/* 09FD00 8009F100 00002825 */ move $a1, $zero
/* 09FD04 8009F104 10000133 */ b .L8009F5D4
/* 09FD08 8009F108 8FBF001C */ lw $ra, 0x1c($sp)
glabel L8009F10C
/* 09FD0C 8009F10C 3C040200 */ lui $a0, %hi(D_02004A34) # $a0, 0x200
/* 09FD0C 8009F10C 3C040200 */ lui $a0, %hi(seg2_data_texture) # $a0, 0x200
/* 09FD10 8009F110 0C026449 */ jal segmented_to_virtual_dupe
/* 09FD14 8009F114 24844A34 */ addiu $a0, %lo(D_02004A34) # addiu $a0, $a0, 0x4a34
/* 09FD14 8009F114 24844A34 */ addiu $a0, %lo(seg2_data_texture) # addiu $a0, $a0, 0x4a34
/* 09FD18 8009F118 00402025 */ move $a0, $v0
/* 09FD1C 8009F11C 0C0265AF */ jal load_menu_img2
/* 09FD1C 8009F11C 0C0265AF */ jal load_menu_img_comp_type
/* 09FD20 8009F120 00002825 */ move $a1, $zero
/* 09FD24 8009F124 0C02D6E5 */ jal controller_pak_1_status
/* 09FD28 8009F128 00000000 */ nop
@@ -869,7 +869,7 @@ glabel L8009F174
/* 09FDC8 8009F1C8 0C026449 */ jal segmented_to_virtual_dupe
/* 09FDCC 8009F1CC 8C847D74 */ lw $a0, %lo(D_800E7D74)($a0)
/* 09FDD0 8009F1D0 00402025 */ move $a0, $v0
/* 09FDD4 8009F1D4 0C0265AF */ jal load_menu_img2
/* 09FDD4 8009F1D4 0C0265AF */ jal load_menu_img_comp_type
/* 09FDD8 8009F1D8 2405FFFF */ li $a1, -1
/* 09FDDC 8009F1DC 8FBF007C */ lw $ra, 0x7c($sp)
/* 09FDE0 8009F1E0 3C04800E */ lui $a0, %hi(D_800E7DC4)
@@ -897,13 +897,13 @@ glabel L8009F174
/* 09FE30 8009F230 0C026449 */ jal segmented_to_virtual_dupe
/* 09FE34 8009F234 8C847DC4 */ lw $a0, %lo(D_800E7DC4)($a0)
/* 09FE38 8009F238 00402025 */ move $a0, $v0
/* 09FE3C 8009F23C 0C0265AF */ jal load_menu_img2
/* 09FE3C 8009F23C 0C0265AF */ jal load_menu_img_comp_type
/* 09FE40 8009F240 00002825 */ move $a1, $zero
/* 09FE44 8009F244 3C040200 */ lui $a0, %hi(D_02004A0C) # $a0, 0x200
/* 09FE48 8009F248 0C026449 */ jal segmented_to_virtual_dupe
/* 09FE4C 8009F24C 24844A0C */ addiu $a0, %lo(D_02004A0C) # addiu $a0, $a0, 0x4a0c
/* 09FE50 8009F250 00402025 */ move $a0, $v0
/* 09FE54 8009F254 0C0265AF */ jal load_menu_img2
/* 09FE54 8009F254 0C0265AF */ jal load_menu_img_comp_type
/* 09FE58 8009F258 00002825 */ move $a1, $zero
/* 09FE5C 8009F25C 100000DD */ b .L8009F5D4
/* 09FE60 8009F260 8FBF001C */ lw $ra, 0x1c($sp)
@@ -975,7 +975,7 @@ glabel L8009F264
/* 09FF50 8009F350 0C026449 */ jal segmented_to_virtual_dupe
/* 09FF54 8009F354 8C847D54 */ lw $a0, %lo(D_800E7D54)($a0)
/* 09FF58 8009F358 00402025 */ move $a0, $v0
/* 09FF5C 8009F35C 0C0265AF */ jal load_menu_img2
/* 09FF5C 8009F35C 0C0265AF */ jal load_menu_img_comp_type
/* 09FF60 8009F360 00002825 */ move $a1, $zero
/* 09FF64 8009F364 8FA60024 */ lw $a2, 0x24($sp)
/* 09FF68 8009F368 3C04800E */ lui $a0, %hi(D_800E7FF0)
@@ -1070,7 +1070,7 @@ glabel L8009F430
/* 0A00B0 8009F4B0 0C026449 */ jal segmented_to_virtual_dupe
/* 0A00B4 8009F4B4 00000000 */ nop
/* 0A00B8 8009F4B8 00402025 */ move $a0, $v0
/* 0A00BC 8009F4BC 0C0265AF */ jal load_menu_img2
/* 0A00BC 8009F4BC 0C0265AF */ jal load_menu_img_comp_type
/* 0A00C0 8009F4C0 00002825 */ move $a1, $zero
/* 0A00C4 8009F4C4 0C01BBD8 */ jal func_8006EF60
/* 0A00C8 8009F4C8 00000000 */ nop
@@ -1098,7 +1098,7 @@ glabel L8009F510
/* 0A0114 8009F514 0C026449 */ jal segmented_to_virtual_dupe
/* 0A0118 8009F518 24844638 */ addiu $a0, %lo(D_02004638) # addiu $a0, $a0, 0x4638
/* 0A011C 8009F51C 00402025 */ move $a0, $v0
/* 0A0120 8009F520 0C0265AF */ jal load_menu_img2
/* 0A0120 8009F520 0C0265AF */ jal load_menu_img_comp_type
/* 0A0124 8009F524 00002825 */ move $a1, $zero
/* 0A0128 8009F528 1000002A */ b .L8009F5D4
/* 0A012C 8009F52C 8FBF001C */ lw $ra, 0x1c($sp)
@@ -1146,7 +1146,7 @@ glabel L8009F530
/* 0A01BC 8009F5BC 0C026449 */ jal segmented_to_virtual_dupe
/* 0A01C0 8009F5C0 8C847D54 */ lw $a0, %lo(D_800E7D54)($a0)
/* 0A01C4 8009F5C4 00402025 */ move $a0, $v0
/* 0A01C8 8009F5C8 0C0265AF */ jal load_menu_img2
/* 0A01C8 8009F5C8 0C0265AF */ jal load_menu_img_comp_type
/* 0A01CC 8009F5CC 00002825 */ move $a1, $zero
.L8009F5D0:
glabel L8009F5D0
@@ -24,10 +24,10 @@ glabel func_80099AEC
/* 09A73C 80099B3C 3C028019 */ lui $v0, %hi(D_8018E060) # 0x8019
/* 09A740 80099B40 2451E060 */ addiu $s1, $v0, %lo(D_8018E060) # -0x1fa0
/* 09A744 80099B44 8E320000 */ lw $s2, ($s1)
/* 09A748 80099B48 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019
/* 09A748 80099B48 3C148019 */ lui $s4, %hi(gMenuCompressedBuffer) # $s4, 0x8019
/* 09A74C 80099B4C 0000A825 */ move $s5, $zero
/* 09A750 80099B50 124000B4 */ beqz $s2, .L80099E24
/* 09A754 80099B54 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c
/* 09A754 80099B54 2694D9B4 */ addiu $s4, %lo(gMenuCompressedBuffer) # addiu $s4, $s4, -0x264c
/* 09A758 80099B58 96430010 */ lhu $v1, 0x10($s2)
/* 09A75C 80099B5C 24101400 */ li $s0, 5120
/* 09A760 80099B60 10600003 */ beqz $v1, .L80099B70
@@ -77,8 +77,8 @@ glabel func_80099AEC
/* 09A800 80099C00 02C02025 */ move $a0, $s6
/* 09A804 80099C04 0C0335D4 */ jal osRecvMesg
/* 09A808 80099C08 24060001 */ li $a2, 1
/* 09A80C 80099C0C 3C1E8019 */ lui $fp, %hi(D_8018E118) # $fp, 0x8019
/* 09A810 80099C10 27DEE118 */ addiu $fp, %lo(D_8018E118) # addiu $fp, $fp, -0x1ee8
/* 09A80C 80099C0C 3C1E8019 */ lui $fp, %hi(sMenuTextureMap) # $fp, 0x8019
/* 09A810 80099C10 27DEE118 */ addiu $fp, %lo(sMenuTextureMap) # addiu $fp, $fp, -0x1ee8
/* 09A814 80099C14 8E220008 */ lw $v0, 8($s1)
.L80099C18:
/* 09A818 80099C18 8FB30060 */ lw $s3, 0x60($sp)
@@ -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(D_8018D9B0) # $t1, 0x8019
/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(D_8018D9B0)($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(D_8018D9B0) # $t7, 0x8019
/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(D_8018D9B0)($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)
@@ -13,10 +13,10 @@ glabel func_80099EC4
/* 09AAF0 80099EF0 AFB20030 */ sw $s2, 0x30($sp)
/* 09AAF4 80099EF4 AFB00028 */ sw $s0, 0x28($sp)
/* 09AAF8 80099EF8 8E320000 */ lw $s2, ($s1)
/* 09AAFC 80099EFC 3C138019 */ lui $s3, %hi(D_8018D9B4) # $s3, 0x8019
/* 09AAFC 80099EFC 3C138019 */ lui $s3, %hi(gMenuCompressedBuffer) # $s3, 0x8019
/* 09AB00 80099F00 0000A025 */ move $s4, $zero
/* 09AB04 80099F04 124000C0 */ beqz $s2, .L8009A208
/* 09AB08 80099F08 2673D9B4 */ addiu $s3, %lo(D_8018D9B4) # addiu $s3, $s3, -0x264c
/* 09AB08 80099F08 2673D9B4 */ addiu $s3, %lo(gMenuCompressedBuffer) # addiu $s3, $s3, -0x264c
/* 09AB0C 80099F0C 96430010 */ lhu $v1, 0x10($s2)
/* 09AB10 80099F10 24101400 */ li $s0, 5120
/* 09AB14 80099F14 10600003 */ beqz $v1, .L80099F24
@@ -79,8 +79,8 @@ glabel func_800A1FB0
/* 0A2C1C 800A201C 0C02637E */ jal draw_box
/* 0A2C20 800A2020 24070140 */ li $a3, 320
/* 0A2C24 800A2024 AE020000 */ sw $v0, ($s0)
/* 0A2C28 800A2028 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A2C2C 800A202C 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A2C28 800A2028 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2C2C 800A202C 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
/* 0A2C30 800A2030 2478FFEB */ addiu $t8, $v1, -0x15
/* 0A2C34 800A2034 2F010033 */ sltiu $at, $t8, 0x33
/* 0A2C38 800A2038 10200310 */ beqz $at, .L800A2C7C
@@ -94,8 +94,8 @@ glabel L800A2054
/* 0A2C54 800A2054 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A2C58 800A2058 4481B000 */ mtc1 $at, $f22
/* 0A2C5C 800A205C 3C01800F */ lui $at, %hi(D_800F1C28) # $at, 0x800f
/* 0A2C60 800A2060 3C11800E */ lui $s1, %hi(D_800E7868) # $s1, 0x800e
/* 0A2C64 800A2064 26317868 */ addiu $s1, %lo(D_800E7868) # addiu $s1, $s1, 0x7868
/* 0A2C60 800A2060 3C11800E */ lui $s1, %hi(gTextOptionMenu) # $s1, 0x800e
/* 0A2C64 800A2064 26317868 */ addiu $s1, %lo(gTextOptionMenu) # addiu $s1, $s1, 0x7868
/* 0A2C68 800A2068 C4341C28 */ lwc1 $f20, %lo(D_800F1C28)($at)
/* 0A2C6C 800A206C 00009025 */ move $s2, $zero
/* 0A2C70 800A2070 2464FFEB */ addiu $a0, $v1, -0x15
@@ -110,10 +110,10 @@ glabel L800A2054
/* 0A2C90 800A2090 8E260000 */ lw $a2, ($s1)
/* 0A2C94 800A2094 00003825 */ move $a3, $zero
/* 0A2C98 800A2098 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2C9C 800A209C 0C024CC9 */ jal func_80093324
/* 0A2C9C 800A209C 0C024CC9 */ jal print_text_mode_1
/* 0A2CA0 800A20A0 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2CA4 800A20A4 3C048019 */ lui $a0, %hi(D_8018EDEC) # $a0, 0x8019
/* 0A2CA8 800A20A8 8084EDEC */ lb $a0, %lo(D_8018EDEC)($a0)
/* 0A2CA4 800A20A4 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019
/* 0A2CA8 800A20A8 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0)
/* 0A2CAC 800A20AC 26310004 */ addiu $s1, $s1, 4
/* 0A2CB0 800A20B0 24190032 */ li $t9, 50
/* 0A2CB4 800A20B4 2484FFEB */ addiu $a0, $a0, -0x15
@@ -137,11 +137,11 @@ glabel L800A2054
/* 0A2CF8 800A20F8 24050078 */ li $a1, 120
/* 0A2CFC 800A20FC 00003825 */ move $a3, $zero
/* 0A2D00 800A2100 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2D04 800A2104 0C024DBB */ jal draw_text
/* 0A2D04 800A2104 0C024DBB */ jal print_text1_center_mode_1
/* 0A2D08 800A2108 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2D0C 800A210C 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A2D0C 800A210C 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2D10 800A2110 100002DA */ b .L800A2C7C
/* 0A2D14 800A2114 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A2D14 800A2114 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A2118
/* 0A2D18 800A2118 0C024C36 */ jal set_text_color
/* 0A2D1C 800A211C 24040003 */ li $a0, 3
@@ -158,14 +158,14 @@ glabel L800A2118
/* 0A2D44 800A2144 8E260000 */ lw $a2, ($s1)
/* 0A2D48 800A2148 00003825 */ move $a3, $zero
/* 0A2D4C 800A214C E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2D50 800A2150 0C024CC9 */ jal func_80093324
/* 0A2D50 800A2150 0C024CC9 */ jal print_text_mode_1
/* 0A2D54 800A2154 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2D58 800A2158 26310004 */ addiu $s1, $s1, 4
/* 0A2D5C 800A215C 0232082B */ sltu $at, $s1, $s2
/* 0A2D60 800A2160 1420FFF6 */ bnez $at, .L800A213C
/* 0A2D64 800A2164 26100014 */ addiu $s0, $s0, 0x14
/* 0A2D68 800A2168 3C048019 */ lui $a0, %hi(D_8018EDEC) # $a0, 0x8019
/* 0A2D6C 800A216C 8084EDEC */ lb $a0, %lo(D_8018EDEC)($a0)
/* 0A2D68 800A2168 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019
/* 0A2D6C 800A216C 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0)
/* 0A2D70 800A2170 3C11800E */ lui $s1, %hi(D_800E7840) # $s1, 0x800e
/* 0A2D74 800A2174 26317840 */ addiu $s1, %lo(D_800E7840) # addiu $s1, $s1, 0x7840
/* 0A2D78 800A2178 00009025 */ move $s2, $zero
@@ -180,10 +180,10 @@ glabel L800A2118
/* 0A2D98 800A2198 8E260000 */ lw $a2, ($s1)
/* 0A2D9C 800A219C 00003825 */ move $a3, $zero
/* 0A2DA0 800A21A0 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2DA4 800A21A4 0C024CC9 */ jal func_80093324
/* 0A2DA4 800A21A4 0C024CC9 */ jal print_text_mode_1
/* 0A2DA8 800A21A8 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2DAC 800A21AC 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A2DB0 800A21B0 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A2DAC 800A21AC 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2DB0 800A21B0 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
/* 0A2DB4 800A21B4 26310004 */ addiu $s1, $s1, 4
/* 0A2DB8 800A21B8 24010002 */ li $at, 2
/* 0A2DBC 800A21BC 2464FFE2 */ addiu $a0, $v1, -0x1e
@@ -213,19 +213,19 @@ glabel L800A21E4
/* 0A2E10 800A2210 8E260000 */ lw $a2, ($s1)
/* 0A2E14 800A2214 00003825 */ move $a3, $zero
/* 0A2E18 800A2218 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2E1C 800A221C 0C024CC9 */ jal func_80093324
/* 0A2E1C 800A221C 0C024CC9 */ jal print_text_mode_1
/* 0A2E20 800A2220 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2E24 800A2224 26310004 */ addiu $s1, $s1, 4
/* 0A2E28 800A2228 1632FFF7 */ bne $s1, $s2, .L800A2208
/* 0A2E2C 800A222C 26100014 */ addiu $s0, $s0, 0x14
/* 0A2E30 800A2230 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A2E30 800A2230 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2E34 800A2234 10000291 */ b .L800A2C7C
/* 0A2E38 800A2238 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A2E38 800A2238 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A223C
/* 0A2E3C 800A223C 0C024C36 */ jal set_text_color
/* 0A2E40 800A2240 24040002 */ li $a0, 2
/* 0A2E44 800A2244 3C028019 */ lui $v0, %hi(D_8018EDEC) # $v0, 0x8019
/* 0A2E48 800A2248 8042EDEC */ lb $v0, %lo(D_8018EDEC)($v0)
/* 0A2E44 800A2244 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019
/* 0A2E48 800A2248 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0)
/* 0A2E4C 800A224C 3C0D800E */ lui $t5, %hi(D_800E78D0) # $t5, 0x800e
/* 0A2E50 800A2250 25AD78D0 */ addiu $t5, %lo(D_800E78D0) # addiu $t5, $t5, 0x78d0
/* 0A2E54 800A2254 2442FFD6 */ addiu $v0, $v0, -0x2a
@@ -243,19 +243,19 @@ glabel L800A223C
/* 0A2E80 800A2280 8E260000 */ lw $a2, ($s1)
/* 0A2E84 800A2284 00003825 */ move $a3, $zero
/* 0A2E88 800A2288 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2E8C 800A228C 0C024CC9 */ jal func_80093324
/* 0A2E8C 800A228C 0C024CC9 */ jal print_text_mode_1
/* 0A2E90 800A2290 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2E94 800A2294 26100014 */ addiu $s0, $s0, 0x14
/* 0A2E98 800A2298 1612FFF7 */ bne $s0, $s2, .L800A2278
/* 0A2E9C 800A229C 26310004 */ addiu $s1, $s1, 4
/* 0A2EA0 800A22A0 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A2EA0 800A22A0 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2EA4 800A22A4 10000275 */ b .L800A2C7C
/* 0A2EA8 800A22A8 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A2EA8 800A22A8 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A22AC
/* 0A2EAC 800A22AC 0C024C36 */ jal set_text_color
/* 0A2EB0 800A22B0 24040002 */ li $a0, 2
/* 0A2EB4 800A22B4 3C028019 */ lui $v0, %hi(D_8018EDEC) # $v0, 0x8019
/* 0A2EB8 800A22B8 8042EDEC */ lb $v0, %lo(D_8018EDEC)($v0)
/* 0A2EB4 800A22B4 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019
/* 0A2EB8 800A22B8 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0)
/* 0A2EBC 800A22BC 3C18800E */ lui $t8, %hi(D_800E7890) # $t8, 0x800e
/* 0A2EC0 800A22C0 27187890 */ addiu $t8, %lo(D_800E7890) # addiu $t8, $t8, 0x7890
/* 0A2EC4 800A22C4 244EFFCC */ addiu $t6, $v0, -0x34
@@ -271,19 +271,19 @@ glabel L800A22AC
/* 0A2EE8 800A22E8 8E260000 */ lw $a2, ($s1)
/* 0A2EEC 800A22EC 00003825 */ move $a3, $zero
/* 0A2EF0 800A22F0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2EF4 800A22F4 0C024CC9 */ jal func_80093324
/* 0A2EF4 800A22F4 0C024CC9 */ jal print_text_mode_1
/* 0A2EF8 800A22F8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2EFC 800A22FC 26100014 */ addiu $s0, $s0, 0x14
/* 0A2F00 800A2300 1612FFF7 */ bne $s0, $s2, .L800A22E0
/* 0A2F04 800A2304 26310004 */ addiu $s1, $s1, 4
/* 0A2F08 800A2308 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A2F08 800A2308 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2F0C 800A230C 1000025B */ b .L800A2C7C
/* 0A2F10 800A2310 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A2F10 800A2310 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A2314
/* 0A2F14 800A2314 0C024C36 */ jal set_text_color
/* 0A2F18 800A2318 24040002 */ li $a0, 2
/* 0A2F1C 800A231C 3C028019 */ lui $v0, %hi(D_8018EDEC) # $v0, 0x8019
/* 0A2F20 800A2320 8042EDEC */ lb $v0, %lo(D_8018EDEC)($v0)
/* 0A2F1C 800A231C 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019
/* 0A2F20 800A2320 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0)
/* 0A2F24 800A2324 3C09800E */ lui $t1, %hi(D_800E7900) # $t1, 0x800e
/* 0A2F28 800A2328 25297900 */ addiu $t1, %lo(D_800E7900) # addiu $t1, $t1, 0x7900
/* 0A2F2C 800A232C 2442FFBF */ addiu $v0, $v0, -0x41
@@ -301,14 +301,14 @@ glabel L800A2314
/* 0A2F58 800A2358 8E260000 */ lw $a2, ($s1)
/* 0A2F5C 800A235C 00003825 */ move $a3, $zero
/* 0A2F60 800A2360 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2F64 800A2364 0C024CC9 */ jal func_80093324
/* 0A2F64 800A2364 0C024CC9 */ jal print_text_mode_1
/* 0A2F68 800A2368 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2F6C 800A236C 26100014 */ addiu $s0, $s0, 0x14
/* 0A2F70 800A2370 1612FFF7 */ bne $s0, $s2, .L800A2350
/* 0A2F74 800A2374 26310004 */ addiu $s1, $s1, 4
/* 0A2F78 800A2378 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A2F78 800A2378 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2F7C 800A237C 1000023F */ b .L800A2C7C
/* 0A2F80 800A2380 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A2F80 800A2380 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A2384
/* 0A2F84 800A2384 0C024C36 */ jal set_text_color
/* 0A2F88 800A2388 24040003 */ li $a0, 3
@@ -325,14 +325,14 @@ glabel L800A2384
/* 0A2FB0 800A23B0 8E260000 */ lw $a2, ($s1)
/* 0A2FB4 800A23B4 00003825 */ move $a3, $zero
/* 0A2FB8 800A23B8 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2FBC 800A23BC 0C024CC9 */ jal func_80093324
/* 0A2FBC 800A23BC 0C024CC9 */ jal print_text_mode_1
/* 0A2FC0 800A23C0 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2FC4 800A23C4 26310004 */ addiu $s1, $s1, 4
/* 0A2FC8 800A23C8 1632FFF7 */ bne $s1, $s2, .L800A23A8
/* 0A2FCC 800A23CC 26100014 */ addiu $s0, $s0, 0x14
/* 0A2FD0 800A23D0 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A2FD0 800A23D0 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2FD4 800A23D4 10000229 */ b .L800A2C7C
/* 0A2FD8 800A23D8 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A2FD8 800A23D8 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A23DC
/* 0A2FDC 800A23DC 24010028 */ li $at, 40
/* 0A2FE0 800A23E0 1061000B */ beq $v1, $at, .L800A2410
@@ -365,7 +365,7 @@ glabel L800A23DC
/* 0A3040 800A2440 24050055 */ li $a1, 85
/* 0A3044 800A2444 00003825 */ move $a3, $zero
/* 0A3048 800A2448 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A304C 800A244C 0C024DBB */ jal draw_text
/* 0A304C 800A244C 0C024DBB */ jal print_text1_center_mode_1
/* 0A3050 800A2450 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A3054 800A2454 00146900 */ sll $t5, $s4, 4
/* 0A3058 800A2458 01B46821 */ addu $t5, $t5, $s4
@@ -396,7 +396,7 @@ glabel L800A23DC
/* 0A30B8 800A24B8 8DE60000 */ lw $a2, ($t7)
/* 0A30BC 800A24BC E7B80014 */ swc1 $f24, 0x14($sp)
/* 0A30C0 800A24C0 E7B80010 */ swc1 $f24, 0x10($sp)
/* 0A30C4 800A24C4 0C024DBB */ jal draw_text
/* 0A30C4 800A24C4 0C024DBB */ jal print_text1_center_mode_1
/* 0A30C8 800A24C8 00003825 */ move $a3, $zero
/* 0A30CC 800A24CC 00008025 */ move $s0, $zero
/* 0A30D0 800A24D0 24120096 */ li $s2, 150
@@ -404,14 +404,14 @@ glabel L800A23DC
/* 0A30D4 800A24D4 8FB80078 */ lw $t8, 0x78($sp)
/* 0A30D8 800A24D8 1278000F */ beq $s3, $t8, .L800A2518
/* 0A30DC 800A24DC 00000000 */ nop
/* 0A30E0 800A24E0 3C198019 */ lui $t9, %hi(D_8018EDEC) # $t9, 0x8019
/* 0A30E4 800A24E4 8339EDEC */ lb $t9, %lo(D_8018EDEC)($t9)
/* 0A30E0 800A24E0 3C198019 */ lui $t9, %hi(gSubMenuSelection) # $t9, 0x8019
/* 0A30E4 800A24E4 8339EDEC */ lb $t9, %lo(gSubMenuSelection)($t9)
/* 0A30E8 800A24E8 02002825 */ move $a1, $s0
/* 0A30EC 800A24EC 24060001 */ li $a2, 1
/* 0A30F0 800A24F0 0C024870 */ jal text_rainbow_effect
/* 0A30F4 800A24F4 03352023 */ subu $a0, $t9, $s5
/* 0A30F8 800A24F8 3C088019 */ lui $t0, %hi(D_8018EDEC) # $t0, 0x8019
/* 0A30FC 800A24FC 8108EDEC */ lb $t0, %lo(D_8018EDEC)($t0)
/* 0A30F8 800A24F8 3C088019 */ lui $t0, %hi(gSubMenuSelection) # $t0, 0x8019
/* 0A30FC 800A24FC 8108EDEC */ lb $t0, %lo(gSubMenuSelection)($t0)
/* 0A3100 800A2500 01154823 */ subu $t1, $t0, $s5
/* 0A3104 800A2504 5609001C */ bnel $s0, $t1, .L800A2578
/* 0A3108 800A2508 26110001 */ addiu $s1, $s0, 1
@@ -456,18 +456,18 @@ glabel L800A23DC
/* 0A318C 800A258C 27A600B9 */ addiu $a2, $sp, 0xb9
/* 0A3190 800A2590 00003825 */ move $a3, $zero
/* 0A3194 800A2594 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A3198 800A2598 0C024CC9 */ jal func_80093324
/* 0A3198 800A2598 0C024CC9 */ jal print_text_mode_1
/* 0A319C 800A259C E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A31A0 800A25A0 2401002A */ li $at, 42
/* 0A31A4 800A25A4 16610006 */ bne $s3, $at, .L800A25C0
/* 0A31A8 800A25A8 3C0F8019 */ lui $t7, %hi(D_8018D9C0) # $t7, 0x8019
/* 0A31A8 800A25A8 3C0F8019 */ lui $t7, %hi(gSomeDLBuffer) # $t7, 0x8019
/* 0A31AC 800A25AC 3C0E8019 */ lui $t6, %hi(D_8018EE10) # $t6, 0x8019
/* 0A31B0 800A25B0 25CEEE10 */ addiu $t6, %lo(D_8018EE10) # addiu $t6, $t6, -0x11f0
/* 0A31B4 800A25B4 001069C0 */ sll $t5, $s0, 7
/* 0A31B8 800A25B8 10000004 */ b .L800A25CC
/* 0A31BC 800A25BC 01AE1821 */ addu $v1, $t5, $t6
.L800A25C0:
/* 0A31C0 800A25C0 8DEFD9C0 */ lw $t7, %lo(D_8018D9C0)($t7)
/* 0A31C0 800A25C0 8DEFD9C0 */ lw $t7, %lo(gSomeDLBuffer)($t7)
/* 0A31C4 800A25C4 0010C1C0 */ sll $t8, $s0, 7
/* 0A31C8 800A25C8 01F81821 */ addu $v1, $t7, $t8
.L800A25CC:
@@ -482,7 +482,7 @@ glabel L800A23DC
/* 0A31EC 800A25EC 02402825 */ move $a1, $s2
/* 0A31F0 800A25F0 00003825 */ move $a3, $zero
/* 0A31F4 800A25F4 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A31F8 800A25F8 0C024CC9 */ jal func_80093324
/* 0A31F8 800A25F8 0C024CC9 */ jal print_text_mode_1
/* 0A31FC 800A25FC E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A3200 800A2600 10000019 */ b .L800A2668
/* 0A3204 800A2604 24010002 */ li $at, 2
@@ -510,7 +510,7 @@ glabel L800A23DC
/* 0A3250 800A2650 00003825 */ move $a3, $zero
/* 0A3254 800A2654 000D7080 */ sll $t6, $t5, 2
/* 0A3258 800A2658 00CE3021 */ addu $a2, $a2, $t6
/* 0A325C 800A265C 0C024CC9 */ jal func_80093324
/* 0A325C 800A265C 0C024CC9 */ jal print_text_mode_1
/* 0A3260 800A2660 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A3264 800A2664 24010002 */ li $at, 2
.L800A2668:
@@ -527,9 +527,9 @@ glabel L800A23DC
/* 0A3290 800A2690 AFB80088 */ sw $t8, 0x88($sp)
/* 0A3294 800A2694 1661FF83 */ bne $s3, $at, .L800A24A4
/* 0A3298 800A2698 26D60089 */ addiu $s6, $s6, 0x89
/* 0A329C 800A269C 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A329C 800A269C 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A32A0 800A26A0 10000176 */ b .L800A2C7C
/* 0A32A4 800A26A4 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A32A4 800A26A4 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A26A8
/* 0A32A8 800A26A8 0C024C36 */ jal set_text_color
/* 0A32AC 800A26AC 24040002 */ li $a0, 2
@@ -546,7 +546,7 @@ glabel L800A26A8
/* 0A32D4 800A26D4 8E060000 */ lw $a2, ($s0)
/* 0A32D8 800A26D8 00003825 */ move $a3, $zero
/* 0A32DC 800A26DC E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A32E0 800A26E0 0C024DBB */ jal draw_text
/* 0A32E0 800A26E0 0C024DBB */ jal print_text1_center_mode_1
/* 0A32E4 800A26E4 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A32E8 800A26E8 26100004 */ addiu $s0, $s0, 4
/* 0A32EC 800A26EC 0212082B */ sltu $at, $s0, $s2
@@ -579,7 +579,7 @@ glabel L800A26A8
/* 0A3354 800A2754 8D660000 */ lw $a2, ($t3)
/* 0A3358 800A2758 E7B80014 */ swc1 $f24, 0x14($sp)
/* 0A335C 800A275C E7B80010 */ swc1 $f24, 0x10($sp)
/* 0A3360 800A2760 0C024DBB */ jal draw_text
/* 0A3360 800A2760 0C024DBB */ jal print_text1_center_mode_1
/* 0A3364 800A2764 00003825 */ move $a3, $zero
/* 0A3368 800A2768 00008025 */ move $s0, $zero
/* 0A336C 800A276C 24120096 */ li $s2, 150
@@ -649,18 +649,18 @@ glabel L800A26A8
/* 0A3448 800A2848 27A600A9 */ addiu $a2, $sp, 0xa9
/* 0A344C 800A284C 00003825 */ move $a3, $zero
/* 0A3450 800A2850 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A3454 800A2854 0C024CC9 */ jal func_80093324
/* 0A3454 800A2854 0C024CC9 */ jal print_text_mode_1
/* 0A3458 800A2858 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A345C 800A285C 2401002A */ li $at, 42
/* 0A3460 800A2860 16610006 */ bne $s3, $at, .L800A287C
/* 0A3464 800A2864 3C098019 */ lui $t1, %hi(D_8018D9C0) # $t1, 0x8019
/* 0A3464 800A2864 3C098019 */ lui $t1, %hi(gSomeDLBuffer) # $t1, 0x8019
/* 0A3468 800A2868 3C0A8019 */ lui $t2, %hi(D_8018EE10) # $t2, 0x8019
/* 0A346C 800A286C 254AEE10 */ addiu $t2, %lo(D_8018EE10) # addiu $t2, $t2, -0x11f0
/* 0A3470 800A2870 001041C0 */ sll $t0, $s0, 7
/* 0A3474 800A2874 10000004 */ b .L800A2888
/* 0A3478 800A2878 010A1821 */ addu $v1, $t0, $t2
.L800A287C:
/* 0A347C 800A287C 8D29D9C0 */ lw $t1, %lo(D_8018D9C0)($t1)
/* 0A347C 800A287C 8D29D9C0 */ lw $t1, %lo(gSomeDLBuffer)($t1)
/* 0A3480 800A2880 001059C0 */ sll $t3, $s0, 7
/* 0A3484 800A2884 012B1821 */ addu $v1, $t1, $t3
.L800A2888:
@@ -675,7 +675,7 @@ glabel L800A26A8
/* 0A34A8 800A28A8 02402825 */ move $a1, $s2
/* 0A34AC 800A28AC 00003825 */ move $a3, $zero
/* 0A34B0 800A28B0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A34B4 800A28B4 0C024CC9 */ jal func_80093324
/* 0A34B4 800A28B4 0C024CC9 */ jal print_text_mode_1
/* 0A34B8 800A28B8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A34BC 800A28BC 10000019 */ b .L800A2924
/* 0A34C0 800A28C0 24010002 */ li $at, 2
@@ -703,7 +703,7 @@ glabel L800A26A8
/* 0A350C 800A290C 00003825 */ move $a3, $zero
/* 0A3510 800A2910 00085080 */ sll $t2, $t0, 2
/* 0A3514 800A2914 00CA3021 */ addu $a2, $a2, $t2
/* 0A3518 800A2918 0C024CC9 */ jal func_80093324
/* 0A3518 800A2918 0C024CC9 */ jal print_text_mode_1
/* 0A351C 800A291C 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A3520 800A2920 24010002 */ li $at, 2
.L800A2924:
@@ -725,8 +725,8 @@ glabel L800A26A8
/* 0A3560 800A2960 00009025 */ move $s2, $zero
/* 0A3564 800A2964 2411006E */ li $s1, 110
.L800A2968:
/* 0A3568 800A2968 3C048019 */ lui $a0, %hi(D_8018EDEC) # $a0, 0x8019
/* 0A356C 800A296C 8084EDEC */ lb $a0, %lo(D_8018EDEC)($a0)
/* 0A3568 800A2968 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019
/* 0A356C 800A296C 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0)
/* 0A3570 800A2970 240F00D2 */ li $t7, 210
/* 0A3574 800A2974 02002825 */ move $a1, $s0
/* 0A3578 800A2978 2484FFC8 */ addiu $a0, $a0, -0x38
@@ -742,16 +742,16 @@ glabel L800A26A8
/* 0A359C 800A299C 8E660000 */ lw $a2, ($s3)
/* 0A35A0 800A29A0 00003825 */ move $a3, $zero
/* 0A35A4 800A29A4 E7B80010 */ swc1 $f24, 0x10($sp)
/* 0A35A8 800A29A8 0C024CC9 */ jal func_80093324
/* 0A35A8 800A29A8 0C024CC9 */ jal print_text_mode_1
/* 0A35AC 800A29AC E7B80014 */ swc1 $f24, 0x14($sp)
/* 0A35B0 800A29B0 26520001 */ addiu $s2, $s2, 1
/* 0A35B4 800A29B4 24010002 */ li $at, 2
/* 0A35B8 800A29B8 26310032 */ addiu $s1, $s1, 0x32
/* 0A35BC 800A29BC 1641FFEA */ bne $s2, $at, .L800A2968
/* 0A35C0 800A29C0 26730004 */ addiu $s3, $s3, 4
/* 0A35C4 800A29C4 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A35C4 800A29C4 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A35C8 800A29C8 100000AC */ b .L800A2C7C
/* 0A35CC 800A29CC 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A35CC 800A29CC 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A29D0
/* 0A35D0 800A29D0 2475FFC6 */ addiu $s5, $v1, -0x3a
/* 0A35D4 800A29D4 06A10003 */ bgez $s5, .L800A29E4
@@ -774,7 +774,7 @@ glabel L800A29D0
/* 0A3614 800A2A14 24050055 */ li $a1, 85
/* 0A3618 800A2A18 00003825 */ move $a3, $zero
/* 0A361C 800A2A1C E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A3620 800A2A20 0C024DBB */ jal draw_text
/* 0A3620 800A2A20 0C024DBB */ jal print_text1_center_mode_1
/* 0A3624 800A2A24 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A3628 800A2A28 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A362C 800A2A2C 4481C000 */ mtc1 $at, $f24
@@ -804,7 +804,7 @@ glabel L800A29D0
/* 0A3688 800A2A88 8D260000 */ lw $a2, ($t1)
/* 0A368C 800A2A8C E7B80014 */ swc1 $f24, 0x14($sp)
/* 0A3690 800A2A90 E7B80010 */ swc1 $f24, 0x10($sp)
/* 0A3694 800A2A94 0C024DBB */ jal draw_text
/* 0A3694 800A2A94 0C024DBB */ jal print_text1_center_mode_1
/* 0A3698 800A2A98 00003825 */ move $a3, $zero
/* 0A369C 800A2A9C 00008025 */ move $s0, $zero
/* 0A36A0 800A2AA0 24120096 */ li $s2, 150
@@ -867,18 +867,18 @@ glabel L800A29D0
/* 0A3764 800A2B64 27A60099 */ addiu $a2, $sp, 0x99
/* 0A3768 800A2B68 00003825 */ move $a3, $zero
/* 0A376C 800A2B6C E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A3770 800A2B70 0C024CC9 */ jal func_80093324
/* 0A3770 800A2B70 0C024CC9 */ jal print_text_mode_1
/* 0A3774 800A2B74 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A3778 800A2B78 2401002A */ li $at, 42
/* 0A377C 800A2B7C 16610006 */ bne $s3, $at, .L800A2B98
/* 0A3780 800A2B80 3C0A8019 */ lui $t2, %hi(D_8018D9C0) # $t2, 0x8019
/* 0A3780 800A2B80 3C0A8019 */ lui $t2, %hi(gSomeDLBuffer) # $t2, 0x8019
/* 0A3784 800A2B84 3C088019 */ lui $t0, %hi(D_8018EE10) # $t0, 0x8019
/* 0A3788 800A2B88 2508EE10 */ addiu $t0, %lo(D_8018EE10) # addiu $t0, $t0, -0x11f0
/* 0A378C 800A2B8C 0010C9C0 */ sll $t9, $s0, 7
/* 0A3790 800A2B90 10000004 */ b .L800A2BA4
/* 0A3794 800A2B94 03281821 */ addu $v1, $t9, $t0
.L800A2B98:
/* 0A3798 800A2B98 8D4AD9C0 */ lw $t2, %lo(D_8018D9C0)($t2)
/* 0A3798 800A2B98 8D4AD9C0 */ lw $t2, %lo(gSomeDLBuffer)($t2)
/* 0A379C 800A2B9C 001049C0 */ sll $t1, $s0, 7
/* 0A37A0 800A2BA0 01491821 */ addu $v1, $t2, $t1
.L800A2BA4:
@@ -893,7 +893,7 @@ glabel L800A29D0
/* 0A37C4 800A2BC4 02402825 */ move $a1, $s2
/* 0A37C8 800A2BC8 00003825 */ move $a3, $zero
/* 0A37CC 800A2BCC E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A37D0 800A2BD0 0C024CC9 */ jal func_80093324
/* 0A37D0 800A2BD0 0C024CC9 */ jal print_text_mode_1
/* 0A37D4 800A2BD4 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A37D8 800A2BD8 10000019 */ b .L800A2C40
/* 0A37DC 800A2BDC 24010002 */ li $at, 2
@@ -921,7 +921,7 @@ glabel L800A29D0
/* 0A3828 800A2C28 00003825 */ move $a3, $zero
/* 0A382C 800A2C2C 00194080 */ sll $t0, $t9, 2
/* 0A3830 800A2C30 00C83021 */ addu $a2, $a2, $t0
/* 0A3834 800A2C34 0C024CC9 */ jal func_80093324
/* 0A3834 800A2C34 0C024CC9 */ jal print_text_mode_1
/* 0A3838 800A2C38 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A383C 800A2C3C 24010002 */ li $at, 2
.L800A2C40:
@@ -938,8 +938,8 @@ glabel L800A29D0
/* 0A3868 800A2C68 AFA90088 */ sw $t1, 0x88($sp)
/* 0A386C 800A2C6C 1661FF81 */ bne $s3, $at, .L800A2A74
/* 0A3870 800A2C70 26D60089 */ addiu $s6, $s6, 0x89
/* 0A3874 800A2C74 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019
/* 0A3878 800A2C78 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1)
/* 0A3874 800A2C74 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A3878 800A2C78 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
.L800A2C7C:
glabel L800A2C7C
/* 0A387C 800A2C7C 246FFFD8 */ addiu $t7, $v1, -0x28
@@ -8,7 +8,7 @@ glabel func_800AB314
/* 0ABF28 800AB328 24A4005F */ addiu $a0, $a1, 0x5f
/* 0ABF2C 800AB32C AFA3001C */ sw $v1, 0x1c($sp)
/* 0ABF30 800AB330 AFA5003C */ sw $a1, 0x3c($sp)
/* 0ABF34 800AB334 0C02ABBD */ jal find_8018D9E0_entry_dupe
/* 0ABF34 800AB334 0C02ABBD */ jal find_menu_items_dupe
/* 0ABF38 800AB338 AFA60040 */ sw $a2, 0x40($sp)
/* 0ABF3C 800AB33C 8FA5003C */ lw $a1, 0x3c($sp)
/* 0ABF40 800AB340 8FA3001C */ lw $v1, 0x1c($sp)
@@ -20,10 +20,10 @@ glabel func_800AB314
/* 0ABF58 800AB358 AC62FFFC */ sw $v0, -4($v1)
/* 0ABF5C 800AB35C 3C0E800E */ lui $t6, %hi(gModeSelection) # $t6, 0x800e
/* 0ABF60 800AB360 8DCEC53C */ lw $t6, %lo(gModeSelection)($t6)
/* 0ABF64 800AB364 3C0F8019 */ lui $t7, %hi(D_8018EDEC) # $t7, 0x8019
/* 0ABF64 800AB364 3C0F8019 */ lui $t7, %hi(gSubMenuSelection) # $t7, 0x8019
/* 0ABF68 800AB368 51C00053 */ beql $t6, $zero, .L800AB4B8
/* 0ABF6C 800AB36C 8CC20004 */ lw $v0, 4($a2)
/* 0ABF70 800AB370 81EFEDEC */ lb $t7, %lo(D_8018EDEC)($t7)
/* 0ABF70 800AB370 81EFEDEC */ lb $t7, %lo(gSubMenuSelection)($t7)
/* 0ABF74 800AB374 24040001 */ li $a0, 1
/* 0ABF78 800AB378 24030003 */ li $v1, 3
/* 0ABF7C 800AB37C 108F003A */ beq $a0, $t7, .L800AB468
@@ -124,10 +124,10 @@ glabel func_800AB314
/* 0AC0CC 800AB4CC 3C038019 */ lui $v1, %hi(gCupSelection) # $v1, 0x8019
/* 0AC0D0 800AB4D0 24010002 */ li $at, 2
/* 0AC0D4 800AB4D4 1041005C */ beq $v0, $at, .L800AB648
/* 0AC0D8 800AB4D8 3C0D8019 */ lui $t5, %hi(D_8018EDEC) # 0x8019
/* 0AC0D8 800AB4D8 3C0D8019 */ lui $t5, %hi(gSubMenuSelection) # 0x8019
/* 0AC0DC 800AB4DC 24030003 */ li $v1, 3
/* 0AC0E0 800AB4E0 1043006A */ beq $v0, $v1, .L800AB68C
/* 0AC0E4 800AB4E4 3C198019 */ lui $t9, %hi(D_8018EDEC) # 0x8019
/* 0AC0E4 800AB4E4 3C198019 */ lui $t9, %hi(gSubMenuSelection) # 0x8019
/* 0AC0E8 800AB4E8 1000006F */ b .L800AB6A8
/* 0AC0EC 800AB4EC 00000000 */ nop
/* 0AC0F0 800AB4F0 8CD9001C */ lw $t9, 0x1c($a2)
@@ -163,8 +163,8 @@ glabel func_800AB314
/* 0AC158 800AB558 000A5880 */ sll $t3, $t2, 2
/* 0AC15C 800AB55C ACCB001C */ sw $t3, 0x1c($a2)
.L800AB560:
/* 0AC160 800AB560 3C0C8019 */ lui $t4, %hi(D_8018EDEC) # $t4, 0x8019
/* 0AC164 800AB564 818CEDEC */ lb $t4, %lo(D_8018EDEC)($t4)
/* 0AC160 800AB560 3C0C8019 */ lui $t4, %hi(gSubMenuSelection) # $t4, 0x8019
/* 0AC164 800AB564 818CEDEC */ lb $t4, %lo(gSubMenuSelection)($t4)
/* 0AC168 800AB568 24030003 */ li $v1, 3
/* 0AC16C 800AB56C 240D0002 */ li $t5, 2
/* 0AC170 800AB570 146C0003 */ bne $v1, $t4, .L800AB580
@@ -219,8 +219,8 @@ glabel func_800AB314
/* 0AC21C 800AB61C 10000022 */ b .L800AB6A8
/* 0AC220 800AB620 ACCA001C */ sw $t2, 0x1c($a2)
.L800AB624:
/* 0AC224 800AB624 3C0B8019 */ lui $t3, %hi(D_8018EDEC) # $t3, 0x8019
/* 0AC228 800AB628 816BEDEC */ lb $t3, %lo(D_8018EDEC)($t3)
/* 0AC224 800AB624 3C0B8019 */ lui $t3, %hi(gSubMenuSelection) # $t3, 0x8019
/* 0AC228 800AB628 816BEDEC */ lb $t3, %lo(gSubMenuSelection)($t3)
/* 0AC22C 800AB62C 24030003 */ li $v1, 3
/* 0AC230 800AB630 146B0003 */ bne $v1, $t3, .L800AB640
/* 0AC234 800AB634 240C0002 */ li $t4, 2
@@ -239,7 +239,7 @@ glabel func_800AB314
/* 0AC260 800AB660 ACC30004 */ sw $v1, 4($a2)
/* 0AC264 800AB664 ACC00020 */ sw $zero, 0x20($a2)
.L800AB668:
/* 0AC268 800AB668 81ADEDEC */ lb $t5, %lo(D_8018EDEC)($t5) # -0x1214($t5)
/* 0AC268 800AB668 81ADEDEC */ lb $t5, %lo(gSubMenuSelection)($t5) # -0x1214($t5)
/* 0AC26C 800AB66C 24030003 */ li $v1, 3
/* 0AC270 800AB670 106D0004 */ beq $v1, $t5, .L800AB684
/* 0AC274 800AB674 00000000 */ nop
@@ -250,7 +250,7 @@ glabel func_800AB314
/* 0AC284 800AB684 10000008 */ b .L800AB6A8
/* 0AC288 800AB688 8CC20004 */ lw $v0, 4($a2)
.L800AB68C:
/* 0AC28C 800AB68C 8339EDEC */ lb $t9, %lo(D_8018EDEC)($t9) # -0x1214($t9)
/* 0AC28C 800AB68C 8339EDEC */ lb $t9, %lo(gSubMenuSelection)($t9) # -0x1214($t9)
/* 0AC290 800AB690 10790005 */ beq $v1, $t9, .L800AB6A8
/* 0AC294 800AB694 00000000 */ nop
/* 0AC298 800AB698 ACC00004 */ sw $zero, 4($a2)
@@ -15,7 +15,7 @@ glabel D_800F1DC8
.section .text
glabel func_800A474C
glabel render_lap_times
/* 0A534C 800A474C 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 0A5350 800A4750 3C0E800E */ lui $t6, %hi(gGamestate) # $t6, 0x800e
/* 0A5354 800A4754 8DCEC50C */ lw $t6, %lo(gGamestate)($t6)
@@ -86,7 +86,7 @@ glabel func_800A474C
/* 0A5438 800A4838 8FAB0030 */ lw $t3, 0x30($sp)
/* 0A543C 800A483C 55600024 */ bnel $t3, $zero, .L800A48D0
/* 0A5440 800A4840 24020003 */ li $v0, 3
/* 0A5444 800A4844 0C02ABBD */ jal find_8018D9E0_entry_dupe
/* 0A5444 800A4844 0C02ABBD */ jal find_menu_items_dupe
/* 0A5448 800A4848 240400BB */ li $a0, 187
/* 0A544C 800A484C 8FAC0050 */ lw $t4, 0x50($sp)
/* 0A5450 800A4850 29810005 */ slti $at, $t4, 5
@@ -152,7 +152,7 @@ glabel func_800A474C
/* 0A552C 800A492C 00003825 */ move $a3, $zero
/* 0A5530 800A4930 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A5534 800A4934 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5538 800A4938 0C024CC9 */ jal func_80093324
/* 0A5538 800A4938 0C024CC9 */ jal print_text_mode_1
/* 0A553C 800A493C 24840032 */ addiu $a0, $a0, 0x32
/* 0A5540 800A4940 8FA4002C */ lw $a0, 0x2c($sp)
/* 0A5544 800A4944 0C029E51 */ jal get_time_record_seconds
@@ -172,7 +172,7 @@ glabel func_800A474C
/* 0A557C 800A497C 00003825 */ move $a3, $zero
/* 0A5580 800A4980 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A5584 800A4984 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5588 800A4988 0C024CC9 */ jal func_80093324
/* 0A5588 800A4988 0C024CC9 */ jal print_text_mode_1
/* 0A558C 800A498C 24840046 */ addiu $a0, $a0, 0x46
/* 0A5590 800A4990 8FA4002C */ lw $a0, 0x2c($sp)
/* 0A5594 800A4994 0C029E69 */ jal get_time_record_centiseconds
@@ -206,7 +206,7 @@ glabel func_800A474C
/* 0A55FC 800A49FC 8FA50058 */ lw $a1, 0x58($sp)
/* 0A5600 800A4A00 00003825 */ move $a3, $zero
/* 0A5604 800A4A04 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A5608 800A4A08 0C024DBB */ jal draw_text
/* 0A5608 800A4A08 0C024DBB */ jal print_text1_center_mode_1
/* 0A560C 800A4A0C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5610 800A4A10 8FBF0024 */ lw $ra, 0x24($sp)
/* 0A5614 800A4A14 D7B40018 */ ldc1 $f20, 0x18($sp)
@@ -122,7 +122,7 @@ glabel D_800F1AFC
.section .text
glabel func_8009F5E0
glabel render_menus
/* 0A01E0 8009F5E0 27BDFF50 */ addiu $sp, $sp, -0xb0
/* 0A01E4 8009F5E4 AFBF0034 */ sw $ra, 0x34($sp)
/* 0A01E8 8009F5E8 AFB10030 */ sw $s1, 0x30($sp)
@@ -292,12 +292,12 @@ glabel L8009F844
/* 0A0444 8009F844 0C02D557 */ jal has_unlocked_extra_mode
/* 0A0448 8009F848 00000000 */ nop
/* 0A044C 8009F84C 00025880 */ sll $t3, $v0, 2
/* 0A0450 8009F850 3C05800E */ lui $a1, %hi(D_800E7D4C)
/* 0A0450 8009F850 3C05800E */ lui $a1, %hi(gMenuTexturesBackground)
/* 0A0454 8009F854 00AB2821 */ addu $a1, $a1, $t3
/* 0A0458 8009F858 8CA57D4C */ lw $a1, %lo(D_800E7D4C)($a1)
/* 0A0458 8009F858 8CA57D4C */ lw $a1, %lo(gMenuTexturesBackground)($a1)
/* 0A045C 8009F85C 8E040000 */ lw $a0, ($s0)
/* 0A0460 8009F860 8E26000C */ lw $a2, %lo(D_FA00000C)($s1)
/* 0A0464 8009F864 0C026E9D */ jal func_8009BA74
/* 0A0464 8009F864 0C026E9D */ jal render_menu_textures
/* 0A0468 8009F868 8E270010 */ lw $a3, %lo(D_FA000010)($s1)
/* 0A046C 8009F86C 10000415 */ b .L800A08C4
/* 0A0470 8009F870 AE020000 */ sw $v0, ($s0)
@@ -309,21 +309,21 @@ glabel L8009F874
/* 0A0484 8009F884 00057400 */ sll $t6, $a1, 0x10
/* 0A0488 8009F888 00046400 */ sll $t4, $a0, 0x10
/* 0A048C 8009F88C 000C2403 */ sra $a0, $t4, 0x10
/* 0A0490 8009F890 0C013235 */ jal func_8004C8D4
/* 0A0490 8009F890 0C013235 */ jal render_game_logo
/* 0A0494 8009F894 000E2C03 */ sra $a1, $t6, 0x10
/* 0A0498 8009F898 3C050200 */ lui $a1, %hi(D_020045E8) # $a1, 0x200
/* 0A049C 8009F89C 24A545E8 */ addiu $a1, %lo(D_020045E8) # addiu $a1, $a1, 0x45e8
/* 0A0498 8009F898 3C050200 */ lui $a1, %hi(seg2_copyright_1996_texture) # $a1, 0x200
/* 0A049C 8009F89C 24A545E8 */ addiu $a1, %lo(seg2_copyright_1996_texture) # addiu $a1, $a1, 0x45e8
/* 0A04A0 8009F8A0 8E040000 */ lw $a0, ($s0)
/* 0A04A4 8009F8A4 8E26000C */ lw $a2, %lo(D_FA00000C)($s1)
/* 0A04A8 8009F8A8 0C026E9D */ jal func_8009BA74
/* 0A04A8 8009F8A8 0C026E9D */ jal render_menu_textures
/* 0A04AC 8009F8AC 8E270010 */ lw $a3, %lo(D_FA000010)($s1)
/* 0A04B0 8009F8B0 10000404 */ b .L800A08C4
/* 0A04B4 8009F8B4 AE020000 */ sw $v0, ($s0)
glabel L8009F8B8
/* 0A04B8 8009F8B8 3C18800E */ lui $t8, %hi(gGlobalTimer) # $t8, 0x800e
/* 0A04BC 8009F8BC 8F18C54C */ lw $t8, %lo(gGlobalTimer)($t8)
/* 0A04C0 8009F8C0 3C050200 */ lui $a1, %hi(D_02004610) # $a1, 0x200
/* 0A04C4 8009F8C4 24A54610 */ addiu $a1, %lo(D_02004610) # addiu $a1, $a1, 0x4610
/* 0A04C0 8009F8C0 3C050200 */ lui $a1, %hi(seg2_push_start_button_texture) # $a1, 0x200
/* 0A04C4 8009F8C4 24A54610 */ addiu $a1, %lo(seg2_push_start_button_texture) # addiu $a1, $a1, 0x4610
/* 0A04C8 8009F8C8 07010003 */ bgez $t8, .L8009F8D8
/* 0A04CC 8009F8CC 0018C8C3 */ sra $t9, $t8, 3
/* 0A04D0 8009F8D0 27010007 */ addiu $at, $t8, 7
@@ -336,7 +336,7 @@ glabel L8009F8B8
/* 0A04E8 8009F8E8 8FBF0034 */ lw $ra, 0x34($sp)
/* 0A04EC 8009F8EC 8E040000 */ lw $a0, ($s0)
/* 0A04F0 8009F8F0 8E26000C */ lw $a2, %lo(D_FA00000C)($s1)
/* 0A04F4 8009F8F4 0C026E9D */ jal func_8009BA74
/* 0A04F4 8009F8F4 0C026E9D */ jal render_menu_textures
/* 0A04F8 8009F8F8 8E270010 */ lw $a3, %lo(D_FA000010)($s1)
/* 0A04FC 8009F8FC 100003F1 */ b .L800A08C4
/* 0A0500 8009F900 AE020000 */ sw $v0, ($s0)
@@ -383,7 +383,7 @@ glabel L8009F904
/* 0A059C 8009F99C 8E260000 */ lw $a2, ($s1)
/* 0A05A0 8009F9A0 00003825 */ move $a3, $zero
/* 0A05A4 8009F9A4 E7A00010 */ swc1 $f0, 0x10($sp)
/* 0A05A8 8009F9A8 0C024DBB */ jal draw_text
/* 0A05A8 8009F9A8 0C024DBB */ jal print_text1_center_mode_1
/* 0A05AC 8009F9AC E7A00014 */ swc1 $f0, 0x14($sp)
/* 0A05B0 8009F9B0 00002025 */ move $a0, $zero
/* 0A05B4 8009F9B4 0C02D3AD */ jal func_800B4EB4
@@ -443,7 +443,7 @@ glabel L8009F904
/* 0A067C 8009FA7C 240500A0 */ li $a1, 160
/* 0A0680 8009FA80 00003825 */ move $a3, $zero
/* 0A0684 8009FA84 E7A00010 */ swc1 $f0, 0x10($sp)
/* 0A0688 8009FA88 0C024CC9 */ jal func_80093324
/* 0A0688 8009FA88 0C024CC9 */ jal print_text_mode_1
/* 0A068C 8009FA8C E7A00014 */ swc1 $f0, 0x14($sp)
/* 0A0690 8009FA90 02202025 */ move $a0, $s1
/* 0A0694 8009FA94 0C029E51 */ jal get_time_record_seconds
@@ -465,7 +465,7 @@ glabel L8009F904
/* 0A06D4 8009FAD4 240500A0 */ li $a1, 160
/* 0A06D8 8009FAD8 00003825 */ move $a3, $zero
/* 0A06DC 8009FADC E7A00010 */ swc1 $f0, 0x10($sp)
/* 0A06E0 8009FAE0 0C024CC9 */ jal func_80093324
/* 0A06E0 8009FAE0 0C024CC9 */ jal print_text_mode_1
/* 0A06E4 8009FAE4 E7A00014 */ swc1 $f0, 0x14($sp)
/* 0A06E8 8009FAE8 02202025 */ move $a0, $s1
/* 0A06EC 8009FAEC 0C029E69 */ jal get_time_record_centiseconds
@@ -483,8 +483,8 @@ glabel L8009F904
/* 0A071C 8009FB1C 1000036A */ b .L800A08C8
/* 0A0720 8009FB20 8FBF0034 */ lw $ra, 0x34($sp)
glabel L8009FB24
/* 0A0724 8009FB24 3C11800E */ lui $s1, %hi(D_800E77A0) # $s1, 0x800e
/* 0A0728 8009FB28 263177A0 */ addiu $s1, %lo(D_800E77A0) # addiu $s1, $s1, 0x77a0
/* 0A0724 8009FB24 3C11800E */ lui $s1, %hi(gTextNoController) # $s1, 0x800e
/* 0A0728 8009FB28 263177A0 */ addiu $s1, %lo(gTextNoController) # addiu $s1, $s1, 0x77a0
/* 0A072C 8009FB2C 0C024C0D */ jal get_string_width
/* 0A0730 8009FB30 8E240000 */ lw $a0, ($s1)
/* 0A0734 8009FB34 8E240004 */ lw $a0, 4($s1)
@@ -555,8 +555,8 @@ glabel L8009FB24
/* 0A082C 8009FC2C 44993000 */ mtc1 $t9, $f6
/* 0A0830 8009FC30 46005402 */ mul.s $f16, $f10, $f0
/* 0A0834 8009FC34 240A00B4 */ li $t2, 180
/* 0A0838 8009FC38 3C02800E */ lui $v0, %hi(D_800E77A0) # $v0, 0x800e
/* 0A083C 8009FC3C 244277A0 */ addiu $v0, %lo(D_800E77A0) # addiu $v0, $v0, 0x77a0
/* 0A0838 8009FC38 3C02800E */ lui $v0, %hi(gTextNoController) # $v0, 0x800e
/* 0A083C 8009FC3C 244277A0 */ addiu $v0, %lo(gTextNoController) # addiu $v0, $v0, 0x77a0
/* 0A0840 8009FC40 00001825 */ move $v1, $zero
/* 0A0844 8009FC44 46803220 */ cvt.s.w $f8, $f6
/* 0A0848 8009FC48 448A3000 */ mtc1 $t2, $f6
@@ -583,13 +583,13 @@ glabel L8009FB24
/* 0A0898 8009FC98 46101480 */ add.s $f18, $f2, $f16
/* 0A089C 8009FC9C 4600910D */ trunc.w.s $f4, $f18
/* 0A08A0 8009FCA0 44052000 */ mfc1 $a1, $f4
/* 0A08A4 8009FCA4 0C024DBB */ jal draw_text
/* 0A08A4 8009FCA4 0C024DBB */ jal print_text1_center_mode_1
/* 0A08A8 8009FCA8 00000000 */ nop
/* 0A08AC 8009FCAC 8FA20040 */ lw $v0, 0x40($sp)
/* 0A08B0 8009FCB0 8FA30044 */ lw $v1, 0x44($sp)
/* 0A08B4 8009FCB4 3C0C800E */ lui $t4, %hi(D_800E77A8) # $t4, 0x800e
/* 0A08B4 8009FCB4 3C0C800E */ lui $t4, %hi(gTextBattleIntroduction) # $t4, 0x800e
/* 0A08B8 8009FCB8 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A08BC 8009FCBC 258C77A8 */ addiu $t4, %lo(D_800E77A8) # addiu $t4, $t4, 0x77a8
/* 0A08BC 8009FCBC 258C77A8 */ addiu $t4, %lo(gTextBattleIntroduction) # addiu $t4, $t4, 0x77a8
/* 0A08C0 8009FCC0 44810000 */ mtc1 $at, $f0
/* 0A08C4 8009FCC4 24420004 */ addiu $v0, $v0, 4
/* 0A08C8 8009FCC8 144CFFE8 */ bne $v0, $t4, .L8009FC6C
@@ -600,24 +600,24 @@ glabel L8009FCD8
/* 0A08D8 8009FCD8 0C02D557 */ jal has_unlocked_extra_mode
/* 0A08DC 8009FCDC 00000000 */ nop
/* 0A08E0 8009FCE0 00026880 */ sll $t5, $v0, 2
/* 0A08E4 8009FCE4 3C05800E */ lui $a1, %hi(D_800E7D4C)
/* 0A08E4 8009FCE4 3C05800E */ lui $a1, %hi(gMenuTexturesBackground)
/* 0A08E8 8009FCE8 00AD2821 */ addu $a1, $a1, $t5
/* 0A08EC 8009FCEC 8E26000C */ lw $a2, 0xc($s1)
/* 0A08F0 8009FCF0 8E270010 */ lw $a3, 0x10($s1)
/* 0A08F4 8009FCF4 240E0003 */ li $t6, 3
/* 0A08F8 8009FCF8 AFAE0010 */ sw $t6, 0x10($sp)
/* 0A08FC 8009FCFC AFA00014 */ sw $zero, 0x14($sp)
/* 0A0900 8009FD00 8CA57D4C */ lw $a1, %lo(D_800E7D4C)($a1)
/* 0A0900 8009FD00 8CA57D4C */ lw $a1, %lo(gMenuTexturesBackground)($a1)
/* 0A0904 8009FD04 0C026F27 */ jal func_8009BC9C
/* 0A0908 8009FD08 8E040000 */ lw $a0, ($s0)
/* 0A090C 8009FD0C 100002ED */ b .L800A08C4
/* 0A0910 8009FD10 AE020000 */ sw $v0, ($s0)
glabel L8009FD14
/* 0A0914 8009FD14 3C050200 */ lui $a1, %hi(D_02004660) # $a1, 0x200
/* 0A0918 8009FD18 24A54660 */ addiu $a1, %lo(D_02004660) # addiu $a1, $a1, 0x4660
/* 0A0914 8009FD14 3C050200 */ lui $a1, %hi(seg2_game_select_texture) # $a1, 0x200
/* 0A0918 8009FD18 24A54660 */ addiu $a1, %lo(seg2_game_select_texture) # addiu $a1, $a1, 0x4660
/* 0A091C 8009FD1C 8E040000 */ lw $a0, ($s0)
/* 0A0920 8009FD20 8E26000C */ lw $a2, 0xc($s1)
/* 0A0924 8009FD24 0C026E9D */ jal func_8009BA74
/* 0A0924 8009FD24 0C026E9D */ jal render_menu_textures
/* 0A0928 8009FD28 8E270010 */ lw $a3, 0x10($s1)
/* 0A092C 8009FD2C 100002E5 */ b .L800A08C4
/* 0A0930 8009FD30 AE020000 */ sw $v0, ($s0)
@@ -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
@@ -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
@@ -757,10 +757,10 @@ glabel L8009FF0C
.L8009FF24:
/* 0A0B24 8009FF24 00084880 */ sll $t1, $t0, 2
.L8009FF28:
/* 0A0B28 8009FF28 3C04800F */ lui $a0, %hi(D_800E824C) # 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_800E824C)($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_800E824C) # 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_800E824C)($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_800E824C) # 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_800E824C)($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
@@ -866,7 +866,7 @@ glabel L8009FF90
/* 0A0CB0 800A00B0 8E040000 */ lw $a0, ($s0)
/* 0A0CB4 800A00B4 8FA5009C */ lw $a1, 0x9c($sp)
/* 0A0CB8 800A00B8 8E26000C */ lw $a2, 0xc($s1)
/* 0A0CBC 800A00BC 0C026E9D */ jal func_8009BA74
/* 0A0CBC 800A00BC 0C026E9D */ jal render_menu_textures
/* 0A0CC0 800A00C0 8E270010 */ lw $a3, 0x10($s1)
/* 0A0CC4 800A00C4 100001FF */ b .L800A08C4
/* 0A0CC8 800A00C8 AE020000 */ sw $v0, ($s0)
@@ -880,7 +880,7 @@ glabel L800A00DC
/* 0A0CE0 800A00E0 24A54B4C */ addiu $a1, %lo(D_02004B4C) # addiu $a1, $a1, 0x4b4c
/* 0A0CE4 800A00E4 8E040000 */ lw $a0, ($s0)
/* 0A0CE8 800A00E8 8E26000C */ lw $a2, 0xc($s1)
/* 0A0CEC 800A00EC 0C026E9D */ jal func_8009BA74
/* 0A0CEC 800A00EC 0C026E9D */ jal render_menu_textures
/* 0A0CF0 800A00F0 8E270010 */ lw $a3, 0x10($s1)
/* 0A0CF4 800A00F4 100001F3 */ b .L800A08C4
/* 0A0CF8 800A00F8 AE020000 */ sw $v0, ($s0)
@@ -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
@@ -920,7 +920,7 @@ glabel L800A00FC
.L800A0170:
/* 0A0D70 800A0170 24C600BF */ addiu $a2, $a2, 0xbf
.L800A0174:
/* 0A0D74 800A0174 0C028474 */ jal func_800A11D0
/* 0A0D74 800A0174 0C028474 */ jal render_cursor_player
/* 0A0D78 800A0178 02202025 */ move $a0, $s1
/* 0A0D7C 800A017C 100001D2 */ b .L800A08C8
/* 0A0D80 800A0180 8FBF0034 */ lw $ra, 0x34($sp)
@@ -968,7 +968,7 @@ glabel L800A01F8
/* 0A0E18 800A0218 8E040000 */ lw $a0, ($s0)
/* 0A0E1C 800A021C 00402825 */ move $a1, $v0
/* 0A0E20 800A0220 8E26000C */ lw $a2, 0xc($s1)
/* 0A0E24 800A0224 0C026E9D */ jal func_8009BA74
/* 0A0E24 800A0224 0C026E9D */ jal render_menu_textures
/* 0A0E28 800A0228 8E270010 */ lw $a3, 0x10($s1)
/* 0A0E2C 800A022C AE020000 */ sw $v0, ($s0)
/* 0A0E30 800A0230 0C02A329 */ jal func_800A8CA4
@@ -984,7 +984,7 @@ glabel L800A0240
/* 0A0E54 800A0254 8E040000 */ lw $a0, ($s0)
/* 0A0E58 800A0258 00402825 */ move $a1, $v0
/* 0A0E5C 800A025C 8E26000C */ lw $a2, 0xc($s1)
/* 0A0E60 800A0260 0C026E9D */ jal func_8009BA74
/* 0A0E60 800A0260 0C026E9D */ jal render_menu_textures
/* 0A0E64 800A0264 8E270010 */ lw $a3, 0x10($s1)
/* 0A0E68 800A0268 10000196 */ b .L800A08C4
/* 0A0E6C 800A026C AE020000 */ sw $v0, ($s0)
@@ -1039,22 +1039,22 @@ glabel L800A02DC
/* 0A0F18 800A0318 C4261AF8 */ lwc1 $f6, %lo(D_800F1AF8)($at)
/* 0A0F1C 800A031C 8E24000C */ lw $a0, 0xc($s1)
/* 0A0F20 800A0320 8E250010 */ lw $a1, 0x10($s1)
/* 0A0F24 800A0324 3C06800E */ lui $a2, %hi(D_800E7728 - 0x194)
/* 0A0F24 800A0324 3C06800E */ lui $a2, %hi(gBestTimeText - 0x194)
/* 0A0F28 800A0328 000B6080 */ sll $t4, $t3, 2
/* 0A0F2C 800A032C 00CC3021 */ addu $a2, $a2, $t4
/* 0A0F30 800A0330 8CC67594 */ lw $a2, %lo(D_800E7728 - 0x194)($a2)
/* 0A0F30 800A0330 8CC67594 */ lw $a2, %lo(gBestTimeText - 0x194)($a2)
/* 0A0F34 800A0334 00003825 */ move $a3, $zero
/* 0A0F38 800A0338 E7A00010 */ swc1 $f0, 0x10($sp)
/* 0A0F3C 800A033C E7A60014 */ swc1 $f6, 0x14($sp)
/* 0A0F40 800A0340 24840008 */ addiu $a0, $a0, 8
/* 0A0F44 800A0344 0C024CC9 */ jal func_80093324
/* 0A0F44 800A0344 0C024CC9 */ jal print_text_mode_1
/* 0A0F48 800A0348 24A50010 */ addiu $a1, $a1, 0x10
/* 0A0F4C 800A034C 0C02A1D3 */ jal func_800A874C
/* 0A0F50 800A0350 02202025 */ move $a0, $s1
/* 0A0F54 800A0354 1000015C */ b .L800A08C8
/* 0A0F58 800A0358 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A035C
/* 0A0F5C 800A035C 0C02A385 */ jal func_800A8E14
/* 0A0F5C 800A035C 0C02A385 */ jal render_battle_introduction
/* 0A0F60 800A0360 02202025 */ move $a0, $s1
/* 0A0F64 800A0364 10000158 */ b .L800A08C8
/* 0A0F68 800A0368 8FBF0034 */ lw $ra, 0x34($sp)
@@ -1090,7 +1090,7 @@ glabel L800A037C
/* 0A0FD8 800A03D8 8E040000 */ lw $a0, ($s0)
/* 0A0FDC 800A03DC 00402825 */ move $a1, $v0
/* 0A0FE0 800A03E0 8E26000C */ lw $a2, 0xc($s1)
/* 0A0FE4 800A03E4 0C026E9D */ jal func_8009BA74
/* 0A0FE4 800A03E4 0C026E9D */ jal render_menu_textures
/* 0A0FE8 800A03E8 8E270010 */ lw $a3, 0x10($s1)
/* 0A0FEC 800A03EC 10000135 */ b .L800A08C4
/* 0A0FF0 800A03F0 AE020000 */ sw $v0, ($s0)
@@ -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
@@ -1169,24 +1169,24 @@ glabel L800A0428
/* 0A10FC 800A04FC 24A7003F */ addiu $a3, $a1, 0x3f
/* 0A1100 800A0500 AE020000 */ sw $v0, ($s0)
.L800A0504:
/* 0A1104 800A0504 3C050200 */ lui $a1, %hi(D_02004A34) # $a1, 0x200
/* 0A1108 800A0508 24A54A34 */ addiu $a1, %lo(D_02004A34) # addiu $a1, $a1, 0x4a34
/* 0A1104 800A0504 3C050200 */ lui $a1, %hi(seg2_data_texture) # $a1, 0x200
/* 0A1108 800A0508 24A54A34 */ addiu $a1, %lo(seg2_data_texture) # addiu $a1, $a1, 0x4a34
/* 0A110C 800A050C 8E040000 */ lw $a0, ($s0)
/* 0A1110 800A0510 8E26000C */ lw $a2, 0xc($s1)
/* 0A1114 800A0514 0C026E9D */ jal func_8009BA74
/* 0A1114 800A0514 0C026E9D */ jal render_menu_textures
/* 0A1118 800A0518 8E270010 */ lw $a3, 0x10($s1)
/* 0A111C 800A051C AE020000 */ sw $v0, ($s0)
/* 0A1120 800A0520 0C024C36 */ jal set_text_color
/* 0A1124 800A0524 24040003 */ li $a0, 3
/* 0A1128 800A0528 3C01800F */ lui $at, %hi(D_800F1AFC) # $at, 0x800f
/* 0A112C 800A052C C4201AFC */ lwc1 $f0, %lo(D_800F1AFC)($at)
/* 0A1130 800A0530 3C06800E */ lui $a2, %hi(D_800E77B4) # $a2, 0x800e
/* 0A1134 800A0534 24C677B4 */ addiu $a2, %lo(D_800E77B4) # addiu $a2, $a2, 0x77b4
/* 0A1130 800A0530 3C06800E */ lui $a2, %hi(gTextMenuData) # $a2, 0x800e
/* 0A1134 800A0534 24C677B4 */ addiu $a2, %lo(gTextMenuData) # addiu $a2, $a2, 0x77b4
/* 0A1138 800A0538 24040125 */ li $a0, 293
/* 0A113C 800A053C 2405001C */ li $a1, 28
/* 0A1140 800A0540 00003825 */ move $a3, $zero
/* 0A1144 800A0544 E7A00010 */ swc1 $f0, 0x10($sp)
/* 0A1148 800A0548 0C024DAE */ jal func_800936B8
/* 0A1148 800A0548 0C024DAE */ jal print_text1_left
/* 0A114C 800A054C E7A00014 */ swc1 $f0, 0x14($sp)
/* 0A1150 800A0550 100000DD */ b .L800A08C8
/* 0A1154 800A0554 8FBF0034 */ lw $ra, 0x34($sp)
@@ -1216,7 +1216,7 @@ glabel L800A0578
/* 0A11A8 800A05A8 8E27001C */ lw $a3, 0x1c($s1)
/* 0A11AC 800A05AC 8CC67500 */ lw $a2, %lo(gCupNames)($a2)
/* 0A11B0 800A05B0 E7A80014 */ swc1 $f8, 0x14($sp)
/* 0A11B4 800A05B4 0C024DAE */ jal func_800936B8
/* 0A11B4 800A05B4 0C024DAE */ jal print_text1_left
/* 0A11B8 800A05B8 E7AA0010 */ swc1 $f10, 0x10($sp)
/* 0A11BC 800A05BC 100000C2 */ b .L800A08C8
/* 0A11C0 800A05C0 8FBF0034 */ lw $ra, 0x34($sp)
@@ -1236,7 +1236,7 @@ glabel L800A05C4
/* 0A11F4 800A05F4 8E27001C */ lw $a3, 0x1c($s1)
/* 0A11F8 800A05F8 8CC67524 */ lw $a2, %lo(gCourseNames)($a2)
/* 0A11FC 800A05FC E7B20014 */ swc1 $f18, 0x14($sp)
/* 0A1200 800A0600 0C024CC9 */ jal func_80093324
/* 0A1200 800A0600 0C024CC9 */ jal print_text_mode_1
/* 0A1204 800A0604 E7B00010 */ swc1 $f16, 0x10($sp)
/* 0A1208 800A0608 100000AF */ b .L800A08C8
/* 0A120C 800A060C 8FBF0034 */ lw $ra, 0x34($sp)
@@ -1299,7 +1299,7 @@ glabel L800A0694
/* 0A12D0 800A06D0 8E040000 */ lw $a0, ($s0)
/* 0A12D4 800A06D4 00402825 */ move $a1, $v0
/* 0A12D8 800A06D8 8E26000C */ lw $a2, 0xc($s1)
/* 0A12DC 800A06DC 0C026E9D */ jal func_8009BA74
/* 0A12DC 800A06DC 0C026E9D */ jal render_menu_textures
/* 0A12E0 800A06E0 8E270010 */ lw $a3, 0x10($s1)
/* 0A12E4 800A06E4 AE020000 */ sw $v0, ($s0)
/* 0A12E8 800A06E8 8E2E001C */ lw $t6, 0x1c($s1)
@@ -1311,12 +1311,12 @@ glabel L800A0694
/* 0A1300 800A0700 AFAE0010 */ sw $t6, 0x10($sp)
/* 0A1304 800A0704 02202025 */ move $a0, $s1
/* 0A1308 800A0708 8FA500A8 */ lw $a1, 0xa8($sp)
/* 0A130C 800A070C 0C028474 */ jal func_800A11D0
/* 0A130C 800A070C 0C028474 */ jal render_cursor_player
/* 0A1310 800A0710 240600FF */ li $a2, 255
/* 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)
@@ -1326,7 +1326,7 @@ glabel L800A072C
/* 0A1334 800A0734 10000064 */ b .L800A08C8
/* 0A1338 800A0738 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A073C
/* 0A133C 800A073C 0C029289 */ jal func_800A4A24
/* 0A133C 800A073C 0C029289 */ jal render_menu_item_announce_ghost
/* 0A1340 800A0740 02202025 */ move $a0, $s1
/* 0A1344 800A0744 10000060 */ b .L800A08C8
/* 0A1348 800A0748 8FBF0034 */ lw $ra, 0x34($sp)
@@ -1336,22 +1336,22 @@ glabel L800A074C
/* 0A1354 800A0754 1000005C */ b .L800A08C8
/* 0A1358 800A0758 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A075C
/* 0A135C 800A075C 0C0295CE */ jal func_800A5738
/* 0A135C 800A075C 0C0295CE */ jal render_menu_item_end_course_option
/* 0A1360 800A0760 02202025 */ move $a0, $s1
/* 0A1364 800A0764 10000058 */ b .L800A08C8
/* 0A1368 800A0768 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A076C
/* 0A136C 800A076C 0C028649 */ jal func_800A1924
/* 0A136C 800A076C 0C028649 */ jal render_menu_item_data_course_image
/* 0A1370 800A0770 02202025 */ move $a0, $s1
/* 0A1374 800A0774 10000054 */ b .L800A08C8
/* 0A1378 800A0778 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A077C
/* 0A137C 800A077C 0C028688 */ jal func_800A1A20
/* 0A137C 800A077C 0C028688 */ jal render_menu_item_data_course_info
/* 0A1380 800A0780 02202025 */ move $a0, $s1
/* 0A1384 800A0784 10000050 */ b .L800A08C8
/* 0A1388 800A0788 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A078C
/* 0A138C 800A078C 0C0286F8 */ jal func_800A1BE0
/* 0A138C 800A078C 0C0286F8 */ jal menu_item_data_course_selectable
/* 0A1390 800A0790 02202025 */ move $a0, $s1
/* 0A1394 800A0794 1000004C */ b .L800A08C8
/* 0A1398 800A0798 8FBF0034 */ lw $ra, 0x34($sp)
@@ -1375,7 +1375,7 @@ glabel L800A07CC
/* 0A13D0 800A07D0 24A54638 */ addiu $a1, %lo(D_02004638) # addiu $a1, $a1, 0x4638
/* 0A13D4 800A07D4 8E040000 */ lw $a0, ($s0)
/* 0A13D8 800A07D8 8E26000C */ lw $a2, 0xc($s1)
/* 0A13DC 800A07DC 0C026E9D */ jal func_8009BA74
/* 0A13DC 800A07DC 0C026E9D */ jal render_menu_textures
/* 0A13E0 800A07E0 8E270010 */ lw $a3, 0x10($s1)
/* 0A13E4 800A07E4 10000037 */ b .L800A08C4
/* 0A13E8 800A07E8 AE020000 */ sw $v0, ($s0)
@@ -1426,7 +1426,7 @@ glabel L800A084C
/* 0A1480 800A0880 8E040000 */ lw $a0, ($s0)
/* 0A1484 800A0884 00402825 */ move $a1, $v0
/* 0A1488 800A0888 8E26000C */ lw $a2, 0xc($s1)
/* 0A148C 800A088C 0C026E9D */ jal func_8009BA74
/* 0A148C 800A088C 0C026E9D */ jal render_menu_textures
/* 0A1490 800A0890 8E270010 */ lw $a3, 0x10($s1)
/* 0A1494 800A0894 AE020000 */ sw $v0, ($s0)
/* 0A1498 800A0898 8E29001C */ lw $t1, 0x1c($s1)
@@ -1439,7 +1439,7 @@ glabel L800A084C
/* 0A14B4 800A08B4 10000004 */ b .L800A08C8
/* 0A14B8 800A08B8 8FBF0034 */ lw $ra, 0x34($sp)
glabel L800A08BC
/* 0A14BC 800A08BC 0C029DE4 */ jal func_800A7790
/* 0A14BC 800A08BC 0C029DE4 */ jal menu_item_credits_render
/* 0A14C0 800A08C0 02202025 */ move $a0, $s1
.L800A08C4:
glabel L800A08C4
+92 -92
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
@@ -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
@@ -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,17 +137,17 @@ 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
/* 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
@@ -160,17 +160,17 @@ 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
/* 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
@@ -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
@@ -268,37 +268,37 @@ 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
/* 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
/* 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
@@ -363,14 +363,14 @@ 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)
/* 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)
@@ -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
@@ -471,15 +471,15 @@ 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
/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((gGameModePlayerColumnExtra - 3)) # 0x800f
/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((sGameModePlayerColumnExtra - 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
/* 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
@@ -488,15 +488,15 @@ 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
/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((gGameModePlayerColumnDefault - 3)) # 0x800f
/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((sGameModePlayerColumnDefault - 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
/* 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
@@ -505,14 +505,14 @@ 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)
/* 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
@@ -521,31 +521,31 @@ 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
/* 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((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
/* 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
/* 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
@@ -558,16 +558,16 @@ 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)
/* 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -672,17 +672,17 @@ 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
/* 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
@@ -701,14 +701,14 @@ 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)
/* 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
@@ -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)
@@ -1,4 +1,4 @@
glabel func_8004C6FC
glabel render_texture_tile_rgba32_block
/* 04D2FC 8004C6FC 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 04D300 8004C700 AFB10024 */ sw $s1, 0x24($sp)
/* 04D304 8004C704 8FB10058 */ lw $s1, 0x58($sp)
@@ -81,7 +81,7 @@ glabel func_8004C6FC
/* 04D42C 8004C82C 03C02025 */ move $a0, $fp
/* 04D430 8004C830 02802825 */ move $a1, $s4
/* 04D434 8004C834 02403025 */ move $a2, $s2
/* 04D438 8004C838 0C012E54 */ jal func_8004B950
/* 04D438 8004C838 0C012E54 */ jal render_texture_rectangle_wrap
/* 04D43C 8004C83C 02003825 */ move $a3, $s0
/* 04D440 8004C840 02D11023 */ subu $v0, $s6, $s1
/* 04D444 8004C844 04410008 */ bgez $v0, .L8004C868
+2 -2
View File
@@ -1,6 +1,6 @@
glabel func_800B68F4
/* 0B74F4 800B68F4 3C028019 */ lui $v0, %hi(D_8018D9C0) # $v0, 0x8019
/* 0B74F8 800B68F8 8C42D9C0 */ lw $v0, %lo(D_8018D9C0)($v0)
/* 0B74F4 800B68F4 3C028019 */ lui $v0, %hi(gSomeDLBuffer) # $v0, 0x8019
/* 0B74F8 800B68F8 8C42D9C0 */ lw $v0, %lo(gSomeDLBuffer)($v0)
/* 0B74FC 800B68FC 000471C0 */ sll $t6, $a0, 7
/* 0B7500 800B6900 24870001 */ addiu $a3, $a0, 1
/* 0B7504 800B6904 01C21821 */ addu $v1, $t6, $v0
+1 -1
View File
@@ -73,7 +73,7 @@
#include "src/update_objects.h"
#include "src/code_80086E70.h"
#include "src/code_80091440.h"
#include "src/code_80091750.h"
#include "src/menu_items.h"
#include "src/code_800AF9B0.h"
#include <assets/common_data.h>
#include <assets/data_800E8700.h>
-20
View File
@@ -1,20 +0,0 @@
# Mario Kart 64 Enhancements
This directory contains unofficial patches to the source code that provide various features
and enhancements.
To apply a patch, run `tools/apply_patch.sh [patch]` where `[patch]` is the name of the
.patch file you wish to apply. This will perform all of the patch's changes
to the source code.
Likewise, to undo the changes from a patch you applied, run
`tools/revert_patch.sh` with the name of the .patch file you wish to undo.
To create your own enhancement patch, switch to the `master` Git
branch, make your changes to the code (but do not commit), then run `tools/create_patch.sh`. Your changes will be stored in the .patch file you specify.
The following enhancements are included in this directory:
## Flycam - `flycam.patch`
This enhancement provides a flycam mode.
-443
View File
@@ -1,443 +0,0 @@
diff --git a/mk64.ld b/mk64.ld
index 70f4820..f36f11c 100644
--- a/mk64.ld
+++ b/mk64.ld
@@ -75,6 +75,7 @@ SECTIONS
BUILD_DIR/src/audio/seqplayer.o(.text);
BUILD_DIR/src/audio/external.o(.text);
BUILD_DIR/src/audio/port_eu.o(.text);
+ BUILD_DIR/src/flycam.o(.text);
#if DEBUG
BUILD_DIR/src/os/osCartRomInit.o(.text);
BUILD_DIR/src/debug/crash_screen_enhancement.o(.text);
@@ -229,6 +230,7 @@ SECTIONS
BUILD_DIR/src/audio/load.o(.data);
BUILD_DIR/src/audio/playback.o(.data);
BUILD_DIR/src/audio/effects.o(.data);
+ BUILD_DIR/src/flycam.o(.data);
#if DEBUG
BUILD_DIR/src/debug/crash_screen_enhancement.o(.data);
BUILD_DIR/src/debug/debug.o(.data);
@@ -277,6 +279,7 @@ SECTIONS
BUILD_DIR/src/audio/seqplayer.o(.rodata);
BUILD_DIR/src/audio/external.o(.rodata);
BUILD_DIR/src/audio/port_eu.o(.rodata);
+ BUILD_DIR/src/flycam.o(.rodata);
#if DEBUG
BUILD_DIR/src/debug/crash_screen_enhancement.o(.rodata);
BUILD_DIR/src/debug/debug.o(.rodata);
@@ -311,6 +314,7 @@ SECTIONS
BUILD_DIR/src/code_80091750.jp.o(.bss);
BUILD_DIR/src/code_800AF9B0.o(.bss);
BUILD_DIR/src/menus.o(.bss);
+ BUILD_DIR/src/flycam.o(.bss);
#if DEBUG
BUILD_DIR/src/os/osCartRomInit.o(.bss);
BUILD_DIR/src/debug/crash_screen_enhancement.o(.bss);
diff --git a/src/camera.c b/src/camera.c
index 02275b1..406739d 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -969,7 +969,9 @@ void func_8001EE98(Player *player, Camera *camera, s8 index) {
func_8001E8E8(camera, player, index);
break;
}
- func_8001E45C(camera, player, index);
+
+ flycam(camera, player, index);
+
break;
case 8:
func_8001E0C4(camera, player, index);
diff --git a/src/render_player.c b/src/render_player.c
index 6b14e27..d10796b 100644
--- a/src/render_player.c
+++ b/src/render_player.c
@@ -65,6 +65,8 @@ void func_8001F9E4(Player *player, Camera *camera, s8 arg2) {
}
}
+extern u32 isFlycam;
+
u16 check_player_camera_collision(Player *player, Camera *camera, f32 arg2, f32 arg3) {
UNUSED f32 pad[6];
f32 sp64;
@@ -79,6 +81,10 @@ u16 check_player_camera_collision(Player *player, Camera *camera, f32 arg2, f32
s16 var_v0;
u16 ret;
+ if (isFlycam) {
+ return 1;
+ }
+
ret = 0;
switch (gActiveScreenMode) { /* irregular */
case SCREEN_MODE_1P:
diff --git a/src/flycam.c b/src/flycam.c
new file mode 100644
index 0000000..5569838
--- /dev/null
+++ b/src/flycam.c
@@ -0,0 +1,328 @@
+#include <libultraship.h>
+#include <PR/os.h>
+#include <macros.h>
++#include <defines.h>
+#include <camera.h>
+#include "main.h"
+#include <libc/math.h>
+#include <common_structs.h>
+#include "racing/collision.h"
+#include <variables.h>
+#include "player_controller.h"
+#include "code_80057C60.h"
+
+// Yaw/pitch rotation sensitivity
+#define SENSITIVITY_X 0.0003f
+#define SENSITIVITY_Y 0.0003f
+
+u32 isFlycam = false;
+u32 fRankIndex = 0;
+u32 fTargetPlayer = false;
+u32 fMode; // flycam mode should probably be an enum
+u32 fModeInit = false;
+
+typedef struct {
+ Vec3f pos;
+ Vec3f lookAt;
+ Vec3s rot;
+} FlycamSaveState;
+
+FlycamSaveState fState;
+
+void flycam_calculate_forward_vector(Camera* camera, Vec3f forwardVector);
+void flycam_move_camera_forward(Camera* camera, struct Controller *controller, f32 distance);
+void flycam_update(Camera* camera, struct Controller *controller);
+void flycam_controller_manager(Camera *camera, struct Controller *controller, Player *player);
+void flycam_target_player(Camera *camera, u32 playerIndex);
+void flycam_move_camera_up(Camera* camera, struct Controller *controller, f32 distance);
+void flycam_save_state(Camera *camera);
+void flycam_load_state(Camera *camera);
+
+
+/**
+ * Controls
+ *
+ * Forward: A
+ * Backward: B
+ *
+ * Go faster: Z
+ *
+ * Up: C-up
+ * Down: C-down
+ *
+ * Targets players based on rank position
+ *
+ * Target player: R-trig
+ * Target next player: C-right
+ * Target previous player: C-left
+ *
+ * Switch camera modes: D-pad left
+ *
+ * Camera mode 1: Enter flycam at the player's position
+ * Camera mode 2: Enter flycam at previous flycam spot
+ *
+*/
+
+void flycam(Camera *camera, Player *player, s8 index) {
+ struct Controller *controller = &gControllers[0];
+ Vec3f forwardVector;
+ f32 dirX;
+ f32 dirY;
+ f32 dirZ;
+ f32 length;
+
+ if (controller->buttonPressed & L_TRIG) {
+ isFlycam = !isFlycam;
+
+ // Don't use `bool = !bool` here as the game code can swap these on you.
+ // Which will confuse the code. This forces it to always be correct
+ if (isFlycam) {
+ player->type |= PLAYER_KART_AI;
+ } else {
+ player->type &= PLAYER_KART_AI;
+ }
+
+ gIsHUDVisible = !isFlycam;
+
+ if (isFlycam) {
+
+ if (fMode && fModeInit) {
+ flycam_load_state(camera);
+ } else {
+ // !fMode or fMode not initialized
+ flycam_target_player(camera, get_player_index_for_player(player));
+ }
+
+ return;
+ } else {
+ if(fMode) {
+ flycam_save_state(camera);
+ }
+ }
+ }
+
+ // Driving mode
+ if (!isFlycam) {
+ // Use normal camera code
+ func_8001E45C(camera, &gPlayers[fRankIndex], index);
+ return;
+ }
+
+
+ //if (player == gPlayerOne) { return; }
+
+ //player->type &= ~PLAYER_HUMAN;
+ //player->type |= PLAYER_HUMAN;
+
+ if ((player->type & PLAYER_START_SEQUENCE)) { return; }
+
+
+ flycam_controller_manager(camera, controller, player);
+
+
+
+
+}
+
+void flycam_save_state(Camera *camera) {
+ fState.pos[0] = camera->pos[0];
+ fState.pos[1] = camera->pos[1];
+ fState.pos[2] = camera->pos[2];
+
+ fState.lookAt[0] = camera->lookAt[0];
+ fState.lookAt[1] = camera->lookAt[1];
+ fState.lookAt[2] = camera->lookAt[2];
+
+ fState.rot[0] = camera->rot[0];
+ fState.rot[1] = camera->rot[1];
+ fState.rot[2] = camera->rot[2];
+ fModeInit = true;
+}
+
+void flycam_load_state(Camera *camera) {
+ camera->pos[0] = fState.pos[0];
+ camera->pos[1] = fState.pos[1];
+ camera->pos[2] = fState.pos[2];
+
+ camera->lookAt[0] = fState.lookAt[0];
+ camera->lookAt[1] = fState.lookAt[1];
+ camera->lookAt[2] = fState.lookAt[2];
+
+ camera->rot[0] = fState.rot[0];
+ camera->rot[1] = fState.rot[1];
+ camera->rot[2] = fState.rot[2];
+}
+
+void flycam_controller_manager(Camera *camera, struct Controller *controller, Player *player) {
+
+ if (controller->buttonPressed & U_JPAD) {
+ fMode = !fMode;
+ }
+
+ // Target a player
+ if (controller->buttonPressed & R_TRIG) {
+ fTargetPlayer = !fTargetPlayer;
+ }
+
+ // Target next player
+ if (controller->buttonPressed & L_CBUTTONS) {
+ if (fRankIndex > 0) {
+ fRankIndex--;
+ camera->playerId = fRankIndex;
+ D_800DC5EC->player = &gPlayers[fRankIndex];
+ }
+ }
+
+ // Target previous player
+ if (controller->buttonPressed & R_CBUTTONS) {
+ if (fRankIndex < 7) {
+ fRankIndex++;
+ camera->playerId = fRankIndex;
+ D_800DC5EC->player = &gPlayers[fRankIndex];
+ }
+ }
+
+ // Target camera at chosen player
+ if (fTargetPlayer) {
+ flycam_target_player(camera, gGPCurrentRacePlayerIdByRank[fRankIndex]);
+ // Don't run the other camera code.
+ return;
+ }
+
+ // Rotation
+ if (!fTargetPlayer) {
+ if (controller->stickDirection != 0) {
+ flycam_update(camera, controller);
+ }
+ }
+
+ // Forward
+ if (controller->button & A_BUTTON) {
+ flycam_move_camera_forward(camera, controller, 3.0f);
+ }
+
+ // Backward B button but not A button.
+ if (controller->button & B_BUTTON && !(controller->button & A_BUTTON)) {
+ flycam_move_camera_forward(camera, controller, -3.0f);
+ }
+
+ // Up
+ if (controller->button & U_CBUTTONS) {
+ flycam_move_camera_up(camera, controller, 2.0f);
+ }
+ // Up
+ if (controller->button & D_CBUTTONS) {
+ flycam_move_camera_up(camera, controller, -2.0f);
+ }
+}
+
+// Calculates the forward direction vector based on camera orientation
+void flycam_calculate_forward_vector(Camera* camera, Vec3f forwardVector) {
+ f32 pitch = (camera->rot[2] / 65535.0f) * 360.0f; // Convert pitch from 0-65535 to degrees
+ f32 yaw = (camera->rot[1] / 65535.0f) * 360.0f; // Convert yaw from 0-65535 to degrees
+
+ // Convert degrees to radians
+ pitch = pitch * M_PI / 180.0f;
+ yaw = yaw * M_PI / 180.0f;
+
+ forwardVector[0] = -sinf(yaw) * cosf(pitch);
+ forwardVector[1] = -sinf(pitch);
+ forwardVector[2] = cosf(yaw) * cosf(pitch);
+}
+
+// Function to move the camera forward
+void flycam_move_camera_forward(Camera* camera, struct Controller *controller, f32 distance) {
+ Vec3f forwardVector;
+ Vec3f rightVector;
+ f32 length;
+ flycam_calculate_forward_vector(camera, forwardVector);
+
+ if (controller->button & Z_TRIG) {
+ distance *= 3;
+ }
+
+ // Normalize the forward vector
+ length = sqrtf(forwardVector[0] * forwardVector[0] + forwardVector[1] * forwardVector[1] + forwardVector[2] * forwardVector[2]);
+ forwardVector[0] /= length;
+ forwardVector[1] /= length;
+ forwardVector[2] /= length;
+
+ // Calculate the right vector by taking the cross product of forward and up
+ rightVector[0] = forwardVector[1] * camera->up[2] - forwardVector[2] * camera->up[1];
+ rightVector[1] = forwardVector[2] * camera->up[0] - forwardVector[0] * camera->up[2];
+ rightVector[2] = forwardVector[0] * camera->up[1] - forwardVector[1] * camera->up[0];
+
+ // Move the camera's position along the forward vector while considering its up vector
+ camera->pos[0] += forwardVector[0] * distance;
+ camera->pos[1] += forwardVector[1] * distance;
+ camera->pos[2] += forwardVector[2] * distance;
+
+ // Optionally, you can also adjust the lookAt point to maintain the same relative position
+ camera->lookAt[0] += forwardVector[0] * distance;
+ camera->lookAt[1] += forwardVector[1] * distance;
+ camera->lookAt[2] += forwardVector[2] * distance;
+}
+
+// Function to move the camera forward
+void flycam_move_camera_up(Camera* camera, struct Controller *controller, f32 distance) {
+ // Check if the Z button is pressed (for faster movement)
+ if (controller->button & Z_TRIG) {
+ distance *= 3;
+ }
+
+ // Move the camera's position along its up vector (Y-axis)
+ camera->pos[1] += distance;
+
+ // Optionally, adjust the lookAt point to maintain the same relative position
+ camera->lookAt[1] += distance;
+}
+
+// Update camera rotation and lookAt point based on input
+void flycam_update(Camera* camera, struct Controller *controller) {
+ // Calculate yaw (horizontal movement)
+ f32 yawChange = controller->rawStickX * SENSITIVITY_X;
+ f32 pitchChange = controller->rawStickY * SENSITIVITY_Y;
+ Vec3f forwardVector;
+
+ check_bounding_collision(&camera->collision, 50, camera->pos[0], camera->pos[1], camera->pos[2]);
+
+ camera->rot[1] += (short)(yawChange * 65535.0f / (2 * M_PI)); // Convert radians to 0-65535 range
+
+ camera->rot[2] += (short)(-pitchChange * 65535.0f / (2 * M_PI)); // Convert radians to 0-65535 range
+
+ if (camera->rot[2] > 15999) {
+ camera->rot[2] = 15999;
+ } else if (camera->rot[2] < -15999) {
+ camera->rot[2] = -15999;
+ }
+
+ // Update the lookAt point based on the new orientation
+ flycam_calculate_forward_vector(camera, forwardVector);
+ camera->lookAt[0] = camera->pos[0] + forwardVector[0];
+ camera->lookAt[1] = camera->pos[1] + forwardVector[1];
+ camera->lookAt[2] = camera->pos[2] + forwardVector[2];
+}
+
+void flycam_target_player(Camera *camera, u32 playerIndex) {
+ Vec3f forwardVector;// = 2.0f;
+ Player *player = &gPlayers[playerIndex];
+
+ // Calculate the direction from the player to the camera
+ f32 dirX = player->pos[0] - camera->pos[0];
+ f32 dirY = player->pos[1] - camera->pos[1];
+ f32 dirZ = player->pos[2] - camera->pos[2];
+
+ // Normalize the direction vector (if needed)
+ f32 length = sqrtf(dirX * dirX + dirY * dirY + dirZ * dirZ);
+ if (length > 0) {
+ dirX /= length;
+ dirY /= length;
+ dirZ /= length;
+ }
+
+ // Update the camera's look-at direction
+ camera->lookAt[0] = camera->pos[0] + dirX;
+ camera->lookAt[1] = camera->pos[1] + dirY;
+ camera->lookAt[2] = camera->pos[2] + dirZ;
+}
diff --git a/src/main.c b/src/main.c
index 7c90951..135e98c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -578,6 +578,7 @@ void race_logic_loop(void) {
gTickLogic = 2;
staff_ghosts_loop();
if (gIsGamePaused == 0) {
+ func_8001EE98(gPlayerOneCopy, camera1, 0);
for (i = 0; i < gTickLogic; i++) {
if (D_8015011E) {
gCourseTimer += 0.01666666; // 1 / 60
@@ -585,7 +586,6 @@ void race_logic_loop(void) {
func_802909F0();
evaluate_collision_for_players_and_actors();
func_800382DC();
- func_8001EE98(gPlayerOneCopy, camera1, 0);
func_80028F70();
func_8028F474();
func_80059AC8();
diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c
index c2a84aa..338e2bd 100644
--- a/src/racing/render_courses.c
+++ b/src/racing/render_courses.c
@@ -180,6 +180,11 @@ void render_course_segments(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) {
arg1->pathCounter = temp_v1;
temp_v1 = ((temp_v1 - 1) * 4) + var_a3;
+ if (isFlycam) {
+ func_8029569C();
+ return;
+ }
+
gSPDisplayList(gDisplayListHead++, gfx[temp_v1]);
}
+8 -53
View File
@@ -48,25 +48,6 @@
#define HOLD_ALL_DPAD_AND_C_BUTTONS \
(U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)
/**
* @brief Options for gDebugMenuSelection
*/
#define DEBUG_MENU_DISABLED 1
#define DEBUG_MENU_DEBUG_MODE 2
#define DEBUG_MENU_COURSE 3
#define DEBUG_MENU_SCREEN_MODE 4
#define DEBUG_MENU_PLAYER 5
#define DEBUG_MENU_SOUND_MODE 6
#define DEBUG_MENU_GIVE_ALL_GOLD_CUP 7
#define DEBUG_MENU_EXITED 64
/**
* @brief Options for gDebugGotoScene
*/
#define DEBUG_GOTO_RACING 0
#define DEBUG_GOTO_ENDING 1
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_50 2
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA 3
/**
* @brief Jump to demo mode from the debug menu using L and A
@@ -214,34 +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 gControllerPakMenuSelection
*/
#define CONTROLLER_PAK_MENU_SELECT_RECORD 1
#define CONTROLLER_PAK_MENU_END 2
#define CONTROLLER_PAK_MENU_ERASE 3
#define CONTROLLER_PAK_MENU_QUIT 4
#define CONTROLLER_PAK_MENU_TABLE_GAME_DATA 5
#define CONTROLLER_PAK_MENU_GO_TO_ERASING 6
#define CONTROLLER_PAK_MENU_ERASING 7
#define CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED 8
#define CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK 9
#define CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED 10
/**
* @brief Options for gScreenModeSelection and gActiveScreenMode
*/
@@ -269,12 +222,14 @@ enum { COURSE_ONE, COURSE_TWO, COURSE_THREE, COURSE_FOUR };
* flashing between 2 colors, but also cause individual characters
* to be cutoff on their right side
*/
#define TEXT_BLUE 0
#define TEXT_GREEN 1
#define TEXT_RED 2
#define TEXT_YELLOW 3
#define TEXT_BLUE_GREEN_RED_CYCLE_1 4
#define TEXT_BLUE_GREEN_RED_CYCLE_2 5
enum COLOR_ID {
TEXT_BLUE,
TEXT_GREEN,
TEXT_RED,
TEXT_YELLOW,
TEXT_BLUE_GREEN_RED_CYCLE_1,
TEXT_BLUE_GREEN_RED_CYCLE_2
};
/**
* @brief Sound mode options
+1 -1
View File
@@ -5,7 +5,7 @@
# Utility to aid in the generation of m2c output for specific functions
#
# example usages:
# m2c_helper.sh code_80091750 func_800AAC18
# m2c_helper.sh menu_items func_800AAC18
# m2c_helper.sh audio/load audio_init
#
# Be sure to set DISASSEMBLY_FILE to a filename you are comfortable with.
-181
View File
@@ -1,181 +0,0 @@
# This file is auto-generated. DO NOT MODIFY!
SAFE_C_FILES := \
build/us/src/camera.o \
build/us/src/spawn_players.o \
build/us/src/code_8003DC40.o \
build/us/src/code_80091440.o \
build/us/src/effects.o \
build/us/src/code_80057C60_var.o \
build/us/src/code_80091750.o \
build/us/src/code_800029B0.o \
build/us/src/animation.o \
build/us/src/player_controller.o \
build/us/src/code_80005FD0.o \
build/us/src/profiler.o \
build/us/src/render_player.o \
build/us/src/code_80086E70.o \
build/us/src/staff_ghosts.o \
build/us/src/gbiMacro.o \
build/us/src/kart_dma.o \
build/us/src/math_util_2.o \
build/us/src/main.o \
build/us/src/data/some_data.o \
build/us/src/data/kart_attributes.o \
build/us/src/data/path_spawn_metadata.o \
build/us/src/data/textures.o \
build/us/src/data/trig_tables_bss.o \
build/us/src/data/data_segment2.o \
build/us/src/audio/seqplayer.o \
build/us/src/audio/heap.o \
build/us/src/audio/effects.o \
build/us/src/audio/playback.o \
build/us/src/audio/data.o \
build/us/src/audio/audio_session_presets.o \
build/us/src/audio/port_eu.o \
build/us/src/buffers/gfx_output_buffer.o \
build/us/src/buffers/trig_tables.o \
build/us/src/buffers/buffers.o \
build/us/src/buffers/random.o \
build/us/src/buffers/trig_tables_bss.o \
build/us/src/buffers/memory_pool.o \
build/us/src/ending/credits.o \
build/us/src/ending/code_80280000.o \
build/us/src/ending/ceremony_and_credits.o \
build/us/src/ending/dl_unk_80284EE0.o \
build/us/src/ending/code_80281780.o \
build/us/src/ending/podium_ceremony_actors.o \
build/us/src/ending/code_80281C40.o \
build/us/src/ending/camera_junk.o \
build/us/src/debug/debug.o \
build/us/src/debug/crash_screen_enhancement.o \
build/us/src/racing/collision.o \
build/us/src/racing/skybox_and_splitscreen.o \
build/us/src/racing/memory.o \
build/us/src/racing/race_logic.o \
build/us/src/racing/actors_extended.o \
build/us/src/racing/render_courses.o \
build/us/src/racing/actors.o \
build/us/src/os/guOrthoF.o \
build/us/src/os/guLookAtF.o \
build/us/src/os/__osSiDeviceBusy.o \
build/us/src/os/_Litob.o \
build/us/src/os/osContInit.o \
build/us/src/os/osInitialize.o \
build/us/src/os/osAiSetNextBuffer.o \
build/us/src/os/guMtxCatL.o \
build/us/src/os/__osAiDeviceBusy.o \
build/us/src/os/contramread.o \
build/us/src/os/osSpTaskLoadGo.o \
build/us/src/os/crc.o \
build/us/src/os/osCreateMesgQueue.o \
build/us/src/os/guRotateF.o \
build/us/src/os/__osLeoInterrupt.o \
build/us/src/os/osContStartReadData.o \
build/us/src/os/osGetThreadPri.o \
build/us/src/os/osPfsNumFiles.o \
build/us/src/os/__osSiRawReadIo.o \
build/us/src/os/osSpTaskYield.o \
build/us/src/os/osStartThread.o \
build/us/src/os/osViData.o \
build/us/src/os/osPfsFileState.o \
build/us/src/os/contpfs.o \
build/us/src/os/leointerrupt.o \
build/us/src/os/osPfsAllocateFile.o \
build/us/src/os/ldiv.o \
build/us/src/os/osSpTaskYielded.o \
build/us/src/os/__osSpSetPc.o \
build/us/src/os/osSetTime.o \
build/us/src/os/osYieldThread.o \
build/us/src/os/osPiRawStartDma.o \
build/us/src/os/osSetTimer.o \
build/us/src/os/osPfsDeleteFile.o \
build/us/src/os/__osSpDeviceBusy.o \
build/us/src/os/osEepromRead.o \
build/us/src/os/osPiRawReadIo.o \
build/us/src/os/osSetEventMesg.o \
build/us/src/os/NaN.o \
build/us/src/os/osJamMesg.o \
build/us/src/os/osPfsChecker.o \
build/us/src/os/sprintf.o \
build/us/src/os/_Printf.o \
build/us/src/os/osViTable.o \
build/us/src/os/osEepromLongWrite.o \
build/us/src/os/__osEPiRawWriteIo.o \
build/us/src/os/osViSetEvent.o \
build/us/src/os/__osGetCurrFaultedThread.o \
build/us/src/os/osCreatePiManager.o \
build/us/src/os/epidma.o \
build/us/src/os/osCartRomInit.o \
build/us/src/os/osPfsFreeBlocks.o \
build/us/src/os/osPfsSearchFile.o \
build/us/src/os/__osAtomicDec.o \
build/us/src/os/osViBlack.o \
build/us/src/os/__osViInit.o \
build/us/src/os/osEepromWrite.o \
build/us/src/os/osAiSetFrequency.o \
build/us/src/os/__osEPiRawReadIo.o \
build/us/src/os/guLookAtRef.o \
build/us/src/os/guPerspectiveF.o \
build/us/src/os/contramwrite.o \
build/us/src/os/osGetTime.o \
build/us/src/os/__osViSwapContext.o \
build/us/src/os/alBnkfNew.o \
build/us/src/os/__osSpSetStatus.o \
build/us/src/os/osPfsReadWriteFile.o \
build/us/src/os/osPiStartDma.o \
build/us/src/os/osRecvMesg.o \
build/us/src/os/osDestroyThread.o \
build/us/src/os/string.o \
build/us/src/os/__osSiRawWriteIo.o \
build/us/src/os/osPfsInit.o \
build/us/src/os/guMtxCatF.o \
build/us/src/os/osPfsIsPlug.o \
build/us/src/os/__osDequeueThread.o \
build/us/src/os/__osSiCreateAccessQueue.o \
build/us/src/os/osViSwapBuffer.o \
build/us/src/os/is_debug.o \
build/us/src/os/__osViGetCurrentContext.o \
build/us/src/os/__osPiCreateAccessQueue.o \
build/us/src/os/__osSpRawStartDma.o \
build/us/src/os/__osSyncPutChars.o \
build/us/src/os/osSendMesg.o \
build/us/src/os/osSyncPrintf.o \
build/us/src/os/__osResetGlobalIntMask.o \
build/us/src/os/guScaleF.o \
build/us/src/os/osSetThreadPri.o \
build/us/src/os/__osDevMgrMain.o \
build/us/src/os/osVirtualToPhysical.o \
build/us/src/os/osViSetMode.o \
build/us/src/os/__osSetHWIntrRoutine.o \
build/us/src/os/osCreateViManager.o \
build/us/src/os/__osSiRawStartDma.o \
build/us/src/os/guNormalize.o \
build/us/src/os/osLeoDiskInit.o \
build/us/src/os/__osSpGetStatus.o \
build/us/src/os/osEepromLongRead.o \
build/us/src/os/_Ldtob.o \
build/us/src/os/guMtxF2L.o \
build/us/src/os/osEPiRawStartDma.o \
build/us/src/os/osPiGetCmdQueue.o \
build/us/src/os/osAiGetLength.o \
build/us/src/os/osViSetSpecialFeatures.o \
build/us/src/os/osCreateThread.o \
build/us/src/os/osTimer.o \
build/us/src/os/osEepromProbe.o \
build/us/src/os/__osSetGlobalIntMask.o \
build/us/src/os/guTranslateF.o \
build/us/src/os/math/llconv.o \
build/us/src/os/math/cosf.o \
build/us/src/os/math/llmuldiv.o \
build/us/src/os/math/sinf.o \
# build/us/src/save.o
# build/us/src/crash_screen.o
# build/us/src/code_8006E9C0.o
# build/us/src/audio/synthesis.o
# build/us/src/code_80057C60.o
# build/us/src/menus.o
# build/us/src/render_objects.o
# build/us/src/code_800AF9B0.o
# build/us/src/update_objects.o
-169
View File
@@ -1,169 +0,0 @@
# This file is auto-generated. DO NOT MODIFY!
SAFE_C_FILES := \
build/us/src/camera.o \
build/us/src/spawn_players.o \
build/us/src/code_8003DC40.o \
build/us/src/code_80091440.o \
build/us/src/effects.o \
build/us/src/code_80057C60_var.o \
build/us/src/code_800029B0.o \
build/us/src/code_80004740.o \
build/us/src/player_controller.o \
build/us/src/profiler.o \
build/us/src/render_player.o \
build/us/src/code_80086E70.o \
build/us/src/staff_ghosts.o \
build/us/src/gbiMacro.o \
build/us/src/kart_dma.o \
build/us/src/math_util_2.o \
build/us/src/main.o \
build/us/src/data/kart_attributes.o \
build/us/src/data/path_spawn_metadata.o \
build/us/src/data/textures.o \
build/us/src/data/trig_tables_bss.o \
build/us/src/data/data_segment2.o \
build/us/src/audio/seqplayer.o \
build/us/src/audio/heap.o \
build/us/src/audio/effects.o \
build/us/src/audio/playback.o \
build/us/src/audio/audio_session_presets.o \
build/us/src/audio/port_eu.o \
build/us/src/buffers/gfx_output_buffer.o \
build/us/src/buffers/trig_tables.o \
build/us/src/buffers/buffers.o \
build/us/src/buffers/random.o \
build/us/src/buffers/trig_tables_bss.o \
build/us/src/buffers/memory_pool.o \
build/us/src/ending/credits.o \
build/us/src/ending/code_80280000.o \
build/us/src/ending/ceremony_and_credits.o \
build/us/src/ending/dl_unk_80284EE0.o \
build/us/src/ending/code_80281780.o \
build/us/src/ending/podium_ceremony_actors.o \
build/us/src/ending/code_80281C40.o \
build/us/src/ending/camera_junk.o \
build/us/src/debug/debug.o \
build/us/src/debug/crash_screen_enhancement.o \
build/us/src/racing/collision.o \
build/us/src/racing/skybox_and_splitscreen.o \
build/us/src/racing/memory.o \
build/us/src/racing/race_logic.o \
build/us/src/racing/actors_extended.o \
build/us/src/racing/render_courses.o \
build/us/src/racing/actors.o \
build/us/src/os/guOrthoF.o \
build/us/src/os/guLookAtF.o \
build/us/src/os/__osSiDeviceBusy.o \
build/us/src/os/_Litob.o \
build/us/src/os/osContInit.o \
build/us/src/os/osInitialize.o \
build/us/src/os/osAiSetNextBuffer.o \
build/us/src/os/guMtxCatL.o \
build/us/src/os/__osAiDeviceBusy.o \
build/us/src/os/contramread.o \
build/us/src/os/osSpTaskLoadGo.o \
build/us/src/os/crc.o \
build/us/src/os/osCreateMesgQueue.o \
build/us/src/os/guRotateF.o \
build/us/src/os/__osLeoInterrupt.o \
build/us/src/os/osContStartReadData.o \
build/us/src/os/osGetThreadPri.o \
build/us/src/os/osPfsNumFiles.o \
build/us/src/os/__osSiRawReadIo.o \
build/us/src/os/osSpTaskYield.o \
build/us/src/os/osStartThread.o \
build/us/src/os/osViData.o \
build/us/src/os/osPfsFileState.o \
build/us/src/os/contpfs.o \
build/us/src/os/leointerrupt.o \
build/us/src/os/osPfsAllocateFile.o \
build/us/src/os/ldiv.o \
build/us/src/os/osSpTaskYielded.o \
build/us/src/os/__osSpSetPc.o \
build/us/src/os/osSetTime.o \
build/us/src/os/osYieldThread.o \
build/us/src/os/osPiRawStartDma.o \
build/us/src/os/osSetTimer.o \
build/us/src/os/osPfsDeleteFile.o \
build/us/src/os/__osSpDeviceBusy.o \
build/us/src/os/osEepromRead.o \
build/us/src/os/osPiRawReadIo.o \
build/us/src/os/osSetEventMesg.o \
build/us/src/os/NaN.o \
build/us/src/os/osJamMesg.o \
build/us/src/os/osPfsChecker.o \
build/us/src/os/sprintf.o \
build/us/src/os/_Printf.o \
build/us/src/os/osViTable.o \
build/us/src/os/osEepromLongWrite.o \
build/us/src/os/__osEPiRawWriteIo.o \
build/us/src/os/osViSetEvent.o \
build/us/src/os/__osGetCurrFaultedThread.o \
build/us/src/os/osCreatePiManager.o \
build/us/src/os/epidma.o \
build/us/src/os/osCartRomInit.o \
build/us/src/os/osPfsFreeBlocks.o \
build/us/src/os/osPfsSearchFile.o \
build/us/src/os/__osAtomicDec.o \
build/us/src/os/osViBlack.o \
build/us/src/os/__osViInit.o \
build/us/src/os/osEepromWrite.o \
build/us/src/os/osAiSetFrequency.o \
build/us/src/os/__osEPiRawReadIo.o \
build/us/src/os/guLookAtRef.o \
build/us/src/os/guPerspectiveF.o \
build/us/src/os/contramwrite.o \
build/us/src/os/osGetTime.o \
build/us/src/os/__osViSwapContext.o \
build/us/src/os/alBnkfNew.o \
build/us/src/os/__osSpSetStatus.o \
build/us/src/os/osPfsReadWriteFile.o \
build/us/src/os/osPiStartDma.o \
build/us/src/os/osRecvMesg.o \
build/us/src/os/osDestroyThread.o \
build/us/src/os/string.o \
build/us/src/os/__osSiRawWriteIo.o \
build/us/src/os/osPfsInit.o \
build/us/src/os/guMtxCatF.o \
build/us/src/os/osPfsIsPlug.o \
build/us/src/os/__osDequeueThread.o \
build/us/src/os/__osSiCreateAccessQueue.o \
build/us/src/os/osViSwapBuffer.o \
build/us/src/os/is_debug.o \
build/us/src/os/__osViGetCurrentContext.o \
build/us/src/os/__osPiCreateAccessQueue.o \
build/us/src/os/__osSpRawStartDma.o \
build/us/src/os/__osSyncPutChars.o \
build/us/src/os/osSendMesg.o \
build/us/src/os/osSyncPrintf.o \
build/us/src/os/__osResetGlobalIntMask.o \
build/us/src/os/guScaleF.o \
build/us/src/os/osSetThreadPri.o \
build/us/src/os/__osDevMgrMain.o \
build/us/src/os/osVirtualToPhysical.o \
build/us/src/os/osViSetMode.o \
build/us/src/os/__osSetHWIntrRoutine.o \
build/us/src/os/osCreateViManager.o \
build/us/src/os/__osSiRawStartDma.o \
build/us/src/os/guNormalize.o \
build/us/src/os/osLeoDiskInit.o \
build/us/src/os/__osSpGetStatus.o \
build/us/src/os/osEepromLongRead.o \
build/us/src/os/_Ldtob.o \
build/us/src/os/guMtxF2L.o \
build/us/src/os/osEPiRawStartDma.o \
build/us/src/os/osPiGetCmdQueue.o \
build/us/src/os/osAiGetLength.o \
build/us/src/os/osViSetSpecialFeatures.o \
build/us/src/os/osCreateThread.o \
build/us/src/os/osTimer.o \
build/us/src/os/osEepromProbe.o \
build/us/src/os/__osSetGlobalIntMask.o \
build/us/src/os/guTranslateF.o \
build/us/src/os/math/llconv.o \
build/us/src/os/math/cosf.o \
build/us/src/os/math/llmuldiv.o \
build/us/src/os/math/sinf.o \
build/us/assets/code/common_data/common_data.o\
build/us/assets/code/common_data/common_data.mio0.o\
+1 -1
View File
@@ -12,7 +12,7 @@
#include "audio/port_eu.h"
#include "code_800029B0.h"
#include "code_80005FD0.h"
#include "code_80091750.h"
#include "menu_items.h"
#include <stdbool.h>
#include "port/Game.h"
+1 -1
View File
@@ -23,7 +23,7 @@ typedef struct {
/*
* In render_player, spawn_players, and staff_ghosts D_802BFB80 is the arraySize8 entry
* But in code_80091750 its the arraySize4 entry
* But in menu_items its the arraySize4 entry
* The only way to unify those 2 things is to use a union
*/
typedef union {
+1 -1
View File
@@ -13,7 +13,7 @@
#include <defines.h>
#include "collision.h"
#include "memory.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "skybox_and_splitscreen.h"
#include "code_8006E9C0.h"
#include "spawn_players.h"
+4 -4
View File
@@ -27,7 +27,7 @@
#include <common_structs.h>
#include "main.h"
#include "menus.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "audio/external.h"
#include "ending/podium_ceremony_actors.h"
#include "spawn_players.h"
@@ -3553,7 +3553,7 @@ void func_8000F628(void) {
}
}
}
if ((D_8018EE08 == 1) && (GetCourse() != GetPodiumCeremony())) {
if ((gDemoUseController == 1) && (GetCourse() != GetPodiumCeremony())) {
for (i = 0; i < NUM_PLAYERS; i++) {
D_80163330[i] = 0;
}
@@ -3605,7 +3605,7 @@ void func_8000F628(void) {
D_8016348C = 0;
D_801634EC = 0;
func_8001AB00();
if (D_8018EE08 == 1) {
if (gDemoUseController == 1) {
if (gDemoMode == 1) {
for (i = 0; i < NUM_PLAYERS; i++) {
@@ -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;
}
-1
View File
@@ -521,7 +521,6 @@ extern s32 D_8018D1D4;
// extern s32 D_8018D1D8; -> objects.h
extern s32 D_8018D1DC;
extern u8* D_8018D1E0;
extern f32 D_8018D1E8;
extern s32 D_8018D1EC;
// extern s32 D_8018D1F0; -> objects.h
-1
View File
@@ -77,7 +77,6 @@ s32 D_8018D1D0;
s32 D_8018D1D4;
s32 D_8018D1D8;
s32 D_8018D1DC;
u8* D_8018D1E0;
UNUSED s32 D_8018D1E4;
f32 D_8018D1E8;
s32 D_8018D1EC;
+9 -7
View File
@@ -23,7 +23,7 @@
#include "menus.h"
#include <assets/other_textures.h>
#include "render_objects.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "src/data/some_data.h"
#include "effects.h"
#include <assets/boo_frames.h>
@@ -117,7 +117,10 @@ void clear_object_list() {
objectListSize = -1;
}
u8* func_8006ED94(u8* devAddr, u8* baseAddress, u32 size, u32 offset) {
/**
* Dma's mario kart 64 logo and course outline textures.
*/
u8* dma_misc_textures(u8* devAddr, u8* baseAddress, u32 size, u32 offset) {
#ifdef TARGET_N64
u8** tempAddress;
u8* address;
@@ -139,9 +142,8 @@ u8* func_8006ED94(u8* devAddr, u8* baseAddress, u32 size, u32 offset) {
return baseAddress;
}
// Stubbed because load texture directly.
void load_mario_kart_64_logo(void) {
u8* d_gTextureLogoMarioKart64 = LOAD_ASSET(gTextureLogoMarioKart64);
D_8018D1E0 = func_8006ED94((u8*) d_gTextureLogoMarioKart64, (u8*) D_8018D9B0, 0x79E1, 0x20000);
}
// Some kind of initalization for the Item Window part of the HUD
@@ -175,7 +177,7 @@ void func_8006EF60(void) {
s16 huh;
u8* wut;
wut = D_8018D9B4 + 0xFFFF0000;
wut = gMenuCompressedBuffer + 0xFFFF0000;
// clang-format off
// God forgive me for my sins...
huh = 0x14; if (0) {} for (i = 0; i < huh; i++) { D_8018D248[i] = CourseManager_GetProps()->MinimapTexture; wut += ResourceGetTexSizeByName(CourseManager_GetProps()->MinimapTexture); }
@@ -382,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;
+1 -1
View File
@@ -8,7 +8,7 @@ void init_hud(void);
void reset_object_variable(void);
void func_8006EB10(void);
void clear_object_list(void);
u8* func_8006ED94(u8*, u8*, u32, u32);
u8* dma_misc_textures(u8*, u8*, u32, u32);
void load_mario_kart_64_logo(void);
void init_item_window(s32);
void func_8006EEE8(s32);
-619
View File
@@ -1,619 +0,0 @@
#ifndef CODE_80091750_H
#define CODE_80091750_H
#include <common_structs.h>
#include "textures.h"
#include "main.h"
#ifdef __cplusplus
extern "C" {
#endif
extern u32 _course_mario_raceway_dl_mio0SegmentRomStart[];
/* File specific types */
/*
Known `types` for `struct_8018D9E0_entry`
0x53: "Mushroom Cup" box on the cup selection screen
0x54: "Flower Cup" box on the cup selection screen
0x55: "Star Cup" box on the cup selection screen
0x56: "Special Cup" box on the cup selection screen
0x5E: A box of static over the course images as the cup selection screen loads in.
It is near unnoticeable though as in practice it doesn't last long enough to be seen.
Try locking the word at `8018DC80` to see something like 0x20 just before confirming character selection to make
it last longer See `func_80096CD8` for the actual drawing of the static
*/
typedef struct {
/* 0x00 */ s32 type; // id maybe?
/* 0x04 */ s32 cursor; // sound mode, maybe some other stuff
/* 0x08 */ s32 unk8; // This is used but I can't tell what for
/* 0x0C */ s32 column;
/* 0x10 */ s32 row;
/* 0x14 */ u8 priority; // priority/depth/z-level. Higher values are drawn on top of lower values
// If equal, later entries in D_8018D9E0 are on top
/* 0x15 */ u8 visible; // active? If 1 its displayed, if 0 its not
// These seem to be generic space available for use by the struct, no 1 purpose for any given member
/* 0x16 */ s16 unk16; // Potentially unused
/* 0x18 */ s32 D_8018DEE0_index; // Index in D_8018DEE0, an array of some other struct type
/* 0x1C */ s32 unk1C; // Multi use. Sometimes cup selection, sometimes course index.
/* 0x20 */ s32 unk20; // Multi use, hard to tell what for though. Sometimes a random number, sometimes GP points
/* 0x24 */ f32 unk24; // Multi use, x scaling for some things, rotation multiplier for the question box in some
// menus, probably some other things
} struct_8018D9E0_entry; // size = 0x28
typedef struct {
/* 0x00 */ MkAnimation* textureSequence;
/* 0x04 */ s32 sequenceIndex; // Index in textureSequence that the animation is currently on
/* 0x08 */ s32 frameCountDown; // Frames left for the given animation part
/* 0x0C */ u32 visible; // visbile if 0x80000000, otherwise invisbile AND paused
/* 0x10 */ s32 D_8018E118_index; // Don't know what D_8018E118 tracks
/* 0x14 */ s32 unk14; // Flip flops between 0 and 1, use unknown
} struct_8018DEE0_entry; // size = 0x18
typedef struct {
/* 0x0 */ MkTexture* texture;
/* 0x4 */ s32 unk_4;
} struct_8018E060_entry; // size = 0x8
typedef struct {
/* 0x0 */ MkTexture* mk64Texture;
/* 0x4 */ s16 unk4;
/* 0x6 */ s16 unk6;
} struct_8018E0E8_entry; // size = 0x8
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 D_8018D9B0.
* This value is (roughly) the sum of (width * height) of the
* textures in all the previous entries in D_8018E118
*/
/* 0x04 */ s32 offset;
} struct_8018E118_entry; // size = 0x08
typedef struct {
/* 0x00 */ MkTexture* textures;
/* 0x04 */ Gfx* displayList;
} struct_8018E768_entry; // size = 0x08
struct UnkStruct_8018E7E8 {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ s16 unk1;
/* 0x6 */ s16 unk2;
}; // size = 0x8
typedef struct {
/* 0x00 */ s16 column;
/* 0x02 */ s16 row;
/* 0x04 */ s16 pad0;
/* 0x06 */ s16 pad1;
} Unk_D_800E70A0; // size = 0x08
/* Function Prototypes */
f64 exponent_by_squaring(f64, s32);
f64 func_800917B0(f64, f64);
f64 func_8009186C(f64);
f64 func_8009195C(f64);
f64 func_80091A6C(f64, s32);
f64 func_80091AC0(f64, s32*);
void swap_values(s32*, s32*);
s32 func_80091D74(void);
void func_80091EE4(void);
void func_80091FA4(void);
void func_80092148(void);
void func_800921B4(void);
void text_rainbow_effect(s32, s32, s32);
void set_text_color_rainbow_if_selected(s32, s32, s32);
void func_80092258(void);
void func_80092290(s32, s32*, s32*);
void func_80092500(void);
void func_80092564(void);
void func_800925A0(void);
void func_800925CC(void);
void func_80092604(void);
void func_80092630(void);
void func_8009265C(void);
void func_80092688(void);
void func_80092C80(void);
s32 char_to_glyph_index(char*);
s32 func_80092DF8(char*);
s32 func_80092E1C(char*);
s32 func_80092EE4(char*);
s32 get_string_width(char*);
void set_text_color(s32);
void func_800930E4(s32, s32, char*);
void print_text0(s32, s32, char*, s32, f32, f32, s32);
void func_80093324(s32, s32, char*, s32, f32, f32);
void func_80093358(s32, s32, char*, s32, f32, f32);
void print_text1(s32, s32, char*, s32, f32, f32, s32);
void func_800936B8(s32, s32, char*, s32, f32, f32);
void draw_text(s32, s32, char*, s32, f32, f32);
void func_80093720(s32, s32, char*, s32, f32, f32);
void func_80093754(s32, s32, char*, s32, f32, f32);
void print_text2(s32, s32, char*, s32, f32, f32, s32);
void func_800939C8(s32, s32, char*, s32, f32, f32);
void text_draw(s32, s32, char*, s32, f32, f32);
void func_80093A30(s32);
void func_80093A5C(u32);
void func_80093B70(u32);
void func_80093C1C(s32);
void func_80093C88(void);
void func_80093C90(void);
void func_80093C98(s32);
void func_80093E20(void);
void func_80093E40(void);
void func_80093E60(void);
void func_80093F10(void);
void func_800940EC(s32);
void func_800942D0(void);
void func_80094660(struct GfxPool*, s32);
void render_checkered_flag(struct GfxPool*, s32);
void func_80094A64(struct GfxPool*);
void render_menus(void);
void func_80095574(void);
Gfx* draw_flash_select_case(Gfx*, s32, s32, s32, s32, s32);
Gfx* draw_flash_select_case_slow(Gfx*, s32, s32, s32, s32);
Gfx* draw_flash_select_case_fast(Gfx*, s32, s32, s32, s32);
Gfx* func_800959F8(Gfx*, Vtx*);
Gfx* func_80095BD0(Gfx*, u8*, f32, f32, u32, u32, f32, f32);
Gfx* func_80095E10(Gfx*, s8, s32, s32, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
Gfx* func_800963F0(Gfx*, s8, s32, s32, f32, f32, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
Gfx* func_80096CD8(Gfx*, s32, s32, u32, u32);
Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8,
s32 arg9, u16* argA, u32 argB, u32 argC, s32 argD);
Gfx* func_80097A14(Gfx*, s8, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
Gfx* func_80097AE4(Gfx*, s8, s32, s32, u8*, s32);
Gfx* func_80097E58(Gfx* displayListHead, s8 fmt, u32 arg2, u32 arg3, u32 arg4, u32 arg5, s32 arg6, s32 arg7,
u8* someTexture, u32 arg9, u32 argA, s32 width);
Gfx* func_80098558(Gfx*, u32, u32, u32, u32, u32, u32, s32, s32);
Gfx* func_800987D0(Gfx*, u32, u32, u32, u32, s32, s32, u8*, u32, s32);
Gfx* draw_box_fill(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32);
Gfx* draw_box(Gfx*, s32, s32, s32, s32, u32, u32, u32, u32);
Gfx* draw_box_wide(Gfx*, s32, s32, s32, s32, u32, u32, u32, u32);
Gfx* func_80098FC8(Gfx*, s32, s32, s32, s32);
void dma_copy_base_729a30(u64*, size_t, void*);
void dma_copy_base_7fa3c0(u64*, size_t, void*);
void func_80099110(void);
void load_menu_img(MkTexture*);
void* segmented_to_virtual_dupe(const void*);
void* segmented_to_virtual_dupe_2(const void*);
void load_img_wrap(MkTexture*);
void load_menu_img2(MkTexture*, s32);
void func_80099958(MkTexture*, s32, s32);
void func_80099E54(void);
void func_80099E60(MkTexture*, s32, s32);
void func_80099EC4(void);
void func_80099A70(void);
void func_80099A94(MkTexture*, s32);
void func_80099AEC(void);
void func_8009A238(MkTexture*, s32);
void func_8009A2F0(struct_8018E0E8_entry*);
void func_8009A344(void);
s32 animate_character_select_menu(MkAnimation*);
s32 func_8009A478(MkAnimation*, s32);
void func_8009A594(s32, s32, MkAnimation*);
void func_8009A640(s32, s32, s32, MkAnimation*);
void func_8009A6D4(void);
void func_8009A76C(s32, s32, s32, s32);
void func_8009A7EC(s32, s32, s32, s32, s32);
MkTexture* func_8009A878(struct_8018DEE0_entry*);
MkTexture* func_8009A944(struct_8018DEE0_entry*, s32);
void func_8009A9FC(s32, s32, u32, s32);
void func_8009AB7C(s32);
void func_8009AD78(s32, s32);
void convert_img_to_greyscale(s32, u32);
void adjust_img_colour(s32, s32, s32, s32, s32);
u16* func_8009B8C4(u64*);
void func_8009B938(void);
void func_8009B954(MkTexture*);
void func_8009B998(void);
Gfx* func_8009B9D0(Gfx*, MkTexture*);
Gfx* func_8009BA74(Gfx*, MkTexture*, s32, s32);
Gfx* func_8009BC9C(Gfx*, MkTexture*, s32, s32, s32, s32);
Gfx* print_letter(Gfx*, MkTexture*, f32, f32, s32, f32, f32);
Gfx* func_8009C204(Gfx*, MkTexture*, s32, s32, s32);
Gfx* func_8009C434(Gfx*, struct_8018DEE0_entry*, s32, s32, s32);
Gfx* func_8009C708(Gfx*, struct_8018DEE0_entry*, s32, s32, s32, s32);
void func_8009C918(void);
void func_8009CA2C(void);
void func_8009CA6C(s32);
void func_8009CBE4(s32, s32, s32);
void func_8009CDDC(s32, s32);
void func_8009CDFC(s32, s32);
void func_8009CE1C(void);
void func_8009CE64(s32);
void func_8009D77C(s32, s32, s32);
void func_8009D958(s32, s32);
void func_8009D978(s32, s32);
void func_8009D998(s32);
void func_8009DAA8(void);
void func_8009DB8C(void);
void func_8009DEF8(u32, u32);
void func_8009DF4C(s32);
void func_8009DF6C(s32);
void func_8009DF8C(u32, u32);
void func_8009DFE0(s32);
void func_8009E000(s32);
void func_8009E020(s32, s32);
void func_8009E088(s32, s32);
void func_8009E0F0(s32);
void func_8009E1C0(void);
void func_8009E1E4(void);
void func_8009E208(void);
void func_8009E230(void);
void func_8009E258(void);
void func_8009E280(void);
void func_8009E2A8(s32);
void func_8009E2F0(s32);
void func_8009E5BC(void);
void func_8009E5FC(s32);
void func_8009E620(void);
void add_ui_element(s32, s32, s32, s8);
void func_8009F5E0(struct_8018D9E0_entry*);
void func_800A08D8(u8, s32, s32);
s32 func_800A095C(char*, s32, s32, s32);
void func_800A09E0(struct_8018D9E0_entry*);
void func_800A0AD0(struct_8018D9E0_entry*);
void func_800A0B80(struct_8018D9E0_entry*);
void func_800A0DFC(void);
void func_800A0EB8(struct_8018D9E0_entry*, s32);
void func_800A0FA4(struct_8018D9E0_entry*, s32);
void func_800A10CC(struct_8018D9E0_entry*);
void func_800A11D0(struct_8018D9E0_entry*, s32, s32);
void func_800A12BC(struct_8018D9E0_entry*, MkTexture*);
void func_800A1350(struct_8018D9E0_entry*);
void func_800A143C(struct_8018D9E0_entry*, s32);
void func_800A1500(struct_8018D9E0_entry*);
void func_800A15EC(struct_8018D9E0_entry*);
void func_800A1780(struct_8018D9E0_entry*);
void func_800A1924(struct_8018D9E0_entry*);
void func_800A1A20(struct_8018D9E0_entry*);
void func_800A1BE0(struct_8018D9E0_entry*);
void func_800A1DE0(struct_8018D9E0_entry*);
void func_800A1F30(struct_8018D9E0_entry*);
void func_800A1FB0(struct_8018D9E0_entry*);
void func_800A2D1C(struct_8018D9E0_entry*);
void func_800A2EB8(struct_8018D9E0_entry*);
void func_800A32B4(s32, s32, s32, s32);
void func_800A34A8(struct_8018D9E0_entry*);
void func_800A3A10(s8*);
void func_800A3ADC(struct_8018D9E0_entry*, s32, s32, s32, s32, s8*);
void func_800A3C84(struct_8018D9E0_entry*);
void func_800A3E60(struct_8018D9E0_entry*);
void func_800A4550(s32, s32, s32);
void func_800A474C(s32, s32, s32);
void func_800A4A24(struct_8018D9E0_entry*);
void render_pause_menu(struct_8018D9E0_entry*);
void render_pause_menu_time_trials(struct_8018D9E0_entry*);
void render_pause_menu_versus(struct_8018D9E0_entry*);
void render_pause_grand_prix(struct_8018D9E0_entry*);
void render_pause_battle(struct_8018D9E0_entry*);
void func_800A54EC(void);
void func_800A5738(struct_8018D9E0_entry*);
void func_800A6034(struct_8018D9E0_entry*);
void func_800A6154(struct_8018D9E0_entry*);
void func_800A638C(struct_8018D9E0_entry*);
void func_800A66A8(struct_8018D9E0_entry*, Unk_D_800E70A0*);
void func_800A69C8(struct_8018D9E0_entry*);
void func_800A6BEC(struct_8018D9E0_entry*);
void func_800A6CC0(struct_8018D9E0_entry*);
void func_800A6D94(s32, s32, u8*);
void func_800A6E94(s32, s32, u8*);
void func_800A70E8(struct_8018D9E0_entry*);
void func_800A7258(struct_8018D9E0_entry*);
void func_800A72FC(struct_8018D9E0_entry*);
void func_800A7448(struct_8018D9E0_entry*);
void func_800A75A0(struct_8018D9E0_entry*);
void func_800A761C(struct_8018D9E0_entry*);
void func_800A7790(struct_8018D9E0_entry*);
void convert_number_to_ascii(s32, char*);
void write_dashes(char*);
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 func_800A8230(void);
void func_800A8250(void);
void func_800A8270(s32, struct_8018D9E0_entry*);
void func_800A8564(struct_8018D9E0_entry*);
void func_800A86E8(struct_8018D9E0_entry*);
void func_800A874C(struct_8018D9E0_entry*);
void func_800A890C(s32, struct_8018D9E0_entry*);
void func_800A8A98(struct_8018D9E0_entry*);
void func_800A8CA4(struct_8018D9E0_entry*);
void func_800A8E14(struct_8018D9E0_entry*);
void func_800A8EC0(struct_8018D9E0_entry*);
void func_800A8F48(struct_8018D9E0_entry*);
void func_800A90D4(s32, struct_8018D9E0_entry*);
void func_800A91D8(struct_8018D9E0_entry*, s32, s32);
void func_800A9208(struct_8018D9E0_entry*, s32);
void func_800A9278(struct_8018D9E0_entry*, s32);
void func_800A92E8(struct_8018D9E0_entry*, s32);
void func_800A939C(struct_8018D9E0_entry*, s32);
void func_800A940C(struct_8018D9E0_entry*, s32);
void func_800A94C8(struct_8018D9E0_entry*, s32, s32);
void func_800A954C(struct_8018D9E0_entry*);
void func_800A9710(struct_8018D9E0_entry*);
void func_800A97BC(struct_8018D9E0_entry*);
void func_800A9A98(struct_8018D9E0_entry*);
void func_800A9B9C(struct_8018D9E0_entry*);
void func_800A9C40(struct_8018D9E0_entry*);
void func_800A9D5C(struct_8018D9E0_entry*);
void func_800A9E58(struct_8018D9E0_entry*);
void func_800AA280(struct_8018D9E0_entry*);
void func_800AA2EC(struct_8018D9E0_entry*);
void func_800AA5C8(struct_8018D9E0_entry*, s8);
void func_800AA69C(struct_8018D9E0_entry*);
void func_800AAA9C(struct_8018D9E0_entry*);
void func_800AAB90(struct_8018D9E0_entry*);
void func_800AAC18(struct_8018D9E0_entry*);
void func_800AADD4(struct_8018D9E0_entry*);
void func_800AAE18(struct_8018D9E0_entry*);
struct_8018D9E0_entry* func_800AAE68(void);
struct_8018D9E0_entry* func_800AAEB4(s32);
struct_8018D9E0_entry* find_8018D9E0_entry_dupe(s32);
struct_8018D9E0_entry* find_8018D9E0_entry(s32);
s32 func_800AAF70(s32);
void func_800AAF94(struct_8018D9E0_entry*, s32);
s32 func_800AAFCC(s32);
void func_800AB020(struct_8018D9E0_entry*);
void func_800AB098(struct_8018D9E0_entry*);
void func_800AB164(struct_8018D9E0_entry*);
void func_800AB260(struct_8018D9E0_entry*);
void func_800AB290(struct_8018D9E0_entry*);
void func_800AB314(struct_8018D9E0_entry*);
void func_800AB904(struct_8018D9E0_entry*);
void func_800AB9B0(struct_8018D9E0_entry*);
void func_800ABAE8(struct_8018D9E0_entry*);
void func_800ABB24(struct_8018D9E0_entry*);
void func_800ABBCC(struct_8018D9E0_entry*);
void func_800ABC38(struct_8018D9E0_entry*);
void func_800ABCF4(struct_8018D9E0_entry*);
void func_800ABEAC(struct_8018D9E0_entry*);
void func_800ABF68(struct_8018D9E0_entry*);
void func_800AC128(struct_8018D9E0_entry*);
void func_800AC300(struct_8018D9E0_entry*);
void func_800AC324(struct_8018D9E0_entry*);
void func_800AC458(struct_8018D9E0_entry*);
void func_800AC978(struct_8018D9E0_entry*);
void func_800ACA14(struct_8018D9E0_entry*);
void func_800ACC50(struct_8018D9E0_entry*);
void func_800ACF40(struct_8018D9E0_entry*);
void func_800AD1A4(struct_8018D9E0_entry*);
void func_800AD2E8(struct_8018D9E0_entry*);
void func_800ADF48(struct_8018D9E0_entry*);
void func_800AE218(struct_8018D9E0_entry*);
void func_800AEC54(struct_8018D9E0_entry*);
void func_800AEDBC(struct_8018D9E0_entry*);
void func_800AEE90(struct_8018D9E0_entry*);
void func_800AEEBC(struct_8018D9E0_entry*);
void func_800AEEE8(struct_8018D9E0_entry*);
void func_800AEF14(struct_8018D9E0_entry*);
void func_800AEF74(struct_8018D9E0_entry*);
void func_800AF004(struct_8018D9E0_entry*);
void func_800AF1AC(struct_8018D9E0_entry*);
void func_800AF270(struct_8018D9E0_entry*);
void func_800AF480(struct_8018D9E0_entry*);
void func_800AF4DC(struct_8018D9E0_entry*);
void func_800AF740(struct_8018D9E0_entry*);
// This really, really shouldn't be in this header file, but I don't know where else to put it
void rmonPrintf(const char*, ...);
void tkmk00decode(u8*, u8*, u8*, s32);
/* File specific defines */
#define D_8018D9E0_SIZE 0x20
#define D_8018DEE0_SIZE 0x10
#define D_8018E060_SIZE 0x10
#define D_8018E0E8_SIZE 0x05
#define D_8018E118_SIZE 0xC8
#define D_8018E768_SIZE 0x08
#define D_8018E7E8_SIZE 0x05
#define D_8018E810_SIZE 0x05
/* This is where I'd put my static data, if I had any */
extern s32 D_800DDB24;
extern s16 D_80164478[];
extern u16* D_8018D9B0;
extern u8* D_8018D9B4;
extern u8* D_8018D9B8;
extern u8* D_8018D9BC;
extern void* D_8018D9C0;
extern s8 gGPPointsByCharacterId[8];
extern s8 gCharacterIdByGPOverallRank[];
extern s8 D_8018D9D8;
extern s8 D_8018D9D9;
extern struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE];
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 gMenuTextureBufferIndex;
extern struct_8018E118_entry D_8018E118[D_8018E118_SIZE];
extern s32 gNumD_8018E118Entries;
extern Gfx* D_8018E75C;
extern s32 gNumD_8018E768Entries;
extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE];
extern s32 gCycleFlashMenu;
extern s8 D_8018E7AC[];
extern u32 D_8018E7B8[];
extern u32 D_8018E7D0[];
extern struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE];
extern struct UnkStruct_8018E7E8 D_8018E810[D_8018E810_SIZE];
extern s8 gTextColor;
extern u8 D_8018ED90;
extern u8 D_8018ED91;
extern s8 D_8018E838[];
extern s32 D_8018E840[];
extern s32 D_8018E850[];
extern s32 D_8018E854;
extern s32 D_8018E858[];
extern s32 D_8018E85C;
// extern u8 _textures_0aSegmentRomStart[];
// extern u8 _textures_0bSegmentRomStart[];
extern Unk_D_800E70A0 D_800E70A0[];
extern Unk_D_800E70A0 D_800E70E8[];
extern Unk_D_800E70A0 D_800E7108[][4];
extern Unk_D_800E70A0 D_800E7148[];
extern Unk_D_800E70A0 D_800E7168[];
extern Unk_D_800E70A0 D_800E7188[];
extern Unk_D_800E70A0 D_800E7208[][2];
extern Unk_D_800E70A0 D_800E7248[];
extern Unk_D_800E70A0 D_800E7258[];
extern Unk_D_800E70A0 D_800E7268[];
extern Unk_D_800E70A0 D_800E7278[];
extern Unk_D_800E70A0 D_800E72F8;
extern Unk_D_800E70A0 D_800E7300[];
extern Unk_D_800E70A0 D_800E7360[];
extern Unk_D_800E70A0 D_800E7380[];
extern Unk_D_800E70A0 D_800E7390[];
extern Unk_D_800E70A0 D_800E73C0[];
extern Unk_D_800E70A0 D_800E73D0[];
extern Unk_D_800E70A0 D_800E73E0[];
extern Unk_D_800E70A0 D_800E7410[];
extern Unk_D_800E70A0 D_800E7420[];
extern Unk_D_800E70A0 D_800E7430[];
extern Unk_D_800E70A0 D_800E7458[];
extern Unk_D_800E70A0 D_800E7480[];
extern RGBA16 D_800E74A8[];
extern RGBA16 D_800E74D0[];
extern RGBA16 D_800E74E8[];
extern const s16 gGlyphDisplayWidth[];
extern char* gCupNames[];
extern const s8 D_800EFD64[];
extern char* D_800E7678[];
extern char* gDebugCharacterNames[];
extern char* D_800E76A8[];
extern char* D_800E76CC[];
extern char* D_800E76DC[];
extern char* gDebugScreenModeNames[];
extern char* gDebugSoundModeNames[];
extern char* gSoundModeNames[]; // D_800E7710
extern char* D_800E7720[];
extern char* D_800E7728[];
extern char* D_800E7730;
extern char* D_800E7734[];
extern char* D_800E7744[];
extern char* gTextPauseButton[];
extern char* D_800E7778[];
extern char D_800E7780[];
extern char* D_800E77A0[];
extern char* D_800E77A8[];
extern char D_800E77B4[];
extern char D_800E77D8[];
extern char* D_800E7834[];
extern char* D_800E7840[];
extern char* D_800E7848[];
extern char* D_800E7860[];
extern char* D_800E7868[];
extern char* D_800E7878[];
extern char* D_800E7884[];
extern char* D_800E7890[];
extern char* D_800E78D0[];
extern char* D_800E7900[];
extern char* D_800E7918[];
extern char* D_800E7920[];
extern char* D_800E7928[];
extern char* D_800E7930[];
extern char* D_800E7938[];
extern char* D_800E7940[];
extern char* D_800E7980[];
extern char* D_800E798C[];
extern char* D_800E7A34[];
extern char* D_800E7A3C[];
extern char* D_800E7A44;
extern char* D_800E7A48[];
extern char* D_800E7A54[];
extern char* D_800E7A60[];
extern char* D_800E7A6C[];
extern char* D_800E7A74[];
extern char* D_800E7A80[];
extern char* D_800E7A88[];
extern char* D_800E7A98;
extern char* D_800E7A9C[];
extern char* D_800E7AA4[];
extern const s8 gGPPointRewards[];
extern const s8 D_800F0B1C[];
extern const s8 D_800F0B28[];
extern const s8 D_800F0B50[];
extern const s8 D_800F0B54[];
extern RGBA16 D_800E7AC8[];
extern RGBA16 D_800E7AE8[];
extern MkTexture* D_800E7AF8[];
extern MkTexture* D_800E7D0C[];
extern MkAnimation* D_800E7D34[];
extern MkTexture* D_800E7D4C[];
extern MkTexture* D_800E7D54[];
extern MkTexture* D_800E7D74[];
extern MkTexture* D_800E7DC4[];
extern MkAnimation* D_800E7E14[];
extern MkAnimation* D_800E7E20[];
extern MkAnimation* D_800E7E34[];
extern MkTexture* gGlyphTextureLUT[];
extern MkTexture* D_800E7FF0[];
extern MkTexture* D_800E80A0[];
extern MkTexture* D_800E8114[];
extern MkTexture* D_800E8174[];
extern MkTexture* D_800E817C[];
extern MkTexture* D_800E81E4[];
extern MkTexture* D_800E822C[];
extern MkTexture* D_800E8234[];
extern MkTexture* D_800E824C[];
extern MkTexture* D_800E8254[];
extern MkTexture* D_800E8274[];
extern MkTexture* D_800E8294[];
extern MkTexture* D_800E82B4[];
extern MkTexture* D_800E82C4[];
extern MkTexture* D_800E82F4[];
extern MkAnimation* D_800E8320[];
extern MkAnimation* D_800E8340[];
extern MkAnimation* D_800E8360[];
extern MkAnimation* gCharacterCelebrateAnimation[];
extern MkAnimation* D_800E83A0[];
extern MkAnimation* gCharacterDeselectAnimation[];
extern MkAnimation* gCharacterSingleBlinkAnimation[];
extern MkAnimation* gCharacterDoubleBlinkAnimation[];
extern MkAnimation* gCharacterDefeatAnimation[];
extern s32 D_800E8440[];
extern s32 D_800E8460[];
extern s32 D_800E8480[];
extern s32 D_800E84A0[];
extern Vtx* D_800E84C0[];
extern Gfx* D_800E84CC[];
extern Gfx* D_800E84EC[];
extern Gfx* D_800E850C[];
extern s8 D_800E852C;
extern f32 D_800E8530;
extern f32 D_800E8534;
extern Unk_D_800E70A0 D_800E8538[];
extern Unk_D_800E70A0 D_800E8540[];
extern Unk_D_800E70A0 D_800E85C0[];
extern Unk_D_800E70A0 D_800E8600[];
extern s32 gControllerPak1NumPagesFree;
extern s32 gControllerPak1FileNote;
extern s32 gControllerPak2FileNote;
extern f32 D_8018ED98;
extern f32 D_8018ED9C;
extern f32 D_8018EDA0;
extern f32 D_8018EDA4;
extern f32 D_8018EDA8;
extern f32 D_8018EDAC;
#ifdef __cplusplus
}
#endif
#endif
+1 -1
View File
@@ -4,7 +4,7 @@
#include "code_800AF9B0.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "memory.h"
#include "main.h"
#include "math_util.h"
+2547 -2547
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -22,7 +22,7 @@
#include <code_80086E70.h>
#include <effects.h>
#include <code_80091440.h>
#include <code_80091750.h>
#include <menu_items.h>
#include <code_800AF9B0.h>
#include <save.h>
#include <code_80280000.h>
+1 -1
View File
@@ -16,7 +16,7 @@
#include "effects.h"
#include "audio/external.h"
#include "spawn_players.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "port/Game.h"
s32 D_8018D900[8];
+1 -1
View File
@@ -18,7 +18,7 @@
#include "audio/external.h"
#include <sounds.h>
#include "podium_ceremony_actors.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "code_80057C60.h"
#include "defines.h"
+1 -1
View File
@@ -13,7 +13,7 @@
#include "code_80280000.h"
#include "code_80281780.h"
#include "skybox_and_splitscreen.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "code_8006E9C0.h"
#include "code_800029B0.h"
#include "ceremony_and_credits.h"
+1 -1
View File
@@ -17,7 +17,7 @@
#include "collision.h"
#include "code_80281C40.h"
#include "code_800029B0.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "main.h"
#include "menus.h"
#include "render_courses.h"
+1 -1
View File
@@ -7,7 +7,7 @@
#include "skybox_and_splitscreen.h"
#include "render_objects.h"
#include "code_80057C60.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "podium_ceremony_actors.h"
#include "ceremony_and_credits.h"
#include "podium_ceremony_actors.h"
+1 -1
View File
@@ -1,7 +1,7 @@
#include "credits.h"
#include "defines.h"
struct_802850C0_entry D_802850C0[] = {
CreditsRenderInfo gTextCreditsRenderInfo[] = {
{ 0.80f, -200, 38, 160, 30, SLIDE_RIGHT, TEXT_BLUE_GREEN_RED_CYCLE_1, 0 },
{ 0.90f, 520, 200, 160, 200, SLIDE_LEFT, TEXT_BLUE, 0 },
{ 0.80f, -200, 38, 160, 30, SLIDE_RIGHT, TEXT_BLUE_GREEN_RED_CYCLE_1, 0 },
+2 -2
View File
@@ -19,9 +19,9 @@ typedef struct {
/* 0x0C */ s8 slideDirection; // 0 for slide right, 1 for slide left. May have other uses/effects
/* 0x0D */ s8 textColor;
/* 0x0E */ s16 padding; // Always seems to be 0, never read (that I can see)
} struct_802850C0_entry; // size = 0x10
} CreditsRenderInfo; // size = 0x10
extern struct_802850C0_entry D_802850C0[]; // D_802850C0
extern CreditsRenderInfo gTextCreditsRenderInfo[]; // gTextCreditsRenderInfo
extern char* gCreditsText[];
#endif
+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;
}
+1 -1
View File
@@ -14,7 +14,7 @@ extern "C" {
#include "engine/Matrix.h"
#include "render_objects.h"
#include "code_80086E70.h"
#include "code_80091750.h"
#include "menu_items.h"
}
OTrophy::OTrophy(const FVector& pos, TrophyType trophy, Behaviour bhv) {
+1 -1
View File
@@ -16,7 +16,7 @@
// #include <filesystem>
// #include <functional>
// #include <main.h>
// #include <code_80091750.h>
// #include <menu_items.h>
// #include <common_data.h>
// #include <data_segment2.h>
// #include <render_objects.h>
+1 -1
View File
@@ -31,7 +31,7 @@
#include "code_800029B0.h"
#include "code_80280000.h"
#include "podium_ceremony_actors.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "code_80057C60.h"
#include "profiler.h"
#include "player_controller.h"
File diff suppressed because it is too large Load Diff
+863
View File
@@ -0,0 +1,863 @@
#ifndef CODE_80091750_H
#define CODE_80091750_H
#include <common_structs.h>
#include "textures.h"
#include "main.h"
#ifdef __cplusplus
extern "C" {
#endif
extern u32 _course_mario_raceway_dl_mio0SegmentRomStart[];
/* File specific types */
/*
Known `types` for `MenuItem`
0x53: "Mushroom Cup" box on the cup selection screen
0x54: "Flower Cup" box on the cup selection screen
0x55: "Star Cup" box on the cup selection screen
0x56: "Special Cup" box on the cup selection screen
0x5E: A box of static over the course images as the cup selection screen loads in.
It is near unnoticeable though as in practice it doesn't last long enough to be seen.
Try locking the word at `8018DC80` to see something like 0x20 just before confirming character selection to make
it last longer See `func_80096CD8` for the actual drawing of the static
*/
typedef struct {
/* 0x00 */ s32 type; // id maybe?
/* 0x04 */ s32 state; // sound mode, maybe some other stuff
/* 0x08 */ s32 subState; // This is used but I can't tell what for
/* 0x0C */ s32 column;
/* 0x10 */ s32 row;
/* 0x14 */ u8 priority; // priority/depth/z-level. Higher values are drawn on top of lower values
// If equal, later entries in gMenuItems are on top
/* 0x15 */ u8 visible; // active? If 1 its displayed, if 0 its not
// These seem to be generic space available for use by the struct, no 1 purpose for any given member
/* 0x16 */ s16 unk16; // Potentially unused
/* 0x18 */ s32 D_8018DEE0_index; // Index in D_8018DEE0, an array of some other struct type
/* 0x1C */ s32 param1; // Multi use. Sometimes cup selection, sometimes course index.
/* 0x20 */ s32 param2; // Multi use, hard to tell what for though. Sometimes a random number, sometimes GP points
/* 0x24 */ f32 paramf; // Multi use, x scaling for some things, rotation multiplier for the question box in some
// menus, probably some other things
} MenuItem; // size = 0x28
typedef struct {
/* 0x00 */ MkAnimation* textureSequence;
/* 0x04 */ s32 sequenceIndex; // Index in textureSequence that the animation is currently on
/* 0x08 */ s32 frameCountDown; // Frames left for the given animation part
/* 0x0C */ u32 visible; // visbile if 0x80000000, otherwise invisbile AND paused
/* 0x10 */ s32 menuTextureIndex; // Don't know what sMenuTextureMap tracks
/* 0x14 */ s32 unk14; // Flip flops between 0 and 1, use unknown
} struct_8018DEE0_entry; // size = 0x18
typedef struct {
/* 0x0 */ MenuTexture* texture;
/* 0x4 */ s32 texNum;
} struct_8018E060_entry; // size = 0x8
typedef struct {
/* 0x0 */ MenuTexture* mk64Texture;
/* 0x4 */ s16 unk4;
/* 0x6 */ s16 unk6;
} struct_8018E0E8_entry; // size = 0x8
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 sMenuTextureList.
* This value is (roughly) the sum of (width * height) of the
* textures in all the previous entries in sMenuTextureMap
*/
/* 0x04 */ s32 offset;
} TextureMap; // size = 0x08
typedef struct {
/* 0x00 */ MenuTexture* textures;
/* 0x04 */ Gfx* displayList;
} struct_8018E768_entry; // size = 0x08
struct UnkStruct_8018E7E8 {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ s16 unk1;
/* 0x6 */ s16 unk2;
}; // size = 0x8
typedef struct {
/* 0x00 */ s16 column;
/* 0x02 */ s16 row;
/* 0x04 */ s16 pad0;
/* 0x06 */ s16 pad1;
} Unk_D_800E70A0; // size = 0x08
enum MENU_ITEM_PRIORITY {
MENU_ITEM_PRIORITY_0,
MENU_ITEM_PRIORITY_1,
MENU_ITEM_PRIORITY_2,
MENU_ITEM_PRIORITY_3,
MENU_ITEM_PRIORITY_4,
MENU_ITEM_PRIORITY_5,
MENU_ITEM_PRIORITY_6,
MENU_ITEM_PRIORITY_7,
MENU_ITEM_PRIORITY_8,
MENU_ITEM_PRIORITY_9,
MENU_ITEM_PRIORITY_A,
MENU_ITEM_PRIORITY_B,
MENU_ITEM_PRIORITY_C,
MENU_ITEM_PRIORITY_D,
MENU_ITEM_PRIORITY_E,
MENU_ITEM_PRIORITY_F,
MENU_ITEM_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,
MAIN_MENU_EXTRA_CC,
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);
f64 func_800917B0(f64, f64);
f64 func_8009186C(f64);
f64 func_8009195C(f64);
f64 func_80091A6C(f64, s32);
f64 func_80091AC0(f64, s32*);
void swap_values(s32*, s32*);
s32 func_80091D74(void);
void func_80091EE4(void);
void func_80091FA4(void);
void func_80092148(void);
void func_800921B4(void);
void text_rainbow_effect(s32, s32, s32);
void set_text_color_rainbow_if_selected(s32, s32, s32);
void func_80092258(void);
void func_80092290(s32, s32*, s32*);
void func_80092500(void);
void func_80092564(void);
void func_800925A0(void);
void func_800925CC(void);
void func_80092604(void);
void func_80092630(void);
void func_8009265C(void);
void func_80092688(void);
void func_80092C80(void);
s32 char_to_glyph_index(char*);
s32 func_80092DF8(char*);
s32 func_80092E1C(char*);
s32 func_80092EE4(char*);
s32 get_string_width(char*);
void set_text_color(s32);
void func_800930E4(s32, s32, char*);
void print_text0(s32, s32, char*, s32, f32, f32, s32);
void print_text_mode_1(s32, s32, char*, s32, f32, f32);
void print_text_mode_2(s32, s32, char*, s32, f32, f32);
void print_text1(s32, s32, char*, s32, f32, f32, s32);
void print_text1_left(s32, s32, char*, s32, f32, f32);
void print_text1_center_mode_1(s32, s32, char*, s32, f32, f32);
void print_text1_right(s32, s32, char*, s32, f32, f32);
void print_text1_center_mode_2(s32, s32, char*, s32, f32, f32);
void print_text2(s32, s32, char*, s32, f32, f32, s32);
void func_800939C8(s32, s32, char*, s32, f32, f32);
void text_draw(s32, s32, char*, s32, f32, f32);
void func_80093A30(s32);
void func_80093A5C(u32);
void func_80093B70(u32);
void func_80093C1C(s32);
void func_80093C88(void);
void func_80093C90(void);
void func_80093C98(s32);
void func_80093E20(void);
void func_80093E40(void);
void func_80093E60(void);
void func_80093F10(void);
void func_800940EC(s32);
void func_800942D0(void);
void func_80094660(struct GfxPool*, s32);
void render_checkered_flag(struct GfxPool*, s32);
void func_80094A64(struct GfxPool*);
void setup_menus(void);
void func_80095574(void);
Gfx* draw_flash_select_case(Gfx*, s32, s32, s32, s32, s32);
Gfx* draw_flash_select_case_slow(Gfx*, s32, s32, s32, s32);
Gfx* draw_flash_select_case_fast(Gfx*, s32, s32, s32, s32);
Gfx* func_800959F8(Gfx*, Vtx*);
Gfx* func_80095BD0(Gfx*, u8*, f32, f32, u32, u32, f32, f32);
Gfx* func_80095E10(Gfx*, s8, s32, s32, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
Gfx* func_800963F0(Gfx*, s8, s32, s32, f32, f32, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
Gfx* func_80096CD8(Gfx*, s32, s32, u32, u32);
Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8,
s32 arg9, u16* argA, u32 argB, u32 argC, s32 argD);
Gfx* func_80097A14(Gfx*, s8, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
Gfx* func_80097AE4(Gfx*, s8, s32, s32, u8*, s32);
Gfx* func_80097E58(Gfx* displayListHead, s8 fmt, u32 arg2, u32 arg3, u32 arg4, u32 arg5, s32 arg6, s32 arg7,
u8* someTexture, u32 arg9, u32 argA, s32 width);
Gfx* func_80098558(Gfx*, u32, u32, u32, u32, u32, u32, s32, s32);
Gfx* func_800987D0(Gfx*, u32, u32, u32, u32, s32, s32, u8*, u32, s32);
Gfx* draw_box_fill(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32);
Gfx* draw_box(Gfx*, s32, s32, s32, s32, u32, u32, u32, u32);
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 clear_menu_textures(void);
void load_menu_img(MenuTexture*);
void* segmented_to_virtual_dupe(const void*);
void* segmented_to_virtual_dupe_2(const void*);
void load_menu_img_mio0_forced(MenuTexture*);
void load_menu_img_comp_type(MenuTexture*, s32);
void func_80099958(MenuTexture*, s32, s32);
void func_80099E54(void);
void func_80099E60(MenuTexture*, s32, s32);
void func_80099EC4(void);
void func_80099A70(void);
void func_80099A94(MenuTexture*, s32);
void func_80099AEC(void);
void func_8009A238(MenuTexture*, s32);
void func_8009A2F0(struct_8018E0E8_entry*);
void func_8009A344(void);
s32 animate_character_select_menu(MkAnimation*);
s32 func_8009A478(MkAnimation*, s32);
void func_8009A594(s32, s32, MkAnimation*);
void func_8009A640(s32, s32, s32, MkAnimation*);
void func_8009A6D4(void);
void func_8009A76C(s32, s32, s32, s32);
void func_8009A7EC(s32, s32, s32, s32, s32);
MenuTexture* func_8009A878(struct_8018DEE0_entry*);
MenuTexture* func_8009A944(struct_8018DEE0_entry*, s32);
void func_8009A9FC(s32, s32, u32, s32);
void func_8009AB7C(s32);
void func_8009AD78(s32, s32);
void convert_img_to_greyscale(s32, u32);
void adjust_img_colour(s32, s32, s32, s32, s32);
u16* func_8009B8C4(u64*);
void func_8009B938(void);
void func_8009B954(MenuTexture*);
void func_8009B998(void);
Gfx* func_8009B9D0(Gfx*, MenuTexture*);
Gfx* render_menu_textures(Gfx*, MenuTexture*, s32, s32);
Gfx* func_8009BC9C(Gfx*, MenuTexture*, s32, s32, s32, s32);
Gfx* print_letter(Gfx*, MenuTexture*, f32, f32, s32, f32, f32);
Gfx* func_8009C204(Gfx*, MenuTexture*, s32, s32, s32);
Gfx* func_8009C434(Gfx*, struct_8018DEE0_entry*, s32, s32, s32);
Gfx* func_8009C708(Gfx*, struct_8018DEE0_entry*, s32, s32, s32, s32);
void func_8009C918(void);
void func_8009CA2C(void);
void func_8009CA6C(s32);
void func_8009CBE4(s32, s32, s32);
void func_8009CDDC(s32, s32);
void func_8009CDFC(s32, s32);
void func_8009CE1C(void);
void func_8009CE64(s32);
void func_8009D77C(s32, s32, s32);
void func_8009D958(s32, s32);
void func_8009D978(s32, s32);
void func_8009D998(s32);
void func_8009DAA8(void);
void func_8009DB8C(void);
void func_8009DEF8(u32, u32);
void func_8009DF4C(s32);
void func_8009DF6C(s32);
void func_8009DF8C(u32, u32);
void func_8009DFE0(s32);
void func_8009E000(s32);
void func_8009E020(s32, s32);
void func_8009E088(s32, s32);
void func_8009E0F0(s32);
void func_8009E1C0(void);
void func_8009E1E4(void);
void func_8009E208(void);
void func_8009E230(void);
void func_8009E258(void);
void func_8009E280(void);
void func_8009E2A8(s32);
void func_8009E2F0(s32);
void func_8009E5BC(void);
void func_8009E5FC(s32);
void clear_menus(void);
void add_menu_item(s32, s32, s32, s8);
void render_menus(MenuItem*);
void func_800A08D8(u8, s32, s32);
s32 func_800A095C(char*, s32, s32, s32);
void func_800A09E0(MenuItem*);
void func_800A0AD0(MenuItem*);
void func_800A0B80(MenuItem*);
void func_800A0DFC(void);
void func_800A0EB8(MenuItem*, s32);
void func_800A0FA4(MenuItem*, s32);
void func_800A10CC(MenuItem*);
void render_cursor_player(MenuItem*, s32, s32);
void func_800A12BC(MenuItem*, MenuTexture*);
void func_800A1350(MenuItem*);
void func_800A143C(MenuItem*, s32);
void func_800A1500(MenuItem*);
void func_800A15EC(MenuItem*);
void func_800A1780(MenuItem*);
void render_menu_item_data_course_image(MenuItem*);
void render_menu_item_data_course_info(MenuItem*);
void menu_item_data_course_selectable(MenuItem*);
void func_800A1DE0(MenuItem*);
void func_800A1F30(MenuItem*);
void func_800A1FB0(MenuItem*);
void func_800A2D1C(MenuItem*);
void func_800A2EB8(MenuItem*);
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 time_trials_finish_text_render(MenuItem*);
void func_800A3E60(MenuItem*);
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*);
void render_pause_menu_time_trials(MenuItem*);
void render_pause_menu_versus(MenuItem*);
void render_pause_grand_prix(MenuItem*);
void render_pause_battle(MenuItem*);
void func_800A54EC(void);
void render_menu_item_end_course_option(MenuItem*);
void func_800A6034(MenuItem*);
void func_800A6154(MenuItem*);
void func_800A638C(MenuItem*);
void func_800A66A8(MenuItem*, Unk_D_800E70A0*);
void func_800A69C8(MenuItem*);
void func_800A6BEC(MenuItem*);
void func_800A6CC0(MenuItem*);
void func_800A6D94(s32, s32, u8*);
void func_800A6E94(s32, s32, u8*);
void func_800A70E8(MenuItem*);
void func_800A7258(MenuItem*);
void func_800A72FC(MenuItem*);
void func_800A7448(MenuItem*);
void func_800A75A0(MenuItem*);
void func_800A761C(MenuItem*);
void menu_item_credits_render(MenuItem*);
void convert_number_to_ascii(s32, char*);
void write_dashes(char*);
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 handle_menus_with_pri_arg(s32);
void handle_menus_default(void);
void handle_menus_special(void);
void func_800A8270(s32, MenuItem*);
void func_800A8564(MenuItem*);
void func_800A86E8(MenuItem*);
void func_800A874C(MenuItem*);
void func_800A890C(s32, MenuItem*);
void func_800A8A98(MenuItem*);
void func_800A8CA4(MenuItem*);
void render_battle_introduction(MenuItem*);
void func_800A8EC0(MenuItem*);
void func_800A8F48(MenuItem*);
void func_800A90D4(s32, MenuItem*);
void func_800A91D8(MenuItem*, s32, s32);
void func_800A9208(MenuItem*, s32);
void func_800A9278(MenuItem*, s32);
void func_800A92E8(MenuItem*, s32);
void func_800A939C(MenuItem*, s32);
void func_800A940C(MenuItem*, s32);
void func_800A94C8(MenuItem*, s32, s32);
void func_800A954C(MenuItem*);
void func_800A9710(MenuItem*);
void func_800A97BC(MenuItem*);
void update_ok_menu_item(MenuItem*);
void func_800A9B9C(MenuItem*);
void func_800A9C40(MenuItem*);
void func_800A9D5C(MenuItem*);
void func_800A9E58(MenuItem*);
void func_800AA280(MenuItem*);
void func_800AA2EC(MenuItem*);
void func_800AA5C8(MenuItem*, s8);
void func_800AA69C(MenuItem*);
void func_800AAA9C(MenuItem*);
void func_800AAB90(MenuItem*);
void func_800AAC18(MenuItem*);
void update_cursor(MenuItem*);
void func_800AAE18(MenuItem*);
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 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*);
void func_800AB164(MenuItem*);
void func_800AB260(MenuItem*);
void func_800AB290(MenuItem*);
void func_800AB314(MenuItem*);
void func_800AB904(MenuItem*);
void func_800AB9B0(MenuItem*);
void func_800ABAE8(MenuItem*);
void func_800ABB24(MenuItem*);
void func_800ABBCC(MenuItem*);
void func_800ABC38(MenuItem*);
void func_800ABCF4(MenuItem*);
void func_800ABEAC(MenuItem*);
void func_800ABF68(MenuItem*);
void func_800AC128(MenuItem*);
void func_800AC300(MenuItem*);
void func_800AC324(MenuItem*);
void func_800AC458(MenuItem*);
void func_800AC978(MenuItem*);
void func_800ACA14(MenuItem*);
void func_800ACC50(MenuItem*);
void func_800ACF40(MenuItem*);
void func_800AD1A4(MenuItem*);
void func_800AD2E8(MenuItem*);
void func_800ADF48(MenuItem*);
void func_800AE218(MenuItem*);
void func_800AEC54(MenuItem*);
void func_800AEDBC(MenuItem*);
void func_800AEE90(MenuItem*);
void func_800AEEBC(MenuItem*);
void func_800AEEE8(MenuItem*);
void func_800AEF14(MenuItem*);
void func_800AEF74(MenuItem*);
void func_800AF004(MenuItem*);
void func_800AF1AC(MenuItem*);
void func_800AF270(MenuItem*);
void func_800AF480(MenuItem*);
void func_800AF4DC(MenuItem*);
void func_800AF740(MenuItem*);
// This really, really shouldn't be in this header file, but I don't know where else to put it
void rmonPrintf(const char*, ...);
void tkmk00decode(u8*, u8*, u8*, s32);
/* File specific defines */
#define MENU_ITEMS_MAX 0x20
#define D_8018DEE0_SIZE 0x10
#define D_8018E060_SIZE 0x10
#define D_8018E0E8_SIZE 0x05
#define TEXTURE_MAP_MAX 0xC8
#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[];
/**
* 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;
extern void* gSomeDLBuffer;
extern s8 gGPPointsByCharacterId[8];
extern s8 gCharacterIdByGPOverallRank[];
extern s8 D_8018D9D8;
extern s8 D_8018D9D9;
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 sMenuTextureListIndex; // Old name: sMenuTextureBufferIndex, index into sMenuTextureList
extern TextureMap sMenuTextureMap[TEXTURE_MAP_MAX];
extern s32 sMenuTextureEntries;
extern Gfx* sGfxPtr;
extern s32 gNumD_8018E768Entries;
extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE];
extern s32 gCycleFlashMenu;
extern s8 D_8018E7AC[];
extern u32 D_8018E7B8[];
extern u32 D_8018E7D0[];
extern struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE];
extern struct UnkStruct_8018E7E8 D_8018E810[D_8018E810_SIZE];
extern s8 gTextColor;
extern u8 D_8018ED90;
extern u8 D_8018ED91;
extern s8 D_8018E838[];
extern s32 D_8018E840[];
extern s32 D_8018E850[];
extern s32 D_8018E854;
extern s32 D_8018E858[];
extern s32 D_8018E85C;
// extern u8 _textures_0aSegmentRomStart[];
// extern u8 _textures_0bSegmentRomStart[];
extern Unk_D_800E70A0 D_800E70A0[];
extern Unk_D_800E70A0 D_800E70E8[];
extern Unk_D_800E70A0 D_800E7108[][4];
extern Unk_D_800E70A0 D_800E7148[];
extern Unk_D_800E70A0 D_800E7168[];
extern Unk_D_800E70A0 D_800E7188[];
extern Unk_D_800E70A0 D_800E7208[][2];
extern Unk_D_800E70A0 D_800E7248[];
extern Unk_D_800E70A0 D_800E7258[];
extern Unk_D_800E70A0 D_800E7268[];
extern Unk_D_800E70A0 D_800E7278[];
extern Unk_D_800E70A0 D_800E72F8;
extern Unk_D_800E70A0 D_800E7300[];
extern Unk_D_800E70A0 D_800E7360[];
extern Unk_D_800E70A0 D_800E7380[];
extern Unk_D_800E70A0 D_800E7390[];
extern Unk_D_800E70A0 D_800E73C0[];
extern Unk_D_800E70A0 D_800E73D0[];
extern Unk_D_800E70A0 D_800E73E0[];
extern Unk_D_800E70A0 D_800E7410[];
extern Unk_D_800E70A0 D_800E7420[];
extern Unk_D_800E70A0 D_800E7430[];
extern Unk_D_800E70A0 D_800E7458[];
extern Unk_D_800E70A0 D_800E7480[];
extern RGBA16 D_800E74A8[];
extern RGBA16 D_800E74D0[];
extern RGBA16 D_800E74E8[];
extern const s16 gGlyphDisplayWidth[];
extern char* gCupNames[];
extern const s8 D_800EFD64[];
extern char* gCupText[];
extern char* gDebugCharacterNames[];
extern char* D_800E76A8[];
extern char* D_800E76CC[];
extern char* D_800E76DC[];
extern char* gDebugScreenModeNames[];
extern char* gDebugSoundModeNames[];
extern char* gSoundModeNames[]; // D_800E7710
extern char* gWinLoseText[];
extern char* gBestTimeText[];
extern char* gLapTimeText;
extern char* gPrefixTimeText[];
extern char* D_800E7744[];
extern char* gTextPauseButton[];
extern char* D_800E7778[];
extern char gTextMenuAnnounceGhost[];
extern char* gTextNoController[];
extern char* gTextBattleIntroduction[];
extern char gTextMenuData[];
extern char gTextDistance[];
extern char* gTextMenuOption[];
extern char* D_800E7840[];
extern char* gEraseBestGhostText[];
extern char* D_800E7860[];
extern char* gTextOptionMenu[];
extern char* D_800E7878[];
extern char* D_800E7884[];
extern char* D_800E7890[];
extern char* D_800E78D0[];
extern char* D_800E7900[];
extern char* D_800E7918[];
extern char* D_800E7920[];
extern char* D_800E7928[];
extern char* D_800E7930[];
extern char* D_800E7938[];
extern char* D_800E7940[];
extern char* D_800E7980[];
extern char* D_800E798C[];
extern char* D_800E7A34[];
extern char* D_800E7A3C[];
extern char* D_800E7A44;
extern char* D_800E7A48[];
extern char* D_800E7A54[];
extern char* D_800E7A60[];
extern char* D_800E7A6C[];
extern char* D_800E7A74[];
extern char* D_800E7A80[];
extern char* D_800E7A88[];
extern char* D_800E7A98;
extern char* D_800E7A9C[];
extern char* gPlaceText[];
extern const s8 gGPPointRewards[];
extern const s8 D_800F0B1C[];
extern const s8 D_800F0B28[];
extern const s8 D_800F0B50[];
extern const s8 D_800F0B54[];
extern RGBA16 D_800E7AC8[];
extern RGBA16 D_800E7AE8[];
extern MenuTexture* D_800E7AF8[];
extern MenuTexture* D_800E7D0C[];
extern MkAnimation* D_800E7D34[];
extern MenuTexture* gMenuTexturesBackground[];
extern MenuTexture* D_800E7D54[];
extern MenuTexture* D_800E7D74[];
extern MenuTexture* D_800E7DC4[];
extern MkAnimation* D_800E7E14[];
extern MkAnimation* D_800E7E20[];
extern MkAnimation* D_800E7E34[];
extern MenuTexture* gGlyphTextureLUT[];
extern MenuTexture* D_800E7FF0[];
extern MenuTexture* D_800E80A0[];
extern MenuTexture* D_800E8114[];
extern MenuTexture* D_800E8174[];
extern MenuTexture* D_800E817C[];
extern MenuTexture* D_800E81E4[];
extern MenuTexture* D_800E822C[];
extern MenuTexture* D_800E8234[];
extern MenuTexture* D_800E8254[];
extern MenuTexture* D_800E8274[];
extern MenuTexture* D_800E8294[];
extern MenuTexture* gMenuTexturesBorderPlayer[];
extern MenuTexture* gMenuTexturesTrackSelection[];
extern MenuTexture* D_800E82F4[];
extern MkAnimation* D_800E8320[];
extern MkAnimation* D_800E8340[];
extern MkAnimation* D_800E8360[];
extern MkAnimation* gCharacterCelebrateAnimation[];
extern MkAnimation* D_800E83A0[];
extern MkAnimation* gCharacterDeselectAnimation[];
extern MkAnimation* gCharacterSingleBlinkAnimation[];
extern MkAnimation* gCharacterDoubleBlinkAnimation[];
extern MkAnimation* gCharacterDefeatAnimation[];
extern s32 D_800E8440[];
extern s32 D_800E8460[];
extern s32 D_800E8480[];
extern s32 D_800E84A0[];
extern Vtx* D_800E84C0[];
extern Gfx* D_800E84CC[];
extern Gfx* D_800E84EC[];
extern Gfx* D_800E850C[];
extern s8 D_800E852C;
extern f32 sIntroModelMotionSpeed;
extern f32 sIntroModelSpeed;
extern Unk_D_800E70A0 D_800E8538[];
extern Unk_D_800E70A0 D_800E8540[];
extern Unk_D_800E70A0 D_800E85C0[];
extern Unk_D_800E70A0 D_800E8600[];
extern s32 gControllerPak1NumPagesFree;
extern s32 gControllerPak1FileNote;
extern s32 gControllerPak2FileNote;
extern f32 D_8018ED98;
extern f32 D_8018ED9C;
extern f32 D_8018EDA0;
extern f32 D_8018EDA4;
extern f32 D_8018EDA8;
extern f32 D_8018EDAC;
#ifdef __cplusplus
}
#endif
#endif
+641 -603
View File
File diff suppressed because it is too large Load Diff
+220 -42
View File
@@ -4,7 +4,7 @@
#include <common_structs.h>
#include <defines.h>
// D_8018EDEC is position on options screen?
// gSubMenuSelection is position on options screen?
enum MenuOptionsCursorPositions { MENU_OPTIONS_CSRPOS_SOUNDMODE = 0x16 };
// needs to be a union (or array...?) to go into rodata as a const
@@ -14,6 +14,185 @@ union GameModePack {
s32 word;
};
/**
* @brief Options for gMenuFadeType
*/
enum MenuFadeTypes {
MENU_FADE_TYPE_MAIN,
MENU_FADE_TYPE_BACK,
MENU_FADE_TYPE_DEMO,
MENU_FADE_TYPE_DATA,
MENU_FADE_TYPE_OPTION,
MENU_FADE_TYPE_MAX
};
/**
* @brief Options for gSubMenuSelection
*/
enum SubMenuSelectionType {
SUB_MENU_NONE,
SUB_MENU_DATA, // 0x01, value repurposed in map select
SUB_MENU_MAP_SELECT_CUP = 0x01,
SUB_MENU_MAP_SELECT_COURSE,
SUB_MENU_MAP_SELECT_OK,
SUB_MENU_MAP_SELECT_BATTLE_COURSE,
SUB_MENU_DATA_OPTIONS = 0x0B,
SUB_MENU_DATA_ERASE_CONFIRM,
SUB_MENU_DATA_CANT_ERASE,
SUB_MENU_OPTION_MIN = 0x15,
SUB_MENU_OPTION_RETURN_GAME_SELECT = SUB_MENU_OPTION_MIN,
SUB_MENU_OPTION_SOUND_MODE,
SUB_MENU_OPTION_COPY_CONTROLLER_PAK,
SUB_MENU_OPTION_ERASE_ALL_DATA,
SUB_MENU_OPTION_MAX = SUB_MENU_OPTION_ERASE_ALL_DATA, // 0x18
SUB_MENU_ERASE_MIN = 0x1E,
SUB_MENU_ERASE_QUIT = SUB_MENU_ERASE_MIN,
SUB_MENU_ERASE_ERASE,
SUB_MENU_ERASE_MAX = SUB_MENU_ERASE_ERASE, // 0x1F
SUB_MENU_SAVE_DATA_ERASED, // 0x20
SUB_MENU_COPY_PAK_FROM_GHOST_MIN = 0x28,
SUB_MENU_COPY_PAK_FROM_GHOST1_1P = SUB_MENU_COPY_PAK_FROM_GHOST_MIN,
SUB_MENU_COPY_PAK_FROM_GHOST2_1P,
SUB_MENU_COPY_PAK_FROM_GHOST_MAX = SUB_MENU_COPY_PAK_FROM_GHOST2_1P, // 0x29
SUB_MENU_COPY_PAK_ERROR_2P_MIN, // 0x2A
SUB_MENU_COPY_PAK_ERROR_NO_GHOST_DATA = SUB_MENU_COPY_PAK_ERROR_2P_MIN,
SUB_MENU_COPY_PAK_ERROR_NO_GAME_DATA,
SUB_MENU_COPY_PAK_ERROR_NO_PAK_2P,
SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P,
SUB_MENU_COPY_PAK_ERROR_2P_MAX = SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P, // 0x2D
SUB_MENU_COPY_PAK_TO_GHOST_MIN = 0x32,
SUB_MENU_COPY_PAK_TO_GHOST1_2P = SUB_MENU_COPY_PAK_TO_GHOST_MIN,
SUB_MENU_COPY_PAK_TO_GHOST2_2P,
SUB_MENU_COPY_PAK_TO_GHOST_MAX = SUB_MENU_COPY_PAK_TO_GHOST2_2P, // 0x33
SUB_MENU_COPY_PAK_ERROR_1P_MIN,
SUB_MENU_COPY_PAK_ERROR_NO_PAK_1P = SUB_MENU_COPY_PAK_ERROR_1P_MIN, // 0x34
SUB_MENU_COPY_PAK_ERROR_BAD_READ_1P,
SUB_MENU_COPY_PAK_ERROR_CANT_CREATE_1P,
SUB_MENU_COPY_PAK_ERROR_NO_PAGES_1P,
SUB_MENU_COPY_PAK_ERROR_1P_MAX,
SUB_MENU_COPY_PAK_PROMPT_MIN = SUB_MENU_COPY_PAK_ERROR_1P_MAX, // 0x38
SUB_MENU_COPY_PAK_PROMPT_QUIT = SUB_MENU_COPY_PAK_PROMPT_MIN,
SUB_MENU_COPY_PAK_PROMPT_COPY,
SUB_MENU_COPY_PAK_PROMPT_MAX = SUB_MENU_COPY_PAK_PROMPT_COPY, // 0x39
SUB_MENU_COPY_PAK_ACTION_MIN,
SUB_MENU_COPY_PAK_START = SUB_MENU_COPY_PAK_ACTION_MIN, // 0x3A
SUB_MENU_COPY_PAK_COPYING,
SUB_MENU_COPY_PAK_COMPLETED,
SUB_MENU_COPY_PAK_ACTION_MAX = SUB_MENU_COPY_PAK_COMPLETED, // 0x3C
SUB_MENU_COPY_PAK_UNABLE_ERROR_MIN = 0x41,
SUB_MENU_COPY_PAK_UNABLE_COPY_FROM_1P = SUB_MENU_COPY_PAK_UNABLE_ERROR_MIN,
SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P,
SUB_MENU_COPY_PAK_UNABLE_ERROR_MAX = SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P,
SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT = 0x46,
SUB_MENU_COPY_PAK_CREATE_GAME_DATA_DONE
};
/**
* @brief Options for gMainMenuSelection
*/
enum MainMenuSelectionType {
MAIN_MENU_NONE,
MAIN_MENU_OPTION,
MAIN_MENU_DATA,
MAIN_MENU_PLAYER_SELECT,
MAIN_MENU_MODE_SELECT, // Mario GP - T. Trials - VS - Battle
MAIN_MENU_MODE_SUB_SELECT, // CC Selection and T.Trials options (Begin, Data)
MAIN_MENU_OK_SELECT, // OK option after selecting a submode
MAIN_MENU_OK_SELECT_GO_BACK, // OK option after going back from player select
MAIN_MENU_MODE_SUB_SELECT_GO_BACK // Used in T.Trials after going back to Data option from course data
};
/**
* @brief Options for gPlayerSelectMenuSelection
*/
enum PlayerSelectMenuSelectionTypes {
PLAYER_SELECT_MENU_NONE,
PLAYER_SELECT_MENU_MAIN,
PLAYER_SELECT_MENU_OK, // OK option after selecting characters
PLAYER_SELECT_MENU_OK_GO_BACK // OK option after going back from map select
};
/**
* @brief Options for gDebugMenuSelection
*/
enum DebugMenuSelectionTypes {
DEBUG_MENU_NONE,
DEBUG_MENU_DISABLED,
DEBUG_MENU_DEBUG_MODE,
DEBUG_MENU_COURSE,
DEBUG_MENU_SCREEN_MODE,
DEBUG_MENU_PLAYER,
DEBUG_MENU_SOUND_MODE,
DEBUG_MENU_GIVE_ALL_GOLD_CUP,
DEBUG_MENU_OPTION_SELECTED = 0x40
};
/**
* @brief Options for gControllerPakMenuSelection
*/
enum ControllerPakMenuSelectionTypes {
CONTROLLER_PAK_MENU_NONE,
CONTROLLER_PAK_MENU_SELECT_RECORD,
CONTROLLER_PAK_MENU_END,
CONTROLLER_PAK_MENU_ERASE,
CONTROLLER_PAK_MENU_QUIT,
CONTROLLER_PAK_MENU_TABLE_GAME_DATA,
CONTROLLER_PAK_MENU_GO_TO_ERASING,
CONTROLLER_PAK_MENU_ERASING,
CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED,
CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK,
CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED
};
/**
* @brief Options for gCourseRecordsMenuSelection
*/
enum CourseRecordsMenuSelectionTypes {
COURSE_RECORDS_MENU_MIN,
COURSE_RECORDS_MENU_RETURN_MENU = COURSE_RECORDS_MENU_MIN,
COURSE_RECORDS_MENU_ERASE_RECORDS,
COURSE_RECORDS_MENU_ERASE_GHOST,
COURSE_RECORDS_MENU_MAX = COURSE_RECORDS_MENU_ERASE_GHOST
};
/**
* @brief Options for gCourseRecordsSubMenuSelection
*/
enum CourseRecordsSubMenuSelectionTypes {
COURSE_RECORDS_SUB_MENU_MIN,
COURSE_RECORDS_SUB_MENU_QUIT = COURSE_RECORDS_SUB_MENU_MIN,
COURSE_RECORDS_SUB_MENU_ERASE,
COURSE_RECORDS_SUB_MENU_MAX = COURSE_RECORDS_SUB_MENU_ERASE
};
/**
* @brief Options for gDebugGotoScene
*/
enum DebugGotoSceneTypes {
DEBUG_GOTO_RACING,
DEBUG_GOTO_ENDING,
DEBUG_GOTO_CREDITS_SEQUENCE_DEFAULT,
DEBUG_GOTO_CREDITS_SEQUENCE_EXTRA
};
/**
* @brief Options for gFadeModeSelection
*/
enum FadeModeSelectionTypes {
FADE_MODE_NONE,
FADE_MODE_MAIN,
FADE_MODE_LOGO
};
/**
* @brief Options for gControllerPakScrollDirection
*/
enum ControllerPakScrollDirectionTypes {
CONTROLLER_PAK_SCROLL_DIR_NONE,
CONTROLLER_PAK_SCROLL_DIR_DOWN,
CONTROLLER_PAK_SCROLL_DIR_UP
};
// This really, really shouldn't be in this header file, but I don't know where else to put it
void rmonPrintf(const char*, ...);
@@ -25,78 +204,77 @@ 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 func_800B3F74(s32);
void func_800B44AC(void);
void func_800B44BC(void);
bool func_800B4520(void);
void load_menu_states(s32);
void reset_cycle_flash_menu(void);
void set_sound_mode(void);
bool is_screen_being_faded(void);
/* data */
extern s32 D_8018EDC0;
extern f32 D_8018EDC4;
extern f32 D_8018EDC8;
extern f32 D_8018EDCC;
extern f32 D_8018EDD0;
extern f32 D_8018EDD4;
extern f32 D_8018EDD8;
extern f32 D_8018EDDC;
extern s32 D_8018EDE0;
extern s32 gIntroModelZEye;
extern f32 gIntroModelScale;
extern f32 gIntroModelRotX;
extern f32 gIntroModelRotY;
extern f32 gIntroModelRotZ;
extern f32 gIntroModelPosX;
extern f32 gIntroModelPosY;
extern f32 gIntroModelPosZ;
extern s32 gMenuFadeType;
extern s8 gCharacterGridSelections[];
extern s8 D_8018EDE8[];
extern s8 D_8018EDEC;
extern s8 gMainMenuSelectionDepth;
extern s8 D_8018EDEE;
extern s8 gCharacterGridIsSelected[];
extern s8 gSubMenuSelection;
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 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;
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 D_8018EE08;
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 D_800E86A4;
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[];
extern s8 D_800E86D0[];
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
+2 -2
View File
@@ -6,7 +6,7 @@
#include "code_800029B0.h"
#include "menus.h"
#include "audio/external.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "port/Game.h"
// PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_HUMAN
@@ -129,7 +129,7 @@ void networking_start_session(const char* data) {
gModeSelection = GRAND_PRIX;
gPlayerCount = 1;
// gCurrentCourseId = 8;
gDebugMenuSelection = DEBUG_MENU_EXITED;
gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED;
func_8009E1C0();
func_800CA330(0x19);
}
+1 -1
View File
@@ -7,7 +7,7 @@
#include "memory.h"
#include "waypoints.h"
#include "code_80005FD0.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "collision.h"
#include "actors.h"
#include "actors_extended.h"
+2 -2
View File
@@ -11,7 +11,7 @@
#include "code_800029B0.h"
#include "code_80057C60.h"
#include "update_objects.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "code_80005FD0.h"
#include "spawn_players.h"
#include "audio/external.h"
@@ -853,7 +853,7 @@ void func_8028FCBC(void) {
s32 i;
u32 phi_v0_4;
if (D_8018EE08) {
if (gDemoUseController) {
func_8028FC34();
}
switch (D_800DC510) {
+2 -2
View File
@@ -11,7 +11,7 @@
#include <assets/common_data.h>
#include "render_player.h"
#include "code_80057C60.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "actors.h"
#include "render_courses.h"
#include "math_util.h"
@@ -131,7 +131,7 @@ void func_802A38B4(void) {
gGamestate = 255;
gIsInQuitToMenuTransition = 0;
gQuitToMenuTransitionCounter = 0;
D_800E86A4 = 1;
gFadeModeSelection = 1;
switch (gGotoMode) {
case START_MENU_FROM_QUIT:
+52 -53
View File
@@ -26,7 +26,7 @@
#include "code_8006E9C0.h"
#include "render_objects.h"
#include "update_objects.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "collision.h"
#include "main.h"
#include "menus.h"
@@ -1535,7 +1535,7 @@ void func_8004B72C(s32 primRed, s32 primGreen, s32 primBlue, s32 envRed, s32 env
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
}
void func_8004B7DC(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32 arg6) {
void render_texture_rectangle(s32 x, s32 y, s32 width, s32 height, s32 s, s32 w, s32 mode) {
s32 xh = (((x + width) - 1) << 2);
s32 yh = (((y + height) - 1) << 2);
@@ -1545,17 +1545,19 @@ void func_8004B7DC(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32
s32 xh2 = (((x + width)) << 2);
s32 yh2 = ((y + height) << 2);
if (arg6 == 0) {
// If no cycle mode is set, render texture rectangle in copy mode
if (mode == 0) {
//! @todo Update to F3DEX. Uses OLD definition for gspTextureRectangle.
gSPTextureRectangle(gDisplayListHead++, xl, yl, xh, yh, G_TX_RENDERTILE, arg4 << 5, (arg5 << 5), 4 << 10,
gSPTextureRectangle(gDisplayListHead++, xl, yl, xh, yh, G_TX_RENDERTILE, s << 5, (w << 5), 4 << 10,
1 << 10);
return;
}
gSPTextureRectangle(gDisplayListHead++, xl, yl, xh2, yh2, G_TX_RENDERTILE, arg4 << 5, (arg5 << 5), 1 << 10,
// Render texture rectangle in default cycle mode (1 cycle or 2 cycle)
gSPTextureRectangle(gDisplayListHead++, xl, yl, xh2, yh2, G_TX_RENDERTILE, s << 5, (w << 5), 1 << 10,
1 << 10);
}
void func_8004B7DC_wide(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32 arg6) {
void render_texture_rectangle_wide(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32 arg6) {
s32 xh = (((x + width) - 1));
s32 yh = (((y + height) - 1) << 2);
@@ -1604,8 +1606,9 @@ void func_8004B7DC_wide(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5,
// 1 << 10);
}
void func_8004B950(s32 x, s32 y, s32 width, s32 height, s32 arg4) {
func_8004B7DC(x, y, width, height, 0, 0, arg4);
void render_texture_rectangle_wrap(s32 x, s32 y, s32 width, s32 height, s32 mode) {
// (0, 0) means texture coordinates will be rendered from the top left corner
render_texture_rectangle(x, y, width, height, 0, 0, mode);
}
// Positions item window, the Lap 1/2/3, TIME texture, and minimap on the screen.
@@ -1629,7 +1632,7 @@ void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
var_v0 = -arg1;
var_a1 = 0;
}
func_8004B7DC(sp2C, var_a1, arg2 - var_v1, arg3 - var_v0, var_v1, var_v0, arg4);
render_texture_rectangle(sp2C, var_a1, arg2 - var_v1, arg3 - var_v0, var_v1, var_v0, arg4);
}
}
@@ -1653,7 +1656,7 @@ void func_8004B97C_wide(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
var_v0 = -arg1;
var_a1 = 0;
}
func_8004B7DC_wide(sp2C, var_a1, arg2 - var_v1, arg3 - var_v0, var_v1, var_v0, arg4);
render_texture_rectangle_wide(sp2C, var_a1, arg2 - var_v1, arg3 - var_v0, var_v1, var_v0, arg4);
}
}
@@ -1677,7 +1680,7 @@ void func_8004BA08(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
phi_v0 = -arg1;
phi_a1 = 0;
}
func_8004B7DC(sp2C, phi_a1, arg2 - phi_v1, arg3 - phi_v0, phi_v1 + arg2, phi_v0, arg4);
render_texture_rectangle(sp2C, phi_a1, arg2 - phi_v1, arg3 - phi_v0, phi_v1 + arg2, phi_v0, arg4);
}
}
@@ -1708,7 +1711,7 @@ void func_8004BA98(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s
sp30 = 0;
phi_a3 = arg3 + arg1;
}
func_8004B7DC_wide(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6);
render_texture_rectangle_wide(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6);
}
}
@@ -1738,7 +1741,7 @@ void func_8004BA98_wide(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 ar
sp30 = 0;
phi_a3 = arg3 + arg1;
}
func_8004B7DC_wide(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6);
render_texture_rectangle_wide(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6);
}
}
@@ -1793,7 +1796,7 @@ UNUSED void func_8004BD14(s32 x, s32 y, u32 width, u32 height, s32 alpha, u8* te
gDPLoadMultiTile(gDisplayListHead++, texture2, 256, G_TX_RENDERTILE + 1, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, height,
0, 0, width - 1, height - 1, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
func_8004B950(x, y, width, height, 2);
render_texture_rectangle_wrap(x, y, width, height, 2);
gSPDisplayList(gDisplayListHead++, D_0D008120);
}
@@ -1879,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 `athing`, don't know that to make of. Can't quite get it over the finish line
// though
void func_8004C6FC(s16 arg0, s16 arg1, u8* texture, u32 width, u32 arg4) {
s32 temp_v0_3;
s32 var_s3;
s32 var_s4;
s32 athing;
s32 temp_t3;
u32 temp_t8;
s32 heigth;
s32 var_s6;
u8* textureCopy;
// non-matching
void render_texture_tile_rgba32_block(s16 x, s16 y, u8* texture, u32 width, u32 height) {
s32 remainingSize;
s32 currX;
s32 currY;
u32 size;
s32 tileHeight;
s32 numTiles;
s32 numTilesDup;
currX = x - (width / 2);
currY = y - (height / 2);
athing = arg0 - (width / 2);
var_s4 = arg1 - (arg4 / 2);
textureCopy = texture;
gSPDisplayList(gDisplayListHead++, D_0D007EF8);
gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
temp_t8 = width * arg4 * 4;
temp_t3 = temp_t8 / 4096;
if (temp_t8 % 4096) {
temp_t3++;
size = width * height * 4;
numTiles = size / 4096;
if (size % 4096) {
numTiles++;
}
heigth = arg4 / temp_t3;
var_s6 = temp_t3;
for (var_s3 = 0; var_s3 < var_s6; var_s3++) {
load_texture_tile_rgba32_nomirror(textureCopy, width, heigth);
func_8004B950(athing, var_s4, width, heigth, 1);
temp_v0_3 = temp_t8 - (width * heigth * 4);
textureCopy += (width * heigth * 4);
if (temp_v0_3 < 0) {
heigth = temp_t8 / 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 {
temp_t8 = temp_v0_3;
size -= (width * tileHeight * 4);
}
// Weird fakematch that is a HUGE improvement
athing += var_s4 * 0;
var_s4 += heigth;
currX += currY * 0;
currY += tileHeight;
}
gSPDisplayList(gDisplayListHead++, D_0D007EB8);
}
#else
GLOBAL_ASM("asm/non_matchings/render_objects/func_8004C6FC.s")
#endif
void func_8004C8D4(s16 arg0, s16 arg1) {
func_8004C6FC(arg0, arg1, D_8018D1E0, 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) {
@@ -4242,7 +4241,7 @@ UNUSED void func_800573DC(void) {
}
void func_800573E4(s32 x, s32 y, s8 str) {
func_8004B7DC(x, y, 8, 8, (((str % 16) * 8) << 16) >> 16, (((unsigned short) (str / 16)) << 19) >> 16, 0);
render_texture_rectangle(x, y, 8, 8, (((str % 16) * 8) << 16) >> 16, (((unsigned short) (str / 16)) << 19) >> 16, 0);
}
void debug_wrap_text(s32* x, s32* y) {
+3 -3
View File
@@ -206,12 +206,12 @@ void func_8004B5A8(s32, s32, s32, s32);
void func_8004B614(s32, s32, s32, s32, s32, s32, s32);
void func_8004B6C4(s32, s32, s32);
void func_8004B72C(s32, s32, s32, s32, s32, s32, s32);
void func_8004B950(s32, s32, s32, s32, s32);
void render_texture_rectangle_wrap(s32, s32, s32, s32, s32);
void func_8004BB34(void);
void func_8004BB3C(s32, s32, s32, s32, f32);
void func_8004BD14(s32, s32, u32, u32, s32, u8*, u8*);
void func_8004C6FC(s16, s16, u8*, u32, u32);
void render_texture_tile_rgba32_block(s16, s16, u8*, u32, u32);
void func_8004C024(s16, s16, s16, u16, u16, u16, u16);
void func_8004C148(s16, s16, s16, u16, u16, u16, u16);
@@ -221,7 +221,7 @@ void draw_hud_2d_texture(s32, s32, u32, u32, u8*);
void func_8004C450(s32, s32, u32, u32, u8*);
void func_8004C53C(s32, s32, u32, u32, u8*);
void func_8004C628(s32, s32, u32, u32, u8*);
void func_8004C8D4(s16, s16);
void render_game_logo(s16, s16);
void func_8004C91C(s32, s32, u8*, s32, s32, s32);
void func_8004C9D8(s32, s32, s32, u8*, s32, s32, s32, s32);
void func_8004CA58(s32, s32, f32, u8*, s32, s32);
+15 -12
View File
@@ -5,7 +5,7 @@
#include "save.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "menus.h"
#include "save_data.h"
#include "staff_ghosts.h"
@@ -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();
}
@@ -425,21 +428,21 @@ u8 func_800B5508(s32 cup, s32 ccGrandPrixPoints, s32 points_scored) {
// Check if all 4 cups have gold cups scored
// for a given CC mode
s32 func_800B5530(s32 cc_mode) {
s32 is_cc_mode_complete(s32 cc_mode) {
if (gSaveData.main.saveInfo.grandPrixPoints[cc_mode] == 0xFF) {
return 1;
return true;
}
return 0;
return false;
}
// Check if the 150CC mode has all 4 gold cups
s32 has_unlocked_extra_mode(void) {
return func_800B5530(CC_150);
return is_cc_mode_complete(CC_150);
}
// Check if the Extra mode has all 4 gold cups
s32 has_completed_extra_mode(void) {
return func_800B5530(CC_EXTRA);
return is_cc_mode_complete(CC_EXTRA);
}
void func_800B559C(s32 arg0) {
@@ -911,7 +914,7 @@ s32 func_800B65F4(s32 arg0, s32 arg1) {
writeStatus = osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, 0U, (arg0 * 0x3C00) + 0x100,
0x00003C00, (u8*) D_800DC714);
if (writeStatus == 0) {
temp_s3 = &((struct_8018EE10_entry*) D_8018D9C0)[arg0];
temp_s3 = &((struct_8018EE10_entry*) gSomeDLBuffer)[arg0];
for (i = 0; i < 0x3C; i++) {
if (temp_s3->unk_07[i] != func_800B60E8(i)) {
temp_s3->ghostDataSaved = 0;
@@ -942,14 +945,14 @@ void func_800B6798(void) {
s32 temp_s0;
u8* tmp;
tmp = (u8*) D_8018D9C0;
tmp = (u8*) gSomeDLBuffer;
osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, PFS_READ, 0,
0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, tmp);
for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) {
// if (D_8018D9C0[temp_s0]->checksum != func_800B68F4(temp_s0)) {
// D_8018D9C0[temp_s0]->ghostDataSaved = 0;
// if (gSomeDLBuffer[temp_s0]->checksum != func_800B68F4(temp_s0)) {
// gSomeDLBuffer[temp_s0]->ghostDataSaved = 0;
// }
if (((struct_8018EE10_entry*) (tmp + (temp_s0 << 7)))->checksum != func_800B68F4(temp_s0)) {
((struct_8018EE10_entry*) (tmp + (temp_s0 << 7)))->ghostDataSaved = 0;
@@ -974,7 +977,7 @@ u8 func_800B68F4(s32 arg0) {
s32 i;
checksum = 0;
for (i = 0; i < 0x43; i++) {
u8* addr = &((u8*) D_8018D9C0)[arg0];
u8* addr = &((u8*) gSomeDLBuffer)[arg0];
checksum += addr[i] * multiplier + i;
}
return checksum;
+3 -1
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
@@ -54,7 +55,7 @@ void func_800B5404(s32, s32);
u8 func_800B54C0(s32, s32);
u8 func_800B54EC(s32, s32);
u8 func_800B5508(s32, s32, s32);
s32 func_800B5530(s32);
s32 is_cc_mode_complete(s32);
s32 has_unlocked_extra_mode(void);
s32 has_completed_extra_mode(void);
void func_800B559C(s32);
@@ -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
+4 -4
View File
@@ -23,7 +23,7 @@
#include "main.h"
#include "menus.h"
#include "render_player.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "effects.h"
#include "decode.h"
#include "port/Game.h"
@@ -488,7 +488,7 @@ void func_80039DA4(void) {
};
if (((GetCupCursorPosition() == COURSE_ONE) && (D_8016556E == 0)) || (gDemoMode == 1) ||
(gDebugMenuSelection == DEBUG_MENU_EXITED)) {
(gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) {
for (i = 0; i < NUM_PLAYERS; i++) {
D_80165270[i] = sp2C[i];
}
@@ -506,7 +506,7 @@ UNUSED s16 D_800E43A8 = 0;
void spawn_players_gp_one_player(f32* arg0, f32* arg1, f32 arg2) {
func_80039DA4();
if (((GetCupCursorPosition() == COURSE_ONE) && (D_8016556E == 0)) || (gDemoMode == 1) ||
(gDebugMenuSelection == DEBUG_MENU_EXITED)) {
(gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) {
s16 rand;
s16 i;
@@ -639,7 +639,7 @@ void spawn_players_versus_one_player(f32* arg0, f32* arg1, f32 arg2) {
void spawn_players_gp_two_player(f32* arg0, f32* arg1, f32 arg2) {
func_80039DA4();
if ((GetCupCursorPosition() == COURSE_ONE) || (gDemoMode == 1) || (gDebugMenuSelection == DEBUG_MENU_EXITED)) {
if ((GetCupCursorPosition() == COURSE_ONE) || (gDemoMode == 1) || (gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) {
s16 rand;
s16 i;
+1 -1
View File
@@ -11,7 +11,7 @@
#include "save.h"
#include "staff_ghosts.h"
#include "code_8006E9C0.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "code_80057C60.h"
#include "kart_dma.h"
#include "port/Game.h"
+630 -632
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -26,7 +26,7 @@
#include "collision.h"
#include "effects.h"
#include "code_80091440.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "podium_ceremony_actors.h"
#include "courses/all_course_data.h"
#include <assets/ceremony_data.h>