4 new matches and some potentially tricky merges (#415)

* Match func_8006DCF8

* use enums

* Match func_8002FD74

* Match func_8008B4C8

* Documenting...

* WIP func_8008B758

* Nearly have func_8008B758

* Match func_8008B758

* Renaming, documenting, and cleanup

* Warning Fixes

* Update score
This commit is contained in:
Ryan Myers
2023-10-06 10:34:59 -04:00
committed by GitHub
parent 2149dedfd4
commit 4d3a6bf21b
13 changed files with 415 additions and 1258 deletions
+9 -9
View File
@@ -5,11 +5,11 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the
Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time.
<!-- README_SCORE_SUMMARY_BEGIN -->
As of October 4, 2023, this is our current score:
As of October 6, 2023, this is our current score:
&emsp;&emsp;&emsp;&emsp;Decomp progress: 56.18%
&emsp;&emsp;&emsp;&emsp;Decomp progress: 56.60%
&emsp;&emsp;&emsp;&emsp;Documentation progress: 28.44%
&emsp;&emsp;&emsp;&emsp;Documentation progress: 30.06%
<!-- README_SCORE_SUMMARY_END -->
---
@@ -128,20 +128,20 @@ s32 is_drumstick_unlocked(void) {
```
<!-- README_SCORE_BEGIN -->
As of October 4th, 2023, this is our current score:
As of October 6th, 2023, this is our current score:
```
=====================================================================
ADVENTURE ONE (ASM -> C Decompilation)
-------------------------- 56.18% Complete --------------------------
# Decompiled functions: 1588
# GLOBAL_ASM remaining: 250
-------------------------- 56.60% Complete --------------------------
# Decompiled functions: 1592
# GLOBAL_ASM remaining: 246
# NON_MATCHING functions: 12
# NON_EQUIVALENT WIP functions: 61
# NON_EQUIVALENT WIP functions: 60
---------------------------- Game Status ----------------------------
Balloons: 27/47, Keys: 3/4, Trophies: 2/5
T.T. Amulets: 3/4, Wizpig Amulets: 2/4
---------------------------------------------------------------------
We are collecting silver coins in Crescent Island. (0/8 silver coins)
We are collecting silver coins in Crescent Island. (3/8 silver coins)
=====================================================================
ADVENTURE TWO (Cleanup & Documentation)
-------------------------- 30.06% Complete --------------------------
-405
View File
@@ -1,405 +0,0 @@
.late_rodata
glabel jpt_800E71D8
.word L8006DF70, L8006E00C, L8006E054, L8006E0E0, L8006DEE8, L8006E0E0, L8006E0E0, L8006E0E0, L8006E0E0, L8006E0E0, L8006E0E0, L8006E0E0, L8006E0E0, L8006DF00
.text
glabel func_8006DCF8
/* 06E8F8 8006DCF8 3C018012 */ lui $at, %hi(gIsPaused) # $at, 0x8012
/* 06E8FC 8006DCFC 3C0E8012 */ lui $t6, %hi(gIsLoading) # $t6, 0x8012
/* 06E900 8006DD00 81CE3514 */ lb $t6, %lo(gIsLoading)($t6)
/* 06E904 8006DD04 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 06E908 8006DD08 A0203515 */ sb $zero, %lo(gIsPaused)($at)
/* 06E90C 8006DD0C 3C018012 */ lui $at, %hi(gPostRaceViewPort) # $at, 0x8012
/* 06E910 8006DD10 AFBF0024 */ sw $ra, 0x24($sp)
/* 06E914 8006DD14 AFB00020 */ sw $s0, 0x20($sp)
/* 06E918 8006DD18 AFA40030 */ sw $a0, 0x30($sp)
/* 06E91C 8006DD1C 15C00008 */ bnez $t6, .L8006DD40
/* 06E920 8006DD20 A0203516 */ sb $zero, %lo(gPostRaceViewPort)($at)
/* 06E924 8006DD24 3C0F8012 */ lui $t7, %hi(gRenderMenu) # $t7, 0x8012
/* 06E928 8006DD28 8DEF34F0 */ lw $t7, %lo(gRenderMenu)($t7)
/* 06E92C 8006DD2C 00000000 */ nop
/* 06E930 8006DD30 11E00004 */ beqz $t7, .L8006DD44
/* 06E934 8006DD34 8FB80030 */ lw $t8, 0x30($sp)
/* 06E938 8006DD38 0C01B716 */ jal update_menu_scene
/* 06E93C 8006DD3C 00000000 */ nop
.L8006DD40:
/* 06E940 8006DD40 8FB80030 */ lw $t8, 0x30($sp)
.L8006DD44:
/* 06E944 8006DD44 3C108012 */ lui $s0, %hi(gCurrDisplayList) # $s0, 0x8012
/* 06E948 8006DD48 261011F8 */ addiu $s0, %lo(gCurrDisplayList) # addiu $s0, $s0, 0x11f8
/* 06E94C 8006DD4C 3C058012 */ lui $a1, %hi(gGameCurrMatrix) # $a1, 0x8012
/* 06E950 8006DD50 3C068012 */ lui $a2, %hi(gGameCurrVertexList) # $a2, 0x8012
/* 06E954 8006DD54 3C078012 */ lui $a3, %hi(gGameCurrTriList) # $a3, 0x8012
/* 06E958 8006DD58 24E71228 */ addiu $a3, %lo(gGameCurrTriList) # addiu $a3, $a3, 0x1228
/* 06E95C 8006DD5C 24C61218 */ addiu $a2, %lo(gGameCurrVertexList) # addiu $a2, $a2, 0x1218
/* 06E960 8006DD60 24A51208 */ addiu $a1, %lo(gGameCurrMatrix) # addiu $a1, $a1, 0x1208
/* 06E964 8006DD64 02002025 */ move $a0, $s0
/* 06E968 8006DD68 0C020569 */ jal menu_loop
/* 06E96C 8006DD6C AFB80010 */ sw $t8, 0x10($sp)
/* 06E970 8006DD70 24190001 */ li $t9, 1
/* 06E974 8006DD74 3C018012 */ lui $at, %hi(gRenderMenu) # $at, 0x8012
/* 06E978 8006DD78 AC3934F0 */ sw $t9, %lo(gRenderMenu)($at)
/* 06E97C 8006DD7C 2401FFFE */ li $at, -2
/* 06E980 8006DD80 14410004 */ bne $v0, $at, .L8006DD94
/* 06E984 8006DD84 AFA2002C */ sw $v0, 0x2c($sp)
/* 06E988 8006DD88 3C018012 */ lui $at, %hi(gRenderMenu) # $at, 0x8012
/* 06E98C 8006DD8C 10000152 */ b .L8006E2D8
/* 06E990 8006DD90 AC2034F0 */ sw $zero, %lo(gRenderMenu)($at)
.L8006DD94:
/* 06E994 8006DD94 2403FFFF */ li $v1, -1
/* 06E998 8006DD98 1043003D */ beq $v0, $v1, .L8006DE90
/* 06E99C 8006DD9C 304C0200 */ andi $t4, $v0, 0x200
/* 06E9A0 8006DDA0 1180003B */ beqz $t4, .L8006DE90
/* 06E9A4 8006DDA4 00000000 */ nop
/* 06E9A8 8006DDA8 0C01B6F9 */ jal unload_level_menu
/* 06E9AC 8006DDAC 00000000 */ nop
/* 06E9B0 8006DDB0 3C0D8012 */ lui $t5, %hi(gSPTaskNum) # $t5, 0x8012
/* 06E9B4 8006DDB4 8DAD34E8 */ lw $t5, %lo(gSPTaskNum)($t5)
/* 06E9B8 8006DDB8 3C0F8012 */ lui $t7, %hi(gDisplayLists) # $t7, 0x8012
/* 06E9BC 8006DDBC 000D7080 */ sll $t6, $t5, 2
/* 06E9C0 8006DDC0 01EE7821 */ addu $t7, $t7, $t6
/* 06E9C4 8006DDC4 8DEF11F0 */ lw $t7, %lo(gDisplayLists)($t7)
/* 06E9C8 8006DDC8 3C19E900 */ lui $t9, 0xe900
/* 06E9CC 8006DDCC AE0F0000 */ sw $t7, ($s0)
/* 06E9D0 8006DDD0 25F80008 */ addiu $t8, $t7, 8
/* 06E9D4 8006DDD4 AE180000 */ sw $t8, ($s0)
/* 06E9D8 8006DDD8 ADE00004 */ sw $zero, 4($t7)
/* 06E9DC 8006DDDC ADF90000 */ sw $t9, ($t7)
/* 06E9E0 8006DDE0 8E020000 */ lw $v0, ($s0)
/* 06E9E4 8006DDE4 3C0DB800 */ lui $t5, 0xb800
/* 06E9E8 8006DDE8 244C0008 */ addiu $t4, $v0, 8
/* 06E9EC 8006DDEC AE0C0000 */ sw $t4, ($s0)
/* 06E9F0 8006DDF0 AC400004 */ sw $zero, 4($v0)
/* 06E9F4 8006DDF4 AC4D0000 */ sw $t5, ($v0)
/* 06E9F8 8006DDF8 8FAE002C */ lw $t6, 0x2c($sp)
/* 06E9FC 8006DDFC 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06EA00 8006DE00 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06EA04 8006DE04 31C4007F */ andi $a0, $t6, 0x7f
/* 06EA08 8006DE08 0C01AC2B */ jal get_map_default_vehicle
/* 06EA0C 8006DE0C AD040000 */ sw $a0, ($t0)
/* 06EA10 8006DE10 3C098012 */ lui $t1, %hi(gGameCurrentEntrance) # $t1, 0x8012
/* 06EA14 8006DE14 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012
/* 06EA18 8006DE18 3C0B8012 */ lui $t3, %hi(gGameCurrentCutscene) # $t3, 0x8012
/* 06EA1C 8006DE1C 256B3508 */ addiu $t3, %lo(gGameCurrentCutscene) # addiu $t3, $t3, 0x3508
/* 06EA20 8006DE20 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518
/* 06EA24 8006DE24 25293504 */ addiu $t1, %lo(gGameCurrentEntrance) # addiu $t1, $t1, 0x3504
/* 06EA28 8006DE28 24180064 */ li $t8, 100
/* 06EA2C 8006DE2C AD420000 */ sw $v0, ($t2)
/* 06EA30 8006DE30 AD200000 */ sw $zero, ($t1)
/* 06EA34 8006DE34 AD780000 */ sw $t8, ($t3)
/* 06EA38 8006DE38 3C018012 */ lui $at, %hi(sRenderContext) # $at, 0x8012
/* 06EA3C 8006DE3C AC2034EC */ sw $zero, %lo(sRenderContext)($at)
/* 06EA40 8006DE40 3C018012 */ lui $at, %hi(gIsPaused) # $at, 0x8012
/* 06EA44 8006DE44 A0203515 */ sb $zero, %lo(gIsPaused)($at)
/* 06EA48 8006DE48 3C018012 */ lui $at, %hi(gPostRaceViewPort) # $at, 0x8012
/* 06EA4C 8006DE4C A0203516 */ sb $zero, %lo(gPostRaceViewPort)($at)
/* 06EA50 8006DE50 3C038012 */ lui $v1, %hi(gGameNumPlayers) # $v1, 0x8012
/* 06EA54 8006DE54 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06EA58 8006DE58 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06EA5C 8006DE5C 24633500 */ addiu $v1, %lo(gGameNumPlayers) # addiu $v1, $v1, 0x3500
/* 06EA60 8006DE60 8C650000 */ lw $a1, ($v1)
/* 06EA64 8006DE64 8D040000 */ lw $a0, ($t0)
/* 06EA68 8006DE68 8D470000 */ lw $a3, ($t2)
/* 06EA6C 8006DE6C 8D260000 */ lw $a2, ($t1)
/* 06EA70 8006DE70 0C01B2D6 */ jal load_level_game
/* 06EA74 8006DE74 00000000 */ nop
/* 06EA78 8006DE78 0C027068 */ jal get_save_file_index
/* 06EA7C 8006DE7C 00000000 */ nop
/* 06EA80 8006DE80 0C01BB12 */ jal safe_mark_write_save_file
/* 06EA84 8006DE84 00402025 */ move $a0, $v0
/* 06EA88 8006DE88 10000114 */ b .L8006E2DC
/* 06EA8C 8006DE8C 8FBF0024 */ lw $ra, 0x24($sp)
.L8006DE90:
/* 06EA90 8006DE90 10430099 */ beq $v0, $v1, .L8006E0F8
/* 06EA94 8006DE94 30590100 */ andi $t9, $v0, 0x100
/* 06EA98 8006DE98 13200098 */ beqz $t9, .L8006E0FC
/* 06EA9C 8006DE9C 304C0080 */ andi $t4, $v0, 0x80
/* 06EAA0 8006DEA0 0C01B305 */ jal unload_level_game
/* 06EAA4 8006DEA4 00000000 */ nop
/* 06EAA8 8006DEA8 8FAC002C */ lw $t4, 0x2c($sp)
/* 06EAAC 8006DEAC 3C018012 */ lui $at, %hi(gIsPaused) # $at, 0x8012
/* 06EAB0 8006DEB0 A0203515 */ sb $zero, %lo(gIsPaused)($at)
/* 06EAB4 8006DEB4 3C018012 */ lui $at, %hi(gPostRaceViewPort) # $at, 0x8012
/* 06EAB8 8006DEB8 318D007F */ andi $t5, $t4, 0x7f
/* 06EABC 8006DEBC A0203516 */ sb $zero, %lo(gPostRaceViewPort)($at)
/* 06EAC0 8006DEC0 25AEFFFF */ addiu $t6, $t5, -1
/* 06EAC4 8006DEC4 2DC1000E */ sltiu $at, $t6, 0xe
/* 06EAC8 8006DEC8 10200085 */ beqz $at, .L8006E0E0
/* 06EACC 8006DECC 000E7080 */ sll $t6, $t6, 2
/* 06EAD0 8006DED0 3C01800E */ lui $at, %hi(jpt_800E71D8) # $at, 0x800e
/* 06EAD4 8006DED4 002E0821 */ addu $at, $at, $t6
/* 06EAD8 8006DED8 8C2E71D8 */ lw $t6, %lo(jpt_800E71D8)($at)
/* 06EADC 8006DEDC 00000000 */ nop
/* 06EAE0 8006DEE0 01C00008 */ jr $t6
/* 06EAE4 8006DEE4 00000000 */ nop
glabel L8006DEE8
/* 06EAE8 8006DEE8 2404000F */ li $a0, 15
/* 06EAEC 8006DEEC 2405FFFF */ li $a1, -1
/* 06EAF0 8006DEF0 0C01B68A */ jal load_menu_with_level_background
/* 06EAF4 8006DEF4 24060001 */ li $a2, 1
/* 06EAF8 8006DEF8 100000F8 */ b .L8006E2DC
/* 06EAFC 8006DEFC 8FBF0024 */ lw $ra, 0x24($sp)
glabel L8006DF00
/* 06EB00 8006DF00 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06EB04 8006DF04 3C098012 */ lui $t1, %hi(gGameCurrentEntrance) # $t1, 0x8012
/* 06EB08 8006DF08 3C0B8012 */ lui $t3, %hi(gGameCurrentCutscene) # $t3, 0x8012
/* 06EB0C 8006DF0C 256B3508 */ addiu $t3, %lo(gGameCurrentCutscene) # addiu $t3, $t3, 0x3508
/* 06EB10 8006DF10 25293504 */ addiu $t1, %lo(gGameCurrentEntrance) # addiu $t1, $t1, 0x3504
/* 06EB14 8006DF14 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06EB18 8006DF18 240F0064 */ li $t7, 100
/* 06EB1C 8006DF1C AD000000 */ sw $zero, ($t0)
/* 06EB20 8006DF20 AD200000 */ sw $zero, ($t1)
/* 06EB24 8006DF24 AD6F0000 */ sw $t7, ($t3)
/* 06EB28 8006DF28 3C018012 */ lui $at, %hi(sRenderContext) # $at, 0x8012
/* 06EB2C 8006DF2C AC2034EC */ sw $zero, %lo(sRenderContext)($at)
/* 06EB30 8006DF30 3C038012 */ lui $v1, %hi(gGameNumPlayers) # $v1, 0x8012
/* 06EB34 8006DF34 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012
/* 06EB38 8006DF38 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518
/* 06EB3C 8006DF3C 24633500 */ addiu $v1, %lo(gGameNumPlayers) # addiu $v1, $v1, 0x3500
/* 06EB40 8006DF40 8C650000 */ lw $a1, ($v1)
/* 06EB44 8006DF44 8D470000 */ lw $a3, ($t2)
/* 06EB48 8006DF48 8D260000 */ lw $a2, ($t1)
/* 06EB4C 8006DF4C 8D040000 */ lw $a0, ($t0)
/* 06EB50 8006DF50 0C01B2D6 */ jal load_level_game
/* 06EB54 8006DF54 00000000 */ nop
/* 06EB58 8006DF58 0C027068 */ jal get_save_file_index
/* 06EB5C 8006DF5C 00000000 */ nop
/* 06EB60 8006DF60 0C01BB12 */ jal safe_mark_write_save_file
/* 06EB64 8006DF64 00402025 */ move $a0, $v0
/* 06EB68 8006DF68 100000DC */ b .L8006E2DC
/* 06EB6C 8006DF6C 8FBF0024 */ lw $ra, 0x24($sp)
glabel L8006DF70
/* 06EB70 8006DF70 3C058012 */ lui $a1, %hi(D_80121250) # $a1, 0x8012
/* 06EB74 8006DF74 24A51250 */ addiu $a1, %lo(D_80121250) # addiu $a1, $a1, 0x1250
/* 06EB78 8006DF78 80B80000 */ lb $t8, ($a1)
/* 06EB7C 8006DF7C 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06EB80 8006DF80 3C098012 */ lui $t1, %hi(gGameCurrentEntrance) # $t1, 0x8012
/* 06EB84 8006DF84 3C0B8012 */ lui $t3, %hi(gGameCurrentCutscene) # $t3, 0x8012
/* 06EB88 8006DF88 256B3508 */ addiu $t3, %lo(gGameCurrentCutscene) # addiu $t3, $t3, 0x3508
/* 06EB8C 8006DF8C 25293504 */ addiu $t1, %lo(gGameCurrentEntrance) # addiu $t1, $t1, 0x3504
/* 06EB90 8006DF90 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06EB94 8006DF94 24190064 */ li $t9, 100
/* 06EB98 8006DF98 AD200000 */ sw $zero, ($t1)
/* 06EB9C 8006DF9C AD790000 */ sw $t9, ($t3)
/* 06EBA0 8006DFA0 3C018012 */ lui $at, %hi(sRenderContext) # $at, 0x8012
/* 06EBA4 8006DFA4 AD180000 */ sw $t8, ($t0)
/* 06EBA8 8006DFA8 AC2034EC */ sw $zero, %lo(sRenderContext)($at)
/* 06EBAC 8006DFAC 80A2000F */ lb $v0, 0xf($a1)
/* 06EBB0 8006DFB0 80A30001 */ lb $v1, 1($a1)
/* 06EBB4 8006DFB4 04400002 */ bltz $v0, .L8006DFC0
/* 06EBB8 8006DFB8 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012
/* 06EBBC 8006DFBC AD220000 */ sw $v0, ($t1)
.L8006DFC0:
/* 06EBC0 8006DFC0 00A36021 */ addu $t4, $a1, $v1
/* 06EBC4 8006DFC4 81820008 */ lb $v0, 8($t4)
/* 06EBC8 8006DFC8 3C038012 */ lui $v1, %hi(gGameNumPlayers) # $v1, 0x8012
/* 06EBCC 8006DFCC 04400002 */ bltz $v0, .L8006DFD8
/* 06EBD0 8006DFD0 24633500 */ addiu $v1, %lo(gGameNumPlayers) # addiu $v1, $v1, 0x3500
/* 06EBD4 8006DFD4 AD620000 */ sw $v0, ($t3)
.L8006DFD8:
/* 06EBD8 8006DFD8 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518
/* 06EBDC 8006DFDC 8D470000 */ lw $a3, ($t2)
/* 06EBE0 8006DFE0 8D040000 */ lw $a0, ($t0)
/* 06EBE4 8006DFE4 8C650000 */ lw $a1, ($v1)
/* 06EBE8 8006DFE8 8D260000 */ lw $a2, ($t1)
/* 06EBEC 8006DFEC 0C01B2D6 */ jal load_level_game
/* 06EBF0 8006DFF0 00000000 */ nop
/* 06EBF4 8006DFF4 0C027068 */ jal get_save_file_index
/* 06EBF8 8006DFF8 00000000 */ nop
/* 06EBFC 8006DFFC 0C01BB12 */ jal safe_mark_write_save_file
/* 06EC00 8006E000 00402025 */ move $a0, $v0
/* 06EC04 8006E004 100000B5 */ b .L8006E2DC
/* 06EC08 8006E008 8FBF0024 */ lw $ra, 0x24($sp)
glabel L8006E00C
/* 06EC0C 8006E00C 3C018012 */ lui $at, %hi(sRenderContext) # $at, 0x8012
/* 06EC10 8006E010 AC2034EC */ sw $zero, %lo(sRenderContext)($at)
/* 06EC14 8006E014 3C038012 */ lui $v1, %hi(gGameNumPlayers) # $v1, 0x8012
/* 06EC18 8006E018 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06EC1C 8006E01C 3C098012 */ lui $t1, %hi(gGameCurrentEntrance) # $t1, 0x8012
/* 06EC20 8006E020 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012
/* 06EC24 8006E024 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518
/* 06EC28 8006E028 25293504 */ addiu $t1, %lo(gGameCurrentEntrance) # addiu $t1, $t1, 0x3504
/* 06EC2C 8006E02C 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06EC30 8006E030 24633500 */ addiu $v1, %lo(gGameNumPlayers) # addiu $v1, $v1, 0x3500
/* 06EC34 8006E034 8C650000 */ lw $a1, ($v1)
/* 06EC38 8006E038 8D040000 */ lw $a0, ($t0)
/* 06EC3C 8006E03C 8D260000 */ lw $a2, ($t1)
/* 06EC40 8006E040 8D470000 */ lw $a3, ($t2)
/* 06EC44 8006E044 0C01B2D6 */ jal load_level_game
/* 06EC48 8006E048 00000000 */ nop
/* 06EC4C 8006E04C 100000A3 */ b .L8006E2DC
/* 06EC50 8006E050 8FBF0024 */ lw $ra, 0x24($sp)
glabel L8006E054
/* 06EC54 8006E054 3C058012 */ lui $a1, %hi(D_80121250) # $a1, 0x8012
/* 06EC58 8006E058 3C018012 */ lui $at, %hi(sRenderContext) # $at, 0x8012
/* 06EC5C 8006E05C 24A51250 */ addiu $a1, %lo(D_80121250) # addiu $a1, $a1, 0x1250
/* 06EC60 8006E060 AC2034EC */ sw $zero, %lo(sRenderContext)($at)
/* 06EC64 8006E064 80AF0001 */ lb $t7, 1($a1)
/* 06EC68 8006E068 80A40000 */ lb $a0, ($a1)
/* 06EC6C 8006E06C 00AFC021 */ addu $t8, $a1, $t7
/* 06EC70 8006E070 80AE000F */ lb $t6, 0xf($a1)
/* 06EC74 8006E074 83190008 */ lb $t9, 8($t8)
/* 06EC78 8006E078 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06EC7C 8006E07C 3C098012 */ lui $t1, %hi(gGameCurrentEntrance) # $t1, 0x8012
/* 06EC80 8006E080 3C0B8012 */ lui $t3, %hi(gGameCurrentCutscene) # $t3, 0x8012
/* 06EC84 8006E084 256B3508 */ addiu $t3, %lo(gGameCurrentCutscene) # addiu $t3, $t3, 0x3508
/* 06EC88 8006E088 25293504 */ addiu $t1, %lo(gGameCurrentEntrance) # addiu $t1, $t1, 0x3504
/* 06EC8C 8006E08C 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06EC90 8006E090 AD040000 */ sw $a0, ($t0)
/* 06EC94 8006E094 AD2E0000 */ sw $t6, ($t1)
/* 06EC98 8006E098 0C01AC2B */ jal get_map_default_vehicle
/* 06EC9C 8006E09C AD790000 */ sw $t9, ($t3)
/* 06ECA0 8006E0A0 3C038012 */ lui $v1, %hi(gGameNumPlayers) # $v1, 0x8012
/* 06ECA4 8006E0A4 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06ECA8 8006E0A8 3C098012 */ lui $t1, %hi(gGameCurrentEntrance) # $t1, 0x8012
/* 06ECAC 8006E0AC 25293504 */ addiu $t1, %lo(gGameCurrentEntrance) # addiu $t1, $t1, 0x3504
/* 06ECB0 8006E0B0 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06ECB4 8006E0B4 24633500 */ addiu $v1, %lo(gGameNumPlayers) # addiu $v1, $v1, 0x3500
/* 06ECB8 8006E0B8 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012
/* 06ECBC 8006E0BC 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518
/* 06ECC0 8006E0C0 8C650000 */ lw $a1, ($v1)
/* 06ECC4 8006E0C4 8D040000 */ lw $a0, ($t0)
/* 06ECC8 8006E0C8 8D260000 */ lw $a2, ($t1)
/* 06ECCC 8006E0CC AD420000 */ sw $v0, ($t2)
/* 06ECD0 8006E0D0 0C01B2D6 */ jal load_level_game
/* 06ECD4 8006E0D4 00403825 */ move $a3, $v0
/* 06ECD8 8006E0D8 10000080 */ b .L8006E2DC
/* 06ECDC 8006E0DC 8FBF0024 */ lw $ra, 0x24($sp)
.L8006E0E0:
glabel L8006E0E0
/* 06ECE0 8006E0E0 00002025 */ move $a0, $zero
/* 06ECE4 8006E0E4 2405FFFF */ li $a1, -1
/* 06ECE8 8006E0E8 0C01B68A */ jal load_menu_with_level_background
/* 06ECEC 8006E0EC 00003025 */ move $a2, $zero
/* 06ECF0 8006E0F0 1000007A */ b .L8006E2DC
/* 06ECF4 8006E0F4 8FBF0024 */ lw $ra, 0x24($sp)
.L8006E0F8:
/* 06ECF8 8006E0F8 304C0080 */ andi $t4, $v0, 0x80
.L8006E0FC:
/* 06ECFC 8006E0FC 11800047 */ beqz $t4, .L8006E21C
/* 06ED00 8006E100 00000000 */ nop
/* 06ED04 8006E104 10430045 */ beq $v0, $v1, .L8006E21C
/* 06ED08 8006E108 00000000 */ nop
/* 06ED0C 8006E10C 0C01B6F9 */ jal unload_level_menu
/* 06ED10 8006E110 00000000 */ nop
/* 06ED14 8006E114 3C0D8012 */ lui $t5, %hi(gSPTaskNum) # $t5, 0x8012
/* 06ED18 8006E118 8DAD34E8 */ lw $t5, %lo(gSPTaskNum)($t5)
/* 06ED1C 8006E11C 3C0F8012 */ lui $t7, %hi(gDisplayLists) # $t7, 0x8012
/* 06ED20 8006E120 000D7080 */ sll $t6, $t5, 2
/* 06ED24 8006E124 01EE7821 */ addu $t7, $t7, $t6
/* 06ED28 8006E128 8DEF11F0 */ lw $t7, %lo(gDisplayLists)($t7)
/* 06ED2C 8006E12C 8FAA002C */ lw $t2, 0x2c($sp)
/* 06ED30 8006E130 AE0F0000 */ sw $t7, ($s0)
/* 06ED34 8006E134 25F80008 */ addiu $t8, $t7, 8
/* 06ED38 8006E138 AE180000 */ sw $t8, ($s0)
/* 06ED3C 8006E13C 3C19E900 */ lui $t9, 0xe900
/* 06ED40 8006E140 ADF90000 */ sw $t9, ($t7)
/* 06ED44 8006E144 ADE00004 */ sw $zero, 4($t7)
/* 06ED48 8006E148 8E020000 */ lw $v0, ($s0)
/* 06ED4C 8006E14C 3C058012 */ lui $a1, %hi(D_80121250) # $a1, 0x8012
/* 06ED50 8006E150 244C0008 */ addiu $t4, $v0, 8
/* 06ED54 8006E154 AE0C0000 */ sw $t4, ($s0)
/* 06ED58 8006E158 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06ED5C 8006E15C 3C0DB800 */ lui $t5, 0xb800
/* 06ED60 8006E160 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06ED64 8006E164 24A51250 */ addiu $a1, %lo(D_80121250) # addiu $a1, $a1, 0x1250
/* 06ED68 8006E168 AC4D0000 */ sw $t5, ($v0)
/* 06ED6C 8006E16C AC400004 */ sw $zero, 4($v0)
/* 06ED70 8006E170 8D0F0000 */ lw $t7, ($t0)
/* 06ED74 8006E174 314E007F */ andi $t6, $t2, 0x7f
/* 06ED78 8006E178 A0AE0001 */ sb $t6, 1($a1)
/* 06ED7C 8006E17C 00AE1821 */ addu $v1, $a1, $t6
/* 06ED80 8006E180 A0AF0000 */ sb $t7, ($a1)
/* 06ED84 8006E184 80780002 */ lb $t8, 2($v1)
/* 06ED88 8006E188 80790004 */ lb $t9, 4($v1)
/* 06ED8C 8006E18C 3C098012 */ lui $t1, %hi(gGameCurrentEntrance) # $t1, 0x8012
/* 06ED90 8006E190 25293504 */ addiu $t1, %lo(gGameCurrentEntrance) # addiu $t1, $t1, 0x3504
/* 06ED94 8006E194 3C018012 */ lui $at, %hi(sRenderContext) # $at, 0x8012
/* 06ED98 8006E198 AD180000 */ sw $t8, ($t0)
/* 06ED9C 8006E19C AD390000 */ sw $t9, ($t1)
/* 06EDA0 8006E1A0 AC2034EC */ sw $zero, %lo(sRenderContext)($at)
/* 06EDA4 8006E1A4 806C000C */ lb $t4, 0xc($v1)
/* 06EDA8 8006E1A8 3C0B8012 */ lui $t3, %hi(gGameCurrentCutscene) # $t3, 0x8012
/* 06EDAC 8006E1AC 256B3508 */ addiu $t3, %lo(gGameCurrentCutscene) # addiu $t3, $t3, 0x3508
/* 06EDB0 8006E1B0 00002025 */ move $a0, $zero
/* 06EDB4 8006E1B4 0C027094 */ jal get_player_selected_vehicle
/* 06EDB8 8006E1B8 AD6C0000 */ sw $t4, ($t3)
/* 06EDBC 8006E1BC 3C108012 */ lui $s0, %hi(gSettingsPtr) # $s0, 0x8012
/* 06EDC0 8006E1C0 26103510 */ addiu $s0, %lo(gSettingsPtr) # addiu $s0, $s0, 0x3510
/* 06EDC4 8006E1C4 8E0D0000 */ lw $t5, ($s0)
/* 06EDC8 8006E1C8 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012
/* 06EDCC 8006E1CC 91AE004A */ lbu $t6, 0x4a($t5)
/* 06EDD0 8006E1D0 3C098012 */ lui $t1, %hi(gGameCurrentEntrance) # $t1, 0x8012
/* 06EDD4 8006E1D4 25293504 */ addiu $t1, %lo(gGameCurrentEntrance) # addiu $t1, $t1, 0x3504
/* 06EDD8 8006E1D8 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4
/* 06EDDC 8006E1DC 3C038012 */ lui $v1, %hi(gGameNumPlayers) # $v1, 0x8012
/* 06EDE0 8006E1E0 24633500 */ addiu $v1, %lo(gGameNumPlayers) # addiu $v1, $v1, 0x3500
/* 06EDE4 8006E1E4 8D040000 */ lw $a0, ($t0)
/* 06EDE8 8006E1E8 8D260000 */ lw $a2, ($t1)
/* 06EDEC 8006E1EC 25C5FFFF */ addiu $a1, $t6, -1
/* 06EDF0 8006E1F0 AC650000 */ sw $a1, ($v1)
/* 06EDF4 8006E1F4 0C01B2D6 */ jal load_level_game
/* 06EDF8 8006E1F8 00403825 */ move $a3, $v0
/* 06EDFC 8006E1FC 3C188012 */ lui $t8, %hi(D_8012351C) # $t8, 0x8012
/* 06EE00 8006E200 8F18351C */ lw $t8, %lo(D_8012351C)($t8)
/* 06EE04 8006E204 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012
/* 06EE08 8006E208 3C018012 */ lui $at, %hi(D_801234FC) # $at, 0x8012
/* 06EE0C 8006E20C 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518
/* 06EE10 8006E210 AC2034FC */ sw $zero, %lo(D_801234FC)($at)
/* 06EE14 8006E214 10000030 */ b .L8006E2D8
/* 06EE18 8006E218 AD580000 */ sw $t8, ($t2)
.L8006E21C:
/* 06EE1C 8006E21C 1840002F */ blez $v0, .L8006E2DC
/* 06EE20 8006E220 8FBF0024 */ lw $ra, 0x24($sp)
/* 06EE24 8006E224 0C01B6F9 */ jal unload_level_menu
/* 06EE28 8006E228 00000000 */ nop
/* 06EE2C 8006E22C 3C198012 */ lui $t9, %hi(gSPTaskNum) # $t9, 0x8012
/* 06EE30 8006E230 8F3934E8 */ lw $t9, %lo(gSPTaskNum)($t9)
/* 06EE34 8006E234 3C0D8012 */ lui $t5, %hi(gDisplayLists) # $t5, 0x8012
/* 06EE38 8006E238 00196080 */ sll $t4, $t9, 2
/* 06EE3C 8006E23C 01AC6821 */ addu $t5, $t5, $t4
/* 06EE40 8006E240 8DAD11F0 */ lw $t5, %lo(gDisplayLists)($t5)
/* 06EE44 8006E244 3C0FE900 */ lui $t7, 0xe900
/* 06EE48 8006E248 AE0D0000 */ sw $t5, ($s0)
/* 06EE4C 8006E24C 25AE0008 */ addiu $t6, $t5, 8
/* 06EE50 8006E250 AE0E0000 */ sw $t6, ($s0)
/* 06EE54 8006E254 ADA00004 */ sw $zero, 4($t5)
/* 06EE58 8006E258 ADAF0000 */ sw $t7, ($t5)
/* 06EE5C 8006E25C 8E020000 */ lw $v0, ($s0)
/* 06EE60 8006E260 3C19B800 */ lui $t9, 0xb800
/* 06EE64 8006E264 24580008 */ addiu $t8, $v0, 8
/* 06EE68 8006E268 AE180000 */ sw $t8, ($s0)
/* 06EE6C 8006E26C AC400004 */ sw $zero, 4($v0)
/* 06EE70 8006E270 AC590000 */ sw $t9, ($v0)
/* 06EE74 8006E274 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012
/* 06EE78 8006E278 3C018012 */ lui $at, %hi(sRenderContext) # $at, 0x8012
/* 06EE7C 8006E27C 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518
/* 06EE80 8006E280 AC2034EC */ sw $zero, %lo(sRenderContext)($at)
/* 06EE84 8006E284 8D460000 */ lw $a2, ($t2)
/* 06EE88 8006E288 8FA4002C */ lw $a0, 0x2c($sp)
/* 06EE8C 8006E28C 0C01B2B9 */ jal func_8006CAE4
/* 06EE90 8006E290 2405FFFF */ li $a1, -1
/* 06EE94 8006E294 3C108012 */ lui $s0, %hi(gSettingsPtr) # $s0, 0x8012
/* 06EE98 8006E298 26103510 */ addiu $s0, %lo(gSettingsPtr) # addiu $s0, $s0, 0x3510
/* 06EE9C 8006E29C 8E0C0000 */ lw $t4, ($s0)
/* 06EEA0 8006E2A0 00000000 */ nop
/* 06EEA4 8006E2A4 918D004B */ lbu $t5, 0x4b($t4)
/* 06EEA8 8006E2A8 00000000 */ nop
/* 06EEAC 8006E2AC 11A0000B */ beqz $t5, .L8006E2DC
/* 06EEB0 8006E2B0 8FBF0024 */ lw $ra, 0x24($sp)
/* 06EEB4 8006E2B4 0C0270B4 */ jal is_in_tracks_mode
/* 06EEB8 8006E2B8 00000000 */ nop
/* 06EEBC 8006E2BC 14400007 */ bnez $v0, .L8006E2DC
/* 06EEC0 8006E2C0 8FBF0024 */ lw $ra, 0x24($sp)
/* 06EEC4 8006E2C4 0C0002CA */ jal func_80000B28
/* 06EEC8 8006E2C8 00000000 */ nop
/* 06EECC 8006E2CC 8E0E0000 */ lw $t6, ($s0)
/* 06EED0 8006E2D0 00000000 */ nop
/* 06EED4 8006E2D4 A1C0004B */ sb $zero, 0x4b($t6)
.L8006E2D8:
/* 06EED8 8006E2D8 8FBF0024 */ lw $ra, 0x24($sp)
.L8006E2DC:
/* 06EEDC 8006E2DC 8FB00020 */ lw $s0, 0x20($sp)
/* 06EEE0 8006E2E0 03E00008 */ jr $ra
/* 06EEE4 8006E2E4 27BD0030 */ addiu $sp, $sp, 0x30
-178
View File
@@ -1,178 +0,0 @@
glabel func_8008B4C8
/* 08C0C8 8008B4C8 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 08C0CC 8008B4CC AFB40028 */ sw $s4, 0x28($sp)
/* 08C0D0 8008B4D0 AFB1001C */ sw $s1, 0x1c($sp)
/* 08C0D4 8008B4D4 AFB00018 */ sw $s0, 0x18($sp)
/* 08C0D8 8008B4D8 3C118012 */ lui $s1, %hi(gActivePlayersArray) # $s1, 0x8012
/* 08C0DC 8008B4DC 3C148012 */ lui $s4, %hi(D_801267D8) # $s4, 0x8012
/* 08C0E0 8008B4E0 AFBF003C */ sw $ra, 0x3c($sp)
/* 08C0E4 8008B4E4 AFBE0038 */ sw $fp, 0x38($sp)
/* 08C0E8 8008B4E8 AFB70034 */ sw $s7, 0x34($sp)
/* 08C0EC 8008B4EC AFB60030 */ sw $s6, 0x30($sp)
/* 08C0F0 8008B4F0 AFB5002C */ sw $s5, 0x2c($sp)
/* 08C0F4 8008B4F4 AFB30024 */ sw $s3, 0x24($sp)
/* 08C0F8 8008B4F8 AFB20020 */ sw $s2, 0x20($sp)
/* 08C0FC 8008B4FC 00001025 */ move $v0, $zero
/* 08C100 8008B500 269467D8 */ addiu $s4, %lo(D_801267D8) # addiu $s4, $s4, 0x67d8
/* 08C104 8008B504 263163D4 */ addiu $s1, %lo(gActivePlayersArray) # addiu $s1, $s1, 0x63d4
/* 08C108 8008B508 00008025 */ move $s0, $zero
.L8008B50C:
/* 08C10C 8008B50C 822E0000 */ lb $t6, ($s1)
/* 08C110 8008B510 00107880 */ sll $t7, $s0, 2
/* 08C114 8008B514 11C00004 */ beqz $t6, .L8008B528
/* 08C118 8008B518 028FC021 */ addu $t8, $s4, $t7
/* 08C11C 8008B51C 8F190000 */ lw $t9, ($t8)
/* 08C120 8008B520 00000000 */ nop
/* 08C124 8008B524 00591025 */ or $v0, $v0, $t9
.L8008B528:
/* 08C128 8008B528 26100001 */ addiu $s0, $s0, 1
/* 08C12C 8008B52C 2A010004 */ slti $at, $s0, 4
/* 08C130 8008B530 1420FFF6 */ bnez $at, .L8008B50C
/* 08C134 8008B534 26310001 */ addiu $s1, $s1, 1
/* 08C138 8008B538 30489000 */ andi $t0, $v0, 0x9000
/* 08C13C 8008B53C 11000047 */ beqz $t0, .L8008B65C
/* 08C140 8008B540 00008025 */ move $s0, $zero
/* 08C144 8008B544 24120001 */ li $s2, 1
/* 08C148 8008B548 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
/* 08C14C 8008B54C 0C01BAEA */ jal mark_read_all_save_files
/* 08C150 8008B550 AC32F47C */ sw $s2, %lo(gMenuDelay)($at)
/* 08C154 8008B554 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e
/* 08C158 8008B558 0C030076 */ jal transition_begin
/* 08C15C 8008B55C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c
/* 08C160 8008B560 3C028012 */ lui $v0, %hi(D_801267D8) # $v0, 0x8012
/* 08C164 8008B564 2411FFFF */ li $s1, -1
/* 08C168 8008B568 244267D8 */ addiu $v0, %lo(D_801267D8) # addiu $v0, $v0, 0x67d8
/* 08C16C 8008B56C 00008025 */ move $s0, $zero
.L8008B570:
/* 08C170 8008B570 8C490000 */ lw $t1, ($v0)
/* 08C174 8008B574 00000000 */ nop
/* 08C178 8008B578 312A9000 */ andi $t2, $t1, 0x9000
/* 08C17C 8008B57C 11400002 */ beqz $t2, .L8008B588
/* 08C180 8008B580 00000000 */ nop
/* 08C184 8008B584 02008825 */ move $s1, $s0
.L8008B588:
/* 08C188 8008B588 26100001 */ addiu $s0, $s0, 1
/* 08C18C 8008B58C 2A0B0004 */ slti $t3, $s0, 4
/* 08C190 8008B590 2A2C0000 */ slti $t4, $s1, 0
/* 08C194 8008B594 016C6824 */ and $t5, $t3, $t4
/* 08C198 8008B598 15A0FFF5 */ bnez $t5, .L8008B570
/* 08C19C 8008B59C 24420004 */ addiu $v0, $v0, 4
/* 08C1A0 8008B5A0 3C178012 */ lui $s7, %hi(D_80126808) # $s7, 0x8012
/* 08C1A4 8008B5A4 26F76808 */ addiu $s7, %lo(D_80126808) # addiu $s7, $s7, 0x6808
/* 08C1A8 8008B5A8 00117080 */ sll $t6, $s1, 2
/* 08C1AC 8008B5AC 02EE8021 */ addu $s0, $s7, $t6
/* 08C1B0 8008B5B0 8E040000 */ lw $a0, ($s0)
/* 08C1B4 8008B5B4 00000000 */ nop
/* 08C1B8 8008B5B8 10800003 */ beqz $a0, .L8008B5C8
/* 08C1BC 8008B5BC 00000000 */ nop
/* 08C1C0 8008B5C0 0C001223 */ jal func_8000488C
/* 08C1C4 8008B5C4 00000000 */ nop
.L8008B5C8:
/* 08C1C8 8008B5C8 3C188012 */ lui $t8, %hi(gPlayersCharacterArray) # $t8, 0x8012
/* 08C1CC 8008B5CC 0311C021 */ addu $t8, $t8, $s1
/* 08C1D0 8008B5D0 831863E8 */ lb $t8, %lo(gPlayersCharacterArray)($t8)
/* 08C1D4 8008B5D4 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012
/* 08C1D8 8008B5D8 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc
/* 08C1DC 8008B5DC 0018C8C0 */ sll $t9, $t8, 3
/* 08C1E0 8008B5E0 8FCF0000 */ lw $t7, ($fp)
/* 08C1E4 8008B5E4 0338C823 */ subu $t9, $t9, $t8
/* 08C1E8 8008B5E8 0019C840 */ sll $t9, $t9, 1
/* 08C1EC 8008B5EC 01F94021 */ addu $t0, $t7, $t9
/* 08C1F0 8008B5F0 8504000C */ lh $a0, 0xc($t0)
/* 08C1F4 8008B5F4 02002825 */ move $a1, $s0
/* 08C1F8 8008B5F8 2484019E */ addiu $a0, $a0, 0x19e
/* 08C1FC 8008B5FC 3089FFFF */ andi $t1, $a0, 0xffff
/* 08C200 8008B600 0C000741 */ jal play_sound_global
/* 08C204 8008B604 01202025 */ move $a0, $t1
/* 08C208 8008B608 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e
/* 08C20C 8008B60C 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0)
/* 08C210 8008B610 00000000 */ nop
/* 08C214 8008B614 28410003 */ slti $at, $v0, 3
/* 08C218 8008B618 1020000C */ beqz $at, .L8008B64C
/* 08C21C 8008B61C 28410002 */ slti $at, $v0, 2
/* 08C220 8008B620 14200005 */ bnez $at, .L8008B638
/* 08C224 8008B624 3C0A800E */ lui $t2, %hi(gActiveMagicCodes) # $t2, 0x800e
/* 08C228 8008B628 8D4AFD98 */ lw $t2, %lo(gActiveMagicCodes)($t2)
/* 08C22C 8008B62C 00000000 */ nop
/* 08C230 8008B630 000A59C0 */ sll $t3, $t2, 7
/* 08C234 8008B634 05610005 */ bgez $t3, .L8008B64C
.L8008B638:
/* 08C238 8008B638 3C0C800E */ lui $t4, %hi(D_800DFFD0) # $t4, 0x800e
/* 08C23C 8008B63C 8D8CFFD0 */ lw $t4, %lo(D_800DFFD0)($t4)
/* 08C240 8008B640 00000000 */ nop
/* 08C244 8008B644 164C0039 */ bne $s2, $t4, .L8008B72C
/* 08C248 8008B648 8FBF003C */ lw $ra, 0x3c($sp)
.L8008B64C:
/* 08C24C 8008B64C 0C000326 */ jal set_music_fade_timer
/* 08C250 8008B650 2404FF80 */ li $a0, -128
/* 08C254 8008B654 10000035 */ b .L8008B72C
/* 08C258 8008B658 8FBF003C */ lw $ra, 0x3c($sp)
.L8008B65C:
/* 08C25C 8008B65C 3C118012 */ lui $s1, %hi(gActivePlayersArray) # $s1, 0x8012
/* 08C260 8008B660 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012
/* 08C264 8008B664 3C178012 */ lui $s7, %hi(D_80126808) # $s7, 0x8012
/* 08C268 8008B668 3C158012 */ lui $s5, %hi(D_801263DC) # $s5, 0x8012
/* 08C26C 8008B66C 3C13800E */ lui $s3, %hi(gNumberOfReadyPlayers) # $s3, 0x800e
/* 08C270 8008B670 2673F480 */ addiu $s3, %lo(gNumberOfReadyPlayers) # addiu $s3, $s3, -0xb80
/* 08C274 8008B674 26B563DC */ addiu $s5, %lo(D_801263DC) # addiu $s5, $s5, 0x63dc
/* 08C278 8008B678 26F76808 */ addiu $s7, %lo(D_80126808) # addiu $s7, $s7, 0x6808
/* 08C27C 8008B67C 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc
/* 08C280 8008B680 263163D4 */ addiu $s1, %lo(gActivePlayersArray) # addiu $s1, $s1, 0x63d4
/* 08C284 8008B684 24160004 */ li $s6, 4
.L8008B688:
/* 08C288 8008B688 822D0000 */ lb $t5, ($s1)
/* 08C28C 8008B68C 02B01821 */ addu $v1, $s5, $s0
/* 08C290 8008B690 11A00022 */ beqz $t5, .L8008B71C
/* 08C294 8008B694 00000000 */ nop
/* 08C298 8008B698 806E0000 */ lb $t6, ($v1)
/* 08C29C 8008B69C 00101080 */ sll $v0, $s0, 2
/* 08C2A0 8008B6A0 11C0001E */ beqz $t6, .L8008B71C
/* 08C2A4 8008B6A4 0282C021 */ addu $t8, $s4, $v0
/* 08C2A8 8008B6A8 8F0F0000 */ lw $t7, ($t8)
/* 08C2AC 8008B6AC 02E22821 */ addu $a1, $s7, $v0
/* 08C2B0 8008B6B0 31F94000 */ andi $t9, $t7, 0x4000
/* 08C2B4 8008B6B4 13200019 */ beqz $t9, .L8008B71C
/* 08C2B8 8008B6B8 3C0A8012 */ lui $t2, %hi(gPlayersCharacterArray) # $t2, 0x8012
/* 08C2BC 8008B6BC 8E680000 */ lw $t0, ($s3)
/* 08C2C0 8008B6C0 8CA40000 */ lw $a0, ($a1)
/* 08C2C4 8008B6C4 254A63E8 */ addiu $t2, %lo(gPlayersCharacterArray) # addiu $t2, $t2, 0x63e8
/* 08C2C8 8008B6C8 2509FFFF */ addiu $t1, $t0, -1
/* 08C2CC 8008B6CC A0600000 */ sb $zero, ($v1)
/* 08C2D0 8008B6D0 AE690000 */ sw $t1, ($s3)
/* 08C2D4 8008B6D4 10800005 */ beqz $a0, .L8008B6EC
/* 08C2D8 8008B6D8 020A9021 */ addu $s2, $s0, $t2
/* 08C2DC 8008B6DC 0C001223 */ jal func_8000488C
/* 08C2E0 8008B6E0 AFA50044 */ sw $a1, 0x44($sp)
/* 08C2E4 8008B6E4 8FA50044 */ lw $a1, 0x44($sp)
/* 08C2E8 8008B6E8 00000000 */ nop
.L8008B6EC:
/* 08C2EC 8008B6EC 824C0000 */ lb $t4, ($s2)
/* 08C2F0 8008B6F0 8FCB0000 */ lw $t3, ($fp)
/* 08C2F4 8008B6F4 000C68C0 */ sll $t5, $t4, 3
/* 08C2F8 8008B6F8 01AC6823 */ subu $t5, $t5, $t4
/* 08C2FC 8008B6FC 000D6840 */ sll $t5, $t5, 1
/* 08C300 8008B700 016D7021 */ addu $t6, $t3, $t5
/* 08C304 8008B704 85C4000C */ lh $a0, 0xc($t6)
/* 08C308 8008B708 00000000 */ nop
/* 08C30C 8008B70C 24840093 */ addiu $a0, $a0, 0x93
/* 08C310 8008B710 3098FFFF */ andi $t8, $a0, 0xffff
/* 08C314 8008B714 0C000741 */ jal play_sound_global
/* 08C318 8008B718 03002025 */ move $a0, $t8
.L8008B71C:
/* 08C31C 8008B71C 26100001 */ addiu $s0, $s0, 1
/* 08C320 8008B720 1616FFD9 */ bne $s0, $s6, .L8008B688
/* 08C324 8008B724 26310001 */ addiu $s1, $s1, 1
/* 08C328 8008B728 8FBF003C */ lw $ra, 0x3c($sp)
.L8008B72C:
/* 08C32C 8008B72C 8FB00018 */ lw $s0, 0x18($sp)
/* 08C330 8008B730 8FB1001C */ lw $s1, 0x1c($sp)
/* 08C334 8008B734 8FB20020 */ lw $s2, 0x20($sp)
/* 08C338 8008B738 8FB30024 */ lw $s3, 0x24($sp)
/* 08C33C 8008B73C 8FB40028 */ lw $s4, 0x28($sp)
/* 08C340 8008B740 8FB5002C */ lw $s5, 0x2c($sp)
/* 08C344 8008B744 8FB60030 */ lw $s6, 0x30($sp)
/* 08C348 8008B748 8FB70034 */ lw $s7, 0x34($sp)
/* 08C34C 8008B74C 8FBE0038 */ lw $fp, 0x38($sp)
/* 08C350 8008B750 03E00008 */ jr $ra
/* 08C354 8008B754 27BD0060 */ addiu $sp, $sp, 0x60
-267
View File
@@ -1,267 +0,0 @@
glabel func_8008B758
/* 08C358 8008B758 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 08C35C 8008B75C AFBE0040 */ sw $fp, 0x40($sp)
/* 08C360 8008B760 AFB7003C */ sw $s7, 0x3c($sp)
/* 08C364 8008B764 AFB60038 */ sw $s6, 0x38($sp)
/* 08C368 8008B768 AFB00020 */ sw $s0, 0x20($sp)
/* 08C36C 8008B76C AFB50034 */ sw $s5, 0x34($sp)
/* 08C370 8008B770 AFB40030 */ sw $s4, 0x30($sp)
/* 08C374 8008B774 AFB3002C */ sw $s3, 0x2c($sp)
/* 08C378 8008B778 3C108012 */ lui $s0, %hi(gMenuCurrentCharacter) # $s0, 0x8012
/* 08C37C 8008B77C 3C168012 */ lui $s6, %hi(gPlayersCharacterArray) # $s6, 0x8012
/* 08C380 8008B780 3C17800E */ lui $s7, %hi(gNumberOfReadyPlayers) # $s7, 0x800e
/* 08C384 8008B784 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012
/* 08C388 8008B788 AFBF0044 */ sw $ra, 0x44($sp)
/* 08C38C 8008B78C AFB20028 */ sw $s2, 0x28($sp)
/* 08C390 8008B790 AFB10024 */ sw $s1, 0x24($sp)
/* 08C394 8008B794 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc
/* 08C398 8008B798 26F7F480 */ addiu $s7, %lo(gNumberOfReadyPlayers) # addiu $s7, $s7, -0xb80
/* 08C39C 8008B79C 26D663E8 */ addiu $s6, %lo(gPlayersCharacterArray) # addiu $s6, $s6, 0x63e8
/* 08C3A0 8008B7A0 261063C0 */ addiu $s0, %lo(gMenuCurrentCharacter) # addiu $s0, $s0, 0x63c0
/* 08C3A4 8008B7A4 2413000E */ li $s3, 14
/* 08C3A8 8008B7A8 0000A025 */ move $s4, $zero
/* 08C3AC 8008B7AC 24150014 */ li $s5, 20
/* 08C3B0 8008B7B0 00801025 */ move $v0, $a0
.L8008B7B4:
/* 08C3B4 8008B7B4 AFA2004C */ sw $v0, 0x4c($sp)
/* 08C3B8 8008B7B8 804E0000 */ lb $t6, ($v0)
/* 08C3BC 8008B7BC 3C0F8012 */ lui $t7, %hi(D_801263DC) # $t7, 0x8012
/* 08C3C0 8008B7C0 11C000CD */ beqz $t6, .L8008BAF8
/* 08C3C4 8008B7C4 25EF63DC */ addiu $t7, %lo(D_801263DC) # addiu $t7, $t7, 0x63dc
/* 08C3C8 8008B7C8 028F2821 */ addu $a1, $s4, $t7
/* 08C3CC 8008B7CC 80B90000 */ lb $t9, ($a1)
/* 08C3D0 8008B7D0 3C188012 */ lui $t8, %hi(D_801267D8) # $t8, 0x8012
/* 08C3D4 8008B7D4 271867D8 */ addiu $t8, %lo(D_801267D8) # addiu $t8, $t8, 0x67d8
/* 08C3D8 8008B7D8 00143080 */ sll $a2, $s4, 2
/* 08C3DC 8008B7DC 1320001E */ beqz $t9, .L8008B858
/* 08C3E0 8008B7E0 00D81021 */ addu $v0, $a2, $t8
/* 08C3E4 8008B7E4 8C480000 */ lw $t0, ($v0)
/* 08C3E8 8008B7E8 3C0C8012 */ lui $t4, %hi(D_80126808) # $t4, 0x8012
/* 08C3EC 8008B7EC 31094000 */ andi $t1, $t0, 0x4000
/* 08C3F0 8008B7F0 112000C1 */ beqz $t1, .L8008BAF8
/* 08C3F4 8008B7F4 258C6808 */ addiu $t4, %lo(D_80126808) # addiu $t4, $t4, 0x6808
/* 08C3F8 8008B7F8 8EEA0000 */ lw $t2, ($s7)
/* 08C3FC 8008B7FC 00CC8821 */ addu $s1, $a2, $t4
/* 08C400 8008B800 8E240000 */ lw $a0, ($s1)
/* 08C404 8008B804 254BFFFF */ addiu $t3, $t2, -1
/* 08C408 8008B808 A0A00000 */ sb $zero, ($a1)
/* 08C40C 8008B80C AEEB0000 */ sw $t3, ($s7)
/* 08C410 8008B810 10800003 */ beqz $a0, .L8008B820
/* 08C414 8008B814 02D49021 */ addu $s2, $s6, $s4
/* 08C418 8008B818 0C001223 */ jal func_8000488C
/* 08C41C 8008B81C 00000000 */ nop
.L8008B820:
/* 08C420 8008B820 824E0000 */ lb $t6, ($s2)
/* 08C424 8008B824 8FCD0000 */ lw $t5, ($fp)
/* 08C428 8008B828 01D30019 */ multu $t6, $s3
/* 08C42C 8008B82C 02202825 */ move $a1, $s1
/* 08C430 8008B830 00007812 */ mflo $t7
/* 08C434 8008B834 01AFC021 */ addu $t8, $t5, $t7
/* 08C438 8008B838 8704000C */ lh $a0, 0xc($t8)
/* 08C43C 8008B83C 00000000 */ nop
/* 08C440 8008B840 24840093 */ addiu $a0, $a0, 0x93
/* 08C444 8008B844 3099FFFF */ andi $t9, $a0, 0xffff
/* 08C448 8008B848 0C000741 */ jal play_sound_global
/* 08C44C 8008B84C 03202025 */ move $a0, $t9
/* 08C450 8008B850 100000AA */ b .L8008BAFC
/* 08C454 8008B854 8FA2004C */ lw $v0, 0x4c($sp)
.L8008B858:
/* 08C458 8008B858 8C430000 */ lw $v1, ($v0)
/* 08C45C 8008B85C 02D49021 */ addu $s2, $s6, $s4
/* 08C460 8008B860 30684000 */ andi $t0, $v1, 0x4000
/* 08C464 8008B864 1100003C */ beqz $t0, .L8008B958
/* 08C468 8008B868 30789000 */ andi $t8, $v1, 0x9000
/* 08C46C 8008B86C 3C09800E */ lui $t1, %hi(gNumberOfActivePlayers) # $t1, 0x800e
/* 08C470 8008B870 8D29F4BC */ lw $t1, %lo(gNumberOfActivePlayers)($t1)
/* 08C474 8008B874 3C01800E */ lui $at, %hi(gNumberOfActivePlayers) # $at, 0x800e
/* 08C478 8008B878 252AFFFF */ addiu $t2, $t1, -1
/* 08C47C 8008B87C AC2AF4BC */ sw $t2, %lo(gNumberOfActivePlayers)($at)
/* 08C480 8008B880 3C06800E */ lui $a2, %hi(gNumberOfActivePlayers) # $a2, 0x800e
/* 08C484 8008B884 8CC6F4BC */ lw $a2, %lo(gNumberOfActivePlayers)($a2)
/* 08C488 8008B888 3C018012 */ lui $at, %hi(gActivePlayersArray) # $at, 0x8012
/* 08C48C 8008B88C 00340821 */ addu $at, $at, $s4
/* 08C490 8008B890 18C00026 */ blez $a2, .L8008B92C
/* 08C494 8008B894 A02063D4 */ sb $zero, %lo(gActivePlayersArray)($at)
/* 08C498 8008B898 824C0000 */ lb $t4, ($s2)
/* 08C49C 8008B89C 8FC50000 */ lw $a1, ($fp)
/* 08C4A0 8008B8A0 01930019 */ multu $t4, $s3
/* 08C4A4 8008B8A4 3C0B8012 */ lui $t3, %hi(gMenuSelectedCharacter) # $t3, 0x8012
/* 08C4A8 8008B8A8 816B63B4 */ lb $t3, %lo(gMenuSelectedCharacter)($t3)
/* 08C4AC 8008B8AC 00007012 */ mflo $t6
/* 08C4B0 8008B8B0 00AE6821 */ addu $t5, $a1, $t6
/* 08C4B4 8008B8B4 85AF000C */ lh $t7, 0xc($t5)
/* 08C4B8 8008B8B8 00000000 */ nop
/* 08C4BC 8008B8BC 156F001C */ bne $t3, $t7, .L8008B930
/* 08C4C0 8008B8C0 240BFFFF */ li $t3, -1
/* 08C4C4 8008B8C4 82180001 */ lb $t8, 1($s0)
/* 08C4C8 8008B8C8 00002025 */ move $a0, $zero
/* 08C4CC 8008B8CC 1F000017 */ bgtz $t8, .L8008B92C
/* 08C4D0 8008B8D0 00001825 */ move $v1, $zero
/* 08C4D4 8008B8D4 3C198012 */ lui $t9, %hi(gActivePlayersArray) # $t9, 0x8012
/* 08C4D8 8008B8D8 273963D4 */ addiu $t9, %lo(gActivePlayersArray) # addiu $t9, $t9, 0x63d4
/* 08C4DC 8008B8DC 00191021 */ addu $v0, $zero, $t9
.L8008B8E0:
/* 08C4E0 8008B8E0 80480000 */ lb $t0, ($v0)
/* 08C4E4 8008B8E4 02C34821 */ addu $t1, $s6, $v1
/* 08C4E8 8008B8E8 1100000A */ beqz $t0, .L8008B914
/* 08C4EC 8008B8EC 00000000 */ nop
/* 08C4F0 8008B8F0 812A0000 */ lb $t2, ($t1)
/* 08C4F4 8008B8F4 24040001 */ li $a0, 1
/* 08C4F8 8008B8F8 01530019 */ multu $t2, $s3
/* 08C4FC 8008B8FC 00006012 */ mflo $t4
/* 08C500 8008B900 00AC7021 */ addu $t6, $a1, $t4
/* 08C504 8008B904 85CD000C */ lh $t5, 0xc($t6)
/* 08C508 8008B908 A6000002 */ sh $zero, 2($s0)
/* 08C50C 8008B90C A2150001 */ sb $s5, 1($s0)
/* 08C510 8008B910 A20D0000 */ sb $t5, ($s0)
.L8008B914:
/* 08C514 8008B914 24630001 */ addiu $v1, $v1, 1
/* 08C518 8008B918 28610004 */ slti $at, $v1, 4
/* 08C51C 8008B91C 10200003 */ beqz $at, .L8008B92C
/* 08C520 8008B920 24420001 */ addiu $v0, $v0, 1
/* 08C524 8008B924 1080FFEE */ beqz $a0, .L8008B8E0
/* 08C528 8008B928 00000000 */ nop
.L8008B92C:
/* 08C52C 8008B92C 240BFFFF */ li $t3, -1
.L8008B930:
/* 08C530 8008B930 1CC00071 */ bgtz $a2, .L8008BAF8
/* 08C534 8008B934 A24B0000 */ sb $t3, ($s2)
/* 08C538 8008B938 240FFFFF */ li $t7, -1
/* 08C53C 8008B93C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
/* 08C540 8008B940 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e
/* 08C544 8008B944 AC2FF47C */ sw $t7, %lo(gMenuDelay)($at)
/* 08C548 8008B948 0C030076 */ jal transition_begin
/* 08C54C 8008B94C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c
/* 08C550 8008B950 1000006A */ b .L8008BAFC
/* 08C554 8008B954 8FA2004C */ lw $v0, 0x4c($sp)
.L8008B958:
/* 08C558 8008B958 1300001A */ beqz $t8, .L8008B9C4
/* 08C55C 8008B95C 24190001 */ li $t9, 1
/* 08C560 8008B960 3C0A8012 */ lui $t2, %hi(D_80126808) # $t2, 0x8012
/* 08C564 8008B964 254A6808 */ addiu $t2, %lo(D_80126808) # addiu $t2, $t2, 0x6808
/* 08C568 8008B968 8EE80000 */ lw $t0, ($s7)
/* 08C56C 8008B96C 00CA8821 */ addu $s1, $a2, $t2
/* 08C570 8008B970 8E240000 */ lw $a0, ($s1)
/* 08C574 8008B974 25090001 */ addiu $t1, $t0, 1
/* 08C578 8008B978 A0B90000 */ sb $t9, ($a1)
/* 08C57C 8008B97C 10800003 */ beqz $a0, .L8008B98C
/* 08C580 8008B980 AEE90000 */ sw $t1, ($s7)
/* 08C584 8008B984 0C001223 */ jal func_8000488C
/* 08C588 8008B988 00000000 */ nop
.L8008B98C:
/* 08C58C 8008B98C 824E0000 */ lb $t6, ($s2)
/* 08C590 8008B990 8FCC0000 */ lw $t4, ($fp)
/* 08C594 8008B994 01D30019 */ multu $t6, $s3
/* 08C598 8008B998 02202825 */ move $a1, $s1
/* 08C59C 8008B99C 00006812 */ mflo $t5
/* 08C5A0 8008B9A0 018D5821 */ addu $t3, $t4, $t5
/* 08C5A4 8008B9A4 8564000C */ lh $a0, 0xc($t3)
/* 08C5A8 8008B9A8 00000000 */ nop
/* 08C5AC 8008B9AC 24840087 */ addiu $a0, $a0, 0x87
/* 08C5B0 8008B9B0 308FFFFF */ andi $t7, $a0, 0xffff
/* 08C5B4 8008B9B4 0C000741 */ jal play_sound_global
/* 08C5B8 8008B9B8 01E02025 */ move $a0, $t7
/* 08C5BC 8008B9BC 1000004F */ b .L8008BAFC
/* 08C5C0 8008B9C0 8FA2004C */ lw $v0, 0x4c($sp)
.L8008B9C4:
/* 08C5C4 8008B9C4 82580000 */ lb $t8, ($s2)
/* 08C5C8 8008B9C8 00141840 */ sll $v1, $s4, 1
/* 08C5CC 8008B9CC 03130019 */ multu $t8, $s3
/* 08C5D0 8008B9D0 3C048012 */ lui $a0, %hi(D_80126830) # $a0, 0x8012
/* 08C5D4 8008B9D4 00832021 */ addu $a0, $a0, $v1
/* 08C5D8 8008B9D8 8FC50000 */ lw $a1, ($fp)
/* 08C5DC 8008B9DC 84846830 */ lh $a0, %lo(D_80126830)($a0)
/* 08C5E0 8008B9E0 24060002 */ li $a2, 2
/* 08C5E4 8008B9E4 240700EC */ li $a3, 236
/* 08C5E8 8008B9E8 2419015C */ li $t9, 348
/* 08C5EC 8008B9EC 00001012 */ mflo $v0
/* 08C5F0 8008B9F0 00458821 */ addu $s1, $v0, $a1
/* 08C5F4 8008B9F4 1880000B */ blez $a0, .L8008BA24
/* 08C5F8 8008B9F8 00000000 */ nop
/* 08C5FC 8008B9FC 02802025 */ move $a0, $s4
/* 08C600 8008BA00 02202825 */ move $a1, $s1
/* 08C604 8008BA04 0C022FFA */ jal func_8008BFE8
/* 08C608 8008BA08 AFB90010 */ sw $t9, 0x10($sp)
/* 08C60C 8008BA0C 82420000 */ lb $v0, ($s2)
/* 08C610 8008BA10 8FC50000 */ lw $a1, ($fp)
/* 08C614 8008BA14 000240C0 */ sll $t0, $v0, 3
/* 08C618 8008BA18 01024023 */ subu $t0, $t0, $v0
/* 08C61C 8008BA1C 1000002D */ b .L8008BAD4
/* 08C620 8008BA20 00081040 */ sll $v0, $t0, 1
.L8008BA24:
/* 08C624 8008BA24 0481000D */ bgez $a0, .L8008BA5C
/* 08C628 8008BA28 24060002 */ li $a2, 2
/* 08C62C 8008BA2C 2409015C */ li $t1, 348
/* 08C630 8008BA30 AFA90010 */ sw $t1, 0x10($sp)
/* 08C634 8008BA34 02802025 */ move $a0, $s4
/* 08C638 8008BA38 26250002 */ addiu $a1, $s1, 2
/* 08C63C 8008BA3C 0C022FFA */ jal func_8008BFE8
/* 08C640 8008BA40 240700EC */ li $a3, 236
/* 08C644 8008BA44 82420000 */ lb $v0, ($s2)
/* 08C648 8008BA48 8FC50000 */ lw $a1, ($fp)
/* 08C64C 8008BA4C 000250C0 */ sll $t2, $v0, 3
/* 08C650 8008BA50 01425023 */ subu $t2, $t2, $v0
/* 08C654 8008BA54 1000001F */ b .L8008BAD4
/* 08C658 8008BA58 000A1040 */ sll $v0, $t2, 1
.L8008BA5C:
/* 08C65C 8008BA5C 3C048012 */ lui $a0, %hi(D_80126818) # $a0, 0x8012
/* 08C660 8008BA60 00832021 */ addu $a0, $a0, $v1
/* 08C664 8008BA64 84846818 */ lh $a0, %lo(D_80126818)($a0)
/* 08C668 8008BA68 24060004 */ li $a2, 4
/* 08C66C 8008BA6C 0481000C */ bgez $a0, .L8008BAA0
/* 08C670 8008BA70 240700EC */ li $a3, 236
/* 08C674 8008BA74 240E015C */ li $t6, 348
/* 08C678 8008BA78 AFAE0010 */ sw $t6, 0x10($sp)
/* 08C67C 8008BA7C 02802025 */ move $a0, $s4
/* 08C680 8008BA80 0C022FFA */ jal func_8008BFE8
/* 08C684 8008BA84 26250004 */ addiu $a1, $s1, 4
/* 08C688 8008BA88 82420000 */ lb $v0, ($s2)
/* 08C68C 8008BA8C 8FC50000 */ lw $a1, ($fp)
/* 08C690 8008BA90 000260C0 */ sll $t4, $v0, 3
/* 08C694 8008BA94 01826023 */ subu $t4, $t4, $v0
/* 08C698 8008BA98 1000000E */ b .L8008BAD4
/* 08C69C 8008BA9C 000C1040 */ sll $v0, $t4, 1
.L8008BAA0:
/* 08C6A0 8008BAA0 1880000C */ blez $a0, .L8008BAD4
/* 08C6A4 8008BAA4 24060004 */ li $a2, 4
/* 08C6A8 8008BAA8 240D015C */ li $t5, 348
/* 08C6AC 8008BAAC AFAD0010 */ sw $t5, 0x10($sp)
/* 08C6B0 8008BAB0 02802025 */ move $a0, $s4
/* 08C6B4 8008BAB4 26250008 */ addiu $a1, $s1, 8
/* 08C6B8 8008BAB8 0C022FFA */ jal func_8008BFE8
/* 08C6BC 8008BABC 240700EC */ li $a3, 236
/* 08C6C0 8008BAC0 82420000 */ lb $v0, ($s2)
/* 08C6C4 8008BAC4 8FC50000 */ lw $a1, ($fp)
/* 08C6C8 8008BAC8 000258C0 */ sll $t3, $v0, 3
/* 08C6CC 8008BACC 01625823 */ subu $t3, $t3, $v0
/* 08C6D0 8008BAD0 000B1040 */ sll $v0, $t3, 1
.L8008BAD4:
/* 08C6D4 8008BAD4 00A27821 */ addu $t7, $a1, $v0
/* 08C6D8 8008BAD8 85E3000C */ lh $v1, 0xc($t7)
/* 08C6DC 8008BADC 8638000C */ lh $t8, 0xc($s1)
/* 08C6E0 8008BAE0 00000000 */ nop
/* 08C6E4 8008BAE4 13030005 */ beq $t8, $v1, .L8008BAFC
/* 08C6E8 8008BAE8 8FA2004C */ lw $v0, 0x4c($sp)
/* 08C6EC 8008BAEC A2030000 */ sb $v1, ($s0)
/* 08C6F0 8008BAF0 A6000002 */ sh $zero, 2($s0)
/* 08C6F4 8008BAF4 A2150001 */ sb $s5, 1($s0)
.L8008BAF8:
/* 08C6F8 8008BAF8 8FA2004C */ lw $v0, 0x4c($sp)
.L8008BAFC:
/* 08C6FC 8008BAFC 26940001 */ addiu $s4, $s4, 1
/* 08C700 8008BB00 24010004 */ li $at, 4
/* 08C704 8008BB04 1681FF2B */ bne $s4, $at, .L8008B7B4
/* 08C708 8008BB08 24420001 */ addiu $v0, $v0, 1
/* 08C70C 8008BB0C 8FBF0044 */ lw $ra, 0x44($sp)
/* 08C710 8008BB10 8FB00020 */ lw $s0, 0x20($sp)
/* 08C714 8008BB14 8FB10024 */ lw $s1, 0x24($sp)
/* 08C718 8008BB18 8FB20028 */ lw $s2, 0x28($sp)
/* 08C71C 8008BB1C 8FB3002C */ lw $s3, 0x2c($sp)
/* 08C720 8008BB20 8FB40030 */ lw $s4, 0x30($sp)
/* 08C724 8008BB24 8FB50034 */ lw $s5, 0x34($sp)
/* 08C728 8008BB28 8FB60038 */ lw $s6, 0x38($sp)
/* 08C72C 8008BB2C 8FB7003C */ lw $s7, 0x3c($sp)
/* 08C730 8008BB30 8FBE0040 */ lw $fp, 0x40($sp)
/* 08C734 8008BB34 03E00008 */ jr $ra
/* 08C738 8008BB38 27BD0060 */ addiu $sp, $sp, 0x60
-146
View File
@@ -1,146 +0,0 @@
glabel func_8002FD74
/* 030974 8002FD74 8FA40010 */ lw $a0, 0x10($sp)
/* 030978 8002FD78 E7AC0000 */ swc1 $f12, ($sp)
/* 03097C 8002FD7C E7AE0004 */ swc1 $f14, 4($sp)
/* 030980 8002FD80 AFA60008 */ sw $a2, 8($sp)
/* 030984 8002FD84 18800076 */ blez $a0, .L8002FF60
/* 030988 8002FD88 AFA7000C */ sw $a3, 0xc($sp)
/* 03098C 8002FD8C 8FA20014 */ lw $v0, 0x14($sp)
/* 030990 8002FD90 28810002 */ slti $at, $a0, 2
/* 030994 8002FD94 C4420000 */ lwc1 $f2, ($v0)
/* 030998 8002FD98 C44C0008 */ lwc1 $f12, 8($v0)
/* 03099C 8002FD9C 24030001 */ li $v1, 1
/* 0309A0 8002FDA0 46001006 */ mov.s $f0, $f2
/* 0309A4 8002FDA4 1420005A */ bnez $at, .L8002FF10
/* 0309A8 8002FDA8 46006386 */ mov.s $f14, $f12
/* 0309AC 8002FDAC 2485FFFF */ addiu $a1, $a0, -1
/* 0309B0 8002FDB0 30AE0001 */ andi $t6, $a1, 1
/* 0309B4 8002FDB4 11C0001D */ beqz $t6, .L8002FE2C
/* 0309B8 8002FDB8 0004C100 */ sll $t8, $a0, 4
/* 0309BC 8002FDBC 24430010 */ addiu $v1, $v0, 0x10
/* 0309C0 8002FDC0 C4700000 */ lwc1 $f16, ($v1)
/* 0309C4 8002FDC4 00000000 */ nop
/* 0309C8 8002FDC8 4600803C */ c.lt.s $f16, $f0
/* 0309CC 8002FDCC 00000000 */ nop
/* 0309D0 8002FDD0 45000003 */ bc1f .L8002FDE0
/* 0309D4 8002FDD4 00000000 */ nop
/* 0309D8 8002FDD8 10000006 */ b .L8002FDF4
/* 0309DC 8002FDDC 46008006 */ mov.s $f0, $f16
.L8002FDE0:
/* 0309E0 8002FDE0 4610103C */ c.lt.s $f2, $f16
/* 0309E4 8002FDE4 00000000 */ nop
/* 0309E8 8002FDE8 45000002 */ bc1f .L8002FDF4
/* 0309EC 8002FDEC 00000000 */ nop
/* 0309F0 8002FDF0 46008086 */ mov.s $f2, $f16
.L8002FDF4:
/* 0309F4 8002FDF4 C4700008 */ lwc1 $f16, 8($v1)
/* 0309F8 8002FDF8 24030002 */ li $v1, 2
/* 0309FC 8002FDFC 460E803C */ c.lt.s $f16, $f14
/* 030A00 8002FE00 00000000 */ nop
/* 030A04 8002FE04 45000003 */ bc1f .L8002FE14
/* 030A08 8002FE08 00000000 */ nop
/* 030A0C 8002FE0C 10000006 */ b .L8002FE28
/* 030A10 8002FE10 46008386 */ mov.s $f14, $f16
.L8002FE14:
/* 030A14 8002FE14 4610603C */ c.lt.s $f12, $f16
/* 030A18 8002FE18 00000000 */ nop
/* 030A1C 8002FE1C 45000002 */ bc1f .L8002FE28
/* 030A20 8002FE20 00000000 */ nop
/* 030A24 8002FE24 46008306 */ mov.s $f12, $f16
.L8002FE28:
/* 030A28 8002FE28 10640039 */ beq $v1, $a0, .L8002FF10
.L8002FE2C:
/* 030A2C 8002FE2C 00037900 */ sll $t7, $v1, 4
/* 030A30 8002FE30 004F2821 */ addu $a1, $v0, $t7
/* 030A34 8002FE34 03023021 */ addu $a2, $t8, $v0
.L8002FE38:
/* 030A38 8002FE38 C4B00000 */ lwc1 $f16, ($a1)
/* 030A3C 8002FE3C 00000000 */ nop
/* 030A40 8002FE40 4600803C */ c.lt.s $f16, $f0
/* 030A44 8002FE44 00000000 */ nop
/* 030A48 8002FE48 45000003 */ bc1f .L8002FE58
/* 030A4C 8002FE4C 00000000 */ nop
/* 030A50 8002FE50 10000006 */ b .L8002FE6C
/* 030A54 8002FE54 46008006 */ mov.s $f0, $f16
.L8002FE58:
/* 030A58 8002FE58 4610103C */ c.lt.s $f2, $f16
/* 030A5C 8002FE5C 00000000 */ nop
/* 030A60 8002FE60 45000002 */ bc1f .L8002FE6C
/* 030A64 8002FE64 00000000 */ nop
/* 030A68 8002FE68 46008086 */ mov.s $f2, $f16
.L8002FE6C:
/* 030A6C 8002FE6C C4B00008 */ lwc1 $f16, 8($a1)
/* 030A70 8002FE70 00000000 */ nop
/* 030A74 8002FE74 460E803C */ c.lt.s $f16, $f14
/* 030A78 8002FE78 00000000 */ nop
/* 030A7C 8002FE7C 45000003 */ bc1f .L8002FE8C
/* 030A80 8002FE80 00000000 */ nop
/* 030A84 8002FE84 10000006 */ b .L8002FEA0
/* 030A88 8002FE88 46008386 */ mov.s $f14, $f16
.L8002FE8C:
/* 030A8C 8002FE8C 4610603C */ c.lt.s $f12, $f16
/* 030A90 8002FE90 00000000 */ nop
/* 030A94 8002FE94 45000002 */ bc1f .L8002FEA0
/* 030A98 8002FE98 00000000 */ nop
/* 030A9C 8002FE9C 46008306 */ mov.s $f12, $f16
.L8002FEA0:
/* 030AA0 8002FEA0 C4B00010 */ lwc1 $f16, 0x10($a1)
/* 030AA4 8002FEA4 00000000 */ nop
/* 030AA8 8002FEA8 4600803C */ c.lt.s $f16, $f0
/* 030AAC 8002FEAC 00000000 */ nop
/* 030AB0 8002FEB0 45000003 */ bc1f .L8002FEC0
/* 030AB4 8002FEB4 00000000 */ nop
/* 030AB8 8002FEB8 10000006 */ b .L8002FED4
/* 030ABC 8002FEBC 46008006 */ mov.s $f0, $f16
.L8002FEC0:
/* 030AC0 8002FEC0 4610103C */ c.lt.s $f2, $f16
/* 030AC4 8002FEC4 00000000 */ nop
/* 030AC8 8002FEC8 45000002 */ bc1f .L8002FED4
/* 030ACC 8002FECC 00000000 */ nop
/* 030AD0 8002FED0 46008086 */ mov.s $f2, $f16
.L8002FED4:
/* 030AD4 8002FED4 C4B00018 */ lwc1 $f16, 0x18($a1)
/* 030AD8 8002FED8 24A50020 */ addiu $a1, $a1, 0x20
/* 030ADC 8002FEDC 460E803C */ c.lt.s $f16, $f14
/* 030AE0 8002FEE0 00000000 */ nop
/* 030AE4 8002FEE4 45000003 */ bc1f .L8002FEF4
/* 030AE8 8002FEE8 00000000 */ nop
/* 030AEC 8002FEEC 10000006 */ b .L8002FF08
/* 030AF0 8002FEF0 46008386 */ mov.s $f14, $f16
.L8002FEF4:
/* 030AF4 8002FEF4 4610603C */ c.lt.s $f12, $f16
/* 030AF8 8002FEF8 00000000 */ nop
/* 030AFC 8002FEFC 45000002 */ bc1f .L8002FF08
/* 030B00 8002FF00 00000000 */ nop
/* 030B04 8002FF04 46008306 */ mov.s $f12, $f16
.L8002FF08:
/* 030B08 8002FF08 14A6FFCB */ bne $a1, $a2, .L8002FE38
/* 030B0C 8002FF0C 00000000 */ nop
.L8002FF10:
/* 030B10 8002FF10 C7A40000 */ lwc1 $f4, ($sp)
/* 030B14 8002FF14 C7A60004 */ lwc1 $f6, 4($sp)
/* 030B18 8002FF18 4602203E */ c.le.s $f4, $f2
/* 030B1C 8002FF1C 00000000 */ nop
/* 030B20 8002FF20 45000010 */ bc1f .L8002FF64
/* 030B24 8002FF24 00001025 */ move $v0, $zero
/* 030B28 8002FF28 460C303E */ c.le.s $f6, $f12
/* 030B2C 8002FF2C C7A80008 */ lwc1 $f8, 8($sp)
/* 030B30 8002FF30 4500000C */ bc1f .L8002FF64
/* 030B34 8002FF34 00001025 */ move $v0, $zero
/* 030B38 8002FF38 4608003E */ c.le.s $f0, $f8
/* 030B3C 8002FF3C C7AA000C */ lwc1 $f10, 0xc($sp)
/* 030B40 8002FF40 45000008 */ bc1f .L8002FF64
/* 030B44 8002FF44 00001025 */ move $v0, $zero
/* 030B48 8002FF48 460A703E */ c.le.s $f14, $f10
/* 030B4C 8002FF4C 00000000 */ nop
/* 030B50 8002FF50 45000004 */ bc1f .L8002FF64
/* 030B54 8002FF54 00001025 */ move $v0, $zero
/* 030B58 8002FF58 03E00008 */ jr $ra
/* 030B5C 8002FF5C 2402FFFF */ li $v0, -1
.L8002FF60:
/* 030B60 8002FF60 00001025 */ move $v0, $zero
.L8002FF64:
/* 030B64 8002FF64 03E00008 */ jr $ra
/* 030B68 8002FF68 00000000 */ nop
+3
View File
@@ -5,6 +5,9 @@
// Interestingly, there's two unused ID's for each set, implying two characters that were cut.
#define SOUND_VOICE_CHARACTER_POSITIVE SOUND_VOICE_KRUNCH_POSITIVE1
#define SOUND_VOICE_CHARACTER_NEGATIVE SOUND_VOICE_KRUNCH_NEGATIVE1
#define SOUND_VOICE_CHARACTER_DESELECTED SOUND_VOICE_KRUNCH_EHH
#define SOUND_VOICE_CHARACTER_SELECTED SOUND_VOICE_KRUNCH_POSITIVE6
#define SOUND_VOICE_CHARACTER_SELECT SOUND_VOICE_KRUNCH_SELECT
#define SOUND_HORN_CHARACTER SOUND_HORN_KRUNCH
#define SOUND_NUMBER_OF_RACERS 8
+16 -5
View File
@@ -166,11 +166,22 @@ typedef struct MenuElement {
/* 0x14 */ u16 *numberU16; // Pointer to a number to be displayed on the screen.
/* 0x14 */ s32 value; // Some value for elementType == 5
} unk14_a;
// Element Background Color/Transparency
/* 0x18 */ s16 backgroundRed;
/* 0x1A */ s16 backgroundGreen;
/* 0x1C */ s16 backgroundBlue;
/* 0x1E */ s16 backgroundAlpha; // 0x0000 = No background, 0x00FF = full background color.
union {
struct {
// Element Background Color/Transparency
/* 0x18 */ s16 backgroundRed;
/* 0x1A */ s16 backgroundGreen;
/* 0x1C */ s16 backgroundBlue;
/* 0x1E */ s16 backgroundAlpha; // 0x0000 = No background, 0x00FF = full background color.
} background;
struct {
// Texture Size
/* 0x18 */ s16 width;
/* 0x1A */ s16 height;
/* 0x1C */ s16 borderWidth;
/* 0x1E */ s16 borderHeight;
} texture;
} details;
} MenuElement;
#define TEX_FORMAT_RGBA32 0
+313 -198
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -223,10 +223,10 @@ typedef struct ButtonTextElement {
/* Size: 0xE bytes. */
typedef struct CharacterSelectData {
u8 upInput[2];
u8 downInput[2];
u8 rightInput[4];
u8 LeftInput[4];
s8 upInput[2];
s8 downInput[2];
s8 rightInput[4];
s8 leftInput[4];
s16 voiceID;
} CharacterSelectData;
@@ -473,6 +473,8 @@ void calculate_and_display_rom_checksum(void);
s32 menu_trophy_race_rankings_loop(s32 updateRate);
s32 menu_results_loop(s32 updateRate);
s32 menu_options_loop(s32 updateRate);
void func_8008B4C8(void);
void func_8008B758(s8 *activePlayers);
// Non Matching functions below here
void load_menu_text(s32 language); // Non Matching
@@ -503,13 +505,11 @@ void func_8007FFEC(s32 arg0);
void func_800871D8(s32 arg0);
SIDeviceStatus func_80087F14(s32 *controllerIndex, s32 arg1);
void func_8009C6D4(s32 arg0);
void func_8008B4C8(void);
void func_8008B758(s8 *activePlayers);
void set_D_800DD430(s8 arg0);
void func_80099E8C(s32 updateRate);
s32 func_800998E0(s32 arg0);
void func_80081218(void);
void func_80080580(Gfx** dlist, s32 x, s32 y, s32 x0, s32 y0, s32 x1, s32 y1, s32 colour, TextureHeader* tex);
void func_80080580(Gfx **dlist, s32 startX, s32 startY, s32 width, s32 height, s32 borderWidth, s32 borderHeight, s32 colour, TextureHeader *tex);
void func_800853D0(unk800861C8 *arg0, s32 arg1, s32 arg2);
void render_enter_filename_ui(UNUSED s32 unused);
void func_8008D8BC(s32 updateRate);
@@ -522,7 +522,7 @@ void func_80093D40(UNUSED s32 updateRate);
void func_80080BC8(Gfx **);
void func_8009963C(void);
void func_80081C04(s32 num, s32 x, s32 y, u8 r, u8 g, u8 b, u8 a, u8 font, u8 alignment);
void func_80080E90(Gfx **dList, s32 x, s32 y, u8 BGr, u8 BGg, u8 BGb, u8 BGa, u8 r, u8 g, u8 b, u8 a);
void func_80080E90(Gfx **dList, s32 startX, s32 startY, s32 width, s32 height, s32 borderWidth, s32 borderHeight, s32 colour0, s32 colour1, s32 colour2, s32 colour3);
void func_80084854(void);
s32 func_800862C4(void);
s32 func_80086AFC(void);
+36 -39
View File
@@ -105,7 +105,7 @@ Vertex *gGameCurrVertexList;
TriangleList *gTriangleHeap[2];
TriangleList *gGameCurrTriList;
UNUSED s32 D_80121230[8];
s8 D_80121250[16]; //Settings4C
s8 D_80121250[16];
OSSched gMainSched; // 0x288 / 648 bytes
u64 gSchedStack[0x400];
s32 gSPTaskNum;
@@ -671,20 +671,20 @@ void ingame_logic_loop(s32 updateRate) {
switch (sp40) {
case 1:
// Go to track select menu from "Select Track" option in tracks menu.
load_menu_with_level_background(MENU_TRACK_SELECT, -1, 1);
load_menu_with_level_background(MENU_TRACK_SELECT, SPECIAL_MAP_ID_NO_LEVEL, 1);
break;
case 2:
load_menu_with_level_background(MENU_RESULTS, 0x22, 0);
load_menu_with_level_background(MENU_RESULTS, ASSET_LEVEL_TROPHYRACE, 0);
break;
case 3:
load_menu_with_level_background(MENU_TROPHY_RACE_ROUND, 0x22, 0);
load_menu_with_level_background(MENU_TROPHY_RACE_ROUND, ASSET_LEVEL_TROPHYRACE, 0);
break;
case 4:
load_menu_with_level_background(MENU_TROPHY_RACE_RANKINGS, 0x22, 0);
load_menu_with_level_background(MENU_TROPHY_RACE_RANKINGS, ASSET_LEVEL_TROPHYRACE, 0);
break;
case 5:
// Trophy race related?
load_menu_with_level_background(MENU_UNUSED_22, 0x22, 0);
load_menu_with_level_background(MENU_UNUSED_22, ASSET_LEVEL_TROPHYRACE, 0);
break;
case 6:
// Go to character select menu from "Select Character" option in tracks menu.
@@ -696,23 +696,23 @@ void ingame_logic_loop(s32 updateRate) {
i ^= 3;
}
func_8008AEB4(1, 0);
load_menu_with_level_background(MENU_CHARACTER_SELECT, 0x16, i);
load_menu_with_level_background(MENU_CHARACTER_SELECT, ASSET_LEVEL_CHARACTERSELECT, i);
break;
case 7:
gIsLoading = TRUE;
load_menu_with_level_background(MENU_UNKNOWN_23, -1, 0);
load_menu_with_level_background(MENU_UNKNOWN_23, SPECIAL_MAP_ID_NO_LEVEL, 0);
gIsLoading = FALSE;
break;
case 8:
load_menu_with_level_background(MENU_CREDITS, -1, 0);
load_menu_with_level_background(MENU_CREDITS, SPECIAL_MAP_ID_NO_LEVEL, 0);
break;
}
} else if (D_801234FC == 1) {
if (D_80121250[2] == -1) {
load_menu_with_level_background(MENU_UNUSED_8, -1, 0);
load_menu_with_level_background(MENU_UNUSED_8, SPECIAL_MAP_ID_NO_LEVEL, 0);
} else {
gIsLoading = TRUE;
load_menu_with_level_background(MENU_TRACK_SELECT_ADVENTURE, -1, -1);
load_menu_with_level_background(MENU_TRACK_SELECT_ADVENTURE, SPECIAL_MAP_ID_NO_LEVEL, -1);
}
} else if (!(buttonHeldInputs & R_TRIG)) {
if (!(buttonHeldInputs & Z_TRIG)) {
@@ -727,7 +727,7 @@ void ingame_logic_loop(s32 updateRate) {
load_level_game(gPlayableMapId, gGameNumPlayers, gGameCurrentEntrance, gLevelDefaultVehicleID);
} else {
safe_mark_write_save_file(get_save_file_index());
load_menu_with_level_background(MENU_TITLE, -1, 0);
load_menu_with_level_background(MENU_TITLE, SPECIAL_MAP_ID_NO_LEVEL, 0);
}
D_801234FC = 0;
}
@@ -900,11 +900,12 @@ void update_menu_scene(s32 updateRate) {
}
}
#ifdef NON_EQUIVALENT
// Minor & regalloc issues.
void func_8006DCF8(s32 updateRate) {
s32 menuLoopResult, temp, temp2, tempResult;
s32 menuLoopResult;
s32 temp;
s32 playerVehicle;
s32 temp5;
gIsPaused = FALSE;
gPostRaceViewPort = NULL;
if (!gIsLoading && gRenderMenu) {
@@ -938,7 +939,7 @@ void func_8006DCF8(s32 updateRate) {
gPostRaceViewPort = NULL;
switch (menuLoopResult & 0x7F) {
case 5:
load_menu_with_level_background(MENU_TRACK_SELECT, -1, 1);
load_menu_with_level_background(MENU_TRACK_SELECT, SPECIAL_MAP_ID_NO_LEVEL, 1);
break;
case 14:
gPlayableMapId = ASSET_LEVEL_CENTRALAREAHUB;
@@ -950,17 +951,16 @@ void func_8006DCF8(s32 updateRate) {
break;
case 1:
gGameCurrentEntrance = 0;
gGameCurrentCutscene = CUTSCENE_ID_UNK_64;
gPlayableMapId = D_80121250[0];
gGameCurrentCutscene = CUTSCENE_ID_UNK_64;
sRenderContext = DRAW_GAME;
// Minor issue with these 2 if statements
temp2 = D_80121250[D_80121250[1] + 8];
temp = D_80121250[15];
if (temp >= 0) {
gGameCurrentEntrance = temp;
temp5 = D_80121250[1];
if (D_80121250[15] >= 0) {
gGameCurrentEntrance = D_80121250[15];
}
if (temp2 >= 0) {
gGameCurrentCutscene = temp2;
temp = D_80121250[temp5 + 8];
if (temp >= 0) {
gGameCurrentCutscene = temp;
}
load_level_game(gPlayableMapId, gGameNumPlayers, gGameCurrentEntrance, gLevelDefaultVehicleID);
safe_mark_write_save_file(get_save_file_index());
@@ -978,27 +978,28 @@ void func_8006DCF8(s32 updateRate) {
load_level_game(gPlayableMapId, gGameNumPlayers, gGameCurrentEntrance, gLevelDefaultVehicleID);
break;
default:
load_menu_with_level_background(MENU_TITLE, -1, 0);
load_menu_with_level_background(MENU_TITLE, SPECIAL_MAP_ID_NO_LEVEL, 0);
break;
}
return;
}
if ((menuLoopResult & 0x80) && (menuLoopResult != -1)) {
unload_level_menu();
// Minor issue here.
gCurrDisplayList = gDisplayLists[gSPTaskNum];
gDPFullSync(gCurrDisplayList++);
gSPEndDisplayList(gCurrDisplayList++);
temp = menuLoopResult & 0x7F;
D_80121250[1] = temp;
menuLoopResult &= 0x7f;
D_80121250[1] = menuLoopResult;
D_80121250[0] = gPlayableMapId;
gPlayableMapId = D_80121250[temp + 2];
gGameCurrentEntrance = D_80121250[temp + 4];
gPlayableMapId = D_80121250[menuLoopResult+2];
gGameCurrentEntrance = D_80121250[menuLoopResult+4];
sRenderContext = DRAW_GAME;
gGameCurrentCutscene = D_80121250[temp + 12];
temp = get_player_selected_vehicle(0);
gGameCurrentCutscene = D_80121250[menuLoopResult+12];
playerVehicle = get_player_selected_vehicle(0);
gGameNumPlayers = gSettingsPtr->gNumRacers - 1;
load_level_game(gPlayableMapId, gGameNumPlayers, gGameCurrentEntrance, temp);
load_level_game(gPlayableMapId, gGameNumPlayers, gGameCurrentEntrance, playerVehicle);
D_801234FC = 0;
gLevelDefaultVehicleID = D_8012351C;
return;
@@ -1017,10 +1018,6 @@ void func_8006DCF8(s32 updateRate) {
}
}
#else
GLOBAL_ASM("asm/non_matchings/game/func_8006DCF8.s")
#endif
void load_level_for_menu(s32 levelId, s32 numberOfPlayers, s32 cutsceneId) {
if (!gIsLoading) {
unload_level_menu();
@@ -1524,7 +1521,7 @@ void pre_intro_loop(void) {
}
sBootDelayTimer++;
if (sBootDelayTimer >= 8) {
load_menu_with_level_background(MENU_BOOT, 0x27, 2);
load_menu_with_level_background(MENU_BOOT, ASSET_LEVEL_OPTIONSBACKGROUND, 2);
}
}
-2
View File
@@ -118,8 +118,6 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl
void init_level_globals(void);
void alloc_displaylist_heap(s32 numberOfPlayers);
void default_alloc_displaylist_heap(void);
//Non Matching
void func_8006DCF8(s32 updateRate);
#endif
+29 -1
View File
@@ -2397,7 +2397,35 @@ f32 func_8002FA64(void) {
return (D_8011D0E4 - var_f2) / D_8011D0E4;
}
GLOBAL_ASM("asm/non_matchings/tracks/func_8002FD74.s")
s32 func_8002FD74(f32 x0, f32 z0, f32 x1, f32 x2, s32 count, Vec4f *arg5) {
if(count > 0) {
f32 minX = arg5[0].x;
f32 maxX = arg5[0].x;
f32 minZ = arg5[0].z;
f32 maxZ = arg5[0].z;
s32 i;
for(i = 1; i < count; i++) {
if (arg5[i].x < minX) {
minX = arg5[i].x;
} else if (maxX < arg5[i].x) {
maxX = arg5[i].x;
}
if (arg5[i].z < minZ) {
minZ = arg5[i].z;
} else if (maxZ < arg5[i].z) {
maxZ = arg5[i].z;
}
}
if ((x0 <= maxX) && (z0 <= maxZ) && (minX <= x1) && (minZ <= x2)) {
return -1;
}
}
return 0;
}
GLOBAL_ASM("asm/non_matchings/tracks/func_8002FF6C.s")
GLOBAL_ASM("asm/non_matchings/tracks/func_800304C8.s")
+1
View File
@@ -175,6 +175,7 @@ void render_level_segment(s32 segmentId, s32 nonOpaque);
void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, TriangleList** tris, s32 updateRate);
void func_80030664(s32 fogIdx, s16 near, s16 far, u8 red, u8 green, u8 blue);
void func_80030DE0(s32 fogIdx, s32 red, s32 green, s32 blue, s32 near, s32 far, s32 switchTimer);
s32 func_8002FD74(f32 x0, f32 z0, f32 x1, f32 x2, s32 count, Vec4f *arg5);
void free_track(void);
void func_8002581C(u8 *segmentIds, s32 numberOfSegments, s32 currentViewportIndex);