From 63b9a82df9ec0dee8bf6a698376676a8b37533d4 Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Sun, 18 Dec 2022 12:39:40 +0000 Subject: [PATCH] 45% decompiled 15% labelled. (#342) * match 3 memory funcs * match func_80071314 * match free_slot_containing_address * match allocate_from_memory_pool * Update audio.c * two mem matches * match func_800718A4 * match func_800C0834 * match func_800C27A0 * oops * match func_800C01D8 * match func_800A8474 * prelim * named like 0.2 things * quick fixes --- .../fade_transition/func_800C01D8.s | 194 -- .../fade_transition/func_800C0834.s | 134 - .../fade_transition/func_800C2640.s | 96 - .../fade_transition/func_800C27A0.s | 88 - asm/non_matchings/game/load_level.s | 745 ------ asm/non_matchings/game_ui/func_8009ECF0.s | 8 +- asm/non_matchings/game_ui/func_8009F034.s | 16 +- asm/non_matchings/game_ui/func_800A0BD4.s | 4 +- asm/non_matchings/game_ui/func_800A1248.s | 8 +- asm/non_matchings/game_ui/func_800A14F0.s | 12 +- asm/non_matchings/game_ui/func_800A19A4.s | 4 +- asm/non_matchings/game_ui/func_800A1C04.s | 8 +- asm/non_matchings/game_ui/func_800A1E48.s | 4 +- asm/non_matchings/game_ui/func_800A22F4.s | 16 +- asm/non_matchings/game_ui/func_800A277C.s | 12 +- asm/non_matchings/game_ui/func_800A5F18.s | 6 +- asm/non_matchings/game_ui/func_800A6254.s | 22 +- asm/non_matchings/game_ui/func_800A8474.s | 2156 ----------------- asm/non_matchings/game_ui/func_800AA600.s | 4 +- .../memory/allocate_at_address_in_main_pool.s | 119 - .../memory/allocate_from_memory_pool.s | 94 - .../memory/allocate_memory_pool_slot.s | 54 - .../memory/free_memory_pool_slot.s | 80 - .../memory/free_slot_containing_address.s | 44 - asm/non_matchings/memory/func_80071314.s | 85 - asm/non_matchings/memory/func_800718A4.s | 110 - asm/non_matchings/memory/func_80071C74.s | 37 - .../memory/get_memory_colour_tag_count.s | 51 - asm/non_matchings/menu/draw_menu_elements.s | 2 +- asm/non_matchings/menu/func_80084854.s | 2 +- asm/non_matchings/menu/func_80085B9C.s | 2 +- asm/non_matchings/menu/func_8008F618.s | 2 +- asm/non_matchings/menu/func_8008FF1C.s | 2 +- asm/non_matchings/menu/func_80094D28.s | 2 +- asm/non_matchings/menu/func_80096978.s | 2 +- asm/non_matchings/menu/func_80099E8C.s | 2 +- asm/non_matchings/menu/func_8009CA60.s | 2 +- .../menu/render_file_select_menu.s | 2 +- .../menu/render_track_select_setup_ui.s | 2 +- asm/non_matchings/objects/func_800138A8.s | 2 +- asm/non_matchings/objects/func_80016500.s | 2 +- asm/non_matchings/racer/func_80059BF0.s | 2 +- .../unknown_0255E0/func_80028050.s | 2 +- .../unknown_0255E0/render_scene.s | 10 +- include/structs.h | 7 +- src/audio.c | 2 +- src/borders.c | 2 +- src/camera.c | 18 +- src/camera.h | 6 +- src/fade_transition.c | 161 +- src/fade_transition.h | 8 +- src/game.c | 232 +- src/game.h | 10 +- src/game_ui.c | 556 ++--- src/game_ui.h | 6 +- src/memory.c | 424 ++-- src/memory.h | 19 +- src/menu.c | 26 +- src/objects.c | 13 +- src/objects.h | 2 +- src/thread0_epc.c | 2 +- src/unknown_0255E0.c | 16 +- src/video.c | 2 +- src/video.h | 2 +- src/weather.c | 4 +- src/weather.h | 2 +- 66 files changed, 898 insertions(+), 4873 deletions(-) delete mode 100644 asm/non_matchings/fade_transition/func_800C01D8.s delete mode 100644 asm/non_matchings/fade_transition/func_800C0834.s delete mode 100644 asm/non_matchings/fade_transition/func_800C2640.s delete mode 100644 asm/non_matchings/fade_transition/func_800C27A0.s delete mode 100644 asm/non_matchings/game/load_level.s delete mode 100644 asm/non_matchings/game_ui/func_800A8474.s delete mode 100644 asm/non_matchings/memory/allocate_at_address_in_main_pool.s delete mode 100644 asm/non_matchings/memory/allocate_from_memory_pool.s delete mode 100644 asm/non_matchings/memory/allocate_memory_pool_slot.s delete mode 100644 asm/non_matchings/memory/free_memory_pool_slot.s delete mode 100644 asm/non_matchings/memory/free_slot_containing_address.s delete mode 100644 asm/non_matchings/memory/func_80071314.s delete mode 100644 asm/non_matchings/memory/func_800718A4.s delete mode 100644 asm/non_matchings/memory/func_80071C74.s delete mode 100644 asm/non_matchings/memory/get_memory_colour_tag_count.s diff --git a/asm/non_matchings/fade_transition/func_800C01D8.s b/asm/non_matchings/fade_transition/func_800C01D8.s deleted file mode 100644 index 91da68c3..00000000 --- a/asm/non_matchings/fade_transition/func_800C01D8.s +++ /dev/null @@ -1,194 +0,0 @@ -.late_rodata -glabel jpt_800E92D0 -.word L800C0310, L800C0320, L800C0370, L800C03C0, L800C03D0, L800C0420, L800C0470 - -.text -glabel func_800C01D8 -/* 0C0DD8 800C01D8 3C0E800E */ lui $t6, %hi(D_800E31A0) # $t6, 0x800e -/* 0C0DDC 800C01DC 8DCE31A0 */ lw $t6, %lo(D_800E31A0)($t6) -/* 0C0DE0 800C01E0 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C0DE4 800C01E4 11C00003 */ beqz $t6, .L800C01F4 -/* 0C0DE8 800C01E8 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C0DEC 800C01EC 100000A5 */ b .L800C0484 -/* 0C0DF0 800C01F0 00001025 */ move $v0, $zero -.L800C01F4: -/* 0C0DF4 800C01F4 0C0301C9 */ jal transition_end -/* 0C0DF8 800C01F8 AFA40030 */ sw $a0, 0x30($sp) -/* 0C0DFC 800C01FC 8FA40030 */ lw $a0, 0x30($sp) -/* 0C0E00 800C0200 3C03800E */ lui $v1, %hi(D_800E31BC) # $v1, 0x800e -/* 0C0E04 800C0204 14800003 */ bnez $a0, .L800C0214 -/* 0C0E08 800C0208 246331BC */ addiu $v1, %lo(D_800E31BC) # addiu $v1, $v1, 0x31bc -/* 0C0E0C 800C020C 1000009D */ b .L800C0484 -/* 0C0E10 800C0210 00001025 */ move $v0, $zero -.L800C0214: -/* 0C0E14 800C0214 948F0004 */ lhu $t7, 4($a0) -/* 0C0E18 800C0218 3C06800E */ lui $a2, %hi(sTransitionFadeTimer) # $a2, 0x800e -/* 0C0E1C 800C021C 24C631B0 */ addiu $a2, %lo(sTransitionFadeTimer) # addiu $a2, $a2, 0x31b0 -/* 0C0E20 800C0220 A4CF0000 */ sh $t7, ($a2) -/* 0C0E24 800C0224 94980004 */ lhu $t8, 4($a0) -/* 0C0E28 800C0228 3C01800E */ lui $at, %hi(D_800E31B8) # $at, 0x800e -/* 0C0E2C 800C022C A43831B8 */ sh $t8, %lo(D_800E31B8)($at) -/* 0C0E30 800C0230 94990006 */ lhu $t9, 6($a0) -/* 0C0E34 800C0234 3C01800E */ lui $at, %hi(sTransitionFlags) # $at, 0x800e -/* 0C0E38 800C0238 A43931B4 */ sh $t9, %lo(sTransitionFlags)($at) -/* 0C0E3C 800C023C 90820000 */ lbu $v0, ($a0) -/* 0C0E40 800C0240 3C078013 */ lui $a3, %hi(gCurFaceTransition) # $a3, 0x8013 -/* 0C0E44 800C0244 30480080 */ andi $t0, $v0, 0x80 -/* 0C0E48 800C0248 2D090001 */ sltiu $t1, $t0, 1 -/* 0C0E4C 800C024C A0690000 */ sb $t1, ($v1) -/* 0C0E50 800C0250 908A0000 */ lbu $t2, ($a0) -/* 0C0E54 800C0254 24E7A730 */ addiu $a3, %lo(gCurFaceTransition) # addiu $a3, $a3, -0x58d0 -/* 0C0E58 800C0258 314B003F */ andi $t3, $t2, 0x3f -/* 0C0E5C 800C025C ACEB0000 */ sw $t3, ($a3) -/* 0C0E60 800C0260 908C0000 */ lbu $t4, ($a0) -/* 0C0E64 800C0264 3C01800E */ lui $at, %hi(D_800E31A8) # $at, 0x800e -/* 0C0E68 800C0268 318D0040 */ andi $t5, $t4, 0x40 -/* 0C0E6C 800C026C AC2D31A8 */ sw $t5, %lo(D_800E31A8)($at) -/* 0C0E70 800C0270 806E0000 */ lb $t6, ($v1) -/* 0C0E74 800C0274 3C05800E */ lui $a1, %hi(sLevelTransitionDelayTimer) # $a1, 0x800e -/* 0C0E78 800C0278 24A531A4 */ addiu $a1, %lo(sLevelTransitionDelayTimer) # addiu $a1, $a1, 0x31a4 -/* 0C0E7C 800C027C 15C00003 */ bnez $t6, .L800C028C -/* 0C0E80 800C0280 ACA00000 */ sw $zero, ($a1) -/* 0C0E84 800C0284 24180002 */ li $t8, 2 -/* 0C0E88 800C0288 ACB80000 */ sw $t8, ($a1) -.L800C028C: -/* 0C0E8C 800C028C 94D90000 */ lhu $t9, ($a2) -/* 0C0E90 800C0290 3C028013 */ lui $v0, %hi(gCurFadeRed) # $v0, 0x8013 -/* 0C0E94 800C0294 1B200078 */ blez $t9, .L800C0478 -/* 0C0E98 800C0298 2442A734 */ addiu $v0, %lo(gCurFadeRed) # addiu $v0, $v0, -0x58cc -/* 0C0E9C 800C029C 90480000 */ lbu $t0, ($v0) -/* 0C0EA0 800C02A0 3C038013 */ lui $v1, %hi(gCurFadeGreen) # $v1, 0x8013 -/* 0C0EA4 800C02A4 3C018013 */ lui $at, %hi(gLastFadeRed) # $at, 0x8013 -/* 0C0EA8 800C02A8 2463A735 */ addiu $v1, %lo(gCurFadeGreen) # addiu $v1, $v1, -0x58cb -/* 0C0EAC 800C02AC AC28A738 */ sw $t0, %lo(gLastFadeRed)($at) -/* 0C0EB0 800C02B0 90690000 */ lbu $t1, ($v1) -/* 0C0EB4 800C02B4 3C058013 */ lui $a1, %hi(gCurFadeBlue) # $a1, 0x8013 -/* 0C0EB8 800C02B8 3C018013 */ lui $at, %hi(gLastFadeGreen) # $at, 0x8013 -/* 0C0EBC 800C02BC 24A5A736 */ addiu $a1, %lo(gCurFadeBlue) # addiu $a1, $a1, -0x58ca -/* 0C0EC0 800C02C0 AC29A73C */ sw $t1, %lo(gLastFadeGreen)($at) -/* 0C0EC4 800C02C4 90AA0000 */ lbu $t2, ($a1) -/* 0C0EC8 800C02C8 3C018013 */ lui $at, %hi(gLastFadeBlue) # $at, 0x8013 -/* 0C0ECC 800C02CC AC2AA740 */ sw $t2, %lo(gLastFadeBlue)($at) -/* 0C0ED0 800C02D0 908B0001 */ lbu $t3, 1($a0) -/* 0C0ED4 800C02D4 8CEE0000 */ lw $t6, ($a3) -/* 0C0ED8 800C02D8 A04B0000 */ sb $t3, ($v0) -/* 0C0EDC 800C02DC 908C0002 */ lbu $t4, 2($a0) -/* 0C0EE0 800C02E0 2DC10007 */ sltiu $at, $t6, 7 -/* 0C0EE4 800C02E4 A06C0000 */ sb $t4, ($v1) -/* 0C0EE8 800C02E8 908D0003 */ lbu $t5, 3($a0) -/* 0C0EEC 800C02EC 10200062 */ beqz $at, .L800C0478 -/* 0C0EF0 800C02F0 A0AD0000 */ sb $t5, ($a1) -/* 0C0EF4 800C02F4 000E7080 */ sll $t6, $t6, 2 -/* 0C0EF8 800C02F8 3C01800F */ lui $at, %hi(jpt_800E92D0) # $at, 0x800f -/* 0C0EFC 800C02FC 002E0821 */ addu $at, $at, $t6 -/* 0C0F00 800C0300 8C2E92D0 */ lw $t6, %lo(jpt_800E92D0)($at) -/* 0C0F04 800C0304 00000000 */ nop -/* 0C0F08 800C0308 01C00008 */ jr $t6 -/* 0C0F0C 800C030C 00000000 */ nop -glabel L800C0310 -/* 0C0F10 800C0310 0C0301E0 */ jal func_800C0780 -/* 0C0F14 800C0314 00000000 */ nop -/* 0C0F18 800C0318 10000057 */ b .L800C0478 -/* 0C0F1C 800C031C 00000000 */ nop -glabel L800C0320 -/* 0C0F20 800C0320 3C02800E */ lui $v0, %hi(D_800E32D0) # $v0, 0x800e -/* 0C0F24 800C0324 3C0F800E */ lui $t7, %hi(D_800E32A0) # $t7, 0x800e -/* 0C0F28 800C0328 3C18800E */ lui $t8, %hi(D_800E32AC) # $t8, 0x800e -/* 0C0F2C 800C032C 3C19800E */ lui $t9, %hi(D_800E32B8) # $t9, 0x800e -/* 0C0F30 800C0330 244232D0 */ addiu $v0, %lo(D_800E32D0) # addiu $v0, $v0, 0x32d0 -/* 0C0F34 800C0334 273932B8 */ addiu $t9, %lo(D_800E32B8) # addiu $t9, $t9, 0x32b8 -/* 0C0F38 800C0338 271832AC */ addiu $t8, %lo(D_800E32AC) # addiu $t8, $t8, 0x32ac -/* 0C0F3C 800C033C 25EF32A0 */ addiu $t7, %lo(D_800E32A0) # addiu $t7, $t7, 0x32a0 -/* 0C0F40 800C0340 3C07800E */ lui $a3, %hi(D_800E3230) # $a3, 0x800e -/* 0C0F44 800C0344 24E73230 */ addiu $a3, %lo(D_800E3230) # addiu $a3, $a3, 0x3230 -/* 0C0F48 800C0348 AFAF0010 */ sw $t7, 0x10($sp) -/* 0C0F4C 800C034C AFB80014 */ sw $t8, 0x14($sp) -/* 0C0F50 800C0350 AFB90020 */ sw $t9, 0x20($sp) -/* 0C0F54 800C0354 AFA20018 */ sw $v0, 0x18($sp) -/* 0C0F58 800C0358 AFA2001C */ sw $v0, 0x1c($sp) -/* 0C0F5C 800C035C 2405000C */ li $a1, 12 -/* 0C0F60 800C0360 0C0302C0 */ jal func_800C0B00 -/* 0C0F64 800C0364 24060008 */ li $a2, 8 -/* 0C0F68 800C0368 10000043 */ b .L800C0478 -/* 0C0F6C 800C036C 00000000 */ nop -glabel L800C0370 -/* 0C0F70 800C0370 3C02800E */ lui $v0, %hi(D_800E32D0) # $v0, 0x800e -/* 0C0F74 800C0374 3C08800E */ lui $t0, %hi(D_800E32A0) # $t0, 0x800e -/* 0C0F78 800C0378 3C09800E */ lui $t1, %hi(D_800E32AC) # $t1, 0x800e -/* 0C0F7C 800C037C 3C0A800E */ lui $t2, %hi(D_800E32B8) # $t2, 0x800e -/* 0C0F80 800C0380 244232D0 */ addiu $v0, %lo(D_800E32D0) # addiu $v0, $v0, 0x32d0 -/* 0C0F84 800C0384 254A32B8 */ addiu $t2, %lo(D_800E32B8) # addiu $t2, $t2, 0x32b8 -/* 0C0F88 800C0388 252932AC */ addiu $t1, %lo(D_800E32AC) # addiu $t1, $t1, 0x32ac -/* 0C0F8C 800C038C 250832A0 */ addiu $t0, %lo(D_800E32A0) # addiu $t0, $t0, 0x32a0 -/* 0C0F90 800C0390 3C07800E */ lui $a3, %hi(D_800E3268) # $a3, 0x800e -/* 0C0F94 800C0394 24E73268 */ addiu $a3, %lo(D_800E3268) # addiu $a3, $a3, 0x3268 -/* 0C0F98 800C0398 AFA80010 */ sw $t0, 0x10($sp) -/* 0C0F9C 800C039C AFA90014 */ sw $t1, 0x14($sp) -/* 0C0FA0 800C03A0 AFAA0020 */ sw $t2, 0x20($sp) -/* 0C0FA4 800C03A4 AFA20018 */ sw $v0, 0x18($sp) -/* 0C0FA8 800C03A8 AFA2001C */ sw $v0, 0x1c($sp) -/* 0C0FAC 800C03AC 2405000C */ li $a1, 12 -/* 0C0FB0 800C03B0 0C0302C0 */ jal func_800C0B00 -/* 0C0FB4 800C03B4 24060008 */ li $a2, 8 -/* 0C0FB8 800C03B8 1000002F */ b .L800C0478 -/* 0C0FBC 800C03BC 00000000 */ nop -glabel L800C03C0 -/* 0C0FC0 800C03C0 0C030575 */ jal func_800C15D4 -/* 0C0FC4 800C03C4 00000000 */ nop -/* 0C0FC8 800C03C8 1000002B */ b .L800C0478 -/* 0C0FCC 800C03CC 00000000 */ nop -glabel L800C03D0 -/* 0C0FD0 800C03D0 3C02800E */ lui $v0, %hi(D_800E34F8) # $v0, 0x800e -/* 0C0FD4 800C03D4 3C0B800E */ lui $t3, %hi(D_800E349C) # $t3, 0x800e -/* 0C0FD8 800C03D8 3C0C800E */ lui $t4, %hi(D_800E3440) # $t4, 0x800e -/* 0C0FDC 800C03DC 3C0D800E */ lui $t5, %hi(D_800E3554) # $t5, 0x800e -/* 0C0FE0 800C03E0 244234F8 */ addiu $v0, %lo(D_800E34F8) # addiu $v0, $v0, 0x34f8 -/* 0C0FE4 800C03E4 25AD3554 */ addiu $t5, %lo(D_800E3554) # addiu $t5, $t5, 0x3554 -/* 0C0FE8 800C03E8 258C3440 */ addiu $t4, %lo(D_800E3440) # addiu $t4, $t4, 0x3440 -/* 0C0FEC 800C03EC 256B349C */ addiu $t3, %lo(D_800E349C) # addiu $t3, $t3, 0x349c -/* 0C0FF0 800C03F0 3C07800E */ lui $a3, %hi(D_800E3344) # $a3, 0x800e -/* 0C0FF4 800C03F4 24E73344 */ addiu $a3, %lo(D_800E3344) # addiu $a3, $a3, 0x3344 -/* 0C0FF8 800C03F8 AFAB0010 */ sw $t3, 0x10($sp) -/* 0C0FFC 800C03FC AFAC0014 */ sw $t4, 0x14($sp) -/* 0C1000 800C0400 AFAD0020 */ sw $t5, 0x20($sp) -/* 0C1004 800C0404 AFA20018 */ sw $v0, 0x18($sp) -/* 0C1008 800C0408 AFA2001C */ sw $v0, 0x1c($sp) -/* 0C100C 800C040C 2405005C */ li $a1, 92 -/* 0C1010 800C0410 0C0302C0 */ jal func_800C0B00 -/* 0C1014 800C0414 24060050 */ li $a2, 80 -/* 0C1018 800C0418 10000017 */ b .L800C0478 -/* 0C101C 800C041C 00000000 */ nop -glabel L800C0420 -/* 0C1020 800C0420 3C02800E */ lui $v0, %hi(D_800E3338) # $v0, 0x800e -/* 0C1024 800C0424 3C0E800E */ lui $t6, %hi(D_800E330C) # $t6, 0x800e -/* 0C1028 800C0428 3C0F800E */ lui $t7, %hi(D_800E3318) # $t7, 0x800e -/* 0C102C 800C042C 3C18800E */ lui $t8, %hi(D_800E3324) # $t8, 0x800e -/* 0C1030 800C0430 24423338 */ addiu $v0, %lo(D_800E3338) # addiu $v0, $v0, 0x3338 -/* 0C1034 800C0434 27183324 */ addiu $t8, %lo(D_800E3324) # addiu $t8, $t8, 0x3324 -/* 0C1038 800C0438 25EF3318 */ addiu $t7, %lo(D_800E3318) # addiu $t7, $t7, 0x3318 -/* 0C103C 800C043C 25CE330C */ addiu $t6, %lo(D_800E330C) # addiu $t6, $t6, 0x330c -/* 0C1040 800C0440 3C07800E */ lui $a3, %hi(D_800E32DC) # $a3, 0x800e -/* 0C1044 800C0444 24E732DC */ addiu $a3, %lo(D_800E32DC) # addiu $a3, $a3, 0x32dc -/* 0C1048 800C0448 AFAE0010 */ sw $t6, 0x10($sp) -/* 0C104C 800C044C AFAF0014 */ sw $t7, 0x14($sp) -/* 0C1050 800C0450 AFB80020 */ sw $t8, 0x20($sp) -/* 0C1054 800C0454 AFA20018 */ sw $v0, 0x18($sp) -/* 0C1058 800C0458 AFA2001C */ sw $v0, 0x1c($sp) -/* 0C105C 800C045C 2405000A */ li $a1, 10 -/* 0C1060 800C0460 0C0302C0 */ jal func_800C0B00 -/* 0C1064 800C0464 24060006 */ li $a2, 6 -/* 0C1068 800C0468 10000003 */ b .L800C0478 -/* 0C106C 800C046C 00000000 */ nop -glabel L800C0470 -/* 0C1070 800C0470 0C030990 */ jal func_800C2640 -/* 0C1074 800C0474 00000000 */ nop -.L800C0478: -/* 0C1078 800C0478 3C02800E */ lui $v0, %hi(sTransitionStatus) # $v0, 0x800e -/* 0C107C 800C047C 8C4231AC */ lw $v0, %lo(sTransitionStatus)($v0) -/* 0C1080 800C0480 00000000 */ nop -.L800C0484: -/* 0C1084 800C0484 8FBF002C */ lw $ra, 0x2c($sp) -/* 0C1088 800C0488 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0C108C 800C048C 03E00008 */ jr $ra -/* 0C1090 800C0490 00000000 */ nop - diff --git a/asm/non_matchings/fade_transition/func_800C0834.s b/asm/non_matchings/fade_transition/func_800C0834.s deleted file mode 100644 index b9b73863..00000000 --- a/asm/non_matchings/fade_transition/func_800C0834.s +++ /dev/null @@ -1,134 +0,0 @@ -glabel func_800C0834 -/* 0C1434 800C0834 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0C1438 800C0838 3C0C8013 */ lui $t4, %hi(D_8012A754) # $t4, 0x8013 -/* 0C143C 800C083C 3C0B800E */ lui $t3, %hi(D_800E31B8) # $t3, 0x800e -/* 0C1440 800C0840 3C0A800E */ lui $t2, %hi(D_800E31A8) # $t2, 0x800e -/* 0C1444 800C0844 3C09800E */ lui $t1, %hi(sTransitionFlags) # $t1, 0x800e -/* 0C1448 800C0848 3C078013 */ lui $a3, %hi(gCurFadeAlpha) # $a3, 0x8013 -/* 0C144C 800C084C 3C068013 */ lui $a2, %hi(sTransitionOpacity) # $a2, 0x8013 -/* 0C1450 800C0850 3C05800E */ lui $a1, %hi(sTransitionFadeTimer) # $a1, 0x800e -/* 0C1454 800C0854 44816000 */ mtc1 $at, $f12 -/* 0C1458 800C0858 44801000 */ mtc1 $zero, $f2 -/* 0C145C 800C085C 24A531B0 */ addiu $a1, %lo(sTransitionFadeTimer) # addiu $a1, $a1, 0x31b0 -/* 0C1460 800C0860 24C6A750 */ addiu $a2, %lo(sTransitionOpacity) # addiu $a2, $a2, -0x58b0 -/* 0C1464 800C0864 24E7A737 */ addiu $a3, %lo(gCurFadeAlpha) # addiu $a3, $a3, -0x58c9 -/* 0C1468 800C0868 252931B4 */ addiu $t1, %lo(sTransitionFlags) # addiu $t1, $t1, 0x31b4 -/* 0C146C 800C086C 254A31A8 */ addiu $t2, %lo(D_800E31A8) # addiu $t2, $t2, 0x31a8 -/* 0C1470 800C0870 256B31B8 */ addiu $t3, %lo(D_800E31B8) # addiu $t3, $t3, 0x31b8 -/* 0C1474 800C0874 258CA754 */ addiu $t4, %lo(D_8012A754) # addiu $t4, $t4, -0x58ac -/* 0C1478 800C0878 3408FFFF */ li $t0, 65535 -.L800C087C: -/* 0C147C 800C087C 94A30000 */ lhu $v1, ($a1) -/* 0C1480 800C0880 24020001 */ li $v0, 1 -/* 0C1484 800C0884 18600047 */ blez $v1, .L800C09A4 -/* 0C1488 800C0888 0083082A */ slt $at, $a0, $v1 -/* 0C148C 800C088C C5800000 */ lwc1 $f0, ($t4) -/* 0C1490 800C0890 1020000A */ beqz $at, .L800C08BC -/* 0C1494 800C0894 24180001 */ li $t8, 1 -/* 0C1498 800C0898 44843000 */ mtc1 $a0, $f6 -/* 0C149C 800C089C C4C40000 */ lwc1 $f4, ($a2) -/* 0C14A0 800C08A0 46803220 */ cvt.s.w $f8, $f6 -/* 0C14A4 800C08A4 00647023 */ subu $t6, $v1, $a0 -/* 0C14A8 800C08A8 A4AE0000 */ sh $t6, ($a1) -/* 0C14AC 800C08AC 46080282 */ mul.s $f10, $f0, $f8 -/* 0C14B0 800C08B0 460A2400 */ add.s $f16, $f4, $f10 -/* 0C14B4 800C08B4 10000009 */ b .L800C08DC -/* 0C14B8 800C08B8 E4D00000 */ swc1 $f16, ($a2) -.L800C08BC: -/* 0C14BC 800C08BC 4602003C */ c.lt.s $f0, $f2 -/* 0C14C0 800C08C0 00832023 */ subu $a0, $a0, $v1 -/* 0C14C4 800C08C4 45000003 */ bc1f .L800C08D4 -/* 0C14C8 800C08C8 00001025 */ move $v0, $zero -/* 0C14CC 800C08CC 10000002 */ b .L800C08D8 -/* 0C14D0 800C08D0 E4C20000 */ swc1 $f2, ($a2) -.L800C08D4: -/* 0C14D4 800C08D4 E4CC0000 */ swc1 $f12, ($a2) -.L800C08D8: -/* 0C14D8 800C08D8 A4A00000 */ sh $zero, ($a1) -.L800C08DC: -/* 0C14DC 800C08DC C4C00000 */ lwc1 $f0, ($a2) -/* 0C14E0 800C08E0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C14E4 800C08E4 4602003C */ c.lt.s $f0, $f2 -/* 0C14E8 800C08E8 00000000 */ nop -/* 0C14EC 800C08EC 45000005 */ bc1f .L800C0904 -/* 0C14F0 800C08F0 00000000 */ nop -/* 0C14F4 800C08F4 E4C20000 */ swc1 $f2, ($a2) -/* 0C14F8 800C08F8 C4C00000 */ lwc1 $f0, ($a2) -/* 0C14FC 800C08FC 10000009 */ b .L800C0924 -/* 0C1500 800C0900 444FF800 */ cfc1 $t7, $31 -.L800C0904: -/* 0C1504 800C0904 4600603C */ c.lt.s $f12, $f0 -/* 0C1508 800C0908 00000000 */ nop -/* 0C150C 800C090C 45000004 */ bc1f .L800C0920 -/* 0C1510 800C0910 00000000 */ nop -/* 0C1514 800C0914 E4CC0000 */ swc1 $f12, ($a2) -/* 0C1518 800C0918 C4C00000 */ lwc1 $f0, ($a2) -/* 0C151C 800C091C 00000000 */ nop -.L800C0920: -/* 0C1520 800C0920 444FF800 */ cfc1 $t7, $31 -.L800C0924: -/* 0C1524 800C0924 44D8F800 */ ctc1 $t8, $31 -/* 0C1528 800C0928 00000000 */ nop -/* 0C152C 800C092C 460004A4 */ cvt.w.s $f18, $f0 -/* 0C1530 800C0930 4458F800 */ cfc1 $t8, $31 -/* 0C1534 800C0934 00000000 */ nop -/* 0C1538 800C0938 33180078 */ andi $t8, $t8, 0x78 -/* 0C153C 800C093C 13000012 */ beqz $t8, .L800C0988 -/* 0C1540 800C0940 00000000 */ nop -/* 0C1544 800C0944 44819000 */ mtc1 $at, $f18 -/* 0C1548 800C0948 24180001 */ li $t8, 1 -/* 0C154C 800C094C 46120481 */ sub.s $f18, $f0, $f18 -/* 0C1550 800C0950 3C018000 */ lui $at, 0x8000 -/* 0C1554 800C0954 44D8F800 */ ctc1 $t8, $31 -/* 0C1558 800C0958 00000000 */ nop -/* 0C155C 800C095C 460094A4 */ cvt.w.s $f18, $f18 -/* 0C1560 800C0960 4458F800 */ cfc1 $t8, $31 -/* 0C1564 800C0964 00000000 */ nop -/* 0C1568 800C0968 33180078 */ andi $t8, $t8, 0x78 -/* 0C156C 800C096C 17000004 */ bnez $t8, .L800C0980 -/* 0C1570 800C0970 00000000 */ nop -/* 0C1574 800C0974 44189000 */ mfc1 $t8, $f18 -/* 0C1578 800C0978 10000007 */ b .L800C0998 -/* 0C157C 800C097C 0301C025 */ or $t8, $t8, $at -.L800C0980: -/* 0C1580 800C0980 10000005 */ b .L800C0998 -/* 0C1584 800C0984 2418FFFF */ li $t8, -1 -.L800C0988: -/* 0C1588 800C0988 44189000 */ mfc1 $t8, $f18 -/* 0C158C 800C098C 00000000 */ nop -/* 0C1590 800C0990 0700FFFB */ bltz $t8, .L800C0980 -/* 0C1594 800C0994 00000000 */ nop -.L800C0998: -/* 0C1598 800C0998 44CFF800 */ ctc1 $t7, $31 -/* 0C159C 800C099C 10000014 */ b .L800C09F0 -/* 0C15A0 800C09A0 A0F80000 */ sb $t8, ($a3) -.L800C09A4: -/* 0C15A4 800C09A4 95230000 */ lhu $v1, ($t1) -/* 0C15A8 800C09A8 00000000 */ nop -/* 0C15AC 800C09AC 11030010 */ beq $t0, $v1, .L800C09F0 -/* 0C15B0 800C09B0 0083082A */ slt $at, $a0, $v1 -/* 0C15B4 800C09B4 10200003 */ beqz $at, .L800C09C4 -/* 0C15B8 800C09B8 0064C823 */ subu $t9, $v1, $a0 -/* 0C15BC 800C09BC 1000000C */ b .L800C09F0 -/* 0C15C0 800C09C0 A5390000 */ sh $t9, ($t1) -.L800C09C4: -/* 0C15C4 800C09C4 8D4D0000 */ lw $t5, ($t2) -/* 0C15C8 800C09C8 00832023 */ subu $a0, $a0, $v1 -/* 0C15CC 800C09CC 11A00008 */ beqz $t5, .L800C09F0 -/* 0C15D0 800C09D0 A5200000 */ sh $zero, ($t1) -/* 0C15D4 800C09D4 C5860000 */ lwc1 $f6, ($t4) -/* 0C15D8 800C09D8 956E0000 */ lhu $t6, ($t3) -/* 0C15DC 800C09DC 46003207 */ neg.s $f8, $f6 -/* 0C15E0 800C09E0 AD400000 */ sw $zero, ($t2) -/* 0C15E4 800C09E4 E5880000 */ swc1 $f8, ($t4) -/* 0C15E8 800C09E8 00001025 */ move $v0, $zero -/* 0C15EC 800C09EC A4AE0000 */ sh $t6, ($a1) -.L800C09F0: -/* 0C15F0 800C09F0 14400003 */ bnez $v0, .L800C0A00 -/* 0C15F4 800C09F4 00000000 */ nop -/* 0C15F8 800C09F8 1C80FFA0 */ bgtz $a0, .L800C087C -/* 0C15FC 800C09FC 00000000 */ nop -.L800C0A00: -/* 0C1600 800C0A00 03E00008 */ jr $ra -/* 0C1604 800C0A04 00000000 */ nop - diff --git a/asm/non_matchings/fade_transition/func_800C2640.s b/asm/non_matchings/fade_transition/func_800C2640.s deleted file mode 100644 index 13cb6f2c..00000000 --- a/asm/non_matchings/fade_transition/func_800C2640.s +++ /dev/null @@ -1,96 +0,0 @@ -glabel func_800C2640 -/* 0C3240 800C2640 AFA40000 */ sw $a0, ($sp) -/* 0C3244 800C2644 3C048013 */ lui $a0, %hi(gLastFadeGreen) # $a0, 0x8013 -/* 0C3248 800C2648 3C038013 */ lui $v1, %hi(gLastFadeRed) # $v1, 0x8013 -/* 0C324C 800C264C 3C058013 */ lui $a1, %hi(gLastFadeBlue) # $a1, 0x8013 -/* 0C3250 800C2650 24A5A740 */ addiu $a1, %lo(gLastFadeBlue) # addiu $a1, $a1, -0x58c0 -/* 0C3254 800C2654 2463A738 */ addiu $v1, %lo(gLastFadeRed) # addiu $v1, $v1, -0x58c8 -/* 0C3258 800C2658 2484A73C */ addiu $a0, %lo(gLastFadeGreen) # addiu $a0, $a0, -0x58c4 -/* 0C325C 800C265C 8C6E0000 */ lw $t6, ($v1) -/* 0C3260 800C2660 8C980000 */ lw $t8, ($a0) -/* 0C3264 800C2664 8CA80000 */ lw $t0, ($a1) -/* 0C3268 800C2668 000E7C00 */ sll $t7, $t6, 0x10 -/* 0C326C 800C266C 0018CC00 */ sll $t9, $t8, 0x10 -/* 0C3270 800C2670 00084C00 */ sll $t1, $t0, 0x10 -/* 0C3274 800C2674 AC6F0000 */ sw $t7, ($v1) -/* 0C3278 800C2678 AC990000 */ sw $t9, ($a0) -/* 0C327C 800C267C ACA90000 */ sw $t1, ($a1) -/* 0C3280 800C2680 240A00FF */ li $t2, 255 -/* 0C3284 800C2684 3C018013 */ lui $at, %hi(gCurFadeAlpha) # $at, 0x8013 -/* 0C3288 800C2688 A02AA737 */ sb $t2, %lo(gCurFadeAlpha)($at) -/* 0C328C 800C268C 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0C3290 800C2690 44812000 */ mtc1 $at, $f4 -/* 0C3294 800C2694 3C018013 */ lui $at, %hi(sTransitionOpacity) # $at, 0x8013 -/* 0C3298 800C2698 44803000 */ mtc1 $zero, $f6 -/* 0C329C 800C269C E424A750 */ swc1 $f4, %lo(sTransitionOpacity)($at) -/* 0C32A0 800C26A0 3C018013 */ lui $at, %hi(D_8012A754) # $at, 0x8013 -/* 0C32A4 800C26A4 3C0B8013 */ lui $t3, %hi(gCurFadeRed) # $t3, 0x8013 -/* 0C32A8 800C26A8 916BA734 */ lbu $t3, %lo(gCurFadeRed)($t3) -/* 0C32AC 800C26AC E426A754 */ swc1 $f6, %lo(D_8012A754)($at) -/* 0C32B0 800C26B0 8C6D0000 */ lw $t5, ($v1) -/* 0C32B4 800C26B4 3C02800E */ lui $v0, %hi(sTransitionFadeTimer) # $v0, 0x800e -/* 0C32B8 800C26B8 944231B0 */ lhu $v0, %lo(sTransitionFadeTimer)($v0) -/* 0C32BC 800C26BC 000B6400 */ sll $t4, $t3, 0x10 -/* 0C32C0 800C26C0 018D7023 */ subu $t6, $t4, $t5 -/* 0C32C4 800C26C4 01C2001A */ div $zero, $t6, $v0 -/* 0C32C8 800C26C8 3C188013 */ lui $t8, %hi(gCurFadeGreen) # $t8, 0x8013 -/* 0C32CC 800C26CC 14400002 */ bnez $v0, .L800C26D8 -/* 0C32D0 800C26D0 00000000 */ nop -/* 0C32D4 800C26D4 0007000D */ break 7 -.L800C26D8: -/* 0C32D8 800C26D8 2401FFFF */ li $at, -1 -/* 0C32DC 800C26DC 14410004 */ bne $v0, $at, .L800C26F0 -/* 0C32E0 800C26E0 3C018000 */ lui $at, 0x8000 -/* 0C32E4 800C26E4 15C10002 */ bne $t6, $at, .L800C26F0 -/* 0C32E8 800C26E8 00000000 */ nop -/* 0C32EC 800C26EC 0006000D */ break 6 -.L800C26F0: -/* 0C32F0 800C26F0 3C018013 */ lui $at, %hi(D_8012A744) # $at, 0x8013 -/* 0C32F4 800C26F4 9318A735 */ lbu $t8, %lo(gCurFadeGreen)($t8) -/* 0C32F8 800C26F8 3C0B8013 */ lui $t3, %hi(gCurFadeBlue) # $t3, 0x8013 -/* 0C32FC 800C26FC 0018CC00 */ sll $t9, $t8, 0x10 -/* 0C3300 800C2700 916BA736 */ lbu $t3, %lo(gCurFadeBlue)($t3) -/* 0C3304 800C2704 24180001 */ li $t8, 1 -/* 0C3308 800C2708 000B6400 */ sll $t4, $t3, 0x10 -/* 0C330C 800C270C 00007812 */ mflo $t7 -/* 0C3310 800C2710 AC2FA744 */ sw $t7, %lo(D_8012A744)($at) -/* 0C3314 800C2714 8C880000 */ lw $t0, ($a0) -/* 0C3318 800C2718 00000000 */ nop -/* 0C331C 800C271C 03284823 */ subu $t1, $t9, $t0 -/* 0C3320 800C2720 0122001A */ div $zero, $t1, $v0 -/* 0C3324 800C2724 14400002 */ bnez $v0, .L800C2730 -/* 0C3328 800C2728 00000000 */ nop -/* 0C332C 800C272C 0007000D */ break 7 -.L800C2730: -/* 0C3330 800C2730 2401FFFF */ li $at, -1 -/* 0C3334 800C2734 14410004 */ bne $v0, $at, .L800C2748 -/* 0C3338 800C2738 3C018000 */ lui $at, 0x8000 -/* 0C333C 800C273C 15210002 */ bne $t1, $at, .L800C2748 -/* 0C3340 800C2740 00000000 */ nop -/* 0C3344 800C2744 0006000D */ break 6 -.L800C2748: -/* 0C3348 800C2748 3C018013 */ lui $at, %hi(D_8012A748) # $at, 0x8013 -/* 0C334C 800C274C 00005012 */ mflo $t2 -/* 0C3350 800C2750 AC2AA748 */ sw $t2, %lo(D_8012A748)($at) -/* 0C3354 800C2754 8CAD0000 */ lw $t5, ($a1) -/* 0C3358 800C2758 00000000 */ nop -/* 0C335C 800C275C 018D7023 */ subu $t6, $t4, $t5 -/* 0C3360 800C2760 01C2001A */ div $zero, $t6, $v0 -/* 0C3364 800C2764 14400002 */ bnez $v0, .L800C2770 -/* 0C3368 800C2768 00000000 */ nop -/* 0C336C 800C276C 0007000D */ break 7 -.L800C2770: -/* 0C3370 800C2770 2401FFFF */ li $at, -1 -/* 0C3374 800C2774 14410004 */ bne $v0, $at, .L800C2788 -/* 0C3378 800C2778 3C018000 */ lui $at, 0x8000 -/* 0C337C 800C277C 15C10002 */ bne $t6, $at, .L800C2788 -/* 0C3380 800C2780 00000000 */ nop -/* 0C3384 800C2784 0006000D */ break 6 -.L800C2788: -/* 0C3388 800C2788 3C018013 */ lui $at, %hi(D_8012A74C) # $at, 0x8013 -/* 0C338C 800C278C 00007812 */ mflo $t7 -/* 0C3390 800C2790 AC2FA74C */ sw $t7, %lo(D_8012A74C)($at) -/* 0C3394 800C2794 3C01800E */ lui $at, %hi(sTransitionStatus) # $at, 0x800e -/* 0C3398 800C2798 03E00008 */ jr $ra -/* 0C339C 800C279C AC3831AC */ sw $t8, %lo(sTransitionStatus)($at) - diff --git a/asm/non_matchings/fade_transition/func_800C27A0.s b/asm/non_matchings/fade_transition/func_800C27A0.s deleted file mode 100644 index 62c868d7..00000000 --- a/asm/non_matchings/fade_transition/func_800C27A0.s +++ /dev/null @@ -1,88 +0,0 @@ -glabel func_800C27A0 -/* 0C33A0 800C27A0 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 0C33A4 800C27A4 AFB2000C */ sw $s2, 0xc($sp) -/* 0C33A8 800C27A8 AFB00004 */ sw $s0, 4($sp) -/* 0C33AC 800C27AC AFB10008 */ sw $s1, 8($sp) -/* 0C33B0 800C27B0 3C108013 */ lui $s0, %hi(gCurFadeBlue) # $s0, 0x8013 -/* 0C33B4 800C27B4 3C12800E */ lui $s2, %hi(sTransitionFlags) # $s2, 0x800e -/* 0C33B8 800C27B8 3C0D8013 */ lui $t5, %hi(gCurFadeGreen) # $t5, 0x8013 -/* 0C33BC 800C27BC 3C0C8013 */ lui $t4, %hi(gCurFadeRed) # $t4, 0x8013 -/* 0C33C0 800C27C0 3C0B8013 */ lui $t3, %hi(D_8012A74C) # $t3, 0x8013 -/* 0C33C4 800C27C4 3C0A8013 */ lui $t2, %hi(gLastFadeBlue) # $t2, 0x8013 -/* 0C33C8 800C27C8 3C098013 */ lui $t1, %hi(D_8012A748) # $t1, 0x8013 -/* 0C33CC 800C27CC 3C088013 */ lui $t0, %hi(gLastFadeGreen) # $t0, 0x8013 -/* 0C33D0 800C27D0 3C078013 */ lui $a3, %hi(D_8012A744) # $a3, 0x8013 -/* 0C33D4 800C27D4 3C068013 */ lui $a2, %hi(gLastFadeRed) # $a2, 0x8013 -/* 0C33D8 800C27D8 3C05800E */ lui $a1, %hi(sTransitionFadeTimer) # $a1, 0x800e -/* 0C33DC 800C27DC 24A531B0 */ addiu $a1, %lo(sTransitionFadeTimer) # addiu $a1, $a1, 0x31b0 -/* 0C33E0 800C27E0 24C6A738 */ addiu $a2, %lo(gLastFadeRed) # addiu $a2, $a2, -0x58c8 -/* 0C33E4 800C27E4 24E7A744 */ addiu $a3, %lo(D_8012A744) # addiu $a3, $a3, -0x58bc -/* 0C33E8 800C27E8 2508A73C */ addiu $t0, %lo(gLastFadeGreen) # addiu $t0, $t0, -0x58c4 -/* 0C33EC 800C27EC 2529A748 */ addiu $t1, %lo(D_8012A748) # addiu $t1, $t1, -0x58b8 -/* 0C33F0 800C27F0 254AA740 */ addiu $t2, %lo(gLastFadeBlue) # addiu $t2, $t2, -0x58c0 -/* 0C33F4 800C27F4 256BA74C */ addiu $t3, %lo(D_8012A74C) # addiu $t3, $t3, -0x58b4 -/* 0C33F8 800C27F8 258CA734 */ addiu $t4, %lo(gCurFadeRed) # addiu $t4, $t4, -0x58cc -/* 0C33FC 800C27FC 25ADA735 */ addiu $t5, %lo(gCurFadeGreen) # addiu $t5, $t5, -0x58cb -/* 0C3400 800C2800 265231B4 */ addiu $s2, %lo(sTransitionFlags) # addiu $s2, $s2, 0x31b4 -/* 0C3404 800C2804 2610A736 */ addiu $s0, %lo(gCurFadeBlue) # addiu $s0, $s0, -0x58ca -/* 0C3408 800C2808 3411FFFF */ li $s1, 65535 -/* 0C340C 800C280C 24020001 */ li $v0, 1 -.L800C2810: -/* 0C3410 800C2810 94A30000 */ lhu $v1, ($a1) -/* 0C3414 800C2814 00000000 */ nop -/* 0C3418 800C2818 18600024 */ blez $v1, .L800C28AC -/* 0C341C 800C281C 00000000 */ nop -/* 0C3420 800C2820 8CEF0000 */ lw $t7, ($a3) -/* 0C3424 800C2824 8CCE0000 */ lw $t6, ($a2) -/* 0C3428 800C2828 01E40019 */ multu $t7, $a0 -/* 0C342C 800C282C 8D0F0000 */ lw $t7, ($t0) -/* 0C3430 800C2830 0083082A */ slt $at, $a0, $v1 -/* 0C3434 800C2834 0000C012 */ mflo $t8 -/* 0C3438 800C2838 01D8C821 */ addu $t9, $t6, $t8 -/* 0C343C 800C283C 8D2E0000 */ lw $t6, ($t1) -/* 0C3440 800C2840 ACD90000 */ sw $t9, ($a2) -/* 0C3444 800C2844 01C40019 */ multu $t6, $a0 -/* 0C3448 800C2848 8D4E0000 */ lw $t6, ($t2) -/* 0C344C 800C284C 0000C012 */ mflo $t8 -/* 0C3450 800C2850 01F8C821 */ addu $t9, $t7, $t8 -/* 0C3454 800C2854 8D6F0000 */ lw $t7, ($t3) -/* 0C3458 800C2858 AD190000 */ sw $t9, ($t0) -/* 0C345C 800C285C 01E40019 */ multu $t7, $a0 -/* 0C3460 800C2860 0000C012 */ mflo $t8 -/* 0C3464 800C2864 01D8C821 */ addu $t9, $t6, $t8 -/* 0C3468 800C2868 1420000D */ bnez $at, .L800C28A0 -/* 0C346C 800C286C AD590000 */ sw $t9, ($t2) -/* 0C3470 800C2870 918F0000 */ lbu $t7, ($t4) -/* 0C3474 800C2874 91B80000 */ lbu $t8, ($t5) -/* 0C3478 800C2878 000F7400 */ sll $t6, $t7, 0x10 -/* 0C347C 800C287C 920F0000 */ lbu $t7, ($s0) -/* 0C3480 800C2880 ACCE0000 */ sw $t6, ($a2) -/* 0C3484 800C2884 0018CC00 */ sll $t9, $t8, 0x10 -/* 0C3488 800C2888 000F7400 */ sll $t6, $t7, 0x10 -/* 0C348C 800C288C AD190000 */ sw $t9, ($t0) -/* 0C3490 800C2890 AD4E0000 */ sw $t6, ($t2) -/* 0C3494 800C2894 00832023 */ subu $a0, $a0, $v1 -/* 0C3498 800C2898 1000000C */ b .L800C28CC -/* 0C349C 800C289C A4A00000 */ sh $zero, ($a1) -.L800C28A0: -/* 0C34A0 800C28A0 0064C023 */ subu $t8, $v1, $a0 -/* 0C34A4 800C28A4 10000009 */ b .L800C28CC -/* 0C34A8 800C28A8 A4B80000 */ sh $t8, ($a1) -.L800C28AC: -/* 0C34AC 800C28AC 96430000 */ lhu $v1, ($s2) -/* 0C34B0 800C28B0 00000000 */ nop -/* 0C34B4 800C28B4 12230005 */ beq $s1, $v1, .L800C28CC -/* 0C34B8 800C28B8 0064C823 */ subu $t9, $v1, $a0 -/* 0C34BC 800C28BC 332FFFFF */ andi $t7, $t9, 0xffff -/* 0C34C0 800C28C0 1DE00002 */ bgtz $t7, .L800C28CC -/* 0C34C4 800C28C4 A6590000 */ sh $t9, ($s2) -/* 0C34C8 800C28C8 A6400000 */ sh $zero, ($s2) -.L800C28CC: -/* 0C34CC 800C28CC 1040FFD0 */ beqz $v0, .L800C2810 -/* 0C34D0 800C28D0 00000000 */ nop -/* 0C34D4 800C28D4 8FB00004 */ lw $s0, 4($sp) -/* 0C34D8 800C28D8 8FB10008 */ lw $s1, 8($sp) -/* 0C34DC 800C28DC 8FB2000C */ lw $s2, 0xc($sp) -/* 0C34E0 800C28E0 03E00008 */ jr $ra -/* 0C34E4 800C28E4 27BD0010 */ addiu $sp, $sp, 0x10 - diff --git a/asm/non_matchings/game/load_level.s b/asm/non_matchings/game/load_level.s deleted file mode 100644 index 249265f2..00000000 --- a/asm/non_matchings/game/load_level.s +++ /dev/null @@ -1,745 +0,0 @@ -glabel load_level -/* 06BE50 8006B250 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 06BE54 8006B254 AFBF002C */ sw $ra, 0x2c($sp) -/* 06BE58 8006B258 AFB10028 */ sw $s1, 0x28($sp) -/* 06BE5C 8006B25C AFB00024 */ sw $s0, 0x24($sp) -/* 06BE60 8006B260 AFA40060 */ sw $a0, 0x60($sp) -/* 06BE64 8006B264 AFA50064 */ sw $a1, 0x64($sp) -/* 06BE68 8006B268 AFA60068 */ sw $a2, 0x68($sp) -/* 06BE6C 8006B26C 0C01C9C2 */ jal func_80072708 -/* 06BE70 8006B270 AFA7006C */ sw $a3, 0x6c($sp) -/* 06BE74 8006B274 8FAE0070 */ lw $t6, 0x70($sp) -/* 06BE78 8006B278 2402FFFF */ li $v0, -1 -/* 06BE7C 8006B27C 15C20003 */ bne $t6, $v0, .L8006B28C -/* 06BE80 8006B280 8FAF0064 */ lw $t7, 0x64($sp) -/* 06BE84 8006B284 AFA00070 */ sw $zero, 0x70($sp) -/* 06BE88 8006B288 8FAF0064 */ lw $t7, 0x64($sp) -.L8006B28C: -/* 06BE8C 8006B28C 00000000 */ nop -/* 06BE90 8006B290 15E20004 */ bne $t7, $v0, .L8006B2A4 -/* 06BE94 8006B294 24180001 */ li $t8, 1 -/* 06BE98 8006B298 AFB80048 */ sw $t8, 0x48($sp) -/* 06BE9C 8006B29C 10000002 */ b .L8006B2A8 -/* 06BEA0 8006B2A0 AFA00064 */ sw $zero, 0x64($sp) -.L8006B2A4: -/* 06BEA4 8006B2A4 AFA00048 */ sw $zero, 0x48($sp) -.L8006B2A8: -/* 06BEA8 8006B2A8 8FB90064 */ lw $t9, 0x64($sp) -/* 06BEAC 8006B2AC 00000000 */ nop -/* 06BEB0 8006B2B0 17200006 */ bnez $t9, .L8006B2CC -/* 06BEB4 8006B2B4 8FAA0064 */ lw $t2, 0x64($sp) -/* 06BEB8 8006B2B8 0C000C63 */ jal set_sound_channel_count -/* 06BEBC 8006B2BC 24040008 */ li $a0, 8 -/* 06BEC0 8006B2C0 1000000B */ b .L8006B2F0 -/* 06BEC4 8006B2C4 00000000 */ nop -/* 06BEC8 8006B2C8 8FAA0064 */ lw $t2, 0x64($sp) -.L8006B2CC: -/* 06BECC 8006B2CC 24010001 */ li $at, 1 -/* 06BED0 8006B2D0 15410005 */ bne $t2, $at, .L8006B2E8 -/* 06BED4 8006B2D4 00000000 */ nop -/* 06BED8 8006B2D8 0C000C63 */ jal set_sound_channel_count -/* 06BEDC 8006B2DC 2404000C */ li $a0, 12 -/* 06BEE0 8006B2E0 10000003 */ b .L8006B2F0 -/* 06BEE4 8006B2E4 00000000 */ nop -.L8006B2E8: -/* 06BEE8 8006B2E8 0C000C63 */ jal set_sound_channel_count -/* 06BEEC 8006B2EC 24040010 */ li $a0, 16 -.L8006B2F0: -/* 06BEF0 8006B2F0 0C01BAA4 */ jal get_settings -/* 06BEF4 8006B2F4 00000000 */ nop -/* 06BEF8 8006B2F8 AFA20040 */ sw $v0, 0x40($sp) -/* 06BEFC 8006B2FC 0C01DB16 */ jal load_asset_section_from_rom -/* 06BF00 8006B300 24040016 */ li $a0, 22 -/* 06BF04 8006B304 3C098012 */ lui $t1, %hi(gTempAssetTable) # $t1, 0x8012 -/* 06BF08 8006B308 25291160 */ addiu $t1, %lo(gTempAssetTable) # addiu $t1, $t1, 0x1160 -/* 06BF0C 8006B30C AD220000 */ sw $v0, ($t1) -/* 06BF10 8006B310 8C4B0000 */ lw $t3, ($v0) -/* 06BF14 8006B314 2408FFFF */ li $t0, -1 -/* 06BF18 8006B318 00001825 */ move $v1, $zero -/* 06BF1C 8006B31C 110B0005 */ beq $t0, $t3, .L8006B334 -/* 06BF20 8006B320 00403025 */ move $a2, $v0 -.L8006B324: -/* 06BF24 8006B324 8C4C0004 */ lw $t4, 4($v0) -/* 06BF28 8006B328 24630001 */ addiu $v1, $v1, 1 -/* 06BF2C 8006B32C 150CFFFD */ bne $t0, $t4, .L8006B324 -/* 06BF30 8006B330 24420004 */ addiu $v0, $v0, 4 -.L8006B334: -/* 06BF34 8006B334 8FAD0060 */ lw $t5, 0x60($sp) -/* 06BF38 8006B338 2463FFFF */ addiu $v1, $v1, -1 -/* 06BF3C 8006B33C 01A3082A */ slt $at, $t5, $v1 -/* 06BF40 8006B340 14200002 */ bnez $at, .L8006B34C -/* 06BF44 8006B344 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff -/* 06BF48 8006B348 AFA00060 */ sw $zero, 0x60($sp) -.L8006B34C: -/* 06BF4C 8006B34C 8FA30060 */ lw $v1, 0x60($sp) -/* 06BF50 8006B350 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 06BF54 8006B354 00037080 */ sll $t6, $v1, 2 -/* 06BF58 8006B358 00CE1021 */ addu $v0, $a2, $t6 -/* 06BF5C 8006B35C 8C500000 */ lw $s0, ($v0) -/* 06BF60 8006B360 8C4F0004 */ lw $t7, 4($v0) -/* 06BF64 8006B364 AFAE0034 */ sw $t6, 0x34($sp) -/* 06BF68 8006B368 01F02023 */ subu $a0, $t7, $s0 -/* 06BF6C 8006B36C 0C01C327 */ jal allocate_from_main_pool_safe -/* 06BF70 8006B370 AFA40054 */ sw $a0, 0x54($sp) -/* 06BF74 8006B374 3C118012 */ lui $s1, %hi(gCurrentLevelHeader) # $s1, 0x8012 -/* 06BF78 8006B378 26311168 */ addiu $s1, %lo(gCurrentLevelHeader) # addiu $s1, $s1, 0x1168 -/* 06BF7C 8006B37C 8FA70054 */ lw $a3, 0x54($sp) -/* 06BF80 8006B380 AE220000 */ sw $v0, ($s1) -/* 06BF84 8006B384 24040017 */ li $a0, 23 -/* 06BF88 8006B388 00402825 */ move $a1, $v0 -/* 06BF8C 8006B38C 0C01DB9A */ jal load_asset_to_address -/* 06BF90 8006B390 02003025 */ move $a2, $s0 -/* 06BF94 8006B394 3C01800E */ lui $at, %hi(D_800DD330) # $at, 0x800e -/* 06BF98 8006B398 8FB80060 */ lw $t8, 0x60($sp) -/* 06BF9C 8006B39C A020D330 */ sb $zero, %lo(D_800DD330)($at) -/* 06BFA0 8006B3A0 8E390000 */ lw $t9, ($s1) -/* 06BFA4 8006B3A4 AFB80044 */ sw $t8, 0x44($sp) -/* 06BFA8 8006B3A8 832A004C */ lb $t2, 0x4c($t9) -/* 06BFAC 8006B3AC 00000000 */ nop -/* 06BFB0 8006B3B0 15400003 */ bnez $t2, .L8006B3C0 -/* 06BFB4 8006B3B4 00000000 */ nop -/* 06BFB8 8006B3B8 0C01B0B9 */ jal func_8006C2E4 -/* 06BFBC 8006B3BC 00000000 */ nop -.L8006B3C0: -/* 06BFC0 8006B3C0 0C01B0BC */ jal func_8006C2F0 -/* 06BFC4 8006B3C4 00000000 */ nop -/* 06BFC8 8006B3C8 14400099 */ bnez $v0, .L8006B630 -/* 06BFCC 8006B3CC 3C0B800E */ lui $t3, %hi(D_800DD32C) # $t3, 0x800e -/* 06BFD0 8006B3D0 856BD32C */ lh $t3, %lo(D_800DD32C)($t3) -/* 06BFD4 8006B3D4 00000000 */ nop -/* 06BFD8 8006B3D8 15600096 */ bnez $t3, .L8006B634 -/* 06BFDC 8006B3DC 8FAE0044 */ lw $t6, 0x44($sp) -/* 06BFE0 8006B3E0 8E230000 */ lw $v1, ($s1) -/* 06BFE4 8006B3E4 24010008 */ li $at, 8 -/* 06BFE8 8006B3E8 806C004C */ lb $t4, 0x4c($v1) -/* 06BFEC 8006B3EC 8FAD0040 */ lw $t5, 0x40($sp) -/* 06BFF0 8006B3F0 1581003E */ bne $t4, $at, .L8006B4EC -/* 06BFF4 8006B3F4 00000000 */ nop -/* 06BFF8 8006B3F8 8DAE0004 */ lw $t6, 4($t5) -/* 06BFFC 8006B3FC 8FAF0034 */ lw $t7, 0x34($sp) -/* 06C000 8006B400 80640000 */ lb $a0, ($v1) -/* 06C004 8006B404 01CFC021 */ addu $t8, $t6, $t7 -/* 06C008 8006B408 8F100000 */ lw $s0, ($t8) -/* 06C00C 8006B40C 10800004 */ beqz $a0, .L8006B420 -/* 06C010 8006B410 00001025 */ move $v0, $zero -/* 06C014 8006B414 24010005 */ li $at, 5 -/* 06C018 8006B418 14810003 */ bne $a0, $at, .L8006B428 -/* 06C01C 8006B41C 32030001 */ andi $v1, $s0, 1 -.L8006B420: -/* 06C020 8006B420 24020001 */ li $v0, 1 -/* 06C024 8006B424 32030001 */ andi $v1, $s0, 1 -.L8006B428: -/* 06C028 8006B428 10600004 */ beqz $v1, .L8006B43C -/* 06C02C 8006B42C 8FA40060 */ lw $a0, 0x60($sp) -/* 06C030 8006B430 1040002E */ beqz $v0, .L8006B4EC -/* 06C034 8006B434 00000000 */ nop -/* 06C038 8006B438 8FA40060 */ lw $a0, 0x60($sp) -.L8006B43C: -/* 06C03C 8006B43C 8FA50068 */ lw $a1, 0x68($sp) -/* 06C040 8006B440 8FA6006C */ lw $a2, 0x6c($sp) -/* 06C044 8006B444 8FA70070 */ lw $a3, 0x70($sp) -/* 06C048 8006B448 AFA2004C */ sw $v0, 0x4c($sp) -/* 06C04C 8006B44C 0C01B06B */ jal func_8006C1AC -/* 06C050 8006B450 AFA30038 */ sw $v1, 0x38($sp) -/* 06C054 8006B454 8FA50040 */ lw $a1, 0x40($sp) -/* 06C058 8006B458 240B0001 */ li $t3, 1 -/* 06C05C 8006B45C 90AA0048 */ lbu $t2, 0x48($a1) -/* 06C060 8006B460 94B9000C */ lhu $t9, 0xc($a1) -/* 06C064 8006B464 014B6004 */ sllv $t4, $t3, $t2 -/* 06C068 8006B468 8FA2004C */ lw $v0, 0x4c($sp) -/* 06C06C 8006B46C 8FA30038 */ lw $v1, 0x38($sp) -/* 06C070 8006B470 032C6824 */ and $t5, $t9, $t4 -/* 06C074 8006B474 11A00004 */ beqz $t5, .L8006B488 -/* 06C078 8006B478 240F0003 */ li $t7, 3 -/* 06C07C 8006B47C 240E0007 */ li $t6, 7 -/* 06C080 8006B480 10000002 */ b .L8006B48C -/* 06C084 8006B484 AFAE0070 */ sw $t6, 0x70($sp) -.L8006B488: -/* 06C088 8006B488 AFAF0070 */ sw $t7, 0x70($sp) -.L8006B48C: -/* 06C08C 8006B48C 10400006 */ beqz $v0, .L8006B4A8 -/* 06C090 8006B490 00000000 */ nop -/* 06C094 8006B494 10600004 */ beqz $v1, .L8006B4A8 -/* 06C098 8006B498 AFA00070 */ sw $zero, 0x70($sp) -/* 06C09C 8006B49C 24180002 */ li $t8, 2 -/* 06C0A0 8006B4A0 3C01800E */ lui $at, %hi(D_800DD330) # $at, 0x800e -/* 06C0A4 8006B4A4 A038D330 */ sb $t8, %lo(D_800DD330)($at) -.L8006B4A8: -/* 06C0A8 8006B4A8 0C0078A7 */ jal get_misc_asset -/* 06C0AC 8006B4AC 24040043 */ li $a0, 67 -/* 06C0B0 8006B4B0 8FA50060 */ lw $a1, 0x60($sp) -/* 06C0B4 8006B4B4 804B0000 */ lb $t3, ($v0) -/* 06C0B8 8006B4B8 00402025 */ move $a0, $v0 -/* 06C0BC 8006B4BC 10AB0006 */ beq $a1, $t3, .L8006B4D8 -/* 06C0C0 8006B4C0 00008025 */ move $s0, $zero -/* 06C0C4 8006B4C4 00801825 */ move $v1, $a0 -.L8006B4C8: -/* 06C0C8 8006B4C8 806A0002 */ lb $t2, 2($v1) -/* 06C0CC 8006B4CC 26100002 */ addiu $s0, $s0, 2 -/* 06C0D0 8006B4D0 14AAFFFD */ bne $a1, $t2, .L8006B4C8 -/* 06C0D4 8006B4D4 24630002 */ addiu $v1, $v1, 2 -.L8006B4D8: -/* 06C0D8 8006B4D8 0202C821 */ addu $t9, $s0, $v0 -/* 06C0DC 8006B4DC 832C0001 */ lb $t4, 1($t9) -/* 06C0E0 8006B4E0 8FAD0070 */ lw $t5, 0x70($sp) -/* 06C0E4 8006B4E4 AFAC0060 */ sw $t4, 0x60($sp) -/* 06C0E8 8006B4E8 AFAD0068 */ sw $t5, 0x68($sp) -.L8006B4EC: -/* 06C0EC 8006B4EC 8E230000 */ lw $v1, ($s1) -/* 06C0F0 8006B4F0 24010005 */ li $at, 5 -/* 06C0F4 8006B4F4 8065004C */ lb $a1, 0x4c($v1) -/* 06C0F8 8006B4F8 00000000 */ nop -/* 06C0FC 8006B4FC 14A1002C */ bne $a1, $at, .L8006B5B0 -/* 06C100 8006B500 24010005 */ li $at, 5 -/* 06C104 8006B504 80640000 */ lb $a0, ($v1) -/* 06C108 8006B508 00000000 */ nop -/* 06C10C 8006B50C 18800027 */ blez $a0, .L8006B5AC -/* 06C110 8006B510 28810005 */ slti $at, $a0, 5 -/* 06C114 8006B514 10200026 */ beqz $at, .L8006B5B0 -/* 06C118 8006B518 24010005 */ li $at, 5 -/* 06C11C 8006B51C 8FAE0040 */ lw $t6, 0x40($sp) -/* 06C120 8006B520 24180001 */ li $t8, 1 -/* 06C124 8006B524 95CF0008 */ lhu $t7, 8($t6) -/* 06C128 8006B528 00985804 */ sllv $t3, $t8, $a0 -/* 06C12C 8006B52C 01EB5024 */ and $t2, $t7, $t3 -/* 06C130 8006B530 1140001E */ beqz $t2, .L8006B5AC -/* 06C134 8006B534 00808025 */ move $s0, $a0 -/* 06C138 8006B538 8DCD0010 */ lw $t5, 0x10($t6) -/* 06C13C 8006B53C 2499001F */ addiu $t9, $a0, 0x1f -/* 06C140 8006B540 240C4000 */ li $t4, 16384 -/* 06C144 8006B544 032C1004 */ sllv $v0, $t4, $t9 -/* 06C148 8006B548 01A2C024 */ and $t8, $t5, $v0 -/* 06C14C 8006B54C 17000018 */ bnez $t8, .L8006B5B0 -/* 06C150 8006B550 24010005 */ li $at, 5 -/* 06C154 8006B554 8FA40060 */ lw $a0, 0x60($sp) -/* 06C158 8006B558 8FA50068 */ lw $a1, 0x68($sp) -/* 06C15C 8006B55C 8FA6006C */ lw $a2, 0x6c($sp) -/* 06C160 8006B560 8FA70070 */ lw $a3, 0x70($sp) -/* 06C164 8006B564 0C01B06B */ jal func_8006C1AC -/* 06C168 8006B568 AFA20030 */ sw $v0, 0x30($sp) -/* 06C16C 8006B56C 8FA30040 */ lw $v1, 0x40($sp) -/* 06C170 8006B570 8FA20030 */ lw $v0, 0x30($sp) -/* 06C174 8006B574 8C6F0010 */ lw $t7, 0x10($v1) -/* 06C178 8006B578 24040044 */ li $a0, 68 -/* 06C17C 8006B57C 01E25825 */ or $t3, $t7, $v0 -/* 06C180 8006B580 0C0078A7 */ jal get_misc_asset -/* 06C184 8006B584 AC6B0010 */ sw $t3, 0x10($v1) -/* 06C188 8006B588 02025021 */ addu $t2, $s0, $v0 -/* 06C18C 8006B58C 814CFFFF */ lb $t4, -1($t2) -/* 06C190 8006B590 8E230000 */ lw $v1, ($s1) -/* 06C194 8006B594 24190005 */ li $t9, 5 -/* 06C198 8006B598 AFA00068 */ sw $zero, 0x68($sp) -/* 06C19C 8006B59C AFB90070 */ sw $t9, 0x70($sp) -/* 06C1A0 8006B5A0 AFAC0060 */ sw $t4, 0x60($sp) -/* 06C1A4 8006B5A4 8065004C */ lb $a1, 0x4c($v1) -/* 06C1A8 8006B5A8 00000000 */ nop -.L8006B5AC: -/* 06C1AC 8006B5AC 24010005 */ li $at, 5 -.L8006B5B0: -/* 06C1B0 8006B5B0 14A10020 */ bne $a1, $at, .L8006B634 -/* 06C1B4 8006B5B4 8FAE0044 */ lw $t6, 0x44($sp) -/* 06C1B8 8006B5B8 806E0000 */ lb $t6, ($v1) -/* 06C1BC 8006B5BC 8FAD0040 */ lw $t5, 0x40($sp) -/* 06C1C0 8006B5C0 15C0001C */ bnez $t6, .L8006B634 -/* 06C1C4 8006B5C4 8FAE0044 */ lw $t6, 0x44($sp) -/* 06C1C8 8006B5C8 8DB80010 */ lw $t8, 0x10($t5) -/* 06C1CC 8006B5CC 00000000 */ nop -/* 06C1D0 8006B5D0 330F2000 */ andi $t7, $t8, 0x2000 -/* 06C1D4 8006B5D4 15E00017 */ bnez $t7, .L8006B634 -/* 06C1D8 8006B5D8 8FAE0044 */ lw $t6, 0x44($sp) -/* 06C1DC 8006B5DC 91AB0017 */ lbu $t3, 0x17($t5) -/* 06C1E0 8006B5E0 8FA40060 */ lw $a0, 0x60($sp) -/* 06C1E4 8006B5E4 29610004 */ slti $at, $t3, 4 -/* 06C1E8 8006B5E8 14200012 */ bnez $at, .L8006B634 -/* 06C1EC 8006B5EC 8FAE0044 */ lw $t6, 0x44($sp) -/* 06C1F0 8006B5F0 8FA50068 */ lw $a1, 0x68($sp) -/* 06C1F4 8006B5F4 8FA6006C */ lw $a2, 0x6c($sp) -/* 06C1F8 8006B5F8 8FA70070 */ lw $a3, 0x70($sp) -/* 06C1FC 8006B5FC AFA00070 */ sw $zero, 0x70($sp) -/* 06C200 8006B600 0C01B06B */ jal func_8006C1AC -/* 06C204 8006B604 AFA00068 */ sw $zero, 0x68($sp) -/* 06C208 8006B608 8FA20040 */ lw $v0, 0x40($sp) -/* 06C20C 8006B60C 24040044 */ li $a0, 68 -/* 06C210 8006B610 8C4A0010 */ lw $t2, 0x10($v0) -/* 06C214 8006B614 00000000 */ nop -/* 06C218 8006B618 354C2000 */ ori $t4, $t2, 0x2000 -/* 06C21C 8006B61C 0C0078A7 */ jal get_misc_asset -/* 06C220 8006B620 AC4C0010 */ sw $t4, 0x10($v0) -/* 06C224 8006B624 80590004 */ lb $t9, 4($v0) -/* 06C228 8006B628 00000000 */ nop -/* 06C22C 8006B62C AFB90060 */ sw $t9, 0x60($sp) -.L8006B630: -/* 06C230 8006B630 8FAE0044 */ lw $t6, 0x44($sp) -.L8006B634: -/* 06C234 8006B634 8FB80060 */ lw $t8, 0x60($sp) -/* 06C238 8006B638 3C01800E */ lui $at, %hi(D_800DD32C) # $at, 0x800e -/* 06C23C 8006B63C 11D80016 */ beq $t6, $t8, .L8006B698 -/* 06C240 8006B640 A420D32C */ sh $zero, %lo(D_800DD32C)($at) -/* 06C244 8006B644 8E240000 */ lw $a0, ($s1) -/* 06C248 8006B648 00187880 */ sll $t7, $t8, 2 -/* 06C24C 8006B64C 0C01C450 */ jal free_from_memory_pool -/* 06C250 8006B650 AFAF0034 */ sw $t7, 0x34($sp) -/* 06C254 8006B654 3C0D8012 */ lui $t5, %hi(gTempAssetTable) # $t5, 0x8012 -/* 06C258 8006B658 8DAD1160 */ lw $t5, %lo(gTempAssetTable)($t5) -/* 06C25C 8006B65C 8FAB0034 */ lw $t3, 0x34($sp) -/* 06C260 8006B660 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff -/* 06C264 8006B664 01AB1021 */ addu $v0, $t5, $t3 -/* 06C268 8006B668 8C500000 */ lw $s0, ($v0) -/* 06C26C 8006B66C 8C4A0004 */ lw $t2, 4($v0) -/* 06C270 8006B670 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 06C274 8006B674 01502023 */ subu $a0, $t2, $s0 -/* 06C278 8006B678 0C01C327 */ jal allocate_from_main_pool_safe -/* 06C27C 8006B67C AFA40054 */ sw $a0, 0x54($sp) -/* 06C280 8006B680 8FA70054 */ lw $a3, 0x54($sp) -/* 06C284 8006B684 AE220000 */ sw $v0, ($s1) -/* 06C288 8006B688 24040017 */ li $a0, 23 -/* 06C28C 8006B68C 00402825 */ move $a1, $v0 -/* 06C290 8006B690 0C01DB9A */ jal load_asset_to_address -/* 06C294 8006B694 02003025 */ move $a2, $s0 -.L8006B698: -/* 06C298 8006B698 3C048012 */ lui $a0, %hi(gTempAssetTable) # $a0, 0x8012 -/* 06C29C 8006B69C 8C841160 */ lw $a0, %lo(gTempAssetTable)($a0) -/* 06C2A0 8006B6A0 0C01C450 */ jal free_from_memory_pool -/* 06C2A4 8006B6A4 00000000 */ nop -/* 06C2A8 8006B6A8 8E240000 */ lw $a0, ($s1) -/* 06C2AC 8006B6AC 0C01AFF2 */ jal func_8006BFC8 -/* 06C2B0 8006B6B0 24840020 */ addiu $a0, $a0, 0x20 -/* 06C2B4 8006B6B4 0C0032F0 */ jal func_8000CBC0 -/* 06C2B8 8006B6B8 00000000 */ nop -/* 06C2BC 8006B6BC 8FAC0060 */ lw $t4, 0x60($sp) -/* 06C2C0 8006B6C0 3C018012 */ lui $at, %hi(gMapId) # $at, 0x8012 -/* 06C2C4 8006B6C4 00001825 */ move $v1, $zero -/* 06C2C8 8006B6C8 AC2C1164 */ sw $t4, %lo(gMapId)($at) -.L8006B6CC: -/* 06C2CC 8006B6CC 8E390000 */ lw $t9, ($s1) -/* 06C2D0 8006B6D0 2401FFFF */ li $at, -1 -/* 06C2D4 8006B6D4 03237021 */ addu $t6, $t9, $v1 -/* 06C2D8 8006B6D8 8DC40074 */ lw $a0, 0x74($t6) -/* 06C2DC 8006B6DC 00000000 */ nop -/* 06C2E0 8006B6E0 10810010 */ beq $a0, $at, .L8006B724 -/* 06C2E4 8006B6E4 00000000 */ nop -/* 06C2E8 8006B6E8 0C0078A7 */ jal get_misc_asset -/* 06C2EC 8006B6EC AFA30038 */ sw $v1, 0x38($sp) -/* 06C2F0 8006B6F0 8FA30038 */ lw $v1, 0x38($sp) -/* 06C2F4 8006B6F4 8E380000 */ lw $t8, ($s1) -/* 06C2F8 8006B6F8 00000000 */ nop -/* 06C2FC 8006B6FC 03037821 */ addu $t7, $t8, $v1 -/* 06C300 8006B700 ADE20074 */ sw $v0, 0x74($t7) -/* 06C304 8006B704 8E2D0000 */ lw $t5, ($s1) -/* 06C308 8006B708 00000000 */ nop -/* 06C30C 8006B70C 01A35821 */ addu $t3, $t5, $v1 -/* 06C310 8006B710 8D640074 */ lw $a0, 0x74($t3) -/* 06C314 8006B714 0C01FC7A */ jal func_8007F1E8 -/* 06C318 8006B718 00000000 */ nop -/* 06C31C 8006B71C 8FA30038 */ lw $v1, 0x38($sp) -/* 06C320 8006B720 00000000 */ nop -.L8006B724: -/* 06C324 8006B724 24630004 */ addiu $v1, $v1, 4 -/* 06C328 8006B728 2861001C */ slti $at, $v1, 0x1c -/* 06C32C 8006B72C 1420FFE7 */ bnez $at, .L8006B6CC -/* 06C330 8006B730 00000000 */ nop -/* 06C334 8006B734 8FAA0070 */ lw $t2, 0x70($sp) -/* 06C338 8006B738 24010064 */ li $at, 100 -/* 06C33C 8006B73C 15410019 */ bne $t2, $at, .L8006B7A4 -/* 06C340 8006B740 00000000 */ nop -/* 06C344 8006B744 0C02658B */ jal get_trophy_race_world_id -/* 06C348 8006B748 00000000 */ nop -/* 06C34C 8006B74C 10400009 */ beqz $v0, .L8006B774 -/* 06C350 8006B750 00000000 */ nop -/* 06C354 8006B754 8E2C0000 */ lw $t4, ($s1) -/* 06C358 8006B758 00000000 */ nop -/* 06C35C 8006B75C 8199004C */ lb $t9, 0x4c($t4) -/* 06C360 8006B760 00000000 */ nop -/* 06C364 8006B764 1720000F */ bnez $t9, .L8006B7A4 -/* 06C368 8006B768 00000000 */ nop -/* 06C36C 8006B76C 1000000D */ b .L8006B7A4 -/* 06C370 8006B770 AFA00070 */ sw $zero, 0x70($sp) -.L8006B774: -/* 06C374 8006B774 0C0270B4 */ jal is_in_tracks_mode -/* 06C378 8006B778 00000000 */ nop -/* 06C37C 8006B77C 24010001 */ li $at, 1 -/* 06C380 8006B780 14410008 */ bne $v0, $at, .L8006B7A4 -/* 06C384 8006B784 00000000 */ nop -/* 06C388 8006B788 8E2E0000 */ lw $t6, ($s1) -/* 06C38C 8006B78C 00000000 */ nop -/* 06C390 8006B790 81D8004C */ lb $t8, 0x4c($t6) -/* 06C394 8006B794 00000000 */ nop -/* 06C398 8006B798 17000002 */ bnez $t8, .L8006B7A4 -/* 06C39C 8006B79C 00000000 */ nop -/* 06C3A0 8006B7A0 AFA00070 */ sw $zero, 0x70($sp) -.L8006B7A4: -/* 06C3A4 8006B7A4 8E230000 */ lw $v1, ($s1) -/* 06C3A8 8006B7A8 00000000 */ nop -/* 06C3AC 8006B7AC 8065004C */ lb $a1, 0x4c($v1) -/* 06C3B0 8006B7B0 00000000 */ nop -/* 06C3B4 8006B7B4 10A00002 */ beqz $a1, .L8006B7C0 -/* 06C3B8 8006B7B8 24010008 */ li $at, 8 -/* 06C3BC 8006B7BC 14A10004 */ bne $a1, $at, .L8006B7D0 -.L8006B7C0: -/* 06C3C0 8006B7C0 240F0001 */ li $t7, 1 -/* 06C3C4 8006B7C4 3C01800E */ lui $at, %hi(D_800DD31C) # $at, 0x800e -/* 06C3C8 8006B7C8 10000003 */ b .L8006B7D8 -/* 06C3CC 8006B7CC AC2FD31C */ sw $t7, %lo(D_800DD31C)($at) -.L8006B7D0: -/* 06C3D0 8006B7D0 3C01800E */ lui $at, %hi(D_800DD31C) # $at, 0x800e -/* 06C3D4 8006B7D4 AC20D31C */ sw $zero, %lo(D_800DD31C)($at) -.L8006B7D8: -/* 06C3D8 8006B7D8 8FAD0048 */ lw $t5, 0x48($sp) -/* 06C3DC 8006B7DC 00000000 */ nop -/* 06C3E0 8006B7E0 11A00008 */ beqz $t5, .L8006B804 -/* 06C3E4 8006B7E4 00000000 */ nop -/* 06C3E8 8006B7E8 806B004C */ lb $t3, 0x4c($v1) -/* 06C3EC 8006B7EC 24010007 */ li $at, 7 -/* 06C3F0 8006B7F0 11610004 */ beq $t3, $at, .L8006B804 -/* 06C3F4 8006B7F4 240A0006 */ li $t2, 6 -/* 06C3F8 8006B7F8 A06A004C */ sb $t2, 0x4c($v1) -/* 06C3FC 8006B7FC 8E230000 */ lw $v1, ($s1) -/* 06C400 8006B800 00000000 */ nop -.L8006B804: -/* 06C404 8006B804 906400B3 */ lbu $a0, 0xb3($v1) -/* 06C408 8006B808 0C0002F8 */ jal set_music_player_voice_limit -/* 06C40C 8006B80C 00000000 */ nop -/* 06C410 8006B810 0C00032F */ jal func_80000CBC -/* 06C414 8006B814 00000000 */ nop -/* 06C418 8006B818 0C00C6EE */ jal func_80031BB8 -/* 06C41C 8006B81C 24040020 */ li $a0, 32 -/* 06C420 8006B820 8FAC006C */ lw $t4, 0x6c($sp) -/* 06C424 8006B824 00008025 */ move $s0, $zero -/* 06C428 8006B828 05800008 */ bltz $t4, .L8006B84C -/* 06C42C 8006B82C 29810003 */ slti $at, $t4, 3 -/* 06C430 8006B830 10200006 */ beqz $at, .L8006B84C -/* 06C434 8006B834 00000000 */ nop -/* 06C438 8006B838 8E390000 */ lw $t9, ($s1) -/* 06C43C 8006B83C 00000000 */ nop -/* 06C440 8006B840 032C7021 */ addu $t6, $t9, $t4 -/* 06C444 8006B844 81D0004F */ lb $s0, 0x4f($t6) -/* 06C448 8006B848 00000000 */ nop -.L8006B84C: -/* 06C44C 8006B84C 0C005F9D */ jal func_80017E74 -/* 06C450 8006B850 02002025 */ move $a0, $s0 -/* 06C454 8006B854 8E380000 */ lw $t8, ($s1) -/* 06C458 8006B858 8FA30040 */ lw $v1, 0x40($sp) -/* 06C45C 8006B85C 83040000 */ lb $a0, ($t8) -/* 06C460 8006B860 2401FFFF */ li $at, -1 -/* 06C464 8006B864 90700048 */ lbu $s0, 0x48($v1) -/* 06C468 8006B868 10810003 */ beq $a0, $at, .L8006B878 -/* 06C46C 8006B86C 8FAF0060 */ lw $t7, 0x60($sp) -/* 06C470 8006B870 A0640048 */ sb $a0, 0x48($v1) -/* 06C474 8006B874 8FAF0060 */ lw $t7, 0x60($sp) -.L8006B878: -/* 06C478 8006B878 1600000A */ bnez $s0, .L8006B8A4 -/* 06C47C 8006B87C A06F0049 */ sb $t7, 0x49($v1) -/* 06C480 8006B880 906D0048 */ lbu $t5, 0x48($v1) -/* 06C484 8006B884 00000000 */ nop -/* 06C488 8006B888 19A00006 */ blez $t5, .L8006B8A4 -/* 06C48C 8006B88C 00000000 */ nop -/* 06C490 8006B890 0C01B6CB */ jal get_level_default_vehicle -/* 06C494 8006B894 00000000 */ nop -/* 06C498 8006B898 3C01800E */ lui $at, %hi(D_800DD314) # $at, 0x800e -/* 06C49C 8006B89C 8FA30040 */ lw $v1, 0x40($sp) -/* 06C4A0 8006B8A0 A022D314 */ sb $v0, %lo(D_800DD314)($at) -.L8006B8A4: -/* 06C4A4 8006B8A4 906B0048 */ lbu $t3, 0x48($v1) -/* 06C4A8 8006B8A8 00000000 */ nop -/* 06C4AC 8006B8AC 15600009 */ bnez $t3, .L8006B8D4 -/* 06C4B0 8006B8B0 8FA4006C */ lw $a0, 0x6c($sp) -/* 06C4B4 8006B8B4 1A000006 */ blez $s0, .L8006B8D0 -/* 06C4B8 8006B8B8 3C02800E */ lui $v0, %hi(D_800DD314) # $v0, 0x800e -/* 06C4BC 8006B8BC 8042D314 */ lb $v0, %lo(D_800DD314)($v0) -/* 06C4C0 8006B8C0 2401FFFF */ li $at, -1 -/* 06C4C4 8006B8C4 10410003 */ beq $v0, $at, .L8006B8D4 -/* 06C4C8 8006B8C8 8FA4006C */ lw $a0, 0x6c($sp) -/* 06C4CC 8006B8CC AFA2006C */ sw $v0, 0x6c($sp) -.L8006B8D0: -/* 06C4D0 8006B8D0 8FA4006C */ lw $a0, 0x6c($sp) -.L8006B8D4: -/* 06C4D4 8006B8D4 0C01B6C8 */ jal func_8006DB20 -/* 06C4D8 8006B8D8 00000000 */ nop -/* 06C4DC 8006B8DC 8E2A0000 */ lw $t2, ($s1) -/* 06C4E0 8006B8E0 24010005 */ li $at, 5 -/* 06C4E4 8006B8E4 8159004C */ lb $t9, 0x4c($t2) -/* 06C4E8 8006B8E8 00000000 */ nop -/* 06C4EC 8006B8EC 1721003C */ bne $t9, $at, .L8006B9E0 -/* 06C4F0 8006B8F0 00000000 */ nop -/* 06C4F4 8006B8F4 8FA50040 */ lw $a1, 0x40($sp) -/* 06C4F8 8006B8F8 240E0008 */ li $t6, 8 -/* 06C4FC 8006B8FC 90A40048 */ lbu $a0, 0x48($a1) -/* 06C500 8006B900 24010005 */ li $at, 5 -/* 06C504 8006B904 18800036 */ blez $a0, .L8006B9E0 -/* 06C508 8006B908 248C001F */ addiu $t4, $a0, 0x1f -/* 06C50C 8006B90C 14810015 */ bne $a0, $at, .L8006B964 -/* 06C510 8006B910 018E8004 */ sllv $s0, $t6, $t4 -/* 06C514 8006B914 8CB80000 */ lw $t8, ($a1) -/* 06C518 8006B918 00000000 */ nop -/* 06C51C 8006B91C 870F0000 */ lh $t7, ($t8) -/* 06C520 8006B920 00000000 */ nop -/* 06C524 8006B924 29E1002F */ slti $at, $t7, 0x2f -/* 06C528 8006B928 1420002D */ bnez $at, .L8006B9E0 -/* 06C52C 8006B92C 00000000 */ nop -/* 06C530 8006B930 90AD0016 */ lbu $t5, 0x16($a1) -/* 06C534 8006B934 00000000 */ nop -/* 06C538 8006B938 29A10004 */ slti $at, $t5, 4 -/* 06C53C 8006B93C 14200028 */ bnez $at, .L8006B9E0 -/* 06C540 8006B940 00000000 */ nop -/* 06C544 8006B944 8CA20010 */ lw $v0, 0x10($a1) -/* 06C548 8006B948 24190005 */ li $t9, 5 -/* 06C54C 8006B94C 00505824 */ and $t3, $v0, $s0 -/* 06C550 8006B950 15600023 */ bnez $t3, .L8006B9E0 -/* 06C554 8006B954 00505025 */ or $t2, $v0, $s0 -/* 06C558 8006B958 ACAA0010 */ sw $t2, 0x10($a1) -/* 06C55C 8006B95C 10000020 */ b .L8006B9E0 -/* 06C560 8006B960 AFB90070 */ sw $t9, 0x70($sp) -.L8006B964: -/* 06C564 8006B964 8CAE0000 */ lw $t6, ($a1) -/* 06C568 8006B968 00046040 */ sll $t4, $a0, 1 -/* 06C56C 8006B96C 01CCC021 */ addu $t8, $t6, $t4 -/* 06C570 8006B970 87030000 */ lh $v1, ($t8) -/* 06C574 8006B974 00000000 */ nop -/* 06C578 8006B978 28610004 */ slti $at, $v1, 4 -/* 06C57C 8006B97C 1420000F */ bnez $at, .L8006B9BC -/* 06C580 8006B980 28610008 */ slti $at, $v1, 8 -/* 06C584 8006B984 8CA20010 */ lw $v0, 0x10($a1) -/* 06C588 8006B988 240B0005 */ li $t3, 5 -/* 06C58C 8006B98C 00507824 */ and $t7, $v0, $s0 -/* 06C590 8006B990 15E00009 */ bnez $t7, .L8006B9B8 -/* 06C594 8006B994 00506825 */ or $t5, $v0, $s0 -/* 06C598 8006B998 ACAD0010 */ sw $t5, 0x10($a1) -/* 06C59C 8006B99C AFAB0070 */ sw $t3, 0x70($sp) -/* 06C5A0 8006B9A0 90B90048 */ lbu $t9, 0x48($a1) -/* 06C5A4 8006B9A4 8CAA0000 */ lw $t2, ($a1) -/* 06C5A8 8006B9A8 00197040 */ sll $t6, $t9, 1 -/* 06C5AC 8006B9AC 014E6021 */ addu $t4, $t2, $t6 -/* 06C5B0 8006B9B0 85830000 */ lh $v1, ($t4) -/* 06C5B4 8006B9B4 00000000 */ nop -.L8006B9B8: -/* 06C5B8 8006B9B8 28610008 */ slti $at, $v1, 8 -.L8006B9BC: -/* 06C5BC 8006B9BC 14200008 */ bnez $at, .L8006B9E0 -/* 06C5C0 8006B9C0 0010C140 */ sll $t8, $s0, 5 -/* 06C5C4 8006B9C4 8CA20010 */ lw $v0, 0x10($a1) -/* 06C5C8 8006B9C8 240B0005 */ li $t3, 5 -/* 06C5CC 8006B9CC 00587824 */ and $t7, $v0, $t8 -/* 06C5D0 8006B9D0 15E00003 */ bnez $t7, .L8006B9E0 -/* 06C5D4 8006B9D4 00586825 */ or $t5, $v0, $t8 -/* 06C5D8 8006B9D8 ACAD0010 */ sw $t5, 0x10($a1) -/* 06C5DC 8006B9DC AFAB0070 */ sw $t3, 0x70($sp) -.L8006B9E0: -/* 06C5E0 8006B9E0 8E390000 */ lw $t9, ($s1) -/* 06C5E4 8006B9E4 8FAA0064 */ lw $t2, 0x64($sp) -/* 06C5E8 8006B9E8 8325004C */ lb $a1, 0x4c($t9) -/* 06C5EC 8006B9EC 11400004 */ beqz $t2, .L8006BA00 -/* 06C5F0 8006B9F0 00000000 */ nop -/* 06C5F4 8006B9F4 14A00002 */ bnez $a1, .L8006BA00 -/* 06C5F8 8006B9F8 240E0064 */ li $t6, 100 -/* 06C5FC 8006B9FC AFAE0070 */ sw $t6, 0x70($sp) -.L8006BA00: -/* 06C600 8006BA00 10A00003 */ beqz $a1, .L8006BA10 -/* 06C604 8006BA04 30AC0040 */ andi $t4, $a1, 0x40 -/* 06C608 8006BA08 1180000B */ beqz $t4, .L8006BA38 -/* 06C60C 8006BA0C 00000000 */ nop -.L8006BA10: -/* 06C610 8006BA10 0C027B20 */ jal is_in_two_player_adventure -/* 06C614 8006BA14 00000000 */ nop -/* 06C618 8006BA18 10400007 */ beqz $v0, .L8006BA38 -/* 06C61C 8006BA1C 24180001 */ li $t8, 1 -/* 06C620 8006BA20 3C01800E */ lui $at, %hi(D_800DD318) # $at, 0x800e -/* 06C624 8006BA24 A038D318 */ sb $t8, %lo(D_800DD318)($at) -/* 06C628 8006BA28 8E230000 */ lw $v1, ($s1) -/* 06C62C 8006BA2C 240F0064 */ li $t7, 100 -/* 06C630 8006BA30 10000005 */ b .L8006BA48 -/* 06C634 8006BA34 AFAF0070 */ sw $t7, 0x70($sp) -.L8006BA38: -/* 06C638 8006BA38 3C01800E */ lui $at, %hi(D_800DD318) # $at, 0x800e -/* 06C63C 8006BA3C A020D318 */ sb $zero, %lo(D_800DD318)($at) -/* 06C640 8006BA40 8E230000 */ lw $v1, ($s1) -/* 06C644 8006BA44 00000000 */ nop -.L8006BA48: -/* 06C648 8006BA48 806D004C */ lb $t5, 0x4c($v1) -/* 06C64C 8006BA4C 00000000 */ nop -/* 06C650 8006BA50 15A0000B */ bnez $t5, .L8006BA80 -/* 06C654 8006BA54 8FA40070 */ lw $a0, 0x70($sp) -/* 06C658 8006BA58 8FAB0048 */ lw $t3, 0x48($sp) -/* 06C65C 8006BA5C 00000000 */ nop -/* 06C660 8006BA60 15600007 */ bnez $t3, .L8006BA80 -/* 06C664 8006BA64 8FA40070 */ lw $a0, 0x70($sp) -/* 06C668 8006BA68 0C003932 */ jal is_time_trial_enabled -/* 06C66C 8006BA6C 00000000 */ nop -/* 06C670 8006BA70 10400002 */ beqz $v0, .L8006BA7C -/* 06C674 8006BA74 24190064 */ li $t9, 100 -/* 06C678 8006BA78 AFB90070 */ sw $t9, 0x70($sp) -.L8006BA7C: -/* 06C67C 8006BA7C 8FA40070 */ lw $a0, 0x70($sp) -.L8006BA80: -/* 06C680 8006BA80 0C007914 */ jal func_8001E450 -/* 06C684 8006BA84 00000000 */ nop -/* 06C688 8006BA88 8E230000 */ lw $v1, ($s1) -/* 06C68C 8006BA8C 8FAA0068 */ lw $t2, 0x68($sp) -/* 06C690 8006BA90 84640034 */ lh $a0, 0x34($v1) -/* 06C694 8006BA94 84650038 */ lh $a1, 0x38($v1) -/* 06C698 8006BA98 AFAA0010 */ sw $t2, 0x10($sp) -/* 06C69C 8006BA9C 846E0036 */ lh $t6, 0x36($v1) -/* 06C6A0 8006BAA0 8FA60064 */ lw $a2, 0x64($sp) -/* 06C6A4 8006BAA4 AFAE0014 */ sw $t6, 0x14($sp) -/* 06C6A8 8006BAA8 846C00BA */ lh $t4, 0xba($v1) -/* 06C6AC 8006BAAC 8FA7006C */ lw $a3, 0x6c($sp) -/* 06C6B0 8006BAB0 0C00927C */ jal func_800249F0 -/* 06C6B4 8006BAB4 AFAC0018 */ sw $t4, 0x18($sp) -/* 06C6B8 8006BAB8 8E230000 */ lw $v1, ($s1) -/* 06C6BC 8006BABC 00000000 */ nop -/* 06C6C0 8006BAC0 8478003A */ lh $t8, 0x3a($v1) -/* 06C6C4 8006BAC4 00000000 */ nop -/* 06C6C8 8006BAC8 1700001A */ bnez $t8, .L8006BB34 -/* 06C6CC 8006BACC 00008025 */ move $s0, $zero -/* 06C6D0 8006BAD0 846F003C */ lh $t7, 0x3c($v1) -/* 06C6D4 8006BAD4 00000000 */ nop -/* 06C6D8 8006BAD8 15E00016 */ bnez $t7, .L8006BB34 -/* 06C6DC 8006BADC 00008025 */ move $s0, $zero -/* 06C6E0 8006BAE0 846D003E */ lh $t5, 0x3e($v1) -/* 06C6E4 8006BAE4 00000000 */ nop -/* 06C6E8 8006BAE8 15A00012 */ bnez $t5, .L8006BB34 -/* 06C6EC 8006BAEC 00008025 */ move $s0, $zero -/* 06C6F0 8006BAF0 846B0040 */ lh $t3, 0x40($v1) -/* 06C6F4 8006BAF4 00000000 */ nop -/* 06C6F8 8006BAF8 1560000E */ bnez $t3, .L8006BB34 -/* 06C6FC 8006BAFC 00008025 */ move $s0, $zero -/* 06C700 8006BB00 84790042 */ lh $t9, 0x42($v1) -/* 06C704 8006BB04 00008025 */ move $s0, $zero -/* 06C708 8006BB08 17200009 */ bnez $t9, .L8006BB30 -/* 06C70C 8006BB0C 00000000 */ nop -.L8006BB10: -/* 06C710 8006BB10 0C00C1EF */ jal func_800307BC -/* 06C714 8006BB14 02002025 */ move $a0, $s0 -/* 06C718 8006BB18 26100001 */ addiu $s0, $s0, 1 -/* 06C71C 8006BB1C 24010004 */ li $at, 4 -/* 06C720 8006BB20 1601FFFB */ bne $s0, $at, .L8006BB10 -/* 06C724 8006BB24 00000000 */ nop -/* 06C728 8006BB28 10000010 */ b .L8006BB6C -/* 06C72C 8006BB2C 00000000 */ nop -.L8006BB30: -/* 06C730 8006BB30 00008025 */ move $s0, $zero -.L8006BB34: -/* 06C734 8006BB34 8E230000 */ lw $v1, ($s1) -/* 06C738 8006BB38 02002025 */ move $a0, $s0 -/* 06C73C 8006BB3C 846A0040 */ lh $t2, 0x40($v1) -/* 06C740 8006BB40 8465003A */ lh $a1, 0x3a($v1) -/* 06C744 8006BB44 8466003C */ lh $a2, 0x3c($v1) -/* 06C748 8006BB48 9067003F */ lbu $a3, 0x3f($v1) -/* 06C74C 8006BB4C AFAA0010 */ sw $t2, 0x10($sp) -/* 06C750 8006BB50 846E0042 */ lh $t6, 0x42($v1) -/* 06C754 8006BB54 0C00C199 */ jal func_80030664 -/* 06C758 8006BB58 AFAE0014 */ sw $t6, 0x14($sp) -/* 06C75C 8006BB5C 26100001 */ addiu $s0, $s0, 1 -/* 06C760 8006BB60 24010004 */ li $at, 4 -/* 06C764 8006BB64 1601FFF3 */ bne $s0, $at, .L8006BB34 -/* 06C768 8006BB68 00000000 */ nop -.L8006BB6C: -/* 06C76C 8006BB6C 0C01BAA4 */ jal get_settings -/* 06C770 8006BB70 00000000 */ nop -/* 06C774 8006BB74 8E2C0000 */ lw $t4, ($s1) -/* 06C778 8006BB78 2401FFFF */ li $at, -1 -/* 06C77C 8006BB7C 81840000 */ lb $a0, ($t4) -/* 06C780 8006BB80 00000000 */ nop -/* 06C784 8006BB84 10810003 */ beq $a0, $at, .L8006BB94 -/* 06C788 8006BB88 8FB80060 */ lw $t8, 0x60($sp) -/* 06C78C 8006BB8C A0440048 */ sb $a0, 0x48($v0) -/* 06C790 8006BB90 8FB80060 */ lw $t8, 0x60($sp) -.L8006BB94: -/* 06C794 8006BB94 00000000 */ nop -/* 06C798 8006BB98 A0580049 */ sb $t8, 0x49($v0) -/* 06C79C 8006BB9C 8E230000 */ lw $v1, ($s1) -/* 06C7A0 8006BBA0 00000000 */ nop -/* 06C7A4 8006BBA4 84650090 */ lh $a1, 0x90($v1) -/* 06C7A8 8006BBA8 00000000 */ nop -/* 06C7AC 8006BBAC 18A0001C */ blez $a1, .L8006BC20 -/* 06C7B0 8006BBB0 00000000 */ nop -/* 06C7B4 8006BBB4 846B009A */ lh $t3, 0x9a($v1) -/* 06C7B8 8006BBB8 84660096 */ lh $a2, 0x96($v1) -/* 06C7BC 8006BBBC 84670098 */ lh $a3, 0x98($v1) -/* 06C7C0 8006BBC0 84640092 */ lh $a0, 0x92($v1) -/* 06C7C4 8006BBC4 000BCA00 */ sll $t9, $t3, 8 -/* 06C7C8 8006BBC8 AFB90010 */ sw $t9, 0x10($sp) -/* 06C7CC 8006BBCC 906A0094 */ lbu $t2, 0x94($v1) -/* 06C7D0 8006BBD0 24020101 */ li $v0, 257 -/* 06C7D4 8006BBD4 01420019 */ multu $t2, $v0 -/* 06C7D8 8006BBD8 00067A00 */ sll $t7, $a2, 8 -/* 06C7DC 8006BBDC 00076A00 */ sll $t5, $a3, 8 -/* 06C7E0 8006BBE0 01A03825 */ move $a3, $t5 -/* 06C7E4 8006BBE4 01E03025 */ move $a2, $t7 -/* 06C7E8 8006BBE8 00007012 */ mflo $t6 -/* 06C7EC 8006BBEC AFAE0014 */ sw $t6, 0x14($sp) -/* 06C7F0 8006BBF0 906C0095 */ lbu $t4, 0x95($v1) -/* 06C7F4 8006BBF4 00000000 */ nop -/* 06C7F8 8006BBF8 01820019 */ multu $t4, $v0 -/* 06C7FC 8006BBFC 0000C012 */ mflo $t8 -/* 06C800 8006BC00 AFB80018 */ sw $t8, 0x18($sp) -/* 06C804 8006BC04 0C02AD2A */ jal func_800AB4A8 -/* 06C808 8006BC08 00000000 */ nop -/* 06C80C 8006BC0C 2404FFFF */ li $a0, -1 -/* 06C810 8006BC10 0C02ACC2 */ jal func_800AB308 -/* 06C814 8006BC14 2405FE00 */ li $a1, -512 -/* 06C818 8006BC18 8E230000 */ lw $v1, ($s1) -/* 06C81C 8006BC1C 00000000 */ nop -.L8006BC20: -/* 06C820 8006BC20 806F0049 */ lb $t7, 0x49($v1) -/* 06C824 8006BC24 2401FFFF */ li $at, -1 -/* 06C828 8006BC28 15E1000F */ bne $t7, $at, .L8006BC68 -/* 06C82C 8006BC2C 00000000 */ nop -/* 06C830 8006BC30 8C6400A4 */ lw $a0, 0xa4($v1) -/* 06C834 8006BC34 0C01EB9D */ jal load_texture -/* 06C838 8006BC38 00000000 */ nop -/* 06C83C 8006BC3C 8E2D0000 */ lw $t5, ($s1) -/* 06C840 8006BC40 00000000 */ nop -/* 06C844 8006BC44 ADA200A4 */ sw $v0, 0xa4($t5) -/* 06C848 8006BC48 8E2B0000 */ lw $t3, ($s1) -/* 06C84C 8006BC4C 00000000 */ nop -/* 06C850 8006BC50 A56000A8 */ sh $zero, 0xa8($t3) -/* 06C854 8006BC54 8E390000 */ lw $t9, ($s1) -/* 06C858 8006BC58 00000000 */ nop -/* 06C85C 8006BC5C A72000AA */ sh $zero, 0xaa($t9) -/* 06C860 8006BC60 8E230000 */ lw $v1, ($s1) -/* 06C864 8006BC64 00000000 */ nop -.L8006BC68: -/* 06C868 8006BC68 8C6400AC */ lw $a0, 0xac($v1) -/* 06C86C 8006BC6C 2401FFFF */ li $at, -1 -/* 06C870 8006BC70 1081000D */ beq $a0, $at, .L8006BCA8 -/* 06C874 8006BC74 00000000 */ nop -/* 06C878 8006BC78 0C0078A7 */ jal get_misc_asset -/* 06C87C 8006BC7C 00000000 */ nop -/* 06C880 8006BC80 8E2A0000 */ lw $t2, ($s1) -/* 06C884 8006BC84 00000000 */ nop -/* 06C888 8006BC88 AD4200AC */ sw $v0, 0xac($t2) -/* 06C88C 8006BC8C 8E2E0000 */ lw $t6, ($s1) -/* 06C890 8006BC90 00000000 */ nop -/* 06C894 8006BC94 8DC400AC */ lw $a0, 0xac($t6) -/* 06C898 8006BC98 0C01FD05 */ jal init_pulsating_light_data -/* 06C89C 8006BC9C 00000000 */ nop -/* 06C8A0 8006BCA0 8E230000 */ lw $v1, ($s1) -/* 06C8A4 8006BCA4 00000000 */ nop -.L8006BCA8: -/* 06C8A8 8006BCA8 806C009C */ lb $t4, 0x9c($v1) -/* 06C8AC 8006BCAC 00000000 */ nop -/* 06C8B0 8006BCB0 448C2000 */ mtc1 $t4, $f4 -/* 06C8B4 8006BCB4 0C01983B */ jal update_camera_fov -/* 06C8B8 8006BCB8 46802320 */ cvt.s.w $f12, $f4 -/* 06C8BC 8006BCBC 8E230000 */ lw $v1, ($s1) -/* 06C8C0 8006BCC0 00000000 */ nop -/* 06C8C4 8006BCC4 9064009D */ lbu $a0, 0x9d($v1) -/* 06C8C8 8006BCC8 9065009E */ lbu $a1, 0x9e($v1) -/* 06C8CC 8006BCCC 9066009F */ lbu $a2, 0x9f($v1) -/* 06C8D0 8006BCD0 0C01DECD */ jal set_background_prim_colour -/* 06C8D4 8006BCD4 00000000 */ nop -/* 06C8D8 8006BCD8 0C01EA5D */ jal reset_video_delta_time -/* 06C8DC 8006BCDC 00000000 */ nop -/* 06C8E0 8006BCE0 8E380000 */ lw $t8, ($s1) -/* 06C8E4 8006BCE4 8FAF0064 */ lw $t7, 0x64($sp) -/* 06C8E8 8006BCE8 00000000 */ nop -/* 06C8EC 8006BCEC 030F6821 */ addu $t5, $t8, $t7 -/* 06C8F0 8006BCF0 91A40004 */ lbu $a0, 4($t5) -/* 06C8F4 8006BCF4 0C01EAC9 */ jal func_8007AB24 -/* 06C8F8 8006BCF8 00000000 */ nop -/* 06C8FC 8006BCFC 8FBF002C */ lw $ra, 0x2c($sp) -/* 06C900 8006BD00 8FB00024 */ lw $s0, 0x24($sp) -/* 06C904 8006BD04 8FB10028 */ lw $s1, 0x28($sp) -/* 06C908 8006BD08 03E00008 */ jr $ra -/* 06C90C 8006BD0C 27BD0060 */ addiu $sp, $sp, 0x60 - diff --git a/asm/non_matchings/game_ui/func_8009ECF0.s b/asm/non_matchings/game_ui/func_8009ECF0.s index 08a6423e..c25c5e58 100644 --- a/asm/non_matchings/game_ui/func_8009ECF0.s +++ b/asm/non_matchings/game_ui/func_8009ECF0.s @@ -11,9 +11,9 @@ glabel func_8009ECF0 /* 09F914 8009ED14 AC620000 */ sw $v0, ($v1) /* 09F918 8009ED18 0C01994B */ jal set_active_viewports_and_object_stack_cap /* 09F91C 8009ED1C 00402025 */ move $a0, $v0 -/* 09F920 8009ED20 3C018012 */ lui $at, %hi(D_80126D37) # $at, 0x8012 +/* 09F920 8009ED20 3C018012 */ lui $at, %hi(gNumActivePlayers) # $at, 0x8012 /* 09F924 8009ED24 0C01BAA4 */ jal get_settings -/* 09F928 8009ED28 A0226D37 */ sb $v0, %lo(D_80126D37)($at) +/* 09F928 8009ED28 A0226D37 */ sb $v0, %lo(gNumActivePlayers)($at) /* 09F92C 8009ED2C 3C018012 */ lui $at, %hi(D_80127184) # $at, 0x8012 /* 09F930 8009ED30 0C003877 */ jal check_if_silver_coin_race /* 09F934 8009ED34 AC227184 */ sw $v0, %lo(D_80127184)($at) @@ -123,9 +123,9 @@ glabel func_8009ECF0 /* 09FAC4 8009EEC4 3C078012 */ lui $a3, %hi(D_80126CF4) # $a3, 0x8012 /* 09FAC8 8009EEC8 24E76CF4 */ addiu $a3, %lo(D_80126CF4) # addiu $a3, $a3, 0x6cf4 /* 09FACC 8009EECC 8CEA0000 */ lw $t2, ($a3) -/* 09FAD0 8009EED0 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 +/* 09FAD0 8009EED0 3C038012 */ lui $v1, %hi(gNumActivePlayers) # $v1, 0x8012 /* 09FAD4 8009EED4 AD420044 */ sw $v0, 0x44($t2) -/* 09FAD8 8009EED8 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) +/* 09FAD8 8009EED8 90636D37 */ lbu $v1, %lo(gNumActivePlayers)($v1) /* 09FADC 8009EEDC 24010003 */ li $at, 3 /* 09FAE0 8009EEE0 10610003 */ beq $v1, $at, .L8009EEF0 /* 09FAE4 8009EEE4 3405FFFF */ li $a1, 65535 diff --git a/asm/non_matchings/game_ui/func_8009F034.s b/asm/non_matchings/game_ui/func_8009F034.s index 1eabaf3e..9c3b70a2 100644 --- a/asm/non_matchings/game_ui/func_8009F034.s +++ b/asm/non_matchings/game_ui/func_8009F034.s @@ -155,8 +155,8 @@ glabel func_8009F034 /* 09FE0C 8009F20C 3C018012 */ lui $at, %hi(D_80126D71) # $at, 0x8012 /* 09FE10 8009F210 A0396D71 */ sb $t9, %lo(D_80126D71)($at) .L8009F214: -/* 09FE14 8009F214 3C028012 */ lui $v0, %hi(D_80126D37) # $v0, 0x8012 -/* 09FE18 8009F218 90426D37 */ lbu $v0, %lo(D_80126D37)($v0) +/* 09FE14 8009F214 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 +/* 09FE18 8009F218 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) /* 09FE1C 8009F21C 24010003 */ li $at, 3 /* 09FE20 8009F220 10410003 */ beq $v0, $at, .L8009F230 /* 09FE24 8009F224 240E0004 */ li $t6, 4 @@ -838,7 +838,7 @@ glabel func_8009F034 /* 0A0818 8009FC18 E484020C */ swc1 $f4, 0x20c($a0) .L8009FC1C: /* 0A081C 8009FC1C 8DEF0300 */ lw $t7, %lo(osTvType)($t7) -/* 0A0820 8009FC20 3C028012 */ lui $v0, %hi(D_80126D37) # $v0, 0x8012 +/* 0A0820 8009FC20 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 /* 0A0824 8009FC24 15E00007 */ bnez $t7, .L8009FC44 /* 0A0828 8009FC28 00000000 */ nop /* 0A082C 8009FC2C 8CA40000 */ lw $a0, ($a1) @@ -848,7 +848,7 @@ glabel func_8009F034 /* 0A083C 8009FC3C 46123201 */ sub.s $f8, $f6, $f18 /* 0A0840 8009FC40 E4880410 */ swc1 $f8, 0x410($a0) .L8009FC44: -/* 0A0844 8009FC44 90426D37 */ lbu $v0, %lo(D_80126D37)($v0) +/* 0A0844 8009FC44 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) /* 0A0848 8009FC48 00000000 */ nop /* 0A084C 8009FC4C 28410003 */ slti $at, $v0, 3 /* 0A0850 8009FC50 14200009 */ bnez $at, .L8009FC78 @@ -1078,9 +1078,9 @@ glabel func_8009F034 /* 0A0BA8 8009FFA8 00000000 */ nop /* 0A0BAC 8009FFAC 30590040 */ andi $t9, $v0, 0x40 /* 0A0BB0 8009FFB0 13200008 */ beqz $t9, .L8009FFD4 -/* 0A0BB4 8009FFB4 3C02800E */ lui $v0, %hi(D_800E27A4) # $v0, 0x800e -/* 0A0BB8 8009FFB8 3C02800E */ lui $v0, %hi(D_800E27A4) # $v0, 0x800e -/* 0A0BBC 8009FFBC 244227A4 */ addiu $v0, %lo(D_800E27A4) # addiu $v0, $v0, 0x27a4 +/* 0A0BB4 8009FFB4 3C02800E */ lui $v0, %hi(gHudMultiplayerUIToggle) # $v0, 0x800e +/* 0A0BB8 8009FFB8 3C02800E */ lui $v0, %hi(gHudMultiplayerUIToggle) # $v0, 0x800e +/* 0A0BBC 8009FFBC 244227A4 */ addiu $v0, %lo(gHudMultiplayerUIToggle) # addiu $v0, $v0, 0x27a4 /* 0A0BC0 8009FFC0 80580001 */ lb $t8, 1($v0) /* 0A0BC4 8009FFC4 3C01800E */ lui $at, %hi(D_800E27A8) # $at, 0x800e /* 0A0BC8 8009FFC8 A03827A8 */ sb $t8, %lo(D_800E27A8)($at) @@ -1089,7 +1089,7 @@ glabel func_8009F034 .L8009FFD4: /* 0A0BD4 8009FFD4 3C0E800E */ lui $t6, %hi(D_800E27A8) # $t6, 0x800e /* 0A0BD8 8009FFD8 81CE27A8 */ lb $t6, %lo(D_800E27A8)($t6) -/* 0A0BDC 8009FFDC 244227A4 */ addiu $v0, %lo(D_800E27A4) # addiu $v0, $v0, 0x27a4 +/* 0A0BDC 8009FFDC 244227A4 */ addiu $v0, %lo(gHudMultiplayerUIToggle) # addiu $v0, $v0, 0x27a4 /* 0A0BE0 8009FFE0 A04E0001 */ sb $t6, 1($v0) .L8009FFE4: /* 0A0BE4 8009FFE4 8FBF0064 */ lw $ra, 0x64($sp) diff --git a/asm/non_matchings/game_ui/func_800A0BD4.s b/asm/non_matchings/game_ui/func_800A0BD4.s index c24a712b..81ceafaf 100644 --- a/asm/non_matchings/game_ui/func_800A0BD4.s +++ b/asm/non_matchings/game_ui/func_800A0BD4.s @@ -101,11 +101,11 @@ glabel func_800A0BD4 /* 0A1940 800A0D40 11600018 */ beqz $t3, .L800A0DA4 /* 0A1944 800A0D44 8FBF002C */ lw $ra, 0x2c($sp) /* 0A1948 800A0D48 918C2772 */ lbu $t4, %lo(D_800E2770+2)($t4) -/* 0A194C 800A0D4C 3C028012 */ lui $v0, %hi(D_80126D37) # $v0, 0x8012 +/* 0A194C 800A0D4C 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 /* 0A1950 800A0D50 15800014 */ bnez $t4, .L800A0DA4 /* 0A1954 800A0D54 8FBF002C */ lw $ra, 0x2c($sp) /* 0A1958 800A0D58 A0600000 */ sb $zero, ($v1) -/* 0A195C 800A0D5C 90426D37 */ lbu $v0, %lo(D_80126D37)($v0) +/* 0A195C 800A0D5C 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) /* 0A1960 800A0D60 24010001 */ li $at, 1 /* 0A1964 800A0D64 14410006 */ bne $v0, $at, .L800A0D80 /* 0A1968 800A0D68 24010002 */ li $at, 2 diff --git a/asm/non_matchings/game_ui/func_800A1248.s b/asm/non_matchings/game_ui/func_800A1248.s index d9cf7994..e25d61f5 100644 --- a/asm/non_matchings/game_ui/func_800A1248.s +++ b/asm/non_matchings/game_ui/func_800A1248.s @@ -25,8 +25,8 @@ glabel func_800A1248 /* 0A1E90 800A1290 8FA50050 */ lw $a1, 0x50($sp) /* 0A1E94 800A1294 0C028F39 */ jal render_race_start /* 0A1E98 800A1298 02002025 */ move $a0, $s0 -/* 0A1E9C 800A129C 3C028012 */ lui $v0, %hi(D_80126D37) # $v0, 0x8012 -/* 0A1EA0 800A12A0 90426D37 */ lbu $v0, %lo(D_80126D37)($v0) +/* 0A1E9C 800A129C 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 +/* 0A1EA0 800A12A0 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) /* 0A1EA4 800A12A4 8FA70044 */ lw $a3, 0x44($sp) /* 0A1EA8 800A12A8 24130001 */ li $s3, 1 /* 0A1EAC 800A12AC 10530007 */ beq $v0, $s3, .L800A12CC @@ -50,7 +50,7 @@ glabel func_800A1248 /* 0A1EEC 800A12EC 8E180000 */ lw $t8, ($s0) /* 0A1EF0 800A12F0 00000000 */ nop /* 0A1EF4 800A12F4 8F040064 */ lw $a0, 0x64($t8) -/* 0A1EF8 800A12F8 0C02917C */ jal func_800A45F0 +/* 0A1EF8 800A12F8 0C02917C */ jal render_treasure_hud /* 0A1EFC 800A12FC 00000000 */ nop /* 0A1F00 800A1300 1633000D */ bne $s1, $s3, .L800A1338 /* 0A1F04 800A1304 00000000 */ nop @@ -102,7 +102,7 @@ glabel func_800A1248 /* 0A1FB4 800A13B4 10000003 */ b .L800A13C4 /* 0A1FB8 800A13B8 E452040C */ swc1 $f18, 0x40c($v0) .L800A13BC: -/* 0A1FBC 800A13BC 0C02917C */ jal func_800A45F0 +/* 0A1FBC 800A13BC 0C02917C */ jal render_treasure_hud /* 0A1FC0 800A13C0 00E02025 */ move $a0, $a3 .L800A13C4: /* 0A1FC4 800A13C4 8FA8004C */ lw $t0, 0x4c($sp) diff --git a/asm/non_matchings/game_ui/func_800A14F0.s b/asm/non_matchings/game_ui/func_800A14F0.s index e0356028..08a1ed68 100644 --- a/asm/non_matchings/game_ui/func_800A14F0.s +++ b/asm/non_matchings/game_ui/func_800A14F0.s @@ -12,8 +12,8 @@ glabel func_800A14F0 /* 0A20FC 800A14FC AFA50064 */ sw $a1, 0x64($sp) /* 0A2100 800A1500 0C006E9D */ jal get_racer_objects /* 0A2104 800A1504 27A40050 */ addiu $a0, $sp, 0x50 -/* 0A2108 800A1508 3C0E8012 */ lui $t6, %hi(D_80126D37) # $t6, 0x8012 -/* 0A210C 800A150C 91CE6D37 */ lbu $t6, %lo(D_80126D37)($t6) +/* 0A2108 800A1508 3C0E8012 */ lui $t6, %hi(gNumActivePlayers) # $t6, 0x8012 +/* 0A210C 800A150C 91CE6D37 */ lbu $t6, %lo(gNumActivePlayers)($t6) /* 0A2110 800A1510 8FAB0060 */ lw $t3, 0x60($sp) /* 0A2114 800A1514 240C0002 */ li $t4, 2 /* 0A2118 800A1518 158E005C */ bne $t4, $t6, .L800A168C @@ -197,8 +197,8 @@ glabel func_800A14F0 /* 0A23B0 800A17B0 46803320 */ cvt.s.w $f12, $f6 .L800A17B4: /* 0A23B4 800A17B4 8D0D0000 */ lw $t5, ($t0) -/* 0A23B8 800A17B8 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 -/* 0A23BC 800A17BC 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) +/* 0A23B8 800A17B8 3C038012 */ lui $v1, %hi(gNumActivePlayers) # $v1, 0x8012 +/* 0A23BC 800A17BC 90636D37 */ lbu $v1, %lo(gNumActivePlayers)($v1) /* 0A23C0 800A17C0 8DA20064 */ lw $v0, 0x64($t5) /* 0A23C4 800A17C4 28610003 */ slti $at, $v1, 3 /* 0A23C8 800A17C8 14200006 */ bnez $at, .L800A17E4 @@ -220,9 +220,9 @@ glabel func_800A14F0 /* 0A2404 800A1804 C4218728 */ lwc1 $f1, %lo(D_800E8728)($at) /* 0A2408 800A1808 C420872C */ lwc1 $f0, %lo(D_800E8728 + 4)($at) /* 0A240C 800A180C 3C01425C */ li $at, 0x425C0000 # 55.000000 -/* 0A2410 800A1810 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 +/* 0A2410 800A1810 3C038012 */ lui $v1, %hi(gNumActivePlayers) # $v1, 0x8012 /* 0A2414 800A1814 3C068012 */ lui $a2, %hi(D_80126CDC) # $a2, 0x8012 -/* 0A2418 800A1818 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) +/* 0A2418 800A1818 90636D37 */ lbu $v1, %lo(gNumActivePlayers)($v1) /* 0A241C 800A181C 44811000 */ mtc1 $at, $f2 /* 0A2420 800A1820 8FA7002C */ lw $a3, 0x2c($sp) /* 0A2424 800A1824 8FA80028 */ lw $t0, 0x28($sp) diff --git a/asm/non_matchings/game_ui/func_800A19A4.s b/asm/non_matchings/game_ui/func_800A19A4.s index 841a6854..c10ab97d 100644 --- a/asm/non_matchings/game_ui/func_800A19A4.s +++ b/asm/non_matchings/game_ui/func_800A19A4.s @@ -19,7 +19,7 @@ glabel func_800A19A4 /* 0A25E8 800A19E8 38210002 */ xori $at, $at, 2 /* 0A25EC 800A19EC 44C1F800 */ ctc1 $at, $31 /* 0A25F0 800A19F0 C444066C */ lwc1 $f4, 0x66c($v0) -/* 0A25F4 800A19F4 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 +/* 0A25F4 800A19F4 3C038012 */ lui $v1, %hi(gNumActivePlayers) # $v1, 0x8012 /* 0A25F8 800A19F8 460021A4 */ cvt.w.s $f6, $f4 /* 0A25FC 800A19FC 3C018012 */ lui $at, %hi(D_80126CD5) # $at, 0x8012 /* 0A2600 800A1A00 440F3000 */ mfc1 $t7, $f6 @@ -29,7 +29,7 @@ glabel func_800A19A4 /* 0A2610 800A1A10 44CEF800 */ ctc1 $t6, $31 /* 0A2614 800A1A14 27190038 */ addiu $t9, $t8, 0x38 /* 0A2618 800A1A18 A4590646 */ sh $t9, 0x646($v0) -/* 0A261C 800A1A1C 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) +/* 0A261C 800A1A1C 90636D37 */ lbu $v1, %lo(gNumActivePlayers)($v1) /* 0A2620 800A1A20 A0286CD5 */ sb $t0, %lo(D_80126CD5)($at) /* 0A2624 800A1A24 28610003 */ slti $at, $v1, 3 /* 0A2628 800A1A28 14200008 */ bnez $at, .L800A1A4C diff --git a/asm/non_matchings/game_ui/func_800A1C04.s b/asm/non_matchings/game_ui/func_800A1C04.s index 62a959e7..374992d6 100644 --- a/asm/non_matchings/game_ui/func_800A1C04.s +++ b/asm/non_matchings/game_ui/func_800A1C04.s @@ -1,7 +1,7 @@ glabel func_800A1C04 /* 0A2804 800A1C04 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0A2808 800A1C08 3C0F8012 */ lui $t7, %hi(D_80126D37) # $t7, 0x8012 -/* 0A280C 800A1C0C 91EF6D37 */ lbu $t7, %lo(D_80126D37)($t7) +/* 0A2808 800A1C08 3C0F8012 */ lui $t7, %hi(gNumActivePlayers) # $t7, 0x8012 +/* 0A280C 800A1C0C 91EF6D37 */ lbu $t7, %lo(gNumActivePlayers)($t7) /* 0A2810 800A1C10 AFBF0014 */ sw $ra, 0x14($sp) /* 0A2814 800A1C14 AFA40040 */ sw $a0, 0x40($sp) /* 0A2818 800A1C18 AFA50044 */ sw $a1, 0x44($sp) @@ -27,8 +27,8 @@ glabel func_800A1C04 /* 0A2864 800A1C64 00000000 */ nop /* 0A2868 800A1C68 0C006E9D */ jal get_racer_objects /* 0A286C 800A1C6C 27A40034 */ addiu $a0, $sp, 0x34 -/* 0A2870 800A1C70 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 -/* 0A2874 800A1C74 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) +/* 0A2870 800A1C70 3C038012 */ lui $v1, %hi(gNumActivePlayers) # $v1, 0x8012 +/* 0A2874 800A1C74 90636D37 */ lbu $v1, %lo(gNumActivePlayers)($v1) /* 0A2878 800A1C78 8FA70038 */ lw $a3, 0x38($sp) /* 0A287C 800A1C7C 24010001 */ li $at, 1 /* 0A2880 800A1C80 10610005 */ beq $v1, $at, .L800A1C98 diff --git a/asm/non_matchings/game_ui/func_800A1E48.s b/asm/non_matchings/game_ui/func_800A1E48.s index c2809062..e2121bab 100644 --- a/asm/non_matchings/game_ui/func_800A1E48.s +++ b/asm/non_matchings/game_ui/func_800A1E48.s @@ -52,7 +52,7 @@ glabel func_800A1E48 /* 0A2AF4 800A1EF4 02A09825 */ move $s3, $s5 /* 0A2AF8 800A1EF8 44D8F800 */ ctc1 $t8, $31 /* 0A2AFC 800A1EFC 44143000 */ mfc1 $s4, $f6 -/* 0A2B00 800A1F00 3C158012 */ lui $s5, %hi(D_80126D37) # $s5, 0x8012 +/* 0A2B00 800A1F00 3C158012 */ lui $s5, %hi(gNumActivePlayers) # $s5, 0x8012 /* 0A2B04 800A1F04 4459F800 */ cfc1 $t9, $31 /* 0A2B08 800A1F08 00008825 */ move $s1, $zero /* 0A2B0C 800A1F0C 37210003 */ ori $at, $t9, 3 @@ -64,7 +64,7 @@ glabel func_800A1E48 /* 0A2B24 800A1F24 44D9F800 */ ctc1 $t9, $31 /* 0A2B28 800A1F28 44085000 */ mfc1 $t0, $f10 /* 0A2B2C 800A1F2C C4348734 */ lwc1 $f20, %lo(D_800E8730 + 4)($at) -/* 0A2B30 800A1F30 26B56D37 */ addiu $s5, %lo(D_80126D37) # addiu $s5, $s5, 0x6d37 +/* 0A2B30 800A1F30 26B56D37 */ addiu $s5, %lo(gNumActivePlayers) # addiu $s5, $s5, 0x6d37 /* 0A2B34 800A1F34 00009025 */ move $s2, $zero /* 0A2B38 800A1F38 241E0002 */ li $fp, 2 /* 0A2B3C 800A1F3C 24170010 */ li $s7, 16 diff --git a/asm/non_matchings/game_ui/func_800A22F4.s b/asm/non_matchings/game_ui/func_800A22F4.s index 4eb4e41c..73b8f6c4 100644 --- a/asm/non_matchings/game_ui/func_800A22F4.s +++ b/asm/non_matchings/game_ui/func_800A22F4.s @@ -9,9 +9,9 @@ glabel func_800A22F4 /* 0A2F10 800A2310 26106CDC */ addiu $s0, %lo(D_80126CDC) # addiu $s0, $s0, 0x6cdc /* 0A2F14 800A2314 8E190000 */ lw $t9, ($s0) /* 0A2F18 800A2318 25F80038 */ addiu $t8, $t7, 0x38 -/* 0A2F1C 800A231C 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 +/* 0A2F1C 800A231C 3C038012 */ lui $v1, %hi(gNumActivePlayers) # $v1, 0x8012 /* 0A2F20 800A2320 A7380646 */ sh $t8, 0x646($t9) -/* 0A2F24 800A2324 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) +/* 0A2F24 800A2324 90636D37 */ lbu $v1, %lo(gNumActivePlayers)($v1) /* 0A2F28 800A2328 00807025 */ move $t6, $a0 /* 0A2F2C 800A232C 28610003 */ slti $at, $v1, 3 /* 0A2F30 800A2330 14200009 */ bnez $at, .L800A2358 @@ -54,9 +54,9 @@ glabel func_800A22F4 /* 0A2FBC 800A23BC 10200010 */ beqz $at, .L800A2400 /* 0A2FC0 800A23C0 00000000 */ nop /* 0A2FC4 800A23C4 8E0C0000 */ lw $t4, ($s0) -/* 0A2FC8 800A23C8 3C0D8012 */ lui $t5, %hi(D_80126D37) # $t5, 0x8012 +/* 0A2FC8 800A23C8 3C0D8012 */ lui $t5, %hi(gNumActivePlayers) # $t5, 0x8012 /* 0A2FCC 800A23CC A58206D8 */ sh $v0, 0x6d8($t4) -/* 0A2FD0 800A23D0 91AD6D37 */ lbu $t5, %lo(D_80126D37)($t5) +/* 0A2FD0 800A23D0 91AD6D37 */ lbu $t5, %lo(gNumActivePlayers)($t5) /* 0A2FD4 800A23D4 24010002 */ li $at, 2 /* 0A2FD8 800A23D8 15A1002F */ bne $t5, $at, .L800A2498 /* 0A2FDC 800A23DC 00000000 */ nop @@ -121,8 +121,8 @@ glabel func_800A22F4 /* 0A30B0 800A24B0 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc /* 0A30B4 800A24B4 0C02A980 */ jal func_800AA600 /* 0A30B8 800A24B8 24E706C0 */ addiu $a3, $a3, 0x6c0 -/* 0A30BC 800A24BC 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 -/* 0A30C0 800A24C0 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) +/* 0A30BC 800A24BC 3C038012 */ lui $v1, %hi(gNumActivePlayers) # $v1, 0x8012 +/* 0A30C0 800A24C0 90636D37 */ lbu $v1, %lo(gNumActivePlayers)($v1) /* 0A30C4 800A24C4 24040002 */ li $a0, 2 /* 0A30C8 800A24C8 14830011 */ bne $a0, $v1, .L800A2510 /* 0A30CC 800A24CC 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 @@ -137,10 +137,10 @@ glabel func_800A22F4 /* 0A30F0 800A24F0 3C0140C0 */ li $at, 0x40C00000 # 6.000000 /* 0A30F4 800A24F4 44818000 */ mtc1 $at, $f16 /* 0A30F8 800A24F8 C44A06CC */ lwc1 $f10, 0x6cc($v0) -/* 0A30FC 800A24FC 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 +/* 0A30FC 800A24FC 3C038012 */ lui $v1, %hi(gNumActivePlayers) # $v1, 0x8012 /* 0A3100 800A2500 46105481 */ sub.s $f18, $f10, $f16 /* 0A3104 800A2504 E45206CC */ swc1 $f18, 0x6cc($v0) -/* 0A3108 800A2508 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) +/* 0A3108 800A2508 90636D37 */ lbu $v1, %lo(gNumActivePlayers)($v1) /* 0A310C 800A250C 00000000 */ nop .L800A2510: /* 0A3110 800A2510 1083001A */ beq $a0, $v1, .L800A257C diff --git a/asm/non_matchings/game_ui/func_800A277C.s b/asm/non_matchings/game_ui/func_800A277C.s index 85a87a79..5854c3c9 100644 --- a/asm/non_matchings/game_ui/func_800A277C.s +++ b/asm/non_matchings/game_ui/func_800A277C.s @@ -455,7 +455,7 @@ glabel func_800A277C /* 0A39C0 800A2DC0 C58602F0 */ lwc1 $f6, 0x2f0($t4) /* 0A39C4 800A2DC4 00004025 */ move $t0, $zero /* 0A39C8 800A2DC8 46003224 */ cvt.w.s $f8, $f6 -/* 0A39CC 800A2DCC 3C0E8012 */ lui $t6, %hi(D_80126D60) # $t6, 0x8012 +/* 0A39CC 800A2DCC 3C0E8012 */ lui $t6, %hi(gHudLevelHeader) # $t6, 0x8012 /* 0A39D0 800A2DD0 440B4000 */ mfc1 $t3, $f8 /* 0A39D4 800A2DD4 44CAF800 */ ctc1 $t2, $31 /* 0A39D8 800A2DD8 AFAB00B8 */ sw $t3, 0xb8($sp) @@ -463,7 +463,7 @@ glabel func_800A277C /* 0A39E0 800A2DE0 00000000 */ nop /* 0A39E4 800A2DE4 19A00067 */ blez $t5, .L800A2F84 /* 0A39E8 800A2DE8 00086880 */ sll $t5, $t0, 2 -/* 0A39EC 800A2DEC 8DCE6D60 */ lw $t6, %lo(D_80126D60)($t6) +/* 0A39EC 800A2DEC 8DCE6D60 */ lw $t6, %lo(gHudLevelHeader)($t6) /* 0A39F0 800A2DF0 00001080 */ sll $v0, $zero, 2 /* 0A39F4 800A2DF4 81D8004B */ lb $t8, 0x4b($t6) /* 0A39F8 800A2DF8 01228021 */ addu $s0, $t1, $v0 @@ -540,7 +540,7 @@ glabel func_800A277C /* 0A3B10 800A2F10 C4460330 */ lwc1 $f6, 0x330($v0) /* 0A3B14 800A2F14 26100004 */ addiu $s0, $s0, 4 /* 0A3B18 800A2F18 46003200 */ add.s $f8, $f6, $f0 -/* 0A3B1C 800A2F1C 3C0A8012 */ lui $t2, %hi(D_80126D60) # $t2, 0x8012 +/* 0A3B1C 800A2F1C 3C0A8012 */ lui $t2, %hi(gHudLevelHeader) # $t2, 0x8012 /* 0A3B20 800A2F20 E4480330 */ swc1 $f8, 0x330($v0) /* 0A3B24 800A2F24 8E220000 */ lw $v0, ($s1) /* 0A3B28 800A2F28 00000000 */ nop @@ -558,7 +558,7 @@ glabel func_800A277C /* 0A3B58 800A2F58 010C082A */ slt $at, $t0, $t4 /* 0A3B5C 800A2F5C 10200009 */ beqz $at, .L800A2F84 /* 0A3B60 800A2F60 00086880 */ sll $t5, $t0, 2 -/* 0A3B64 800A2F64 8D4A6D60 */ lw $t2, %lo(D_80126D60)($t2) +/* 0A3B64 800A2F64 8D4A6D60 */ lw $t2, %lo(gHudLevelHeader)($t2) /* 0A3B68 800A2F68 00000000 */ nop /* 0A3B6C 800A2F6C 814B004B */ lb $t3, 0x4b($t2) /* 0A3B70 800A2F70 00000000 */ nop @@ -662,8 +662,8 @@ glabel func_800A277C /* 0A3CDC 800A30DC 3C118012 */ lui $s1, %hi(D_80126D48) # $s1, 0x8012 /* 0A3CE0 800A30E0 18600041 */ blez $v1, .L800A31E8 /* 0A3CE4 800A30E4 26316D48 */ addiu $s1, %lo(D_80126D48) # addiu $s1, $s1, 0x6d48 -/* 0A3CE8 800A30E8 3C188012 */ lui $t8, %hi(D_80126D60) # $t8, 0x8012 -/* 0A3CEC 800A30EC 8F186D60 */ lw $t8, %lo(D_80126D60)($t8) +/* 0A3CE8 800A30E8 3C188012 */ lui $t8, %hi(gHudLevelHeader) # $t8, 0x8012 +/* 0A3CEC 800A30EC 8F186D60 */ lw $t8, %lo(gHudLevelHeader)($t8) /* 0A3CF0 800A30F0 0003C880 */ sll $t9, $v1, 2 /* 0A3CF4 800A30F4 830F004B */ lb $t7, 0x4b($t8) /* 0A3CF8 800A30F8 01395021 */ addu $t2, $t1, $t9 diff --git a/asm/non_matchings/game_ui/func_800A5F18.s b/asm/non_matchings/game_ui/func_800A5F18.s index 58e50061..cd23488e 100644 --- a/asm/non_matchings/game_ui/func_800A5F18.s +++ b/asm/non_matchings/game_ui/func_800A5F18.s @@ -44,8 +44,8 @@ glabel func_800A5F18 /* 0A6B94 800A5F94 8FBF001C */ lw $ra, 0x1c($sp) /* 0A6B98 800A5F98 0C006E9D */ jal get_racer_objects /* 0A6B9C 800A5F9C 27A40024 */ addiu $a0, $sp, 0x24 -/* 0A6BA0 800A5FA0 3C0F8012 */ lui $t7, %hi(D_80126D37) # $t7, 0x8012 -/* 0A6BA4 800A5FA4 91EF6D37 */ lbu $t7, %lo(D_80126D37)($t7) +/* 0A6BA0 800A5FA0 3C0F8012 */ lui $t7, %hi(gNumActivePlayers) # $t7, 0x8012 +/* 0A6BA4 800A5FA4 91EF6D37 */ lbu $t7, %lo(gNumActivePlayers)($t7) /* 0A6BA8 800A5FA8 00000000 */ nop /* 0A6BAC 800A5FAC 29E10002 */ slti $at, $t7, 2 /* 0A6BB0 800A5FB0 142000A5 */ bnez $at, .L800A6248 @@ -54,7 +54,7 @@ glabel func_800A5F18 /* 0A6BBC 800A5FBC 00000000 */ nop /* 0A6BC0 800A5FC0 10400005 */ beqz $v0, .L800A5FD8 /* 0A6BC4 800A5FC4 00000000 */ nop -/* 0A6BC8 800A5FC8 0C01BAAC */ jal func_8006EAB0 +/* 0A6BC8 800A5FC8 0C01BAAC */ jal is_postrace_viewport_active /* 0A6BCC 800A5FCC 00000000 */ nop /* 0A6BD0 800A5FD0 1440009D */ bnez $v0, .L800A6248 /* 0A6BD4 800A5FD4 8FBF001C */ lw $ra, 0x1c($sp) diff --git a/asm/non_matchings/game_ui/func_800A6254.s b/asm/non_matchings/game_ui/func_800A6254.s index bd1756e7..82275d7a 100644 --- a/asm/non_matchings/game_ui/func_800A6254.s +++ b/asm/non_matchings/game_ui/func_800A6254.s @@ -18,7 +18,7 @@ glabel func_800A6254 /* 0A6E70 800A6270 8FA70070 */ lw $a3, 0x70($sp) /* 0A6E74 800A6274 10400049 */ beqz $v0, .L800A639C /* 0A6E78 800A6278 00000000 */ nop -/* 0A6E7C 800A627C 0C01BAAC */ jal func_8006EAB0 +/* 0A6E7C 800A627C 0C01BAAC */ jal is_postrace_viewport_active /* 0A6E80 800A6280 AFA70070 */ sw $a3, 0x70($sp) /* 0A6E84 800A6284 8FA70070 */ lw $a3, 0x70($sp) /* 0A6E88 800A6288 10400044 */ beqz $v0, .L800A639C @@ -214,9 +214,9 @@ glabel L800A63D8 /* 0A714C 800A654C 254BFFFF */ addiu $t3, $t2, -1 /* 0A7150 800A6550 A58B05F8 */ sh $t3, 0x5f8($t4) /* 0A7154 800A6554 8D2D0000 */ lw $t5, ($t1) -/* 0A7158 800A6558 3C028012 */ lui $v0, %hi(D_80126D37) # $v0, 0x8012 +/* 0A7158 800A6558 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 /* 0A715C 800A655C A1A805FA */ sb $t0, 0x5fa($t5) -/* 0A7160 800A6560 90426D37 */ lbu $v0, %lo(D_80126D37)($v0) +/* 0A7160 800A6560 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) /* 0A7164 800A6564 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 0A7168 800A6568 10460008 */ beq $v0, $a2, .L800A658C /* 0A716C 800A656C 00000000 */ nop @@ -296,7 +296,7 @@ glabel L800A63D8 /* 0A7288 800A6688 46101081 */ sub.s $f2, $f2, $f16 .L800A668C: /* 0A728C 800A668C 8D2B0000 */ lw $t3, ($t1) -/* 0A7290 800A6690 3C028012 */ lui $v0, %hi(D_80126D37) # $v0, 0x8012 +/* 0A7290 800A6690 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 /* 0A7294 800A6694 E56C016C */ swc1 $f12, 0x16c($t3) /* 0A7298 800A6698 8D2C0000 */ lw $t4, ($t1) /* 0A729C 800A669C 00000000 */ nop @@ -307,7 +307,7 @@ glabel L800A63D8 /* 0A72B0 800A66B0 8D2E0000 */ lw $t6, ($t1) /* 0A72B4 800A66B4 00000000 */ nop /* 0A72B8 800A66B8 E5C202F0 */ swc1 $f2, 0x2f0($t6) -/* 0A72BC 800A66BC 90426D37 */ lbu $v0, %lo(D_80126D37)($v0) +/* 0A72BC 800A66BC 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) /* 0A72C0 800A66C0 10000059 */ b .L800A6828 /* 0A72C4 800A66C4 00000000 */ nop .L800A66C8: @@ -392,7 +392,7 @@ glabel L800A63D8 /* 0A73EC 800A67EC 46101081 */ sub.s $f2, $f2, $f16 .L800A67F0: /* 0A73F0 800A67F0 8D2C0000 */ lw $t4, ($t1) -/* 0A73F4 800A67F4 3C028012 */ lui $v0, %hi(D_80126D37) # $v0, 0x8012 +/* 0A73F4 800A67F4 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 /* 0A73F8 800A67F8 E58C016C */ swc1 $f12, 0x16c($t4) /* 0A73FC 800A67FC 8D2D0000 */ lw $t5, ($t1) /* 0A7400 800A6800 00000000 */ nop @@ -403,7 +403,7 @@ glabel L800A63D8 /* 0A7414 800A6814 8D2F0000 */ lw $t7, ($t1) /* 0A7418 800A6818 00000000 */ nop /* 0A741C 800A681C E5E202F0 */ swc1 $f2, 0x2f0($t7) -/* 0A7420 800A6820 90426D37 */ lbu $v0, %lo(D_80126D37)($v0) +/* 0A7420 800A6820 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) /* 0A7424 800A6824 00000000 */ nop .L800A6828: /* 0A7428 800A6828 1102015F */ beq $t0, $v0, .L800A6DA8 @@ -507,7 +507,7 @@ glabel L800A691C /* 0A759C 800A699C 00000000 */ nop .L800A69A0: /* 0A75A0 800A69A0 44832000 */ mtc1 $v1, $f4 -/* 0A75A4 800A69A4 3C0C8012 */ lui $t4, %hi(D_80126D37) # $t4, 0x8012 +/* 0A75A4 800A69A4 3C0C8012 */ lui $t4, %hi(gNumActivePlayers) # $t4, 0x8012 /* 0A75A8 800A69A8 46802020 */ cvt.s.w $f0, $f4 /* 0A75AC 800A69AC 24080001 */ li $t0, 1 /* 0A75B0 800A69B0 46001180 */ add.s $f6, $f2, $f0 @@ -518,7 +518,7 @@ glabel L800A691C /* 0A75C4 800A69C4 00000000 */ nop /* 0A75C8 800A69C8 46004280 */ add.s $f10, $f8, $f0 /* 0A75CC 800A69CC E44A060C */ swc1 $f10, 0x60c($v0) -/* 0A75D0 800A69D0 918C6D37 */ lbu $t4, %lo(D_80126D37)($t4) +/* 0A75D0 800A69D0 918C6D37 */ lbu $t4, %lo(gNumActivePlayers)($t4) /* 0A75D4 800A69D4 00000000 */ nop /* 0A75D8 800A69D8 110C0045 */ beq $t0, $t4, .L800A6AF0 /* 0A75DC 800A69DC 00000000 */ nop @@ -662,7 +662,7 @@ glabel L800A6BCC /* 0A77D8 800A6BD8 016C6821 */ addu $t5, $t3, $t4 /* 0A77DC 800A6BDC A04D05FB */ sb $t5, 0x5fb($v0) /* 0A77E0 800A6BE0 8D220000 */ lw $v0, ($t1) -/* 0A77E4 800A6BE4 3C0B8012 */ lui $t3, %hi(D_80126D37) # $t3, 0x8012 +/* 0A77E4 800A6BE4 3C0B8012 */ lui $t3, %hi(gNumActivePlayers) # $t3, 0x8012 /* 0A77E8 800A6BE8 804E05FB */ lb $t6, 0x5fb($v0) /* 0A77EC 800A6BEC 00000000 */ nop /* 0A77F0 800A6BF0 29C10078 */ slti $at, $t6, 0x78 @@ -682,7 +682,7 @@ glabel L800A6BCC /* 0A7824 800A6C24 24060002 */ li $a2, 2 /* 0A7828 800A6C28 14CA001A */ bne $a2, $t2, .L800A6C94 /* 0A782C 800A6C2C 00000000 */ nop -/* 0A7830 800A6C30 916B6D37 */ lbu $t3, %lo(D_80126D37)($t3) +/* 0A7830 800A6C30 916B6D37 */ lbu $t3, %lo(gNumActivePlayers)($t3) /* 0A7834 800A6C34 24080001 */ li $t0, 1 /* 0A7838 800A6C38 110B000B */ beq $t0, $t3, .L800A6C68 /* 0A783C 800A6C3C 240C0003 */ li $t4, 3 diff --git a/asm/non_matchings/game_ui/func_800A8474.s b/asm/non_matchings/game_ui/func_800A8474.s deleted file mode 100644 index b63a022c..00000000 --- a/asm/non_matchings/game_ui/func_800A8474.s +++ /dev/null @@ -1,2156 +0,0 @@ -.late_rodata -glabel D_800E87A0 -.double 1.1 -glabel D_800E87A8 -.float 181.5 -.word 0 # padding -glabel D_800E87B0 -.double 66.0 -glabel D_800E87B8 -.double 66.0 -glabel D_800E87C0 -.double 1.1 -glabel D_800E87C8 -.double 1.2 -glabel D_800E87D0 -.float 0.8 -glabel D_800E87D4 -.float 1.2 - -.text -glabel func_800A8474 -/* 0A9074 800A8474 27BDFEA0 */ addiu $sp, $sp, -0x160 -/* 0A9078 800A8478 AFBF003C */ sw $ra, 0x3c($sp) -/* 0A907C 800A847C AFA40160 */ sw $a0, 0x160($sp) -/* 0A9080 800A8480 AFB40038 */ sw $s4, 0x38($sp) -/* 0A9084 800A8484 AFB30034 */ sw $s3, 0x34($sp) -/* 0A9088 800A8488 AFB20030 */ sw $s2, 0x30($sp) -/* 0A908C 800A848C AFB1002C */ sw $s1, 0x2c($sp) -/* 0A9090 800A8490 AFB00028 */ sw $s0, 0x28($sp) -/* 0A9094 800A8494 AFA50164 */ sw $a1, 0x164($sp) -/* 0A9098 800A8498 AFA60168 */ sw $a2, 0x168($sp) -/* 0A909C 800A849C AFA7016C */ sw $a3, 0x16c($sp) -/* 0A90A0 800A84A0 0C0282F5 */ jal func_800A0BD4 -/* 0A90A4 800A84A4 00E02025 */ move $a0, $a3 -/* 0A90A8 800A84A8 3C108012 */ lui $s0, %hi(D_80126CD8) # $s0, 0x8012 -/* 0A90AC 800A84AC 26106CD8 */ addiu $s0, %lo(D_80126CD8) # addiu $s0, $s0, 0x6cd8 -/* 0A90B0 800A84B0 8E0E0000 */ lw $t6, ($s0) -/* 0A90B4 800A84B4 3C0A8012 */ lui $t2, %hi(D_80126CD3) # $t2, 0x8012 -/* 0A90B8 800A84B8 A1C00001 */ sb $zero, 1($t6) -/* 0A90BC 800A84BC 8E0F0000 */ lw $t7, ($s0) -/* 0A90C0 800A84C0 3C018012 */ lui $at, %hi(D_80127180) # $at, 0x8012 -/* 0A90C4 800A84C4 A1E00017 */ sb $zero, 0x17($t7) -/* 0A90C8 800A84C8 8E180000 */ lw $t8, ($s0) -/* 0A90CC 800A84CC 3C0C8012 */ lui $t4, %hi(D_80126CD0) # $t4, 0x8012 -/* 0A90D0 800A84D0 A3000008 */ sb $zero, 8($t8) -/* 0A90D4 800A84D4 8E190000 */ lw $t9, ($s0) -/* 0A90D8 800A84D8 241800FF */ li $t8, 255 -/* 0A90DC 800A84DC A3200011 */ sb $zero, 0x11($t9) -/* 0A90E0 800A84E0 814A6CD3 */ lb $t2, %lo(D_80126CD3)($t2) -/* 0A90E4 800A84E4 AC207180 */ sw $zero, %lo(D_80127180)($at) -/* 0A90E8 800A84E8 314B0002 */ andi $t3, $t2, 2 -/* 0A90EC 800A84EC 1160001E */ beqz $t3, .L800A8568 -/* 0A90F0 800A84F0 3C198012 */ lui $t9, %hi(D_80126CF8) # $t9, 0x8012 -/* 0A90F4 800A84F4 818C6CD0 */ lb $t4, %lo(D_80126CD0)($t4) -/* 0A90F8 800A84F8 3C0D8012 */ lui $t5, %hi(D_8012718B) # $t5, 0x8012 -/* 0A90FC 800A84FC 448C2000 */ mtc1 $t4, $f4 -/* 0A9100 800A8500 91AD718B */ lbu $t5, %lo(D_8012718B)($t5) -/* 0A9104 800A8504 468021A0 */ cvt.s.w $f6, $f4 -/* 0A9108 800A8508 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0A910C 800A850C 44810000 */ mtc1 $at, $f0 -/* 0A9110 800A8510 448D5000 */ mtc1 $t5, $f10 -/* 0A9114 800A8514 46003202 */ mul.s $f8, $f6, $f0 -/* 0A9118 800A8518 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0A911C 800A851C 05A10004 */ bgez $t5, .L800A8530 -/* 0A9120 800A8520 46805420 */ cvt.s.w $f16, $f10 -/* 0A9124 800A8524 44819000 */ mtc1 $at, $f18 -/* 0A9128 800A8528 00000000 */ nop -/* 0A912C 800A852C 46128400 */ add.s $f16, $f16, $f18 -.L800A8530: -/* 0A9130 800A8530 00000000 */ nop -/* 0A9134 800A8534 46104103 */ div.s $f4, $f8, $f16 -/* 0A9138 800A8538 46040181 */ sub.s $f6, $f0, $f4 -/* 0A913C 800A853C 444EF800 */ cfc1 $t6, $31 -/* 0A9140 800A8540 00000000 */ nop -/* 0A9144 800A8544 35C10003 */ ori $at, $t6, 3 -/* 0A9148 800A8548 38210002 */ xori $at, $at, 2 -/* 0A914C 800A854C 44C1F800 */ ctc1 $at, $31 -/* 0A9150 800A8550 00000000 */ nop -/* 0A9154 800A8554 460032A4 */ cvt.w.s $f10, $f6 -/* 0A9158 800A8558 440F5000 */ mfc1 $t7, $f10 -/* 0A915C 800A855C 44CEF800 */ ctc1 $t6, $31 -/* 0A9160 800A8560 10000002 */ b .L800A856C -/* 0A9164 800A8564 AFAF010C */ sw $t7, 0x10c($sp) -.L800A8568: -/* 0A9168 800A8568 AFB8010C */ sw $t8, 0x10c($sp) -.L800A856C: -/* 0A916C 800A856C 8F396CF8 */ lw $t9, %lo(D_80126CF8)($t9) -/* 0A9170 800A8570 00001825 */ move $v1, $zero -/* 0A9174 800A8574 1B200058 */ blez $t9, .L800A86D8 -/* 0A9178 800A8578 00008825 */ move $s1, $zero -/* 0A917C 800A857C 3C058012 */ lui $a1, %hi(D_80126CF4) # $a1, 0x8012 -/* 0A9180 800A8580 24A56CF4 */ addiu $a1, %lo(D_80126CF4) # addiu $a1, $a1, 0x6cf4 -/* 0A9184 800A8584 3413C000 */ li $s3, 49152 -/* 0A9188 800A8588 24120028 */ li $s2, 40 -.L800A858C: -/* 0A918C 800A858C 8CAA0000 */ lw $t2, ($a1) -/* 0A9190 800A8590 00000000 */ nop -/* 0A9194 800A8594 01515821 */ addu $t3, $t2, $s1 -/* 0A9198 800A8598 8D6C0000 */ lw $t4, ($t3) -/* 0A919C 800A859C 00000000 */ nop -/* 0A91A0 800A85A0 11800047 */ beqz $t4, .L800A86C0 -/* 0A91A4 800A85A4 00000000 */ nop -/* 0A91A8 800A85A8 10720045 */ beq $v1, $s2, .L800A86C0 -/* 0A91AC 800A85AC 00000000 */ nop -/* 0A91B0 800A85B0 8E0D0000 */ lw $t5, ($s0) -/* 0A91B4 800A85B4 3C0B8012 */ lui $t3, %hi(D_80126CF0) # $t3, 0x8012 -/* 0A91B8 800A85B8 01A31021 */ addu $v0, $t5, $v1 -/* 0A91BC 800A85BC 904E0000 */ lbu $t6, ($v0) -/* 0A91C0 800A85C0 00000000 */ nop -/* 0A91C4 800A85C4 25CF0001 */ addiu $t7, $t6, 1 -/* 0A91C8 800A85C8 A04F0000 */ sb $t7, ($v0) -/* 0A91CC 800A85CC 8E180000 */ lw $t8, ($s0) -/* 0A91D0 800A85D0 00000000 */ nop -/* 0A91D4 800A85D4 0303C821 */ addu $t9, $t8, $v1 -/* 0A91D8 800A85D8 932A0000 */ lbu $t2, ($t9) -/* 0A91DC 800A85DC 00000000 */ nop -/* 0A91E0 800A85E0 2941003D */ slti $at, $t2, 0x3d -/* 0A91E4 800A85E4 14200036 */ bnez $at, .L800A86C0 -/* 0A91E8 800A85E8 00000000 */ nop -/* 0A91EC 800A85EC 8D6B6CF0 */ lw $t3, %lo(D_80126CF0)($t3) -/* 0A91F0 800A85F0 00036040 */ sll $t4, $v1, 1 -/* 0A91F4 800A85F4 016C6821 */ addu $t5, $t3, $t4 -/* 0A91F8 800A85F8 85A20000 */ lh $v0, ($t5) -/* 0A91FC 800A85FC 00000000 */ nop -/* 0A9200 800A8600 304EC000 */ andi $t6, $v0, 0xc000 -/* 0A9204 800A8604 166E000A */ bne $s3, $t6, .L800A8630 -/* 0A9208 800A8608 30598000 */ andi $t9, $v0, 0x8000 -/* 0A920C 800A860C 8CAF0000 */ lw $t7, ($a1) -/* 0A9210 800A8610 00000000 */ nop -/* 0A9214 800A8614 01F1C021 */ addu $t8, $t7, $s1 -/* 0A9218 800A8618 8F040000 */ lw $a0, ($t8) -/* 0A921C 800A861C 0C01ECAF */ jal free_texture -/* 0A9220 800A8620 AFA30144 */ sw $v1, 0x144($sp) -/* 0A9224 800A8624 8FA30144 */ lw $v1, 0x144($sp) -/* 0A9228 800A8628 1000001F */ b .L800A86A8 -/* 0A922C 800A862C 00000000 */ nop -.L800A8630: -/* 0A9230 800A8630 1320000A */ beqz $t9, .L800A865C -/* 0A9234 800A8634 304C4000 */ andi $t4, $v0, 0x4000 -/* 0A9238 800A8638 8CAA0000 */ lw $t2, ($a1) -/* 0A923C 800A863C 00000000 */ nop -/* 0A9240 800A8640 01515821 */ addu $t3, $t2, $s1 -/* 0A9244 800A8644 8D640000 */ lw $a0, ($t3) -/* 0A9248 800A8648 0C01F32C */ jal free_sprite -/* 0A924C 800A864C AFA30144 */ sw $v1, 0x144($sp) -/* 0A9250 800A8650 8FA30144 */ lw $v1, 0x144($sp) -/* 0A9254 800A8654 10000014 */ b .L800A86A8 -/* 0A9258 800A8658 00000000 */ nop -.L800A865C: -/* 0A925C 800A865C 1180000A */ beqz $t4, .L800A8688 -/* 0A9260 800A8660 00000000 */ nop -/* 0A9264 800A8664 8CAD0000 */ lw $t5, ($a1) -/* 0A9268 800A8668 00000000 */ nop -/* 0A926C 800A866C 01B17021 */ addu $t6, $t5, $s1 -/* 0A9270 800A8670 8DC40000 */ lw $a0, ($t6) -/* 0A9274 800A8674 0C003FEE */ jal gParticlePtrList_addObject -/* 0A9278 800A8678 AFA30144 */ sw $v1, 0x144($sp) -/* 0A927C 800A867C 8FA30144 */ lw $v1, 0x144($sp) -/* 0A9280 800A8680 10000009 */ b .L800A86A8 -/* 0A9284 800A8684 00000000 */ nop -.L800A8688: -/* 0A9288 800A8688 8CAF0000 */ lw $t7, ($a1) -/* 0A928C 800A868C 00000000 */ nop -/* 0A9290 800A8690 01F1C021 */ addu $t8, $t7, $s1 -/* 0A9294 800A8694 8F040000 */ lw $a0, ($t8) -/* 0A9298 800A8698 0C017FD0 */ jal func_8005FF40 -/* 0A929C 800A869C AFA30144 */ sw $v1, 0x144($sp) -/* 0A92A0 800A86A0 8FA30144 */ lw $v1, 0x144($sp) -/* 0A92A4 800A86A4 00000000 */ nop -.L800A86A8: -/* 0A92A8 800A86A8 3C198012 */ lui $t9, %hi(D_80126CF4) # $t9, 0x8012 -/* 0A92AC 800A86AC 8F396CF4 */ lw $t9, %lo(D_80126CF4)($t9) -/* 0A92B0 800A86B0 3C058012 */ lui $a1, %hi(D_80126CF4) # $a1, 0x8012 -/* 0A92B4 800A86B4 03315021 */ addu $t2, $t9, $s1 -/* 0A92B8 800A86B8 AD400000 */ sw $zero, ($t2) -/* 0A92BC 800A86BC 24A56CF4 */ addiu $a1, %lo(D_80126CF4) # addiu $a1, $a1, 0x6cf4 -.L800A86C0: -/* 0A92C0 800A86C0 3C0B8012 */ lui $t3, %hi(D_80126CF8) # $t3, 0x8012 -/* 0A92C4 800A86C4 8D6B6CF8 */ lw $t3, %lo(D_80126CF8)($t3) -/* 0A92C8 800A86C8 24630001 */ addiu $v1, $v1, 1 -/* 0A92CC 800A86CC 006B082A */ slt $at, $v1, $t3 -/* 0A92D0 800A86D0 1420FFAE */ bnez $at, .L800A858C -/* 0A92D4 800A86D4 26310004 */ addiu $s1, $s1, 4 -.L800A86D8: -/* 0A92D8 800A86D8 0C01AF6C */ jal get_current_level_header -/* 0A92DC 800A86DC 00000000 */ nop -/* 0A92E0 800A86E0 3C018012 */ lui $at, %hi(D_80126D60) # $at, 0x8012 -/* 0A92E4 800A86E4 AC226D60 */ sw $v0, %lo(D_80126D60)($at) -/* 0A92E8 800A86E8 0C006EA4 */ jal get_racer_objects_by_port -/* 0A92EC 800A86EC 27A40140 */ addiu $a0, $sp, 0x140 -/* 0A92F0 800A86F0 8FAC0160 */ lw $t4, 0x160($sp) -/* 0A92F4 800A86F4 AFA20150 */ sw $v0, 0x150($sp) -/* 0A92F8 800A86F8 8D8D0000 */ lw $t5, ($t4) -/* 0A92FC 800A86FC 3C148012 */ lui $s4, %hi(gHUDCurrDisplayList) # $s4, 0x8012 -/* 0A9300 800A8700 8FAE0164 */ lw $t6, 0x164($sp) -/* 0A9304 800A8704 26946CFC */ addiu $s4, %lo(gHUDCurrDisplayList) # addiu $s4, $s4, 0x6cfc -/* 0A9308 800A8708 AE8D0000 */ sw $t5, ($s4) -/* 0A930C 800A870C 8DCF0000 */ lw $t7, ($t6) -/* 0A9310 800A8710 8FB80168 */ lw $t8, 0x168($sp) -/* 0A9314 800A8714 3C018012 */ lui $at, %hi(gHUDCurrMatrix) # $at, 0x8012 -/* 0A9318 800A8718 AC2F6D00 */ sw $t7, %lo(gHUDCurrMatrix)($at) -/* 0A931C 800A871C 8F190000 */ lw $t9, ($t8) -/* 0A9320 800A8720 3C0A8012 */ lui $t2, %hi(D_80126D60) # $t2, 0x8012 -/* 0A9324 800A8724 8D4A6D60 */ lw $t2, %lo(D_80126D60)($t2) -/* 0A9328 800A8728 3C018012 */ lui $at, %hi(gHUDCurrVertex) # $at, 0x8012 -/* 0A932C 800A872C AC396D04 */ sw $t9, %lo(gHUDCurrVertex)($at) -/* 0A9330 800A8730 8143004C */ lb $v1, 0x4c($t2) -/* 0A9334 800A8734 24010042 */ li $at, 66 -/* 0A9338 800A8738 146100D4 */ bne $v1, $at, .L800A8A8C -/* 0A933C 800A873C 24010040 */ li $at, 64 -/* 0A9340 800A8740 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 -/* 0A9344 800A8744 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) -/* 0A9348 800A8748 24010002 */ li $at, 2 -/* 0A934C 800A874C 1461000E */ bne $v1, $at, .L800A8788 -/* 0A9350 800A8750 3C0B8012 */ lui $t3, %hi(gHUDNumPlayers) # $t3, 0x8012 -/* 0A9354 800A8754 8D6B6D0C */ lw $t3, %lo(gHUDNumPlayers)($t3) -/* 0A9358 800A8758 3C0C800E */ lui $t4, %hi(D_800E27A4) # $t4, 0x800e -/* 0A935C 800A875C 018B6021 */ addu $t4, $t4, $t3 -/* 0A9360 800A8760 818C27A4 */ lb $t4, %lo(D_800E27A4)($t4) -/* 0A9364 800A8764 8FA5016C */ lw $a1, 0x16c($sp) -/* 0A9368 800A8768 15800008 */ bnez $t4, .L800A878C -/* 0A936C 800A876C 24010003 */ li $at, 3 -/* 0A9370 800A8770 0C02853C */ jal func_800A14F0 -/* 0A9374 800A8774 00002025 */ move $a0, $zero -/* 0A9378 800A8778 0C01ECF4 */ jal reset_render_settings -/* 0A937C 800A877C 02802025 */ move $a0, $s4 -/* 0A9380 800A8780 100003CC */ b .L800A96B4 -/* 0A9384 800A8784 00000000 */ nop -.L800A8788: -/* 0A9388 800A8788 24010003 */ li $at, 3 -.L800A878C: -/* 0A938C 800A878C 146100BC */ bne $v1, $at, .L800A8A80 -/* 0A9390 800A8790 00000000 */ nop -/* 0A9394 800A8794 8FAD0140 */ lw $t5, 0x140($sp) -/* 0A9398 800A8798 00003025 */ move $a2, $zero -/* 0A939C 800A879C 19A00042 */ blez $t5, .L800A88A8 -/* 0A93A0 800A87A0 00002825 */ move $a1, $zero -/* 0A93A4 800A87A4 31A80003 */ andi $t0, $t5, 3 -/* 0A93A8 800A87A8 11000013 */ beqz $t0, .L800A87F8 -/* 0A93AC 800A87AC 01003825 */ move $a3, $t0 -/* 0A93B0 800A87B0 00007080 */ sll $t6, $zero, 2 -/* 0A93B4 800A87B4 004E2021 */ addu $a0, $v0, $t6 -/* 0A93B8 800A87B8 2413FFFF */ li $s3, -1 -.L800A87BC: -/* 0A93BC 800A87BC 8C8F0000 */ lw $t7, ($a0) -/* 0A93C0 800A87C0 24A50001 */ addiu $a1, $a1, 1 -/* 0A93C4 800A87C4 8DE30064 */ lw $v1, 0x64($t7) -/* 0A93C8 800A87C8 00000000 */ nop -/* 0A93CC 800A87CC 84780000 */ lh $t8, ($v1) -/* 0A93D0 800A87D0 00000000 */ nop -/* 0A93D4 800A87D4 16780002 */ bne $s3, $t8, .L800A87E0 -/* 0A93D8 800A87D8 00000000 */ nop -/* 0A93DC 800A87DC 00603025 */ move $a2, $v1 -.L800A87E0: -/* 0A93E0 800A87E0 14E5FFF6 */ bne $a3, $a1, .L800A87BC -/* 0A93E4 800A87E4 24840004 */ addiu $a0, $a0, 4 -/* 0A93E8 800A87E8 8FB90140 */ lw $t9, 0x140($sp) -/* 0A93EC 800A87EC 00000000 */ nop -/* 0A93F0 800A87F0 10B9002D */ beq $a1, $t9, .L800A88A8 -/* 0A93F4 800A87F4 00000000 */ nop -.L800A87F8: -/* 0A93F8 800A87F8 8FAA0140 */ lw $t2, 0x140($sp) -/* 0A93FC 800A87FC 00056080 */ sll $t4, $a1, 2 -/* 0A9400 800A8800 000A5880 */ sll $t3, $t2, 2 -/* 0A9404 800A8804 01623821 */ addu $a3, $t3, $v0 -/* 0A9408 800A8808 004C2021 */ addu $a0, $v0, $t4 -/* 0A940C 800A880C 2413FFFF */ li $s3, -1 -.L800A8810: -/* 0A9410 800A8810 8C8D0000 */ lw $t5, ($a0) -/* 0A9414 800A8814 00000000 */ nop -/* 0A9418 800A8818 8DA30064 */ lw $v1, 0x64($t5) -/* 0A941C 800A881C 00000000 */ nop -/* 0A9420 800A8820 846E0000 */ lh $t6, ($v1) -/* 0A9424 800A8824 00000000 */ nop -/* 0A9428 800A8828 166E0002 */ bne $s3, $t6, .L800A8834 -/* 0A942C 800A882C 00000000 */ nop -/* 0A9430 800A8830 00603025 */ move $a2, $v1 -.L800A8834: -/* 0A9434 800A8834 8C8F0004 */ lw $t7, 4($a0) -/* 0A9438 800A8838 00000000 */ nop -/* 0A943C 800A883C 8DE30064 */ lw $v1, 0x64($t7) -/* 0A9440 800A8840 00000000 */ nop -/* 0A9444 800A8844 84780000 */ lh $t8, ($v1) -/* 0A9448 800A8848 00000000 */ nop -/* 0A944C 800A884C 16780002 */ bne $s3, $t8, .L800A8858 -/* 0A9450 800A8850 00000000 */ nop -/* 0A9454 800A8854 00603025 */ move $a2, $v1 -.L800A8858: -/* 0A9458 800A8858 8C990008 */ lw $t9, 8($a0) -/* 0A945C 800A885C 00000000 */ nop -/* 0A9460 800A8860 8F230064 */ lw $v1, 0x64($t9) -/* 0A9464 800A8864 00000000 */ nop -/* 0A9468 800A8868 846A0000 */ lh $t2, ($v1) -/* 0A946C 800A886C 00000000 */ nop -/* 0A9470 800A8870 166A0002 */ bne $s3, $t2, .L800A887C -/* 0A9474 800A8874 00000000 */ nop -/* 0A9478 800A8878 00603025 */ move $a2, $v1 -.L800A887C: -/* 0A947C 800A887C 8C8B000C */ lw $t3, 0xc($a0) -/* 0A9480 800A8880 24840010 */ addiu $a0, $a0, 0x10 -/* 0A9484 800A8884 8D630064 */ lw $v1, 0x64($t3) -/* 0A9488 800A8888 00000000 */ nop -/* 0A948C 800A888C 846C0000 */ lh $t4, ($v1) -/* 0A9490 800A8890 00000000 */ nop -/* 0A9494 800A8894 166C0002 */ bne $s3, $t4, .L800A88A0 -/* 0A9498 800A8898 00000000 */ nop -/* 0A949C 800A889C 00603025 */ move $a2, $v1 -.L800A88A0: -/* 0A94A0 800A88A0 1487FFDB */ bne $a0, $a3, .L800A8810 -/* 0A94A4 800A88A4 00000000 */ nop -.L800A88A8: -/* 0A94A8 800A88A8 10C00075 */ beqz $a2, .L800A8A80 -/* 0A94AC 800A88AC 3C128012 */ lui $s2, %hi(D_80126CDC) # $s2, 0x8012 -/* 0A94B0 800A88B0 444DF800 */ cfc1 $t5, $31 -/* 0A94B4 800A88B4 26526CDC */ addiu $s2, %lo(D_80126CDC) # addiu $s2, $s2, 0x6cdc -/* 0A94B8 800A88B8 8E420000 */ lw $v0, ($s2) -/* 0A94BC 800A88BC 35A10003 */ ori $at, $t5, 3 -/* 0A94C0 800A88C0 38210002 */ xori $at, $at, 2 -/* 0A94C4 800A88C4 44C1F800 */ ctc1 $at, $31 -/* 0A94C8 800A88C8 C452064C */ lwc1 $f18, 0x64c($v0) -/* 0A94CC 800A88CC C4500650 */ lwc1 $f16, 0x650($v0) -/* 0A94D0 800A88D0 46009224 */ cvt.w.s $f8, $f18 -/* 0A94D4 800A88D4 C446066C */ lwc1 $f6, 0x66c($v0) -/* 0A94D8 800A88D8 44CDF800 */ ctc1 $t5, $31 -/* 0A94DC 800A88DC C4520670 */ lwc1 $f18, 0x670($v0) -/* 0A94E0 800A88E0 44104000 */ mfc1 $s0, $f8 -/* 0A94E4 800A88E4 444EF800 */ cfc1 $t6, $31 -/* 0A94E8 800A88E8 3C0C8000 */ lui $t4, %hi(osTvType) # $t4, 0x8000 -/* 0A94EC 800A88EC 35C10003 */ ori $at, $t6, 3 -/* 0A94F0 800A88F0 38210002 */ xori $at, $at, 2 -/* 0A94F4 800A88F4 44C1F800 */ ctc1 $at, $31 -/* 0A94F8 800A88F8 00C02025 */ move $a0, $a2 -/* 0A94FC 800A88FC 46008124 */ cvt.w.s $f4, $f16 -/* 0A9500 800A8900 44CEF800 */ ctc1 $t6, $31 -/* 0A9504 800A8904 44112000 */ mfc1 $s1, $f4 -/* 0A9508 800A8908 00000000 */ nop -/* 0A950C 800A890C 444FF800 */ cfc1 $t7, $31 -/* 0A9510 800A8910 00000000 */ nop -/* 0A9514 800A8914 35E10003 */ ori $at, $t7, 3 -/* 0A9518 800A8918 38210002 */ xori $at, $at, 2 -/* 0A951C 800A891C 44C1F800 */ ctc1 $at, $31 -/* 0A9520 800A8920 00000000 */ nop -/* 0A9524 800A8924 460032A4 */ cvt.w.s $f10, $f6 -/* 0A9528 800A8928 44CFF800 */ ctc1 $t7, $31 -/* 0A952C 800A892C 44035000 */ mfc1 $v1, $f10 -/* 0A9530 800A8930 00000000 */ nop -/* 0A9534 800A8934 4458F800 */ cfc1 $t8, $31 -/* 0A9538 800A8938 00000000 */ nop -/* 0A953C 800A893C 37010003 */ ori $at, $t8, 3 -/* 0A9540 800A8940 38210002 */ xori $at, $at, 2 -/* 0A9544 800A8944 44C1F800 */ ctc1 $at, $31 -/* 0A9548 800A8948 3C014361 */ li $at, 0x43610000 # 225.000000 -/* 0A954C 800A894C 44818000 */ mtc1 $at, $f16 -/* 0A9550 800A8950 3C01435D */ li $at, 0x435D0000 # 221.000000 -/* 0A9554 800A8954 E450064C */ swc1 $f16, 0x64c($v0) -/* 0A9558 800A8958 8E590000 */ lw $t9, ($s2) -/* 0A955C 800A895C 44812000 */ mtc1 $at, $f4 -/* 0A9560 800A8960 3C014345 */ li $at, 0x43450000 # 197.000000 -/* 0A9564 800A8964 E724066C */ swc1 $f4, 0x66c($t9) -/* 0A9568 800A8968 8E4A0000 */ lw $t2, ($s2) -/* 0A956C 800A896C 44813000 */ mtc1 $at, $f6 -/* 0A9570 800A8970 3C014325 */ li $at, 0x43250000 # 165.000000 -/* 0A9574 800A8974 E5460670 */ swc1 $f6, 0x670($t2) -/* 0A9578 800A8978 8E4B0000 */ lw $t3, ($s2) -/* 0A957C 800A897C 44815000 */ mtc1 $at, $f10 -/* 0A9580 800A8980 46009224 */ cvt.w.s $f8, $f18 -/* 0A9584 800A8984 E56A0650 */ swc1 $f10, 0x650($t3) -/* 0A9588 800A8988 8D8C0300 */ lw $t4, %lo(osTvType)($t4) -/* 0A958C 800A898C 44074000 */ mfc1 $a3, $f8 -/* 0A9590 800A8990 44D8F800 */ ctc1 $t8, $31 -/* 0A9594 800A8994 15800020 */ bnez $t4, .L800A8A18 -# Used to access D_800E87A0 and D_800E87A0 + 4. -/* 0A9598 800A8998 3C01800F */ lui $at, %hi(D_800E87A0) # $at, 0x800f -/* 0A959C 800A899C C42187A0 */ lwc1 $f1, %lo(D_800E87A0)($at) -/* 0A95A0 800A89A0 C42087A4 */ lwc1 $f0, %lo(D_800E87A0 + 4)($at) -/* 0A95A4 800A89A4 8E420000 */ lw $v0, ($s2) -/* 0A95A8 800A89A8 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0A95AC 800A89AC 44814000 */ mtc1 $at, $f8 -/* 0A95B0 800A89B0 C452064C */ lwc1 $f18, 0x64c($v0) -/* 0A95B4 800A89B4 44813000 */ mtc1 $at, $f6 -/* 0A95B8 800A89B8 46089401 */ sub.s $f16, $f18, $f8 -/* 0A95BC 800A89BC E450064C */ swc1 $f16, 0x64c($v0) -/* 0A95C0 800A89C0 8E420000 */ lw $v0, ($s2) -/* 0A95C4 800A89C4 00000000 */ nop -/* 0A95C8 800A89C8 C444066C */ lwc1 $f4, 0x66c($v0) -/* 0A95CC 800A89CC 00000000 */ nop -/* 0A95D0 800A89D0 46062281 */ sub.s $f10, $f4, $f6 -/* 0A95D4 800A89D4 E44A066C */ swc1 $f10, 0x66c($v0) -/* 0A95D8 800A89D8 8E420000 */ lw $v0, ($s2) -/* 0A95DC 800A89DC 00000000 */ nop -/* 0A95E0 800A89E0 C4520650 */ lwc1 $f18, 0x650($v0) -/* 0A95E4 800A89E4 00000000 */ nop -/* 0A95E8 800A89E8 46009221 */ cvt.d.s $f8, $f18 -/* 0A95EC 800A89EC 46204402 */ mul.d $f16, $f8, $f0 -/* 0A95F0 800A89F0 46208120 */ cvt.s.d $f4, $f16 -/* 0A95F4 800A89F4 E4440650 */ swc1 $f4, 0x650($v0) -/* 0A95F8 800A89F8 8E420000 */ lw $v0, ($s2) -/* 0A95FC 800A89FC 00000000 */ nop -/* 0A9600 800A8A00 C4460670 */ lwc1 $f6, 0x670($v0) -/* 0A9604 800A8A04 00000000 */ nop -/* 0A9608 800A8A08 460032A1 */ cvt.d.s $f10, $f6 -/* 0A960C 800A8A0C 46205482 */ mul.d $f18, $f10, $f0 -/* 0A9610 800A8A10 46209220 */ cvt.s.d $f8, $f18 -/* 0A9614 800A8A14 E4480670 */ swc1 $f8, 0x670($v0) -.L800A8A18: -/* 0A9618 800A8A18 8FA5016C */ lw $a1, 0x16c($sp) -/* 0A961C 800A8A1C AFA300F4 */ sw $v1, 0xf4($sp) -/* 0A9620 800A8A20 0C028669 */ jal func_800A19A4 -/* 0A9624 800A8A24 AFA700F0 */ sw $a3, 0xf0($sp) -/* 0A9628 800A8A28 44908000 */ mtc1 $s0, $f16 -/* 0A962C 800A8A2C 240DFFFE */ li $t5, -2 -/* 0A9630 800A8A30 3C01800E */ lui $at, %hi(D_800E2834) # $at, 0x800e -/* 0A9634 800A8A34 46808120 */ cvt.s.w $f4, $f16 -/* 0A9638 800A8A38 AC2D2834 */ sw $t5, %lo(D_800E2834)($at) -/* 0A963C 800A8A3C 8FA300F4 */ lw $v1, 0xf4($sp) -/* 0A9640 800A8A40 8E4E0000 */ lw $t6, ($s2) -/* 0A9644 800A8A44 44913000 */ mtc1 $s1, $f6 -/* 0A9648 800A8A48 8FA700F0 */ lw $a3, 0xf0($sp) -/* 0A964C 800A8A4C 468032A0 */ cvt.s.w $f10, $f6 -/* 0A9650 800A8A50 E5C4064C */ swc1 $f4, 0x64c($t6) -/* 0A9654 800A8A54 8E4F0000 */ lw $t7, ($s2) -/* 0A9658 800A8A58 44839000 */ mtc1 $v1, $f18 -/* 0A965C 800A8A5C E5EA0650 */ swc1 $f10, 0x650($t7) -/* 0A9660 800A8A60 46809220 */ cvt.s.w $f8, $f18 -/* 0A9664 800A8A64 8E580000 */ lw $t8, ($s2) -/* 0A9668 800A8A68 44878000 */ mtc1 $a3, $f16 -/* 0A966C 800A8A6C E708066C */ swc1 $f8, 0x66c($t8) -/* 0A9670 800A8A70 46808120 */ cvt.s.w $f4, $f16 -/* 0A9674 800A8A74 8E590000 */ lw $t9, ($s2) -/* 0A9678 800A8A78 00000000 */ nop -/* 0A967C 800A8A7C E7240670 */ swc1 $f4, 0x670($t9) -.L800A8A80: -/* 0A9680 800A8A80 1000030C */ b .L800A96B4 -/* 0A9684 800A8A84 00000000 */ nop -/* 0A9688 800A8A88 24010040 */ li $at, 64 -.L800A8A8C: -/* 0A968C 800A8A8C 146101B2 */ bne $v1, $at, .L800A9158 -/* 0A9690 800A8A90 24010041 */ li $at, 65 -/* 0A9694 800A8A94 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 -/* 0A9698 800A8A98 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) -/* 0A969C 800A8A9C 24010002 */ li $at, 2 -/* 0A96A0 800A8AA0 1461001B */ bne $v1, $at, .L800A8B10 -/* 0A96A4 800A8AA4 3C0A8012 */ lui $t2, %hi(gHUDNumPlayers) # $t2, 0x8012 -/* 0A96A8 800A8AA8 8D4A6D0C */ lw $t2, %lo(gHUDNumPlayers)($t2) -/* 0A96AC 800A8AAC 3C0B800E */ lui $t3, %hi(D_800E27A4) # $t3, 0x800e -/* 0A96B0 800A8AB0 016A5821 */ addu $t3, $t3, $t2 -/* 0A96B4 800A8AB4 816B27A4 */ lb $t3, %lo(D_800E27A4)($t3) -/* 0A96B8 800A8AB8 00000000 */ nop -/* 0A96BC 800A8ABC 15600015 */ bnez $t3, .L800A8B14 -/* 0A96C0 800A8AC0 24010003 */ li $at, 3 -/* 0A96C4 800A8AC4 0C01A142 */ jal func_80068508 -/* 0A96C8 800A8AC8 24040001 */ li $a0, 1 -/* 0A96CC 800A8ACC 0C01EFC7 */ jal func_8007BF1C -/* 0A96D0 800A8AD0 00002025 */ move $a0, $zero -/* 0A96D4 800A8AD4 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A96D8 800A8AD8 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A96DC 800A8ADC 0C019FCB */ jal func_80067F2C -/* 0A96E0 800A8AE0 02802025 */ move $a0, $s4 -/* 0A96E4 800A8AE4 8FA5016C */ lw $a1, 0x16c($sp) -/* 0A96E8 800A8AE8 0C028792 */ jal func_800A1E48 -/* 0A96EC 800A8AEC 00002025 */ move $a0, $zero -/* 0A96F0 800A8AF0 0C01A142 */ jal func_80068508 -/* 0A96F4 800A8AF4 00002025 */ move $a0, $zero -/* 0A96F8 800A8AF8 0C01ECF4 */ jal reset_render_settings -/* 0A96FC 800A8AFC 02802025 */ move $a0, $s4 -/* 0A9700 800A8B00 0C01EFC7 */ jal func_8007BF1C -/* 0A9704 800A8B04 24040001 */ li $a0, 1 -/* 0A9708 800A8B08 100002EA */ b .L800A96B4 -/* 0A970C 800A8B0C 00000000 */ nop -.L800A8B10: -/* 0A9710 800A8B10 24010003 */ li $at, 3 -.L800A8B14: -/* 0A9714 800A8B14 1461018D */ bne $v1, $at, .L800A914C -/* 0A9718 800A8B18 00000000 */ nop -/* 0A971C 800A8B1C 8FAC0140 */ lw $t4, 0x140($sp) -/* 0A9720 800A8B20 00008025 */ move $s0, $zero -/* 0A9724 800A8B24 19800042 */ blez $t4, .L800A8C30 -/* 0A9728 800A8B28 00002825 */ move $a1, $zero -/* 0A972C 800A8B2C 31880003 */ andi $t0, $t4, 3 -/* 0A9730 800A8B30 11000013 */ beqz $t0, .L800A8B80 -/* 0A9734 800A8B34 01003025 */ move $a2, $t0 -/* 0A9738 800A8B38 00006880 */ sll $t5, $zero, 2 -/* 0A973C 800A8B3C 004D2021 */ addu $a0, $v0, $t5 -/* 0A9740 800A8B40 2413FFFF */ li $s3, -1 -.L800A8B44: -/* 0A9744 800A8B44 8C8E0000 */ lw $t6, ($a0) -/* 0A9748 800A8B48 24A50001 */ addiu $a1, $a1, 1 -/* 0A974C 800A8B4C 8DC30064 */ lw $v1, 0x64($t6) -/* 0A9750 800A8B50 00000000 */ nop -/* 0A9754 800A8B54 846F0000 */ lh $t7, ($v1) -/* 0A9758 800A8B58 00000000 */ nop -/* 0A975C 800A8B5C 166F0002 */ bne $s3, $t7, .L800A8B68 -/* 0A9760 800A8B60 00000000 */ nop -/* 0A9764 800A8B64 00608025 */ move $s0, $v1 -.L800A8B68: -/* 0A9768 800A8B68 14C5FFF6 */ bne $a2, $a1, .L800A8B44 -/* 0A976C 800A8B6C 24840004 */ addiu $a0, $a0, 4 -/* 0A9770 800A8B70 8FB80140 */ lw $t8, 0x140($sp) -/* 0A9774 800A8B74 00000000 */ nop -/* 0A9778 800A8B78 10B8002D */ beq $a1, $t8, .L800A8C30 -/* 0A977C 800A8B7C 00000000 */ nop -.L800A8B80: -/* 0A9780 800A8B80 8FB90140 */ lw $t9, 0x140($sp) -/* 0A9784 800A8B84 00055880 */ sll $t3, $a1, 2 -/* 0A9788 800A8B88 00195080 */ sll $t2, $t9, 2 -/* 0A978C 800A8B8C 01423021 */ addu $a2, $t2, $v0 -/* 0A9790 800A8B90 004B2021 */ addu $a0, $v0, $t3 -/* 0A9794 800A8B94 2413FFFF */ li $s3, -1 -.L800A8B98: -/* 0A9798 800A8B98 8C8C0000 */ lw $t4, ($a0) -/* 0A979C 800A8B9C 00000000 */ nop -/* 0A97A0 800A8BA0 8D830064 */ lw $v1, 0x64($t4) -/* 0A97A4 800A8BA4 00000000 */ nop -/* 0A97A8 800A8BA8 846D0000 */ lh $t5, ($v1) -/* 0A97AC 800A8BAC 00000000 */ nop -/* 0A97B0 800A8BB0 166D0002 */ bne $s3, $t5, .L800A8BBC -/* 0A97B4 800A8BB4 00000000 */ nop -/* 0A97B8 800A8BB8 00608025 */ move $s0, $v1 -.L800A8BBC: -/* 0A97BC 800A8BBC 8C8E0004 */ lw $t6, 4($a0) -/* 0A97C0 800A8BC0 00000000 */ nop -/* 0A97C4 800A8BC4 8DC30064 */ lw $v1, 0x64($t6) -/* 0A97C8 800A8BC8 00000000 */ nop -/* 0A97CC 800A8BCC 846F0000 */ lh $t7, ($v1) -/* 0A97D0 800A8BD0 00000000 */ nop -/* 0A97D4 800A8BD4 166F0002 */ bne $s3, $t7, .L800A8BE0 -/* 0A97D8 800A8BD8 00000000 */ nop -/* 0A97DC 800A8BDC 00608025 */ move $s0, $v1 -.L800A8BE0: -/* 0A97E0 800A8BE0 8C980008 */ lw $t8, 8($a0) -/* 0A97E4 800A8BE4 00000000 */ nop -/* 0A97E8 800A8BE8 8F030064 */ lw $v1, 0x64($t8) -/* 0A97EC 800A8BEC 00000000 */ nop -/* 0A97F0 800A8BF0 84790000 */ lh $t9, ($v1) -/* 0A97F4 800A8BF4 00000000 */ nop -/* 0A97F8 800A8BF8 16790002 */ bne $s3, $t9, .L800A8C04 -/* 0A97FC 800A8BFC 00000000 */ nop -/* 0A9800 800A8C00 00608025 */ move $s0, $v1 -.L800A8C04: -/* 0A9804 800A8C04 8C8A000C */ lw $t2, 0xc($a0) -/* 0A9808 800A8C08 24840010 */ addiu $a0, $a0, 0x10 -/* 0A980C 800A8C0C 8D430064 */ lw $v1, 0x64($t2) -/* 0A9810 800A8C10 00000000 */ nop -/* 0A9814 800A8C14 846B0000 */ lh $t3, ($v1) -/* 0A9818 800A8C18 00000000 */ nop -/* 0A981C 800A8C1C 166B0002 */ bne $s3, $t3, .L800A8C28 -/* 0A9820 800A8C20 00000000 */ nop -/* 0A9824 800A8C24 00608025 */ move $s0, $v1 -.L800A8C28: -/* 0A9828 800A8C28 1486FFDB */ bne $a0, $a2, .L800A8B98 -/* 0A982C 800A8C2C 00000000 */ nop -.L800A8C30: -/* 0A9830 800A8C30 12000146 */ beqz $s0, .L800A914C -/* 0A9834 800A8C34 3C128012 */ lui $s2, %hi(D_80126CDC) # $s2, 0x8012 -/* 0A9838 800A8C38 444DF800 */ cfc1 $t5, $31 -/* 0A983C 800A8C3C 3C0C8012 */ lui $t4, %hi(D_80126CEC) # $t4, 0x8012 -/* 0A9840 800A8C40 8D8C6CEC */ lw $t4, %lo(D_80126CEC)($t4) -/* 0A9844 800A8C44 26526CDC */ addiu $s2, %lo(D_80126CDC) # addiu $s2, $s2, 0x6cdc -/* 0A9848 800A8C48 35A10003 */ ori $at, $t5, 3 -/* 0A984C 800A8C4C 38210002 */ xori $at, $at, 2 -/* 0A9850 800A8C50 AE4C0000 */ sw $t4, ($s2) -/* 0A9854 800A8C54 44C1F800 */ ctc1 $at, $31 -/* 0A9858 800A8C58 C586064C */ lwc1 $f6, 0x64c($t4) -/* 0A985C 800A8C5C 00002025 */ move $a0, $zero -/* 0A9860 800A8C60 460032A4 */ cvt.w.s $f10, $f6 -/* 0A9864 800A8C64 44CDF800 */ ctc1 $t5, $31 -/* 0A9868 800A8C68 440E5000 */ mfc1 $t6, $f10 -/* 0A986C 800A8C6C 00000000 */ nop -/* 0A9870 800A8C70 444FF800 */ cfc1 $t7, $31 -/* 0A9874 800A8C74 AFAE00E4 */ sw $t6, 0xe4($sp) -/* 0A9878 800A8C78 35E10003 */ ori $at, $t7, 3 -/* 0A987C 800A8C7C 38210002 */ xori $at, $at, 2 -/* 0A9880 800A8C80 44C1F800 */ ctc1 $at, $31 -/* 0A9884 800A8C84 C5920650 */ lwc1 $f18, 0x650($t4) -/* 0A9888 800A8C88 00000000 */ nop -/* 0A988C 800A8C8C 46009224 */ cvt.w.s $f8, $f18 -/* 0A9890 800A8C90 44184000 */ mfc1 $t8, $f8 -/* 0A9894 800A8C94 44CFF800 */ ctc1 $t7, $31 -/* 0A9898 800A8C98 0C01EFC7 */ jal func_8007BF1C -/* 0A989C 800A8C9C AFB800E0 */ sw $t8, 0xe0($sp) -/* 0A98A0 800A8CA0 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A98A4 800A8CA4 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A98A8 800A8CA8 0C019FCB */ jal func_80067F2C -/* 0A98AC 800A8CAC 02802025 */ move $a0, $s4 -/* 0A98B0 800A8CB0 0C01A142 */ jal func_80068508 -/* 0A98B4 800A8CB4 24040001 */ li $a0, 1 -/* 0A98B8 800A8CB8 3C014361 */ li $at, 0x43610000 # 225.000000 -/* 0A98BC 800A8CBC 44818000 */ mtc1 $at, $f16 -/* 0A98C0 800A8CC0 8E590000 */ lw $t9, ($s2) -/* 0A98C4 800A8CC4 3C0A8000 */ lui $t2, %hi(osTvType) # $t2, 0x8000 -/* 0A98C8 800A8CC8 E730064C */ swc1 $f16, 0x64c($t9) -/* 0A98CC 800A8CCC 8D4A0300 */ lw $t2, %lo(osTvType)($t2) -/* 0A98D0 800A8CD0 3C0D8000 */ lui $t5, %hi(osTvType) # $t5, 0x8000 -/* 0A98D4 800A8CD4 15400006 */ bnez $t2, .L800A8CF0 -/* 0A98D8 800A8CD8 3C118012 */ lui $s1, %hi(D_80126CD5) # $s1, 0x8012 -/* 0A98DC 800A8CDC 3C01800F */ lui $at, %hi(D_800E87A8) # $at, 0x800f -/* 0A98E0 800A8CE0 C42487A8 */ lwc1 $f4, %lo(D_800E87A8)($at) -/* 0A98E4 800A8CE4 8E4B0000 */ lw $t3, ($s2) -/* 0A98E8 800A8CE8 10000006 */ b .L800A8D04 -/* 0A98EC 800A8CEC E5640650 */ swc1 $f4, 0x650($t3) -.L800A8CF0: -/* 0A98F0 800A8CF0 3C014325 */ li $at, 0x43250000 # 165.000000 -/* 0A98F4 800A8CF4 44813000 */ mtc1 $at, $f6 -/* 0A98F8 800A8CF8 8E4C0000 */ lw $t4, ($s2) -/* 0A98FC 800A8CFC 00000000 */ nop -/* 0A9900 800A8D00 E5860650 */ swc1 $f6, 0x650($t4) -.L800A8D04: -/* 0A9904 800A8D04 8DAD0300 */ lw $t5, %lo(osTvType)($t5) -/* 0A9908 800A8D08 26316CD5 */ addiu $s1, %lo(D_80126CD5) # addiu $s1, $s1, 0x6cd5 -/* 0A990C 800A8D0C 15A00020 */ bnez $t5, .L800A8D90 -/* 0A9910 800A8D10 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A9914 800A8D14 8E420000 */ lw $v0, ($s2) -/* 0A9918 800A8D18 3C014284 */ li $at, 0x42840000 # 66.000000 -/* 0A991C 800A8D1C 44815000 */ mtc1 $at, $f10 -/* 0A9920 800A8D20 C44C036C */ lwc1 $f12, 0x36c($v0) -/* 0A9924 800A8D24 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0A9928 800A8D28 44814000 */ mtc1 $at, $f8 -/* 0A992C 800A8D2C 460C5481 */ sub.s $f18, $f10, $f12 -/* 0A9930 800A8D30 C44A0370 */ lwc1 $f10, 0x370($v0) -/* 0A9934 800A8D34 46089401 */ sub.s $f16, $f18, $f8 -/* 0A9938 800A8D38 444EF800 */ cfc1 $t6, $31 -/* 0A993C 800A8D3C 00000000 */ nop -/* 0A9940 800A8D40 35C10003 */ ori $at, $t6, 3 -/* 0A9944 800A8D44 38210002 */ xori $at, $at, 2 -/* 0A9948 800A8D48 44C1F800 */ ctc1 $at, $31 -/* 0A994C 800A8D4C 3C01C2E4 */ li $at, 0xC2E40000 # -114.000000 -/* 0A9950 800A8D50 46008124 */ cvt.w.s $f4, $f16 -/* 0A9954 800A8D54 44813000 */ mtc1 $at, $f6 -/* 0A9958 800A8D58 44CEF800 */ ctc1 $t6, $31 -/* 0A995C 800A8D5C 44042000 */ mfc1 $a0, $f4 -/* 0A9960 800A8D60 460A3481 */ sub.s $f18, $f6, $f10 -/* 0A9964 800A8D64 444FF800 */ cfc1 $t7, $31 -/* 0A9968 800A8D68 00000000 */ nop -/* 0A996C 800A8D6C 35E10003 */ ori $at, $t7, 3 -/* 0A9970 800A8D70 38210002 */ xori $at, $at, 2 -/* 0A9974 800A8D74 44C1F800 */ ctc1 $at, $31 -/* 0A9978 800A8D78 00000000 */ nop -/* 0A997C 800A8D7C 46009224 */ cvt.w.s $f8, $f18 -/* 0A9980 800A8D80 44034000 */ mfc1 $v1, $f8 -/* 0A9984 800A8D84 44CFF800 */ ctc1 $t7, $31 -/* 0A9988 800A8D88 1000001D */ b .L800A8E00 -/* 0A998C 800A8D8C 44842000 */ mtc1 $a0, $f4 -.L800A8D90: -/* 0A9990 800A8D90 8E420000 */ lw $v0, ($s2) -/* 0A9994 800A8D94 3C014284 */ li $at, 0x42840000 # 66.000000 -/* 0A9998 800A8D98 44818000 */ mtc1 $at, $f16 -/* 0A999C 800A8D9C C44C036C */ lwc1 $f12, 0x36c($v0) -/* 0A99A0 800A8DA0 C4520370 */ lwc1 $f18, 0x370($v0) -/* 0A99A4 800A8DA4 460C8101 */ sub.s $f4, $f16, $f12 -/* 0A99A8 800A8DA8 4458F800 */ cfc1 $t8, $31 -/* 0A99AC 800A8DAC 00000000 */ nop -/* 0A99B0 800A8DB0 37010003 */ ori $at, $t8, 3 -/* 0A99B4 800A8DB4 38210002 */ xori $at, $at, 2 -/* 0A99B8 800A8DB8 44C1F800 */ ctc1 $at, $31 -/* 0A99BC 800A8DBC 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 -/* 0A99C0 800A8DC0 460021A4 */ cvt.w.s $f6, $f4 -/* 0A99C4 800A8DC4 44815000 */ mtc1 $at, $f10 -/* 0A99C8 800A8DC8 44D8F800 */ ctc1 $t8, $31 -/* 0A99CC 800A8DCC 44043000 */ mfc1 $a0, $f6 -/* 0A99D0 800A8DD0 46125201 */ sub.s $f8, $f10, $f18 -/* 0A99D4 800A8DD4 4459F800 */ cfc1 $t9, $31 -/* 0A99D8 800A8DD8 00000000 */ nop -/* 0A99DC 800A8DDC 37210003 */ ori $at, $t9, 3 -/* 0A99E0 800A8DE0 38210002 */ xori $at, $at, 2 -/* 0A99E4 800A8DE4 44C1F800 */ ctc1 $at, $31 -/* 0A99E8 800A8DE8 00000000 */ nop -/* 0A99EC 800A8DEC 46004424 */ cvt.w.s $f16, $f8 -/* 0A99F0 800A8DF0 44D9F800 */ ctc1 $t9, $31 -/* 0A99F4 800A8DF4 44038000 */ mfc1 $v1, $f16 -/* 0A99F8 800A8DF8 00000000 */ nop -/* 0A99FC 800A8DFC 44842000 */ mtc1 $a0, $f4 -.L800A8E00: -/* 0A9A00 800A8E00 44835000 */ mtc1 $v1, $f10 -/* 0A9A04 800A8E04 46802020 */ cvt.s.w $f0, $f4 -/* 0A9A08 800A8E08 246A0001 */ addiu $t2, $v1, 1 -/* 0A9A0C 800A8E0C 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 -/* 0A9A10 800A8E10 46006180 */ add.s $f6, $f12, $f0 -/* 0A9A14 800A8E14 3C068012 */ lui $a2, %hi(gHUDCurrVertex) # $a2, 0x8012 -/* 0A9A18 800A8E18 E446036C */ swc1 $f6, 0x36c($v0) -/* 0A9A1C 800A8E1C 8E420000 */ lw $v0, ($s2) -/* 0A9A20 800A8E20 468050A0 */ cvt.s.w $f2, $f10 -/* 0A9A24 800A8E24 C4520370 */ lwc1 $f18, 0x370($v0) -/* 0A9A28 800A8E28 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0A9A2C 800A8E2C 46029200 */ add.s $f8, $f18, $f2 -/* 0A9A30 800A8E30 240F0001 */ li $t7, 1 -/* 0A9A34 800A8E34 E4480370 */ swc1 $f8, 0x370($v0) -/* 0A9A38 800A8E38 8E420000 */ lw $v0, ($s2) -/* 0A9A3C 800A8E3C 24C66D04 */ addiu $a2, %lo(gHUDCurrVertex) # addiu $a2, $a2, 0x6d04 -/* 0A9A40 800A8E40 C45000EC */ lwc1 $f16, 0xec($v0) -/* 0A9A44 800A8E44 02802025 */ move $a0, $s4 -/* 0A9A48 800A8E48 46008100 */ add.s $f4, $f16, $f0 -/* 0A9A4C 800A8E4C 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A9A50 800A8E50 E44400EC */ swc1 $f4, 0xec($v0) -/* 0A9A54 800A8E54 8E420000 */ lw $v0, ($s2) -/* 0A9A58 800A8E58 00000000 */ nop -/* 0A9A5C 800A8E5C C44600F0 */ lwc1 $f6, 0xf0($v0) -/* 0A9A60 800A8E60 00000000 */ nop -/* 0A9A64 800A8E64 46023280 */ add.s $f10, $f6, $f2 -/* 0A9A68 800A8E68 E44A00F0 */ swc1 $f10, 0xf0($v0) -/* 0A9A6C 800A8E6C 8E420000 */ lw $v0, ($s2) -/* 0A9A70 800A8E70 00000000 */ nop -/* 0A9A74 800A8E74 C452038C */ lwc1 $f18, 0x38c($v0) -/* 0A9A78 800A8E78 00000000 */ nop -/* 0A9A7C 800A8E7C 46009200 */ add.s $f8, $f18, $f0 -/* 0A9A80 800A8E80 448A9000 */ mtc1 $t2, $f18 -/* 0A9A84 800A8E84 E448038C */ swc1 $f8, 0x38c($v0) -/* 0A9A88 800A8E88 8E420000 */ lw $v0, ($s2) -/* 0A9A8C 800A8E8C 468093A0 */ cvt.s.w $f14, $f18 -/* 0A9A90 800A8E90 C4500390 */ lwc1 $f16, 0x390($v0) -/* 0A9A94 800A8E94 00000000 */ nop -/* 0A9A98 800A8E98 46028100 */ add.s $f4, $f16, $f2 -/* 0A9A9C 800A8E9C E4440390 */ swc1 $f4, 0x390($v0) -/* 0A9AA0 800A8EA0 8E420000 */ lw $v0, ($s2) -/* 0A9AA4 800A8EA4 00000000 */ nop -/* 0A9AA8 800A8EA8 C446010C */ lwc1 $f6, 0x10c($v0) -/* 0A9AAC 800A8EAC 00000000 */ nop -/* 0A9AB0 800A8EB0 46003280 */ add.s $f10, $f6, $f0 -/* 0A9AB4 800A8EB4 E44A010C */ swc1 $f10, 0x10c($v0) -/* 0A9AB8 800A8EB8 8E420000 */ lw $v0, ($s2) -/* 0A9ABC 800A8EBC 00000000 */ nop -/* 0A9AC0 800A8EC0 C4480110 */ lwc1 $f8, 0x110($v0) -/* 0A9AC4 800A8EC4 00000000 */ nop -/* 0A9AC8 800A8EC8 460E4401 */ sub.s $f16, $f8, $f14 -/* 0A9ACC 800A8ECC E4500110 */ swc1 $f16, 0x110($v0) -/* 0A9AD0 800A8ED0 8E420000 */ lw $v0, ($s2) -/* 0A9AD4 800A8ED4 00000000 */ nop -/* 0A9AD8 800A8ED8 C444012C */ lwc1 $f4, 0x12c($v0) -/* 0A9ADC 800A8EDC 00000000 */ nop -/* 0A9AE0 800A8EE0 46002180 */ add.s $f6, $f4, $f0 -/* 0A9AE4 800A8EE4 E446012C */ swc1 $f6, 0x12c($v0) -/* 0A9AE8 800A8EE8 8E420000 */ lw $v0, ($s2) -/* 0A9AEC 800A8EEC 00000000 */ nop -/* 0A9AF0 800A8EF0 C44A0130 */ lwc1 $f10, 0x130($v0) -/* 0A9AF4 800A8EF4 00000000 */ nop -/* 0A9AF8 800A8EF8 460E5481 */ sub.s $f18, $f10, $f14 -/* 0A9AFC 800A8EFC E4520130 */ swc1 $f18, 0x130($v0) -/* 0A9B00 800A8F00 8E420000 */ lw $v0, ($s2) -/* 0A9B04 800A8F04 00000000 */ nop -/* 0A9B08 800A8F08 C448024C */ lwc1 $f8, 0x24c($v0) -/* 0A9B0C 800A8F0C 00000000 */ nop -/* 0A9B10 800A8F10 46004400 */ add.s $f16, $f8, $f0 -/* 0A9B14 800A8F14 E450024C */ swc1 $f16, 0x24c($v0) -/* 0A9B18 800A8F18 8E420000 */ lw $v0, ($s2) -/* 0A9B1C 800A8F1C 00000000 */ nop -/* 0A9B20 800A8F20 C4440250 */ lwc1 $f4, 0x250($v0) -/* 0A9B24 800A8F24 00000000 */ nop -/* 0A9B28 800A8F28 46022181 */ sub.s $f6, $f4, $f2 -/* 0A9B2C 800A8F2C E4460250 */ swc1 $f6, 0x250($v0) -/* 0A9B30 800A8F30 820B0003 */ lb $t3, 3($s0) -/* 0A9B34 800A8F34 8E4D0000 */ lw $t5, ($s2) -/* 0A9B38 800A8F38 256C0038 */ addiu $t4, $t3, 0x38 -/* 0A9B3C 800A8F3C A5AC0646 */ sh $t4, 0x646($t5) -/* 0A9B40 800A8F40 8DCE0300 */ lw $t6, %lo(osTvType)($t6) -/* 0A9B44 800A8F44 00000000 */ nop -/* 0A9B48 800A8F48 15C0000D */ bnez $t6, .L800A8F80 -/* 0A9B4C 800A8F4C 00000000 */ nop -/* 0A9B50 800A8F50 8E420000 */ lw $v0, ($s2) -/* 0A9B54 800A8F54 44819000 */ mtc1 $at, $f18 -/* 0A9B58 800A8F58 C44A064C */ lwc1 $f10, 0x64c($v0) -/* 0A9B5C 800A8F5C 44812000 */ mtc1 $at, $f4 -/* 0A9B60 800A8F60 46125201 */ sub.s $f8, $f10, $f18 -/* 0A9B64 800A8F64 E448064C */ swc1 $f8, 0x64c($v0) -/* 0A9B68 800A8F68 8E420000 */ lw $v0, ($s2) -/* 0A9B6C 800A8F6C 00000000 */ nop -/* 0A9B70 800A8F70 C450066C */ lwc1 $f16, 0x66c($v0) -/* 0A9B74 800A8F74 00000000 */ nop -/* 0A9B78 800A8F78 46048181 */ sub.s $f6, $f16, $f4 -/* 0A9B7C 800A8F7C E446066C */ swc1 $f6, 0x66c($v0) -.L800A8F80: -/* 0A9B80 800A8F80 8E470000 */ lw $a3, ($s2) -/* 0A9B84 800A8F84 A22F0000 */ sb $t7, ($s1) -/* 0A9B88 800A8F88 E7A0004C */ swc1 $f0, 0x4c($sp) -/* 0A9B8C 800A8F8C E7A20048 */ swc1 $f2, 0x48($sp) -/* 0A9B90 800A8F90 E7AE0044 */ swc1 $f14, 0x44($sp) -/* 0A9B94 800A8F94 0C02A980 */ jal func_800AA600 -/* 0A9B98 800A8F98 24E70640 */ addiu $a3, $a3, 0x640 -/* 0A9B9C 800A8F9C 8E420000 */ lw $v0, ($s2) -/* 0A9BA0 800A8FA0 A2200000 */ sb $zero, ($s1) -/* 0A9BA4 800A8FA4 805800FB */ lb $t8, 0xfb($v0) -/* 0A9BA8 800A8FA8 C7A0004C */ lwc1 $f0, 0x4c($sp) -/* 0A9BAC 800A8FAC C7A20048 */ lwc1 $f2, 0x48($sp) -/* 0A9BB0 800A8FB0 C7AE0044 */ lwc1 $f14, 0x44($sp) -/* 0A9BB4 800A8FB4 17000006 */ bnez $t8, .L800A8FD0 -/* 0A9BB8 800A8FB8 02002025 */ move $a0, $s0 -/* 0A9BBC 800A8FBC 82030185 */ lb $v1, 0x185($s0) -/* 0A9BC0 800A8FC0 2401000A */ li $at, 10 -/* 0A9BC4 800A8FC4 14610003 */ bne $v1, $at, .L800A8FD4 -/* 0A9BC8 800A8FC8 8FA5016C */ lw $a1, 0x16c($sp) -/* 0A9BCC 800A8FCC A04300FB */ sb $v1, 0xfb($v0) -.L800A8FD0: -/* 0A9BD0 800A8FD0 8FA5016C */ lw $a1, 0x16c($sp) -.L800A8FD4: -/* 0A9BD4 800A8FD4 E7A0004C */ swc1 $f0, 0x4c($sp) -/* 0A9BD8 800A8FD8 E7A20048 */ swc1 $f2, 0x48($sp) -/* 0A9BDC 800A8FDC 0C029055 */ jal render_racer_bananas -/* 0A9BE0 800A8FE0 E7AE0044 */ swc1 $f14, 0x44($sp) -/* 0A9BE4 800A8FE4 8E420000 */ lw $v0, ($s2) -/* 0A9BE8 800A8FE8 C7A0004C */ lwc1 $f0, 0x4c($sp) -/* 0A9BEC 800A8FEC C44A036C */ lwc1 $f10, 0x36c($v0) -/* 0A9BF0 800A8FF0 C7A20048 */ lwc1 $f2, 0x48($sp) -/* 0A9BF4 800A8FF4 46005481 */ sub.s $f18, $f10, $f0 -/* 0A9BF8 800A8FF8 C7AE0044 */ lwc1 $f14, 0x44($sp) -/* 0A9BFC 800A8FFC E452036C */ swc1 $f18, 0x36c($v0) -/* 0A9C00 800A9000 8E420000 */ lw $v0, ($s2) -/* 0A9C04 800A9004 24040001 */ li $a0, 1 -/* 0A9C08 800A9008 C4480370 */ lwc1 $f8, 0x370($v0) -/* 0A9C0C 800A900C 00000000 */ nop -/* 0A9C10 800A9010 46024401 */ sub.s $f16, $f8, $f2 -/* 0A9C14 800A9014 E4500370 */ swc1 $f16, 0x370($v0) -/* 0A9C18 800A9018 8E420000 */ lw $v0, ($s2) -/* 0A9C1C 800A901C 00000000 */ nop -/* 0A9C20 800A9020 C44400EC */ lwc1 $f4, 0xec($v0) -/* 0A9C24 800A9024 00000000 */ nop -/* 0A9C28 800A9028 46002181 */ sub.s $f6, $f4, $f0 -/* 0A9C2C 800A902C E44600EC */ swc1 $f6, 0xec($v0) -/* 0A9C30 800A9030 8E420000 */ lw $v0, ($s2) -/* 0A9C34 800A9034 00000000 */ nop -/* 0A9C38 800A9038 C44A00F0 */ lwc1 $f10, 0xf0($v0) -/* 0A9C3C 800A903C 00000000 */ nop -/* 0A9C40 800A9040 46025481 */ sub.s $f18, $f10, $f2 -/* 0A9C44 800A9044 E45200F0 */ swc1 $f18, 0xf0($v0) -/* 0A9C48 800A9048 8E420000 */ lw $v0, ($s2) -/* 0A9C4C 800A904C 00000000 */ nop -/* 0A9C50 800A9050 C448038C */ lwc1 $f8, 0x38c($v0) -/* 0A9C54 800A9054 00000000 */ nop -/* 0A9C58 800A9058 46004401 */ sub.s $f16, $f8, $f0 -/* 0A9C5C 800A905C E450038C */ swc1 $f16, 0x38c($v0) -/* 0A9C60 800A9060 8E420000 */ lw $v0, ($s2) -/* 0A9C64 800A9064 00000000 */ nop -/* 0A9C68 800A9068 C4440390 */ lwc1 $f4, 0x390($v0) -/* 0A9C6C 800A906C 00000000 */ nop -/* 0A9C70 800A9070 46022181 */ sub.s $f6, $f4, $f2 -/* 0A9C74 800A9074 E4460390 */ swc1 $f6, 0x390($v0) -/* 0A9C78 800A9078 8E420000 */ lw $v0, ($s2) -/* 0A9C7C 800A907C 00000000 */ nop -/* 0A9C80 800A9080 C44A010C */ lwc1 $f10, 0x10c($v0) -/* 0A9C84 800A9084 00000000 */ nop -/* 0A9C88 800A9088 46005481 */ sub.s $f18, $f10, $f0 -/* 0A9C8C 800A908C E452010C */ swc1 $f18, 0x10c($v0) -/* 0A9C90 800A9090 8E420000 */ lw $v0, ($s2) -/* 0A9C94 800A9094 00000000 */ nop -/* 0A9C98 800A9098 C4480110 */ lwc1 $f8, 0x110($v0) -/* 0A9C9C 800A909C 00000000 */ nop -/* 0A9CA0 800A90A0 460E4400 */ add.s $f16, $f8, $f14 -/* 0A9CA4 800A90A4 E4500110 */ swc1 $f16, 0x110($v0) -/* 0A9CA8 800A90A8 8E420000 */ lw $v0, ($s2) -/* 0A9CAC 800A90AC 00000000 */ nop -/* 0A9CB0 800A90B0 C444012C */ lwc1 $f4, 0x12c($v0) -/* 0A9CB4 800A90B4 00000000 */ nop -/* 0A9CB8 800A90B8 46002181 */ sub.s $f6, $f4, $f0 -/* 0A9CBC 800A90BC E446012C */ swc1 $f6, 0x12c($v0) -/* 0A9CC0 800A90C0 8E420000 */ lw $v0, ($s2) -/* 0A9CC4 800A90C4 00000000 */ nop -/* 0A9CC8 800A90C8 C44A0130 */ lwc1 $f10, 0x130($v0) -/* 0A9CCC 800A90CC 00000000 */ nop -/* 0A9CD0 800A90D0 460E5480 */ add.s $f18, $f10, $f14 -/* 0A9CD4 800A90D4 E4520130 */ swc1 $f18, 0x130($v0) -/* 0A9CD8 800A90D8 8E420000 */ lw $v0, ($s2) -/* 0A9CDC 800A90DC 00000000 */ nop -/* 0A9CE0 800A90E0 C448024C */ lwc1 $f8, 0x24c($v0) -/* 0A9CE4 800A90E4 00000000 */ nop -/* 0A9CE8 800A90E8 46004401 */ sub.s $f16, $f8, $f0 -/* 0A9CEC 800A90EC E450024C */ swc1 $f16, 0x24c($v0) -/* 0A9CF0 800A90F0 8E420000 */ lw $v0, ($s2) -/* 0A9CF4 800A90F4 00000000 */ nop -/* 0A9CF8 800A90F8 C4440250 */ lwc1 $f4, 0x250($v0) -/* 0A9CFC 800A90FC 00000000 */ nop -/* 0A9D00 800A9100 46022180 */ add.s $f6, $f4, $f2 -/* 0A9D04 800A9104 E4460250 */ swc1 $f6, 0x250($v0) -/* 0A9D08 800A9108 8FB900E4 */ lw $t9, 0xe4($sp) -/* 0A9D0C 800A910C 8E4A0000 */ lw $t2, ($s2) -/* 0A9D10 800A9110 44995000 */ mtc1 $t9, $f10 -/* 0A9D14 800A9114 00000000 */ nop -/* 0A9D18 800A9118 468054A0 */ cvt.s.w $f18, $f10 -/* 0A9D1C 800A911C E552064C */ swc1 $f18, 0x64c($t2) -/* 0A9D20 800A9120 8FAB00E0 */ lw $t3, 0xe0($sp) -/* 0A9D24 800A9124 8E4C0000 */ lw $t4, ($s2) -/* 0A9D28 800A9128 448B4000 */ mtc1 $t3, $f8 -/* 0A9D2C 800A912C 00000000 */ nop -/* 0A9D30 800A9130 46804420 */ cvt.s.w $f16, $f8 -/* 0A9D34 800A9134 0C01EFC7 */ jal func_8007BF1C -/* 0A9D38 800A9138 E5900650 */ swc1 $f16, 0x650($t4) -/* 0A9D3C 800A913C 0C01ECF4 */ jal reset_render_settings -/* 0A9D40 800A9140 02802025 */ move $a0, $s4 -/* 0A9D44 800A9144 0C01A142 */ jal func_80068508 -/* 0A9D48 800A9148 00002025 */ move $a0, $zero -.L800A914C: -/* 0A9D4C 800A914C 10000159 */ b .L800A96B4 -/* 0A9D50 800A9150 00000000 */ nop -/* 0A9D54 800A9154 24010041 */ li $at, 65 -.L800A9158: -/* 0A9D58 800A9158 14610156 */ bne $v1, $at, .L800A96B4 -/* 0A9D5C 800A915C 3C038012 */ lui $v1, %hi(D_80126D37) # $v1, 0x8012 -/* 0A9D60 800A9160 90636D37 */ lbu $v1, %lo(D_80126D37)($v1) -/* 0A9D64 800A9164 24010002 */ li $at, 2 -/* 0A9D68 800A9168 1461007C */ bne $v1, $at, .L800A935C -/* 0A9D6C 800A916C 3C0D8012 */ lui $t5, %hi(gHUDNumPlayers) # $t5, 0x8012 -/* 0A9D70 800A9170 8DAD6D0C */ lw $t5, %lo(gHUDNumPlayers)($t5) -/* 0A9D74 800A9174 3C0E800E */ lui $t6, %hi(D_800E27A4) # $t6, 0x800e -/* 0A9D78 800A9178 01CD7021 */ addu $t6, $t6, $t5 -/* 0A9D7C 800A917C 81CE27A4 */ lb $t6, %lo(D_800E27A4)($t6) -/* 0A9D80 800A9180 3C128012 */ lui $s2, %hi(D_80126CDC) # $s2, 0x8012 -/* 0A9D84 800A9184 15C00075 */ bnez $t6, .L800A935C -/* 0A9D88 800A9188 26526CDC */ addiu $s2, %lo(D_80126CDC) # addiu $s2, $s2, 0x6cdc -/* 0A9D8C 800A918C 444FF800 */ cfc1 $t7, $31 -/* 0A9D90 800A9190 8E420000 */ lw $v0, ($s2) -/* 0A9D94 800A9194 35E10003 */ ori $at, $t7, 3 -/* 0A9D98 800A9198 38210002 */ xori $at, $at, 2 -/* 0A9D9C 800A919C 44C1F800 */ ctc1 $at, $31 -/* 0A9DA0 800A91A0 C444064C */ lwc1 $f4, 0x64c($v0) -/* 0A9DA4 800A91A4 C44A0650 */ lwc1 $f10, 0x650($v0) -/* 0A9DA8 800A91A8 460021A4 */ cvt.w.s $f6, $f4 -/* 0A9DAC 800A91AC C448040C */ lwc1 $f8, 0x40c($v0) -/* 0A9DB0 800A91B0 44CFF800 */ ctc1 $t7, $31 -/* 0A9DB4 800A91B4 C4440410 */ lwc1 $f4, 0x410($v0) -/* 0A9DB8 800A91B8 44103000 */ mfc1 $s0, $f6 -/* 0A9DBC 800A91BC 4458F800 */ cfc1 $t8, $31 -/* 0A9DC0 800A91C0 27A400CC */ addiu $a0, $sp, 0xcc -/* 0A9DC4 800A91C4 37010003 */ ori $at, $t8, 3 -/* 0A9DC8 800A91C8 38210002 */ xori $at, $at, 2 -/* 0A9DCC 800A91CC 44C1F800 */ ctc1 $at, $31 -/* 0A9DD0 800A91D0 00000000 */ nop -/* 0A9DD4 800A91D4 460054A4 */ cvt.w.s $f18, $f10 -/* 0A9DD8 800A91D8 44D8F800 */ ctc1 $t8, $31 -/* 0A9DDC 800A91DC 44119000 */ mfc1 $s1, $f18 -/* 0A9DE0 800A91E0 00000000 */ nop -/* 0A9DE4 800A91E4 4459F800 */ cfc1 $t9, $31 -/* 0A9DE8 800A91E8 00000000 */ nop -/* 0A9DEC 800A91EC 37210003 */ ori $at, $t9, 3 -/* 0A9DF0 800A91F0 38210002 */ xori $at, $at, 2 -/* 0A9DF4 800A91F4 44C1F800 */ ctc1 $at, $31 -/* 0A9DF8 800A91F8 00000000 */ nop -/* 0A9DFC 800A91FC 46004424 */ cvt.w.s $f16, $f8 -/* 0A9E00 800A9200 44D9F800 */ ctc1 $t9, $31 -/* 0A9E04 800A9204 44138000 */ mfc1 $s3, $f16 -/* 0A9E08 800A9208 00000000 */ nop -/* 0A9E0C 800A920C 444AF800 */ cfc1 $t2, $31 -/* 0A9E10 800A9210 00000000 */ nop -/* 0A9E14 800A9214 35410003 */ ori $at, $t2, 3 -/* 0A9E18 800A9218 38210002 */ xori $at, $at, 2 -/* 0A9E1C 800A921C 44C1F800 */ ctc1 $at, $31 -/* 0A9E20 800A9220 00000000 */ nop -/* 0A9E24 800A9224 460021A4 */ cvt.w.s $f6, $f4 -/* 0A9E28 800A9228 440B3000 */ mfc1 $t3, $f6 -/* 0A9E2C 800A922C 44CAF800 */ ctc1 $t2, $31 -/* 0A9E30 800A9230 0C006E9D */ jal get_racer_objects -/* 0A9E34 800A9234 AFAB00BC */ sw $t3, 0xbc($sp) -/* 0A9E38 800A9238 8FAC00CC */ lw $t4, 0xcc($sp) -/* 0A9E3C 800A923C 00001825 */ move $v1, $zero -/* 0A9E40 800A9240 19800032 */ blez $t4, .L800A930C -/* 0A9E44 800A9244 00403025 */ move $a2, $v0 -.L800A9248: -/* 0A9E48 800A9248 8CCD0000 */ lw $t5, ($a2) -/* 0A9E4C 800A924C 00000000 */ nop -/* 0A9E50 800A9250 8DA40064 */ lw $a0, 0x64($t5) -/* 0A9E54 800A9254 AFA60054 */ sw $a2, 0x54($sp) -/* 0A9E58 800A9258 0C02917C */ jal func_800A45F0 -/* 0A9E5C 800A925C AFA300D0 */ sw $v1, 0xd0($sp) -# Used to access D_800E87B8 and D_800E87B8 + 4. -/* 0A9E60 800A9260 3C01800F */ lui $at, %hi(D_800E87B8) # $at, 0x800f -/* 0A9E64 800A9264 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 -/* 0A9E68 800A9268 8DCE0300 */ lw $t6, %lo(osTvType)($t6) -/* 0A9E6C 800A926C C42187B8 */ lwc1 $f1, %lo(D_800E87B8)($at) -/* 0A9E70 800A9270 C42087BC */ lwc1 $f0, %lo(D_800E87B8 + 4)($at) -/* 0A9E74 800A9274 8FA300D0 */ lw $v1, 0xd0($sp) -/* 0A9E78 800A9278 8FA60054 */ lw $a2, 0x54($sp) -/* 0A9E7C 800A927C 15C00012 */ bnez $t6, .L800A92C8 -/* 0A9E80 800A9280 3C01425C */ li $at, 0x425C0000 # 55.000000 -/* 0A9E84 800A9284 8E420000 */ lw $v0, ($s2) -/* 0A9E88 800A9288 00000000 */ nop -/* 0A9E8C 800A928C C44A0650 */ lwc1 $f10, 0x650($v0) -/* 0A9E90 800A9290 00000000 */ nop -/* 0A9E94 800A9294 460054A1 */ cvt.d.s $f18, $f10 -/* 0A9E98 800A9298 46209200 */ add.d $f8, $f18, $f0 -/* 0A9E9C 800A929C 46204420 */ cvt.s.d $f16, $f8 -/* 0A9EA0 800A92A0 E4500650 */ swc1 $f16, 0x650($v0) -/* 0A9EA4 800A92A4 8E420000 */ lw $v0, ($s2) -/* 0A9EA8 800A92A8 00000000 */ nop -/* 0A9EAC 800A92AC C4440410 */ lwc1 $f4, 0x410($v0) -/* 0A9EB0 800A92B0 00000000 */ nop -/* 0A9EB4 800A92B4 460021A1 */ cvt.d.s $f6, $f4 -/* 0A9EB8 800A92B8 46203280 */ add.d $f10, $f6, $f0 -/* 0A9EBC 800A92BC 462054A0 */ cvt.s.d $f18, $f10 -/* 0A9EC0 800A92C0 1000000D */ b .L800A92F8 -/* 0A9EC4 800A92C4 E4520410 */ swc1 $f18, 0x410($v0) -.L800A92C8: -/* 0A9EC8 800A92C8 8E420000 */ lw $v0, ($s2) -/* 0A9ECC 800A92CC 44818000 */ mtc1 $at, $f16 -/* 0A9ED0 800A92D0 C4480650 */ lwc1 $f8, 0x650($v0) -/* 0A9ED4 800A92D4 44815000 */ mtc1 $at, $f10 -/* 0A9ED8 800A92D8 46104100 */ add.s $f4, $f8, $f16 -/* 0A9EDC 800A92DC E4440650 */ swc1 $f4, 0x650($v0) -/* 0A9EE0 800A92E0 8E420000 */ lw $v0, ($s2) -/* 0A9EE4 800A92E4 00000000 */ nop -/* 0A9EE8 800A92E8 C4460410 */ lwc1 $f6, 0x410($v0) -/* 0A9EEC 800A92EC 00000000 */ nop -/* 0A9EF0 800A92F0 460A3480 */ add.s $f18, $f6, $f10 -/* 0A9EF4 800A92F4 E4520410 */ swc1 $f18, 0x410($v0) -.L800A92F8: -/* 0A9EF8 800A92F8 8FAF00CC */ lw $t7, 0xcc($sp) -/* 0A9EFC 800A92FC 24630001 */ addiu $v1, $v1, 1 -/* 0A9F00 800A9300 006F082A */ slt $at, $v1, $t7 -/* 0A9F04 800A9304 1420FFD0 */ bnez $at, .L800A9248 -/* 0A9F08 800A9308 24C60004 */ addiu $a2, $a2, 4 -.L800A930C: -/* 0A9F0C 800A930C 44904000 */ mtc1 $s0, $f8 -/* 0A9F10 800A9310 8E580000 */ lw $t8, ($s2) -/* 0A9F14 800A9314 46804420 */ cvt.s.w $f16, $f8 -/* 0A9F18 800A9318 44912000 */ mtc1 $s1, $f4 -/* 0A9F1C 800A931C 44935000 */ mtc1 $s3, $f10 -/* 0A9F20 800A9320 468021A0 */ cvt.s.w $f6, $f4 -/* 0A9F24 800A9324 E710064C */ swc1 $f16, 0x64c($t8) -/* 0A9F28 800A9328 8E590000 */ lw $t9, ($s2) -/* 0A9F2C 800A932C 468054A0 */ cvt.s.w $f18, $f10 -/* 0A9F30 800A9330 E7260650 */ swc1 $f6, 0x650($t9) -/* 0A9F34 800A9334 8E4A0000 */ lw $t2, ($s2) -/* 0A9F38 800A9338 00000000 */ nop -/* 0A9F3C 800A933C E552040C */ swc1 $f18, 0x40c($t2) -/* 0A9F40 800A9340 8FAB00BC */ lw $t3, 0xbc($sp) -/* 0A9F44 800A9344 8E4C0000 */ lw $t4, ($s2) -/* 0A9F48 800A9348 448B4000 */ mtc1 $t3, $f8 -/* 0A9F4C 800A934C 00000000 */ nop -/* 0A9F50 800A9350 46804420 */ cvt.s.w $f16, $f8 -/* 0A9F54 800A9354 100000D7 */ b .L800A96B4 -/* 0A9F58 800A9358 E5900410 */ swc1 $f16, 0x410($t4) -.L800A935C: -/* 0A9F5C 800A935C 24010003 */ li $at, 3 -/* 0A9F60 800A9360 146100D4 */ bne $v1, $at, .L800A96B4 -/* 0A9F64 800A9364 00000000 */ nop -/* 0A9F68 800A9368 8FAD0140 */ lw $t5, 0x140($sp) -/* 0A9F6C 800A936C 00003025 */ move $a2, $zero -/* 0A9F70 800A9370 19A00042 */ blez $t5, .L800A947C -/* 0A9F74 800A9374 00002825 */ move $a1, $zero -/* 0A9F78 800A9378 31A80003 */ andi $t0, $t5, 3 -/* 0A9F7C 800A937C 11000013 */ beqz $t0, .L800A93CC -/* 0A9F80 800A9380 01003825 */ move $a3, $t0 -/* 0A9F84 800A9384 00007080 */ sll $t6, $zero, 2 -/* 0A9F88 800A9388 004E2021 */ addu $a0, $v0, $t6 -/* 0A9F8C 800A938C 2413FFFF */ li $s3, -1 -.L800A9390: -/* 0A9F90 800A9390 8C8F0000 */ lw $t7, ($a0) -/* 0A9F94 800A9394 24A50001 */ addiu $a1, $a1, 1 -/* 0A9F98 800A9398 8DE30064 */ lw $v1, 0x64($t7) -/* 0A9F9C 800A939C 00000000 */ nop -/* 0A9FA0 800A93A0 84780000 */ lh $t8, ($v1) -/* 0A9FA4 800A93A4 00000000 */ nop -/* 0A9FA8 800A93A8 16780002 */ bne $s3, $t8, .L800A93B4 -/* 0A9FAC 800A93AC 00000000 */ nop -/* 0A9FB0 800A93B0 00603025 */ move $a2, $v1 -.L800A93B4: -/* 0A9FB4 800A93B4 14E5FFF6 */ bne $a3, $a1, .L800A9390 -/* 0A9FB8 800A93B8 24840004 */ addiu $a0, $a0, 4 -/* 0A9FBC 800A93BC 8FB90140 */ lw $t9, 0x140($sp) -/* 0A9FC0 800A93C0 00000000 */ nop -/* 0A9FC4 800A93C4 10B9002D */ beq $a1, $t9, .L800A947C -/* 0A9FC8 800A93C8 00000000 */ nop -.L800A93CC: -/* 0A9FCC 800A93CC 8FAA0140 */ lw $t2, 0x140($sp) -/* 0A9FD0 800A93D0 00056080 */ sll $t4, $a1, 2 -/* 0A9FD4 800A93D4 000A5880 */ sll $t3, $t2, 2 -/* 0A9FD8 800A93D8 01623821 */ addu $a3, $t3, $v0 -/* 0A9FDC 800A93DC 004C2021 */ addu $a0, $v0, $t4 -/* 0A9FE0 800A93E0 2413FFFF */ li $s3, -1 -.L800A93E4: -/* 0A9FE4 800A93E4 8C8D0000 */ lw $t5, ($a0) -/* 0A9FE8 800A93E8 00000000 */ nop -/* 0A9FEC 800A93EC 8DA30064 */ lw $v1, 0x64($t5) -/* 0A9FF0 800A93F0 00000000 */ nop -/* 0A9FF4 800A93F4 846E0000 */ lh $t6, ($v1) -/* 0A9FF8 800A93F8 00000000 */ nop -/* 0A9FFC 800A93FC 166E0002 */ bne $s3, $t6, .L800A9408 -/* 0AA000 800A9400 00000000 */ nop -/* 0AA004 800A9404 00603025 */ move $a2, $v1 -.L800A9408: -/* 0AA008 800A9408 8C8F0004 */ lw $t7, 4($a0) -/* 0AA00C 800A940C 00000000 */ nop -/* 0AA010 800A9410 8DE30064 */ lw $v1, 0x64($t7) -/* 0AA014 800A9414 00000000 */ nop -/* 0AA018 800A9418 84780000 */ lh $t8, ($v1) -/* 0AA01C 800A941C 00000000 */ nop -/* 0AA020 800A9420 16780002 */ bne $s3, $t8, .L800A942C -/* 0AA024 800A9424 00000000 */ nop -/* 0AA028 800A9428 00603025 */ move $a2, $v1 -.L800A942C: -/* 0AA02C 800A942C 8C990008 */ lw $t9, 8($a0) -/* 0AA030 800A9430 00000000 */ nop -/* 0AA034 800A9434 8F230064 */ lw $v1, 0x64($t9) -/* 0AA038 800A9438 00000000 */ nop -/* 0AA03C 800A943C 846A0000 */ lh $t2, ($v1) -/* 0AA040 800A9440 00000000 */ nop -/* 0AA044 800A9444 166A0002 */ bne $s3, $t2, .L800A9450 -/* 0AA048 800A9448 00000000 */ nop -/* 0AA04C 800A944C 00603025 */ move $a2, $v1 -.L800A9450: -/* 0AA050 800A9450 8C8B000C */ lw $t3, 0xc($a0) -/* 0AA054 800A9454 24840010 */ addiu $a0, $a0, 0x10 -/* 0AA058 800A9458 8D630064 */ lw $v1, 0x64($t3) -/* 0AA05C 800A945C 00000000 */ nop -/* 0AA060 800A9460 846C0000 */ lh $t4, ($v1) -/* 0AA064 800A9464 00000000 */ nop -/* 0AA068 800A9468 166C0002 */ bne $s3, $t4, .L800A9474 -/* 0AA06C 800A946C 00000000 */ nop -/* 0AA070 800A9470 00603025 */ move $a2, $v1 -.L800A9474: -/* 0AA074 800A9474 1487FFDB */ bne $a0, $a3, .L800A93E4 -/* 0AA078 800A9478 00000000 */ nop -.L800A947C: -/* 0AA07C 800A947C 10C0008D */ beqz $a2, .L800A96B4 -/* 0AA080 800A9480 3C128012 */ lui $s2, %hi(D_80126CDC) # $s2, 0x8012 -/* 0AA084 800A9484 444DF800 */ cfc1 $t5, $31 -/* 0AA088 800A9488 26526CDC */ addiu $s2, %lo(D_80126CDC) # addiu $s2, $s2, 0x6cdc -/* 0AA08C 800A948C 8E420000 */ lw $v0, ($s2) -/* 0AA090 800A9490 35A10003 */ ori $at, $t5, 3 -/* 0AA094 800A9494 38210002 */ xori $at, $at, 2 -/* 0AA098 800A9498 44C1F800 */ ctc1 $at, $31 -/* 0AA09C 800A949C C444064C */ lwc1 $f4, 0x64c($v0) -/* 0AA0A0 800A94A0 C44A0650 */ lwc1 $f10, 0x650($v0) -/* 0AA0A4 800A94A4 460021A4 */ cvt.w.s $f6, $f4 -/* 0AA0A8 800A94A8 C448040C */ lwc1 $f8, 0x40c($v0) -/* 0AA0AC 800A94AC 44CDF800 */ ctc1 $t5, $31 -/* 0AA0B0 800A94B0 C4440410 */ lwc1 $f4, 0x410($v0) -/* 0AA0B4 800A94B4 44103000 */ mfc1 $s0, $f6 -/* 0AA0B8 800A94B8 444EF800 */ cfc1 $t6, $31 -/* 0AA0BC 800A94BC 3C0C8000 */ lui $t4, %hi(osTvType) # $t4, 0x8000 -/* 0AA0C0 800A94C0 35C10003 */ ori $at, $t6, 3 -/* 0AA0C4 800A94C4 38210002 */ xori $at, $at, 2 -/* 0AA0C8 800A94C8 44C1F800 */ ctc1 $at, $31 -/* 0AA0CC 800A94CC 00C02025 */ move $a0, $a2 -/* 0AA0D0 800A94D0 460054A4 */ cvt.w.s $f18, $f10 -/* 0AA0D4 800A94D4 44CEF800 */ ctc1 $t6, $31 -/* 0AA0D8 800A94D8 44119000 */ mfc1 $s1, $f18 -/* 0AA0DC 800A94DC 00000000 */ nop -/* 0AA0E0 800A94E0 444FF800 */ cfc1 $t7, $31 -/* 0AA0E4 800A94E4 00000000 */ nop -/* 0AA0E8 800A94E8 35E10003 */ ori $at, $t7, 3 -/* 0AA0EC 800A94EC 38210002 */ xori $at, $at, 2 -/* 0AA0F0 800A94F0 44C1F800 */ ctc1 $at, $31 -/* 0AA0F4 800A94F4 00000000 */ nop -/* 0AA0F8 800A94F8 46004424 */ cvt.w.s $f16, $f8 -/* 0AA0FC 800A94FC 44CFF800 */ ctc1 $t7, $31 -/* 0AA100 800A9500 44038000 */ mfc1 $v1, $f16 -/* 0AA104 800A9504 00000000 */ nop -/* 0AA108 800A9508 4458F800 */ cfc1 $t8, $31 -/* 0AA10C 800A950C 00000000 */ nop -/* 0AA110 800A9510 37010003 */ ori $at, $t8, 3 -/* 0AA114 800A9514 38210002 */ xori $at, $at, 2 -/* 0AA118 800A9518 44C1F800 */ ctc1 $at, $31 -/* 0AA11C 800A951C 3C014361 */ li $at, 0x43610000 # 225.000000 -/* 0AA120 800A9520 44815000 */ mtc1 $at, $f10 -/* 0AA124 800A9524 3C014325 */ li $at, 0x43250000 # 165.000000 -/* 0AA128 800A9528 E44A064C */ swc1 $f10, 0x64c($v0) -/* 0AA12C 800A952C 8E590000 */ lw $t9, ($s2) -/* 0AA130 800A9530 44819000 */ mtc1 $at, $f18 -/* 0AA134 800A9534 3C014351 */ li $at, 0x43510000 # 209.000000 -/* 0AA138 800A9538 E7320650 */ swc1 $f18, 0x650($t9) -/* 0AA13C 800A953C 8E4A0000 */ lw $t2, ($s2) -/* 0AA140 800A9540 44814000 */ mtc1 $at, $f8 -/* 0AA144 800A9544 3C014341 */ li $at, 0x43410000 # 193.000000 -/* 0AA148 800A9548 E548040C */ swc1 $f8, 0x40c($t2) -/* 0AA14C 800A954C 8E4B0000 */ lw $t3, ($s2) -/* 0AA150 800A9550 44818000 */ mtc1 $at, $f16 -/* 0AA154 800A9554 460021A4 */ cvt.w.s $f6, $f4 -/* 0AA158 800A9558 E5700410 */ swc1 $f16, 0x410($t3) -/* 0AA15C 800A955C 8D8C0300 */ lw $t4, %lo(osTvType)($t4) -/* 0AA160 800A9560 44053000 */ mfc1 $a1, $f6 -/* 0AA164 800A9564 44D8F800 */ ctc1 $t8, $31 -/* 0AA168 800A9568 1580003C */ bnez $t4, .L800A965C -# Used to access D_800E87C0 and D_800E87C0 + 4. -/* 0AA16C 800A956C 3C01800F */ lui $at, %hi(D_800E87C0) # $at, 0x800f -/* 0AA170 800A9570 C42187C0 */ lwc1 $f1, %lo(D_800E87C0)($at) -/* 0AA174 800A9574 C42087C4 */ lwc1 $f0, %lo(D_800E87C0 + 4)($at) -/* 0AA178 800A9578 8E420000 */ lw $v0, ($s2) -/* 0AA17C 800A957C 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0AA180 800A9580 44813000 */ mtc1 $at, $f6 -/* 0AA184 800A9584 C444064C */ lwc1 $f4, 0x64c($v0) -/* 0AA188 800A9588 44814000 */ mtc1 $at, $f8 -/* 0AA18C 800A958C 46062281 */ sub.s $f10, $f4, $f6 -/* 0AA190 800A9590 E44A064C */ swc1 $f10, 0x64c($v0) -/* 0AA194 800A9594 8E420000 */ lw $v0, ($s2) -/* 0AA198 800A9598 00000000 */ nop -/* 0AA19C 800A959C C452040C */ lwc1 $f18, 0x40c($v0) -/* 0AA1A0 800A95A0 00000000 */ nop -/* 0AA1A4 800A95A4 46089401 */ sub.s $f16, $f18, $f8 -/* 0AA1A8 800A95A8 E450040C */ swc1 $f16, 0x40c($v0) -/* 0AA1AC 800A95AC 8E420000 */ lw $v0, ($s2) -/* 0AA1B0 800A95B0 00000000 */ nop -/* 0AA1B4 800A95B4 C4440650 */ lwc1 $f4, 0x650($v0) -/* 0AA1B8 800A95B8 00000000 */ nop -/* 0AA1BC 800A95BC 460021A1 */ cvt.d.s $f6, $f4 -/* 0AA1C0 800A95C0 46203282 */ mul.d $f10, $f6, $f0 -/* 0AA1C4 800A95C4 462054A0 */ cvt.s.d $f18, $f10 -/* 0AA1C8 800A95C8 E4520650 */ swc1 $f18, 0x650($v0) -/* 0AA1CC 800A95CC 8E420000 */ lw $v0, ($s2) -/* 0AA1D0 800A95D0 00000000 */ nop -/* 0AA1D4 800A95D4 C4480410 */ lwc1 $f8, 0x410($v0) -/* 0AA1D8 800A95D8 00000000 */ nop -/* 0AA1DC 800A95DC 46004421 */ cvt.d.s $f16, $f8 -/* 0AA1E0 800A95E0 46208102 */ mul.d $f4, $f16, $f0 -/* 0AA1E4 800A95E4 462021A0 */ cvt.s.d $f6, $f4 -/* 0AA1E8 800A95E8 444DF800 */ cfc1 $t5, $31 -/* 0AA1EC 800A95EC E4460410 */ swc1 $f6, 0x410($v0) -/* 0AA1F0 800A95F0 8E420000 */ lw $v0, ($s2) -/* 0AA1F4 800A95F4 35A10003 */ ori $at, $t5, 3 -/* 0AA1F8 800A95F8 38210002 */ xori $at, $at, 2 -/* 0AA1FC 800A95FC 44C1F800 */ ctc1 $at, $31 -/* 0AA200 800A9600 C44A0650 */ lwc1 $f10, 0x650($v0) -/* 0AA204 800A9604 00000000 */ nop -/* 0AA208 800A9608 460054A4 */ cvt.w.s $f18, $f10 -/* 0AA20C 800A960C 440E9000 */ mfc1 $t6, $f18 -/* 0AA210 800A9610 44CDF800 */ ctc1 $t5, $31 -/* 0AA214 800A9614 448E4000 */ mtc1 $t6, $f8 -/* 0AA218 800A9618 00000000 */ nop -/* 0AA21C 800A961C 46804420 */ cvt.s.w $f16, $f8 -/* 0AA220 800A9620 444FF800 */ cfc1 $t7, $31 -/* 0AA224 800A9624 E4500650 */ swc1 $f16, 0x650($v0) -/* 0AA228 800A9628 8E420000 */ lw $v0, ($s2) -/* 0AA22C 800A962C 35E10003 */ ori $at, $t7, 3 -/* 0AA230 800A9630 38210002 */ xori $at, $at, 2 -/* 0AA234 800A9634 44C1F800 */ ctc1 $at, $31 -/* 0AA238 800A9638 C4440410 */ lwc1 $f4, 0x410($v0) -/* 0AA23C 800A963C 00000000 */ nop -/* 0AA240 800A9640 460021A4 */ cvt.w.s $f6, $f4 -/* 0AA244 800A9644 44183000 */ mfc1 $t8, $f6 -/* 0AA248 800A9648 44CFF800 */ ctc1 $t7, $31 -/* 0AA24C 800A964C 44985000 */ mtc1 $t8, $f10 -/* 0AA250 800A9650 00000000 */ nop -/* 0AA254 800A9654 468054A0 */ cvt.s.w $f18, $f10 -/* 0AA258 800A9658 E4520410 */ swc1 $f18, 0x410($v0) -.L800A965C: -/* 0AA25C 800A965C AFA300A8 */ sw $v1, 0xa8($sp) -/* 0AA260 800A9660 0C02917C */ jal func_800A45F0 -/* 0AA264 800A9664 AFA500A4 */ sw $a1, 0xa4($sp) -/* 0AA268 800A9668 44904000 */ mtc1 $s0, $f8 -/* 0AA26C 800A966C 8FA300A8 */ lw $v1, 0xa8($sp) -/* 0AA270 800A9670 46804420 */ cvt.s.w $f16, $f8 -/* 0AA274 800A9674 8E590000 */ lw $t9, ($s2) -/* 0AA278 800A9678 44912000 */ mtc1 $s1, $f4 -/* 0AA27C 800A967C 8FA500A4 */ lw $a1, 0xa4($sp) -/* 0AA280 800A9680 468021A0 */ cvt.s.w $f6, $f4 -/* 0AA284 800A9684 E730064C */ swc1 $f16, 0x64c($t9) -/* 0AA288 800A9688 8E4A0000 */ lw $t2, ($s2) -/* 0AA28C 800A968C 44835000 */ mtc1 $v1, $f10 -/* 0AA290 800A9690 E5460650 */ swc1 $f6, 0x650($t2) -/* 0AA294 800A9694 468054A0 */ cvt.s.w $f18, $f10 -/* 0AA298 800A9698 8E4B0000 */ lw $t3, ($s2) -/* 0AA29C 800A969C 44854000 */ mtc1 $a1, $f8 -/* 0AA2A0 800A96A0 E572040C */ swc1 $f18, 0x40c($t3) -/* 0AA2A4 800A96A4 46804420 */ cvt.s.w $f16, $f8 -/* 0AA2A8 800A96A8 8E4C0000 */ lw $t4, ($s2) -/* 0AA2AC 800A96AC 00000000 */ nop -/* 0AA2B0 800A96B0 E5900410 */ swc1 $f16, 0x410($t4) -.L800A96B4: -/* 0AA2B4 800A96B4 3C028012 */ lui $v0, %hi(D_80127180) # $v0, 0x8012 -/* 0AA2B8 800A96B8 8C427180 */ lw $v0, %lo(D_80127180)($v0) -/* 0AA2BC 800A96BC 3C128012 */ lui $s2, %hi(D_80126CDC) # $s2, 0x8012 -/* 0AA2C0 800A96C0 26526CDC */ addiu $s2, %lo(D_80126CDC) # addiu $s2, $s2, 0x6cdc -/* 0AA2C4 800A96C4 10400012 */ beqz $v0, .L800A9710 -/* 0AA2C8 800A96C8 2413FFFF */ li $s3, -1 -/* 0AA2CC 800A96CC 3C058012 */ lui $a1, %hi(gHudSprites) # $a1, 0x8012 -/* 0AA2D0 800A96D0 24A56D80 */ addiu $a1, %lo(gHudSprites) # addiu $a1, $a1, 0x6d80 -/* 0AA2D4 800A96D4 000268C0 */ sll $t5, $v0, 3 -/* 0AA2D8 800A96D8 00AD7021 */ addu $t6, $a1, $t5 -/* 0AA2DC 800A96DC ADC00000 */ sw $zero, ($t6) -/* 0AA2E0 800A96E0 240F00FF */ li $t7, 255 -/* 0AA2E4 800A96E4 241800FF */ li $t8, 255 -/* 0AA2E8 800A96E8 241900FF */ li $t9, 255 -/* 0AA2EC 800A96EC 240A00FF */ li $t2, 255 -/* 0AA2F0 800A96F0 AFAA001C */ sw $t2, 0x1c($sp) -/* 0AA2F4 800A96F4 AFB90018 */ sw $t9, 0x18($sp) -/* 0AA2F8 800A96F8 AFB80014 */ sw $t8, 0x14($sp) -/* 0AA2FC 800A96FC AFAF0010 */ sw $t7, 0x10($sp) -/* 0AA300 800A9700 02802025 */ move $a0, $s4 -/* 0AA304 800A9704 00003025 */ move $a2, $zero -/* 0AA308 800A9708 0C01E2AE */ jal render_textured_rectangle -/* 0AA30C 800A970C 00003825 */ move $a3, $zero -.L800A9710: -/* 0AA310 800A9710 8E8B0000 */ lw $t3, ($s4) -/* 0AA314 800A9714 8FAC0160 */ lw $t4, 0x160($sp) -/* 0AA318 800A9718 3C0D8012 */ lui $t5, %hi(gHUDCurrMatrix) # $t5, 0x8012 -/* 0AA31C 800A971C AD8B0000 */ sw $t3, ($t4) -/* 0AA320 800A9720 8FAE0164 */ lw $t6, 0x164($sp) -/* 0AA324 800A9724 8DAD6D00 */ lw $t5, %lo(gHUDCurrMatrix)($t5) -/* 0AA328 800A9728 3C0F8012 */ lui $t7, %hi(gHUDCurrVertex) # $t7, 0x8012 -/* 0AA32C 800A972C ADCD0000 */ sw $t5, ($t6) -/* 0AA330 800A9730 8FB80168 */ lw $t8, 0x168($sp) -/* 0AA334 800A9734 8DEF6D04 */ lw $t7, %lo(gHUDCurrVertex)($t7) -/* 0AA338 800A9738 3C198012 */ lui $t9, %hi(D_80126D60) # $t9, 0x8012 -/* 0AA33C 800A973C AF0F0000 */ sw $t7, ($t8) -/* 0AA340 800A9740 8F396D60 */ lw $t9, %lo(D_80126D60)($t9) -/* 0AA344 800A9744 00000000 */ nop -/* 0AA348 800A9748 932A00BC */ lbu $t2, 0xbc($t9) -/* 0AA34C 800A974C 00000000 */ nop -/* 0AA350 800A9750 314B0001 */ andi $t3, $t2, 1 -/* 0AA354 800A9754 1560031E */ bnez $t3, .L800AA3D0 -/* 0AA358 800A9758 8FBF003C */ lw $ra, 0x3c($sp) -/* 0AA35C 800A975C 8FAC0140 */ lw $t4, 0x140($sp) -/* 0AA360 800A9760 24040001 */ li $a0, 1 -/* 0AA364 800A9764 19800060 */ blez $t4, .L800A98E8 -/* 0AA368 800A9768 00001825 */ move $v1, $zero -/* 0AA36C 800A976C 31880003 */ andi $t0, $t4, 3 -/* 0AA370 800A9770 11000019 */ beqz $t0, .L800A97D8 -/* 0AA374 800A9774 01003025 */ move $a2, $t0 -/* 0AA378 800A9778 8FAD0150 */ lw $t5, 0x150($sp) -/* 0AA37C 800A977C 00007080 */ sll $t6, $zero, 2 -/* 0AA380 800A9780 01AE8021 */ addu $s0, $t5, $t6 -.L800A9784: -/* 0AA384 800A9784 8E0F0000 */ lw $t7, ($s0) -/* 0AA388 800A9788 24630001 */ addiu $v1, $v1, 1 -/* 0AA38C 800A978C 8DE20064 */ lw $v0, 0x64($t7) -/* 0AA390 800A9790 00000000 */ nop -/* 0AA394 800A9794 1040000A */ beqz $v0, .L800A97C0 -/* 0AA398 800A9798 00000000 */ nop -/* 0AA39C 800A979C 84580000 */ lh $t8, ($v0) -/* 0AA3A0 800A97A0 00000000 */ nop -/* 0AA3A4 800A97A4 12780006 */ beq $s3, $t8, .L800A97C0 -/* 0AA3A8 800A97A8 00000000 */ nop -/* 0AA3AC 800A97AC 805901D8 */ lb $t9, 0x1d8($v0) -/* 0AA3B0 800A97B0 00000000 */ nop -/* 0AA3B4 800A97B4 17200002 */ bnez $t9, .L800A97C0 -/* 0AA3B8 800A97B8 00000000 */ nop -/* 0AA3BC 800A97BC 00002025 */ move $a0, $zero -.L800A97C0: -/* 0AA3C0 800A97C0 14C3FFF0 */ bne $a2, $v1, .L800A9784 -/* 0AA3C4 800A97C4 26100004 */ addiu $s0, $s0, 4 -/* 0AA3C8 800A97C8 8FAA0140 */ lw $t2, 0x140($sp) -/* 0AA3CC 800A97CC 00000000 */ nop -/* 0AA3D0 800A97D0 106A0045 */ beq $v1, $t2, .L800A98E8 -/* 0AA3D4 800A97D4 00000000 */ nop -.L800A97D8: -/* 0AA3D8 800A97D8 8FA60140 */ lw $a2, 0x140($sp) -/* 0AA3DC 800A97DC 8FAB0150 */ lw $t3, 0x150($sp) -/* 0AA3E0 800A97E0 00038880 */ sll $s1, $v1, 2 -/* 0AA3E4 800A97E4 00066080 */ sll $t4, $a2, 2 -/* 0AA3E8 800A97E8 01803025 */ move $a2, $t4 -/* 0AA3EC 800A97EC 01718021 */ addu $s0, $t3, $s1 -.L800A97F0: -/* 0AA3F0 800A97F0 8E0D0000 */ lw $t5, ($s0) -/* 0AA3F4 800A97F4 26310010 */ addiu $s1, $s1, 0x10 -/* 0AA3F8 800A97F8 8DA20064 */ lw $v0, 0x64($t5) -/* 0AA3FC 800A97FC 00000000 */ nop -/* 0AA400 800A9800 1040000A */ beqz $v0, .L800A982C -/* 0AA404 800A9804 00000000 */ nop -/* 0AA408 800A9808 844E0000 */ lh $t6, ($v0) -/* 0AA40C 800A980C 00000000 */ nop -/* 0AA410 800A9810 126E0006 */ beq $s3, $t6, .L800A982C -/* 0AA414 800A9814 00000000 */ nop -/* 0AA418 800A9818 804F01D8 */ lb $t7, 0x1d8($v0) -/* 0AA41C 800A981C 00000000 */ nop -/* 0AA420 800A9820 15E00002 */ bnez $t7, .L800A982C -/* 0AA424 800A9824 00000000 */ nop -/* 0AA428 800A9828 00002025 */ move $a0, $zero -.L800A982C: -/* 0AA42C 800A982C 8E180004 */ lw $t8, 4($s0) -/* 0AA430 800A9830 00000000 */ nop -/* 0AA434 800A9834 8F050064 */ lw $a1, 0x64($t8) -/* 0AA438 800A9838 00000000 */ nop -/* 0AA43C 800A983C 10A0000A */ beqz $a1, .L800A9868 -/* 0AA440 800A9840 00000000 */ nop -/* 0AA444 800A9844 84B90000 */ lh $t9, ($a1) -/* 0AA448 800A9848 00000000 */ nop -/* 0AA44C 800A984C 12790006 */ beq $s3, $t9, .L800A9868 -/* 0AA450 800A9850 00000000 */ nop -/* 0AA454 800A9854 80AA01D8 */ lb $t2, 0x1d8($a1) -/* 0AA458 800A9858 00000000 */ nop -/* 0AA45C 800A985C 15400002 */ bnez $t2, .L800A9868 -/* 0AA460 800A9860 00000000 */ nop -/* 0AA464 800A9864 00002025 */ move $a0, $zero -.L800A9868: -/* 0AA468 800A9868 8E0B0008 */ lw $t3, 8($s0) -/* 0AA46C 800A986C 00000000 */ nop -/* 0AA470 800A9870 8D650064 */ lw $a1, 0x64($t3) -/* 0AA474 800A9874 00000000 */ nop -/* 0AA478 800A9878 10A0000A */ beqz $a1, .L800A98A4 -/* 0AA47C 800A987C 00000000 */ nop -/* 0AA480 800A9880 84AC0000 */ lh $t4, ($a1) -/* 0AA484 800A9884 00000000 */ nop -/* 0AA488 800A9888 126C0006 */ beq $s3, $t4, .L800A98A4 -/* 0AA48C 800A988C 00000000 */ nop -/* 0AA490 800A9890 80AD01D8 */ lb $t5, 0x1d8($a1) -/* 0AA494 800A9894 00000000 */ nop -/* 0AA498 800A9898 15A00002 */ bnez $t5, .L800A98A4 -/* 0AA49C 800A989C 00000000 */ nop -/* 0AA4A0 800A98A0 00002025 */ move $a0, $zero -.L800A98A4: -/* 0AA4A4 800A98A4 8E0E000C */ lw $t6, 0xc($s0) -/* 0AA4A8 800A98A8 00000000 */ nop -/* 0AA4AC 800A98AC 8DC50064 */ lw $a1, 0x64($t6) -/* 0AA4B0 800A98B0 00000000 */ nop -/* 0AA4B4 800A98B4 10A0000A */ beqz $a1, .L800A98E0 -/* 0AA4B8 800A98B8 00000000 */ nop -/* 0AA4BC 800A98BC 84AF0000 */ lh $t7, ($a1) -/* 0AA4C0 800A98C0 00000000 */ nop -/* 0AA4C4 800A98C4 126F0006 */ beq $s3, $t7, .L800A98E0 -/* 0AA4C8 800A98C8 00000000 */ nop -/* 0AA4CC 800A98CC 80B801D8 */ lb $t8, 0x1d8($a1) -/* 0AA4D0 800A98D0 00000000 */ nop -/* 0AA4D4 800A98D4 17000002 */ bnez $t8, .L800A98E0 -/* 0AA4D8 800A98D8 00000000 */ nop -/* 0AA4DC 800A98DC 00002025 */ move $a0, $zero -.L800A98E0: -/* 0AA4E0 800A98E0 1626FFC3 */ bne $s1, $a2, .L800A97F0 -/* 0AA4E4 800A98E4 26100010 */ addiu $s0, $s0, 0x10 -.L800A98E8: -/* 0AA4E8 800A98E8 3C198012 */ lui $t9, %hi(gHUDNumPlayers) # $t9, 0x8012 -/* 0AA4EC 800A98EC 8F396D0C */ lw $t9, %lo(gHUDNumPlayers)($t9) -/* 0AA4F0 800A98F0 24010002 */ li $at, 2 -/* 0AA4F4 800A98F4 17210006 */ bne $t9, $at, .L800A9910 -/* 0AA4F8 800A98F8 00000000 */ nop -/* 0AA4FC 800A98FC 0C01BAAC */ jal func_8006EAB0 -/* 0AA500 800A9900 A3A40113 */ sb $a0, 0x113($sp) -/* 0AA504 800A9904 93A40113 */ lbu $a0, 0x113($sp) -/* 0AA508 800A9908 144002B1 */ bnez $v0, .L800AA3D0 -/* 0AA50C 800A990C 8FBF003C */ lw $ra, 0x3c($sp) -.L800A9910: -/* 0AA510 800A9910 0C019944 */ jal check_if_showing_cutscene_camera -/* 0AA514 800A9914 A3A40113 */ sb $a0, 0x113($sp) -/* 0AA518 800A9918 93A40113 */ lbu $a0, 0x113($sp) -/* 0AA51C 800A991C 144002AC */ bnez $v0, .L800AA3D0 -/* 0AA520 800A9920 8FBF003C */ lw $ra, 0x3c($sp) -/* 0AA524 800A9924 148002A9 */ bnez $a0, .L800AA3CC -/* 0AA528 800A9928 3C0A8012 */ lui $t2, %hi(gHUDNumPlayers) # $t2, 0x8012 -/* 0AA52C 800A992C 8D4A6D0C */ lw $t2, %lo(gHUDNumPlayers)($t2) -/* 0AA530 800A9930 3C0B800E */ lui $t3, %hi(D_800E27A4) # $t3, 0x800e -/* 0AA534 800A9934 016A5821 */ addu $t3, $t3, $t2 -/* 0AA538 800A9938 816B27A4 */ lb $t3, %lo(D_800E27A4)($t3) -/* 0AA53C 800A993C 24010001 */ li $at, 1 -/* 0AA540 800A9940 11610003 */ beq $t3, $at, .L800A9950 -/* 0AA544 800A9944 00000000 */ nop -/* 0AA548 800A9948 100002A1 */ b .L800AA3D0 -/* 0AA54C 800A994C 8FBF003C */ lw $ra, 0x3c($sp) -.L800A9950: -/* 0AA550 800A9950 0C01ECF4 */ jal reset_render_settings -/* 0AA554 800A9954 02802025 */ move $a0, $s4 -/* 0AA558 800A9958 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0AA55C 800A995C 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0AA560 800A9960 0C019FCB */ jal func_80067F2C -/* 0AA564 800A9964 02802025 */ move $a0, $s4 -/* 0AA568 800A9968 0C00B1F1 */ jal get_current_level_model -/* 0AA56C 800A996C 00000000 */ nop -/* 0AA570 800A9970 10400296 */ beqz $v0, .L800AA3CC -/* 0AA574 800A9974 AFA20158 */ sw $v0, 0x158($sp) -/* 0AA578 800A9978 0C01A748 */ jal func_80069D20 -/* 0AA57C 800A997C 00000000 */ nop -/* 0AA580 800A9980 00408825 */ move $s1, $v0 -/* 0AA584 800A9984 0C01A142 */ jal func_80068508 -/* 0AA588 800A9988 24040001 */ li $a0, 1 -/* 0AA58C 800A998C 8FAC0158 */ lw $t4, 0x158($sp) -/* 0AA590 800A9990 3C028012 */ lui $v0, %hi(gHUDNumPlayers) # $v0, 0x8012 -/* 0AA594 800A9994 8C426D0C */ lw $v0, %lo(gHUDNumPlayers)($v0) -/* 0AA598 800A9998 8D8D0020 */ lw $t5, 0x20($t4) -/* 0AA59C 800A999C 24010001 */ li $at, 1 -/* 0AA5A0 800A99A0 1041000E */ beq $v0, $at, .L800A99DC -/* 0AA5A4 800A99A4 AFAD0154 */ sw $t5, 0x154($sp) -/* 0AA5A8 800A99A8 24010002 */ li $at, 2 -/* 0AA5AC 800A99AC 10410019 */ beq $v0, $at, .L800A9A14 -/* 0AA5B0 800A99B0 24010003 */ li $at, 3 -/* 0AA5B4 800A99B4 1041004E */ beq $v0, $at, .L800A9AF0 -/* 0AA5B8 800A99B8 3C108012 */ lui $s0, %hi(D_80126D5C) # $s0, 0x8012 -/* 0AA5BC 800A99BC 3C108012 */ lui $s0, %hi(D_80126D5C) # $s0, 0x8012 -/* 0AA5C0 800A99C0 240E0087 */ li $t6, 135 -/* 0AA5C4 800A99C4 3C018012 */ lui $at, %hi(D_80126D58) # $at, 0x8012 -/* 0AA5C8 800A99C8 AC2E6D58 */ sw $t6, %lo(D_80126D58)($at) -/* 0AA5CC 800A99CC 26106D5C */ addiu $s0, %lo(D_80126D5C) # addiu $s0, $s0, 0x6d5c -/* 0AA5D0 800A99D0 240FFF9E */ li $t7, -98 -/* 0AA5D4 800A99D4 10000058 */ b .L800A9B38 -/* 0AA5D8 800A99D8 AE0F0000 */ sw $t7, ($s0) -.L800A99DC: -/* 0AA5DC 800A99DC 3C198012 */ lui $t9, %hi(D_80126D20) # $t9, 0x8012 -/* 0AA5E0 800A99E0 8F396D20 */ lw $t9, %lo(D_80126D20)($t9) -/* 0AA5E4 800A99E4 24180087 */ li $t8, 135 -/* 0AA5E8 800A99E8 3C018012 */ lui $at, %hi(D_80126D58) # $at, 0x8012 -/* 0AA5EC 800A99EC AC386D58 */ sw $t8, %lo(D_80126D58)($at) -/* 0AA5F0 800A99F0 00195023 */ negu $t2, $t9 -/* 0AA5F4 800A99F4 3C108012 */ lui $s0, %hi(D_80126D5C) # $s0, 0x8012 -/* 0AA5F8 800A99F8 26106D5C */ addiu $s0, %lo(D_80126D5C) # addiu $s0, $s0, 0x6d5c -/* 0AA5FC 800A99FC 05410003 */ bgez $t2, .L800A9A0C -/* 0AA600 800A9A00 000A5843 */ sra $t3, $t2, 1 -/* 0AA604 800A9A04 25410001 */ addiu $at, $t2, 1 -/* 0AA608 800A9A08 00015843 */ sra $t3, $at, 1 -.L800A9A0C: -/* 0AA60C 800A9A0C 1000004A */ b .L800A9B38 -/* 0AA610 800A9A10 AE0B0000 */ sw $t3, ($s0) -.L800A9A14: -/* 0AA614 800A9A14 0C01AF66 */ jal get_current_level_race_type -/* 0AA618 800A9A18 00000000 */ nop -/* 0AA61C 800A9A1C 24010042 */ li $at, 66 -/* 0AA620 800A9A20 1041000B */ beq $v0, $at, .L800A9A50 -/* 0AA624 800A9A24 00000000 */ nop -/* 0AA628 800A9A28 0C01AF66 */ jal get_current_level_race_type -/* 0AA62C 800A9A2C 00000000 */ nop -/* 0AA630 800A9A30 24010040 */ li $at, 64 -/* 0AA634 800A9A34 10410006 */ beq $v0, $at, .L800A9A50 -/* 0AA638 800A9A38 00000000 */ nop -/* 0AA63C 800A9A3C 0C01AF66 */ jal get_current_level_race_type -/* 0AA640 800A9A40 00000000 */ nop -/* 0AA644 800A9A44 24010041 */ li $at, 65 -/* 0AA648 800A9A48 14410015 */ bne $v0, $at, .L800A9AA0 -/* 0AA64C 800A9A4C 3C108012 */ lui $s0, %hi(D_80126D5C) # $s0, 0x8012 -.L800A9A50: -/* 0AA650 800A9A50 3C0C8012 */ lui $t4, %hi(D_80126D1C) # $t4, 0x8012 -/* 0AA654 800A9A54 8D8C6D1C */ lw $t4, %lo(D_80126D1C)($t4) -/* 0AA658 800A9A58 3C0F8012 */ lui $t7, %hi(D_80126D20) # $t7, 0x8012 -/* 0AA65C 800A9A5C 8DEF6D20 */ lw $t7, %lo(D_80126D20)($t7) -/* 0AA660 800A9A60 3C108012 */ lui $s0, %hi(D_80126D5C) # $s0, 0x8012 -/* 0AA664 800A9A64 000FC023 */ negu $t8, $t7 -/* 0AA668 800A9A68 26106D5C */ addiu $s0, %lo(D_80126D5C) # addiu $s0, $s0, 0x6d5c -/* 0AA66C 800A9A6C 05810003 */ bgez $t4, .L800A9A7C -/* 0AA670 800A9A70 000C6843 */ sra $t5, $t4, 1 -/* 0AA674 800A9A74 25810001 */ addiu $at, $t4, 1 -/* 0AA678 800A9A78 00016843 */ sra $t5, $at, 1 -.L800A9A7C: -/* 0AA67C 800A9A7C 3C018012 */ lui $at, %hi(D_80126D58) # $at, 0x8012 -/* 0AA680 800A9A80 25AEFFF8 */ addiu $t6, $t5, -8 -/* 0AA684 800A9A84 AC2E6D58 */ sw $t6, %lo(D_80126D58)($at) -/* 0AA688 800A9A88 07010003 */ bgez $t8, .L800A9A98 -/* 0AA68C 800A9A8C 0018C843 */ sra $t9, $t8, 1 -/* 0AA690 800A9A90 27010001 */ addiu $at, $t8, 1 -/* 0AA694 800A9A94 0001C843 */ sra $t9, $at, 1 -.L800A9A98: -/* 0AA698 800A9A98 10000027 */ b .L800A9B38 -/* 0AA69C 800A9A9C AE190000 */ sw $t9, ($s0) -.L800A9AA0: -/* 0AA6A0 800A9AA0 3C0A8012 */ lui $t2, %hi(D_80126D1C) # $t2, 0x8012 -/* 0AA6A4 800A9AA4 8D4A6D1C */ lw $t2, %lo(D_80126D1C)($t2) -/* 0AA6A8 800A9AA8 3C0D8012 */ lui $t5, %hi(D_80126D20) # $t5, 0x8012 -/* 0AA6AC 800A9AAC 8DAD6D20 */ lw $t5, %lo(D_80126D20)($t5) -/* 0AA6B0 800A9AB0 240FFFC4 */ li $t7, -60 -/* 0AA6B4 800A9AB4 26106D5C */ addiu $s0, %lo(D_80126D5C) # addiu $s0, $s0, 0x6d5c -/* 0AA6B8 800A9AB8 05410003 */ bgez $t2, .L800A9AC8 -/* 0AA6BC 800A9ABC 000A5843 */ sra $t3, $t2, 1 -/* 0AA6C0 800A9AC0 25410001 */ addiu $at, $t2, 1 -/* 0AA6C4 800A9AC4 00015843 */ sra $t3, $at, 1 -.L800A9AC8: -/* 0AA6C8 800A9AC8 3C018012 */ lui $at, %hi(D_80126D58) # $at, 0x8012 -/* 0AA6CC 800A9ACC 256C0048 */ addiu $t4, $t3, 0x48 -/* 0AA6D0 800A9AD0 AC2C6D58 */ sw $t4, %lo(D_80126D58)($at) -/* 0AA6D4 800A9AD4 05A10003 */ bgez $t5, .L800A9AE4 -/* 0AA6D8 800A9AD8 000D7043 */ sra $t6, $t5, 1 -/* 0AA6DC 800A9ADC 25A10001 */ addiu $at, $t5, 1 -/* 0AA6E0 800A9AE0 00017043 */ sra $t6, $at, 1 -.L800A9AE4: -/* 0AA6E4 800A9AE4 01EEC023 */ subu $t8, $t7, $t6 -/* 0AA6E8 800A9AE8 10000013 */ b .L800A9B38 -/* 0AA6EC 800A9AEC AE180000 */ sw $t8, ($s0) -.L800A9AF0: -/* 0AA6F0 800A9AF0 3C198012 */ lui $t9, %hi(D_80126D1C) # $t9, 0x8012 -/* 0AA6F4 800A9AF4 8F396D1C */ lw $t9, %lo(D_80126D1C)($t9) -/* 0AA6F8 800A9AF8 3C0C8012 */ lui $t4, %hi(D_80126D20) # $t4, 0x8012 -/* 0AA6FC 800A9AFC 8D8C6D20 */ lw $t4, %lo(D_80126D20)($t4) -/* 0AA700 800A9B00 26106D5C */ addiu $s0, %lo(D_80126D5C) # addiu $s0, $s0, 0x6d5c -/* 0AA704 800A9B04 07210003 */ bgez $t9, .L800A9B14 -/* 0AA708 800A9B08 00195043 */ sra $t2, $t9, 1 -/* 0AA70C 800A9B0C 27210001 */ addiu $at, $t9, 1 -/* 0AA710 800A9B10 00015043 */ sra $t2, $at, 1 -.L800A9B14: -/* 0AA714 800A9B14 3C018012 */ lui $at, %hi(D_80126D58) # $at, 0x8012 -/* 0AA718 800A9B18 254BFFF8 */ addiu $t3, $t2, -8 -/* 0AA71C 800A9B1C AC2B6D58 */ sw $t3, %lo(D_80126D58)($at) -/* 0AA720 800A9B20 000C6823 */ negu $t5, $t4 -/* 0AA724 800A9B24 05A10003 */ bgez $t5, .L800A9B34 -/* 0AA728 800A9B28 000D7843 */ sra $t7, $t5, 1 -/* 0AA72C 800A9B2C 25A10001 */ addiu $at, $t5, 1 -/* 0AA730 800A9B30 00017843 */ sra $t7, $at, 1 -.L800A9B34: -/* 0AA734 800A9B34 AE0F0000 */ sw $t7, ($s0) -.L800A9B38: -/* 0AA738 800A9B38 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 -/* 0AA73C 800A9B3C 8DCE0300 */ lw $t6, %lo(osTvType)($t6) -/* 0AA740 800A9B40 00000000 */ nop -/* 0AA744 800A9B44 15C00013 */ bnez $t6, .L800A9B94 -/* 0AA748 800A9B48 00000000 */ nop -/* 0AA74C 800A9B4C 8E180000 */ lw $t8, ($s0) -/* 0AA750 800A9B50 3C01800F */ lui $at, %hi(D_800E87C8 + 4) # $at, 0x800f -/* 0AA754 800A9B54 44982000 */ mtc1 $t8, $f4 -/* 0AA758 800A9B58 C42B87C8 */ lwc1 $f11, %lo(D_800E87C8)($at) -/* 0AA75C 800A9B5C 468021A1 */ cvt.d.w $f6, $f4 -/* 0AA760 800A9B60 C42A87CC */ lwc1 $f10, %lo(D_800E87C8 + 4)($at) -/* 0AA764 800A9B64 00000000 */ nop -/* 0AA768 800A9B68 462A3482 */ mul.d $f18, $f6, $f10 -/* 0AA76C 800A9B6C 4459F800 */ cfc1 $t9, $31 -/* 0AA770 800A9B70 00000000 */ nop -/* 0AA774 800A9B74 37210003 */ ori $at, $t9, 3 -/* 0AA778 800A9B78 38210002 */ xori $at, $at, 2 -/* 0AA77C 800A9B7C 44C1F800 */ ctc1 $at, $31 -/* 0AA780 800A9B80 00000000 */ nop -/* 0AA784 800A9B84 46209224 */ cvt.w.d $f8, $f18 -/* 0AA788 800A9B88 44D9F800 */ ctc1 $t9, $31 -/* 0AA78C 800A9B8C E6080000 */ swc1 $f8, ($s0) -/* 0AA790 800A9B90 00000000 */ nop -.L800A9B94: -/* 0AA794 800A9B94 0C01EFC7 */ jal func_8007BF1C -/* 0AA798 800A9B98 00002025 */ move $a0, $zero -/* 0AA79C 800A9B9C 8E0E0000 */ lw $t6, ($s0) -/* 0AA7A0 800A9BA0 3C0A8012 */ lui $t2, %hi(D_80126D58) # $t2, 0x8012 -/* 0AA7A4 800A9BA4 8D4A6D58 */ lw $t2, %lo(D_80126D58)($t2) -/* 0AA7A8 800A9BA8 448E9000 */ mtc1 $t6, $f18 -/* 0AA7AC 800A9BAC 3C0B8012 */ lui $t3, %hi(D_80126D24) # $t3, 0x8012 -/* 0AA7B0 800A9BB0 8D6B6D24 */ lw $t3, %lo(D_80126D24)($t3) -/* 0AA7B4 800A9BB4 468094A0 */ cvt.s.w $f18, $f18 -/* 0AA7B8 800A9BB8 3C0D8012 */ lui $t5, %hi(D_80126D28) # $t5, 0x8012 -/* 0AA7BC 800A9BBC 8DAD6D28 */ lw $t5, %lo(D_80126D28)($t5) -/* 0AA7C0 800A9BC0 014B6021 */ addu $t4, $t2, $t3 -/* 0AA7C4 800A9BC4 018D7821 */ addu $t7, $t4, $t5 -/* 0AA7C8 800A9BC8 448F8000 */ mtc1 $t7, $f16 -/* 0AA7CC 800A9BCC 3C188000 */ lui $t8, %hi(osTvType) # $t8, 0x8000 -/* 0AA7D0 800A9BD0 46808020 */ cvt.s.w $f0, $f16 -/* 0AA7D4 800A9BD4 8F180300 */ lw $t8, %lo(osTvType)($t8) -/* 0AA7D8 800A9BD8 E7B20130 */ swc1 $f18, 0x130($sp) -/* 0AA7DC 800A9BDC 17000006 */ bnez $t8, .L800A9BF8 -/* 0AA7E0 800A9BE0 E7A0012C */ swc1 $f0, 0x12c($sp) -/* 0AA7E4 800A9BE4 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0AA7E8 800A9BE8 44815000 */ mtc1 $at, $f10 -/* 0AA7EC 800A9BEC 00000000 */ nop -/* 0AA7F0 800A9BF0 460A0001 */ sub.s $f0, $f0, $f10 -/* 0AA7F4 800A9BF4 E7A0012C */ swc1 $f0, 0x12c($sp) -.L800A9BF8: -/* 0AA7F8 800A9BF8 86390004 */ lh $t9, 4($s1) -/* 0AA7FC 800A9BFC A7A00122 */ sh $zero, 0x122($sp) -/* 0AA800 800A9C00 00195023 */ negu $t2, $t9 -/* 0AA804 800A9C04 0C0270C3 */ jal get_filtered_cheats -/* 0AA808 800A9C08 A7AA0124 */ sh $t2, 0x124($sp) -/* 0AA80C 800A9C0C 304B0004 */ andi $t3, $v0, 4 -/* 0AA810 800A9C10 1160000B */ beqz $t3, .L800A9C40 -/* 0AA814 800A9C14 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AA818 800A9C18 3C0D8012 */ lui $t5, %hi(D_80126D1C) # $t5, 0x8012 -/* 0AA81C 800A9C1C 8DAD6D1C */ lw $t5, %lo(D_80126D1C)($t5) -/* 0AA820 800A9C20 C7A0012C */ lwc1 $f0, 0x12c($sp) -/* 0AA824 800A9C24 448D9000 */ mtc1 $t5, $f18 -/* 0AA828 800A9C28 240C8000 */ li $t4, -32768 -/* 0AA82C 800A9C2C 46809220 */ cvt.s.w $f8, $f18 -/* 0AA830 800A9C30 A7AC0120 */ sh $t4, 0x120($sp) -/* 0AA834 800A9C34 46080001 */ sub.s $f0, $f0, $f8 -/* 0AA838 800A9C38 10000002 */ b .L800A9C44 -/* 0AA83C 800A9C3C E7A0012C */ swc1 $f0, 0x12c($sp) -.L800A9C40: -/* 0AA840 800A9C40 A7A00120 */ sh $zero, 0x120($sp) -.L800A9C44: -/* 0AA844 800A9C44 44812000 */ mtc1 $at, $f4 -/* 0AA848 800A9C48 8FAF010C */ lw $t7, 0x10c($sp) -/* 0AA84C 800A9C4C 44808000 */ mtc1 $zero, $f16 -/* 0AA850 800A9C50 29E100A1 */ slti $at, $t7, 0xa1 -/* 0AA854 800A9C54 A7A00138 */ sh $zero, 0x138($sp) -/* 0AA858 800A9C58 E7A40128 */ swc1 $f4, 0x128($sp) -/* 0AA85C 800A9C5C AFAF0108 */ sw $t7, 0x108($sp) -/* 0AA860 800A9C60 14200003 */ bnez $at, .L800A9C70 -/* 0AA864 800A9C64 E7B00134 */ swc1 $f16, 0x134($sp) -/* 0AA868 800A9C68 240E00A0 */ li $t6, 160 -/* 0AA86C 800A9C6C AFAE010C */ sw $t6, 0x10c($sp) -.L800A9C70: -/* 0AA870 800A9C70 3C188012 */ lui $t8, %hi(D_80126D37) # $t8, 0x8012 -/* 0AA874 800A9C74 93186D37 */ lbu $t8, %lo(D_80126D37)($t8) -/* 0AA878 800A9C78 24010003 */ li $at, 3 -/* 0AA87C 800A9C7C 1701000C */ bne $t8, $at, .L800A9CB0 -/* 0AA880 800A9C80 02802025 */ move $a0, $s4 -/* 0AA884 800A9C84 8E880000 */ lw $t0, ($s4) -/* 0AA888 800A9C88 3C0AFA00 */ lui $t2, 0xfa00 -/* 0AA88C 800A9C8C 25190008 */ addiu $t9, $t0, 8 -/* 0AA890 800A9C90 AE990000 */ sw $t9, ($s4) -/* 0AA894 800A9C94 AD0A0000 */ sw $t2, ($t0) -/* 0AA898 800A9C98 8FAB010C */ lw $t3, 0x10c($sp) -/* 0AA89C 800A9C9C 2401FF00 */ li $at, -256 -/* 0AA8A0 800A9CA0 316C00FF */ andi $t4, $t3, 0xff -/* 0AA8A4 800A9CA4 01816825 */ or $t5, $t4, $at -/* 0AA8A8 800A9CA8 10000015 */ b .L800A9D00 -/* 0AA8AC 800A9CAC AD0D0004 */ sw $t5, 4($t0) -.L800A9CB0: -/* 0AA8B0 800A9CB0 8E880000 */ lw $t0, ($s4) -/* 0AA8B4 800A9CB4 3C0EFA00 */ lui $t6, 0xfa00 -/* 0AA8B8 800A9CB8 250F0008 */ addiu $t7, $t0, 8 -/* 0AA8BC 800A9CBC AE8F0000 */ sw $t7, ($s4) -/* 0AA8C0 800A9CC0 3C0B8012 */ lui $t3, %hi(gMinimapGreen) # $t3, 0x8012 -/* 0AA8C4 800A9CC4 AD0E0000 */ sw $t6, ($t0) -/* 0AA8C8 800A9CC8 916C6D55 */ lbu $t4, %lo(gMinimapGreen)($t3) -/* 0AA8CC 800A9CCC 3C188012 */ lui $t8, %hi(gMinimapRed) # $t8, 0x8012 -/* 0AA8D0 800A9CD0 93196D54 */ lbu $t9, %lo(gMinimapRed)($t8) -/* 0AA8D4 800A9CD4 3C0E8012 */ lui $t6, %hi(gMinimapBlue) # $t6, 0x8012 -/* 0AA8D8 800A9CD8 000C6C00 */ sll $t5, $t4, 0x10 -/* 0AA8DC 800A9CDC 91D86D56 */ lbu $t8, %lo(gMinimapBlue)($t6) -/* 0AA8E0 800A9CE0 00195600 */ sll $t2, $t9, 0x18 -/* 0AA8E4 800A9CE4 8FAC010C */ lw $t4, 0x10c($sp) -/* 0AA8E8 800A9CE8 014D7825 */ or $t7, $t2, $t5 -/* 0AA8EC 800A9CEC 0018CA00 */ sll $t9, $t8, 8 -/* 0AA8F0 800A9CF0 01F95825 */ or $t3, $t7, $t9 -/* 0AA8F4 800A9CF4 318A00FF */ andi $t2, $t4, 0xff -/* 0AA8F8 800A9CF8 016A6825 */ or $t5, $t3, $t2 -/* 0AA8FC 800A9CFC AD0D0004 */ sw $t5, 4($t0) -.L800A9D00: -/* 0AA900 800A9D00 8FAE0154 */ lw $t6, 0x154($sp) -/* 0AA904 800A9D04 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0AA908 800A9D08 3C068012 */ lui $a2, %hi(gHUDCurrVertex) # $a2, 0x8012 -/* 0AA90C 800A9D0C 24C66D04 */ addiu $a2, %lo(gHUDCurrVertex) # addiu $a2, $a2, 0x6d04 -/* 0AA910 800A9D10 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0AA914 800A9D14 27A70120 */ addiu $a3, $sp, 0x120 -/* 0AA918 800A9D18 AFA00014 */ sw $zero, 0x14($sp) -/* 0AA91C 800A9D1C 0C01A2FD */ jal func_80068BF4 -/* 0AA920 800A9D20 AFAE0010 */ sw $t6, 0x10($sp) -/* 0AA924 800A9D24 8FA20158 */ lw $v0, 0x158($sp) -/* 0AA928 800A9D28 24010168 */ li $at, 360 -/* 0AA92C 800A9D2C 8458003E */ lh $t8, 0x3e($v0) -/* 0AA930 800A9D30 844F003C */ lh $t7, 0x3c($v0) -/* 0AA934 800A9D34 844C0046 */ lh $t4, 0x46($v0) -/* 0AA938 800A9D38 844B0044 */ lh $t3, 0x44($v0) -/* 0AA93C 800A9D3C 030FC823 */ subu $t9, $t8, $t7 -/* 0AA940 800A9D40 018B5023 */ subu $t2, $t4, $t3 -/* 0AA944 800A9D44 448A9000 */ mtc1 $t2, $f18 -/* 0AA948 800A9D48 44993000 */ mtc1 $t9, $f6 -/* 0AA94C 800A9D4C 46809220 */ cvt.s.w $f8, $f18 -/* 0AA950 800A9D50 468032A0 */ cvt.s.w $f10, $f6 -/* 0AA954 800A9D54 00000000 */ nop -/* 0AA958 800A9D58 46085403 */ div.s $f16, $f10, $f8 -/* 0AA95C 800A9D5C E7B0011C */ swc1 $f16, 0x11c($sp) -/* 0AA960 800A9D60 94440024 */ lhu $a0, 0x24($v0) -/* 0AA964 800A9D64 00000000 */ nop -/* 0AA968 800A9D68 00046C00 */ sll $t5, $a0, 0x10 -/* 0AA96C 800A9D6C 01A46823 */ subu $t5, $t5, $a0 -/* 0AA970 800A9D70 01A1001A */ div $zero, $t5, $at -/* 0AA974 800A9D74 00007012 */ mflo $t6 -/* 0AA978 800A9D78 000EC400 */ sll $t8, $t6, 0x10 -/* 0AA97C 800A9D7C 0C01C1FE */ jal coss_f -/* 0AA980 800A9D80 00182403 */ sra $a0, $t8, 0x10 -/* 0AA984 800A9D84 8FB90158 */ lw $t9, 0x158($sp) -/* 0AA988 800A9D88 E7A00118 */ swc1 $f0, 0x118($sp) -/* 0AA98C 800A9D8C 97240024 */ lhu $a0, 0x24($t9) -/* 0AA990 800A9D90 24010168 */ li $at, 360 -/* 0AA994 800A9D94 00046400 */ sll $t4, $a0, 0x10 -/* 0AA998 800A9D98 01846023 */ subu $t4, $t4, $a0 -/* 0AA99C 800A9D9C 0181001A */ div $zero, $t4, $at -/* 0AA9A0 800A9DA0 00005812 */ mflo $t3 -/* 0AA9A4 800A9DA4 000B5400 */ sll $t2, $t3, 0x10 -/* 0AA9A8 800A9DA8 0C01C1F1 */ jal sins_f -/* 0AA9AC 800A9DAC 000A2403 */ sra $a0, $t2, 0x10 -/* 0AA9B0 800A9DB0 0C003936 */ jal func_8000E4D8 -/* 0AA9B4 800A9DB4 E7A00114 */ swc1 $f0, 0x114($sp) -/* 0AA9B8 800A9DB8 10400043 */ beqz $v0, .L800A9EC8 -/* 0AA9BC 800A9DBC 00000000 */ nop -/* 0AA9C0 800A9DC0 0C006CA2 */ jal func_8001B288 -/* 0AA9C4 800A9DC4 00000000 */ nop -/* 0AA9C8 800A9DC8 1040003F */ beqz $v0, .L800A9EC8 -/* 0AA9CC 800A9DCC 00000000 */ nop -/* 0AA9D0 800A9DD0 0C006CB8 */ jal func_8001B2E0 -/* 0AA9D4 800A9DD4 00000000 */ nop -/* 0AA9D8 800A9DD8 1040003B */ beqz $v0, .L800A9EC8 -/* 0AA9DC 800A9DDC 00408025 */ move $s0, $v0 -/* 0AA9E0 800A9DE0 C7A4011C */ lwc1 $f4, 0x11c($sp) -/* 0AA9E4 800A9DE4 C44C000C */ lwc1 $f12, 0xc($v0) -/* 0AA9E8 800A9DE8 C44E0014 */ lwc1 $f14, 0x14($v0) -/* 0AA9EC 800A9DEC 8FA60114 */ lw $a2, 0x114($sp) -/* 0AA9F0 800A9DF0 8FA70118 */ lw $a3, 0x118($sp) -/* 0AA9F4 800A9DF4 0C02A8FB */ jal func_800AA3EC -/* 0AA9F8 800A9DF8 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0AA9FC 800A9DFC 8E580000 */ lw $t8, ($s2) -/* 0AAA00 800A9E00 240E000E */ li $t6, 14 -/* 0AAA04 800A9E04 A70E01E6 */ sh $t6, 0x1e6($t8) -/* 0AAA08 800A9E08 8E4F0000 */ lw $t7, ($s2) -/* 0AAA0C 800A9E0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AAA10 800A9E10 A5E001E4 */ sh $zero, 0x1e4($t7) -/* 0AAA14 800A9E14 8E590000 */ lw $t9, ($s2) -/* 0AAA18 800A9E18 44813000 */ mtc1 $at, $f6 -/* 0AAA1C 800A9E1C 3C0EFA00 */ lui $t6, 0xfa00 -/* 0AAA20 800A9E20 E72601E8 */ swc1 $f6, 0x1e8($t9) -/* 0AAA24 800A9E24 920B0039 */ lbu $t3, 0x39($s0) -/* 0AAA28 800A9E28 8FAC0108 */ lw $t4, 0x108($sp) -/* 0AAA2C 800A9E2C 448B4000 */ mtc1 $t3, $f8 -/* 0AAA30 800A9E30 448C9000 */ mtc1 $t4, $f18 -/* 0AAA34 800A9E34 46804420 */ cvt.s.w $f16, $f8 -/* 0AAA38 800A9E38 44804000 */ mtc1 $zero, $f8 -/* 0AAA3C 800A9E3C 05610005 */ bgez $t3, .L800A9E54 -/* 0AAA40 800A9E40 468092A0 */ cvt.s.w $f10, $f18 -/* 0AAA44 800A9E44 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0AAA48 800A9E48 44812000 */ mtc1 $at, $f4 -/* 0AAA4C 800A9E4C 00000000 */ nop -/* 0AAA50 800A9E50 46048400 */ add.s $f16, $f16, $f4 -.L800A9E54: -/* 0AAA54 800A9E54 46105182 */ mul.s $f6, $f10, $f16 -/* 0AAA58 800A9E58 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AAA5C 800A9E5C 44814800 */ mtc1 $at, $f9 -/* 0AAA60 800A9E60 8E880000 */ lw $t0, ($s4) -/* 0AAA64 800A9E64 460034A1 */ cvt.d.s $f18, $f6 -/* 0AAA68 800A9E68 46289102 */ mul.d $f4, $f18, $f8 -/* 0AAA6C 800A9E6C 250D0008 */ addiu $t5, $t0, 8 -/* 0AAA70 800A9E70 AE8D0000 */ sw $t5, ($s4) -/* 0AAA74 800A9E74 AD0E0000 */ sw $t6, ($t0) -/* 0AAA78 800A9E78 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0AAA7C 800A9E7C 444AF800 */ cfc1 $t2, $31 -/* 0AAA80 800A9E80 3C068012 */ lui $a2, %hi(gHUDCurrVertex) # $a2, 0x8012 -/* 0AAA84 800A9E84 35410003 */ ori $at, $t2, 3 -/* 0AAA88 800A9E88 38210002 */ xori $at, $at, 2 -/* 0AAA8C 800A9E8C 44C1F800 */ ctc1 $at, $31 -/* 0AAA90 800A9E90 3C013C3C */ lui $at, (0x3C3C3C00 >> 16) # lui $at, 0x3c3c -/* 0AAA94 800A9E94 462022A4 */ cvt.w.d $f10, $f4 -/* 0AAA98 800A9E98 34213C00 */ ori $at, (0x3C3C3C00 & 0xFFFF) # ori $at, $at, 0x3c00 -/* 0AAA9C 800A9E9C 44035000 */ mfc1 $v1, $f10 -/* 0AAAA0 800A9EA0 44CAF800 */ ctc1 $t2, $31 -/* 0AAAA4 800A9EA4 307800FF */ andi $t8, $v1, 0xff -/* 0AAAA8 800A9EA8 03017825 */ or $t7, $t8, $at -/* 0AAAAC 800A9EAC AD0F0004 */ sw $t7, 4($t0) -/* 0AAAB0 800A9EB0 8E470000 */ lw $a3, ($s2) -/* 0AAAB4 800A9EB4 24C66D04 */ addiu $a2, %lo(gHUDCurrVertex) # addiu $a2, $a2, 0x6d04 -/* 0AAAB8 800A9EB8 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0AAABC 800A9EBC 02802025 */ move $a0, $s4 -/* 0AAAC0 800A9EC0 0C02A980 */ jal func_800AA600 -/* 0AAAC4 800A9EC4 24E701E0 */ addiu $a3, $a3, 0x1e0 -.L800A9EC8: -/* 0AAAC8 800A9EC8 0C006D90 */ jal func_8001B640 -/* 0AAACC 800A9ECC 00000000 */ nop -/* 0AAAD0 800A9ED0 10400045 */ beqz $v0, .L800A9FE8 -/* 0AAAD4 800A9ED4 00408025 */ move $s0, $v0 -/* 0AAAD8 800A9ED8 8FB90108 */ lw $t9, 0x108($sp) -/* 0AAADC 800A9EDC C7B0011C */ lwc1 $f16, 0x11c($sp) -/* 0AAAE0 800A9EE0 44993000 */ mtc1 $t9, $f6 -/* 0AAAE4 800A9EE4 C44C000C */ lwc1 $f12, 0xc($v0) -/* 0AAAE8 800A9EE8 468034A0 */ cvt.s.w $f18, $f6 -/* 0AAAEC 800A9EEC C44E0014 */ lwc1 $f14, 0x14($v0) -/* 0AAAF0 800A9EF0 8FA60114 */ lw $a2, 0x114($sp) -/* 0AAAF4 800A9EF4 8FA70118 */ lw $a3, 0x118($sp) -/* 0AAAF8 800A9EF8 E7B20054 */ swc1 $f18, 0x54($sp) -/* 0AAAFC 800A9EFC 0C02A8FB */ jal func_800AA3EC -/* 0AAB00 800A9F00 E7B00010 */ swc1 $f16, 0x10($sp) -/* 0AAB04 800A9F04 8E4C0000 */ lw $t4, ($s2) -/* 0AAB08 800A9F08 3C09800E */ lui $t1, %hi(D_800E27BC) # $t1, 0x800e -/* 0AAB0C 800A9F0C A58001E4 */ sh $zero, 0x1e4($t4) -/* 0AAB10 800A9F10 920B0039 */ lbu $t3, 0x39($s0) -/* 0AAB14 800A9F14 C7A80054 */ lwc1 $f8, 0x54($sp) -/* 0AAB18 800A9F18 448B2000 */ mtc1 $t3, $f4 -/* 0AAB1C 800A9F1C 252927BC */ addiu $t1, %lo(D_800E27BC) # addiu $t1, $t1, 0x27bc -/* 0AAB20 800A9F20 05610005 */ bgez $t3, .L800A9F38 -/* 0AAB24 800A9F24 468022A0 */ cvt.s.w $f10, $f4 -/* 0AAB28 800A9F28 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0AAB2C 800A9F2C 44818000 */ mtc1 $at, $f16 -/* 0AAB30 800A9F30 00000000 */ nop -/* 0AAB34 800A9F34 46105280 */ add.s $f10, $f10, $f16 -.L800A9F38: -/* 0AAB38 800A9F38 460A4182 */ mul.s $f6, $f8, $f10 -/* 0AAB3C 800A9F3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AAB40 800A9F40 44812800 */ mtc1 $at, $f5 -/* 0AAB44 800A9F44 44802000 */ mtc1 $zero, $f4 -/* 0AAB48 800A9F48 460034A1 */ cvt.d.s $f18, $f6 -/* 0AAB4C 800A9F4C 46249402 */ mul.d $f16, $f18, $f4 -/* 0AAB50 800A9F50 8E880000 */ lw $t0, ($s4) -/* 0AAB54 800A9F54 3C0EFA00 */ lui $t6, 0xfa00 -/* 0AAB58 800A9F58 250D0008 */ addiu $t5, $t0, 8 -/* 0AAB5C 800A9F5C AE8D0000 */ sw $t5, ($s4) -/* 0AAB60 800A9F60 444AF800 */ cfc1 $t2, $31 -/* 0AAB64 800A9F64 AD0E0000 */ sw $t6, ($t0) -/* 0AAB68 800A9F68 35410003 */ ori $at, $t2, 3 -/* 0AAB6C 800A9F6C 38210002 */ xori $at, $at, 2 -/* 0AAB70 800A9F70 44C1F800 */ ctc1 $at, $31 -/* 0AAB74 800A9F74 912F001A */ lbu $t7, 0x1a($t1) -/* 0AAB78 800A9F78 46208224 */ cvt.w.d $f8, $f16 -/* 0AAB7C 800A9F7C 912B0018 */ lbu $t3, 0x18($t1) -/* 0AAB80 800A9F80 91380019 */ lbu $t8, 0x19($t1) -/* 0AAB84 800A9F84 44CAF800 */ ctc1 $t2, $31 -/* 0AAB88 800A9F88 000FCA00 */ sll $t9, $t7, 8 -/* 0AAB8C 800A9F8C 44034000 */ mfc1 $v1, $f8 -/* 0AAB90 800A9F90 000B5600 */ sll $t2, $t3, 0x18 -/* 0AAB94 800A9F94 032A6825 */ or $t5, $t9, $t2 -/* 0AAB98 800A9F98 00187C00 */ sll $t7, $t8, 0x10 -/* 0AAB9C 800A9F9C 01AF6025 */ or $t4, $t5, $t7 -/* 0AABA0 800A9FA0 306B00FF */ andi $t3, $v1, 0xff -/* 0AABA4 800A9FA4 018BC825 */ or $t9, $t4, $t3 -/* 0AABA8 800A9FA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AABAC 800A9FAC AD190004 */ sw $t9, 4($t0) -/* 0AABB0 800A9FB0 8E4A0000 */ lw $t2, ($s2) -/* 0AABB4 800A9FB4 44815000 */ mtc1 $at, $f10 -/* 0AABB8 800A9FB8 240E000E */ li $t6, 14 -/* 0AABBC 800A9FBC E54A01E8 */ swc1 $f10, 0x1e8($t2) -/* 0AABC0 800A9FC0 8E580000 */ lw $t8, ($s2) -/* 0AABC4 800A9FC4 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0AABC8 800A9FC8 A70E01E6 */ sh $t6, 0x1e6($t8) -/* 0AABCC 800A9FCC 8E470000 */ lw $a3, ($s2) -/* 0AABD0 800A9FD0 3C068012 */ lui $a2, %hi(gHUDCurrVertex) # $a2, 0x8012 -/* 0AABD4 800A9FD4 24C66D04 */ addiu $a2, %lo(gHUDCurrVertex) # addiu $a2, $a2, 0x6d04 -/* 0AABD8 800A9FD8 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0AABDC 800A9FDC 02802025 */ move $a0, $s4 -/* 0AABE0 800A9FE0 0C02A980 */ jal func_800AA600 -/* 0AABE4 800A9FE4 24E701E0 */ addiu $a3, $a3, 0x1e0 -.L800A9FE8: -/* 0AABE8 800A9FE8 3C0D8012 */ lui $t5, %hi(D_80126D60) # $t5, 0x8012 -/* 0AABEC 800A9FEC 8DAD6D60 */ lw $t5, %lo(D_80126D60)($t5) -/* 0AABF0 800A9FF0 24010005 */ li $at, 5 -/* 0AABF4 800A9FF4 81AF004C */ lb $t7, 0x4c($t5) -/* 0AABF8 800A9FF8 00000000 */ nop -/* 0AABFC 800A9FFC 15E10029 */ bne $t7, $at, .L800AA0A4 -/* 0AAC00 800AA000 8FA20140 */ lw $v0, 0x140($sp) -/* 0AAC04 800AA004 0C00631B */ jal func_80018C6C -/* 0AAC08 800AA008 00000000 */ nop -/* 0AAC0C 800AA00C 10400024 */ beqz $v0, .L800AA0A0 -/* 0AAC10 800AA010 00000000 */ nop -/* 0AAC14 800AA014 8E4B0000 */ lw $t3, ($s2) -/* 0AAC18 800AA018 240C000E */ li $t4, 14 -/* 0AAC1C 800AA01C A56C01E6 */ sh $t4, 0x1e6($t3) -/* 0AAC20 800AA020 C7A6011C */ lwc1 $f6, 0x11c($sp) -/* 0AAC24 800AA024 8FA70118 */ lw $a3, 0x118($sp) -/* 0AAC28 800AA028 8FA60114 */ lw $a2, 0x114($sp) -/* 0AAC2C 800AA02C C44E0014 */ lwc1 $f14, 0x14($v0) -/* 0AAC30 800AA030 C44C000C */ lwc1 $f12, 0xc($v0) -/* 0AAC34 800AA034 0C02A8FB */ jal func_800AA3EC -/* 0AAC38 800AA038 E7A60010 */ swc1 $f6, 0x10($sp) -/* 0AAC3C 800AA03C 8E590000 */ lw $t9, ($s2) -/* 0AAC40 800AA040 3C0EFA00 */ lui $t6, 0xfa00 -/* 0AAC44 800AA044 A72001E4 */ sh $zero, 0x1e4($t9) -/* 0AAC48 800AA048 8E880000 */ lw $t0, ($s4) -/* 0AAC4C 800AA04C 3C01FF00 */ lui $at, (0xFF00FF00 >> 16) # lui $at, 0xff00 -/* 0AAC50 800AA050 250A0008 */ addiu $t2, $t0, 8 -/* 0AAC54 800AA054 AE8A0000 */ sw $t2, ($s4) -/* 0AAC58 800AA058 AD0E0000 */ sw $t6, ($t0) -/* 0AAC5C 800AA05C 8FB80108 */ lw $t8, 0x108($sp) -/* 0AAC60 800AA060 3421FF00 */ ori $at, (0xFF00FF00 & 0xFFFF) # ori $at, $at, 0xff00 -/* 0AAC64 800AA064 330D00FF */ andi $t5, $t8, 0xff -/* 0AAC68 800AA068 01A17825 */ or $t7, $t5, $at -/* 0AAC6C 800AA06C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AAC70 800AA070 AD0F0004 */ sw $t7, 4($t0) -/* 0AAC74 800AA074 8E4C0000 */ lw $t4, ($s2) -/* 0AAC78 800AA078 44819000 */ mtc1 $at, $f18 -/* 0AAC7C 800AA07C 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0AAC80 800AA080 E59201E8 */ swc1 $f18, 0x1e8($t4) -/* 0AAC84 800AA084 8E470000 */ lw $a3, ($s2) -/* 0AAC88 800AA088 3C068012 */ lui $a2, %hi(gHUDCurrVertex) # $a2, 0x8012 -/* 0AAC8C 800AA08C 24C66D04 */ addiu $a2, %lo(gHUDCurrVertex) # addiu $a2, $a2, 0x6d04 -/* 0AAC90 800AA090 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0AAC94 800AA094 02802025 */ move $a0, $s4 -/* 0AAC98 800AA098 0C02A980 */ jal func_800AA600 -/* 0AAC9C 800AA09C 24E701E0 */ addiu $a3, $a3, 0x1e0 -.L800AA0A0: -/* 0AACA0 800AA0A0 8FA20140 */ lw $v0, 0x140($sp) -.L800AA0A4: -/* 0AACA4 800AA0A4 8FAB0150 */ lw $t3, 0x150($sp) -/* 0AACA8 800AA0A8 2442FFFF */ addiu $v0, $v0, -1 -/* 0AACAC 800AA0AC 044000B1 */ bltz $v0, .L800AA374 -/* 0AACB0 800AA0B0 00028880 */ sll $s1, $v0, 2 -/* 0AACB4 800AA0B4 01718021 */ addu $s0, $t3, $s1 -.L800AA0B8: -/* 0AACB8 800AA0B8 8E020000 */ lw $v0, ($s0) -/* 0AACBC 800AA0BC 8FA60114 */ lw $a2, 0x114($sp) -/* 0AACC0 800AA0C0 8C450064 */ lw $a1, 0x64($v0) -/* 0AACC4 800AA0C4 8FA70118 */ lw $a3, 0x118($sp) -/* 0AACC8 800AA0C8 10A000A7 */ beqz $a1, .L800AA368 -/* 0AACCC 800AA0CC 00000000 */ nop -/* 0AACD0 800AA0D0 8FB90108 */ lw $t9, 0x108($sp) -/* 0AACD4 800AA0D4 C44C000C */ lwc1 $f12, 0xc($v0) -/* 0AACD8 800AA0D8 C44E0014 */ lwc1 $f14, 0x14($v0) -/* 0AACDC 800AA0DC C7A4011C */ lwc1 $f4, 0x11c($sp) -/* 0AACE0 800AA0E0 332A00FF */ andi $t2, $t9, 0xff -/* 0AACE4 800AA0E4 AFAA0048 */ sw $t2, 0x48($sp) -/* 0AACE8 800AA0E8 AFA50148 */ sw $a1, 0x148($sp) -/* 0AACEC 800AA0EC 0C02A8FB */ jal func_800AA3EC -/* 0AACF0 800AA0F0 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0AACF4 800AA0F4 8FA50148 */ lw $a1, 0x148($sp) -/* 0AACF8 800AA0F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AACFC 800AA0FC 84AE0000 */ lh $t6, ($a1) -/* 0AAD00 800AA100 00000000 */ nop -/* 0AAD04 800AA104 126E0027 */ beq $s3, $t6, .L800AA1A4 -/* 0AAD08 800AA108 00000000 */ nop -/* 0AAD0C 800AA10C 8E420000 */ lw $v0, ($s2) -/* 0AAD10 800AA110 44814000 */ mtc1 $at, $f8 -/* 0AAD14 800AA114 C45001F0 */ lwc1 $f16, 0x1f0($v0) -/* 0AAD18 800AA118 2418001B */ li $t8, 27 -/* 0AAD1C 800AA11C 46088281 */ sub.s $f10, $f16, $f8 -/* 0AAD20 800AA120 24010168 */ li $at, 360 -/* 0AAD24 800AA124 E44A01F0 */ swc1 $f10, 0x1f0($v0) -/* 0AAD28 800AA128 8E4D0000 */ lw $t5, ($s2) -/* 0AAD2C 800AA12C 00000000 */ nop -/* 0AAD30 800AA130 A5B801E6 */ sh $t8, 0x1e6($t5) -/* 0AAD34 800AA134 8FAB0158 */ lw $t3, 0x158($sp) -/* 0AAD38 800AA138 8E0F0000 */ lw $t7, ($s0) -/* 0AAD3C 800AA13C 95790024 */ lhu $t9, 0x24($t3) -/* 0AAD40 800AA140 85EC0000 */ lh $t4, ($t7) -/* 0AAD44 800AA144 00195400 */ sll $t2, $t9, 0x10 -/* 0AAD48 800AA148 01595023 */ subu $t2, $t2, $t9 -/* 0AAD4C 800AA14C 0141001A */ div $zero, $t2, $at -/* 0AAD50 800AA150 8E4F0000 */ lw $t7, ($s2) -/* 0AAD54 800AA154 00007012 */ mflo $t6 -/* 0AAD58 800AA158 018E6823 */ subu $t5, $t4, $t6 -/* 0AAD5C 800AA15C A5ED01E4 */ sh $t5, 0x1e4($t7) -/* 0AAD60 800AA160 0C0270C3 */ jal get_filtered_cheats -/* 0AAD64 800AA164 AFA50148 */ sw $a1, 0x148($sp) -/* 0AAD68 800AA168 8FA50148 */ lw $a1, 0x148($sp) -/* 0AAD6C 800AA16C 304B0004 */ andi $t3, $v0, 4 -/* 0AAD70 800AA170 11600007 */ beqz $t3, .L800AA190 -/* 0AAD74 800AA174 24040001 */ li $a0, 1 -/* 0AAD78 800AA178 8E420000 */ lw $v0, ($s2) -/* 0AAD7C 800AA17C 340AFFFF */ li $t2, 65535 -/* 0AAD80 800AA180 845901E4 */ lh $t9, 0x1e4($v0) -/* 0AAD84 800AA184 00000000 */ nop -/* 0AAD88 800AA188 01596023 */ subu $t4, $t2, $t9 -/* 0AAD8C 800AA18C A44C01E4 */ sh $t4, 0x1e4($v0) -.L800AA190: -/* 0AAD90 800AA190 0C01EFC7 */ jal func_8007BF1C -/* 0AAD94 800AA194 AFA50148 */ sw $a1, 0x148($sp) -/* 0AAD98 800AA198 8FA50148 */ lw $a1, 0x148($sp) -/* 0AAD9C 800AA19C 10000007 */ b .L800AA1BC -/* 0AADA0 800AA1A0 00000000 */ nop -.L800AA1A4: -/* 0AADA4 800AA1A4 8E4E0000 */ lw $t6, ($s2) -/* 0AADA8 800AA1A8 2418000E */ li $t8, 14 -/* 0AADAC 800AA1AC A5C001E4 */ sh $zero, 0x1e4($t6) -/* 0AADB0 800AA1B0 8E4D0000 */ lw $t5, ($s2) -/* 0AADB4 800AA1B4 00000000 */ nop -/* 0AADB8 800AA1B8 A5B801E6 */ sh $t8, 0x1e6($t5) -.L800AA1BC: -/* 0AADBC 800AA1BC 0C008D07 */ jal func_8002341C -/* 0AADC0 800AA1C0 AFA50148 */ sw $a1, 0x148($sp) -/* 0AADC4 800AA1C4 8FA50148 */ lw $a1, 0x148($sp) -/* 0AADC8 800AA1C8 1040000F */ beqz $v0, .L800AA208 -/* 0AADCC 800AA1CC 3C18FA00 */ lui $t8, 0xfa00 -/* 0AADD0 800AA1D0 80AF01D6 */ lb $t7, 0x1d6($a1) -/* 0AADD4 800AA1D4 2401000A */ li $at, 10 -/* 0AADD8 800AA1D8 15E1000B */ bne $t7, $at, .L800AA208 -/* 0AADDC 800AA1DC 3C0AFA00 */ lui $t2, 0xfa00 -/* 0AADE0 800AA1E0 8E880000 */ lw $t0, ($s4) -/* 0AADE4 800AA1E4 3C01FF00 */ lui $at, (0xFF00FF00 >> 16) # lui $at, 0xff00 -/* 0AADE8 800AA1E8 250B0008 */ addiu $t3, $t0, 8 -/* 0AADEC 800AA1EC AE8B0000 */ sw $t3, ($s4) -/* 0AADF0 800AA1F0 AD0A0000 */ sw $t2, ($t0) -/* 0AADF4 800AA1F4 8FB90048 */ lw $t9, 0x48($sp) -/* 0AADF8 800AA1F8 3421FF00 */ ori $at, (0xFF00FF00 & 0xFFFF) # ori $at, $at, 0xff00 -/* 0AADFC 800AA1FC 03216025 */ or $t4, $t9, $at -/* 0AAE00 800AA200 10000016 */ b .L800AA25C -/* 0AAE04 800AA204 AD0C0004 */ sw $t4, 4($t0) -.L800AA208: -/* 0AAE08 800AA208 8E880000 */ lw $t0, ($s4) -/* 0AAE0C 800AA20C 3C0B800E */ lui $t3, %hi(D_800E27BC) # $t3, 0x800e -/* 0AAE10 800AA210 250E0008 */ addiu $t6, $t0, 8 -/* 0AAE14 800AA214 AE8E0000 */ sw $t6, ($s4) -/* 0AAE18 800AA218 AD180000 */ sw $t8, ($t0) -/* 0AAE1C 800AA21C 80AD0003 */ lb $t5, 3($a1) -/* 0AAE20 800AA220 256B27BC */ addiu $t3, %lo(D_800E27BC) # addiu $t3, $t3, 0x27bc -/* 0AAE24 800AA224 000D7880 */ sll $t7, $t5, 2 -/* 0AAE28 800AA228 01ED7823 */ subu $t7, $t7, $t5 -/* 0AAE2C 800AA22C 01EB1021 */ addu $v0, $t7, $t3 -/* 0AAE30 800AA230 90590002 */ lbu $t9, 2($v0) -/* 0AAE34 800AA234 90580000 */ lbu $t8, ($v0) -/* 0AAE38 800AA238 904A0001 */ lbu $t2, 1($v0) -/* 0AAE3C 800AA23C 00196200 */ sll $t4, $t9, 8 -/* 0AAE40 800AA240 00186E00 */ sll $t5, $t8, 0x18 -/* 0AAE44 800AA244 8FB80048 */ lw $t8, 0x48($sp) -/* 0AAE48 800AA248 018D7825 */ or $t7, $t4, $t5 -/* 0AAE4C 800AA24C 000ACC00 */ sll $t9, $t2, 0x10 -/* 0AAE50 800AA250 01F97025 */ or $t6, $t7, $t9 -/* 0AAE54 800AA254 01D86025 */ or $t4, $t6, $t8 -/* 0AAE58 800AA258 AD0C0004 */ sw $t4, 4($t0) -.L800AA25C: -/* 0AAE5C 800AA25C 0C01AF66 */ jal get_current_level_race_type -/* 0AAE60 800AA260 AFA50148 */ sw $a1, 0x148($sp) -/* 0AAE64 800AA264 8FA50148 */ lw $a1, 0x148($sp) -/* 0AAE68 800AA268 304D0040 */ andi $t5, $v0, 0x40 -/* 0AAE6C 800AA26C 11A00005 */ beqz $t5, .L800AA284 -/* 0AAE70 800AA270 3C0A8000 */ lui $t2, %hi(osTvType) # $t2, 0x8000 -/* 0AAE74 800AA274 80AB01D8 */ lb $t3, 0x1d8($a1) -/* 0AAE78 800AA278 00000000 */ nop -/* 0AAE7C 800AA27C 15600038 */ bnez $t3, .L800AA360 -/* 0AAE80 800AA280 00000000 */ nop -.L800AA284: -/* 0AAE84 800AA284 8D4A0300 */ lw $t2, %lo(osTvType)($t2) -/* 0AAE88 800AA288 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0AAE8C 800AA28C 15400007 */ bnez $t2, .L800AA2AC -/* 0AAE90 800AA290 00000000 */ nop -/* 0AAE94 800AA294 8E420000 */ lw $v0, ($s2) -/* 0AAE98 800AA298 44819000 */ mtc1 $at, $f18 -/* 0AAE9C 800AA29C C44601EC */ lwc1 $f6, 0x1ec($v0) -/* 0AAEA0 800AA2A0 00000000 */ nop -/* 0AAEA4 800AA2A4 46123101 */ sub.s $f4, $f6, $f18 -/* 0AAEA8 800AA2A8 E44401EC */ swc1 $f4, 0x1ec($v0) -.L800AA2AC: -/* 0AAEAC 800AA2AC 0C01AF66 */ jal get_current_level_race_type -/* 0AAEB0 800AA2B0 AFA50148 */ sw $a1, 0x148($sp) -/* 0AAEB4 800AA2B4 8FA50148 */ lw $a1, 0x148($sp) -/* 0AAEB8 800AA2B8 24010040 */ li $at, 64 -/* 0AAEBC 800AA2BC 1441001C */ bne $v0, $at, .L800AA330 -/* 0AAEC0 800AA2C0 02802025 */ move $a0, $s4 -/* 0AAEC4 800AA2C4 80A20212 */ lb $v0, 0x212($a1) -/* 0AAEC8 800AA2C8 3C01800F */ lui $at, %hi(D_800E87D0) # $at, 0x800f -/* 0AAECC 800AA2CC 1040000A */ beqz $v0, .L800AA2F8 -/* 0AAED0 800AA2D0 00000000 */ nop -/* 0AAED4 800AA2D4 24010001 */ li $at, 1 -/* 0AAED8 800AA2D8 1041000B */ beq $v0, $at, .L800AA308 -/* 0AAEDC 800AA2DC 24010002 */ li $at, 2 -/* 0AAEE0 800AA2E0 1041000E */ beq $v0, $at, .L800AA31C -/* 0AAEE4 800AA2E4 24010003 */ li $at, 3 -/* 0AAEE8 800AA2E8 1041000C */ beq $v0, $at, .L800AA31C -/* 0AAEEC 800AA2EC 00000000 */ nop -/* 0AAEF0 800AA2F0 10000015 */ b .L800AA348 -/* 0AAEF4 800AA2F4 8E470000 */ lw $a3, ($s2) -.L800AA2F8: -/* 0AAEF8 800AA2F8 C43087D0 */ lwc1 $f16, %lo(D_800E87D0)($at) -/* 0AAEFC 800AA2FC 8E4F0000 */ lw $t7, ($s2) -/* 0AAF00 800AA300 10000010 */ b .L800AA344 -/* 0AAF04 800AA304 E5F001E8 */ swc1 $f16, 0x1e8($t7) -.L800AA308: -/* 0AAF08 800AA308 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AAF0C 800AA30C 44814000 */ mtc1 $at, $f8 -/* 0AAF10 800AA310 8E590000 */ lw $t9, ($s2) -/* 0AAF14 800AA314 1000000B */ b .L800AA344 -/* 0AAF18 800AA318 E72801E8 */ swc1 $f8, 0x1e8($t9) -.L800AA31C: -/* 0AAF1C 800AA31C 3C01800F */ lui $at, %hi(D_800E87D4) # $at, 0x800f -/* 0AAF20 800AA320 C42A87D4 */ lwc1 $f10, %lo(D_800E87D4)($at) -/* 0AAF24 800AA324 8E4E0000 */ lw $t6, ($s2) -/* 0AAF28 800AA328 10000006 */ b .L800AA344 -/* 0AAF2C 800AA32C E5CA01E8 */ swc1 $f10, 0x1e8($t6) -.L800AA330: -/* 0AAF30 800AA330 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AAF34 800AA334 44813000 */ mtc1 $at, $f6 -/* 0AAF38 800AA338 8E580000 */ lw $t8, ($s2) -/* 0AAF3C 800AA33C 00000000 */ nop -/* 0AAF40 800AA340 E70601E8 */ swc1 $f6, 0x1e8($t8) -.L800AA344: -/* 0AAF44 800AA344 8E470000 */ lw $a3, ($s2) -.L800AA348: -/* 0AAF48 800AA348 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0AAF4C 800AA34C 3C068012 */ lui $a2, %hi(gHUDCurrVertex) # $a2, 0x8012 -/* 0AAF50 800AA350 24C66D04 */ addiu $a2, %lo(gHUDCurrVertex) # addiu $a2, $a2, 0x6d04 -/* 0AAF54 800AA354 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0AAF58 800AA358 0C02A980 */ jal func_800AA600 -/* 0AAF5C 800AA35C 24E701E0 */ addiu $a3, $a3, 0x1e0 -.L800AA360: -/* 0AAF60 800AA360 0C01EFC7 */ jal func_8007BF1C -/* 0AAF64 800AA364 00002025 */ move $a0, $zero -.L800AA368: -/* 0AAF68 800AA368 2631FFFC */ addiu $s1, $s1, -4 -/* 0AAF6C 800AA36C 0621FF52 */ bgez $s1, .L800AA0B8 -/* 0AAF70 800AA370 2610FFFC */ addiu $s0, $s0, -4 -.L800AA374: -/* 0AAF74 800AA374 8E880000 */ lw $t0, ($s4) -/* 0AAF78 800AA378 3C0DE700 */ lui $t5, 0xe700 -/* 0AAF7C 800AA37C 250C0008 */ addiu $t4, $t0, 8 -/* 0AAF80 800AA380 AE8C0000 */ sw $t4, ($s4) -/* 0AAF84 800AA384 00002025 */ move $a0, $zero -/* 0AAF88 800AA388 AD000004 */ sw $zero, 4($t0) -/* 0AAF8C 800AA38C 0C01A142 */ jal func_80068508 -/* 0AAF90 800AA390 AD0D0000 */ sw $t5, ($t0) -/* 0AAF94 800AA394 0C01EFC7 */ jal func_8007BF1C -/* 0AAF98 800AA398 24040001 */ li $a0, 1 -/* 0AAF9C 800AA39C 8E8B0000 */ lw $t3, ($s4) -/* 0AAFA0 800AA3A0 8FAA0160 */ lw $t2, 0x160($sp) -/* 0AAFA4 800AA3A4 3C0F8012 */ lui $t7, %hi(gHUDCurrMatrix) # $t7, 0x8012 -/* 0AAFA8 800AA3A8 AD4B0000 */ sw $t3, ($t2) -/* 0AAFAC 800AA3AC 8FB90164 */ lw $t9, 0x164($sp) -/* 0AAFB0 800AA3B0 8DEF6D00 */ lw $t7, %lo(gHUDCurrMatrix)($t7) -/* 0AAFB4 800AA3B4 3C0E8012 */ lui $t6, %hi(gHUDCurrVertex) # $t6, 0x8012 -/* 0AAFB8 800AA3B8 AF2F0000 */ sw $t7, ($t9) -/* 0AAFBC 800AA3BC 8FB80168 */ lw $t8, 0x168($sp) -/* 0AAFC0 800AA3C0 8DCE6D04 */ lw $t6, %lo(gHUDCurrVertex)($t6) -/* 0AAFC4 800AA3C4 00000000 */ nop -/* 0AAFC8 800AA3C8 AF0E0000 */ sw $t6, ($t8) -.L800AA3CC: -/* 0AAFCC 800AA3CC 8FBF003C */ lw $ra, 0x3c($sp) -.L800AA3D0: -/* 0AAFD0 800AA3D0 8FB00028 */ lw $s0, 0x28($sp) -/* 0AAFD4 800AA3D4 8FB1002C */ lw $s1, 0x2c($sp) -/* 0AAFD8 800AA3D8 8FB20030 */ lw $s2, 0x30($sp) -/* 0AAFDC 800AA3DC 8FB30034 */ lw $s3, 0x34($sp) -/* 0AAFE0 800AA3E0 8FB40038 */ lw $s4, 0x38($sp) -/* 0AAFE4 800AA3E4 03E00008 */ jr $ra -/* 0AAFE8 800AA3E8 27BD0160 */ addiu $sp, $sp, 0x160 - diff --git a/asm/non_matchings/game_ui/func_800AA600.s b/asm/non_matchings/game_ui/func_800AA600.s index 891d5f63..e27340b0 100644 --- a/asm/non_matchings/game_ui/func_800AA600.s +++ b/asm/non_matchings/game_ui/func_800AA600.s @@ -523,7 +523,7 @@ glabel func_800AA600 .L800AADA4: /* 0AB9A4 800AADA4 13200020 */ beqz $t9, .L800AAE28 /* 0AB9A8 800AADA8 304E4000 */ andi $t6, $v0, 0x4000 -/* 0AB9AC 800AADAC 0C01A748 */ jal func_80069D20 +/* 0AB9AC 800AADAC 0C01A748 */ jal get_active_camera_segment /* 0AB9B0 800AADB0 00000000 */ nop /* 0AB9B4 800AADB4 3C098012 */ lui $t1, %hi(D_80126CF4) # $t1, 0x8012 /* 0AB9B8 800AADB8 AFA200A8 */ sw $v0, 0xa8($sp) @@ -545,7 +545,7 @@ glabel func_800AA600 /* 0AB9F8 800AADF8 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc /* 0AB9FC 800AADFC AFA00014 */ sw $zero, 0x14($sp) /* 0ABA00 800AAE00 02003825 */ move $a3, $s0 -/* 0ABA04 800AAE04 0C01A2FD */ jal func_80068BF4 +/* 0ABA04 800AAE04 0C01A2FD */ jal render_orthi_triangle_image /* 0ABA08 800AAE08 AFA30010 */ sw $v1, 0x10($sp) /* 0ABA0C 800AAE0C 8FB800A8 */ lw $t8, 0xa8($sp) /* 0ABA10 800AAE10 860B0004 */ lh $t3, 4($s0) diff --git a/asm/non_matchings/memory/allocate_at_address_in_main_pool.s b/asm/non_matchings/memory/allocate_at_address_in_main_pool.s deleted file mode 100644 index b1f85e89..00000000 --- a/asm/non_matchings/memory/allocate_at_address_in_main_pool.s +++ /dev/null @@ -1,119 +0,0 @@ -glabel allocate_at_address_in_main_pool -/* 071AF8 80070EF8 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 071AFC 80070EFC AFBF002C */ sw $ra, 0x2c($sp) -/* 071B00 80070F00 AFB20028 */ sw $s2, 0x28($sp) -/* 071B04 80070F04 AFB10024 */ sw $s1, 0x24($sp) -/* 071B08 80070F08 00A08825 */ move $s1, $a1 -/* 071B0C 80070F0C 00809025 */ move $s2, $a0 -/* 071B10 80070F10 AFB00020 */ sw $s0, 0x20($sp) -/* 071B14 80070F14 0C01BD44 */ jal clear_status_register_flags -/* 071B18 80070F18 AFA60050 */ sw $a2, 0x50($sp) -/* 071B1C 80070F1C AFA20038 */ sw $v0, 0x38($sp) -/* 071B20 80070F20 3C028012 */ lui $v0, %hi(gMemoryPools) # $v0, 0x8012 -/* 071B24 80070F24 24423580 */ addiu $v0, %lo(gMemoryPools) # addiu $v0, $v0, 0x3580 -/* 071B28 80070F28 8C4E0004 */ lw $t6, 4($v0) -/* 071B2C 80070F2C 8C580000 */ lw $t8, ($v0) -/* 071B30 80070F30 25CF0001 */ addiu $t7, $t6, 1 -/* 071B34 80070F34 15F80006 */ bne $t7, $t8, .L80070F50 -/* 071B38 80070F38 3259000F */ andi $t9, $s2, 0xf -/* 071B3C 80070F3C 8FA40038 */ lw $a0, 0x38($sp) -/* 071B40 80070F40 0C01BD4F */ jal set_status_register_flags -/* 071B44 80070F44 00000000 */ nop -/* 071B48 80070F48 10000053 */ b .L80071098 -/* 071B4C 80070F4C 00001025 */ move $v0, $zero -.L80070F50: -/* 071B50 80070F50 13200004 */ beqz $t9, .L80070F64 -/* 071B54 80070F54 00008025 */ move $s0, $zero -/* 071B58 80070F58 2401FFF0 */ li $at, -16 -/* 071B5C 80070F5C 02415024 */ and $t2, $s2, $at -/* 071B60 80070F60 25520010 */ addiu $s2, $t2, 0x10 -.L80070F64: -/* 071B64 80070F64 8C490008 */ lw $t1, 8($v0) -/* 071B68 80070F68 24080014 */ li $t0, 20 -/* 071B6C 80070F6C 2406FFFF */ li $a2, -1 -.L80070F70: -/* 071B70 80070F70 02080019 */ multu $s0, $t0 -/* 071B74 80070F74 00005812 */ mflo $t3 -/* 071B78 80070F78 01691821 */ addu $v1, $t3, $t1 -/* 071B7C 80070F7C 846C0008 */ lh $t4, 8($v1) -/* 071B80 80070F80 00602825 */ move $a1, $v1 -/* 071B84 80070F84 1580003C */ bnez $t4, .L80071078 -/* 071B88 80070F88 00000000 */ nop -/* 071B8C 80070F8C 8C640000 */ lw $a0, ($v1) -/* 071B90 80070F90 00000000 */ nop -/* 071B94 80070F94 0224082B */ sltu $at, $s1, $a0 -/* 071B98 80070F98 14200037 */ bnez $at, .L80071078 -/* 071B9C 80070F9C 00801025 */ move $v0, $a0 -/* 071BA0 80070FA0 8C6D0004 */ lw $t5, 4($v1) -/* 071BA4 80070FA4 02327821 */ addu $t7, $s1, $s2 -/* 071BA8 80070FA8 008D7021 */ addu $t6, $a0, $t5 -/* 071BAC 80070FAC 01CF082B */ sltu $at, $t6, $t7 -/* 071BB0 80070FB0 14200031 */ bnez $at, .L80071078 -/* 071BB4 80070FB4 00000000 */ nop -/* 071BB8 80070FB8 16240012 */ bne $s1, $a0, .L80071004 -/* 071BBC 80070FBC 02002825 */ move $a1, $s0 -/* 071BC0 80070FC0 8FB80050 */ lw $t8, 0x50($sp) -/* 071BC4 80070FC4 00002025 */ move $a0, $zero -/* 071BC8 80070FC8 02002825 */ move $a1, $s0 -/* 071BCC 80070FCC 02403025 */ move $a2, $s2 -/* 071BD0 80070FD0 24070001 */ li $a3, 1 -/* 071BD4 80070FD4 AFA00010 */ sw $zero, 0x10($sp) -/* 071BD8 80070FD8 AFA30034 */ sw $v1, 0x34($sp) -/* 071BDC 80070FDC 0C01C5E3 */ jal allocate_memory_pool_slot -/* 071BE0 80070FE0 AFB80014 */ sw $t8, 0x14($sp) -/* 071BE4 80070FE4 8FA40038 */ lw $a0, 0x38($sp) -/* 071BE8 80070FE8 0C01BD4F */ jal set_status_register_flags -/* 071BEC 80070FEC 00000000 */ nop -/* 071BF0 80070FF0 8FA30034 */ lw $v1, 0x34($sp) -/* 071BF4 80070FF4 00000000 */ nop -/* 071BF8 80070FF8 8C620000 */ lw $v0, ($v1) -/* 071BFC 80070FFC 10000027 */ b .L8007109C -/* 071C00 80071000 8FBF002C */ lw $ra, 0x2c($sp) -.L80071004: -/* 071C04 80071004 8FAA0050 */ lw $t2, 0x50($sp) -/* 071C08 80071008 24190001 */ li $t9, 1 -/* 071C0C 8007100C AFB90010 */ sw $t9, 0x10($sp) -/* 071C10 80071010 00002025 */ move $a0, $zero -/* 071C14 80071014 02223023 */ subu $a2, $s1, $v0 -/* 071C18 80071018 00003825 */ move $a3, $zero -/* 071C1C 8007101C AFA9003C */ sw $t1, 0x3c($sp) -/* 071C20 80071020 0C01C5E3 */ jal allocate_memory_pool_slot -/* 071C24 80071024 AFAA0014 */ sw $t2, 0x14($sp) -/* 071C28 80071028 8FAB0050 */ lw $t3, 0x50($sp) -/* 071C2C 8007102C 00408025 */ move $s0, $v0 -/* 071C30 80071030 00002025 */ move $a0, $zero -/* 071C34 80071034 00402825 */ move $a1, $v0 -/* 071C38 80071038 02403025 */ move $a2, $s2 -/* 071C3C 8007103C 24070001 */ li $a3, 1 -/* 071C40 80071040 AFA00010 */ sw $zero, 0x10($sp) -/* 071C44 80071044 0C01C5E3 */ jal allocate_memory_pool_slot -/* 071C48 80071048 AFAB0014 */ sw $t3, 0x14($sp) -/* 071C4C 8007104C 8FA40038 */ lw $a0, 0x38($sp) -/* 071C50 80071050 0C01BD4F */ jal set_status_register_flags -/* 071C54 80071054 00000000 */ nop -/* 071C58 80071058 24080014 */ li $t0, 20 -/* 071C5C 8007105C 02080019 */ multu $s0, $t0 -/* 071C60 80071060 8FA9003C */ lw $t1, 0x3c($sp) -/* 071C64 80071064 00006012 */ mflo $t4 -/* 071C68 80071068 01896821 */ addu $t5, $t4, $t1 -/* 071C6C 8007106C 8DA20000 */ lw $v0, ($t5) -/* 071C70 80071070 1000000A */ b .L8007109C -/* 071C74 80071074 8FBF002C */ lw $ra, 0x2c($sp) -.L80071078: -/* 071C78 80071078 84B0000C */ lh $s0, 0xc($a1) -/* 071C7C 8007107C 00000000 */ nop -/* 071C80 80071080 1606FFBB */ bne $s0, $a2, .L80070F70 -/* 071C84 80071084 00000000 */ nop -/* 071C88 80071088 8FA40038 */ lw $a0, 0x38($sp) -/* 071C8C 8007108C 0C01BD4F */ jal set_status_register_flags -/* 071C90 80071090 00000000 */ nop -/* 071C94 80071094 00001025 */ move $v0, $zero -.L80071098: -/* 071C98 80071098 8FBF002C */ lw $ra, 0x2c($sp) -.L8007109C: -/* 071C9C 8007109C 8FB00020 */ lw $s0, 0x20($sp) -/* 071CA0 800710A0 8FB10024 */ lw $s1, 0x24($sp) -/* 071CA4 800710A4 8FB20028 */ lw $s2, 0x28($sp) -/* 071CA8 800710A8 03E00008 */ jr $ra -/* 071CAC 800710AC 27BD0048 */ addiu $sp, $sp, 0x48 - diff --git a/asm/non_matchings/memory/allocate_from_memory_pool.s b/asm/non_matchings/memory/allocate_from_memory_pool.s deleted file mode 100644 index d905e6df..00000000 --- a/asm/non_matchings/memory/allocate_from_memory_pool.s +++ /dev/null @@ -1,94 +0,0 @@ -glabel allocate_from_memory_pool -/* 07193C 80070D3C 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 071940 80070D40 AFBF0024 */ sw $ra, 0x24($sp) -/* 071944 80070D44 AFB10020 */ sw $s1, 0x20($sp) -/* 071948 80070D48 00A08825 */ move $s1, $a1 -/* 07194C 80070D4C AFB0001C */ sw $s0, 0x1c($sp) -/* 071950 80070D50 AFA40040 */ sw $a0, 0x40($sp) -/* 071954 80070D54 0C01BD44 */ jal clear_status_register_flags -/* 071958 80070D58 AFA60048 */ sw $a2, 0x48($sp) -/* 07195C 80070D5C 8FAE0040 */ lw $t6, 0x40($sp) -/* 071960 80070D60 3C188012 */ lui $t8, %hi(gMemoryPools) # $t8, 0x8012 -/* 071964 80070D64 AFA20028 */ sw $v0, 0x28($sp) -/* 071968 80070D68 27183580 */ addiu $t8, %lo(gMemoryPools) # addiu $t8, $t8, 0x3580 -/* 07196C 80070D6C 000E7900 */ sll $t7, $t6, 4 -/* 071970 80070D70 01F81021 */ addu $v0, $t7, $t8 -/* 071974 80070D74 8C590004 */ lw $t9, 4($v0) -/* 071978 80070D78 8C4B0000 */ lw $t3, ($v0) -/* 07197C 80070D7C 272A0001 */ addiu $t2, $t9, 1 -/* 071980 80070D80 154B0006 */ bne $t2, $t3, .L80070D9C -/* 071984 80070D84 322C000F */ andi $t4, $s1, 0xf -/* 071988 80070D88 8FA40028 */ lw $a0, 0x28($sp) -/* 07198C 80070D8C 0C01BD4F */ jal set_status_register_flags -/* 071990 80070D90 00000000 */ nop -/* 071994 80070D94 10000039 */ b .L80070E7C -/* 071998 80070D98 00001025 */ move $v0, $zero -.L80070D9C: -/* 07199C 80070D9C 11800004 */ beqz $t4, .L80070DB0 -/* 0719A0 80070DA0 2410FFFF */ li $s0, -1 -/* 0719A4 80070DA4 2401FFF0 */ li $at, -16 -/* 0719A8 80070DA8 02216824 */ and $t5, $s1, $at -/* 0719AC 80070DAC 25B10010 */ addiu $s1, $t5, 0x10 -.L80070DB0: -/* 0719B0 80070DB0 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff -/* 0719B4 80070DB4 8C490008 */ lw $t1, 8($v0) -/* 0719B8 80070DB8 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff -/* 0719BC 80070DBC 00002025 */ move $a0, $zero -/* 0719C0 80070DC0 24080014 */ li $t0, 20 -/* 0719C4 80070DC4 2407FFFF */ li $a3, -1 -.L80070DC8: -/* 0719C8 80070DC8 00880019 */ multu $a0, $t0 -/* 0719CC 80070DCC 00007012 */ mflo $t6 -/* 0719D0 80070DD0 01C91021 */ addu $v0, $t6, $t1 -/* 0719D4 80070DD4 844F0008 */ lh $t7, 8($v0) -/* 0719D8 80070DD8 00402825 */ move $a1, $v0 -/* 0719DC 80070DDC 15E0000A */ bnez $t7, .L80070E08 -/* 0719E0 80070DE0 00000000 */ nop -/* 0719E4 80070DE4 8C430004 */ lw $v1, 4($v0) -/* 0719E8 80070DE8 00000000 */ nop -/* 0719EC 80070DEC 0071082A */ slt $at, $v1, $s1 -/* 0719F0 80070DF0 14200005 */ bnez $at, .L80070E08 -/* 0719F4 80070DF4 0066082A */ slt $at, $v1, $a2 -/* 0719F8 80070DF8 10200003 */ beqz $at, .L80070E08 -/* 0719FC 80070DFC 00000000 */ nop -/* 071A00 80070E00 00603025 */ move $a2, $v1 -/* 071A04 80070E04 00808025 */ move $s0, $a0 -.L80070E08: -/* 071A08 80070E08 84A4000C */ lh $a0, 0xc($a1) -/* 071A0C 80070E0C 00000000 */ nop -/* 071A10 80070E10 1487FFED */ bne $a0, $a3, .L80070DC8 -/* 071A14 80070E14 00000000 */ nop -/* 071A18 80070E18 12070014 */ beq $s0, $a3, .L80070E6C -/* 071A1C 80070E1C 02002825 */ move $a1, $s0 -/* 071A20 80070E20 8FB80048 */ lw $t8, 0x48($sp) -/* 071A24 80070E24 8FA40040 */ lw $a0, 0x40($sp) -/* 071A28 80070E28 02203025 */ move $a2, $s1 -/* 071A2C 80070E2C 24070001 */ li $a3, 1 -/* 071A30 80070E30 AFA00010 */ sw $zero, 0x10($sp) -/* 071A34 80070E34 AFA9002C */ sw $t1, 0x2c($sp) -/* 071A38 80070E38 0C01C5E3 */ jal allocate_memory_pool_slot -/* 071A3C 80070E3C AFB80014 */ sw $t8, 0x14($sp) -/* 071A40 80070E40 8FA40028 */ lw $a0, 0x28($sp) -/* 071A44 80070E44 0C01BD4F */ jal set_status_register_flags -/* 071A48 80070E48 00000000 */ nop -/* 071A4C 80070E4C 24080014 */ li $t0, 20 -/* 071A50 80070E50 02080019 */ multu $s0, $t0 -/* 071A54 80070E54 8FA9002C */ lw $t1, 0x2c($sp) -/* 071A58 80070E58 0000C812 */ mflo $t9 -/* 071A5C 80070E5C 03295021 */ addu $t2, $t9, $t1 -/* 071A60 80070E60 8D420000 */ lw $v0, ($t2) -/* 071A64 80070E64 10000006 */ b .L80070E80 -/* 071A68 80070E68 8FBF0024 */ lw $ra, 0x24($sp) -.L80070E6C: -/* 071A6C 80070E6C 8FA40028 */ lw $a0, 0x28($sp) -/* 071A70 80070E70 0C01BD4F */ jal set_status_register_flags -/* 071A74 80070E74 00000000 */ nop -/* 071A78 80070E78 00001025 */ move $v0, $zero -.L80070E7C: -/* 071A7C 80070E7C 8FBF0024 */ lw $ra, 0x24($sp) -.L80070E80: -/* 071A80 80070E80 8FB0001C */ lw $s0, 0x1c($sp) -/* 071A84 80070E84 8FB10020 */ lw $s1, 0x20($sp) -/* 071A88 80070E88 03E00008 */ jr $ra -/* 071A8C 80070E8C 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/memory/allocate_memory_pool_slot.s b/asm/non_matchings/memory/allocate_memory_pool_slot.s deleted file mode 100644 index 4f78edeb..00000000 --- a/asm/non_matchings/memory/allocate_memory_pool_slot.s +++ /dev/null @@ -1,54 +0,0 @@ -glabel allocate_memory_pool_slot -/* 07238C 8007178C 240B0014 */ li $t3, 20 -/* 072390 80071790 00AB0019 */ multu $a1, $t3 -/* 072394 80071794 3C0F8012 */ lui $t7, %hi(gMemoryPools) # $t7, 0x8012 -/* 072398 80071798 25EF3580 */ addiu $t7, %lo(gMemoryPools) # addiu $t7, $t7, 0x3580 -/* 07239C 8007179C 00047100 */ sll $t6, $a0, 4 -/* 0723A0 800717A0 01CF1821 */ addu $v1, $t6, $t7 -/* 0723A4 800717A4 8C620008 */ lw $v0, 8($v1) -/* 0723A8 800717A8 0000C012 */ mflo $t8 -/* 0723AC 800717AC 00584021 */ addu $t0, $v0, $t8 -/* 0723B0 800717B0 8D090004 */ lw $t1, 4($t0) -/* 0723B4 800717B4 A5070008 */ sh $a3, 8($t0) -/* 0723B8 800717B8 AD060004 */ sw $a2, 4($t0) -/* 0723BC 800717BC 8FB90014 */ lw $t9, 0x14($sp) -/* 0723C0 800717C0 00C9082A */ slt $at, $a2, $t1 -/* 0723C4 800717C4 1020001F */ beqz $at, .L80071844 -/* 0723C8 800717C8 AD190010 */ sw $t9, 0x10($t0) -/* 0723CC 800717CC 8C670004 */ lw $a3, 4($v1) -/* 0723D0 800717D0 2401FFFF */ li $at, -1 -/* 0723D4 800717D4 00EB0019 */ multu $a3, $t3 -/* 0723D8 800717D8 24EE0001 */ addiu $t6, $a3, 1 -/* 0723DC 800717DC 00006012 */ mflo $t4 -/* 0723E0 800717E0 01826821 */ addu $t5, $t4, $v0 -/* 0723E4 800717E4 85A4000E */ lh $a0, 0xe($t5) -/* 0723E8 800717E8 AC6E0004 */ sw $t6, 4($v1) -/* 0723EC 800717EC 008B0019 */ multu $a0, $t3 -/* 0723F0 800717F0 8D180000 */ lw $t8, ($t0) -/* 0723F4 800717F4 01266023 */ subu $t4, $t1, $a2 -/* 0723F8 800717F8 0306C821 */ addu $t9, $t8, $a2 -/* 0723FC 800717FC 00007812 */ mflo $t7 -/* 072400 80071800 004F5021 */ addu $t2, $v0, $t7 -/* 072404 80071804 AD590000 */ sw $t9, ($t2) -/* 072408 80071808 AD4C0004 */ sw $t4, 4($t2) -/* 07240C 8007180C 8FAD0010 */ lw $t5, 0x10($sp) -/* 072410 80071810 00000000 */ nop -/* 072414 80071814 A54D0008 */ sh $t5, 8($t2) -/* 072418 80071818 8509000C */ lh $t1, 0xc($t0) -/* 07241C 8007181C A545000A */ sh $a1, 0xa($t2) -/* 072420 80071820 A549000C */ sh $t1, 0xc($t2) -/* 072424 80071824 11210005 */ beq $t1, $at, .L8007183C -/* 072428 80071828 A504000C */ sh $a0, 0xc($t0) -/* 07242C 8007182C 012B0019 */ multu $t1, $t3 -/* 072430 80071830 00007012 */ mflo $t6 -/* 072434 80071834 004E7821 */ addu $t7, $v0, $t6 -/* 072438 80071838 A5E4000A */ sh $a0, 0xa($t7) -.L8007183C: -/* 07243C 8007183C 03E00008 */ jr $ra -/* 072440 80071840 00801025 */ move $v0, $a0 - -.L80071844: -/* 072444 80071844 00A01025 */ move $v0, $a1 -/* 072448 80071848 03E00008 */ jr $ra -/* 07244C 8007184C 00000000 */ nop - diff --git a/asm/non_matchings/memory/free_memory_pool_slot.s b/asm/non_matchings/memory/free_memory_pool_slot.s deleted file mode 100644 index 79de2c3f..00000000 --- a/asm/non_matchings/memory/free_memory_pool_slot.s +++ /dev/null @@ -1,80 +0,0 @@ -glabel free_memory_pool_slot -/* 07224C 8007164C 240A0014 */ li $t2, 20 -/* 072250 80071650 00AA0019 */ multu $a1, $t2 -/* 072254 80071654 3C0F8012 */ lui $t7, %hi(gMemoryPools) # $t7, 0x8012 -/* 072258 80071658 25EF3580 */ addiu $t7, %lo(gMemoryPools) # addiu $t7, $t7, 0x3580 -/* 07225C 8007165C 00047100 */ sll $t6, $a0, 4 -/* 072260 80071660 01CF1821 */ addu $v1, $t6, $t7 -/* 072264 80071664 8C620008 */ lw $v0, 8($v1) -/* 072268 80071668 240BFFFF */ li $t3, -1 -/* 07226C 8007166C 0000C012 */ mflo $t8 -/* 072270 80071670 03023821 */ addu $a3, $t8, $v0 -/* 072274 80071674 84E6000C */ lh $a2, 0xc($a3) -/* 072278 80071678 84E8000A */ lh $t0, 0xa($a3) -/* 07227C 8007167C 10CB001D */ beq $a2, $t3, .L800716F4 -/* 072280 80071680 A4E00008 */ sh $zero, 8($a3) -/* 072284 80071684 00CA0019 */ multu $a2, $t2 -/* 072288 80071688 0000C812 */ mflo $t9 -/* 07228C 8007168C 03222021 */ addu $a0, $t9, $v0 -/* 072290 80071690 848C0008 */ lh $t4, 8($a0) -/* 072294 80071694 00000000 */ nop -/* 072298 80071698 15800016 */ bnez $t4, .L800716F4 -/* 07229C 8007169C 00000000 */ nop -/* 0722A0 800716A0 8CED0004 */ lw $t5, 4($a3) -/* 0722A4 800716A4 8C8E0004 */ lw $t6, 4($a0) -/* 0722A8 800716A8 00000000 */ nop -/* 0722AC 800716AC 01AE7821 */ addu $t7, $t5, $t6 -/* 0722B0 800716B0 ACEF0004 */ sw $t7, 4($a3) -/* 0722B4 800716B4 8489000C */ lh $t1, 0xc($a0) -/* 0722B8 800716B8 00000000 */ nop -/* 0722BC 800716BC 112B0005 */ beq $t1, $t3, .L800716D4 -/* 0722C0 800716C0 A4E9000C */ sh $t1, 0xc($a3) -/* 0722C4 800716C4 012A0019 */ multu $t1, $t2 -/* 0722C8 800716C8 0000C012 */ mflo $t8 -/* 0722CC 800716CC 0058C821 */ addu $t9, $v0, $t8 -/* 0722D0 800716D0 A725000A */ sh $a1, 0xa($t9) -.L800716D4: -/* 0722D4 800716D4 8C6C0004 */ lw $t4, 4($v1) -/* 0722D8 800716D8 00000000 */ nop -/* 0722DC 800716DC 258DFFFF */ addiu $t5, $t4, -1 -/* 0722E0 800716E0 01AA0019 */ multu $t5, $t2 -/* 0722E4 800716E4 AC6D0004 */ sw $t5, 4($v1) -/* 0722E8 800716E8 00007812 */ mflo $t7 -/* 0722EC 800716EC 004FC021 */ addu $t8, $v0, $t7 -/* 0722F0 800716F0 A706000E */ sh $a2, 0xe($t8) -.L800716F4: -/* 0722F4 800716F4 110B001D */ beq $t0, $t3, .L8007176C -/* 0722F8 800716F8 00000000 */ nop -/* 0722FC 800716FC 010A0019 */ multu $t0, $t2 -/* 072300 80071700 0000C812 */ mflo $t9 -/* 072304 80071704 03222021 */ addu $a0, $t9, $v0 -/* 072308 80071708 848C0008 */ lh $t4, 8($a0) -/* 07230C 8007170C 00000000 */ nop -/* 072310 80071710 15800016 */ bnez $t4, .L8007176C -/* 072314 80071714 00000000 */ nop -/* 072318 80071718 8C8D0004 */ lw $t5, 4($a0) -/* 07231C 8007171C 8CEE0004 */ lw $t6, 4($a3) -/* 072320 80071720 00000000 */ nop -/* 072324 80071724 01AE7821 */ addu $t7, $t5, $t6 -/* 072328 80071728 AC8F0004 */ sw $t7, 4($a0) -/* 07232C 8007172C 84E9000C */ lh $t1, 0xc($a3) -/* 072330 80071730 00000000 */ nop -/* 072334 80071734 112B0005 */ beq $t1, $t3, .L8007174C -/* 072338 80071738 A489000C */ sh $t1, 0xc($a0) -/* 07233C 8007173C 012A0019 */ multu $t1, $t2 -/* 072340 80071740 0000C012 */ mflo $t8 -/* 072344 80071744 0058C821 */ addu $t9, $v0, $t8 -/* 072348 80071748 A728000A */ sh $t0, 0xa($t9) -.L8007174C: -/* 07234C 8007174C 8C6C0004 */ lw $t4, 4($v1) -/* 072350 80071750 00000000 */ nop -/* 072354 80071754 258DFFFF */ addiu $t5, $t4, -1 -/* 072358 80071758 01AA0019 */ multu $t5, $t2 -/* 07235C 8007175C AC6D0004 */ sw $t5, 4($v1) -/* 072360 80071760 00007812 */ mflo $t7 -/* 072364 80071764 004FC021 */ addu $t8, $v0, $t7 -/* 072368 80071768 A705000E */ sh $a1, 0xe($t8) -.L8007176C: -/* 07236C 8007176C 03E00008 */ jr $ra -/* 072370 80071770 00000000 */ nop - diff --git a/asm/non_matchings/memory/free_slot_containing_address.s b/asm/non_matchings/memory/free_slot_containing_address.s deleted file mode 100644 index 4cff902e..00000000 --- a/asm/non_matchings/memory/free_slot_containing_address.s +++ /dev/null @@ -1,44 +0,0 @@ -glabel free_slot_containing_address -/* 071E78 80071278 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 071E7C 8007127C AFBF0014 */ sw $ra, 0x14($sp) -/* 071E80 80071280 0C01C57B */ jal get_memory_pool_index_containing_address -/* 071E84 80071284 AFA40020 */ sw $a0, 0x20($sp) -/* 071E88 80071288 00027100 */ sll $t6, $v0, 4 -/* 071E8C 8007128C 3C038012 */ lui $v1, %hi(gMemoryPools+8) # $v1, 0x8012 -/* 071E90 80071290 006E1821 */ addu $v1, $v1, $t6 -/* 071E94 80071294 8FA40020 */ lw $a0, 0x20($sp) -/* 071E98 80071298 8C633588 */ lw $v1, %lo(gMemoryPools+8)($v1) -/* 071E9C 8007129C AFA20018 */ sw $v0, 0x18($sp) -/* 071EA0 800712A0 00002825 */ move $a1, $zero -/* 071EA4 800712A4 2407FFFF */ li $a3, -1 -/* 071EA8 800712A8 24060014 */ li $a2, 20 -.L800712AC: -/* 071EAC 800712AC 00A60019 */ multu $a1, $a2 -/* 071EB0 800712B0 00007812 */ mflo $t7 -/* 071EB4 800712B4 01E31021 */ addu $v0, $t7, $v1 -/* 071EB8 800712B8 8C580000 */ lw $t8, ($v0) -/* 071EBC 800712BC 00000000 */ nop -/* 071EC0 800712C0 1498000C */ bne $a0, $t8, .L800712F4 -/* 071EC4 800712C4 00000000 */ nop -/* 071EC8 800712C8 84430008 */ lh $v1, 8($v0) -/* 071ECC 800712CC 24010001 */ li $at, 1 -/* 071ED0 800712D0 10610003 */ beq $v1, $at, .L800712E0 -/* 071ED4 800712D4 24010004 */ li $at, 4 -/* 071ED8 800712D8 1461000B */ bne $v1, $at, .L80071308 -/* 071EDC 800712DC 8FBF0014 */ lw $ra, 0x14($sp) -.L800712E0: -/* 071EE0 800712E0 8FA40018 */ lw $a0, 0x18($sp) -/* 071EE4 800712E4 0C01C593 */ jal free_memory_pool_slot -/* 071EE8 800712E8 00000000 */ nop -/* 071EEC 800712EC 10000006 */ b .L80071308 -/* 071EF0 800712F0 8FBF0014 */ lw $ra, 0x14($sp) -.L800712F4: -/* 071EF4 800712F4 8445000C */ lh $a1, 0xc($v0) -/* 071EF8 800712F8 00000000 */ nop -/* 071EFC 800712FC 14A7FFEB */ bne $a1, $a3, .L800712AC -/* 071F00 80071300 00000000 */ nop -/* 071F04 80071304 8FBF0014 */ lw $ra, 0x14($sp) -.L80071308: -/* 071F08 80071308 27BD0020 */ addiu $sp, $sp, 0x20 -/* 071F0C 8007130C 03E00008 */ jr $ra -/* 071F10 80071310 00000000 */ nop diff --git a/asm/non_matchings/memory/func_80071314.s b/asm/non_matchings/memory/func_80071314.s deleted file mode 100644 index 5ea80a3f..00000000 --- a/asm/non_matchings/memory/func_80071314.s +++ /dev/null @@ -1,85 +0,0 @@ -glabel func_80071314 -/* 071F14 80071314 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 071F18 80071318 AFBF003C */ sw $ra, 0x3c($sp) -/* 071F1C 8007131C AFBE0038 */ sw $fp, 0x38($sp) -/* 071F20 80071320 AFB70034 */ sw $s7, 0x34($sp) -/* 071F24 80071324 AFB60030 */ sw $s6, 0x30($sp) -/* 071F28 80071328 AFB5002C */ sw $s5, 0x2c($sp) -/* 071F2C 8007132C AFB40028 */ sw $s4, 0x28($sp) -/* 071F30 80071330 AFB30024 */ sw $s3, 0x24($sp) -/* 071F34 80071334 AFB20020 */ sw $s2, 0x20($sp) -/* 071F38 80071338 AFB1001C */ sw $s1, 0x1c($sp) -/* 071F3C 8007133C 0C01BD44 */ jal clear_status_register_flags -/* 071F40 80071340 AFB00018 */ sw $s0, 0x18($sp) -/* 071F44 80071344 3C128012 */ lui $s2, %hi(gNumberOfMemoryPools) # $s2, 0x8012 -/* 071F48 80071348 8E5235C0 */ lw $s2, %lo(gNumberOfMemoryPools)($s2) -/* 071F4C 8007134C 2416FFFF */ li $s6, -1 -/* 071F50 80071350 1256002C */ beq $s2, $s6, .L80071404 -/* 071F54 80071354 AFA20040 */ sw $v0, 0x40($sp) -/* 071F58 80071358 3C0F8012 */ lui $t7, %hi(gMemoryPools) # $t7, 0x8012 -/* 071F5C 8007135C 25EF3580 */ addiu $t7, %lo(gMemoryPools) # addiu $t7, $t7, 0x3580 -/* 071F60 80071360 00127100 */ sll $t6, $s2, 4 -/* 071F64 80071364 01CFA821 */ addu $s5, $t6, $t7 -/* 071F68 80071368 241E0004 */ li $fp, 4 -/* 071F6C 8007136C 24170014 */ li $s7, 20 -/* 071F70 80071370 24130001 */ li $s3, 1 -.L80071374: -/* 071F74 80071374 8EB40008 */ lw $s4, 8($s5) -/* 071F78 80071378 00008025 */ move $s0, $zero -.L8007137C: -/* 071F7C 8007137C 02170019 */ multu $s0, $s7 -/* 071F80 80071380 02402025 */ move $a0, $s2 -/* 071F84 80071384 0000C012 */ mflo $t8 -/* 071F88 80071388 03148821 */ addu $s1, $t8, $s4 -/* 071F8C 8007138C 86220008 */ lh $v0, 8($s1) -/* 071F90 80071390 00000000 */ nop -/* 071F94 80071394 16620005 */ bne $s3, $v0, .L800713AC -/* 071F98 80071398 00000000 */ nop -/* 071F9C 8007139C 0C01C593 */ jal free_memory_pool_slot -/* 071FA0 800713A0 02002825 */ move $a1, $s0 -/* 071FA4 800713A4 86220008 */ lh $v0, 8($s1) -/* 071FA8 800713A8 00000000 */ nop -.L800713AC: -/* 071FAC 800713AC 17C2000E */ bne $fp, $v0, .L800713E8 -/* 071FB0 800713B0 02402025 */ move $a0, $s2 -/* 071FB4 800713B4 8EB90004 */ lw $t9, 4($s5) -/* 071FB8 800713B8 00000000 */ nop -/* 071FBC 800713BC 16790005 */ bne $s3, $t9, .L800713D4 -/* 071FC0 800713C0 00000000 */ nop -/* 071FC4 800713C4 0C01C593 */ jal free_memory_pool_slot -/* 071FC8 800713C8 02002825 */ move $a1, $s0 -/* 071FCC 800713CC 10000007 */ b .L800713EC -/* 071FD0 800713D0 8630000C */ lh $s0, 0xc($s1) -.L800713D4: -/* 071FD4 800713D4 8FA40040 */ lw $a0, 0x40($sp) -/* 071FD8 800713D8 0C01BD4F */ jal set_status_register_flags -/* 071FDC 800713DC 00000000 */ nop -/* 071FE0 800713E0 1000000C */ b .L80071414 -/* 071FE4 800713E4 8FBF003C */ lw $ra, 0x3c($sp) -.L800713E8: -/* 071FE8 800713E8 8630000C */ lh $s0, 0xc($s1) -.L800713EC: -/* 071FEC 800713EC 00000000 */ nop -/* 071FF0 800713F0 1616FFE2 */ bne $s0, $s6, .L8007137C -/* 071FF4 800713F4 00000000 */ nop -/* 071FF8 800713F8 2652FFFF */ addiu $s2, $s2, -1 -/* 071FFC 800713FC 1656FFDD */ bne $s2, $s6, .L80071374 -/* 072000 80071400 26B5FFF0 */ addiu $s5, $s5, -0x10 -.L80071404: -/* 072004 80071404 8FA40040 */ lw $a0, 0x40($sp) -/* 072008 80071408 0C01BD4F */ jal set_status_register_flags -/* 07200C 8007140C 00000000 */ nop -/* 072010 80071410 8FBF003C */ lw $ra, 0x3c($sp) -.L80071414: -/* 072014 80071414 8FB00018 */ lw $s0, 0x18($sp) -/* 072018 80071418 8FB1001C */ lw $s1, 0x1c($sp) -/* 07201C 8007141C 8FB20020 */ lw $s2, 0x20($sp) -/* 072020 80071420 8FB30024 */ lw $s3, 0x24($sp) -/* 072024 80071424 8FB40028 */ lw $s4, 0x28($sp) -/* 072028 80071428 8FB5002C */ lw $s5, 0x2c($sp) -/* 07202C 8007142C 8FB60030 */ lw $s6, 0x30($sp) -/* 072030 80071430 8FB70034 */ lw $s7, 0x34($sp) -/* 072034 80071434 8FBE0038 */ lw $fp, 0x38($sp) -/* 072038 80071438 03E00008 */ jr $ra -/* 07203C 8007143C 27BD0050 */ addiu $sp, $sp, 0x50 - diff --git a/asm/non_matchings/memory/func_800718A4.s b/asm/non_matchings/memory/func_800718A4.s deleted file mode 100644 index 57c30ffb..00000000 --- a/asm/non_matchings/memory/func_800718A4.s +++ /dev/null @@ -1,110 +0,0 @@ -# Unused -glabel func_800718A4 -/* 0724A4 800718A4 27BDFDC8 */ addiu $sp, $sp, -0x238 -/* 0724A8 800718A8 AFB00004 */ sw $s0, 4($sp) -/* 0724AC 800718AC 00001025 */ move $v0, $zero -/* 0724B0 800718B0 27A40138 */ addiu $a0, $sp, 0x138 -/* 0724B4 800718B4 27A50038 */ addiu $a1, $sp, 0x38 -/* 0724B8 800718B8 27A30138 */ addiu $v1, $sp, 0x138 -.L800718BC: -/* 0724BC 800718BC 24A50010 */ addiu $a1, $a1, 0x10 -/* 0724C0 800718C0 AC800004 */ sw $zero, 4($a0) -/* 0724C4 800718C4 ACA0FFF4 */ sw $zero, -0xc($a1) -/* 0724C8 800718C8 AC800008 */ sw $zero, 8($a0) -/* 0724CC 800718CC ACA0FFF8 */ sw $zero, -8($a1) -/* 0724D0 800718D0 AC80000C */ sw $zero, 0xc($a0) -/* 0724D4 800718D4 ACA0FFFC */ sw $zero, -4($a1) -/* 0724D8 800718D8 24840010 */ addiu $a0, $a0, 0x10 -/* 0724DC 800718DC AC80FFF0 */ sw $zero, -0x10($a0) -/* 0724E0 800718E0 14A3FFF6 */ bne $a1, $v1, .L800718BC -/* 0724E4 800718E4 ACA0FFF0 */ sw $zero, -0x10($a1) -/* 0724E8 800718E8 3C048012 */ lui $a0, %hi(gNumberOfMemoryPools) # $a0, 0x8012 -/* 0724EC 800718EC 8C8435C0 */ lw $a0, %lo(gNumberOfMemoryPools)($a0) -/* 0724F0 800718F0 3C0E8012 */ lui $t6, %hi(gMemoryPools) # $t6, 0x8012 -/* 0724F4 800718F4 1880003B */ blez $a0, .L800719E4 -/* 0724F8 800718F8 25C53580 */ addiu $a1, $t6, %lo(gMemoryPools) -/* 0724FC 800718FC 00047900 */ sll $t7, $a0, 4 -/* 072500 80071900 01E55021 */ addu $t2, $t7, $a1 -/* 072504 80071904 24100014 */ li $s0, 20 -/* 072508 80071908 240DFFFF */ li $t5, -1 -/* 07250C 8007190C 27AC0038 */ addiu $t4, $sp, 0x38 -/* 072510 80071910 27AB0138 */ addiu $t3, $sp, 0x138 -.L80071914: -/* 072514 80071914 8CA40008 */ lw $a0, 8($a1) -/* 072518 80071918 00000000 */ nop -/* 07251C 8007191C 00801825 */ move $v1, $a0 -.L80071920: -/* 072520 80071920 84780008 */ lh $t8, 8($v1) -/* 072524 80071924 00000000 */ nop -/* 072528 80071928 13000020 */ beqz $t8, .L800719AC -/* 07252C 8007192C 00000000 */ nop -/* 072530 80071930 8C660010 */ lw $a2, 0x10($v1) -/* 072534 80071934 8FB90138 */ lw $t9, 0x138($sp) -/* 072538 80071938 10C0001C */ beqz $a2, .L800719AC -/* 07253C 8007193C 00C03825 */ move $a3, $a2 -/* 072540 80071940 10D9000E */ beq $a2, $t9, .L8007197C -/* 072544 80071944 00004025 */ move $t0, $zero -/* 072548 80071948 1320000D */ beqz $t9, .L80071980 -/* 07254C 8007194C 29010040 */ slti $at, $t0, 0x40 -.L80071950: -/* 072550 80071950 25080001 */ addiu $t0, $t0, 1 -/* 072554 80071954 29010040 */ slti $at, $t0, 0x40 -/* 072558 80071958 10200008 */ beqz $at, .L8007197C -/* 07255C 8007195C 00087880 */ sll $t7, $t0, 2 -/* 072560 80071960 016F7021 */ addu $t6, $t3, $t7 -/* 072564 80071964 8DC60000 */ lw $a2, ($t6) -/* 072568 80071968 00000000 */ nop -/* 07256C 8007196C 10E60004 */ beq $a3, $a2, .L80071980 -/* 072570 80071970 29010040 */ slti $at, $t0, 0x40 -/* 072574 80071974 14C0FFF6 */ bnez $a2, .L80071950 -/* 072578 80071978 00000000 */ nop -.L8007197C: -/* 07257C 8007197C 29010040 */ slti $at, $t0, 0x40 -.L80071980: -/* 072580 80071980 10200009 */ beqz $at, .L800719A8 -/* 072584 80071984 00083080 */ sll $a2, $t0, 2 -/* 072588 80071988 0166C021 */ addu $t8, $t3, $a2 -/* 07258C 8007198C AF070000 */ sw $a3, ($t8) -/* 072590 80071990 01864821 */ addu $t1, $t4, $a2 -/* 072594 80071994 8D390000 */ lw $t9, ($t1) -/* 072598 80071998 00000000 */ nop -/* 07259C 8007199C 272F0001 */ addiu $t7, $t9, 1 -/* 0725A0 800719A0 10000002 */ b .L800719AC -/* 0725A4 800719A4 AD2F0000 */ sw $t7, ($t1) -.L800719A8: -/* 0725A8 800719A8 24420001 */ addiu $v0, $v0, 1 -.L800719AC: -/* 0725AC 800719AC 8467000C */ lh $a3, 0xc($v1) -/* 0725B0 800719B0 00000000 */ nop -/* 0725B4 800719B4 10ED0005 */ beq $a3, $t5, .L800719CC -/* 0725B8 800719B8 00E03025 */ move $a2, $a3 -/* 0725BC 800719BC 00F00019 */ multu $a3, $s0 -/* 0725C0 800719C0 00007012 */ mflo $t6 -/* 0725C4 800719C4 008E1821 */ addu $v1, $a0, $t6 -/* 0725C8 800719C8 00000000 */ nop -.L800719CC: -/* 0725CC 800719CC 14CDFFD4 */ bne $a2, $t5, .L80071920 -/* 0725D0 800719D0 00000000 */ nop -/* 0725D4 800719D4 24A50010 */ addiu $a1, $a1, 0x10 -/* 0725D8 800719D8 00AA082B */ sltu $at, $a1, $t2 -/* 0725DC 800719DC 1420FFCD */ bnez $at, .L80071914 -/* 0725E0 800719E0 00000000 */ nop -.L800719E4: -/* 0725E4 800719E4 8FB80138 */ lw $t8, 0x138($sp) -/* 0725E8 800719E8 8FB00004 */ lw $s0, 4($sp) -/* 0725EC 800719EC 1300000B */ beqz $t8, .L80071A1C -/* 0725F0 800719F0 00001025 */ move $v0, $zero -/* 0725F4 800719F4 0000C880 */ sll $t9, $zero, 2 -/* 0725F8 800719F8 27AF0138 */ addiu $t7, $sp, 0x138 -/* 0725FC 800719FC 032F2021 */ addu $a0, $t9, $t7 -/* 072600 80071A00 27A30238 */ addiu $v1, $sp, 0x238 -.L80071A04: -/* 072604 80071A04 8C8E0004 */ lw $t6, 4($a0) -/* 072608 80071A08 24840004 */ addiu $a0, $a0, 4 -/* 07260C 80071A0C 11C00003 */ beqz $t6, .L80071A1C -/* 072610 80071A10 00000000 */ nop -/* 072614 80071A14 1483FFFB */ bne $a0, $v1, .L80071A04 -/* 072618 80071A18 00000000 */ nop -.L80071A1C: -/* 07261C 80071A1C 03E00008 */ jr $ra -/* 072620 80071A20 27BD0238 */ addiu $sp, $sp, 0x238 \ No newline at end of file diff --git a/asm/non_matchings/memory/func_80071C74.s b/asm/non_matchings/memory/func_80071C74.s deleted file mode 100644 index 5ed68067..00000000 --- a/asm/non_matchings/memory/func_80071C74.s +++ /dev/null @@ -1,37 +0,0 @@ -# Unused? - -glabel func_80071C74 -/* 072874 80071C74 3C038012 */ lui $v1, %hi(gNumberOfMemoryPools) # $v1, 0x8012 -/* 072878 80071C78 8C6335C0 */ lw $v1, %lo(gNumberOfMemoryPools)($v1) -/* 07287C 80071C7C 3C0E8012 */ lui $t6, %hi(gMemoryPools) # $t6, 0x8012 -/* 072880 80071C80 04600017 */ bltz $v1, .L80071CE0 -/* 072884 80071C84 25C43580 */ addiu $a0, $t6, %lo(gMemoryPools) -/* 072888 80071C88 00037900 */ sll $t7, $v1, 4 -/* 07288C 80071C8C 01E44021 */ addu $t0, $t7, $a0 -/* 072890 80071C90 240C0014 */ li $t4, 20 -/* 072894 80071C94 240BFFFF */ li $t3, -1 -.L80071C98: -/* 072898 80071C98 8C830008 */ lw $v1, 8($a0) -/* 07289C 80071C9C 24840010 */ addiu $a0, $a0, 0x10 -/* 0728A0 80071CA0 00601025 */ move $v0, $v1 -.L80071CA4: -/* 0728A4 80071CA4 84450008 */ lh $a1, 8($v0) -/* 0728A8 80071CA8 8447000C */ lh $a3, 0xc($v0) -/* 0728AC 80071CAC 10A00001 */ beqz $a1, .L80071CB4 -/* 0728B0 80071CB0 00E03025 */ move $a2, $a3 -.L80071CB4: -/* 0728B4 80071CB4 10CB0005 */ beq $a2, $t3, .L80071CCC -/* 0728B8 80071CB8 00000000 */ nop -/* 0728BC 80071CBC 00EC0019 */ multu $a3, $t4 -/* 0728C0 80071CC0 0000C012 */ mflo $t8 -/* 0728C4 80071CC4 00781021 */ addu $v0, $v1, $t8 -/* 0728C8 80071CC8 00000000 */ nop -.L80071CCC: -/* 0728CC 80071CCC 14CBFFF5 */ bne $a2, $t3, .L80071CA4 -/* 0728D0 80071CD0 00000000 */ nop -/* 0728D4 80071CD4 0104082B */ sltu $at, $t0, $a0 -/* 0728D8 80071CD8 1020FFEF */ beqz $at, .L80071C98 -/* 0728DC 80071CDC 00000000 */ nop -.L80071CE0: -/* 0728E0 80071CE0 03E00008 */ jr $ra -/* 0728E4 80071CE4 00000000 */ nop \ No newline at end of file diff --git a/asm/non_matchings/memory/get_memory_colour_tag_count.s b/asm/non_matchings/memory/get_memory_colour_tag_count.s deleted file mode 100644 index 50d98469..00000000 --- a/asm/non_matchings/memory/get_memory_colour_tag_count.s +++ /dev/null @@ -1,51 +0,0 @@ -glabel get_memory_colour_tag_count -/* 072624 80071A24 3C028012 */ lui $v0, %hi(gMemoryPools+8) # $v0, 0x8012 -/* 072628 80071A28 8C423588 */ lw $v0, %lo(gMemoryPools+8)($v0) -/* 07262C 80071A2C 00001825 */ move $v1, $zero -/* 072630 80071A30 00002825 */ move $a1, $zero -/* 072634 80071A34 24060640 */ li $a2, 1600 -.L80071A38: -/* 072638 80071A38 844E0008 */ lh $t6, 8($v0) -/* 07263C 80071A3C 24A50004 */ addiu $a1, $a1, 4 -/* 072640 80071A40 11C00006 */ beqz $t6, .L80071A5C -/* 072644 80071A44 00000000 */ nop -/* 072648 80071A48 8C4F0010 */ lw $t7, 0x10($v0) -/* 07264C 80071A4C 00000000 */ nop -/* 072650 80071A50 148F0002 */ bne $a0, $t7, .L80071A5C -/* 072654 80071A54 00000000 */ nop -/* 072658 80071A58 24630001 */ addiu $v1, $v1, 1 -.L80071A5C: -/* 07265C 80071A5C 8458001C */ lh $t8, 0x1c($v0) -/* 072660 80071A60 24420014 */ addiu $v0, $v0, 0x14 -/* 072664 80071A64 13000006 */ beqz $t8, .L80071A80 -/* 072668 80071A68 00000000 */ nop -/* 07266C 80071A6C 8C590010 */ lw $t9, 0x10($v0) -/* 072670 80071A70 00000000 */ nop -/* 072674 80071A74 14990002 */ bne $a0, $t9, .L80071A80 -/* 072678 80071A78 00000000 */ nop -/* 07267C 80071A7C 24630001 */ addiu $v1, $v1, 1 -.L80071A80: -/* 072680 80071A80 8448001C */ lh $t0, 0x1c($v0) -/* 072684 80071A84 24420014 */ addiu $v0, $v0, 0x14 -/* 072688 80071A88 11000006 */ beqz $t0, .L80071AA4 -/* 07268C 80071A8C 00000000 */ nop -/* 072690 80071A90 8C490010 */ lw $t1, 0x10($v0) -/* 072694 80071A94 00000000 */ nop -/* 072698 80071A98 14890002 */ bne $a0, $t1, .L80071AA4 -/* 07269C 80071A9C 00000000 */ nop -/* 0726A0 80071AA0 24630001 */ addiu $v1, $v1, 1 -.L80071AA4: -/* 0726A4 80071AA4 844A001C */ lh $t2, 0x1c($v0) -/* 0726A8 80071AA8 24420014 */ addiu $v0, $v0, 0x14 -/* 0726AC 80071AAC 11400006 */ beqz $t2, .L80071AC8 -/* 0726B0 80071AB0 00000000 */ nop -/* 0726B4 80071AB4 8C4B0010 */ lw $t3, 0x10($v0) -/* 0726B8 80071AB8 00000000 */ nop -/* 0726BC 80071ABC 148B0002 */ bne $a0, $t3, .L80071AC8 -/* 0726C0 80071AC0 00000000 */ nop -/* 0726C4 80071AC4 24630001 */ addiu $v1, $v1, 1 -.L80071AC8: -/* 0726C8 80071AC8 14A6FFDB */ bne $a1, $a2, .L80071A38 -/* 0726CC 80071ACC 24420014 */ addiu $v0, $v0, 0x14 -/* 0726D0 80071AD0 03E00008 */ jr $ra -/* 0726D4 80071AD4 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/menu/draw_menu_elements.s b/asm/non_matchings/menu/draw_menu_elements.s index 26a75f68..3d92b59f 100644 --- a/asm/non_matchings/menu/draw_menu_elements.s +++ b/asm/non_matchings/menu/draw_menu_elements.s @@ -29,7 +29,7 @@ glabel draw_menu_elements /* 082E44 80082244 26D663A0 */ addiu $s6, %lo(sMenuCurrDisplayList) # addiu $s6, $s6, 0x63a0 /* 082E48 80082248 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 /* 082E4C 8008224C 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 082E50 80082250 0C019FCB */ jal func_80067F2C +/* 082E50 80082250 0C019FCB */ jal set_ortho_matrix_view /* 082E54 80082254 02C02025 */ move $a0, $s6 /* 082E58 80082258 8E110014 */ lw $s1, 0x14($s0) /* 082E5C 8008225C 3C013B80 */ li $at, 0x3B800000 # 0.003906 diff --git a/asm/non_matchings/menu/func_80084854.s b/asm/non_matchings/menu/func_80084854.s index ffbec9a6..986e057d 100644 --- a/asm/non_matchings/menu/func_80084854.s +++ b/asm/non_matchings/menu/func_80084854.s @@ -79,7 +79,7 @@ glabel func_80084854 /* 085574 80084974 000FC080 */ sll $t8, $t7, 2 /* 085578 80084978 0338C821 */ addu $t9, $t9, $t8 /* 08557C 8008497C 8F3969D0 */ lw $t9, %lo(gAudioOutputStrings)($t9) -/* 085580 80084980 0C019FCB */ jal func_80067F2C +/* 085580 80084980 0C019FCB */ jal set_ortho_matrix_view /* 085584 80084984 AC39FA48 */ sw $t9, %lo(gAudioMenuStrings+12)($at) /* 085588 80084988 3C088000 */ lui $t0, %hi(osTvType) # $t0, 0x8000 /* 08558C 8008498C 8D080300 */ lw $t0, %lo(osTvType)($t0) diff --git a/asm/non_matchings/menu/func_80085B9C.s b/asm/non_matchings/menu/func_80085B9C.s index 6ed1a284..05127ca3 100644 --- a/asm/non_matchings/menu/func_80085B9C.s +++ b/asm/non_matchings/menu/func_80085B9C.s @@ -59,7 +59,7 @@ glabel L80085C30 /* 08684C 80085C4C AFA6004C */ sw $a2, 0x4c($sp) /* 086850 80085C50 AFA70048 */ sw $a3, 0x48($sp) /* 086854 80085C54 AFA80044 */ sw $t0, 0x44($sp) -/* 086858 80085C58 0C019FCB */ jal func_80067F2C +/* 086858 80085C58 0C019FCB */ jal set_ortho_matrix_view /* 08685C 80085C5C AFA90040 */ sw $t1, 0x40($sp) /* 086860 80085C60 00002025 */ move $a0, $zero /* 086864 80085C64 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/menu/func_8008F618.s b/asm/non_matchings/menu/func_8008F618.s index 1f23f654..74917d22 100644 --- a/asm/non_matchings/menu/func_8008F618.s +++ b/asm/non_matchings/menu/func_8008F618.s @@ -20,7 +20,7 @@ glabel func_8008F618 /* 090260 8008F660 0C01988C */ jal func_80066230 /* 090264 8008F664 02002825 */ move $a1, $s0 /* 090268 8008F668 02C02025 */ move $a0, $s6 -/* 09026C 8008F66C 0C019FCB */ jal func_80067F2C +/* 09026C 8008F66C 0C019FCB */ jal set_ortho_matrix_view /* 090270 8008F670 02002825 */ move $a1, $s0 /* 090274 8008F674 0C01ECF4 */ jal reset_render_settings /* 090278 8008F678 02C02025 */ move $a0, $s6 diff --git a/asm/non_matchings/menu/func_8008FF1C.s b/asm/non_matchings/menu/func_8008FF1C.s index 8f462871..66e02faa 100644 --- a/asm/non_matchings/menu/func_8008FF1C.s +++ b/asm/non_matchings/menu/func_8008FF1C.s @@ -316,7 +316,7 @@ glabel func_8008FF1C /* 090FB4 800903B4 263163A0 */ addiu $s1, %lo(sMenuCurrDisplayList) # addiu $s1, $s1, 0x63a0 /* 090FB8 800903B8 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 /* 090FBC 800903BC 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 090FC0 800903C0 0C019FCB */ jal func_80067F2C +/* 090FC0 800903C0 0C019FCB */ jal set_ortho_matrix_view /* 090FC4 800903C4 02202025 */ move $a0, $s1 /* 090FC8 800903C8 0C01ECF4 */ jal reset_render_settings /* 090FCC 800903CC 02202025 */ move $a0, $s1 diff --git a/asm/non_matchings/menu/func_80094D28.s b/asm/non_matchings/menu/func_80094D28.s index be81f554..74b9b256 100644 --- a/asm/non_matchings/menu/func_80094D28.s +++ b/asm/non_matchings/menu/func_80094D28.s @@ -22,7 +22,7 @@ glabel func_80094D28 /* 09595C 80094D5C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 /* 095960 80094D60 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 /* 095964 80094D64 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 095968 80094D68 0C019FCB */ jal func_80067F2C +/* 095968 80094D68 0C019FCB */ jal set_ortho_matrix_view /* 09596C 80094D6C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 .L80094D70: /* 095970 80094D70 00002025 */ move $a0, $zero diff --git a/asm/non_matchings/menu/func_80096978.s b/asm/non_matchings/menu/func_80096978.s index 7005ab82..ae79d674 100644 --- a/asm/non_matchings/menu/func_80096978.s +++ b/asm/non_matchings/menu/func_80096978.s @@ -28,7 +28,7 @@ glabel func_80096978 /* 0975DC 800969DC 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 /* 0975E0 800969E0 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 /* 0975E4 800969E4 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0975E8 800969E8 0C019FCB */ jal func_80067F2C +/* 0975E8 800969E8 0C019FCB */ jal set_ortho_matrix_view /* 0975EC 800969EC AFA30098 */ sw $v1, 0x98($sp) /* 0975F0 800969F0 44800000 */ mtc1 $zero, $f0 /* 0975F4 800969F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 diff --git a/asm/non_matchings/menu/func_80099E8C.s b/asm/non_matchings/menu/func_80099E8C.s index 77eddc30..3d38fa15 100644 --- a/asm/non_matchings/menu/func_80099E8C.s +++ b/asm/non_matchings/menu/func_80099E8C.s @@ -20,7 +20,7 @@ glabel func_80099E8C /* 09AAC0 80099EC0 AFB1003C */ sw $s1, 0x3c($sp) /* 09AAC4 80099EC4 AFB00038 */ sw $s0, 0x38($sp) /* 09AAC8 80099EC8 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 09AACC 80099ECC 0C019FCB */ jal func_80067F2C +/* 09AACC 80099ECC 0C019FCB */ jal set_ortho_matrix_view /* 09AAD0 80099ED0 02E02025 */ move $a0, $s7 /* 09AAD4 80099ED4 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 /* 09AAD8 80099ED8 8DCE0300 */ lw $t6, %lo(osTvType)($t6) diff --git a/asm/non_matchings/menu/func_8009CA60.s b/asm/non_matchings/menu/func_8009CA60.s index 233a4f1b..c20ddb75 100644 --- a/asm/non_matchings/menu/func_8009CA60.s +++ b/asm/non_matchings/menu/func_8009CA60.s @@ -109,7 +109,7 @@ glabel func_8009CA60 /* 09D804 8009CC04 AFAA0010 */ sw $t2, 0x10($sp) /* 09D808 8009CC08 02002025 */ move $a0, $s0 /* 09D80C 8009CC0C AFB80014 */ sw $t8, 0x14($sp) -/* 09D810 8009CC10 0C01A2FD */ jal func_80068BF4 +/* 09D810 8009CC10 0C01A2FD */ jal render_orthi_triangle_image /* 09D814 8009CC14 032D3821 */ addu $a3, $t9, $t5 /* 09D818 8009CC18 8E020000 */ lw $v0, ($s0) /* 09D81C 8009CC1C 3C0FFA00 */ lui $t7, 0xfa00 diff --git a/asm/non_matchings/menu/render_file_select_menu.s b/asm/non_matchings/menu/render_file_select_menu.s index 655cf49c..d86ca701 100644 --- a/asm/non_matchings/menu/render_file_select_menu.s +++ b/asm/non_matchings/menu/render_file_select_menu.s @@ -24,7 +24,7 @@ glabel render_file_select_menu /* 08D9C4 8008CDC4 26F763A0 */ addiu $s7, %lo(sMenuCurrDisplayList) # addiu $s7, $s7, 0x63a0 /* 08D9C8 8008CDC8 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 /* 08D9CC 8008CDCC 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 08D9D0 8008CDD0 0C019FCB */ jal func_80067F2C +/* 08D9D0 8008CDD0 0C019FCB */ jal set_ortho_matrix_view /* 08D9D4 8008CDD4 02E02025 */ move $a0, $s7 /* 08D9D8 8008CDD8 3C118012 */ lui $s1, %hi(gSavefileInfo) # $s1, 0x8012 /* 08D9DC 8008CDDC 3C10800E */ lui $s0, %hi(gFileSelectButtons) # $s0, 0x800e diff --git a/asm/non_matchings/menu/render_track_select_setup_ui.s b/asm/non_matchings/menu/render_track_select_setup_ui.s index 3993ff62..29d42ed7 100644 --- a/asm/non_matchings/menu/render_track_select_setup_ui.s +++ b/asm/non_matchings/menu/render_track_select_setup_ui.s @@ -53,7 +53,7 @@ glabel render_track_select_setup_ui /* 091BE0 80090FE0 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 /* 091BE4 80090FE4 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 /* 091BE8 80090FE8 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 091BEC 80090FEC 0C019FCB */ jal func_80067F2C +/* 091BEC 80090FEC 0C019FCB */ jal set_ortho_matrix_view /* 091BF0 80090FF0 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 /* 091BF4 80090FF4 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e /* 091BF8 80090FF8 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) diff --git a/asm/non_matchings/objects/func_800138A8.s b/asm/non_matchings/objects/func_800138A8.s index d5d18425..f09c6a00 100644 --- a/asm/non_matchings/objects/func_800138A8.s +++ b/asm/non_matchings/objects/func_800138A8.s @@ -22,7 +22,7 @@ glabel func_800138A8 /* 0144F8 800138F8 C4880014 */ lwc1 $f8, 0x14($a0) /* 0144FC 800138FC 00000000 */ nop /* 014500 80013900 46083280 */ add.s $f10, $f6, $f8 -/* 014504 80013904 0C01A748 */ jal func_80069D20 +/* 014504 80013904 0C01A748 */ jal get_active_camera_segment /* 014508 80013908 E60A0014 */ swc1 $f10, 0x14($s0) /* 01450C 8001390C C452000C */ lwc1 $f18, 0xc($v0) /* 014510 80013910 C604000C */ lwc1 $f4, 0xc($s0) diff --git a/asm/non_matchings/objects/func_80016500.s b/asm/non_matchings/objects/func_80016500.s index c19c2317..05bd965f 100644 --- a/asm/non_matchings/objects/func_80016500.s +++ b/asm/non_matchings/objects/func_80016500.s @@ -143,7 +143,7 @@ glabel func_80016500 /* 01730C 8001670C A20901F6 */ sb $t1, 0x1f6($s0) /* 017310 80016710 0C01997A */ jal set_object_stack_pos /* 017314 80016714 AFA3003C */ sw $v1, 0x3c($sp) -/* 017318 80016718 0C01A748 */ jal func_80069D20 +/* 017318 80016718 0C01A748 */ jal get_active_camera_segment /* 01731C 8001671C 00000000 */ nop /* 017320 80016720 8FA3003C */ lw $v1, 0x3c($sp) /* 017324 80016724 00000000 */ nop diff --git a/asm/non_matchings/racer/func_80059BF0.s b/asm/non_matchings/racer/func_80059BF0.s index 3b98e1c4..f72dcac4 100644 --- a/asm/non_matchings/racer/func_80059BF0.s +++ b/asm/non_matchings/racer/func_80059BF0.s @@ -65,7 +65,7 @@ glabel func_80059BF0 /* 05A8E4 80059CE4 28E10168 */ slti $at, $a3, 0x168 /* 05A8E8 80059CE8 1420000D */ bnez $at, .L80059D20 /* 05A8EC 80059CEC A52F0000 */ sh $t7, ($t1) -/* 05A8F0 80059CF0 0C01BAAC */ jal func_8006EAB0 +/* 05A8F0 80059CF0 0C01BAAC */ jal is_postrace_viewport_active /* 05A8F4 80059CF4 00000000 */ nop /* 05A8F8 80059CF8 3C0A8012 */ lui $t2, %hi(D_8011D59C) # $t2, 0x8012 /* 05A8FC 80059CFC 14400044 */ bnez $v0, .L80059E10 diff --git a/asm/non_matchings/unknown_0255E0/func_80028050.s b/asm/non_matchings/unknown_0255E0/func_80028050.s index 49b3c3e5..085de6ff 100644 --- a/asm/non_matchings/unknown_0255E0/func_80028050.s +++ b/asm/non_matchings/unknown_0255E0/func_80028050.s @@ -8,7 +8,7 @@ glabel func_80028050 /* 028C68 80028068 8E31B0A8 */ lw $s1, %lo(gSceneCurrVertexList)($s1) /* 028C6C 8002806C 8E10B0AC */ lw $s0, %lo(gSceneCurrTriList)($s0) /* 028C70 80028070 AFB30020 */ sw $s3, 0x20($sp) -/* 028C74 80028074 0C01A748 */ jal func_80069D20 +/* 028C74 80028074 0C01A748 */ jal get_active_camera_segment /* 028C78 80028078 AFB2001C */ sw $s2, 0x1c($sp) /* 028C7C 8002807C 3C0E800E */ lui $t6, %hi(gCurrentLevelHeader2) # $t6, 0x800e /* 028C80 80028080 8DCEC91C */ lw $t6, %lo(gCurrentLevelHeader2)($t6) diff --git a/asm/non_matchings/unknown_0255E0/render_scene.s b/asm/non_matchings/unknown_0255E0/render_scene.s index a9b0a2ab..6585884d 100644 --- a/asm/non_matchings/unknown_0255E0/render_scene.s +++ b/asm/non_matchings/unknown_0255E0/render_scene.s @@ -333,11 +333,11 @@ glabel render_scene /* 025E30 80025230 0C02AF9A */ jal process_weather /* 025E34 80025234 AFAF0010 */ sw $t7, 0x10($sp) .L80025238: -/* 025E38 80025238 0C01A748 */ jal func_80069D20 +/* 025E38 80025238 0C01A748 */ jal get_active_camera_segment /* 025E3C 8002523C 00000000 */ nop /* 025E40 80025240 0C02B40C */ jal func_800AD030 /* 025E44 80025244 00402025 */ move $a0, $v0 -/* 025E48 80025248 0C01A748 */ jal func_80069D20 +/* 025E48 80025248 0C01A748 */ jal get_active_camera_segment /* 025E4C 8002524C 00000000 */ nop /* 025E50 80025250 3C068012 */ lui $a2, %hi(gSceneCurrVertexList) # $a2, 0x8012 /* 025E54 80025254 24C6B0A8 */ addiu $a2, %lo(gSceneCurrVertexList) # addiu $a2, $a2, -0x4f58 @@ -381,7 +381,7 @@ glabel render_scene /* 025EE8 800252E8 24010041 */ li $at, 65 /* 025EEC 800252EC 1041005D */ beq $v0, $at, .L80025464 /* 025EF0 800252F0 00000000 */ nop -/* 025EF4 800252F4 0C02A116 */ jal func_800A8458 +/* 025EF4 800252F4 0C02A116 */ jal get_multiplayer_hud_setting /* 025EF8 800252F8 00000000 */ nop /* 025EFC 800252FC 14400054 */ bnez $v0, .L80025450 /* 025F00 80025300 00000000 */ nop @@ -440,11 +440,11 @@ glabel render_scene /* 025FD0 800253D0 2404FFFF */ li $a0, -1 /* 025FD4 800253D4 0C02ACC2 */ jal func_800AB308 /* 025FD8 800253D8 2405FE00 */ li $a1, -512 -/* 025FDC 800253DC 0C01A748 */ jal func_80069D20 +/* 025FDC 800253DC 0C01A748 */ jal get_active_camera_segment /* 025FE0 800253E0 00000000 */ nop /* 025FE4 800253E4 0C02B40C */ jal func_800AD030 /* 025FE8 800253E8 00402025 */ move $a0, $v0 -/* 025FEC 800253EC 0C01A748 */ jal func_80069D20 +/* 025FEC 800253EC 0C01A748 */ jal get_active_camera_segment /* 025FF0 800253F0 00000000 */ nop /* 025FF4 800253F4 3C068012 */ lui $a2, %hi(gSceneCurrVertexList) # $a2, 0x8012 /* 025FF8 800253F8 24C6B0A8 */ addiu $a2, %lo(gSceneCurrVertexList) # addiu $a2, $a2, -0x4f58 diff --git a/include/structs.h b/include/structs.h index c1b09b62..6ce2fd0c 100644 --- a/include/structs.h +++ b/include/structs.h @@ -143,6 +143,7 @@ typedef struct Settings4C { #define TAJ_FLAGS_HOVER_CHAL_COMPLETED 0x10 #define TAJ_FLAGS_PLANE_CHAL_COMPLETED 0x20 +#define CUTSCENE_NONE 0x0 #define CUTSCENE_LIGHTHOUSE_ROCKET 0x1 #define CUTSCENE_TT_HELP 0x2 #define CUTSCENE_ADVENTURE_TWO 0x4 @@ -283,10 +284,10 @@ typedef struct PulsatingLightData { /* Size: 0xC4 bytes */ typedef struct LevelHeader { - /* 0x00 */ u8 world; + /* 0x00 */ s8 world; /* 0x01 */ u8 unk1; /* 0x02 */ s8 unk2; - /* 0x03 */ u8 unk3; + /* 0x03 */ s8 unk3; /* 0x04 */ s8 unk4[4]; /* 0x08 */ f32 course_height; /* 0x0C */ u8 unkC[10]; @@ -1157,7 +1158,7 @@ typedef struct Object_Racer { /* 0x20E */ u16 unk20E; /* 0x210 */ u8 unk210; /* 0x211 */ s8 unk211; - /* 0x212 */ u8 unk212; + /* 0x212 */ s8 unk212; /* 0x213 */ s8 unk213; /* 0x214 */ s8 unk214; /* 0x215 */ s8 unk215; diff --git a/src/audio.c b/src/audio.c index c58f31d8..67c7213d 100644 --- a/src/audio.c +++ b/src/audio.c @@ -135,7 +135,7 @@ void audio_init(OSSched *sc) { D_80115D0C = (u32 *) allocate_from_main_pool_safe((ALSeqFile_80115CF8->seqCount) * 4, COLOUR_TAG_CYAN); for (iCnt = 0; iCnt < ALSeqFile_80115CF8->seqCount; iCnt++) { - (u32 *) ((u32) ALSeqFile_80115CF8 + 8 + iCnt * 8); + pad = (u32) (ALSeqFile_80115CF8 + 8 + iCnt * 8); // Fakematch D_80115D0C[iCnt] = ALSeqFile_80115CF8->seqArray[iCnt].len; if (D_80115D0C[iCnt] & 1) { D_80115D0C[iCnt]++; diff --git a/src/borders.c b/src/borders.c index b08b26a0..52b8b5a1 100644 --- a/src/borders.c +++ b/src/borders.c @@ -39,7 +39,7 @@ void render_borders_for_multiplayer(Gfx **dlist) { case VIEWPORTS_COUNT_3_PLAYERS: levelHeader = get_current_level_header(); // Draw black square in the bottom-right corner. - if (func_800A8458() || (levelHeader->race_type & RACETYPE_CHALLENGE)) { + if (get_multiplayer_hud_setting() || (levelHeader->race_type & RACETYPE_CHALLENGE)) { gDPFillRectangle((*dlist)++, width >> 1, height >> 1, width, height); } // There is no break statement here. This is intentional. diff --git a/src/camera.c b/src/camera.c index d2fc8f85..aab85975 100644 --- a/src/camera.c +++ b/src/camera.c @@ -260,7 +260,7 @@ void func_80066230(Gfx **dlist, MatrixS **mats) { set_active_viewports_and_object_stack_cap(0); set_object_stack_pos(0); - someStruct = func_80069D20(); + someStruct = get_active_camera_segment(); sp2A = someStruct->trans.y_rotation; sp28 = someStruct->trans.x_rotation; sp26 = someStruct->trans.z_rotation; @@ -890,7 +890,11 @@ void set_ortho_matrix_height(f32 value) { gOrthoMatrix[1][1] = value; } -void func_80067F2C(Gfx **dlist, MatrixS **mtx) { +/** + * Sets the current matrix to represent an orthogonal view. + * Used for drawing triangles on screen as HUD. +*/ +void set_ortho_matrix_view(Gfx **dlist, MatrixS **mtx) { u32 widthAndHeight; s32 width, height; s32 i, j; @@ -1086,7 +1090,10 @@ s32 render_sprite_billboard(Gfx **dlist, MatrixS **mtx, Vertex **vertexList, Obj return result; } -void func_80068BF4(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, unk80068BF4 *arg4, s32 flags) { +/** + * Sets transform and scale matrices to set position and size, loads the texture, sets the rendermodes, then draws the result onscreen. +*/ +void render_orthi_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, unk80068BF4 *arg4, s32 flags) { UNUSED s32 pad; f32 scale; s32 index; @@ -1254,7 +1261,10 @@ ObjectSegment *func_80069CFC(void) { return &gActiveCameraStack[gActiveCameraID]; } -ObjectSegment *func_80069D20(void) { +/** + * Returns the active segment data of the active camera. +*/ +ObjectSegment *get_active_camera_segment(void) { if (gCutsceneCameraActive) { return &gActiveCameraStack[gActiveCameraID + 4]; } diff --git a/src/camera.h b/src/camera.h index 4ce1e61c..72fffec0 100644 --- a/src/camera.h +++ b/src/camera.h @@ -135,14 +135,14 @@ s32 copy_viewport_background_size_to_coords(s32 viewPortIndex, s32 *x1, s32 *y1, void copy_viewport_frame_size_to_coords(s32 viewPortIndex, s32 *arg1, s32 *arg2, s32 *arg3, s32 *arg4); void copy_framebuffer_size_to_coords(s32 *x1, s32 *y1, s32 *x2, s32 *y2); void set_ortho_matrix_height(f32 value); -void func_80067F2C(Gfx **dlist, MatrixS **mats); +void set_ortho_matrix_view(Gfx **dlist, MatrixS **mats); void func_8006807C(Gfx **dlist, MatrixS **mats); void func_80068158(Gfx **dlist, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void func_800682AC(Gfx **dlist); void func_80068408(Gfx **dlist, MatrixS **mats); void func_80068508(s32 arg0); ObjectSegment *func_80069CFC(void); -ObjectSegment *func_80069D20(void); +ObjectSegment *get_active_camera_segment(void); ObjectSegment *func_80069D7C(void); Matrix *func_80069DA4(void); MatrixS *func_80069DB0(void); @@ -165,7 +165,7 @@ s8 clamp_joystick(s8 stickMag); void disable_button_mask(void); s32 init_controllers(void); void func_80067D3C(Gfx **dlist, UNUSED MatrixS **mats); -void func_80068BF4(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, unk80068BF4 *arg4, s32 flags); +void render_orthi_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, unk80068BF4 *arg4, s32 flags); s32 render_sprite_billboard(Gfx **dlist, MatrixS **mtx, Vertex **vertexList, Object *obj, unk80068514_arg4 *arg4, s32 flags); void func_80069484(Gfx **arg0, MatrixS **arg1, ObjectTransform *arg2, f32 arg3, f32 arg4); void func_80067A3C(Gfx **dlist); diff --git a/src/fade_transition.c b/src/fade_transition.c index 09a8a7a6..092c1c47 100644 --- a/src/fade_transition.c +++ b/src/fade_transition.c @@ -230,11 +230,9 @@ u32 func_800C018C(void) { } } -#ifdef NON_EQUIVALENT - -// Regalloc issue. s32 func_800C01D8(FadeTransition *transition) { - if (D_800E31A0) { + s32 new_var; + if (D_800E31A0 != NULL) { return 0; } transition_end(); @@ -244,12 +242,14 @@ s32 func_800C01D8(FadeTransition *transition) { sTransitionFadeTimer = transition->duration; D_800E31B8 = transition->duration; sTransitionFlags = transition->unk6; - D_800E31BC = !(transition->type & 0x80); + new_var = transition->type; + D_800E31BC = !(new_var & 0x80); + new_var = transition->duration; gCurFaceTransition = transition->type & 0x3F; D_800E31A8 = transition->type & 0x40; sLevelTransitionDelayTimer = 0; - if (!D_800E31BC) { - sLevelTransitionDelayTimer = 2; + if (!D_800E31BC && !sLevelTransitionDelayTimer) { + sLevelTransitionDelayTimer = 2; } if (sTransitionFadeTimer > 0) { gLastFadeRed = gCurFadeRed; @@ -259,34 +259,31 @@ s32 func_800C01D8(FadeTransition *transition) { gCurFadeGreen = transition->green; gCurFadeBlue = transition->blue; switch (gCurFaceTransition) { - case FADE_FULLSCREEN: - func_800C0780(transition); - break; - case FADE_BARNDOOR_HORIZONTAL: - func_800C0B00(transition, 0xC, 8, &D_800E3230, &D_800E32A0, &D_800E32AC, &D_800E32D0, &D_800E32D0, &D_800E32B8); - break; - case FADE_BARNDOOR_VERTICAL: - func_800C0B00(transition, 0xC, 8, &D_800E3268, &D_800E32A0, &D_800E32AC, &D_800E32D0, &D_800E32D0, &D_800E32B8); - break; - case FADE_CIRCLE: - func_800C15D4(transition); - break; - case FADE_WAVES: - func_800C0B00(transition, 0x5C, 0x50, &D_800E3344, &D_800E349C, &D_800E3440, &D_800E34F8, &D_800E34F8, &D_800E3554); - break; - case FADE_BARNDOOR_DIAGONAL: - func_800C0B00(transition, 0xA, 6, &D_800E32DC, &D_800E330C, &D_800E3318, &D_800E3338, &D_800E3338, &D_800E3324); - break; - case FADE_DISABLED: - func_800C2640(transition); - break; + case FADE_FULLSCREEN: + func_800C0780(transition); + break; + case FADE_BARNDOOR_HORIZONTAL: + func_800C0B00(transition, 12, 8, D_800E3230, D_800E32A0, D_800E32AC, D_800E32D0, D_800E32D0, D_800E32B8); + break; + case FADE_BARNDOOR_VERTICAL: + func_800C0B00(transition, 12, 8, D_800E3268, D_800E32A0, D_800E32AC, D_800E32D0, D_800E32D0, D_800E32B8); + break; + case FADE_CIRCLE: + func_800C15D4(transition); + break; + case FADE_WAVES: + func_800C0B00(transition, 92, 80, D_800E3344, D_800E349C, D_800E3440, D_800E34F8, D_800E34F8, D_800E3554); + break; + case FADE_BARNDOOR_DIAGONAL: + func_800C0B00(transition, 10, 6, D_800E32DC, D_800E330C, D_800E3318, D_800E3338, D_800E3338, D_800E3324); + break; + case FADE_DISABLED: + func_800C2640(transition); + break; } } return sTransitionStatus; } -#else -GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C01D8.s") -#endif /** * Handle the logic portion of the transitions. Runs always and calls the specific transition func from here. @@ -345,7 +342,7 @@ void render_fade_transition(Gfx **dlist, MatrixS **mats, Vertex **verts) { } else { set_ortho_matrix_height(1.2f); } - func_80067F2C(dlist, mats); + set_ortho_matrix_view(dlist, mats); set_ortho_matrix_height(1.0f); switch (gCurFaceTransition) { case FADE_FULLSCREEN: @@ -402,7 +399,46 @@ void func_800C0780(FadeTransition *transition) { sTransitionStatus = TRANSITION_ACTIVE; } -GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C0834.s") +void func_800C0834(s32 updateRate) { + s32 var_v0; + do { + var_v0 = TRUE; + if ((sTransitionFadeTimer) > 0) { + if (updateRate < sTransitionFadeTimer) { + sTransitionFadeTimer -= updateRate; + sTransitionOpacity += D_8012A754 * updateRate; + } else { + updateRate -= sTransitionFadeTimer; + var_v0 = FALSE; + if (D_8012A754 < 0.0f) { + sTransitionOpacity = 0.0f; + } else { + sTransitionOpacity = 255.0f; + } + sTransitionFadeTimer = updateRate * 0; // Fakematch + } + if (sTransitionOpacity < 0.0f) { + sTransitionOpacity = 0.0f; + } else if (sTransitionOpacity > 255.0f) { + sTransitionOpacity = 255.0f; + } + gCurFadeAlpha = sTransitionOpacity; + } else if (sTransitionFlags != 0xFFFF) { + if (updateRate < sTransitionFlags) { + sTransitionFlags -= updateRate; + } else { + updateRate -= sTransitionFlags; + sTransitionFlags = 0; + if (D_800E31A8 != 0) { + D_800E31A8 = 0; + sTransitionFadeTimer = D_800E31B8; + D_8012A754 = -D_8012A754; + var_v0 = FALSE; + } + } + } + } while (var_v0 == FALSE && (updateRate > 0)); +} void render_fade_fullscreen(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Vertex **verts) { s32 screenSize = get_video_width_and_height_as_s32(); @@ -496,37 +532,46 @@ void render_fade_barndoor_diagonal(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Ve reset_render_settings(dlist); } -GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C2640.s") +void func_800C2640(UNUSED FadeTransition *transition) { + gLastFadeRed <<= 0x10; + gLastFadeGreen <<= 0x10; + gLastFadeBlue <<= 0x10; + gCurFadeAlpha = 0xFF; + sTransitionOpacity = 255.0f; + D_8012A754 = 0.0f; + D_8012A744 = (s32) ((gCurFadeRed << 0x10) - gLastFadeRed) / (s32) sTransitionFadeTimer; + D_8012A748 = (s32) ((gCurFadeGreen << 0x10) - gLastFadeGreen) / (s32) sTransitionFadeTimer; + D_8012A74C = (s32) ((gCurFadeBlue << 0x10) - gLastFadeBlue) / (s32) sTransitionFadeTimer; + sTransitionStatus = 1; +} -#ifdef NON_EQUIVALENT void func_800C27A0(s32 updateRate) { - //do { - if (sTransitionFadeTimer > 0) { - gLastFadeRed += D_8012A744 * updateRate; - gLastFadeGreen += D_8012A748 * updateRate; - gLastFadeBlue += D_8012A74C * updateRate; - if (updateRate >= sTransitionFadeTimer) { - gLastFadeRed = gCurFadeRed << 16; - gLastFadeGreen = gCurFadeGreen << 16; - gLastFadeBlue = gCurFadeBlue << 16; - sTransitionFadeTimer = 0; - updateRate -= sTransitionFadeTimer; + s32 var_v0; + do { + var_v0 = TRUE; + if (sTransitionFadeTimer > 0) { + gLastFadeRed += D_8012A744 * updateRate; + gLastFadeGreen += D_8012A748 * updateRate; + gLastFadeBlue += D_8012A74C * updateRate; + if (updateRate >= sTransitionFadeTimer) { + gLastFadeRed = gCurFadeRed << 0x10; + gLastFadeGreen = gCurFadeGreen << 0x10; + gLastFadeBlue = gCurFadeBlue << 0x10; + updateRate -= sTransitionFadeTimer; + sTransitionFadeTimer = 0; + } else { + sTransitionFadeTimer -= updateRate; + } } else { - sTransitionFadeTimer -= updateRate; - } - } else { - sTransitionFlags -= updateRate; - if (sTransitionFlags != 0xFFFF) { - if ((sTransitionFlags & 0xFFFF) <= 0) { - sTransitionFlags = 0; + if (sTransitionFlags != 0xFFFF) { + sTransitionFlags -= updateRate; + if (sTransitionFlags <= 0) { + sTransitionFlags = 0; + } } } - } - //} while(1 == 0); + } while (var_v0 == FALSE); } -#else -GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C27A0.s") -#endif void render_fade_disabled(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Vertex **verts) { s32 screenSize = get_video_width_and_height_as_s32(); diff --git a/src/fade_transition.h b/src/fade_transition.h index 27a1f23a..d48b7d05 100644 --- a/src/fade_transition.h +++ b/src/fade_transition.h @@ -48,16 +48,16 @@ void render_fade_barndoor_vertical(Gfx **dlist, MatrixS **mats, Vertex **verts); void render_fade_barndoor_diagonal(Gfx **dlist, MatrixS **mats, Vertex **verts); void render_fade_disabled(Gfx **dlist, MatrixS **mats, Vertex **verts); void func_800C0780(FadeTransition *transition); +void func_800C2640(FadeTransition *transition); +void func_800C0834(s32 updateRate); +void func_800C27A0(s32 updateRate); +s32 func_800C01D8(FadeTransition *transition); void render_fade_circle(Gfx **dlist, MatrixS **mats, Vertex **verts); //Non Matching void render_fade_waves(Gfx **dlist, MatrixS **mats, Vertex **verts); //Non Matching -void func_800C0834(s32); //Non Matching void func_800C1130(s32); //Non Matching void func_800C1EE8(s32); //Non Matching -void func_800C27A0(s32 arg0); //Non Matching void func_800C0B00(FadeTransition *transition, s32, s32, s16*, s8*, s8*, s8*, s8*, s8*); //Non Matching void func_800C15D4(FadeTransition *transition); //Non Matching -void func_800C2640(FadeTransition *transition); //Non Matching -s32 func_800C01D8(FadeTransition *transition); //Non Matching #endif diff --git a/src/game.c b/src/game.c index 09fc79a1..b84fc575 100644 --- a/src/game.c +++ b/src/game.c @@ -62,9 +62,9 @@ UNUSED const char sDebugVehicleSwapString[] = "Swapping\n"; /************ .data ************/ char *D_800DD310 = NULL; // Currently unknown, might be a different type. -s8 D_800DD314 = -1; +s8 gCurrentDefaultVehicle = -1; u8 D_800DD318 = 0; -s32 D_800DD31C = 0; +s32 gIsInRace = 0; // Updated automatically from calc_func_checksums.py s32 gFunc80068158Checksum = 0x585E; @@ -346,38 +346,40 @@ void get_number_of_levels_and_worlds(s32 *outLevelCount, s32 *outWorldCount) { *outWorldCount = gNumberOfWorlds; } -s32 func_8006B240(void) { - return D_800DD31C; +/** + * Returns true if the current event is a regular race or a boss race. + * Returns false if it's a menu, challenge or hubworld. +*/ +s32 check_if_in_race(void) { + return gIsInRace; } -// This isn't matching, but there shouldn't be any issues (hopefully). -#ifdef NON_EQUIVALENT - +/** + * Loads and sets up the level header, then loads and sets of the level geometry. + * Sets weather, fog and active cutscenes where applicable. +*/ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { - s32 maxLevelCount; - s32 sp44; - s32 noPlayers; - s32 phi_s0; - s32 vehicle; + s8 *someAsset; s32 i; s32 size; - s32 offset; - s32 temp; - s32 phi_v1_2; - s32 phi_v0_2; - s8 *someAsset; + s32 var_s0; + s32 wizpig; + s32 numPlayers; + s32 prevLevelID; Settings *settings; + s32 offset; func_80072708(); if (cutsceneId == -1) { cutsceneId = 0; } if (numberOfPlayers == ZERO_PLAYERS) { - noPlayers = TRUE; + numPlayers = 1; numberOfPlayers = ONE_PLAYER; } else { - noPlayers = FALSE; + numPlayers = 0; } + if (numberOfPlayers == ONE_PLAYER) { set_sound_channel_count(8); } else if (numberOfPlayers == TWO_PLAYERS) { @@ -385,187 +387,187 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl } else { set_sound_channel_count(16); } - settings = get_settings(); - gTempAssetTable = load_asset_section_from_rom(ASSET_LEVEL_HEADERS_TABLE); - maxLevelCount = 0; - while (gTempAssetTable[maxLevelCount] != -1) { - maxLevelCount++; - } - maxLevelCount--; - if (levelId >= maxLevelCount) { + gTempAssetTable = (s32 *) load_asset_section_from_rom(ASSET_LEVEL_HEADERS_TABLE); + + for (i = 0; gTempAssetTable[i] != -1; i++) { } + i--; + if (levelId >= i) { levelId = ASSET_LEVEL_CENTRALAREAHUB; } + offset = gTempAssetTable[levelId]; size = gTempAssetTable[levelId + 1] - offset; - gCurrentLevelHeader = (LevelHeader *)allocate_from_main_pool_safe(size, COLOUR_TAG_YELLOW); - load_asset_to_address(ASSET_LEVEL_HEADERS, gCurrentLevelHeader, offset, size); + gCurrentLevelHeader = (LevelHeader *) allocate_from_main_pool_safe(size, COLOUR_TAG_YELLOW); + load_asset_to_address(ASSET_LEVEL_HEADERS, (u32) gCurrentLevelHeader, offset, size); D_800DD330 = 0; - sp44 = levelId; + prevLevelID = levelId; if (gCurrentLevelHeader->race_type == RACETYPE_DEFAULT) { func_8006C2E4(); } if (func_8006C2F0() == 0) { if (D_800DD32C == 0) { if (gCurrentLevelHeader->race_type == RACETYPE_BOSS) { - phi_v1_2 = settings->courseFlagsPtr[levelId]; - phi_v0_2 = FALSE; - if (gCurrentLevelHeader->world == 0 || gCurrentLevelHeader->world == 5) { - phi_v0_2 = TRUE; + var_s0 = settings->courseFlagsPtr[levelId]; + wizpig = FALSE; + if (gCurrentLevelHeader->world == WORLD_CENTRAL_AREA || gCurrentLevelHeader->world == WORLD_FUTURE_FUN_LAND) { + wizpig = TRUE; } - if (!(phi_v1_2 & 1) || phi_v0_2) { + if (!(var_s0 & 1) || wizpig) { func_8006C1AC(levelId, entranceId, vehicleId, cutsceneId); if (settings->bosses & (1 << settings->worldId)) { cutsceneId = 7; } else { cutsceneId = 3; } - if (phi_v0_2) { + if (wizpig) { cutsceneId = 0; - if (phi_v1_2 & 1) { - D_800DD330 = (u8)2; + if (var_s0 & 1) { + D_800DD330 = 2; } } - someAsset = get_misc_asset(MISC_ASSET_UNK43); - phi_s0 = 0; - while (levelId != someAsset[phi_s0 + 1]) { - phi_s0++; - } - levelId = someAsset[phi_s0 + 1]; + someAsset = (s8 *) get_misc_asset(MISC_ASSET_UNK43); + for (var_s0 = 0; levelId != someAsset[var_s0]; var_s0 += 2) { } + levelId = someAsset[var_s0 + 1]; entranceId = cutsceneId; + if (cutsceneId) {} // Fakematch } } if (gCurrentLevelHeader->race_type == RACETYPE_HUBWORLD) { - s32 curWorld = gCurrentLevelHeader->world; - if (curWorld > 0 && curWorld < 5) { - if (settings->keys & (1 << curWorld)) { - s32 temp_v0_5 = 0x4000 << (curWorld + 0x1F); - if (!(settings->cutsceneFlags & temp_v0_5)) { - // Trigger World Key unlocking Challenge Door cutscene. - func_8006C1AC(levelId, entranceId, vehicleId, cutsceneId); - settings->cutsceneFlags |= temp_v0_5; - levelId = get_misc_asset(MISC_ASSET_UNK44)[curWorld - 1]; - entranceId = 0; - cutsceneId = 5; - } + if (gCurrentLevelHeader->world > WORLD_CENTRAL_AREA && gCurrentLevelHeader->world < WORLD_FUTURE_FUN_LAND) { + var_s0 = gCurrentLevelHeader->world; + if (settings->keys & (1 << var_s0) && !(settings->cutsceneFlags & (0x4000 << (var_s0 + 31)))) { + // Trigger World Key unlocking Challenge Door cutscene. + func_8006C1AC(levelId, entranceId, vehicleId, cutsceneId); + settings->cutsceneFlags |= 0x4000 << (var_s0 + 31); + someAsset = (s8 *) get_misc_asset(MISC_ASSET_UNK44); + levelId = someAsset[var_s0 - 1]; + entranceId = 0; + cutsceneId = 5; } } } - if (gCurrentLevelHeader->race_type == RACETYPE_HUBWORLD && gCurrentLevelHeader->world == 0 && !(settings->cutsceneFlags & CUTSCENE_WIZPIG_FACE) && settings->wizpigAmulet >= 4) { + if (gCurrentLevelHeader->race_type == RACETYPE_HUBWORLD && gCurrentLevelHeader->world == WORLD_CENTRAL_AREA && !(settings->cutsceneFlags & 0x2000) && settings->wizpigAmulet >= 4) { // Trigger wizpig face cutscene - s32 savedEntranceId = entranceId; - s32 savedCutsceneId = cutsceneId; - cutsceneId = 0; + func_8006C1AC(levelId, entranceId, vehicleId, cutsceneId); entranceId = 0; - func_8006C1AC(levelId, savedEntranceId, vehicleId, savedCutsceneId); - settings->cutsceneFlags |= CUTSCENE_WIZPIG_FACE; - levelId = get_misc_asset(MISC_ASSET_UNK44)[1]; + cutsceneId = 0; + settings->cutsceneFlags |= 0x2000; + levelId = ((s8 *) get_misc_asset(MISC_ASSET_UNK44))[4]; } } } D_800DD32C = 0; - if (sp44 != levelId) { + if (prevLevelID != levelId) { free_from_memory_pool(gCurrentLevelHeader); offset = gTempAssetTable[levelId]; size = gTempAssetTable[levelId + 1] - offset; gCurrentLevelHeader = allocate_from_main_pool_safe(size, COLOUR_TAG_YELLOW); - load_asset_to_address(ASSET_LEVEL_HEADERS, gCurrentLevelHeader, offset, size); + load_asset_to_address(ASSET_LEVEL_HEADERS, (u32) gCurrentLevelHeader, offset, size); } free_from_memory_pool(gTempAssetTable); - func_8006BFC8(&gCurrentLevelHeader->unk20); + func_8006BFC8((s8 *) &gCurrentLevelHeader->unk20); func_8000CBC0(); gMapId = levelId; - for (i = 0; i < 7; i++) { - if ((s32)gCurrentLevelHeader->unk74[i] != -1) { - gCurrentLevelHeader->unk74[i] = get_misc_asset((s32)gCurrentLevelHeader->unk74[i]); - func_8007F1E8(gCurrentLevelHeader->unk74[i]); + for (var_s0 = 0; var_s0 < 7; var_s0++) { + if ((s32) gCurrentLevelHeader->unk74[var_s0] != -1) { + gCurrentLevelHeader->unk74[var_s0] = (s8 *) get_misc_asset((s32) gCurrentLevelHeader->unk74[var_s0]); + func_8007F1E8((unk8007F1E8 *) gCurrentLevelHeader->unk74[var_s0]); } } + if (cutsceneId == 0x64) { - if (get_trophy_race_world_id() != 0 && gCurrentLevelHeader->race_type == RACETYPE_DEFAULT) { - cutsceneId = 0; - } else if (is_in_tracks_mode() == 1 && gCurrentLevelHeader->race_type == RACETYPE_DEFAULT) { - cutsceneId = 0; + if (get_trophy_race_world_id() != 0) { + if (gCurrentLevelHeader->race_type == RACETYPE_DEFAULT) { + cutsceneId = CUTSCENE_NONE; + } + } else if (is_in_tracks_mode() == 1) { + if (gCurrentLevelHeader->race_type == RACETYPE_DEFAULT) { + cutsceneId = CUTSCENE_NONE; + } } } if (gCurrentLevelHeader->race_type == RACETYPE_DEFAULT || gCurrentLevelHeader->race_type == RACETYPE_BOSS) { - D_800DD31C = 1; + gIsInRace = TRUE; } else { - D_800DD31C = 0; + gIsInRace = FALSE; } - if (noPlayers && gCurrentLevelHeader->race_type != RACETYPE_CUTSCENE_2) { + if (numPlayers && gCurrentLevelHeader->race_type != RACETYPE_CUTSCENE_2) { gCurrentLevelHeader->race_type = RACETYPE_CUTSCENE_1; } set_music_player_voice_limit(gCurrentLevelHeader->voiceLimit); func_80000CBC(); func_80031BB8(0x20); - vehicle = VEHICLE_CAR; + var_s0 = VEHICLE_CAR; if (vehicleId >= VEHICLE_CAR && vehicleId < NUMBER_OF_VEHICLE_TYPES) { - vehicle = gCurrentLevelHeader->unk4F[vehicleId]; + var_s0 = gCurrentLevelHeader->unk4F[vehicleId]; } - func_80017E74(vehicle); - temp = settings->worldId; + func_80017E74(var_s0); + var_s0 = settings->worldId; if (gCurrentLevelHeader->world != -1) { settings->worldId = gCurrentLevelHeader->world; } settings->courseId = levelId; - if (temp == 0 && settings->worldId > 0) { - D_800DD314 = get_level_default_vehicle(); + if (var_s0 == 0 && settings->worldId > 0) { + gCurrentDefaultVehicle = get_level_default_vehicle(); } - if (settings->worldId == 0 && temp > 0 && D_800DD314 != -1) { - vehicleId = D_800DD314; + if (settings->worldId == 0 && var_s0 > 0 && gCurrentDefaultVehicle != -1) { + vehicleId = gCurrentDefaultVehicle; } func_8006DB20(vehicleId); if (gCurrentLevelHeader->race_type == RACETYPE_HUBWORLD) { - if (settings->worldId > 0) { - s32 temp_s0_5 = 8 << (settings->worldId + 31); + if (settings->worldId - 1 >= 0) { + var_s0 = 8 << (settings->worldId + 31); if (settings->worldId == 5) { if (settings->balloonsPtr[0] >= 47) { if (settings->ttAmulet >= 4) { - if ((settings->cutsceneFlags & temp_s0_5) == 0) { - settings->cutsceneFlags |= temp_s0_5; + if ((settings->cutsceneFlags & var_s0) == 0) { + settings->cutsceneFlags |= var_s0; cutsceneId = 5; } } } } else { if (settings->balloonsPtr[settings->worldId] >= 4) { - if ((settings->cutsceneFlags & temp_s0_5) == 0) { - settings->cutsceneFlags |= temp_s0_5; + if (!(settings->cutsceneFlags & var_s0)) { + settings->cutsceneFlags |= var_s0; cutsceneId = 5; } } + var_s0 <<= 5; if (settings->balloonsPtr[settings->worldId] >= 8) { - s32 temp3 = temp_s0_5 << 5; - if (!(settings->cutsceneFlags & temp3)) { - settings->cutsceneFlags |= temp3; + if (!(settings->cutsceneFlags & var_s0)) { + settings->cutsceneFlags |= var_s0; cutsceneId = 5; } } } } } + + var_s0 = settings->courseFlagsPtr[levelId]; if (numberOfPlayers != ONE_PLAYER && gCurrentLevelHeader->race_type == RACETYPE_DEFAULT) { cutsceneId = 0x64; } - if ((gCurrentLevelHeader->race_type == RACETYPE_DEFAULT || (gCurrentLevelHeader->race_type & RACETYPE_CHALLENGE)) && is_in_two_player_adventure()) { + if ((gCurrentLevelHeader->race_type == RACETYPE_DEFAULT || gCurrentLevelHeader->race_type & RACETYPE_CHALLENGE) && is_in_two_player_adventure()) { D_800DD318 = 1; cutsceneId = 0x64; } else { D_800DD318 = 0; + } - if (gCurrentLevelHeader->race_type == RACETYPE_DEFAULT && !noPlayers && is_time_trial_enabled()) { + if (gCurrentLevelHeader->race_type == RACETYPE_DEFAULT && numPlayers == 0 && is_time_trial_enabled()) { cutsceneId = 0x64; } func_8001E450(cutsceneId); func_800249F0(gCurrentLevelHeader->geometry, gCurrentLevelHeader->skybox, numberOfPlayers, vehicleId, entranceId, gCurrentLevelHeader->collectables, gCurrentLevelHeader->unkBA); if (gCurrentLevelHeader->fogNear == 0 && gCurrentLevelHeader->fogFar == 0 && gCurrentLevelHeader->fogR == 0 && gCurrentLevelHeader->fogG == 0 && gCurrentLevelHeader->fogB == 0) { - for (i = 0; i < 4; i++) { - func_800307BC(i); + for (var_s0 = 0; var_s0 < 4; var_s0++) { + func_800307BC(var_s0); } } else { - for (i = 0; i < 4; i++) { - func_80030664(i, gCurrentLevelHeader->fogNear, gCurrentLevelHeader->fogFar, (u8)gCurrentLevelHeader->fogR, gCurrentLevelHeader->fogG, gCurrentLevelHeader->fogB); + for (var_s0 = 0; var_s0 < 4; var_s0++) { + func_80030664(var_s0, gCurrentLevelHeader->fogNear, gCurrentLevelHeader->fogFar, (u8) gCurrentLevelHeader->fogR, gCurrentLevelHeader->fogG, gCurrentLevelHeader->fogB); } } settings = get_settings(); @@ -574,24 +576,16 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl } settings->courseId = levelId; if (gCurrentLevelHeader->weatherEnable > 0) { - func_800AB4A8( - gCurrentLevelHeader->weatherType, - gCurrentLevelHeader->weatherEnable, - gCurrentLevelHeader->weatherVelX << 8, - gCurrentLevelHeader->weatherVelY << 8, - gCurrentLevelHeader->weatherVelZ << 8, - gCurrentLevelHeader->weatherIntensity * 0x101, - gCurrentLevelHeader->weatherOpacity * 0x101); + func_800AB4A8(gCurrentLevelHeader->weatherType, gCurrentLevelHeader->weatherEnable, gCurrentLevelHeader->weatherVelX << 8, gCurrentLevelHeader->weatherVelY << 8, gCurrentLevelHeader->weatherVelZ << 8, gCurrentLevelHeader->weatherIntensity * 257, gCurrentLevelHeader->weatherOpacity * 257); func_800AB308(-1, -0x200); } if (gCurrentLevelHeader->unk49 == -1) { - gCurrentLevelHeader->unkA4 = load_texture(gCurrentLevelHeader->unkA4); - gCurrentLevelHeader->unkA8 = (u16)0; - gCurrentLevelHeader->unkAA = (u16)0; + gCurrentLevelHeader->unkA4 = load_texture((s32) gCurrentLevelHeader->unkA4); + gCurrentLevelHeader->unkA8 = 0; + gCurrentLevelHeader->unkAA = 0; } - if ((s32)gCurrentLevelHeader->pulseLightData != -1) { - // Only used in spaceport alpha for some pulsating lights. - gCurrentLevelHeader->pulseLightData = get_misc_asset((s32)gCurrentLevelHeader->pulseLightData); + if ((s32) gCurrentLevelHeader->pulseLightData != -1) { + gCurrentLevelHeader->pulseLightData = (PulsatingLightData *) get_misc_asset((s32) gCurrentLevelHeader->pulseLightData); init_pulsating_light_data(gCurrentLevelHeader->pulseLightData); } update_camera_fov(gCurrentLevelHeader->cameraFOV); @@ -599,9 +593,6 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl reset_video_delta_time(); func_8007AB24(gCurrentLevelHeader->unk4[numberOfPlayers]); } -#else -GLOBAL_ASM("asm/non_matchings/game/load_level.s") -#endif void func_8006BD10(f32 arg0) { if (gCurrentLevelHeader->music != 0) { @@ -1219,7 +1210,7 @@ void ingame_logic_loop(s32 updateRate) { } init_rdp_and_framebuffer(&gCurrDisplayList); render_borders_for_multiplayer(&gCurrDisplayList); - func_800A8474(&gCurrDisplayList, &gGameCurrMatrix, &gGameCurrVertexList, updateRate); + render_minimap_and_misc_hud(&gCurrDisplayList, &gGameCurrMatrix, &gGameCurrVertexList, updateRate); render_second_multiplayer_borders(&gCurrDisplayList); if (D_800DD39C != 0) { if (func_800214C4() != 0) { @@ -1817,7 +1808,10 @@ s8 is_game_paused(void) { return gIsPaused; } -s8 func_8006EAB0(void) { +/** + * Returns the status of the post-race shrunken viewport. +*/ +s8 is_postrace_viewport_active(void) { return gPostRaceViewPort; } diff --git a/src/game.h b/src/game.h index f6eaea2e..ac949727 100644 --- a/src/game.h +++ b/src/game.h @@ -35,9 +35,9 @@ enum NumberOfPlayers { FOUR_PLAYERS = 3 }; -extern s8 D_800DD314; +extern s8 gCurrentDefaultVehicle; extern u8 D_800DD318; -extern s32 D_800DD31C; +extern s32 gIsInRace; extern s32 gFunc80068158Checksum; extern s32 gFunc80068158Length; extern s16 D_800DD328; @@ -88,7 +88,7 @@ s8 func_8006B14C(s32 mapId); s8 func_8006B190(s32 mapId); s32 get_hub_area_id(s32 worldId); void get_number_of_levels_and_worlds(s32 *outLevelCount, s32 *outWorldCount); -s32 func_8006B240(void); +s32 check_if_in_race(void); void func_8006BD10(f32 arg0); s32 func_8006BD88(void); u8 get_current_level_race_type(void); @@ -132,7 +132,7 @@ void func_8006E994(Settings *settings); void func_8006EA58(void); Settings *get_settings(void); s8 is_game_paused(void); -s8 func_8006EAB0(void); +s8 is_postrace_viewport_active(void); s32 is_reset_pressed(void); s32 func_8006EB14(void); void func_8006EB24(void); @@ -161,12 +161,12 @@ void pre_intro_loop(void); s32 is_controller_missing(void); s32 check_imem_validity(void); void ingame_logic_loop(s32 updateRate); +void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); //Non Matching void func_8006ECFC(s32 numberOfPlayers); void func_8006DCF8(s32 arg0); void func_8006EFDC(void); -void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); void func_8006A6B0(void); void func_80010994(s32 updateRate); diff --git a/src/game_ui.c b/src/game_ui.c index 93a0ebfd..08c3b4f9 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -18,6 +18,7 @@ #include "unknown_0255E0.h" #include "unknown_078050.h" #include "unknown_003260.h" +#include "printf.h" extern u32 osTvType; @@ -136,7 +137,7 @@ u8 D_800E2794[4][4] = { {2, 2, 2, 2} }; -s8 D_800E27A4[4] = { +s8 gHudMultiplayerUIToggle[4] = { 1, 1, 1, 1 }; @@ -150,7 +151,7 @@ s8 D_800E27AC[12] = { u8 D_800E27B8 = 0; -ByteColour D_800E27BC[40] = { +ByteColour gHudMinimapColours[40] = { { 255, 160, 0 }, { 255, 255, 0 }, { 0, 128, 255 }, @@ -249,7 +250,7 @@ f32 D_80126D30; u8 D_80126D34; u8 D_80126D35; u8 gHideRaceTimer; -u8 D_80126D37; +u8 gNumActivePlayers; u8 gWrongWayNagPrefix; s32 D_80126D3C; s32 gHUDVoiceSoundMask; @@ -262,7 +263,7 @@ u8 gMinimapGreen; u8 gMinimapBlue; s32 D_80126D58; s32 D_80126D5C; -LevelHeader *D_80126D60; +LevelHeader *gHudLevelHeader; u8 D_80126D64; u8 D_80126D65; u8 D_80126D66; @@ -312,13 +313,13 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s if (D_8012718A) { arg3 = get_racer_object_by_port(1 - D_80126D08); } - D_80126D60 = get_current_level_header(); + gHudLevelHeader = get_current_level_header(); if (arg3 == NULL) { if (func_8001E440() == 10) { arg3 = get_racer_object_by_port(0); } } - if (arg3 != NULL && !(D_80126D60->unkBC & 2)) { + if (arg3 != NULL && !(gHudLevelHeader->unkBC & 2)) { if (get_render_context() != DRAW_MENU) { gHUDCurrDisplayList = *dList; gHUDCurrMatrix = *mtx; @@ -345,7 +346,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s D_80126CDC = D_80126CE0[D_80126D08]; if (func_8001E440() != 10) { if (gHUDNumPlayers == ONE_PLAYER) { - if (get_buttons_pressed_from_player(D_80126D10) & D_CBUTTONS && racer->racer.raceFinished == FALSE && ((D_80126D60->race_type == RACETYPE_DEFAULT) || D_80126D60->race_type == RACETYPE_HORSESHOE_GULCH) && D_80126D34) { + if (get_buttons_pressed_from_player(D_80126D10) & D_CBUTTONS && racer->racer.raceFinished == FALSE && ((gHudLevelHeader->race_type == RACETYPE_DEFAULT) || gHudLevelHeader->race_type == RACETYPE_HORSESHOE_GULCH) && D_80126D34) { D_800E2790 = 1 - D_800E2790; play_sound_global((SOUND_TING_HIGHER + D_800E2790), NULL); if (D_800E2790) { @@ -354,7 +355,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s D_800E27B8 = 0; } } - } else if (get_buttons_pressed_from_player(D_80126D10) & D_CBUTTONS && racer->racer.raceFinished == FALSE && !(D_80126D60->race_type & RACETYPE_CHALLENGE) && D_80126D34) { + } else if (get_buttons_pressed_from_player(D_80126D10) & D_CBUTTONS && racer->racer.raceFinished == FALSE && !(gHudLevelHeader->race_type & RACETYPE_CHALLENGE) && D_80126D34) { if (D_800E2794[gHUDNumPlayers][racer->racer.playerIndex] < PLAYER_FOUR) { D_800E2794[gHUDNumPlayers][racer->racer.playerIndex]++; } else { @@ -363,8 +364,8 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s play_sound_global((SOUND_TING_HIGHEST - (D_800E2794[gHUDNumPlayers][racer->racer.playerIndex] == 0)), NULL); } if (get_buttons_pressed_from_player(D_80126D10) & R_CBUTTONS && racer->racer.raceFinished == FALSE && D_80126D34 && D_80126CD0 == 0) { - D_800E27A4[gHUDNumPlayers] = 1 - D_800E27A4[gHUDNumPlayers]; - if (D_800E27A4[gHUDNumPlayers] == FALSE) { + gHudMultiplayerUIToggle[gHUDNumPlayers] = 1 - gHudMultiplayerUIToggle[gHUDNumPlayers]; + if (gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { play_sound_global(SOUND_TING_LOW, NULL); } else { play_sound_global(SOUND_TING_HIGH, NULL); @@ -372,7 +373,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s } } if (gRaceStartShowHudStep == 0) { - if (D_80126D60->race_type & RACETYPE_CHALLENGE || D_80126D60->race_type == RACETYPE_DEFAULT || D_80126D60->race_type == RACETYPE_HORSESHOE_GULCH || D_80126D60->race_type == RACETYPE_BOSS) { + if (gHudLevelHeader->race_type & RACETYPE_CHALLENGE || gHudLevelHeader->race_type == RACETYPE_DEFAULT || gHudLevelHeader->race_type == RACETYPE_HORSESHOE_GULCH || gHudLevelHeader->race_type == RACETYPE_BOSS) { D_800E2770[0].unk2 = 0x7F; D_800E2770[1].unk2 = 0x7F; func_80001844(); @@ -420,7 +421,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s } gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 255); func_800A7A60(arg3, &gHUDCurrDisplayList); - func_80067F2C(&gHUDCurrDisplayList, &gHUDCurrMatrix); + set_ortho_matrix_view(&gHUDCurrDisplayList, &gHUDCurrMatrix); gDPSetEnvColor(gHUDCurrDisplayList++, 255, 255, 255, 0); sp2C = func_8001139C(&gHUDCurrDisplayList) >> 1; if (func_8000E4D8()) { @@ -513,7 +514,7 @@ void func_800A0DC0(s32 arg0, Object *arg1, s32 updateRate) { render_wrong_way_text(racer, updateRate); render_race_start(arg0, updateRate); - if (D_80126D60->race_type == RACETYPE_DEFAULT) { + if (gHudLevelHeader->race_type == RACETYPE_DEFAULT) { render_lap_count(racer, updateRate); } @@ -642,7 +643,7 @@ void render_hud_challenge_eggs(s32 arg0, Object *arg1, s32 updateRate) { } else { D_80126CDC->unk67A = (D_80126CDC->unk67A + (updateRate * 2)) - 255; } - if (D_80126D37 != 2) { + if (gNumActivePlayers != 2) { func_800A14F0(arg1, updateRate); } func_80068508(0); @@ -729,7 +730,7 @@ void render_speedometer(Object *obj, UNUSED s32 updateRate) { Object_64* racer64; s32 opacity; - if (D_80126D37 == 1) { + if (gNumActivePlayers == 1) { if (!check_if_showing_cutscene_camera()) { racer64 = obj->unk64; if (racer64->racer.raceFinished == FALSE) { @@ -763,7 +764,7 @@ void render_speedometer(Object *obj, UNUSED s32 updateRate) { D_80126CDC->unk4C4 += ((vel - D_80126CDC->unk4C4) / 8); } } - if (D_800E27A4[gHUDNumPlayers] == FALSE) { + if (gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { if (D_80126CD3 & 2) { opacity = 255.0f - ((D_80126CD0 * 255.0f) / D_8012718B); } else { @@ -870,7 +871,7 @@ void render_racer_bananas(Object_Racer *racer, s32 updateRate) { UNUSED s16 pad; s32 temp_lo; u8 var_v1; - if(racer->playerIndex == PLAYER_COMPUTER || (((gHUDNumPlayers < TWO_PLAYERS || D_800E2794[gHUDNumPlayers][racer->playerIndex] == PLAYER_THREE || D_80126D60->race_type == RACETYPE_CHALLENGE_BANANAS || D_80126D60->race_type == RACETYPE_CHALLENGE_BATTLE) && racer->raceFinished == FALSE) && (gHUDNumPlayers < TWO_PLAYERS || (racer->lap < 1) || racer->lap_times[racer->lap] >= 180 || D_80126D60->race_type & RACETYPE_CHALLENGE))) { + if(racer->playerIndex == PLAYER_COMPUTER || (((gHUDNumPlayers < TWO_PLAYERS || D_800E2794[gHUDNumPlayers][racer->playerIndex] == PLAYER_THREE || gHudLevelHeader->race_type == RACETYPE_CHALLENGE_BANANAS || gHudLevelHeader->race_type == RACETYPE_CHALLENGE_BATTLE) && racer->raceFinished == FALSE) && (gHUDNumPlayers < TWO_PLAYERS || (racer->lap < 1) || racer->lap_times[racer->lap] >= 180 || gHudLevelHeader->race_type & RACETYPE_CHALLENGE))) { func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk240); bananas = racer->bananas; var_v1 = D_80126CDC->unkF8; @@ -936,12 +937,16 @@ void render_racer_bananas(Object_Racer *racer, s32 updateRate) { } } -void func_800A45F0(Object_Racer* racer) { +/** + * Renders the icons and secured treasure in Smokey's castle. + * In 4 player, all icons are skipped and in 3 player, player 4's icon is shown on their quadrant. +*/ +void render_treasure_hud(Object_Racer *racer) { s32 i; s32 sp48; sp48 = D_80126CDC->unk410; - if (D_80126D37 < 3 || (D_80126D37 == 3 && racer->playerIndex == PLAYER_COMPUTER)) { + if (gNumActivePlayers < 3 || (gNumActivePlayers == 3 && racer->playerIndex == PLAYER_COMPUTER)) { D_80126CDC->unk646 = racer->characterId + 56; D_80126CD5 = TRUE; func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk640); @@ -1046,7 +1051,7 @@ GLOBAL_ASM("asm/non_matchings/game_ui/func_800A4C44.s") void render_lap_count(Object_Racer *racer, s32 updateRate) { if (racer->raceFinished == FALSE && (gHUDNumPlayers <= ONE_PLAYER || racer->lap <= 0 || racer->lap_times[racer->lap] >= 180) && (gHUDNumPlayers <= ONE_PLAYER || D_800E2794[gHUDNumPlayers][racer->playerIndex] == 3)) { - if (D_80126D60->laps == (0, racer->unk194 + 1) && gHUDNumPlayers < THREE_PLAYERS) { + if (gHudLevelHeader->laps == (0, racer->unk194 + 1) && gHUDNumPlayers < THREE_PLAYERS) { D_80126CDC->unk21A += updateRate; if (D_80126CDC->unk21A > 6) { D_80126CDC->unk218++; @@ -1058,12 +1063,12 @@ void render_lap_count(Object_Racer *racer, s32 updateRate) { func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk200); } func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk60); - if (racer->unk194 >= D_80126D60->laps - 1) { - D_80126CDC->unk98 = D_80126D60->laps; + if (racer->unk194 >= gHudLevelHeader->laps - 1) { + D_80126CDC->unk98 = gHudLevelHeader->laps; } else { D_80126CDC->unk98 = racer->unk194 + 1; } - D_80126CDC->unkD8 = D_80126D60->laps; + D_80126CDC->unkD8 = gHudLevelHeader->laps; func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk80); func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unkA0); func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unkC0); @@ -1073,7 +1078,7 @@ void render_lap_count(Object_Racer *racer, s32 updateRate) { } if (is_game_paused() == FALSE) { if (racer->lap_times[racer->lap] < 30 && D_80126CDC->unk3DA == 0 && racer->raceFinished == FALSE) { - if ((racer->lap == 1) && D_80126D60->laps >= 3) { + if ((racer->lap == 1) && gHudLevelHeader->laps >= 3) { D_80126CDC->unk3DA = 2; D_80126CDC->unk3DB = 1; D_80126CDC->unk3DD = 0; @@ -1105,7 +1110,7 @@ void render_lap_count(Object_Racer *racer, s32 updateRate) { } break; } - } else if (D_80126D60->laps == (0, racer->lap + 1) && racer->lap != 0) { + } else if (gHudLevelHeader->laps == (0, racer->lap + 1) && racer->lap != 0) { D_80126CDC->unk3DA = 3; D_80126CDC->unk3DB = -1; D_80126CDC->unk3DD = 0; @@ -1360,7 +1365,7 @@ void render_weapon_hud(Object *obj, s32 updateRate) { if (D_80126CDC->unk5D != racerObj->racer.balloon_level) { if (racerObj->racer.balloon_level == 0) { D_80126CDC->unk5C = 120; - } else if (D_80126D37 == 1) { + } else if (gNumActivePlayers == 1) { D_80126CDC->unk5C = 0; } else { D_80126CDC->unk5C = 120; @@ -1444,7 +1449,7 @@ void render_race_time(Object_Racer *racer, s32 updateRate) { if (!(gHUDNumPlayers != ONE_PLAYER && D_800E2794[gHUDNumPlayers][racer->playerIndex] != 1) || (gHUDNumPlayers > ONE_PLAYER && racer->lap > 0 && racer->lap_times[racer->lap] < 180)) { if (racer->raceFinished == FALSE) { timerHideCounter = D_80126CDC->unk15A + 127; - if (racer->lap > 0 && racer->lap_times[racer->lap] < 180 && racer->lap < D_80126D60->laps) { + if (racer->lap > 0 && racer->lap_times[racer->lap] < 180 && racer->lap < gHudLevelHeader->laps) { stopwatchTimer = racer->lap_times[racer->lap - 1]; countingDown = TRUE; if (timerHideCounter == 0) { @@ -1452,7 +1457,7 @@ void render_race_time(Object_Racer *racer, s32 updateRate) { } } else { stopwatchTimer = 0; - for (i = 0; racer->unk194 >= i && i < D_80126D60->laps; i++) { + for (i = 0; racer->unk194 >= i && i < gHudLevelHeader->laps; i++) { stopwatchTimer += racer->lap_times[i]; } countingDown = stopwatchTimer == 0 || racer->raceFinished || is_game_paused(); @@ -1492,7 +1497,7 @@ void render_race_time(Object_Racer *racer, s32 updateRate) { } } - if (D_80126D37 == 1) { + if (gNumActivePlayers == 1) { func_800A7FBC(D_80126CDC->unk16C, D_80126CDC->unk170, minutes, seconds, hundredths, 0); } else { func_800A7FBC(D_80126CDC->unk16C, D_80126CDC->unk170, minutes, seconds, hundredths, 1); @@ -1514,60 +1519,62 @@ void func_800A83B4(LevelModel *model) { model->unk20 = (s32)func_8007C12C(model->unk20, 1); } -s8 func_800A8458(void) { - return D_800E27A4[gHUDNumPlayers]; +/** + * Return's the HUD toggle setting of each player. + * This shows either the lap count, banana count or neither. +*/ +s8 get_multiplayer_hud_setting(void) { + return gHudMultiplayerUIToggle[gHUDNumPlayers]; } -#ifdef NON_MATCHING -void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) { - UNUSED s32 pad2; - LevelModel *lvlMdl; // sp158 +/** + * Renders the minimap in all modes as well as a few other random pieces of HUD. + * This function also handles the HUD in 3 or 4 player, instead of the normal dedicated functions it has. +*/ +void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 updateRate) { + Object_Racer *curRacerObj; + LevelModel *lvlMdl; s32 sp154; Object **objectGroup; - UNUSED s32 pad4; + Object_Racer *tempVar4; Object_Racer *someRacer; s32 i; s32 objectCount; - UNUSED s32 pad6; - ObjectTransform_800A8474 objTrans; // sp120 + UNUSED s32 tempVar3; + ObjectTransform_800A8474 objTrans; f32 sp11C; f32 sp118; f32 sp114; u8 sp113; s32 mapOpacity; s32 opacity; - Object_Racer *pad11; - UNUSED s32 pad10; - s32 pad12; - UNUSED s32 pad5; - s32 sp144; - UNUSED s32 pad1; - UNUSED s32 pad8; - Object_Racer *curRacerObj; - s32 spE4; - s32 spE0; - UNUSED s32 pad3; - UNUSED s32 pad9; + UNUSED s32 pad[2]; + s32 temp_s1_2; + s32 var_a0_5; s32 spF4; s32 spF0; + s32 tempVar1; + s32 temp_s1_3; + s32 spE4; + s32 spE0; + UNUSED s32 pad9; + Object *temp_v0_8; + s32 tempVar2; + s32 sp144; s32 racerCount; - Object **racerGroup; + UNUSED s32 pad2; ObjectSegment *someObjSeg; + Object **racerGroup; s32 spBC; - s32 temp_f16; - s32 temp_f6; - s32 temp_s0; - u16 new_var; - u8 new_var2; s32 temp_s0_2; s32 temp_s0_3; s32 temp_s1; - s32 temp_s1_2; - s32 temp_s1_3; + s32 temp_s0; + s32 temp_f16; + s32 temp_f6; s32 temp_s3; - Object *temp_v0_8; - s32 var_a0_5; s32 temp; + UNUSED s32 pad3[4]; func_800A0BD4(updateRate); @@ -1587,7 +1594,7 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) if (D_80126CF4[i] && i != 40) { if (++D_80126CD8[i] > 60) { if ((D_80126CF0[i] & (0x4000 | 0x8000)) == (0x4000 | 0x8000)) { - free_texture((TextureHeader *) D_80126CF4[i]); + free_texture((TextureHeader *)D_80126CF4[i]); } else if (D_80126CF0[i] & 0x8000) { free_sprite((Sprite *) D_80126CF4[i]); } else if (D_80126CF0[i] & 0x4000) { @@ -1600,24 +1607,24 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) } } - D_80126D60 = get_current_level_header(); + gHudLevelHeader = get_current_level_header(); objectGroup = get_racer_objects_by_port(&objectCount); gHUDCurrDisplayList = *dList; gHUDCurrMatrix = *mtx; - gHUDCurrVertex = *triList; - if (D_80126D60->race_type == RACETYPE_CHALLENGE_EGGS) { - if (D_80126D37 == 2 && D_800E27A4[gHUDNumPlayers] == FALSE) { + gHUDCurrVertex = *vtx; + if (gHudLevelHeader->race_type == RACETYPE_CHALLENGE_EGGS) { + if (gNumActivePlayers == 2 && gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { func_800A14F0(NULL, updateRate); reset_render_settings(&gHUDCurrDisplayList); } else { - if (D_80126D37 == 3) { - pad11 = NULL; - for(pad12 = 0; pad12 < objectCount; pad12++) { - if (objectGroup[pad12]->unk64->racer.playerIndex == PLAYER_COMPUTER) { - pad11 = &objectGroup[pad12]->unk64->racer; + if (gNumActivePlayers == 3) { + tempVar4 = NULL; + for(tempVar2 = 0; tempVar2 < objectCount; tempVar2++) { + if (objectGroup[tempVar2]->unk64->racer.playerIndex == PLAYER_COMPUTER) { + tempVar4 = &objectGroup[tempVar2]->unk64->racer; } } - if (pad11 != NULL) { + if (tempVar4 != NULL) { temp_s0 = D_80126CDC->unk64C; temp_s1 = D_80126CDC->unk650; spF4 = D_80126CDC->unk66C; @@ -1632,7 +1639,7 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) D_80126CDC->unk650 *= 1.1; D_80126CDC->unk670 *= 1.1; } - func_800A19A4(pad11, updateRate); + func_800A19A4(tempVar4, updateRate); D_800E2834 = -2; D_80126CDC->unk64C = temp_s0; D_80126CDC->unk650 = temp_s1; @@ -1641,21 +1648,23 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) } } } - } else if (D_80126D60->race_type == RACETYPE_CHALLENGE_BATTLE) { - if (D_80126D37 == 2 && D_800E27A4[gHUDNumPlayers] == FALSE) { + } else if (gHudLevelHeader->race_type == RACETYPE_CHALLENGE_BATTLE) { + // Show life counter and icons in 2 player. + if (gNumActivePlayers == 2 && gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { func_80068508(TRUE); func_8007BF1C(FALSE); - func_80067F2C(&gHUDCurrDisplayList, &gHUDCurrMatrix); + set_ortho_matrix_view(&gHUDCurrDisplayList, &gHUDCurrMatrix); func_800A1E48(0, updateRate); func_80068508(FALSE); reset_render_settings(&gHUDCurrDisplayList); func_8007BF1C(TRUE); } else { - if (D_80126D37 == 3) { + // In 3/4 player, just show the life counter. + if (gNumActivePlayers == 3) { curRacerObj = NULL; - for(pad12 = 0; pad12 < objectCount; pad12++) { - if (objectGroup[pad12]->unk64->racer.playerIndex == PLAYER_COMPUTER) { - curRacerObj = &objectGroup[pad12]->unk64->racer; + for(tempVar2 = 0; tempVar2 < objectCount; tempVar2++) { + if (objectGroup[tempVar2]->unk64->racer.playerIndex == PLAYER_COMPUTER) { + curRacerObj = &objectGroup[tempVar2]->unk64->racer; } } if (curRacerObj != NULL) { @@ -1663,7 +1672,7 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) spE4 = D_80126CDC->unk64C; spE0 = D_80126CDC->unk650; func_8007BF1C(FALSE); - func_80067F2C(&gHUDCurrDisplayList, &gHUDCurrMatrix); + set_ortho_matrix_view(&gHUDCurrDisplayList, &gHUDCurrMatrix); func_80068508(TRUE); D_80126CDC->unk64C = 225.0f; if (osTvType == TV_TYPE_PAL) { @@ -1673,25 +1682,24 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) } if (osTvType == TV_TYPE_PAL) { var_a0_5 = (66.0f - D_80126CDC->unk36C) - 4.0f; - pad12 = -114.0f - D_80126CDC->unk370; + temp = -114.0f - D_80126CDC->unk370; } else { var_a0_5 = 66.0f - D_80126CDC->unk36C; - pad12 = -100.0f - D_80126CDC->unk370; + temp = -100.0f - D_80126CDC->unk370; } D_80126CDC->unk36C += var_a0_5; - D_80126CDC->unk370 += pad12; + D_80126CDC->unk370 += temp; D_80126CDC->unkEC += var_a0_5; - D_80126CDC->unkF0 += pad12; + D_80126CDC->unkF0 += temp; D_80126CDC->unk38C += var_a0_5; - D_80126CDC->unk390 += pad12; + D_80126CDC->unk390 += temp; D_80126CDC->unk10C += var_a0_5; - D_80126CDC->unk110 -= pad12 + 1; + D_80126CDC->unk110 -= temp + 1; D_80126CDC->unk12C += var_a0_5; - D_80126CDC->unk130 -= pad12 + 1; + D_80126CDC->unk130 -= temp + 1; D_80126CDC->unk24C += var_a0_5; - D_80126CDC->unk250 -= pad12; - new_var = curRacerObj->characterId; - D_80126CDC->unk646 = new_var + 56; + D_80126CDC->unk250 -= temp; + D_80126CDC->unk646 = curRacerObj->characterId + 56; if (osTvType == TV_TYPE_PAL) { D_80126CDC->unk64C -= 4.0f; D_80126CDC->unk66C -= 4.0f; @@ -1703,21 +1711,18 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) D_80126CDC->unkFB = curRacerObj->bananas; } render_racer_bananas(curRacerObj, updateRate); - - - D_80126CDC->unk36C -= var_a0_5; - D_80126CDC->unk370 -= pad12; + D_80126CDC->unk370 -= temp; D_80126CDC->unkEC -= var_a0_5; - D_80126CDC->unkF0 -= pad12; + D_80126CDC->unkF0 -= temp; D_80126CDC->unk38C -= var_a0_5; - D_80126CDC->unk390 -= pad12; + D_80126CDC->unk390 -= temp; D_80126CDC->unk10C -= var_a0_5; - D_80126CDC->unk110 += pad12 + 1; + D_80126CDC->unk110 += temp + 1; D_80126CDC->unk12C -= var_a0_5; - D_80126CDC->unk130 += pad12 + 1; + D_80126CDC->unk130 += temp + 1; D_80126CDC->unk24C -= var_a0_5; - D_80126CDC->unk250 += pad12; + D_80126CDC->unk250 += temp; D_80126CDC->unk64C = spE4; D_80126CDC->unk650 = spE0; func_8007BF1C(TRUE); @@ -1726,15 +1731,16 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) } } } - } else if (D_80126D60->race_type == RACETYPE_CHALLENGE_BANANAS) { - if ((D_80126D37 == 2) && (D_800E27A4[gHUDNumPlayers] == FALSE)) { + } else if (gHudLevelHeader->race_type == RACETYPE_CHALLENGE_BANANAS) { + if (gNumActivePlayers == 2 && gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { temp_s0_2 = D_80126CDC->unk64C; temp_s1_2 = D_80126CDC->unk650; temp_s3 = D_80126CDC->unk40C; spBC = D_80126CDC->unk410; racerGroup = get_racer_objects(&racerCount); for (sp144 = 0; sp144 < racerCount; sp144++) { - func_800A45F0(&racerGroup[sp144]->unk64->racer); + someRacer = (Object_Racer *) racerGroup[sp144]->unk64; + render_treasure_hud(someRacer); if (osTvType == TV_TYPE_PAL) { D_80126CDC->unk650 += 66.0; D_80126CDC->unk410 += 66.0; @@ -1747,14 +1753,14 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) D_80126CDC->unk650 = temp_s1_2; D_80126CDC->unk40C = temp_s3; D_80126CDC->unk410 = spBC; - } else if (D_80126D37 == 3) { - pad11 = NULL; - for(pad12 = 0; pad12 < objectCount; pad12++) { - if (objectGroup[pad12]->unk64->racer.playerIndex == PLAYER_COMPUTER) { - pad11 = &objectGroup[pad12]->unk64->racer; + } else if (gNumActivePlayers == 3) { + tempVar4 = NULL; + for(tempVar2 = 0; tempVar2 < objectCount; tempVar2++) { + if (objectGroup[tempVar2]->unk64->racer.playerIndex == PLAYER_COMPUTER) { + tempVar4 = &objectGroup[tempVar2]->unk64->racer; } } - if (pad11 != NULL) { + if (tempVar4 != NULL) { temp_s0_3 = D_80126CDC->unk64C; temp_s1_3 = D_80126CDC->unk650; temp_f16 = D_80126CDC->unk40C; @@ -1771,7 +1777,7 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) D_80126CDC->unk650 = (s32) D_80126CDC->unk650; D_80126CDC->unk410 = (s32) D_80126CDC->unk410; } - func_800A45F0(pad11); + render_treasure_hud(tempVar4); D_80126CDC->unk64C = temp_s0_3; D_80126CDC->unk650 = temp_s1_3; D_80126CDC->unk40C = temp_f16; @@ -1781,186 +1787,188 @@ void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **triList, s32 updateRate) } if (D_80127180 != 0) { gHudSprites[D_80127180].texture = NULL; - render_textured_rectangle(&gHUDCurrDisplayList, (DrawTexture *) &gHudSprites, 0, 0, 255, 255, 255, 255); + render_textured_rectangle(&gHUDCurrDisplayList, gHudSprites, 0, 0, 255, 255, 255, 255); } *dList = gHUDCurrDisplayList; *mtx = gHUDCurrMatrix; - *triList = gHUDCurrVertex; - - if (!(D_80126D60->unkBC & 1)) { + *vtx = gHUDCurrVertex; + if (!(gHudLevelHeader->unkBC & 1)) { sp113 = TRUE; for(i = 0; i < objectCount; i++) { - if ( - objectGroup[i]->unk64->racer.playerIndex != PLAYER_COMPUTER && - objectGroup[i]->unk64->racer.raceFinished == FALSE) { + someRacer = (Object_Racer *) objectGroup[i]->unk64; + if (someRacer != NULL && + someRacer->playerIndex != PLAYER_COMPUTER && + someRacer->raceFinished == FALSE) { sp113 = FALSE; } } - if ((gHUDNumPlayers != THREE_PLAYERS || func_8006EAB0() == 0) && (!check_if_showing_cutscene_camera() && !sp113)) { - if (D_800E27A4[gHUDNumPlayers] != TRUE && !sp113) { + if((gHUDNumPlayers == THREE_PLAYERS && is_postrace_viewport_active()) || check_if_showing_cutscene_camera() || sp113) { + goto test; + } else if(gHudMultiplayerUIToggle[gHUDNumPlayers] != 1) { + test: + return; + } else { + reset_render_settings(&gHUDCurrDisplayList); + set_ortho_matrix_view(&gHUDCurrDisplayList, &gHUDCurrMatrix); + lvlMdl = get_current_level_model(); + if (lvlMdl == NULL) { return; + } + someObjSeg = get_active_camera_segment(); + func_80068508(TRUE); + sp154 = lvlMdl->unk20; + switch (gHUDNumPlayers) { + case TWO_PLAYERS: + D_80126D58 = 135; + D_80126D5C = -D_80126D20 / 2; + break; + case THREE_PLAYERS: + if (get_current_level_race_type() == RACETYPE_CHALLENGE_EGGS || + get_current_level_race_type() == RACETYPE_CHALLENGE_BATTLE || + get_current_level_race_type() == RACETYPE_CHALLENGE_BANANAS) { + D_80126D58 = (D_80126D1C / 2) - 8; + D_80126D5C = -D_80126D20 / 2; + } else { + D_80126D58 = ( D_80126D1C / 2) + 72; + D_80126D5C = -60 - (D_80126D20 / 2); + } + break; + case FOUR_PLAYERS: + D_80126D58 = (D_80126D1C / 2) - 8; + D_80126D5C = -D_80126D20 / 2; + break; + default: + D_80126D58 = 135; + D_80126D5C = -98; + break; + } + if (osTvType == TV_TYPE_PAL) { + D_80126D5C *= 1.2; + } + func_8007BF1C(FALSE); + objTrans.trans.x_position = D_80126D58 + D_80126D24 + D_80126D28; + objTrans.trans.y_position = D_80126D5C; + if (osTvType == TV_TYPE_PAL) { + objTrans.trans.x_position -= 4.0f; + } + objTrans.trans.z_rotation = -someObjSeg->trans.z_rotation; + objTrans.trans.x_rotation = 0; + if (get_filtered_cheats() & CHEAT_MIRRORED_TRACKS) { + objTrans.trans.y_rotation = -0x8000; + objTrans.trans.x_position -= D_80126D1C; } else { - reset_render_settings(&gHUDCurrDisplayList); - func_80067F2C(&gHUDCurrDisplayList, &gHUDCurrMatrix); - lvlMdl = get_current_level_model(); - if (lvlMdl != NULL) { - someObjSeg = func_80069D20(); - func_80068508(TRUE); - sp154 = lvlMdl->unk20; - switch (gHUDNumPlayers) { - case TWO_PLAYERS: - D_80126D58 = 135; - D_80126D5C = -D_80126D20 / 2; - break; - case THREE_PLAYERS: - if (get_current_level_race_type() == RACETYPE_CHALLENGE_EGGS || - get_current_level_race_type() == RACETYPE_CHALLENGE_BATTLE || - get_current_level_race_type() == RACETYPE_CHALLENGE_BANANAS) { - D_80126D58 = (D_80126D1C / 2) - 8; - D_80126D5C = -D_80126D20 / 2; - } else { - D_80126D58 = ( D_80126D1C / 2) + 72; - D_80126D5C = -60 - (D_80126D20 / 2); - } - break; - case FOUR_PLAYERS: - D_80126D58 = (D_80126D1C / 2) - 8; - D_80126D5C = -D_80126D20 / 2; - break; - default: - D_80126D58 = 135; - D_80126D5C = -98; - break; - } - if (osTvType == TV_TYPE_PAL) { - D_80126D5C *= 1.2; - } - func_8007BF1C(FALSE); - objTrans.trans.x_position = D_80126D58 + D_80126D24 + D_80126D28; - objTrans.trans.y_position = D_80126D5C; - if (osTvType == TV_TYPE_PAL) { - objTrans.trans.x_position -= 4.0f; - } - objTrans.trans.z_rotation = -someObjSeg->trans.z_rotation; - objTrans.trans.x_rotation = 0; - if (get_filtered_cheats() & CHEAT_MIRRORED_TRACKS) { - objTrans.trans.y_rotation = -0x8000; - objTrans.trans.x_position -= D_80126D1C; - } else { - objTrans.trans.y_rotation = 0; - } - objTrans.unk18 = 0; - objTrans.trans.z_position = 0.0f; - objTrans.trans.scale = 1.0f; - opacity = mapOpacity; - if (mapOpacity > 160) { - mapOpacity = 160; - } - if (D_80126D37 == 3) { - gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, mapOpacity); - } else { - gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, gMinimapRed, gMinimapGreen, gMinimapBlue, mapOpacity); - } - func_80068BF4(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, (ObjectSegment* ) &objTrans.trans, (unk80068BF4* ) sp154, 0); - sp11C = (lvlMdl->unk3E - lvlMdl->unk3C) / (f32) (lvlMdl->unk46 - lvlMdl->unk44); - sp118 = coss_f((lvlMdl->unk24 * 0xFFFF) / 360); - sp114 = sins_f((lvlMdl->unk24 * 0xFFFF) / 360); - if (func_8000E4D8() && func_8001B288()) { - temp_v0_8 = func_8001B2E0(); - if (temp_v0_8 != NULL) { - func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); - D_80126CDC->unk1E6 = 14; - D_80126CDC->unk1E4 = 0; - D_80126CDC->unk1E8 = 1.0f; - temp = (opacity * (f32) temp_v0_8->segment.unk38.half.lower) * 0.0078125; - gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 60, 60, 60, temp); - func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk1E0); - } - } - temp_v0_8 = func_8001B640(); - if (temp_v0_8 != NULL) { - func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); - D_80126CDC->unk1E4 = 0; - temp = (opacity * (f32) temp_v0_8->segment.unk38.half.lower) * 0.0078125; - gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, D_800E27BC[8].red, D_800E27BC[8].green, D_800E27BC[8].blue, temp); - D_80126CDC->unk1E8 = 1.0f; - D_80126CDC->unk1E6 = 14; - func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk1E0); - } - if (D_80126D60->race_type == RACETYPE_HUBWORLD) { - temp_v0_8 = func_80018C6C(); - if (temp_v0_8 != NULL) { - D_80126CDC->unk1E6 = 14; - func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); - D_80126CDC->unk1E4 = 0; - gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 0, 255, opacity); - D_80126CDC->unk1E8 = 1.0f; - func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk1E0); - } - } - for(i = objectCount - 1; i >= 0; i--) { - someRacer = &objectGroup[i]->unk64->racer; - if (someRacer != NULL) { - func_800AA3EC(objectGroup[i]->segment.trans.x_position, objectGroup[i]->segment.trans.z_position, sp114, sp118, sp11C); - if (someRacer->playerIndex != PLAYER_COMPUTER) { - D_80126CDC->unk1F0 -= 1.0f; - D_80126CDC->unk1E6 = 27; - D_80126CDC->unk1E4 = objectGroup[i]->segment.trans.y_rotation - ((lvlMdl->unk24 * 0xFFFF) / 360); - //D_80126CDC->unk1E4 = objectGroup[i]->segment.trans.y_rotation - (((lvlMdl->unk24 * 0xFFFF) / 360) & 0xFFFF); // fakematch - - new_var2 = get_filtered_cheats(); - if (new_var2 & CHEAT_MIRRORED_TRACKS) { - D_80126CDC->unk1E4 = 0xFFFF - D_80126CDC->unk1E4; - } - func_8007BF1C(TRUE); - } else { - D_80126CDC->unk1E4 = 0; - D_80126CDC->unk1E6 = 14; - } - if (func_8002341C() && someRacer->unk1D6 == 10) { - gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 0, 255, opacity); - } else { - gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, D_800E27BC[someRacer->characterId].red, D_800E27BC[someRacer->characterId].green, D_800E27BC[someRacer->characterId].blue, opacity); - } - if (!(get_current_level_race_type() & RACETYPE_CHALLENGE) || (!someRacer->raceFinished)) { - if (osTvType == TV_TYPE_PAL) { - D_80126CDC->unk1EC -= 4.0f; - } - if (get_current_level_race_type() == RACETYPE_CHALLENGE_BATTLE) { - switch (someRacer->unk212) { - case 0: - D_80126CDC->unk1E8 = 0.8f; - break; - case 1: - D_80126CDC->unk1E8 = 1.0f; - break; - case 2: - case 3: - D_80126CDC->unk1E8 = 1.2f; - break; - } - } else { - D_80126CDC->unk1E8 = 1.0f; - } - func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk1E0); - } - func_8007BF1C(FALSE); - } - } - gDPPipeSync(gHUDCurrDisplayList++); - func_80068508(FALSE); - func_8007BF1C(TRUE); - *dList = gHUDCurrDisplayList; - *mtx = gHUDCurrMatrix; - *triList = gHUDCurrVertex; + objTrans.trans.y_rotation = 0; + } + objTrans.unk18 = 0; + objTrans.trans.z_position = 0.0f; + objTrans.trans.scale = 1.0f; + opacity = mapOpacity; + if (mapOpacity > 160) { + mapOpacity = 160; + } + if (gNumActivePlayers == 3) { + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, mapOpacity); + } else { + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, gMinimapRed, gMinimapGreen, gMinimapBlue, mapOpacity); + } + render_orthi_triangle_image(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, (ObjectSegment* ) &objTrans.trans, (unk80068BF4* ) sp154, 0); + sp11C = (lvlMdl->unk3E - lvlMdl->unk3C) / (f32) (lvlMdl->unk46 - lvlMdl->unk44); + sp118 = coss_f((lvlMdl->unk24 * 0xFFFF) / 360); + sp114 = sins_f((lvlMdl->unk24 * 0xFFFF) / 360); + if (func_8000E4D8() && func_8001B288()) { + temp_v0_8 = func_8001B2E0(); + if (temp_v0_8 != NULL) { + func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); + D_80126CDC->unk1E6 = 14; + D_80126CDC->unk1E4 = 0; + D_80126CDC->unk1E8 = 1.0f; + tempVar1 = (opacity * (f32) temp_v0_8->segment.unk38.half.lower) * 0.0078125; + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 60, 60, 60, tempVar1); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk1E0); } } + temp_v0_8 = func_8001B640(); + if (temp_v0_8 != NULL) { + func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); + D_80126CDC->unk1E4 = 0; + tempVar1 = (opacity * (f32) temp_v0_8->segment.unk38.half.lower) * 0.0078125; + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, gHudMinimapColours[8].red, gHudMinimapColours[8].green, gHudMinimapColours[8].blue, tempVar1); + D_80126CDC->unk1E8 = 1.0f; + D_80126CDC->unk1E6 = 14; + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk1E0); + } + // Draw Taj's minimap icon. + if (gHudLevelHeader->race_type == RACETYPE_HUBWORLD) { + temp_v0_8 = find_taj_object(); + if (temp_v0_8 != NULL) { + D_80126CDC->unk1E6 = 14; + func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); + D_80126CDC->unk1E4 = 0; + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 0, 255, opacity); + D_80126CDC->unk1E8 = 1.0f; + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk1E0); + } + } + // Draw racer minimap icons. + // Non AI players get an arrow instead of a blob that rotates. + for (i = objectCount - 1; i >= 0; i--) { + temp_v0_8 = objectGroup[i]; + someRacer = (Object_Racer *) objectGroup[i]->unk64; + if (someRacer != NULL) { + func_800AA3EC(objectGroup[i]->segment.trans.x_position, objectGroup[i]->segment.trans.z_position, sp114, sp118, sp11C); + if (someRacer->playerIndex != PLAYER_COMPUTER) { + D_80126CDC->unk1F0 -= 1.0f; + D_80126CDC->unk1E6 = 27; + D_80126CDC->unk1E4 = (objectGroup[i]->segment.trans.y_rotation - ((lvlMdl->unk24 * 0xFFFF) / 360)) & 0xFFFF; + + if (get_filtered_cheats() & CHEAT_MIRRORED_TRACKS) { + D_80126CDC->unk1E4 = 0xFFFF - D_80126CDC->unk1E4; + } + func_8007BF1C(TRUE); + } else { + D_80126CDC->unk1E4 = 0; + D_80126CDC->unk1E6 = 14; + } + if (func_8002341C() && someRacer->unk1D6 == 10) { + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 0, 255, opacity); + } else { + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, gHudMinimapColours[someRacer->characterId].red, gHudMinimapColours[someRacer->characterId].green, gHudMinimapColours[someRacer->characterId].blue, opacity); + } + if (!(get_current_level_race_type() & RACETYPE_CHALLENGE) || (!someRacer->raceFinished)) { + if (osTvType == TV_TYPE_PAL) { + D_80126CDC->unk1EC -= 4.0f; + } + if (get_current_level_race_type() == RACETYPE_CHALLENGE_BATTLE) { + switch (someRacer->unk212) { + case 0: + D_80126CDC->unk1E8 = 0.8f; + break; + case 1: + D_80126CDC->unk1E8 = 1.0f; + break; + case 2: + case 3: + D_80126CDC->unk1E8 = 1.2f; + break; + } + } else { + D_80126CDC->unk1E8 = 1.0f; + } + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &D_80126CDC->unk1E0); + } + func_8007BF1C(FALSE); + } + } + gDPPipeSync(gHUDCurrDisplayList++); + func_80068508(FALSE); + func_8007BF1C(TRUE); + *dList = gHUDCurrDisplayList; + *mtx = gHUDCurrMatrix; + *vtx = gHUDCurrVertex; } } } -#else -GLOBAL_ASM("asm/non_matchings/game_ui/func_800A8474.s") -#endif + GLOBAL_ASM("asm/non_matchings/game_ui/func_800AA3EC.s") GLOBAL_ASM("asm/non_matchings/game_ui/func_800AA600.s") diff --git a/src/game_ui.h b/src/game_ui.h index 1ed66c59..9d91ed9a 100644 --- a/src/game_ui.h +++ b/src/game_ui.h @@ -296,7 +296,7 @@ void play_time_trial_end_message(s16 *playerID); void func_800A7484(u16 arg0, f32 arg1, s32 arg2); void func_800A74EC(u16 arg0, s32 arg1); void func_800A83B4(LevelModel *model); -s8 func_800A8458(void); +s8 get_multiplayer_hud_setting(void); void func_800AB194(s32 arg0); void func_800AB1AC(s32 arg0); void func_800AB1C8(void); @@ -312,6 +312,7 @@ void render_racer_bananas(Object_Racer *obj, s32 updateRate); void render_race_finish_position(Object_64 *obj, s32 updateRate); void render_speedometer(Object *obj, s32 updateRate); void render_lap_count(Object_Racer *racer, s32 updateRate); +void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtxList, s32 updateRate); // Non Matching void func_800A14F0(Object *, s32); @@ -321,7 +322,6 @@ void func_800A718C(Object_64 *obj); void func_800AA600(Gfx **dList, MatrixS **mtx, Vertex **vtxList, unk80126CDC **arg3); void func_8009ECF0(s32 viewPortCount); void func_800A003C(void); -void func_800A8474(Gfx **dList, MatrixS **mtx, Vertex **vtxList, s32 updateRate); void func_800A7FBC(s32, s32, s32 minutes, s32 seconds, s32 hundredths, s32); void func_800A1248(s32, Object*, s32); void func_800A1C04(s32, Object*, s32); @@ -333,7 +333,7 @@ void func_800095E8(s32, f32, f32, f32, s32, s32, f32, s32*); void func_800A0BD4(s32); void func_800A19A4(Object_Racer*, s32 updateRate); void func_800A1E48(s32, s32); -void func_800A45F0(Object_Racer*); +void render_treasure_hud(Object_Racer*); void func_800AA3EC(f32, f32, f32, f32, f32); #endif diff --git a/src/memory.c b/src/memory.c index 6b4dea4d..c404192d 100644 --- a/src/memory.c +++ b/src/memory.c @@ -65,13 +65,13 @@ MemoryPoolSlot *new_sub_memory_pool(s32 poolDataSize, s32 numSlots) { s32 size; MemoryPoolSlot *slots; UNUSED s32 unused_2; - s32 *temp = clear_status_register_flags(); + s32 *flags = clear_status_register_flags(); MemoryPoolSlot *newPool; size = poolDataSize + (numSlots * sizeof(MemoryPoolSlot)); slots = (MemoryPoolSlot *) allocate_from_main_pool_safe(size, COLOUR_TAG_WHITE); newPool = new_memory_pool(slots, size, numSlots); - set_status_register_flags(temp); + set_status_register_flags(flags); return newPool; } @@ -116,14 +116,14 @@ MemoryPoolSlot *new_memory_pool(MemoryPoolSlot *slots, s32 poolSize, s32 numSlot * Reserves and returns memory from the main memory pool. Has 2 assert checks. * Will cause an exception if the size is 0 or if memory cannot be reserved. */ -void *allocate_from_main_pool_safe(s32 size, u32 colorTag) { +void *allocate_from_main_pool_safe(s32 size, u32 colourTag) { void *temp_v0; if (size == 0) { - func_800B7460((s32 *)((u8 *)get_stack_pointer()->unk14), size, colorTag); + func_800B7460((s32 *)((u8 *)get_stack_pointer()->unk14), size, colourTag); } - temp_v0 = allocate_from_memory_pool(0, size, colorTag); + temp_v0 = allocate_from_memory_pool(0, size, colourTag); if (temp_v0 == (void *)NULL) { - func_800B7460((s32 *)((u8 *)get_stack_pointer()->unk14), size, colorTag); + func_800B7460((s32 *)((u8 *)get_stack_pointer()->unk14), size, colourTag); } return temp_v0; } @@ -131,51 +131,52 @@ void *allocate_from_main_pool_safe(s32 size, u32 colorTag) { /** * Reserves and returns memory from the main memory pool. Has no assert checks. */ -MemoryPoolSlot *allocate_from_main_pool(s32 size, u32 colorTag) { - return allocate_from_memory_pool(0, size, colorTag); +MemoryPoolSlot *allocate_from_main_pool(s32 size, u32 colourTag) { + return allocate_from_memory_pool(0, size, colourTag); } -#ifdef NON_EQUIVALENT -MemoryPoolSlot *allocate_from_memory_pool(s32 memoryPoolIndex, s32 size, u32 colorTag) { - MemoryPool *pool; +MemoryPoolSlot *allocate_from_memory_pool(s32 poolIndex, s32 size, u32 colourTag) { + s32 slotSize; MemoryPoolSlot *curSlot; + UNUSED s32 pad; + MemoryPool *pool; MemoryPoolSlot *slots; - s32 phi_a0; - s32 phi_a2; - s32 phi_s0; - s32 *sp28; - - sp28 = clear_status_register_flags(); - pool = &gMemoryPools[memoryPoolIndex]; - if (pool->curNumSlots + 1 == pool->maxNumSlots) { - set_status_register_flags(sp28); - } else { - if (size & 0xF) { - size = _ALIGN16(size); // The size of the pool should be 16-byte aligned - } - phi_a0 = 0; - phi_a2 = 0x7FFFFFFF; // INT_MAX - phi_s0 = -1; - while (phi_a0 != -1) { - curSlot = &pool->slots[phi_a0]; - if (!curSlot->flags && curSlot->size >= size && curSlot->size < phi_a2) { - phi_s0 = phi_a0; - phi_a2 = curSlot->size; - } - phi_a0 = curSlot->nextIndex; - } - if (phi_s0 != -1) { - allocate_memory_pool_slot(memoryPoolIndex, phi_s0, size, TRUE, FALSE, colorTag); - set_status_register_flags(sp28); - return pool->slots[phi_s0].data; - } - set_status_register_flags(sp28); + s32 *flags; + s32 nextIndex; + s32 currIndex; + + flags = clear_status_register_flags(); + if (size) {} // Fakematch + pool = &gMemoryPools[poolIndex]; + if ((pool->curNumSlots + 1) == (*pool).maxNumSlots) { + set_status_register_flags(flags); + return 0; } - return (MemoryPoolSlot *)NULL; + currIndex = -1; + if (size & 0xF) { + size = (size & ~0xF) + 0x10; + } + slots = pool->slots; + slotSize = 0x7FFFFFFF; + nextIndex = 0; + do { + curSlot = &slots[nextIndex]; + if (curSlot->flags == 0) { + if ((curSlot->size >= size) && (curSlot->size < slotSize)) { + slotSize = curSlot->size; + currIndex = nextIndex; + } + } + nextIndex = curSlot->nextIndex; + } while (nextIndex != -1); + if (currIndex != -1) { + allocate_memory_pool_slot(poolIndex, (s32) currIndex, size, 1, 0, colourTag); + set_status_register_flags(flags); + return (MemoryPoolSlot *) (slots + currIndex)->data; + } + set_status_register_flags(flags); + return 0; } -#else -GLOBAL_ASM("asm/non_matchings/memory/allocate_from_memory_pool.s") -#endif void *allocate_from_pool_containing_slots(MemoryPoolSlot *slots, s32 size) { s32 i; @@ -187,61 +188,56 @@ void *allocate_from_pool_containing_slots(MemoryPoolSlot *slots, s32 size) { return (void *)NULL; } -#ifdef NON_EQUIVALENT void *allocate_at_address_in_main_pool(s32 size, u8 *address, u32 colorTag) { - s32 *sp38; - s32 s0; + s32 i; MemoryPoolSlot *curSlot; MemoryPoolSlot *slots; - - sp38 = clear_status_register_flags(); + s32 *flags; + + flags = clear_status_register_flags(); + if (!size){} // Fakematch if ((gMemoryPools[0].curNumSlots + 1) == gMemoryPools[0].maxNumSlots) { - set_status_register_flags(sp38); + set_status_register_flags(flags); } else { - s0 = 0; - if (size & 0xF) { - size = _ALIGN16(size); // The size of the pool should be 16-byte aligned - } - slots = gMemoryPools[0].slots; - while (s0 != -1) { - curSlot = &slots[s0]; - if (curSlot->flags == 0) { - if ((address >= (u8 *)curSlot->data) && (((u8 *)curSlot->data + curSlot->size) >= (address + size))) { - if (address == (u8 *)curSlot->data) { - allocate_memory_pool_slot(0, s0, size, 1, 0, colorTag); - set_status_register_flags(sp38); - return curSlot->data; - } else { - s0 = allocate_memory_pool_slot(0, s0, address - (u8 *)curSlot->data, 0, 1, colorTag); - allocate_memory_pool_slot(0, s0, size, 1, 0, colorTag); - set_status_register_flags(sp38); - return slots[s0].data; - } + if (size & 0xF) { + size = _ALIGN16(size); + } + slots = gMemoryPools[0].slots; + for (i = 0; i != -1; i = curSlot->nextIndex) { + curSlot = &slots[i]; + if (curSlot->flags == 0) { + if ((u32) address >= (u32) curSlot->data && (u32)address + size <= (u32) curSlot->data + curSlot->size) { + if (address == (u8 *) curSlot->data) { + allocate_memory_pool_slot(0, i, size, 1, 0, colorTag); + set_status_register_flags(flags); + return curSlot->data; + } else { + i = allocate_memory_pool_slot(0, i, (u32) address - (u32) curSlot->data, 0, 1, colorTag); + allocate_memory_pool_slot(0, i, size, 1, 0, colorTag); + set_status_register_flags(flags); + return (slots + i)->data; } } - s0 = curSlot->nextIndex; } - set_status_register_flags(sp38); } - return NULL; + set_status_register_flags(flags); + } + return 0; } -#else -GLOBAL_ASM("asm/non_matchings/memory/allocate_at_address_in_main_pool.s") -#endif /** * Sets the state of the free queue. State is either 0, 1, or 2. * The free queue will get flushed if the state is set to 0. */ void set_free_queue_state(s32 state) { - s32 *sp2C = clear_status_register_flags(); + s32 *flags = clear_status_register_flags(); gFreeQueueState = state; if (state == 0) { // flush free queue if state is 0. while (gFreeQueueCount > 0) { free_slot_containing_address(gFreeQueue[--gFreeQueueCount].dataAddress); } } - set_status_register_flags(sp2C); + set_status_register_flags(flags); } /** @@ -249,13 +245,13 @@ void set_free_queue_state(s32 state) { * state is set to 0, otherwise the data will just be marked for deletion. */ void free_from_memory_pool(void *data) { - s32 *sp1C = clear_status_register_flags(); + s32 *flags = clear_status_register_flags(); if (gFreeQueueState == 0) { free_slot_containing_address(data); } else { func_80071440(data); } - set_status_register_flags(sp1C); + set_status_register_flags(flags); } /** @@ -263,9 +259,9 @@ void free_from_memory_pool(void *data) { */ void clear_free_queue(void) { s32 i; - s32 *sp28; + s32 *flags; - sp28 = clear_status_register_flags(); + flags = clear_status_register_flags(); for (i = 0; i < gFreeQueueCount;) { gFreeQueue[i].unk4--; @@ -279,63 +275,64 @@ void clear_free_queue(void) { } } - set_status_register_flags(sp28); + set_status_register_flags(flags); } -#ifdef NON_EQUIVALENT void free_slot_containing_address(u8 *address) { - s32 poolIndex; s32 slotIndex; + s32 poolIndex; + MemoryPool *pool; MemoryPoolSlot *slots; MemoryPoolSlot *slot; - + poolIndex = get_memory_pool_index_containing_address(address); - slots = gMemoryPools[poolIndex].slots; + pool = gMemoryPools; + slots = pool[poolIndex].slots; for (slotIndex = 0; slotIndex != -1; slotIndex = slot->nextIndex) { slot = &slots[slotIndex]; - if (address == (u8 *)slot->data) { + + if (address == (u8 *) slot->data) { if (slot->flags == 1 || slot->flags == 4) { - free_memory_pool_slot(poolIndex, slotIndex); + free_memory_pool_slot(poolIndex, slotIndex); } break; } + slot = &slots[slotIndex]; } } -#else -GLOBAL_ASM("asm/non_matchings/memory/free_slot_containing_address.s") -#endif - -#ifdef NON_EQUIVALENT -UNUSED void func_80071314(void) { - s32 *sp40; +void func_80071314(void) { + MemoryPoolSlot *slotPos; MemoryPool *pool; - MemoryPoolSlot *slot; + UNUSED s32 pad; + s32 *flags; s32 poolIndex; s32 slotIndex; - - sp40 = clear_status_register_flags(); - - for (poolIndex = gNumberOfMemoryPools; poolIndex != -1; poolIndex--) { + + flags = clear_status_register_flags(); + poolIndex = gNumberOfMemoryPools; + while (poolIndex != (-1)) { pool = &gMemoryPools[poolIndex]; - for (slotIndex = 0; slotIndex != -1; slotIndex = slot->nextIndex) { - slot = &pool->slots[slotIndex]; - if (slot->flags == 1) { + slotPos = pool->slots; + slotIndex = 0; + do { + if ((slotPos + slotIndex)->flags == 1) { free_memory_pool_slot(poolIndex, slotIndex); } - if (slot->flags == 4 && pool->curNumSlots == 1) { - free_memory_pool_slot(poolIndex, slotIndex); - } else { - set_status_register_flags(sp40); - return; + if ((slotPos + slotIndex)->flags == 4) { + if (pool->curNumSlots == 1) { + free_memory_pool_slot(poolIndex, slotIndex); + } else { + set_status_register_flags(flags); + return; + } } - } + slotIndex = (slotPos + slotIndex)->nextIndex; + } while (slotIndex != (-1)); + poolIndex--; } - set_status_register_flags(sp40); + set_status_register_flags(flags); } -#else -GLOBAL_ASM("asm/non_matchings/memory/func_80071314.s") -#endif void func_80071440(void *dataAddress) { gFreeQueue[gFreeQueueCount].dataAddress = dataAddress; @@ -347,9 +344,9 @@ s32 func_80071478(u8 *address) { s32 slotIndex; MemoryPoolSlot *slot; MemoryPool *pool; - s32 *sp18; + s32 *flags; - sp18 = clear_status_register_flags(); + flags = clear_status_register_flags(); pool = &gMemoryPools[get_memory_pool_index_containing_address(address)]; slotIndex = 0; while (slotIndex != -1) { @@ -357,13 +354,13 @@ s32 func_80071478(u8 *address) { if (address == (u8 *)slot->data) { if (slot->flags == 1 || slot->flags == 4) { slot->flags |= 2; - set_status_register_flags(sp18); + set_status_register_flags(flags); return 1; } } slotIndex = slot->nextIndex; } - set_status_register_flags(sp18); + set_status_register_flags(flags); return 0; } @@ -371,9 +368,9 @@ s32 func_80071538(u8 *address) { s32 slotIndex; MemoryPoolSlot *slot; MemoryPool *pool; - s32 *sp18; + s32 *flags; - sp18 = clear_status_register_flags(); + flags = clear_status_register_flags(); pool = &gMemoryPools[get_memory_pool_index_containing_address(address)]; slotIndex = 0; while (slotIndex != -1) { @@ -381,13 +378,13 @@ s32 func_80071538(u8 *address) { if (address == (u8 *)slot->data) { if (slot->flags & 2) { slot->flags ^= 2; - set_status_register_flags(sp18); + set_status_register_flags(flags); return 1; } } slotIndex = slot->nextIndex; } - set_status_register_flags(sp18); + set_status_register_flags(flags); return 0; } @@ -410,25 +407,26 @@ s32 get_memory_pool_index_containing_address(u8 *address) { return i; } -#ifdef NON_EQUIVALENT -// Regalloc issues void free_memory_pool_slot(s32 poolIndex, s32 slotIndex) { - s32 nextIndex, prevIndex, tempNextIndex; + s32 nextIndex; + s32 prevIndex; + s32 tempNextIndex; MemoryPool *pool; MemoryPoolSlot *slots; MemoryPoolSlot *slot; MemoryPoolSlot *nextSlot; MemoryPoolSlot *prevSlot; - + pool = &gMemoryPools[poolIndex]; slots = pool->slots; + pool = pool; // Fakematch slot = &slots[slotIndex]; - prevIndex = slot->prevIndex; nextIndex = slot->nextIndex; + prevIndex = slot->prevIndex; + slot = slot; // Fakematch nextSlot = &slots[nextIndex]; prevSlot = &slots[prevIndex]; slot->flags = 0; - if (nextIndex != -1) { if (nextSlot->flags == 0) { slot->size += nextSlot->size; @@ -455,51 +453,45 @@ void free_memory_pool_slot(s32 poolIndex, s32 slotIndex) { } } -#else -GLOBAL_ASM("asm/non_matchings/memory/free_memory_pool_slot.s") -#endif - // Unused? MemoryPoolSlot *func_80071774(s32 poolIndex) { return gMemoryPools[poolIndex].slots; } -#ifdef NON_EQUIVALENT -s32 allocate_memory_pool_slot(s32 memoryPoolIndex, s32 slotIndex, s32 size, s32 slotIsTaken, s32 newSlotIsTaken, u32 colorTag) { - s32 slotSize; - s32 newIndex; - s32 futureIndex; - MemoryPoolSlot *slot; - MemoryPoolSlot *newSlot; +s32 allocate_memory_pool_slot(s32 poolIndex, s32 slotIndex, s32 size, s32 slotIsTaken, s32 newSlotIsTaken, u32 colourTag) { MemoryPool *pool; - - pool = &gMemoryPools[memoryPoolIndex]; - slot = &pool->slots[slotIndex]; - slotSize = slot->size; - slot->flags = slotIsTaken; - slot->size = size; - slot->colorTag = colorTag; - if (size < slotSize) { - newIndex = pool->slots[pool->curNumSlots].index; + MemoryPoolSlot *poolSlots; + s32 index; + s32 nextIndex; + s32 poolSize; + + pool = &gMemoryPools[poolIndex]; + poolSlots = pool->slots; + pool = pool; // Fakematch + poolSlots[slotIndex].flags = slotIsTaken; + poolSize = poolSlots[slotIndex].size; + poolSlots[slotIndex].size = size; + poolSlots[slotIndex].colourTag = colourTag; + index = poolSlots[pool->curNumSlots].index; + if (size < poolSize) { + index = (pool->curNumSlots + poolSlots)->index; pool->curNumSlots++; - newSlot = &pool->slots[newIndex]; - newSlot->data = ((u8 *)slot->data) + size; - newSlot->size = slotSize - size; - newSlot->flags = newSlotIsTaken; - futureIndex = slot->nextIndex; - newSlot->prevIndex = slotIndex; - newSlot->nextIndex = futureIndex; - slot->nextIndex = newIndex; - if (futureIndex != -1) { - pool->slots[futureIndex].prevIndex = newIndex; + poolSlots[index].data = &poolSlots[slotIndex].data[size]; + poolSlots[index].size = poolSize; + poolSlots[index].size = poolSlots[index].size - size; + poolSlots[index].flags = newSlotIsTaken; + poolSize = poolSlots[slotIndex].nextIndex; + nextIndex = poolSize; + poolSlots[index].prevIndex = slotIndex; + poolSlots[index].nextIndex = nextIndex; + poolSlots[slotIndex].nextIndex = index; + if (nextIndex != -1) { + poolSlots[nextIndex].prevIndex = index; } - return newIndex; + return index; } return slotIndex; } -#else -GLOBAL_ASM("asm/non_matchings/memory/allocate_memory_pool_slot.s") -#endif /** * Returns the passed in address aligned to the next 16-byte boundary. @@ -536,22 +528,71 @@ u8 *align4(u8 *address) { return address; } -GLOBAL_ASM("asm/non_matchings/memory/func_800718A4.s") +s32 func_800718A4(void) { + u32 colours[64]; + u32 colourCounts[64]; + MemoryPoolSlot *curSlot; + s32 temp; + s32 i; + s32 j; + s32 colourIndex; + s32 var_a2; + u32 curColour; + + temp = 0; + for (j = 0; j < 64; j++) { + colours[j] = 0; + colourCounts[j] = 0; + } + for (i = 0; i < gNumberOfMemoryPools; i++) { + curSlot = gMemoryPools[i].slots; + do { + if (curSlot->flags != 0) { + var_a2 = curSlot->colourTag; + if (var_a2 != 0) { + curColour = var_a2; + colourIndex = 0; + while (colourIndex < 64 && curColour != colours[colourIndex] && colours[colourIndex] != 0) { + var_a2 = colours[colourIndex]; + colourIndex++; + } + if (colourIndex < 64) { + colours[colourIndex] = curColour; + colourCounts[colourIndex]++; + } else { + temp++; + } + } + } + var_a2 = curSlot->nextIndex; + if (var_a2 != -1) { + curSlot = &gMemoryPools[i].slots[curSlot->nextIndex]; + } + } while (var_a2 != (-1)); + } + var_a2 = 0; + if(!temp) { } // Fakematch + for (j = 0; colours[j] != 0 && j < 64; j++) { } // Fakematch + var_a2 = 0; + if(!temp) { } // Fakematch + temp = var_a2; +} -#ifdef NON_EQUIVALENT -s32 get_memory_colour_tag_count(s32 arg0) { +s32 get_memory_colour_tag_count(u32 colourTag) { s32 i, count; + MemoryPoolSlot *slot; count = 0; - for (i = 0; i < 80; i++) { // Issue with this loop - if ((gMemoryPools[0].slots[i].flags) && (arg0 == gMemoryPools[0].slots[i].colorTag)) { - count++; + slot = &gMemoryPools[0].slots[0]; + for (i = 0; i < 1600; i++) { + if (slot->flags != 0) { + if(colourTag == slot->colourTag) { + count++; + } } + slot++; } return count; } -#else -GLOBAL_ASM("asm/non_matchings/memory/get_memory_colour_tag_count.s") -#endif /** * Prints out the counts for each color tag in the main pool. @@ -587,26 +628,35 @@ void render_memory_colour_tags(void) { render_printf("ORANGE %d\n\n", get_memory_colour_tag_count(COLOUR_TAG_ORANGE)); } -#ifdef NON_EQUIVALENT -// Unused. Does nothing? -void func_80071C74(void) { - s32 i, flags; - MemoryPool *pool; +UNUSED void func_80071C74(void) { + s32 i; + s32 skip; + s32 index; + s32 index2; + s32 nextIndex; MemoryPoolSlot *slot; - - for (i = 0; i <= gNumberOfMemoryPools; i++) { - pool = &gMemoryPools[i]; - slot = &pool->slots[0]; - while (slot->nextIndex != -1) { - if (slot->flags) { // I don't know how to get this to appear. + + for (i = 0; (gNumberOfMemoryPools ^ 0) >= i; i++) { + if (i && i) {} // Fakematch + slot = &gMemoryPools[i].slots[0]; + index = 1; + index2 = -index; + do { + index = slot->flags; + nextIndex = slot->nextIndex; + skip = nextIndex == index2; + if (index) { + if (((((((((!slot->nextIndex) & 0xFFu) & 0xFFu) & 0xFFu) & 0xFFu) & 0xFFu) & 0xFFu) & 0xFFu) & 0xFFu) { + if (nextIndex && nextIndex) {} // Fakematch + } } - slot = &pool->slots[slot->nextIndex]; - } + if (skip) { + continue; + } + slot = &gMemoryPools[i].slots[slot->nextIndex]; + } while (nextIndex != (-1)); } } -#else -GLOBAL_ASM("asm/non_matchings/memory/func_80071C74.s") -#endif // Unused. Does nothing? void func_80071CE8(void) { diff --git a/src/memory.h b/src/memory.h index 64fea418..562b312d 100644 --- a/src/memory.h +++ b/src/memory.h @@ -50,7 +50,7 @@ typedef struct MemoryPoolSlot { /* 0x0A */ s16 prevIndex; /* 0x0C */ s16 nextIndex; /* 0x0E */ s16 index; -/* 0x10 */ u32 colorTag; +/* 0x10 */ u32 colourTag; } MemoryPoolSlot; /* Size: 0x10 bytes */ @@ -80,8 +80,8 @@ void set_status_register_flags(s32*); // Non Matching math_util void init_main_memory_pool(void); MemoryPoolSlot *new_sub_memory_pool(s32 poolDataSize, s32 numSlots); -void *allocate_from_main_pool_safe(s32 size, u32 colorTag); -MemoryPoolSlot *allocate_from_main_pool(s32 size, u32 colorTag); +void *allocate_from_main_pool_safe(s32 size, u32 colourTag); +MemoryPoolSlot *allocate_from_main_pool(s32 size, u32 colourTag); void *allocate_from_pool_containing_slots(MemoryPoolSlot *slots, s32 size); void set_free_queue_state(s32 state); void free_from_memory_pool(void *data); @@ -97,12 +97,11 @@ void print_memory_colour_tags(void); void render_memory_colour_tags(void); void func_80071CE8(void); MemoryPoolSlot *new_memory_pool(MemoryPoolSlot *slots, s32 poolSize, s32 numSlots); - -MemoryPoolSlot *allocate_from_memory_pool(s32 memoryPoolIndex, s32 size, u32 colorTag); // Non Matching -void free_memory_pool_slot(s32 poolIndex, s32 slotIndex); // Non Matching -void *allocate_at_address_in_main_pool(s32 size, u8 *address, u32 colorTag); // Non Matching -void free_slot_containing_address(u8 *address); // Non Matching -s32 get_memory_colour_tag_count(s32 arg0); // Non Matching -s32 allocate_memory_pool_slot(s32 memoryPoolIndex, s32 slotIndex, s32 size, s32 slotIsTaken, s32 newSlotIsTaken, u32 colorTag); +void free_memory_pool_slot(s32 poolIndex, s32 slotIndex); +s32 allocate_memory_pool_slot(s32 memoryPoolIndex, s32 slotIndex, s32 size, s32 slotIsTaken, s32 newSlotIsTaken, u32 colourTag); +s32 get_memory_colour_tag_count(u32 colourTag); +void free_slot_containing_address(u8 *address); +MemoryPoolSlot *allocate_from_memory_pool(s32 memoryPoolIndex, s32 size, u32 colourTag); +void *allocate_at_address_in_main_pool(s32 size, u8 *address, u32 colourTag); #endif diff --git a/src/menu.c b/src/menu.c index e05fc6ac..3a20416a 100644 --- a/src/menu.c +++ b/src/menu.c @@ -2104,7 +2104,7 @@ void draw_menu_elements(s32 arg0, MenuElement *elem, f32 arg2) { s5 = FALSE; if (arg0 != 4) { - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); while (elem->unk14_a.element != NULL) { if (elem->unk14_a.element != &D_80126850) { if (arg0 == 0) { @@ -2461,7 +2461,7 @@ void func_8008377C(UNUSED s32 arg0, f32 arg1) { s32 posY; if (D_8012686C != 0) { - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); scale = (f32) D_8012686C * 0.03125f; sMenuGuiOpacity = (D_8012686C * 8) - 1; func_80068508(0); @@ -2506,7 +2506,7 @@ s32 menu_title_screen_loop(s32 updateRate) { ObjectSegment* sp18; s8 var_a1; - sp18 = func_80069D20(); + sp18 = get_active_camera_segment(); gOptionBlinkTimer = (gOptionBlinkTimer + updateRate) & 0x3F; func_8008E4EC(); if (osTvType == 0) { @@ -3101,7 +3101,7 @@ void func_80085B9C(UNUSED s32 updateRate) { if (D_801263E0 & 8) { drawDialogueBox = TRUE; } - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); set_text_background_colour(0, 0, 0, 0); set_text_font(2); set_text_colour(0, 0, 0, 255, 128); @@ -4758,7 +4758,7 @@ void func_8008C698(UNUSED s32 updateRate) { if (fade >= 0x100) { fade = 0x1FF - fade; } - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); for (i = 0; i <= D_801263E0; i++) { filterAlpha = 0; @@ -4956,7 +4956,7 @@ void render_file_select_menu(UNUSED s32 updateRate) { } func_8009BD5C(); - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); for (i = 0; i < 3; i++) { // 3 files if (gSavefileInfo[i].isAdventure2 == gIsInAdventureTwo || gSavefileInfo[i].isStarted == 0) { color = 0xB0E0C0FF; @@ -5924,7 +5924,7 @@ void func_8008FF1C(s32 updateRate) { } func_80066894(0, 1); func_8009BD5C(); - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); reset_render_settings(&sMenuCurrDisplayList); gDPPipeSync(sMenuCurrDisplayList++); D_80126928 = 64; @@ -6107,7 +6107,7 @@ void render_track_select_setup_ui(s32 updateRate) { } func_80066894(0, 1); func_8009BD5C(); - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); if (gMenuDelay < 0) { if (gSelectedTrackX == 4) { sp84 = 6; @@ -6491,7 +6491,7 @@ void render_adventure_track_setup(UNUSED s32 arg0, s32 arg1, s32 arg2) { sp58 = ((Settings4C *)((u8 *) settings->unk4C + gTrackIdForPreview))->unk2; gSPClearGeometryMode(sMenuCurrDisplayList++, G_CULL_FRONT); func_8009BD5C(); - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); if (gMenuDelay >= -20) { if (gMenuDelay <= 20) { mask = get_map_available_vehicles(sp58); @@ -8038,7 +8038,7 @@ void func_8009BD5C(void) { set_active_viewports_and_object_stack_cap(0); set_object_stack_pos(0); - temp_v0 = (unk80069D20 *)func_80069D20(); + temp_v0 = (unk80069D20 *)get_active_camera_segment(); sp2A = temp_v0->unk0; sp28 = temp_v0->unk2; @@ -8259,13 +8259,13 @@ s32 get_filtered_cheats(void) { if (!gIsInTracksMode || is_time_trial_enabled()) { cheats &= CHEATS_ALLOWED_IN_ADVENTURE_AND_TIME_TRIAL; } - if (!func_8006B240()) { + if (!check_if_in_race()) { cheats &= ~CHEAT_MIRRORED_TRACKS; // Disable mirroring } if (func_8006B14C(get_settings()->courseId) & 0x40) { cheats &= CHEATS_ALLOWED_IN_CHALLENGES; } - if (gIsInAdventureTwo && func_8006B240()) { + if (gIsInAdventureTwo && check_if_in_race()) { cheats |= CHEAT_MIRRORED_TRACKS; // Enable mirroring } return cheats; @@ -9052,7 +9052,7 @@ f32 func_8009E9B0(UNUSED DialogueBoxBackground *textbox, Gfx **dlist, MatrixS ** sMenuCurrDisplayList = *dlist; sMenuCurrHudMat = *mat; sMenuCurrHudVerts = *verts; - func_80067F2C(&sMenuCurrDisplayList, &sMenuCurrHudMat); + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); if (D_800E1E28 != 0 && sCurrentMenuID == 4) { func_8009E3D0(); } diff --git a/src/objects.c b/src/objects.c index 1b28a01d..37907f40 100644 --- a/src/objects.c +++ b/src/objects.c @@ -240,10 +240,10 @@ s32 gNumRacers; u8 gTimeTrialEnabled; u8 D_8011AEF5; u8 D_8011AEF6; -u8 D_8011AEF7; +s8 D_8011AEF7; s32 D_8011AEF8; s32 D_8011AEFC; -s32 D_8011AF00; +s8 D_8011AF00; Object *(*D_8011AF04)[64]; // Not sure about the number of elements s32 D_8011AF08[2]; s32 D_8011AF10[2]; @@ -1661,13 +1661,18 @@ s16 func_80017E88(void) { GLOBAL_ASM("asm/non_matchings/objects/func_80017E98.s") GLOBAL_ASM("asm/non_matchings/objects/func_800185E4.s") -Object *func_80018C6C(void) { +/** + * Search and return Taj's overworld object. + * Used for drawing his minimap position. +*/ +Object *find_taj_object(void) { s32 i; Object *current_obj; for (i = D_8011AE60; i < objCount; i++) { current_obj = gObjPtrList[i]; - if (!(current_obj->segment.trans.unk6 & 0x8000) && (current_obj->behaviorId == 62)) + if (!(current_obj->segment.trans.unk6 & 0x8000) && (current_obj->behaviorId == 62)) { return current_obj; + } } return NULL; } diff --git a/src/objects.h b/src/objects.h index 962081dc..9b956eae 100644 --- a/src/objects.h +++ b/src/objects.h @@ -397,7 +397,7 @@ void func_800142B8(void); u32 func_800179D0(void); void func_80017E74(s32 arg0); s16 func_80017E88(void); -Object *func_80018C6C(void); +Object *find_taj_object(void); void func_8001A8D4(s32 arg0); s16 func_8001AE44(); s32 func_8001AE54(); diff --git a/src/thread0_epc.c b/src/thread0_epc.c index 31fa23aa..8290c6a9 100644 --- a/src/thread0_epc.c +++ b/src/thread0_epc.c @@ -165,7 +165,7 @@ void func_800B7144(void) { GLOBAL_ASM("asm/non_matchings/thread0_epc/func_800B71B0.s") #ifdef NON_EQUIVALENT -//Rename mask to colorTag? +//Rename mask to colourTag? void func_800B7460(s32 *epc, s32 size, s32 mask) { epcInfo sp840; s16 sp440[0x200]; diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index 55b94349..6b31d3f5 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -372,15 +372,15 @@ void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, s8** tris, s32 updat if (gCurrentLevelHeader2->weatherEnable > 0 && numViewports < 2) { process_weather(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, &gSceneCurrTriList, delta); } - func_800AD030(func_80069D20()); - func_800ACA20(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, func_80069D20()); + func_800AD030(get_active_camera_segment()); + func_800ACA20(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, get_active_camera_segment()); render_hud(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, get_racer_object_by_port(D_8011B0B4), updateRate); } if ((numViewports == 3) && (get_current_level_race_type() != RACETYPE_CHALLENGE_EGGS) && (get_current_level_race_type() != RACETYPE_CHALLENGE_BATTLE) && (get_current_level_race_type() != RACETYPE_CHALLENGE_BANANAS)) { - if (func_800A8458() == 0) { + if (get_multiplayer_hud_setting() == 0) { if (flip) { gSPSetGeometryMode(gSceneCurrDisplayList++, CVG_X_ALPHA); } @@ -399,8 +399,8 @@ void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, s8** tris, s32 updat gDPPipeSync(gSceneCurrDisplayList++); func_80028CD0(updateRate); func_800AB308(-1, -512); - func_800AD030(func_80069D20()); - func_800ACA20(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, func_80069D20()); + func_800AD030(get_active_camera_segment()); + func_800ACA20(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, get_active_camera_segment()); set_text_font(0); if (osTvType == 0) { posX = 166; @@ -609,7 +609,7 @@ void render_skydome(void) { if (D_8011B0B8 == NULL) return; - v0_some_struct = func_80069D20(); + v0_some_struct = get_active_camera_segment(); if (gCurrentLevelHeader2->unk49 == 0) { D_8011B0B8->segment.trans.x_position = v0_some_struct->trans.x_position; D_8011B0B8->segment.trans.y_position = v0_some_struct->trans.y_position; @@ -632,7 +632,7 @@ void func_80028CD0(s32 updateRate) { s32 temp_v0; Object_Racer *racer; - D_8011B0B0 = func_80069D20(); + D_8011B0B0 = get_active_camera_segment(); sp3C = get_current_viewport(); func_80031018(); set_and_normalize_D_8011AFE8((f32) D_8011D468.x / 65536.0f, (f32) D_8011D468.y / 65536.0f, (f32) D_8011D468.z / 65536.0f); @@ -2019,7 +2019,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030DE0.s") #endif UNUSED void func_80030FA0(void) { - D_8011B0B0 = func_80069D20(); + D_8011B0B0 = get_active_camera_segment(); func_80031018(); set_and_normalize_D_8011AFE8((f32) D_8011D468.x / 65536.0f, (f32) D_8011D468.y / 65536.0f, (f32) D_8011D468.z / 65536.0f); } diff --git a/src/video.c b/src/video.c index 3bb03e7e..f23ed670 100644 --- a/src/video.c +++ b/src/video.c @@ -312,7 +312,7 @@ s32 swap_framebuffer_when_ready(s32 mesg) { return tempUpdateRate; } -void func_8007AB24(s8 arg0) { +void func_8007AB24(u8 arg0) { D_801262E4 = arg0; } diff --git a/src/video.h b/src/video.h index b72135e3..f4413e1e 100644 --- a/src/video.h +++ b/src/video.h @@ -94,7 +94,7 @@ s32 get_video_width_and_height_as_s32(void); void init_vi_settings(void); void init_framebuffer(s32 index); void reset_video_delta_time(void); -void func_8007AB24(s8 arg0); +void func_8007AB24(u8 arg0); s32 get_video_refresh_speed(void); void swap_framebuffers(void); void memory_copy(u8 *src, u8 *dest, s32 len); diff --git a/src/weather.c b/src/weather.c index 1f6744d8..6708e71d 100644 --- a/src/weather.c +++ b/src/weather.c @@ -296,7 +296,7 @@ void process_weather(Gfx **currDisplayList, MatrixS **currHudMat, Vertex **currH gCurrWeatherMatrix = *currHudMat; gCurrWeatherVertexList = *currHudVerts; gCurrWeatherTriList = *currHudTris; - D_80127C1C = func_80069D20(); + D_80127C1C = get_active_camera_segment(); D_80127C20 = func_80069DBC(); if (gWeatherType != WEATHER_SNOW) { handle_weather_rain(updateRate); @@ -509,7 +509,7 @@ void handle_weather_rain(s32 updateRate) { render_rain_splashes(updateRate); handle_rain_lightning(updateRate); if (gLightningFrequency >= 256) { - func_80067F2C(&gCurrWeatherDisplayList, &gCurrWeatherMatrix); + set_ortho_matrix_view(&gCurrWeatherDisplayList, &gCurrWeatherMatrix); for(i = 0; i < 2; i++) { render_rain_overlay(&gRainGfx[i], updateRate); } diff --git a/src/weather.h b/src/weather.h index ef0a28c7..5c2fa53d 100644 --- a/src/weather.h +++ b/src/weather.h @@ -107,6 +107,6 @@ void f32_matrix_dot(Matrix *arg0, Matrix *arg1, Matrix *arg2); void func_800AC21C(void); void func_800AC8A8(Object *); void func_800ACA20(Gfx**, MatrixS**, Vertex**, ObjectSegment*); -void func_800AB4A8(s16 weatherType, s16 weatherEnable, s16 velX, s16 velY, s16 velZ, u8 intensity, u8 opacity); +void func_800AB4A8(s32 weatherType, s32 weatherEnable, s32 velX, s32 velY, s32 velZ, s32 intensity, s32 opacity); #endif