the big code_80091750.c rename (#684)

* some rename

* type menu

* continue rename and place const

* Renames and doc

* more

* buffer vars

* clang format

* continue rename

* some rename and get it compile (but don't match for obscure reason)

* get it match again and fix some warning

* fix all warning

* Match 6 functions

* continue rename

* load img renames and first step or label menu items

* MenuItem struct names and some rename

* rename around

* rename code_80091750 to menu_item

* clean up a little

* Update menu_item.h

* document waypoint and more

* Revert "document waypoint and more"

This reverts commit 5e6eb4fbcc.

* apply review

* Update menu_item.c

* fix some review

* rename func_8009E620 to clear_menus

* do a rename

* apply review

* finish rename normally

* more small rename

* few fix of name

* few more fix

* minor fix

* Update menus.c

* last rename normally

* Update render_menus.s

* Update menu_items.c

* Renames seg2 textures.c

* MENU_ITEMtype --> MENU_ITEM_TYPE

* remove a useless parameter

* func_80099110 --> clear_menu_textures

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
Co-authored-by: AloXado320 <david.albujar.s.30@gmail.com>
This commit is contained in:
coco875
2025-01-04 01:44:23 +01:00
committed by GitHub
parent f3872623db
commit 5e1ce53a4c
59 changed files with 7404 additions and 8069 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 func_80099184
/* 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(gD_8018E118TotalSize) # $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(gD_8018E118TotalSize) # 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(gD_8018E118TotalSize) # $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(gD_8018E118TotalSize) # 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(gD_8018E118TotalSize) # $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(gD_8018E118TotalSize) # 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 func_800996BC
/* 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(gD_8018E118TotalSize) # $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(gD_8018E118TotalSize) # 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(gControllerPakScrollDirection) # $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(gControllerPakScrollDirection) # 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_8018D9E0_entry
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,15 +167,15 @@ glabel add_8018D9E0_entry
/* 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(sIntroModelTimer) # $at, 0x8019
/* 09F37C 8009E77C AC20ED94 */ sw $zero, %lo(sIntroModelTimer)($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)
/* 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(gIntroModelZEye)($at)
@@ -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 func_800996BC
/* 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 func_800996BC
/* 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,10 +289,10 @@ 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 func_800996BC
/* 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 func_80099184
/* 09F55C 8009E95C 0C026461 */ jal load_menu_img
/* 09F560 8009E960 24841874 */ addiu $a0, %lo(D_02001874) # addiu $a0, $a0, 0x1874
/* 09F564 8009E964 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F568 8009E968 24190069 */ li $t9, 105
@@ -303,7 +303,7 @@ glabel L8009E940
.L8009E97C:
/* 09F57C 8009E97C 0C026449 */ jal segmented_to_virtual_dupe
/* 09F580 8009E980 AFA30024 */ sw $v1, 0x24($sp)
/* 09F584 8009E984 0C026461 */ jal func_80099184
/* 09F584 8009E984 0C026461 */ jal load_menu_img
/* 09F588 8009E988 00402025 */ move $a0, $v0
/* 09F58C 8009E98C 8FA30024 */ lw $v1, 0x24($sp)
/* 09F590 8009E990 3C0E800E */ lui $t6, %hi(D_800E7D0C) # $t6, 0x800e
@@ -316,22 +316,22 @@ glabel L8009E940
glabel L8009E9AC
/* 09F5AC 8009E9AC 3C040200 */ lui $a0, %hi(D_020015A4) # $a0, 0x200
/* 09F5B0 8009E9B0 AFBF007C */ sw $ra, 0x7c($sp)
/* 09F5B4 8009E9B4 0C026461 */ jal func_80099184
/* 09F5B4 8009E9B4 0C026461 */ jal load_menu_img
/* 09F5B8 8009E9B8 248415A4 */ addiu $a0, %lo(D_020015A4) # addiu $a0, $a0, 0x15a4
/* 09F5BC 8009E9BC 3C040200 */ lui $a0, %hi(D_020015A4) # $a0, 0x200
/* 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
@@ -419,60 +419,60 @@ glabel L8009E9AC
/* 09F744 8009EB44 0C026E66 */ jal func_8009B998
/* 09F748 8009EB48 00000000 */ nop
/* 09F74C 8009EB4C 3C040200 */ lui $a0, %hi(D_020015CC) # $a0, 0x200
/* 09F750 8009EB50 0C026461 */ jal func_80099184
/* 09F750 8009EB50 0C026461 */ jal load_menu_img
/* 09F754 8009EB54 248415CC */ addiu $a0, %lo(D_020015CC) # addiu $a0, $a0, 0x15cc
/* 09F758 8009EB58 3C040200 */ lui $a0, %hi(D_020015CC) # $a0, 0x200
/* 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
/* 09F79C 8009EB9C 0C026461 */ jal func_80099184
/* 09F79C 8009EB9C 0C026461 */ jal load_menu_img
/* 09F7A0 8009EBA0 24841630 */ addiu $a0, %lo(D_02001630) # addiu $a0, $a0, 0x1630
/* 09F7A4 8009EBA4 3C040200 */ lui $a0, %hi(D_02001630) # $a0, 0x200
/* 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
/* 09F7E8 8009EBE8 0C026461 */ jal func_80099184
/* 09F7E8 8009EBE8 0C026461 */ jal load_menu_img
/* 09F7EC 8009EBEC 24841658 */ addiu $a0, %lo(D_02001658) # addiu $a0, $a0, 0x1658
/* 09F7F0 8009EBF0 3C040200 */ lui $a0, %hi(D_02001658) # $a0, 0x200
/* 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
@@ -482,7 +482,7 @@ glabel L8009EC38
/* 09F83C 8009EC3C AFBF007C */ sw $ra, 0x7c($sp)
/* 09F840 8009EC40 0C026455 */ jal segmented_to_virtual_dupe_2
/* 09F844 8009EC44 8C847D34 */ lw $a0, %lo(D_800E7D34)($a0)
/* 09F848 8009EC48 0C0268DD */ jal func_8009A374
/* 09F848 8009EC48 0C0268DD */ jal animate_character_select_menu
/* 09F84C 8009EC4C 00402025 */ move $a0, $v0
/* 09F850 8009EC50 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F854 8009EC54 1000025E */ b .L8009F5D0
@@ -494,7 +494,7 @@ glabel L8009EC5C
.L8009EC68:
/* 09F868 8009EC68 0C026449 */ jal segmented_to_virtual_dupe
/* 09F86C 8009EC6C AFA30024 */ sw $v1, 0x24($sp)
/* 09F870 8009EC70 0C026461 */ jal func_80099184
/* 09F870 8009EC70 0C026461 */ jal load_menu_img
/* 09F874 8009EC74 00402025 */ move $a0, $v0
/* 09F878 8009EC78 8FA30024 */ lw $v1, 0x24($sp)
/* 09F87C 8009EC7C 3C0F800E */ lui $t7, %hi(D_800E7D34) # $t7, 0x800e
@@ -506,56 +506,56 @@ glabel L8009EC5C
/* 09F894 8009EC94 8FBF001C */ lw $ra, 0x1c($sp)
glabel L8009EC98
/* 09F898 8009EC98 3C040200 */ lui $a0, %hi(D_0200184C) # $a0, 0x200
/* 09F89C 8009EC9C 0C026461 */ jal func_80099184
/* 09F89C 8009EC9C 0C026461 */ jal load_menu_img
/* 09F8A0 8009ECA0 2484184C */ addiu $a0, %lo(D_0200184C) # addiu $a0, $a0, 0x184c
/* 09F8A4 8009ECA4 1000024B */ b .L8009F5D4
/* 09F8A8 8009ECA8 8FBF001C */ lw $ra, 0x1c($sp)
glabel L8009ECAC
/* 09F8AC 8009ECAC 0C02D557 */ jal func_800B555C
/* 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 func_800996BC
/* 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 func_8006EE44
/* 09F8D4 8009ECD4 0C01BB91 */ jal load_mario_kart_64_logo
/* 09F8D8 8009ECD8 00000000 */ nop
/* 09F8DC 8009ECDC 3C028019 */ lui $v0, %hi(gD_8018E118TotalSize) # $v0, 0x8019
/* 09F8E0 8009ECE0 2442E110 */ addiu $v0, %lo(gD_8018E118TotalSize) # addiu $v0, $v0, -0x1ef0
/* 09F8DC 8009ECDC 3C028019 */ lui $v0, %hi(sMenuTextureBufferIndex) # $v0, 0x8019
/* 09F8E0 8009ECE0 2442E110 */ addiu $v0, %lo(sMenuTextureBufferIndex) # 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 func_80099184
/* 09F8FC 8009ECFC 248445E8 */ addiu $a0, %lo(D_020045E8) # addiu $a0, $a0, 0x45e8
/* 09F8F8 8009ECF8 0C026461 */ jal load_menu_img
/* 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
/* 09F90C 8009ED0C 0C026461 */ jal func_80099184
/* 09F910 8009ED10 24844610 */ addiu $a0, %lo(D_02004610) # addiu $a0, $a0, 0x4610
/* 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(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 func_800B555C
/* 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 func_800996BC
/* 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 func_800996BC
/* 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 func_8009B0A4
/* 09F950 8009ED50 0C026C29 */ jal convert_img_to_greyscale
/* 09F954 8009ED54 24050019 */ li $a1, 25
/* 09F958 8009ED58 8FB80080 */ lw $t8, 0x80($sp)
/* 09F95C 8009ED5C 3C0E800E */ lui $t6, %hi(D_800E74E8) # $t6, 0x800e
@@ -568,7 +568,7 @@ glabel L8009ED1C
/* 09F978 8009ED78 9446FEE8 */ lhu $a2, -0x118($v0)
/* 09F97C 8009ED7C 9447FEEA */ lhu $a3, -0x116($v0)
/* 09F980 8009ED80 00002025 */ move $a0, $zero
/* 09F984 8009ED84 0C026D4E */ jal func_8009B538
/* 09F984 8009ED84 0C026D4E */ jal adjust_img_colour
/* 09F988 8009ED88 AFAF0010 */ sw $t7, 0x10($sp)
/* 09F98C 8009ED8C 10000211 */ b .L8009F5D4
/* 09F990 8009ED90 8FBF001C */ lw $ra, 0x1c($sp)
@@ -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 func_800996BC
/* 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,19 +597,19 @@ 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 func_800996BC
/* 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
/* 09F9FC 8009EDFC 8DE4FFAC */ lw $a0, -0x54($t7)
/* 09FA00 8009EE00 0C026461 */ jal func_80099184
/* 09FA00 8009EE00 0C026461 */ jal load_menu_img
/* 09FA04 8009EE04 00402025 */ move $a0, $v0
/* 09FA08 8009EE08 100001F2 */ b .L8009F5D4
/* 09FA0C 8009EE0C 8FBF001C */ lw $ra, 0x1c($sp)
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 func_800996BC
/* 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 func_800996BC
/* 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
@@ -630,7 +630,7 @@ glabel L8009EE4C
/* 09FA58 8009EE58 008E2021 */ addu $a0, $a0, $t6
/* 09FA5C 8009EE5C 0C026449 */ jal segmented_to_virtual_dupe
/* 09FA60 8009EE60 8C8481E4 */ lw $a0, %lo(D_800E81E4)($a0) # -0x7e1c($a0)
/* 09FA64 8009EE64 0C026461 */ jal func_80099184
/* 09FA64 8009EE64 0C026461 */ jal load_menu_img
/* 09FA68 8009EE68 00402025 */ move $a0, $v0
/* 09FA6C 8009EE6C 100001D9 */ b .L8009F5D4
/* 09FA70 8009EE70 8FBF001C */ lw $ra, 0x1c($sp)
@@ -644,7 +644,7 @@ glabel L8009EE74
/* 09FA8C 8009EE8C 01E03025 */ move $a2, $t7
/* 09FA90 8009EE90 0C026455 */ jal segmented_to_virtual_dupe_2
/* 09FA94 8009EE94 AFAF0024 */ sw $t7, 0x24($sp)
/* 09FA98 8009EE98 0C0268DD */ jal func_8009A374
/* 09FA98 8009EE98 0C0268DD */ jal animate_character_select_menu
/* 09FA9C 8009EE9C 00402025 */ move $a0, $v0
/* 09FAA0 8009EEA0 8FA60024 */ lw $a2, 0x24($sp)
/* 09FAA4 8009EEA4 8FBF007C */ lw $ra, 0x7c($sp)
@@ -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 func_800996BC
/* 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)
@@ -666,7 +666,7 @@ glabel L8009EED0
/* 09FAE0 8009EEE0 00992021 */ addu $a0, $a0, $t9
/* 09FAE4 8009EEE4 0C026455 */ jal segmented_to_virtual_dupe_2
/* 09FAE8 8009EEE8 8C8480A0 */ lw $a0, %lo(D_800E80A0)($a0) # -0x7f60($a0)
/* 09FAEC 8009EEEC 0C0268DD */ jal func_8009A374
/* 09FAEC 8009EEEC 0C0268DD */ jal animate_character_select_menu
/* 09FAF0 8009EEF0 00402025 */ move $a0, $v0
/* 09FAF4 8009EEF4 8FBF007C */ lw $ra, 0x7c($sp)
/* 09FAF8 8009EEF8 100001B5 */ b .L8009F5D0
@@ -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 func_800996BC
/* 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)
@@ -698,7 +698,7 @@ glabel L8009EF34
/* 09FB54 8009EF54 00982021 */ addu $a0, $a0, $t8
/* 09FB58 8009EF58 0C026455 */ jal segmented_to_virtual_dupe_2
/* 09FB5C 8009EF5C 8C847E34 */ lw $a0, %lo(D_800E7E34)($a0)
/* 09FB60 8009EF60 0C0268DD */ jal func_8009A374
/* 09FB60 8009EF60 0C0268DD */ jal animate_character_select_menu
/* 09FB64 8009EF64 00402025 */ move $a0, $v0
/* 09FB68 8009EF68 8FBF007C */ lw $ra, 0x7c($sp)
/* 09FB6C 8009EF6C 10000198 */ b .L8009F5D0
@@ -751,7 +751,7 @@ glabel L8009EFB8
/* 09FC18 8009F018 008E2021 */ addu $a0, $a0, $t6
/* 09FC1C 8009F01C 0C026455 */ jal segmented_to_virtual_dupe_2
/* 09FC20 8009F020 8C847E20 */ lw $a0, %lo(D_800E7E20)($a0)
/* 09FC24 8009F024 0C0268DD */ jal func_8009A374
/* 09FC24 8009F024 0C0268DD */ jal animate_character_select_menu
/* 09FC28 8009F028 00402025 */ move $a0, $v0
/* 09FC2C 8009F02C 8FBF007C */ lw $ra, 0x7c($sp)
/* 09FC30 8009F030 3C03800E */ lui $v1, %hi(D_800E7268) # $v1, 0x800e
@@ -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 func_800996BC
/* 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 func_800996BC
/* 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 func_800996BC
/* 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 func_800996BC
/* 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
@@ -838,7 +838,7 @@ glabel L8009F158
/* 09FD58 8009F158 3C040200 */ lui $a0, %hi(D_02001FA4) # $a0, 0x200
/* 09FD5C 8009F15C 0C026449 */ jal segmented_to_virtual_dupe
/* 09FD60 8009F160 24841FA4 */ addiu $a0, %lo(D_02001FA4) # addiu $a0, $a0, 0x1fa4
/* 09FD64 8009F164 0C026461 */ jal func_80099184
/* 09FD64 8009F164 0C026461 */ jal load_menu_img
/* 09FD68 8009F168 00402025 */ move $a0, $v0
/* 09FD6C 8009F16C 10000119 */ b .L8009F5D4
/* 09FD70 8009F170 8FBF001C */ lw $ra, 0x1c($sp)
@@ -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 func_800996BC
/* 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 func_800996BC
/* 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 func_800996BC
/* 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,14 +975,14 @@ 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 func_800996BC
/* 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)
/* 09FF6C 8009F36C 00862021 */ addu $a0, $a0, $a2
/* 09FF70 8009F370 0C026449 */ jal segmented_to_virtual_dupe
/* 09FF74 8009F374 8C847FF0 */ lw $a0, %lo(D_800E7FF0)($a0)
/* 09FF78 8009F378 0C026461 */ jal func_80099184
/* 09FF78 8009F378 0C026461 */ jal load_menu_img
/* 09FF7C 8009F37C 00402025 */ move $a0, $v0
/* 09FF80 8009F380 10000094 */ b .L8009F5D4
/* 09FF84 8009F384 8FBF001C */ lw $ra, 0x1c($sp)
@@ -1058,7 +1058,7 @@ glabel L8009F430
/* 0A0080 8009F480 008F2021 */ addu $a0, $a0, $t7
/* 0A0084 8009F484 0C026455 */ jal segmented_to_virtual_dupe_2
/* 0A0088 8009F488 8C847E34 */ lw $a0, %lo(D_800E7E34)($a0)
/* 0A008C 8009F48C 0C0268DD */ jal func_8009A374
/* 0A008C 8009F48C 0C0268DD */ jal animate_character_select_menu
/* 0A0090 8009F490 00402025 */ move $a0, $v0
/* 0A0094 8009F494 8FBF007C */ lw $ra, 0x7c($sp)
/* 0A0098 8009F498 3C198019 */ lui $t9, %hi(gTimeTrialDataCourseIndex) # $t9, 0x8019
@@ -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 func_800996BC
/* 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 func_800996BC
/* 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 func_800996BC
/* 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(gMenuTextureBuffer) # $t1, 0x8019
/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(gMenuTextureBuffer)($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(gMenuTextureBuffer) # $t7, 0x8019
/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(gMenuTextureBuffer)($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
@@ -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,7 +110,7 @@ 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(gSubMenuSelection) # $a0, 0x8019
/* 0A2CA8 800A20A8 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0)
@@ -137,7 +137,7 @@ 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(gSubMenuSelection) # $v1, 0x8019
/* 0A2D10 800A2110 100002DA */ b .L800A2C7C
@@ -158,7 +158,7 @@ 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
@@ -180,7 +180,7 @@ 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(gSubMenuSelection) # $v1, 0x8019
/* 0A2DB0 800A21B0 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
@@ -213,7 +213,7 @@ 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
@@ -243,7 +243,7 @@ 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
@@ -271,7 +271,7 @@ 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
@@ -301,7 +301,7 @@ 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
@@ -325,7 +325,7 @@ 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
@@ -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
@@ -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:
@@ -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:
@@ -742,7 +742,7 @@ 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
@@ -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:
@@ -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)
@@ -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)
@@ -195,7 +195,7 @@ glabel L8009F6CC
glabel L8009F6E4
/* 0A02E4 8009F6E4 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 0A02E8 8009F6E8 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 0A02EC 8009F6EC 0C0251ED */ jal func_800947B4
/* 0A02EC 8009F6EC 0C0251ED */ jal render_checkered_flag
/* 0A02F0 8009F6F0 8E25001C */ lw $a1, 0x1c($s1)
/* 0A02F4 8009F6F4 10000474 */ b .L800A08C8
/* 0A02F8 8009F6F8 8FBF0034 */ lw $ra, 0x34($sp)
@@ -289,15 +289,15 @@ glabel L8009F830
/* 0A043C 8009F83C 10000422 */ b .L800A08C8
/* 0A0440 8009F840 8FBF0034 */ lw $ra, 0x34($sp)
glabel L8009F844
/* 0A0444 8009F844 0C02D557 */ jal func_800B555C
/* 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
@@ -597,27 +597,27 @@ glabel L8009FB24
/* 0A08D0 8009FCD0 100002FD */ b .L800A08C8
/* 0A08D4 8009FCD4 8FBF0034 */ lw $ra, 0x34($sp)
glabel L8009FCD8
/* 0A08D8 8009FCD8 0C02D557 */ jal func_800B555C
/* 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)
@@ -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)
@@ -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)
@@ -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)
@@ -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
+1 -1
View File
@@ -463,7 +463,7 @@ glabel L800B2F70 # case 5, 8
/* 0B3C70 800B3070 00000000 */ nop
/* 0B3C74 800B3074 AFA00024 */ sw $zero, 0x24($sp)
/* 0B3C78 800B3078 AFA50028 */ sw $a1, 0x28($sp)
/* 0B3C7C 800B307C 0C02D557 */ jal func_800B555C
/* 0B3C7C 800B307C 0C02D557 */ jal has_unlocked_extra_mode
/* 0B3C80 800B3080 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3C84 800B3084 8FA30024 */ lw $v1, 0x24($sp)
/* 0B3C88 800B3088 8FA50028 */ lw $a1, 0x28($sp)
@@ -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
@@ -27,7 +27,7 @@ index 70f4820..f36f11c 100644
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/menu_items.jp.o(.bss);
BUILD_DIR/src/code_800AF9B0.o(.bss);
BUILD_DIR/src/menus.o(.bss);
+ BUILD_DIR/src/flycam.o(.bss);
+9 -7
View File
@@ -177,7 +177,7 @@ enum { COURSE_ONE, COURSE_TWO, COURSE_THREE, COURSE_FOUR };
#define CONTROLLER_PAK_MENU 9
#define START_MENU 10
#define MAIN_MENU 11
#define PLAYER_SELECT_MENU 12
#define CHARACTER_SELECT_MENU 12
#define COURSE_SELECT_MENU 13
#define RACING_DUPLICATE 14
@@ -219,12 +219,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_item func_800AAC18
# m2c_helper.sh audio/load audio_init
#
# Be sure to set DISASSEMBLY_FILE to a filename you are comfortable with.
+4 -4
View File
@@ -71,7 +71,7 @@ SECTIONS
BUILD_DIR/src/code_80086E70.o(.text*);
BUILD_DIR/src/effects.o(.text*);
BUILD_DIR/src/code_80091440.o(.text*);
BUILD_DIR/src/code_80091750.jp.o(.text*);
BUILD_DIR/src/menu_items.jp.o(.text*);
BUILD_DIR/src/code_800AF9B0.o(.text*);
BUILD_DIR/src/menus.o(.text*);
BUILD_DIR/src/save.o(.text*);
@@ -232,7 +232,7 @@ SECTIONS
BUILD_DIR/src/data/some_data.o(.data*);
BUILD_DIR/src/effects.o(.data*);
BUILD_DIR/src/code_80091440.o(.data*);
BUILD_DIR/src/code_80091750.jp.o(.data*);
BUILD_DIR/src/menu_items.jp.o(.data*);
BUILD_DIR/src/code_800AF9B0.o(.data*);
BUILD_DIR/src/menus.o(.data*);
BUILD_DIR/src/save.o(.data*);
@@ -284,7 +284,7 @@ SECTIONS
BUILD_DIR/src/code_80086E70.o(.rodata*);
BUILD_DIR/src/effects.o(.rodata*);
BUILD_DIR/src/code_80091440.o(.rodata*);
BUILD_DIR/src/code_80091750.jp.o(.rodata*);
BUILD_DIR/src/menu_items.jp.o(.rodata*);
BUILD_DIR/src/code_800AF9B0.o(.rodata*);
BUILD_DIR/src/menus.o(.rodata*);
BUILD_DIR/src/save.o(.rodata*);
@@ -335,7 +335,7 @@ SECTIONS
BUILD_DIR/src/code_80057C60.o(.bss*);
BUILD_DIR/src/code_80057C60_var.o(.bss*);
BUILD_DIR/src/effects.o(.bss*);
BUILD_DIR/src/code_80091750.jp.o(.bss*);
BUILD_DIR/src/menu_items.jp.o(.bss*);
BUILD_DIR/src/code_800AF9B0.o(.bss*);
BUILD_DIR/src/menus.o(.bss*);
BUILD_DIR/src/save.o(.bss*);
+1 -1
View File
@@ -7,7 +7,7 @@ SAFE_C_FILES := \
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/menu_items.o \
build/us/src/code_800029B0.o \
build/us/src/animation.o \
build/us/src/player_controller.o \
+1 -1
View File
@@ -13,7 +13,7 @@
#include "audio/port_eu.h"
#include "code_800029B0.h"
#include "code_80005FD0.h"
#include "code_80091750.h"
#include "menu_items.h"
s8 D_8018EF10;
UnkStruct8018EF18 D_8018EF18[16];
+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_item its the arraySize4 entry
* The only way to unify those 2 things is to use a union
*/
typedef union {
+1 -1
View File
@@ -12,7 +12,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"
+1 -1
View File
@@ -24,7 +24,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"
+1 -1
View File
@@ -521,7 +521,7 @@ extern s32 D_8018D1D4;
// extern s32 D_8018D1D8; -> objects.h
extern s32 D_8018D1DC;
extern u8* D_8018D1E0;
extern u8* gGameLogoAddress;
extern f32 D_8018D1E8;
extern s32 D_8018D1EC;
// extern s32 D_8018D1F0; -> objects.h
+1 -1
View File
@@ -77,7 +77,7 @@ s32 D_8018D1D0;
s32 D_8018D1D4;
s32 D_8018D1D8;
s32 D_8018D1DC;
u8* D_8018D1E0;
u8* gGameLogoAddress;
UNUSED s32 D_8018D1E4;
f32 D_8018D1E8;
s32 D_8018D1EC;
+10 -6
View File
@@ -22,7 +22,7 @@
#include "menus.h"
#include "data/other_textures.h"
#include "render_objects.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "src/data/some_data.h"
#include "effects.h"
@@ -111,7 +111,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_copy_base_misc_textures(u8* devAddr, u8* baseAddress, u32 size, u32 offset) {
u8** tempAddress;
u8* address;
address = baseAddress + offset;
@@ -126,8 +129,9 @@ u8* func_8006ED94(u8* devAddr, u8* baseAddress, u32 size, u32 offset) {
return baseAddress;
}
void func_8006EE44(void) {
D_8018D1E0 = func_8006ED94((u8*) &gTextureLogoMarioKart64, (u8*) D_8018D9B0, 0x79E1, 0x20000);
void load_mario_kart_64_logo(void) {
gGameLogoAddress =
dma_copy_base_misc_textures((u8*) &gTextureLogoMarioKart64, (u8*) gMenuTextureBuffer, 0x79E1, 0x20000);
}
// Some kind of initalization for the Item Window part of the HUD
@@ -161,10 +165,10 @@ 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] = func_8006ED94(gCourseOutlineTextures[i], wut, D_800E5520[i], D_800E5520[i]); wut += D_800E5520[i]; }
huh = 0x14; if (0) {} for (i = 0; i < huh; i++) { D_8018D248[i] = dma_copy_base_misc_textures(gCourseOutlineTextures[i], wut, D_800E5520[i], D_800E5520[i]); wut += D_800E5520[i]; }
// clang-format on
}
+2 -2
View File
@@ -8,8 +8,8 @@ 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);
void func_8006EE44(void);
u8* dma_copy_base_misc_textures(u8*, u8*, u32, u32);
void load_mario_kart_64_logo(void);
void init_item_window(s32);
void func_8006EEE8(s32);
void func_8006EF60(void);
-616
View File
@@ -1,616 +0,0 @@
#ifndef CODE_80091750_H
#define CODE_80091750_H
#include <common_structs.h>
#include "textures.h"
#include "main.h"
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 func_800947B4(struct GfxPool*, s32);
void func_80094A64(struct GfxPool*);
void func_80094C60(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* 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 func_80099184(MkTexture*);
void* segmented_to_virtual_dupe(const void*);
void* segmented_to_virtual_dupe_2(const void*);
void func_8009969C(MkTexture*);
void func_800996BC(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 func_8009A374(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 func_8009B0A4(s32, u32);
void func_8009B538(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_8018D9E0_entry(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[D_8018E060_SIZE];
extern struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE];
extern s32 gD_8018E118TotalSize;
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 s32 D_8018E7E0;
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 char* gCourseNamesDup2[];
// Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order
extern const s8 gPerCupIndexByCourseId[]; // D_800EFD50
extern const s8 D_800EFD64[];
extern s8 gCupSelectionByCourseId[];
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* sCourseLengths[];
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;
#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"
+2546 -2546
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 <course.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
@@ -15,7 +15,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
@@ -9,7 +9,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"
+2 -2
View File
@@ -1,7 +1,7 @@
#include "credits.h"
#include "defines.h"
struct_802850C0_entry D_802850C0[] = {
CreditsRenderInfo gCreditsTextRenderInfo[] = {
{ 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 },
@@ -67,7 +67,7 @@ struct_802850C0_entry D_802850C0[] = {
{ 0.90f, 520, 130, 160, 130, SLIDE_LEFT, TEXT_YELLOW, 0 },
};
char* D_802854B0[] = {
char* gCreditsText[] = {
// English Credits
"executive producer", "hiroshi yamauchi", "producer", "shigeru miyamoto", "director", "hideki konno",
"assistant director", "yasuyuki oyagi", "programmer", "masato kimura", "kenji yamamoto", "yasuhiro kawaguchi",
+3 -3
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 char* D_802854B0[];
extern CreditsRenderInfo gCreditsTextRenderInfo[]; // gCreditsTextRenderInfo
extern char* gCreditsText[];
#endif
+1 -1
View File
@@ -28,7 +28,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
+853
View File
@@ -0,0 +1,853 @@
#ifndef CODE_80091750_H
#define CODE_80091750_H
#include <common_structs.h>
#include "textures.h"
#include "main.h"
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 */ bool8 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 unused; // 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 gMenuTextureBuffer.
* 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* 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 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
/* This is where I'd put my static data, if I had any */
extern s32 D_800DDB24;
extern s16 D_80164478[];
extern u16* gMenuTextureBuffer;
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[D_8018E060_SIZE];
extern struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE];
extern s32 sMenuTextureBufferIndex;
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 s32 D_8018E7E0;
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 char* gCourseNamesDup2[];
// Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order
extern const s8 gPerCupIndexByCourseId[]; // D_800EFD50
extern const s8 D_800EFD64[];
extern s8 gCupSelectionByCourseId[];
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* D_800E77A0[];
extern char* gTextBattleIntroduction[];
extern char gTextMenuData[];
extern char D_800E77D8[];
extern char* sCourseLengths[];
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;
#endif
+79 -79
View File
@@ -12,7 +12,7 @@
#include "audio/external.h"
#include "code_800029B0.h"
#include "code_80005FD0.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "code_800AF9B0.h"
#include "save.h"
#include "staff_ghosts.h"
@@ -94,7 +94,7 @@ s8 gControllerPakVisibleTableRows[12] = { 0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0 };
s8 gControllerPakScrollDirection = CONTROLLER_PAK_SCROLL_DIR_NONE; // 1 is down, 2 is up
s8 unref_D_800E86D4[12] = { 0 };
s8 unref_800E86E0[4] = { 0, 0, 0, 1 };
s8 unref_D_800E86E0[4] = { 0, 0, 0, 1 };
u32 sVIGammaOffDitherOn = (OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON);
@@ -183,7 +183,7 @@ void update_menus(void) {
func_800CA330(0x19);
// deliberate (?) fallthru
case MAIN_MENU:
case PLAYER_SELECT_MENU:
case CHARACTER_SELECT_MENU:
play_sound2(SOUND_MENU_OK_CLICKED);
break;
}
@@ -224,7 +224,7 @@ void update_menus(void) {
main_menu_act(&gControllers[controllerIdx], controllerIdx);
break;
case PLAYER_SELECT_MENU_FROM_QUIT:
case PLAYER_SELECT_MENU:
case CHARACTER_SELECT_MENU:
player_select_menu_act(&gControllers[controllerIdx], controllerIdx);
break;
case COURSE_SELECT_MENU_FROM_QUIT:
@@ -241,7 +241,7 @@ void update_menus(void) {
*/
void options_menu_act(struct Controller* controller, u16 controllerIdx) {
u16 btnAndStick; // sp3E
struct_8018D9E0_entry* sp38;
MenuItem* sp38;
s32 res;
struct_8018EE10_entry* sp30;
bool tempVar; // cursorWasMoved or communicateStoredAction
@@ -254,8 +254,8 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
}
if (!is_screen_being_faded()) {
sp38 = find_8018D9E0_entry_dupe(0xF0);
sp30 = (struct_8018EE10_entry*) D_8018D9C0;
sp38 = find_menu_items_dupe(0xF0);
sp30 = (struct_8018EE10_entry*) gSomeDLBuffer;
switch (gSubMenuSelection) {
case SUB_MENU_OPTION_RETURN_GAME_SELECT:
case SUB_MENU_OPTION_SOUND_MODE:
@@ -265,35 +265,35 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_OPTION_MAX)) {
gSubMenuSelection += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = 1;
sp38->subState = 1;
tempVar = true;
}
if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_OPTION_MIN)) {
gSubMenuSelection -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
tempVar = true;
sp38->unk8 = -1;
sp38->subState = -1;
}
if (tempVar && gSoundMode != sp38->cursor) {
if (tempVar && gSoundMode != sp38->state) {
gSaveData.main.saveInfo.soundMode = gSoundMode;
write_save_data_grand_prix_points_and_sound_mode();
update_save_data_backup();
sp38->cursor = gSoundMode;
sp38->state = gSoundMode;
}
if (btnAndStick & B_BUTTON) {
func_8009E280();
play_sound2(SOUND_MENU_GO_BACK);
if (gSoundMode != sp38->cursor) {
if (gSoundMode != sp38->state) {
gSaveData.main.saveInfo.soundMode = gSoundMode;
write_save_data_grand_prix_points_and_sound_mode();
update_save_data_backup();
sp38->cursor = gSoundMode;
sp38->state = gSoundMode;
}
return;
}
@@ -333,7 +333,7 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
switch (tempVar) {
case PFS_INVALID_DATA:
gSubMenuSelection = SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT;
sp38->cursor = 0;
sp38->state = 0;
play_sound2(SOUND_MENU_SELECT);
break;
case PFS_NO_ERROR:
@@ -404,18 +404,18 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_ERASE_MAX)) {
gSubMenuSelection += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = 1;
sp38->subState = 1;
}
if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_ERASE_MIN)) {
gSubMenuSelection -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = -1;
sp38->subState = -1;
}
if (btnAndStick & B_BUTTON) {
gSubMenuSelection = SUB_MENU_OPTION_ERASE_ALL_DATA;
@@ -451,19 +451,19 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
(sp30[PLAYER_TWO].ghostDataSaved)) {
gSubMenuSelection += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = 1;
sp38->subState = 1;
}
if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_COPY_PAK_FROM_GHOST_MIN) &&
sp30[PLAYER_ONE].ghostDataSaved) {
gSubMenuSelection -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = -1;
sp38->subState = -1;
}
if (btnAndStick & B_BUTTON) {
gSubMenuSelection = SUB_MENU_OPTION_COPY_CONTROLLER_PAK;
@@ -471,8 +471,8 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
return;
}
if (btnAndStick & A_BUTTON) {
sp38->unk20 = gSubMenuSelection - SUB_MENU_COPY_PAK_FROM_GHOST_MIN;
if (sp30[sp38->unk20].courseIndex == D_8018EE10[PLAYER_TWO].courseIndex &&
sp38->param2 = gSubMenuSelection - SUB_MENU_COPY_PAK_FROM_GHOST_MIN;
if (sp30[sp38->param2].courseIndex == D_8018EE10[PLAYER_TWO].courseIndex &&
D_8018EE10[PLAYER_TWO].ghostDataSaved) {
gSubMenuSelection = SUB_MENU_COPY_PAK_TO_GHOST2_2P;
} else {
@@ -485,36 +485,36 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
case SUB_MENU_COPY_PAK_TO_GHOST1_2P:
case SUB_MENU_COPY_PAK_TO_GHOST2_2P: {
// bit of a fake match, but if it works it works?
if ((sp30[sp38->unk20].courseIndex !=
if ((sp30[sp38->param2].courseIndex !=
((0, (D_8018EE10 + (gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN))->courseIndex))) ||
((D_8018EE10 + (gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN))->ghostDataSaved == 0)) {
if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_COPY_PAK_TO_GHOST_MAX)) {
gSubMenuSelection += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = 1;
sp38->subState = 1;
}
if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_COPY_PAK_TO_GHOST_MIN)) {
gSubMenuSelection -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = -1;
sp38->subState = -1;
}
}
if (btnAndStick & B_BUTTON) {
gSubMenuSelection = sp38->unk20 + SUB_MENU_COPY_PAK_FROM_GHOST_MIN;
gSubMenuSelection = sp38->param2 + SUB_MENU_COPY_PAK_FROM_GHOST_MIN;
play_sound2(SOUND_MENU_GO_BACK);
} else if (btnAndStick & A_BUTTON) {
sp38->unk1C = gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN;
if (D_8018EE10[(sp38->unk1C)].ghostDataSaved) {
sp38->param1 = gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN;
if (D_8018EE10[(sp38->param1)].ghostDataSaved) {
gSubMenuSelection = SUB_MENU_COPY_PAK_PROMPT_QUIT;
} else {
gSubMenuSelection = SUB_MENU_COPY_PAK_START;
sp38->cursor = 0;
sp38->state = 0;
}
play_sound2(SOUND_MENU_SELECT);
}
@@ -541,21 +541,21 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
if ((btnAndStick & R_JPAD) && gSubMenuSelection < SUB_MENU_COPY_PAK_PROMPT_MAX) {
gSubMenuSelection += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = 1;
sp38->subState = 1;
}
if ((btnAndStick & L_JPAD) && gSubMenuSelection > SUB_MENU_COPY_PAK_PROMPT_MIN) {
gSubMenuSelection -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
sp38->unk24 += 4.0;
if (sp38->paramf < 4.2) {
sp38->paramf += 4.0;
}
sp38->unk8 = -1;
sp38->subState = -1;
}
if (btnAndStick & B_BUTTON) {
gSubMenuSelection = sp38->unk1C + SUB_MENU_COPY_PAK_TO_GHOST_MIN;
gSubMenuSelection = sp38->param1 + SUB_MENU_COPY_PAK_TO_GHOST_MIN;
play_sound2(SOUND_MENU_GO_BACK);
return;
}
@@ -566,7 +566,7 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
} else {
gSubMenuSelection = SUB_MENU_COPY_PAK_START;
play_sound2(SOUND_MENU_SELECT);
sp38->cursor = 0;
sp38->state = 0;
}
}
// return?
@@ -574,9 +574,9 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
}
case SUB_MENU_COPY_PAK_START: {
if (controllerIdx == PLAYER_ONE) {
sp38->cursor += 1;
sp38->state += 1;
}
if (sp38->cursor >= 3) {
if (sp38->state >= 3) {
gSubMenuSelection = SUB_MENU_COPY_PAK_COPYING;
}
break;
@@ -584,7 +584,7 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
case SUB_MENU_COPY_PAK_COPYING: {
res = controller_pak_2_status();
if (res == PFS_NO_ERROR) {
res = func_800B65F4(sp38->unk20, sp38->unk1C);
res = func_800B65F4(sp38->param2, sp38->param1);
}
if (res != 0) {
gSubMenuSelection = SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P;
@@ -594,7 +594,7 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
res = osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName,
(u8*) gExtCode, &gControllerPak1FileNote);
if (res == PFS_NO_ERROR) {
res = func_800B6178(sp38->unk1C);
res = func_800B6178(sp38->param1);
}
if (res != 0) {
gSubMenuSelection = SUB_MENU_COPY_PAK_UNABLE_COPY_FROM_1P;
@@ -602,15 +602,15 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
return;
}
gSubMenuSelection = SUB_MENU_COPY_PAK_COMPLETED;
D_8018EE10[sp38->unk1C].courseIndex = (sp30 + sp38->unk20)->courseIndex;
func_800B6088(sp38->unk1C);
D_8018EE10[sp38->param1].courseIndex = (sp30 + sp38->param2)->courseIndex;
func_800B6088(sp38->param1);
break;
}
case SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT: {
if (controllerIdx == PLAYER_ONE) {
sp38->cursor += 1;
sp38->state += 1;
}
if (sp38->cursor >= 3) {
if (sp38->state >= 3) {
gSubMenuSelection = SUB_MENU_COPY_PAK_CREATE_GAME_DATA_DONE;
}
break;
@@ -700,7 +700,7 @@ void data_menu_act(struct Controller* controller, UNUSED u16 controllerIdx) {
*/
void course_data_menu_act(struct Controller* controller, UNUSED u16 controllerIdx) {
u16 btnAndStick; // sp2E
struct_8018D9E0_entry* sp28;
MenuItem* sp28;
CourseTimeTrialRecords* sp24;
s32 res;
@@ -723,7 +723,7 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 controllerId
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
sp28 = find_8018D9E0_entry_dupe(0xE8);
sp28 = find_menu_items_dupe(0xE8);
sp24 = &gSaveData.allCourseTimeTrialRecords.cupRecords[gTimeTrialDataCourseIndex / 4]
.courseRecords[gTimeTrialDataCourseIndex % 4];
if (gCourseRecordsMenuSelection == COURSE_RECORDS_MENU_ERASE_GHOST &&
@@ -741,10 +741,10 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 controllerId
gCourseRecordsMenuSelection -= 1;
}
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp28->unk24 < 4.2) {
sp28->unk24 += 4.0;
if (sp28->paramf < 4.2) {
sp28->paramf += 4.0;
}
sp28->unk8 = -1;
sp28->subState = -1;
}
if ((btnAndStick & D_JPAD) && (gCourseRecordsMenuSelection < COURSE_RECORDS_MENU_MAX)) {
@@ -763,10 +763,10 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 controllerId
}
} else {
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp28->unk24 < 4.2) {
sp28->unk24 += 4.0;
if (sp28->paramf < 4.2) {
sp28->paramf += 4.0;
}
sp28->unk8 = 1;
sp28->subState = 1;
}
}
@@ -774,8 +774,8 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 controllerId
func_8009E208();
play_sound2(SOUND_MENU_GO_BACK);
} else if (btnAndStick & A_BUTTON) {
if (sp28->unk24 < 4.2) {
sp28->unk24 += 4.0;
if (sp28->paramf < 4.2) {
sp28->paramf += 4.0;
}
if (gCourseRecordsMenuSelection == COURSE_RECORDS_MENU_RETURN_MENU) {
func_8009E208();
@@ -789,23 +789,23 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 controllerId
break;
}
case SUB_MENU_DATA_ERASE_CONFIRM: {
sp28 = find_8018D9E0_entry_dupe(0xE9);
sp28 = find_menu_items_dupe(0xE9);
if ((btnAndStick & U_JPAD) && (gCourseRecordsSubMenuSelection > COURSE_RECORDS_SUB_MENU_MIN)) {
gCourseRecordsSubMenuSelection -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp28->unk24 < 4.2) {
sp28->unk24 += 4.0;
if (sp28->paramf < 4.2) {
sp28->paramf += 4.0;
}
sp28->unk8 = -1;
sp28->subState = -1;
}
if ((btnAndStick & D_JPAD) && (gCourseRecordsSubMenuSelection < COURSE_RECORDS_SUB_MENU_MAX)) {
gCourseRecordsSubMenuSelection += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp28->unk24 < 4.2) {
sp28->unk24 += 4.0;
if (sp28->paramf < 4.2) {
sp28->paramf += 4.0;
}
sp28->unk8 = 1;
sp28->subState = 1;
}
if (btnAndStick & B_BUTTON) {
@@ -1418,7 +1418,7 @@ void main_menu_act(struct Controller* controller, u16 controllerIdx) {
// L800B3068
if (btnAndStick & D_JPAD) {
cursorMoved = false;
if (func_800B555C()) {
if (has_unlocked_extra_mode()) {
if (subMode <
sGameModePlayerColumnExtra[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
cursorMoved = true;
@@ -1940,7 +1940,7 @@ void load_menu_states(s32 menuSelection) {
break;
}
case 2:
case PLAYER_SELECT_MENU: {
case CHARACTER_SELECT_MENU: {
switch (gMenuFadeType) {
case MENU_FADE_TYPE_MAIN: {
gPlayerSelectMenuSelection = PLAYER_SELECT_MENU_MAIN;
@@ -2051,7 +2051,7 @@ bool is_screen_being_faded(void) {
*/
UNUSED void debug_print_ghost_kart_character_id(s32 arg0, s32 arg1) {
struct_8018EE10_entry* pak1 = D_8018EE10;
struct_8018EE10_entry* pak2 = (struct_8018EE10_entry*) D_8018D9C0;
struct_8018EE10_entry* pak2 = (struct_8018EE10_entry*) gSomeDLBuffer;
rmonPrintf("ghost_kart=%d,", D_80162DE0);
rmonPrintf("pak1_ghost_kart=%d,", (pak1 + arg0)->characterId);
+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"
+1 -1
View File
@@ -13,7 +13,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"
+2 -2
View File
@@ -12,7 +12,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"
@@ -140,7 +140,7 @@ void func_802A38B4(void) {
gMenuSelection = MAIN_MENU;
break;
case PLAYER_SELECT_MENU_FROM_QUIT:
gMenuSelection = PLAYER_SELECT_MENU;
gMenuSelection = CHARACTER_SELECT_MENU;
break;
case COURSE_SELECT_MENU_FROM_QUIT:
gMenuSelection = COURSE_SELECT_MENU;
+47 -46
View File
@@ -25,7 +25,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"
@@ -1525,7 +1525,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);
@@ -1535,18 +1535,18 @@ 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) {
//! @todo Update to F3DEX. Uses OLD definition for gspTextureRectangle.
gSPTextureRectangle(gDisplayListHead++, xl, yl, xh, yh, G_TX_RENDERTILE, arg4 << 5, (arg5 << 5), 4 << 10,
1 << 10);
// If no cycle mode is set, render texture rectangle in copy mode
if (mode == 0) {
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,
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_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);
}
void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
@@ -1569,7 +1569,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);
}
}
@@ -1593,7 +1593,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);
}
}
@@ -1623,7 +1623,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(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6);
render_texture_rectangle(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6);
}
}
@@ -1678,7 +1678,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);
}
@@ -1766,54 +1766,54 @@ void func_8004C628(s32 arg0, s32 arg1, u32 arg2, u32 arg3, u8* texture) {
#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
// There's a weird fakematch concerning `xPos`, 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;
void render_texture_tile_rgba32_block(s16 x, s16 y, u8* texture, u32 width, u32 height) {
s32 texSizeLess;
s32 i;
s32 yPos;
s32 xPos;
s32 texBlockCount;
u32 texSize;
s32 heightDiv;
s32 realCount;
u8* textureCopy;
athing = arg0 - (width / 2);
var_s4 = arg1 - (arg4 / 2);
xPos = x - (width / 2);
yPos = y - (height / 2);
textureCopy = texture;
gSPDisplayList(gDisplayListHead++, D_0D007EF8);
gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
temp_t8 = width * arg4 * 4;
temp_t3 = temp_t8 / 4096;
if (temp_t8 % 4096) {
temp_t3++;
texSize = width * height * 4;
texBlockCount = texSize / 4096;
if (texSize % 4096) {
texBlockCount++;
}
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;
heightDiv = height / texBlockCount;
realCount = texBlockCount;
for (i = 0; i < realCount; i++) {
load_texture_tile_rgba32_nomirror(textureCopy, width, heightDiv);
render_texture_rectangle_wrap(xPos, yPos, width, heightDiv, 1);
texSizeLess = texSize - (width * heightDiv * 4);
textureCopy += (width * heightDiv * 4);
if (texSizeLess < 0) {
heightDiv = texSize / width;
} else {
temp_t8 = temp_v0_3;
texSize = texSizeLess;
}
// Weird fakematch that is a HUGE improvement
athing += var_s4 * 0;
var_s4 += heigth;
xPos += yPos * 0;
yPos += heightDiv;
}
gSPDisplayList(gDisplayListHead++, D_0D007EB8);
}
#else
GLOBAL_ASM("asm/non_matchings/render_objects/func_8004C6FC.s")
GLOBAL_ASM("asm/non_matchings/render_objects/render_texture_tile_rgba32_block.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, gGameLogoAddress, 256, 128);
}
UNUSED void func_8004C91C(s32 arg0, s32 arg1, u8* texture, s32 arg3, s32 arg4, s32 arg5) {
@@ -4691,7 +4691,8 @@ 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) {
+2 -2
View File
@@ -203,7 +203,7 @@ 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*);
@@ -218,7 +218,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);
+13 -13
View File
@@ -4,7 +4,7 @@
#include "save.h"
#include "code_80091750.h"
#include "menu_items.h"
#include "menus.h"
#include "save_data.h"
#include "staff_ghosts.h"
@@ -427,21 +427,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) {
bool 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 func_800B555C(void) {
return func_800B5530(CC_150);
s32 has_unlocked_extra_mode(void) {
return is_cc_mode_complete(CC_150);
}
// Check if the Extra mode has all 4 gold cups
s32 func_800B557C(void) {
return func_800B5530(CC_EXTRA);
s32 has_completed_extra_mode(void) {
return is_cc_mode_complete(CC_EXTRA);
}
void func_800B559C(s32 arg0) {
@@ -913,7 +913,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;
@@ -944,14 +944,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;
@@ -976,7 +976,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 -3
View File
@@ -55,9 +55,9 @@ 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 func_800B555C(void);
s32 func_800B557C(void);
s32 is_cc_mode_complete(s32);
s32 has_unlocked_extra_mode(void);
s32 has_completed_extra_mode(void);
void func_800B559C(s32);
s32 func_800B578C(s32);
s32 func_800B5888(s32);
+1 -1
View File
@@ -22,7 +22,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"
+1 -1
View File
@@ -12,7 +12,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"
+629 -630
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>