mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
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:
@@ -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:
|
||||
|
||||
    Decomp progress: 56.18%
|
||||
    Decomp progress: 56.60%
|
||||
|
||||
    Documentation progress: 28.44%
|
||||
    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 --------------------------
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+8
-8
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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")
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user