Merge pull request #157 from DavidSM64/doc

Decompiled 7 functions from unknown_043920 & menu
This commit is contained in:
David Benepe
2021-08-14 02:24:42 -05:00
committed by GitHub
19 changed files with 1005 additions and 1064 deletions
+6 -6
View File
@@ -113,14 +113,14 @@ s32 is_drumstick_unlocked(void) {
}
```
As of August 6th 2021, this is our current score:
As of August 14th 2021, this is our current score:
```
=======================================================
ADVENTURE ONE (ASM -> C Decompilation)
------------------- 13.16% Complete -------------------
# Decompiled functions: 852
# GLOBAL_ASM remaining: 918
# NON_MATCHING functions: 76
------------------- 13.58% Complete -------------------
# Decompiled functions: 865
# GLOBAL_ASM remaining: 910
# NON_MATCHING functions: 86
--------------------- Game Status ---------------------
Balloons: 8/47, Keys: 1/4, Trophies: 0/5
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
@@ -130,7 +130,7 @@ As of August 6th 2021, this is our current score:
ADVENTURE TWO (Cleanup & Documentation)
------------------- 0.75% Complete -------------------
# Documented functions: 61
# Undocumented remaining: 1709
# Undocumented remaining: 1714
--------------------- Game Status ---------------------
Balloons: 0/47, Keys: 0/4, Trophies: 0/5
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
+2 -2
View File
@@ -82,11 +82,11 @@ glabel func_80081218
/* 081F58 80081358 24636C30 */ addiu $v1, %lo(gCheatsAssetData) # addiu $v1, $v1, 0x6c30
/* 081F5C 8008135C AC620000 */ sw $v0, ($v1)
/* 081F60 80081360 94580000 */ lhu $t8, ($v0)
/* 081F64 80081364 3C018012 */ lui $at, %hi(D_80126C38) # $at, 0x8012
/* 081F64 80081364 3C018012 */ lui $at, %hi(gNumberOfCheats) # $at, 0x8012
/* 081F68 80081368 24041000 */ li $a0, 4096
/* 081F6C 8008136C 2405FFFF */ li $a1, -1
/* 081F70 80081370 0C01C327 */ jal allocate_from_main_pool_safe
/* 081F74 80081374 AC386C38 */ sw $t8, %lo(D_80126C38)($at)
/* 081F74 80081374 AC386C38 */ sw $t8, %lo(gNumberOfCheats)($at)
/* 081F78 80081378 3C01800E */ lui $at, %hi(gMenuText) # $at, 0x800e
/* 081F7C 8008137C AC22F4A0 */ sw $v0, %lo(gMenuText)($at)
/* 081F80 80081380 0C01FE40 */ jal load_menu_text
+1 -1
View File
@@ -64,7 +64,7 @@ glabel L8009D0B8
/* 09DCC0 8009D0C0 10000010 */ b .L8009D104
/* 09DCC4 8009D0C4 00401825 */ move $v1, $v0
glabel L8009D0C8
/* 09DCC8 8009D0C8 0C0276CF */ jal func_8009DB3C
/* 09DCC8 8009D0C8 0C0276CF */ jal tt_menu_loop
/* 09DCCC 8009D0CC 00000000 */ nop
/* 09DCD0 8009D0D0 1000000C */ b .L8009D104
/* 09DCD4 8009D0D4 00401825 */ move $v1, $v0
@@ -114,7 +114,7 @@ glabel menu_character_select_loop
/* 08CAC8 8008BEC8 24420001 */ addiu $v0, $v0, 1
/* 08CACC 8008BECC 1449FFF0 */ bne $v0, $t1, .L8008BE90
/* 08CAD0 8008BED0 24630001 */ addiu $v1, $v1, 1
/* 08CAD4 8008BED4 0C022ECF */ jal func_8008BB3C
/* 08CAD4 8008BED4 0C022ECF */ jal randomize_ai_racer_slots
/* 08CAD8 8008BED8 AFAB0024 */ sw $t3, 0x24($sp)
/* 08CADC 8008BEDC 3C048012 */ lui $a0, %hi(gActivePlayersArray) # $a0, 0x8012
/* 08CAE0 8008BEE0 0C01A916 */ jal func_8006A458
+10 -10
View File
@@ -41,26 +41,26 @@ glabel menu_ghost_data_init
/* 09A6F4 80099AF4 3C01800E */ lui $at, %hi(D_800E153C) # $at, 0x800e
/* 09A6F8 80099AF8 AC37153C */ sw $s7, %lo(D_800E153C)($at)
/* 09A6FC 80099AFC 8C5E003C */ lw $fp, 0x3c($v0)
/* 09A700 80099B00 3C01800E */ lui $at, %hi(D_800E1564) # $at, 0x800e
/* 09A704 80099B04 AC3E1564 */ sw $fp, %lo(D_800E1564)($at)
/* 09A700 80099B00 3C01800E */ lui $at, %hi(D_800E153C+0x28) # $at, 0x800e
/* 09A704 80099B04 AC3E1564 */ sw $fp, %lo(D_800E153C+0x28)($at)
/* 09A708 80099B08 8C430040 */ lw $v1, 0x40($v0)
/* 09A70C 80099B0C 3C01800E */ lui $at, %hi(D_800E1594) # $at, 0x800e
/* 09A710 80099B10 AC231594 */ sw $v1, %lo(D_800E1594)($at)
/* 09A714 80099B14 8C440044 */ lw $a0, 0x44($v0)
/* 09A718 80099B18 3C01800E */ lui $at, %hi(D_800E15BC) # $at, 0x800e
/* 09A71C 80099B1C AC2415BC */ sw $a0, %lo(D_800E15BC)($at)
/* 09A718 80099B18 3C01800E */ lui $at, %hi(D_800E1594+0x28) # $at, 0x800e
/* 09A71C 80099B1C AC2415BC */ sw $a0, %lo(D_800E1594+0x28)($at)
/* 09A720 80099B20 8C450048 */ lw $a1, 0x48($v0)
/* 09A724 80099B24 3C01800E */ lui $at, %hi(D_800E15EC) # $at, 0x800e
/* 09A728 80099B28 AC2515EC */ sw $a1, %lo(D_800E15EC)($at)
/* 09A72C 80099B2C 8C46004C */ lw $a2, 0x4c($v0)
/* 09A730 80099B30 3C01800E */ lui $at, %hi(D_800E1614) # $at, 0x800e
/* 09A734 80099B34 AC261614 */ sw $a2, %lo(D_800E1614)($at)
/* 09A730 80099B30 3C01800E */ lui $at, %hi(D_800E15EC+0x28) # $at, 0x800e
/* 09A734 80099B34 AC261614 */ sw $a2, %lo(D_800E15EC+0x28)($at)
/* 09A738 80099B38 8C470050 */ lw $a3, 0x50($v0)
/* 09A73C 80099B3C 3C01800E */ lui $at, %hi(D_800E1644) # $at, 0x800e
/* 09A740 80099B40 AC271644 */ sw $a3, %lo(D_800E1644)($at)
/* 09A744 80099B44 8C490054 */ lw $t1, 0x54($v0)
/* 09A748 80099B48 3C01800E */ lui $at, %hi(D_800E166C) # $at, 0x800e
/* 09A74C 80099B4C AC29166C */ sw $t1, %lo(D_800E166C)($at)
/* 09A748 80099B48 3C01800E */ lui $at, %hi(D_800E1644+0x28) # $at, 0x800e
/* 09A74C 80099B4C AC29166C */ sw $t1, %lo(D_800E1644+0x28)($at)
/* 09A750 80099B50 8C4A0058 */ lw $t2, 0x58($v0)
/* 09A754 80099B54 3C01800E */ lui $at, %hi(D_800E169C) # $at, 0x800e
/* 09A758 80099B58 24080001 */ li $t0, 1
@@ -71,8 +71,8 @@ glabel menu_ghost_data_init
/* 09A76C 80099B6C 310A0001 */ andi $t2, $t0, 1
/* 09A770 80099B70 01460019 */ multu $t2, $a2
/* 09A774 80099B74 8C4B005C */ lw $t3, 0x5c($v0)
/* 09A778 80099B78 3C01800E */ lui $at, %hi(D_800E16C4) # $at, 0x800e
/* 09A77C 80099B7C AC2B16C4 */ sw $t3, %lo(D_800E16C4)($at)
/* 09A778 80099B78 3C01800E */ lui $at, %hi(D_800E169C+0x28) # $at, 0x800e
/* 09A77C 80099B7C AC2B16C4 */ sw $t3, %lo(D_800E169C+0x28)($at)
/* 09A780 80099B80 AFAB0048 */ sw $t3, 0x48($sp)
/* 09A784 80099B84 3C0F800E */ lui $t7, %hi(D_800E153C) # $t7, 0x800e
/* 09A788 80099B88 AFA5005C */ sw $a1, 0x5c($sp)
-147
View File
@@ -1,147 +0,0 @@
.late_rodata
glabel jpt_800E8284
.word L80081464, L80081454, L8008158C, L800814C4, L8008158C, L80081504, L800814E4, L8008158C, L8008158C, L8008158C, L800814A4, L800814B4, L80081474, L80081484, L80081494, L800814F4, L8008158C, L80081514, L8008158C, L800814D4, L80081524, L80081534, L8008158C, L80081544, L80081554, L80081564, L80081574, L8008158C, L80081584
.text
glabel menu_init
/* 081FD0 800813D0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 081FD4 800813D4 AFBF0014 */ sw $ra, 0x14($sp)
/* 081FD8 800813D8 3C01800E */ lui $at, %hi(gCurrentMenuId) # $at, 0x800e
/* 081FDC 800813DC 0C026F97 */ jal reset_controller_sticks
/* 081FE0 800813E0 AC24F470 */ sw $a0, %lo(gCurrentMenuId)($at)
/* 081FE4 800813E4 240E0001 */ li $t6, 1
/* 081FE8 800813E8 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012
/* 081FEC 800813EC AC2E63C4 */ sw $t6, %lo(gIgnorePlayerInput)($at)
/* 081FF0 800813F0 3C018012 */ lui $at, %hi(D_801263BC) # $at, 0x8012
/* 081FF4 800813F4 AC2063BC */ sw $zero, %lo(D_801263BC)($at)
/* 081FF8 800813F8 3C018012 */ lui $at, %hi(D_801263C8) # $at, 0x8012
/* 081FFC 800813FC AC2063C8 */ sw $zero, %lo(D_801263C8)($at)
/* 082000 80081400 3C018012 */ lui $at, %hi(D_80126828) # $at, 0x8012
/* 082004 80081404 A0206828 */ sb $zero, %lo(D_80126828)($at)
/* 082008 80081408 3C018012 */ lui $at, %hi(D_8012680C) # $at, 0x8012
/* 08200C 8008140C AC206808 */ sw $zero, %lo(D_80126808)($at)
/* 082010 80081410 AC20680C */ sw $zero, %lo(D_8012680C)($at)
/* 082014 80081414 3C018012 */ lui $at, %hi(D_80126814) # $at, 0x8012
/* 082018 80081418 AC206810 */ sw $zero, %lo(D_80126810)($at)
/* 08201C 8008141C 0C000611 */ jal func_80001844
/* 082020 80081420 AC206814 */ sw $zero, %lo(D_80126814)($at)
/* 082024 80081424 3C0F800E */ lui $t7, %hi(gCurrentMenuId) # $t7, 0x800e
/* 082028 80081428 8DEFF470 */ lw $t7, %lo(gCurrentMenuId)($t7)
/* 08202C 8008142C 00000000 */ nop
/* 082030 80081430 2DE1001D */ sltiu $at, $t7, 0x1d
/* 082034 80081434 10200055 */ beqz $at, .L8008158C
/* 082038 80081438 000F7880 */ sll $t7, $t7, 2
/* 08203C 8008143C 3C01800F */ lui $at, %hi(jpt_800E8284) # $at, 0x800f
/* 082040 80081440 002F0821 */ addu $at, $at, $t7
/* 082044 80081444 8C2F8284 */ lw $t7, %lo(jpt_800E8284)($at)
/* 082048 80081448 00000000 */ nop
/* 08204C 8008144C 01E00008 */ jr $t7
/* 082050 80081450 00000000 */ nop
glabel L80081454
/* 082054 80081454 0C020AAB */ jal menu_logos_screen_init
/* 082058 80081458 00000000 */ nop
/* 08205C 8008145C 1000004C */ b .L80081590
/* 082060 80081460 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081464
/* 082064 80081464 0C020D4F */ jal menu_title_screen_init
/* 082068 80081468 00000000 */ nop
/* 08206C 8008146C 10000048 */ b .L80081590
/* 082070 80081470 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081474
/* 082074 80081474 0C021057 */ jal menu_options_init
/* 082078 80081478 00000000 */ nop
/* 08207C 8008147C 10000044 */ b .L80081590
/* 082080 80081480 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081484
/* 082084 80081484 0C0211D5 */ jal menu_audio_options_init
/* 082088 80081488 00000000 */ nop
/* 08208C 8008148C 10000040 */ b .L80081590
/* 082090 80081490 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081494
/* 082094 80081494 0C02149C */ jal menu_save_options_init
/* 082098 80081498 00000000 */ nop
/* 08209C 8008149C 1000003C */ b .L80081590
/* 0820A0 800814A0 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800814A4
/* 0820A4 800814A4 0C022577 */ jal menu_magic_codes_init
/* 0820A8 800814A8 00000000 */ nop
/* 0820AC 800814AC 10000038 */ b .L80081590
/* 0820B0 800814B0 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800814B4
/* 0820B4 800814B4 0C02293A */ jal menu_magic_codes_list_init
/* 0820B8 800814B8 00000000 */ nop
/* 0820BC 800814BC 10000034 */ b .L80081590
/* 0820C0 800814C0 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800814C4
/* 0820C4 800814C4 0C022BF3 */ jal menu_character_select_init
/* 0820C8 800814C8 00000000 */ nop
/* 0820CC 800814CC 10000030 */ b .L80081590
/* 0820D0 800814D0 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800814D4
/* 0820D4 800814D4 0C023142 */ jal menu_game_select_init
/* 0820D8 800814D8 00000000 */ nop
/* 0820DC 800814DC 1000002C */ b .L80081590
/* 0820E0 800814E0 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800814E4
/* 0820E4 800814E4 0C0232BF */ jal menu_file_select_init
/* 0820E8 800814E8 00000000 */ nop
/* 0820EC 800814EC 10000028 */ b .L80081590
/* 0820F0 800814F0 8FBF0014 */ lw $ra, 0x14($sp)
glabel L800814F4
/* 0820F4 800814F4 0C0239E8 */ jal menu_track_select_init
/* 0820F8 800814F8 00000000 */ nop
/* 0820FC 800814FC 10000024 */ b .L80081590
/* 082100 80081500 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081504
/* 082104 80081504 0C024B21 */ jal menu_5_init
/* 082108 80081508 00000000 */ nop
/* 08210C 8008150C 10000020 */ b .L80081590
/* 082110 80081510 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081514
/* 082114 80081514 0C025A12 */ jal menu_11_init
/* 082118 80081518 00000000 */ nop
/* 08211C 8008151C 1000001C */ b .L80081590
/* 082120 80081520 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081524
/* 082124 80081524 0C02609B */ jal menu_trophy_race_round_init
/* 082128 80081528 00000000 */ nop
/* 08212C 8008152C 10000018 */ b .L80081590
/* 082130 80081530 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081534
/* 082134 80081534 0C026289 */ jal menu_trophy_race_rankings_init
/* 082138 80081538 00000000 */ nop
/* 08213C 8008153C 10000014 */ b .L80081590
/* 082140 80081540 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081544
/* 082144 80081544 0C026B26 */ jal menu_23_init
/* 082148 80081548 00000000 */ nop
/* 08214C 8008154C 10000010 */ b .L80081590
/* 082150 80081550 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081554
/* 082154 80081554 0C026697 */ jal menu_ghost_data_init
/* 082158 80081558 00000000 */ nop
/* 08215C 8008155C 1000000C */ b .L80081590
/* 082160 80081560 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081564
/* 082164 80081564 0C026BD2 */ jal menu_credits_init
/* 082168 80081568 00000000 */ nop
/* 08216C 8008156C 10000008 */ b .L80081590
/* 082170 80081570 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081574
/* 082174 80081574 0C02213D */ jal menu_boot_init
/* 082178 80081578 00000000 */ nop
/* 08217C 8008157C 10000004 */ b .L80081590
/* 082180 80081580 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80081584
/* 082184 80081584 0C0230ED */ jal menu_caution_init
/* 082188 80081588 00000000 */ nop
.L8008158C:
glabel L8008158C
/* 08218C 8008158C 8FBF0014 */ lw $ra, 0x14($sp)
.L80081590:
/* 082190 80081590 3418D000 */ li $t8, 53248
/* 082194 80081594 3C018012 */ lui $at, %hi(D_80126470) # $at, 0x8012
/* 082198 80081598 AC386470 */ sw $t8, %lo(D_80126470)($at)
/* 08219C 8008159C 03E00008 */ jr $ra
/* 0821A0 800815A0 27BD0018 */ addiu $sp, $sp, 0x18
@@ -1,294 +0,0 @@
.late_rodata
glabel D_800E838C
.float 2.6
glabel D_800E8390
.float 2.17
.word 0 # Padding
glabel D_800E8398
.double 510.0
glabel D_800E83A0
.double 510.0
glabel D_800E83A8
.double 510.0
.text
glabel menu_logo_screen_loop
/* 083784 80082B84 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000
/* 083788 80082B88 8DCE0300 */ lw $t6, %lo(osTvType)($t6)
/* 08378C 80082B8C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 083790 80082B90 AFBF001C */ sw $ra, 0x1c($sp)
/* 083794 80082B94 15C00020 */ bnez $t6, .L80082C18
/* 083798 80082B98 AFA40030 */ sw $a0, 0x30($sp)
/* 08379C 80082B9C 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 0837A0 80082BA0 C4206450 */ lwc1 $f0, %lo(D_80126450)($at)
/* 0837A4 80082BA4 3C01800F */ lui $at, %hi(D_800E838C) # $at, 0x800f
/* 0837A8 80082BA8 C424838C */ lwc1 $f4, %lo(D_800E838C)($at)
/* 0837AC 80082BAC 240F001A */ li $t7, 26
/* 0837B0 80082BB0 4604003C */ c.lt.s $f0, $f4
/* 0837B4 80082BB4 AFAF0028 */ sw $t7, 0x28($sp)
/* 0837B8 80082BB8 4500000D */ bc1f .L80082BF0
/* 0837BC 80082BBC 3C18800E */ lui $t8, %hi(gMenuDelay) # $t8, 0x800e
/* 0837C0 80082BC0 8F18F47C */ lw $t8, %lo(gMenuDelay)($t8)
/* 0837C4 80082BC4 3C04800E */ lui $a0, %hi(D_800E1DE8) # $a0, 0x800e
/* 0837C8 80082BC8 1700000A */ bnez $t8, .L80082BF4
/* 0837CC 80082BCC 8FA80030 */ lw $t0, 0x30($sp)
/* 0837D0 80082BD0 0C030076 */ jal func_800C01D8
/* 0837D4 80082BD4 24841DE8 */ addiu $a0, %lo(D_800E1DE8) # addiu $a0, $a0, 0x1de8
/* 0837D8 80082BD8 24190001 */ li $t9, 1
/* 0837DC 80082BDC 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
/* 0837E0 80082BE0 AC39F47C */ sw $t9, %lo(gMenuDelay)($at)
/* 0837E4 80082BE4 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 0837E8 80082BE8 C4206450 */ lwc1 $f0, %lo(D_80126450)($at)
/* 0837EC 80082BEC 00000000 */ nop
.L80082BF0:
/* 0837F0 80082BF0 8FA80030 */ lw $t0, 0x30($sp)
.L80082BF4:
/* 0837F4 80082BF4 3C014248 */ li $at, 0x42480000 # 50.000000
/* 0837F8 80082BF8 44883000 */ mtc1 $t0, $f6
/* 0837FC 80082BFC 44815000 */ mtc1 $at, $f10
/* 083800 80082C00 46803220 */ cvt.s.w $f8, $f6
/* 083804 80082C04 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 083808 80082C08 460A4403 */ div.s $f16, $f8, $f10
/* 08380C 80082C0C 46100481 */ sub.s $f18, $f0, $f16
/* 083810 80082C10 1000001F */ b .L80082C90
/* 083814 80082C14 E4326450 */ swc1 $f18, %lo(D_80126450)($at)
.L80082C18:
/* 083818 80082C18 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 08381C 80082C1C C4206450 */ lwc1 $f0, %lo(D_80126450)($at)
/* 083820 80082C20 3C01800F */ lui $at, %hi(D_800E8390) # $at, 0x800f
/* 083824 80082C24 C4248390 */ lwc1 $f4, %lo(D_800E8390)($at)
/* 083828 80082C28 AFA00028 */ sw $zero, 0x28($sp)
/* 08382C 80082C2C 4604003C */ c.lt.s $f0, $f4
/* 083830 80082C30 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e
/* 083834 80082C34 4500000E */ bc1f .L80082C70
/* 083838 80082C38 8FAB0030 */ lw $t3, 0x30($sp)
/* 08383C 80082C3C 8D29F47C */ lw $t1, %lo(gMenuDelay)($t1)
/* 083840 80082C40 3C04800E */ lui $a0, %hi(D_800E1DE8) # $a0, 0x800e
/* 083844 80082C44 1520000A */ bnez $t1, .L80082C70
/* 083848 80082C48 8FAB0030 */ lw $t3, 0x30($sp)
/* 08384C 80082C4C 0C030076 */ jal func_800C01D8
/* 083850 80082C50 24841DE8 */ addiu $a0, %lo(D_800E1DE8) # addiu $a0, $a0, 0x1de8
/* 083854 80082C54 240A0001 */ li $t2, 1
/* 083858 80082C58 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
/* 08385C 80082C5C AC2AF47C */ sw $t2, %lo(gMenuDelay)($at)
/* 083860 80082C60 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 083864 80082C64 C4206450 */ lwc1 $f0, %lo(D_80126450)($at)
/* 083868 80082C68 00000000 */ nop
/* 08386C 80082C6C 8FAB0030 */ lw $t3, 0x30($sp)
.L80082C70:
/* 083870 80082C70 3C014270 */ li $at, 0x42700000 # 60.000000
/* 083874 80082C74 448B3000 */ mtc1 $t3, $f6
/* 083878 80082C78 44815000 */ mtc1 $at, $f10
/* 08387C 80082C7C 46803220 */ cvt.s.w $f8, $f6
/* 083880 80082C80 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 083884 80082C84 460A4403 */ div.s $f16, $f8, $f10
/* 083888 80082C88 46100481 */ sub.s $f18, $f0, $f16
/* 08388C 80082C8C E4326450 */ swc1 $f18, %lo(D_80126450)($at)
.L80082C90:
/* 083890 80082C90 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 083894 80082C94 C4206450 */ lwc1 $f0, %lo(D_80126450)($at)
/* 083898 80082C98 44802000 */ mtc1 $zero, $f4
/* 08389C 80082C9C 00002025 */ move $a0, $zero
/* 0838A0 80082CA0 4604003E */ c.le.s $f0, $f4
/* 0838A4 80082CA4 00000000 */ nop
/* 0838A8 80082CA8 45000012 */ bc1f .L80082CF4
/* 0838AC 80082CAC 3C014021 */ lui $at, 0x4021
/* 0838B0 80082CB0 0C019A25 */ jal func_80066894
/* 0838B4 80082CB4 00002825 */ move $a1, $zero
/* 0838B8 80082CB8 340C8000 */ li $t4, 32768
/* 0838BC 80082CBC AFAC0010 */ sw $t4, 0x10($sp)
/* 0838C0 80082CC0 00002025 */ move $a0, $zero
/* 0838C4 80082CC4 34058000 */ li $a1, 32768
/* 0838C8 80082CC8 34068000 */ li $a2, 32768
/* 0838CC 80082CCC 0C019AAA */ jal func_80066AA8
/* 0838D0 80082CD0 34078000 */ li $a3, 32768
/* 0838D4 80082CD4 0C020BEB */ jal func_80082FAC
/* 0838D8 80082CD8 00000000 */ nop
/* 0838DC 80082CDC 0C0204F4 */ jal menu_init
/* 0838E0 80082CE0 00002025 */ move $a0, $zero
/* 0838E4 80082CE4 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 0838E8 80082CE8 C4206450 */ lwc1 $f0, %lo(D_80126450)($at)
/* 0838EC 80082CEC 00000000 */ nop
/* 0838F0 80082CF0 3C014021 */ li $at, 0x40210000 # 2.515625
.L80082CF4:
/* 0838F4 80082CF4 44814800 */ mtc1 $at, $f9
/* 0838F8 80082CF8 44804000 */ mtc1 $zero, $f8
/* 0838FC 80082CFC 460001A1 */ cvt.d.s $f6, $f0
/* 083900 80082D00 4628303C */ c.lt.d $f6, $f8
/* 083904 80082D04 00000000 */ nop
/* 083908 80082D08 450000A5 */ bc1f .L80082FA0
/* 08390C 80082D0C 8FBF001C */ lw $ra, 0x1c($sp)
/* 083910 80082D10 0C0310BB */ jal set_text_font
/* 083914 80082D14 24040001 */ li $a0, 1
/* 083918 80082D18 00002025 */ move $a0, $zero
/* 08391C 80082D1C 00002825 */ move $a1, $zero
/* 083920 80082D20 00003025 */ move $a2, $zero
/* 083924 80082D24 0C0310F3 */ jal set_text_background_color
/* 083928 80082D28 00003825 */ move $a3, $zero
/* 08392C 80082D2C 3C014020 */ li $at, 0x40200000 # 2.500000
/* 083930 80082D30 44816800 */ mtc1 $at, $f13
/* 083934 80082D34 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 083938 80082D38 C42A6450 */ lwc1 $f10, %lo(D_80126450)($at)
/* 08393C 80082D3C 44806000 */ mtc1 $zero, $f12
/* 083940 80082D40 46005021 */ cvt.d.s $f0, $f10
/* 083944 80082D44 462C003C */ c.lt.d $f0, $f12
/* 083948 80082D48 3C01401E */ li $at, 0x401E0000 # 2.468750
/* 08394C 80082D4C 45000018 */ bc1f .L80082DB0
/* 083950 80082D50 240400FF */ li $a0, 255
/* 083954 80082D54 44818800 */ mtc1 $at, $f17
/* 083958 80082D58 44808000 */ mtc1 $zero, $f16
/* 08395C 80082D5C 3C01800F */ lui $at, %hi(D_800E8398 + 4) # $at, 0x800f
/* 083960 80082D60 4620803E */ c.le.d $f16, $f0
/* 083964 80082D64 00000000 */ nop
/* 083968 80082D68 45000011 */ bc1f .L80082DB0
/* 08396C 80082D6C 00000000 */ nop
/* 083970 80082D70 46206481 */ sub.d $f18, $f12, $f0
/* 083974 80082D74 C4258398 */ lwc1 $f5, %lo(D_800E8398)($at)
/* 083978 80082D78 C424839C */ lwc1 $f4, %lo(D_800E8398 + 4)($at)
/* 08397C 80082D7C 00000000 */ nop
/* 083980 80082D80 46249182 */ mul.d $f6, $f18, $f4
/* 083984 80082D84 444DF800 */ cfc1 $t5, $31
/* 083988 80082D88 00000000 */ nop
/* 08398C 80082D8C 35A10003 */ ori $at, $t5, 3
/* 083990 80082D90 38210002 */ xori $at, $at, 2
/* 083994 80082D94 44C1F800 */ ctc1 $at, $31
/* 083998 80082D98 00000000 */ nop
/* 08399C 80082D9C 46203224 */ cvt.w.d $f8, $f6
/* 0839A0 80082DA0 44024000 */ mfc1 $v0, $f8
/* 0839A4 80082DA4 44CDF800 */ ctc1 $t5, $31
/* 0839A8 80082DA8 10000020 */ b .L80082E2C
/* 0839AC 80082DAC 00000000 */ nop
.L80082DB0:
/* 0839B0 80082DB0 3C01401E */ li $at, 0x401E0000 # 2.468750
/* 0839B4 80082DB4 44815800 */ mtc1 $at, $f11
/* 0839B8 80082DB8 44805000 */ mtc1 $zero, $f10
/* 0839BC 80082DBC 3C01401C */ li $at, 0x401C0000 # 2.437500
/* 0839C0 80082DC0 462A003C */ c.lt.d $f0, $f10
/* 0839C4 80082DC4 00001025 */ move $v0, $zero
/* 0839C8 80082DC8 45000018 */ bc1f .L80082E2C
/* 0839CC 80082DCC 00000000 */ nop
/* 0839D0 80082DD0 44811800 */ mtc1 $at, $f3
/* 0839D4 80082DD4 44801000 */ mtc1 $zero, $f2
/* 0839D8 80082DD8 3C01800F */ lui $at, %hi(D_800E83A0 + 4) # $at, 0x800f
/* 0839DC 80082DDC 4620103E */ c.le.d $f2, $f0
/* 0839E0 80082DE0 00000000 */ nop
/* 0839E4 80082DE4 45000011 */ bc1f .L80082E2C
/* 0839E8 80082DE8 00000000 */ nop
/* 0839EC 80082DEC 46220401 */ sub.d $f16, $f0, $f2
/* 0839F0 80082DF0 C43383A0 */ lwc1 $f19, %lo(D_800E83A0)($at)
/* 0839F4 80082DF4 C43283A4 */ lwc1 $f18, %lo(D_800E83A0 + 4)($at)
/* 0839F8 80082DF8 00000000 */ nop
/* 0839FC 80082DFC 46328102 */ mul.d $f4, $f16, $f18
/* 083A00 80082E00 444EF800 */ cfc1 $t6, $31
/* 083A04 80082E04 00000000 */ nop
/* 083A08 80082E08 35C10003 */ ori $at, $t6, 3
/* 083A0C 80082E0C 38210002 */ xori $at, $at, 2
/* 083A10 80082E10 44C1F800 */ ctc1 $at, $31
/* 083A14 80082E14 00000000 */ nop
/* 083A18 80082E18 462021A4 */ cvt.w.d $f6, $f4
/* 083A1C 80082E1C 44023000 */ mfc1 $v0, $f6
/* 083A20 80082E20 44CEF800 */ ctc1 $t6, $31
/* 083A24 80082E24 10000001 */ b .L80082E2C
/* 083A28 80082E28 00000000 */ nop
.L80082E2C:
/* 083A2C 80082E2C 10400033 */ beqz $v0, .L80082EFC
/* 083A30 80082E30 240500FF */ li $a1, 255
/* 083A34 80082E34 00003025 */ move $a2, $zero
/* 083A38 80082E38 240700FF */ li $a3, 255
/* 083A3C 80082E3C 0C0310E1 */ jal set_text_color
/* 083A40 80082E40 AFA20010 */ sw $v0, 0x10($sp)
/* 083A44 80082E44 8FA60028 */ lw $a2, 0x28($sp)
/* 083A48 80082E48 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012
/* 083A4C 80082E4C 3C07800E */ lui $a3, %hi(gRareCopyrightString) # $a3, 0x800e
/* 083A50 80082E50 240F000C */ li $t7, 12
/* 083A54 80082E54 24C600D4 */ addiu $a2, $a2, 0xd4
/* 083A58 80082E58 AFA60020 */ sw $a2, 0x20($sp)
/* 083A5C 80082E5C AFAF0010 */ sw $t7, 0x10($sp)
/* 083A60 80082E60 24E71DF0 */ addiu $a3, %lo(gRareCopyrightString) # addiu $a3, $a3, 0x1df0
/* 083A64 80082E64 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0
/* 083A68 80082E68 0C031110 */ jal draw_text
/* 083A6C 80082E6C 2405009F */ li $a1, 159
/* 083A70 80082E70 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012
/* 083A74 80082E74 8FA60020 */ lw $a2, 0x20($sp)
/* 083A78 80082E78 3C07800E */ lui $a3, %hi(gRareCopyrightString) # $a3, 0x800e
/* 083A7C 80082E7C 2418000C */ li $t8, 12
/* 083A80 80082E80 AFB80010 */ sw $t8, 0x10($sp)
/* 083A84 80082E84 24E71DF0 */ addiu $a3, %lo(gRareCopyrightString) # addiu $a3, $a3, 0x1df0
/* 083A88 80082E88 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0
/* 083A8C 80082E8C 0C031110 */ jal draw_text
/* 083A90 80082E90 240500A1 */ li $a1, 161
/* 083A94 80082E94 8FA60028 */ lw $a2, 0x28($sp)
/* 083A98 80082E98 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012
/* 083A9C 80082E9C 3C07800E */ lui $a3, %hi(gRareCopyrightString) # $a3, 0x800e
/* 083AA0 80082EA0 2419000C */ li $t9, 12
/* 083AA4 80082EA4 AFB90010 */ sw $t9, 0x10($sp)
/* 083AA8 80082EA8 24E71DF0 */ addiu $a3, %lo(gRareCopyrightString) # addiu $a3, $a3, 0x1df0
/* 083AAC 80082EAC 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0
/* 083AB0 80082EB0 24058000 */ li $a1, -32768
/* 083AB4 80082EB4 0C031110 */ jal draw_text
/* 083AB8 80082EB8 24C600D3 */ addiu $a2, $a2, 0xd3
/* 083ABC 80082EBC 8FA60028 */ lw $a2, 0x28($sp)
/* 083AC0 80082EC0 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012
/* 083AC4 80082EC4 3C07800E */ lui $a3, %hi(gRareCopyrightString) # $a3, 0x800e
/* 083AC8 80082EC8 2408000C */ li $t0, 12
/* 083ACC 80082ECC AFA80010 */ sw $t0, 0x10($sp)
/* 083AD0 80082ED0 24E71DF0 */ addiu $a3, %lo(gRareCopyrightString) # addiu $a3, $a3, 0x1df0
/* 083AD4 80082ED4 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0
/* 083AD8 80082ED8 24058000 */ li $a1, -32768
/* 083ADC 80082EDC 0C031110 */ jal draw_text
/* 083AE0 80082EE0 24C600D5 */ addiu $a2, $a2, 0xd5
/* 083AE4 80082EE4 3C018012 */ lui $at, %hi(D_80126450) # $at, 0x8012
/* 083AE8 80082EE8 C4286450 */ lwc1 $f8, %lo(D_80126450)($at)
/* 083AEC 80082EEC 3C014020 */ li $at, 0x40200000 # 2.500000
/* 083AF0 80082EF0 44816800 */ mtc1 $at, $f13
/* 083AF4 80082EF4 44806000 */ mtc1 $zero, $f12
/* 083AF8 80082EF8 46004021 */ cvt.d.s $f0, $f8
.L80082EFC:
/* 083AFC 80082EFC 8FA90028 */ lw $t1, 0x28($sp)
/* 083B00 80082F00 4620603C */ c.lt.d $f12, $f0
/* 083B04 80082F04 252A00D4 */ addiu $t2, $t1, 0xd4
/* 083B08 80082F08 45000014 */ bc1f .L80082F5C
/* 083B0C 80082F0C AFAA0020 */ sw $t2, 0x20($sp)
/* 083B10 80082F10 3C014021 */ li $at, 0x40210000 # 2.515625
/* 083B14 80082F14 44815800 */ mtc1 $at, $f11
/* 083B18 80082F18 44805000 */ mtc1 $zero, $f10
/* 083B1C 80082F1C 3C01800F */ lui $at, %hi(D_800E83A8 + 4) # $at, 0x800f
/* 083B20 80082F20 C43383A8 */ lwc1 $f19, %lo(D_800E83A8)($at)
/* 083B24 80082F24 C43283AC */ lwc1 $f18, %lo(D_800E83A8 + 4)($at)
/* 083B28 80082F28 46205401 */ sub.d $f16, $f10, $f0
/* 083B2C 80082F2C 46328102 */ mul.d $f4, $f16, $f18
/* 083B30 80082F30 444BF800 */ cfc1 $t3, $31
/* 083B34 80082F34 00000000 */ nop
/* 083B38 80082F38 35610003 */ ori $at, $t3, 3
/* 083B3C 80082F3C 38210002 */ xori $at, $at, 2
/* 083B40 80082F40 44C1F800 */ ctc1 $at, $31
/* 083B44 80082F44 00000000 */ nop
/* 083B48 80082F48 462021A4 */ cvt.w.d $f6, $f4
/* 083B4C 80082F4C 44023000 */ mfc1 $v0, $f6
/* 083B50 80082F50 44CBF800 */ ctc1 $t3, $31
/* 083B54 80082F54 10000003 */ b .L80082F64
/* 083B58 80082F58 240400FF */ li $a0, 255
.L80082F5C:
/* 083B5C 80082F5C 240200FF */ li $v0, 255
/* 083B60 80082F60 240400FF */ li $a0, 255
.L80082F64:
/* 083B64 80082F64 240500FF */ li $a1, 255
/* 083B68 80082F68 240600FF */ li $a2, 255
/* 083B6C 80082F6C 240700FF */ li $a3, 255
/* 083B70 80082F70 0C0310E1 */ jal set_text_color
/* 083B74 80082F74 AFA20010 */ sw $v0, 0x10($sp)
/* 083B78 80082F78 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012
/* 083B7C 80082F7C 8FA60020 */ lw $a2, 0x20($sp)
/* 083B80 80082F80 3C07800E */ lui $a3, %hi(gRareCopyrightString) # $a3, 0x800e
/* 083B84 80082F84 240C000C */ li $t4, 12
/* 083B88 80082F88 AFAC0010 */ sw $t4, 0x10($sp)
/* 083B8C 80082F8C 24E71DF0 */ addiu $a3, %lo(gRareCopyrightString) # addiu $a3, $a3, 0x1df0
/* 083B90 80082F90 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0
/* 083B94 80082F94 0C031110 */ jal draw_text
/* 083B98 80082F98 24058000 */ li $a1, -32768
/* 083B9C 80082F9C 8FBF001C */ lw $ra, 0x1c($sp)
.L80082FA0:
/* 083BA0 80082FA0 27BD0030 */ addiu $sp, $sp, 0x30
/* 083BA4 80082FA4 03E00008 */ jr $ra
/* 083BA8 80082FA8 00001025 */ move $v0, $zero
@@ -274,8 +274,8 @@ glabel menu_magic_codes_loop
/* 08ACB8 8008A0B8 8D296C30 */ lw $t1, %lo(gCheatsAssetData)($t1)
/* 08ACBC 8008A0BC 256B6C4C */ addiu $t3, %lo(D_80126C4C) # addiu $t3, $t3, 0x6c4c
/* 08ACC0 8008A0C0 A5600000 */ sh $zero, ($t3)
/* 08ACC4 8008A0C4 3C0A8012 */ lui $t2, %hi(D_80126C38) # $t2, 0x8012
/* 08ACC8 8008A0C8 8D4A6C38 */ lw $t2, %lo(D_80126C38)($t2)
/* 08ACC4 8008A0C4 3C0A8012 */ lui $t2, %hi(gNumberOfCheats) # $t2, 0x8012
/* 08ACC8 8008A0C8 8D4A6C38 */ lw $t2, %lo(gNumberOfCheats)($t2)
/* 08ACCC 8008A0CC 85680000 */ lh $t0, ($t3)
/* 08ACD0 8008A0D0 000AC040 */ sll $t8, $t2, 1
/* 08ACD4 8008A0D4 0118082A */ slt $at, $t0, $t8
@@ -1,4 +1,4 @@
glabel func_8008BB3C
glabel randomize_ai_racer_slots
/* 08C73C 8008BB3C 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 08C740 8008BB40 AFBF0034 */ sw $ra, 0x34($sp)
/* 08C744 8008BB44 AFB60030 */ sw $s6, 0x30($sp)
@@ -5,7 +5,7 @@ glabel jpt_800E860C
.word L8009E2D0, L8009E2F4, L8009E354, L8009E354, L8009E314, L8009E354, L8009E314, L8009E2E4, L8009E354, L8009E334
.text
glabel func_8009DB3C
glabel tt_menu_loop
/* 09E73C 8009DB3C 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 09E740 8009DB40 AFBF001C */ sw $ra, 0x1c($sp)
/* 09E744 8009DB44 0C01BAA4 */ jal get_settings
@@ -1,48 +0,0 @@
glabel func_8004C0A0
/* 04CCA0 8004C0A0 80CE01D7 */ lb $t6, 0x1d7($a2)
/* 04CCA4 8004C0A4 2401000A */ li $at, 10
/* 04CCA8 8004C0A8 11C10023 */ beq $t6, $at, .L8004C138
/* 04CCAC 8004C0AC 00803825 */ move $a3, $a0
/* 04CCB0 8004C0B0 300F00FF */ andi $t7, $zero, 0xff
/* 04CCB4 8004C0B4 15E00020 */ bnez $t7, .L8004C138
/* 04CCB8 8004C0B8 A0C001F2 */ sb $zero, 0x1f2($a2)
/* 04CCBC 8004C0BC 80C201E1 */ lb $v0, 0x1e1($a2)
/* 04CCC0 8004C0C0 24190028 */ li $t9, 40
/* 04CCC4 8004C0C4 0002C043 */ sra $t8, $v0, 1
/* 04CCC8 8004C0C8 03381023 */ subu $v0, $t9, $t8
/* 04CCCC 8004C0CC 04410002 */ bgez $v0, .L8004C0D8
/* 04CCD0 8004C0D0 00073080 */ sll $a2, $a3, 2
/* 04CCD4 8004C0D4 00001025 */ move $v0, $zero
.L8004C0D8:
/* 04CCD8 8004C0D8 2841004A */ slti $at, $v0, 0x4a
/* 04CCDC 8004C0DC 14200002 */ bnez $at, .L8004C0E8
/* 04CCE0 8004C0E0 00000000 */ nop
/* 04CCE4 8004C0E4 24020049 */ li $v0, 73
.L8004C0E8:
/* 04CCE8 8004C0E8 84A40018 */ lh $a0, 0x18($a1)
/* 04CCEC 8004C0EC 00000000 */ nop
/* 04CCF0 8004C0F0 00441823 */ subu $v1, $v0, $a0
/* 04CCF4 8004C0F4 18600006 */ blez $v1, .L8004C110
/* 04CCF8 8004C0F8 00001025 */ move $v0, $zero
/* 04CCFC 8004C0FC 00C71023 */ subu $v0, $a2, $a3
/* 04CD00 8004C100 0062082A */ slt $at, $v1, $v0
/* 04CD04 8004C104 10200002 */ beqz $at, .L8004C110
/* 04CD08 8004C108 00000000 */ nop
/* 04CD0C 8004C10C 00601025 */ move $v0, $v1
.L8004C110:
/* 04CD10 8004C110 04610007 */ bgez $v1, .L8004C130
/* 04CD14 8004C114 00070823 */ negu $at, $a3
/* 04CD18 8004C118 00013080 */ sll $a2, $at, 2
/* 04CD1C 8004C11C 00C11023 */ subu $v0, $a2, $at
/* 04CD20 8004C120 0043082A */ slt $at, $v0, $v1
/* 04CD24 8004C124 10200003 */ beqz $at, .L8004C134
/* 04CD28 8004C128 00824021 */ addu $t0, $a0, $v0
/* 04CD2C 8004C12C 00601025 */ move $v0, $v1
.L8004C130:
/* 04CD30 8004C130 00824021 */ addu $t0, $a0, $v0
.L8004C134:
/* 04CD34 8004C134 A4A80018 */ sh $t0, 0x18($a1)
.L8004C138:
/* 04CD38 8004C138 03E00008 */ jr $ra
/* 04CD3C 8004C13C 00000000 */ nop
@@ -1,112 +0,0 @@
.late_rodata
glabel D_800E6550
.double 0.7
.text
glabel func_8004C140
/* 04CD40 8004C140 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 04CD44 8004C144 AFBF001C */ sw $ra, 0x1c($sp)
/* 04CD48 8004C148 AFB00018 */ sw $s0, 0x18($sp)
/* 04CD4C 8004C14C 84AE0000 */ lh $t6, ($a1)
/* 04CD50 8004C150 2401FFFF */ li $at, -1
/* 04CD54 8004C154 15C10003 */ bne $t6, $at, .L8004C164
/* 04CD58 8004C158 00A08025 */ move $s0, $a1
/* 04CD5C 8004C15C 10000003 */ b .L8004C16C
/* 04CD60 8004C160 00001825 */ move $v1, $zero
.L8004C164:
/* 04CD64 8004C164 82030185 */ lb $v1, 0x185($s0)
/* 04CD68 8004C168 00000000 */ nop
.L8004C16C:
/* 04CD6C 8004C16C 82020187 */ lb $v0, 0x187($s0)
/* 04CD70 8004C170 00000000 */ nop
/* 04CD74 8004C174 10400005 */ beqz $v0, .L8004C18C
/* 04CD78 8004C178 00000000 */ nop
/* 04CD7C 8004C17C 860F018E */ lh $t7, 0x18e($s0)
/* 04CD80 8004C180 24010004 */ li $at, 4
/* 04CD84 8004C184 19E00003 */ blez $t7, .L8004C194
/* 04CD88 8004C188 00000000 */ nop
.L8004C18C:
/* 04CD8C 8004C18C 10000044 */ b .L8004C2A0
/* 04CD90 8004C190 A2000187 */ sb $zero, 0x187($s0)
.L8004C194:
/* 04CD94 8004C194 10410008 */ beq $v0, $at, .L8004C1B8
/* 04CD98 8004C198 02002825 */ move $a1, $s0
/* 04CD9C 8004C19C 24060002 */ li $a2, 2
/* 04CDA0 8004C1A0 A3A30027 */ sb $v1, 0x27($sp)
/* 04CDA4 8004C1A4 0C015DB8 */ jal func_800576E0
/* 04CDA8 8004C1A8 AFA40028 */ sw $a0, 0x28($sp)
/* 04CDAC 8004C1AC 83A30027 */ lb $v1, 0x27($sp)
/* 04CDB0 8004C1B0 8FA40028 */ lw $a0, 0x28($sp)
/* 04CDB4 8004C1B4 00000000 */ nop
.L8004C1B8:
/* 04CDB8 8004C1B8 921901C9 */ lbu $t9, 0x1c9($s0)
/* 04CDBC 8004C1BC 24180168 */ li $t8, 360
/* 04CDC0 8004C1C0 24010008 */ li $at, 8
/* 04CDC4 8004C1C4 17210002 */ bne $t9, $at, .L8004C1D0
/* 04CDC8 8004C1C8 A618018C */ sh $t8, 0x18c($s0)
/* 04CDCC 8004C1CC A20001C9 */ sb $zero, 0x1c9($s0)
.L8004C1D0:
/* 04CDD0 8004C1D0 820801D6 */ lb $t0, 0x1d6($s0)
/* 04CDD4 8004C1D4 240501C2 */ li $a1, 450
/* 04CDD8 8004C1D8 29010005 */ slti $at, $t0, 5
/* 04CDDC 8004C1DC 10200030 */ beqz $at, .L8004C2A0
/* 04CDE0 8004C1E0 24060008 */ li $a2, 8
/* 04CDE4 8004C1E4 24070081 */ li $a3, 129
/* 04CDE8 8004C1E8 A3A30027 */ sb $v1, 0x27($sp)
/* 04CDEC 8004C1EC 0C015C2E */ jal func_800570B8
/* 04CDF0 8004C1F0 AFA40028 */ sw $a0, 0x28($sp)
/* 04CDF4 8004C1F4 82020187 */ lb $v0, 0x187($s0)
/* 04CDF8 8004C1F8 83A30027 */ lb $v1, 0x27($sp)
/* 04CDFC 8004C1FC 8FA40028 */ lw $a0, 0x28($sp)
/* 04CE00 8004C200 24010001 */ li $at, 1
/* 04CE04 8004C204 10410009 */ beq $v0, $at, .L8004C22C
/* 04CE08 8004C208 24010002 */ li $at, 2
/* 04CE0C 8004C20C 10410007 */ beq $v0, $at, .L8004C22C
/* 04CE10 8004C210 24010003 */ li $at, 3
/* 04CE14 8004C214 1041000C */ beq $v0, $at, .L8004C248
/* 04CE18 8004C218 24010006 */ li $at, 6
/* 04CE1C 8004C21C 10410011 */ beq $v0, $at, .L8004C264
/* 04CE20 8004C220 240D0078 */ li $t5, 120
/* 04CE24 8004C224 1000001E */ b .L8004C2A0
/* 04CE28 8004C228 A2000187 */ sb $zero, 0x187($s0)
.L8004C22C:
/* 04CE2C 8004C22C 10600004 */ beqz $v1, .L8004C240
/* 04CE30 8004C230 240A003C */ li $t2, 60
/* 04CE34 8004C234 24090028 */ li $t1, 40
/* 04CE38 8004C238 10000018 */ b .L8004C29C
/* 04CE3C 8004C23C A20901DB */ sb $t1, 0x1db($s0)
.L8004C240:
/* 04CE40 8004C240 10000016 */ b .L8004C29C
/* 04CE44 8004C244 A20A01DB */ sb $t2, 0x1db($s0)
.L8004C248:
/* 04CE48 8004C248 10600004 */ beqz $v1, .L8004C25C
/* 04CE4C 8004C24C 240C003C */ li $t4, 60
/* 04CE50 8004C250 240B0028 */ li $t3, 40
/* 04CE54 8004C254 10000011 */ b .L8004C29C
/* 04CE58 8004C258 A20B01DB */ sb $t3, 0x1db($s0)
.L8004C25C:
/* 04CE5C 8004C25C 1000000F */ b .L8004C29C
/* 04CE60 8004C260 A20C01DB */ sb $t4, 0x1db($s0)
.L8004C264:
/* 04CE64 8004C264 3C01800E */ lui $at, %hi(D_800E6550 + 4) # $at, 0x800e
/* 04CE68 8004C268 C4216550 */ lwc1 $f1, %lo(D_800E6550)($at)
/* 04CE6C 8004C26C C4206554 */ lwc1 $f0, %lo(D_800E6550 + 4)($at)
/* 04CE70 8004C270 A60D0204 */ sh $t5, 0x204($s0)
/* 04CE74 8004C274 C484001C */ lwc1 $f4, 0x1c($a0)
/* 04CE78 8004C278 C4900024 */ lwc1 $f16, 0x24($a0)
/* 04CE7C 8004C27C 460021A1 */ cvt.d.s $f6, $f4
/* 04CE80 8004C280 46203202 */ mul.d $f8, $f6, $f0
/* 04CE84 8004C284 460084A1 */ cvt.d.s $f18, $f16
/* 04CE88 8004C288 46209102 */ mul.d $f4, $f18, $f0
/* 04CE8C 8004C28C 462042A0 */ cvt.s.d $f10, $f8
/* 04CE90 8004C290 E48A001C */ swc1 $f10, 0x1c($a0)
/* 04CE94 8004C294 462021A0 */ cvt.s.d $f6, $f4
/* 04CE98 8004C298 E4860024 */ swc1 $f6, 0x24($a0)
.L8004C29C:
/* 04CE9C 8004C29C A2000187 */ sb $zero, 0x187($s0)
.L8004C2A0:
/* 04CEA0 8004C2A0 8FBF001C */ lw $ra, 0x1c($sp)
/* 04CEA4 8004C2A4 8FB00018 */ lw $s0, 0x18($sp)
/* 04CEA8 8004C2A8 03E00008 */ jr $ra
/* 04CEAC 8004C2AC 27BD0028 */ addiu $sp, $sp, 0x28
@@ -1,90 +0,0 @@
glabel func_8004D95C
/* 04E55C 8004D95C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 04E560 8004D960 AFBF001C */ sw $ra, 0x1c($sp)
/* 04E564 8004D964 AFB00018 */ sw $s0, 0x18($sp)
/* 04E568 8004D968 AFA40028 */ sw $a0, 0x28($sp)
/* 04E56C 8004D96C AFA5002C */ sw $a1, 0x2c($sp)
/* 04E570 8004D970 8CEE0118 */ lw $t6, 0x118($a3)
/* 04E574 8004D974 00C08025 */ move $s0, $a2
/* 04E578 8004D978 11C00005 */ beqz $t6, .L8004D990
/* 04E57C 8004D97C 00C02025 */ move $a0, $a2
/* 04E580 8004D980 0C001AB2 */ jal func_80006AC8
/* 04E584 8004D984 AFA70034 */ sw $a3, 0x34($sp)
/* 04E588 8004D988 8FA70034 */ lw $a3, 0x34($sp)
/* 04E58C 8004D98C 00000000 */ nop
.L8004D990:
/* 04E590 8004D990 0C008D07 */ jal func_8002341C
/* 04E594 8004D994 AFA70034 */ sw $a3, 0x34($sp)
/* 04E598 8004D998 8FA70034 */ lw $a3, 0x34($sp)
/* 04E59C 8004D99C 10400008 */ beqz $v0, .L8004D9C0
/* 04E5A0 8004D9A0 2408000A */ li $t0, 10
/* 04E5A4 8004D9A4 80EF01D6 */ lb $t7, 0x1d6($a3)
/* 04E5A8 8004D9A8 2401000A */ li $at, 10
/* 04E5AC 8004D9AC 15E10004 */ bne $t7, $at, .L8004D9C0
/* 04E5B0 8004D9B0 00000000 */ nop
/* 04E5B4 8004D9B4 8E18004C */ lw $t8, 0x4c($s0)
/* 04E5B8 8004D9B8 00000000 */ nop
/* 04E5BC 8004D9BC A7000014 */ sh $zero, 0x14($t8)
.L8004D9C0:
/* 04E5C0 8004D9C0 86190018 */ lh $t9, 0x18($s0)
/* 04E5C4 8004D9C4 02003025 */ move $a2, $s0
/* 04E5C8 8004D9C8 A7B90026 */ sh $t9, 0x26($sp)
/* 04E5CC 8004D9CC A0E801D6 */ sb $t0, 0x1d6($a3)
/* 04E5D0 8004D9D0 8FA5002C */ lw $a1, 0x2c($sp)
/* 04E5D4 8004D9D4 8FA40028 */ lw $a0, 0x28($sp)
/* 04E5D8 8004D9D8 0C0125E5 */ jal func_80049794
/* 04E5DC 8004D9DC AFA70034 */ sw $a3, 0x34($sp)
/* 04E5E0 8004D9E0 8FA70034 */ lw $a3, 0x34($sp)
/* 04E5E4 8004D9E4 2401000A */ li $at, 10
/* 04E5E8 8004D9E8 80E901D7 */ lb $t1, 0x1d7($a3)
/* 04E5EC 8004D9EC 00000000 */ nop
/* 04E5F0 8004D9F0 A0E901D6 */ sb $t1, 0x1d6($a3)
/* 04E5F4 8004D9F4 A200003B */ sb $zero, 0x3b($s0)
/* 04E5F8 8004D9F8 80EA01D6 */ lb $t2, 0x1d6($a3)
/* 04E5FC 8004D9FC 00000000 */ nop
/* 04E600 8004DA00 15410028 */ bne $t2, $at, .L8004DAA4
/* 04E604 8004DA04 8FBF001C */ lw $ra, 0x1c($sp)
/* 04E608 8004DA08 8CE20154 */ lw $v0, 0x154($a3)
/* 04E60C 8004DA0C 00000000 */ nop
/* 04E610 8004DA10 10400024 */ beqz $v0, .L8004DAA4
/* 04E614 8004DA14 8FBF001C */ lw $ra, 0x1c($sp)
/* 04E618 8004DA18 C604000C */ lwc1 $f4, 0xc($s0)
/* 04E61C 8004DA1C 02002025 */ move $a0, $s0
/* 04E620 8004DA20 E444000C */ swc1 $f4, 0xc($v0)
/* 04E624 8004DA24 8CEB0154 */ lw $t3, 0x154($a3)
/* 04E628 8004DA28 C6060010 */ lwc1 $f6, 0x10($s0)
/* 04E62C 8004DA2C 00000000 */ nop
/* 04E630 8004DA30 E5660010 */ swc1 $f6, 0x10($t3)
/* 04E634 8004DA34 8CEC0154 */ lw $t4, 0x154($a3)
/* 04E638 8004DA38 C6080014 */ lwc1 $f8, 0x14($s0)
/* 04E63C 8004DA3C 00000000 */ nop
/* 04E640 8004DA40 E5880014 */ swc1 $f8, 0x14($t4)
/* 04E644 8004DA44 8CEE0154 */ lw $t6, 0x154($a3)
/* 04E648 8004DA48 860D002E */ lh $t5, 0x2e($s0)
/* 04E64C 8004DA4C 00000000 */ nop
/* 04E650 8004DA50 A5CD002E */ sh $t5, 0x2e($t6)
/* 04E654 8004DA54 8CF80154 */ lw $t8, 0x154($a3)
/* 04E658 8004DA58 860F0000 */ lh $t7, ($s0)
/* 04E65C 8004DA5C 00000000 */ nop
/* 04E660 8004DA60 A70F0000 */ sh $t7, ($t8)
/* 04E664 8004DA64 8CE80154 */ lw $t0, 0x154($a3)
/* 04E668 8004DA68 86190002 */ lh $t9, 2($s0)
/* 04E66C 8004DA6C 00000000 */ nop
/* 04E670 8004DA70 A5190002 */ sh $t9, 2($t0)
/* 04E674 8004DA74 8CEA0154 */ lw $t2, 0x154($a3)
/* 04E678 8004DA78 86090004 */ lh $t1, 4($s0)
/* 04E67C 8004DA7C 00000000 */ nop
/* 04E680 8004DA80 A5490004 */ sh $t1, 4($t2)
/* 04E684 8004DA84 A200003B */ sb $zero, 0x3b($s0)
/* 04E688 8004DA88 8FAC0028 */ lw $t4, 0x28($sp)
/* 04E68C 8004DA8C 87AB0026 */ lh $t3, 0x26($sp)
/* 04E690 8004DA90 00000000 */ nop
/* 04E694 8004DA94 016C6821 */ addu $t5, $t3, $t4
/* 04E698 8004DA98 0C018703 */ jal func_80061C0C
/* 04E69C 8004DA9C A60D0018 */ sh $t5, 0x18($s0)
/* 04E6A0 8004DAA0 8FBF001C */ lw $ra, 0x1c($sp)
.L8004DAA4:
/* 04E6A4 8004DAA4 8FB00018 */ lw $s0, 0x18($sp)
/* 04E6A8 8004DAA8 03E00008 */ jr $ra
/* 04E6AC 8004DAAC 27BD0028 */ addiu $sp, $sp, 0x28
@@ -1,101 +0,0 @@
.late_rodata
glabel D_800E6750
.double 1.8
glabel D_800E6758
.float 1.8
.word 0 # Padding
glabel D_800E6760
.double 0.2
.text
glabel func_80053478
/* 054078 80053478 C480002C */ lwc1 $f0, 0x2c($a0)
/* 05407C 8005347C 44806800 */ mtc1 $zero, $f13
/* 054080 80053480 44806000 */ mtc1 $zero, $f12
/* 054084 80053484 460000A1 */ cvt.d.s $f2, $f0
/* 054088 80053488 462C103C */ c.lt.d $f2, $f12
/* 05408C 8005348C 3C01800E */ lui $at, %hi(D_800E6750 + 4) # $at, 0x800e
/* 054090 80053490 45000003 */ bc1f .L800534A0
/* 054094 80053494 00000000 */ nop
/* 054098 80053498 46000007 */ neg.s $f0, $f0
/* 05409C 8005349C 460000A1 */ cvt.d.s $f2, $f0
.L800534A0:
/* 0540A0 800534A0 C4256750 */ lwc1 $f5, %lo(D_800E6750)($at)
/* 0540A4 800534A4 C4246754 */ lwc1 $f4, %lo(D_800E6750 + 4)($at)
/* 0540A8 800534A8 3C01800E */ lui $at, %hi(D_800E6758) # $at, 0x800e
/* 0540AC 800534AC 4622203C */ c.lt.d $f4, $f2
/* 0540B0 800534B0 00000000 */ nop
/* 0540B4 800534B4 45000004 */ bc1f .L800534C8
/* 0540B8 800534B8 00000000 */ nop
/* 0540BC 800534BC C4206758 */ lwc1 $f0, %lo(D_800E6758)($at)
/* 0540C0 800534C0 00000000 */ nop
/* 0540C4 800534C4 460000A1 */ cvt.d.s $f2, $f0
.L800534C8:
/* 0540C8 800534C8 3C01800E */ lui $at, %hi(D_800E6760 + 4) # $at, 0x800e
/* 0540CC 800534CC C4276760 */ lwc1 $f7, %lo(D_800E6760)($at)
/* 0540D0 800534D0 C4266764 */ lwc1 $f6, %lo(D_800E6760 + 4)($at)
/* 0540D4 800534D4 3C014268 */ li $at, 0x42680000 # 58.000000
/* 0540D8 800534D8 46261201 */ sub.d $f8, $f2, $f6
/* 0540DC 800534DC 46204020 */ cvt.s.d $f0, $f8
/* 0540E0 800534E0 460002A1 */ cvt.d.s $f10, $f0
/* 0540E4 800534E4 462C503C */ c.lt.d $f10, $f12
/* 0540E8 800534E8 00000000 */ nop
/* 0540EC 800534EC 45000003 */ bc1f .L800534FC
/* 0540F0 800534F0 00000000 */ nop
/* 0540F4 800534F4 44800000 */ mtc1 $zero, $f0
/* 0540F8 800534F8 00000000 */ nop
.L800534FC:
/* 0540FC 800534FC 808E01E6 */ lb $t6, 0x1e6($a0)
/* 054100 80053500 00000000 */ nop
/* 054104 80053504 11C00010 */ beqz $t6, .L80053548
/* 054108 80053508 00000000 */ nop
/* 05410C 8005350C 3C014288 */ li $at, 0x42880000 # 68.000000
/* 054110 80053510 44818000 */ mtc1 $at, $f16
/* 054114 80053514 00000000 */ nop
/* 054118 80053518 46100482 */ mul.s $f18, $f0, $f16
/* 05411C 8005351C 444FF800 */ cfc1 $t7, $31
/* 054120 80053520 00000000 */ nop
/* 054124 80053524 35E10003 */ ori $at, $t7, 3
/* 054128 80053528 38210002 */ xori $at, $at, 2
/* 05412C 8005352C 44C1F800 */ ctc1 $at, $31
/* 054130 80053530 00000000 */ nop
/* 054134 80053534 46009124 */ cvt.w.s $f4, $f18
/* 054138 80053538 44022000 */ mfc1 $v0, $f4
/* 05413C 8005353C 44CFF800 */ ctc1 $t7, $31
/* 054140 80053540 1000000F */ b .L80053580
/* 054144 80053544 808801E1 */ lb $t0, 0x1e1($a0)
.L80053548:
/* 054148 80053548 44813000 */ mtc1 $at, $f6
/* 05414C 8005354C 00000000 */ nop
/* 054150 80053550 46060202 */ mul.s $f8, $f0, $f6
/* 054154 80053554 4458F800 */ cfc1 $t8, $31
/* 054158 80053558 00000000 */ nop
/* 05415C 8005355C 37010003 */ ori $at, $t8, 3
/* 054160 80053560 38210002 */ xori $at, $at, 2
/* 054164 80053564 44C1F800 */ ctc1 $at, $31
/* 054168 80053568 00000000 */ nop
/* 05416C 8005356C 460042A4 */ cvt.w.s $f10, $f8
/* 054170 80053570 44D8F800 */ ctc1 $t8, $31
/* 054174 80053574 44025000 */ mfc1 $v0, $f10
/* 054178 80053578 00000000 */ nop
/* 05417C 8005357C 808801E1 */ lb $t0, 0x1e1($a0)
.L80053580:
/* 054180 80053580 3C038012 */ lui $v1, %hi(D_8011D554) # $v1, 0x8012
/* 054184 80053584 01020019 */ multu $t0, $v0
/* 054188 80053588 2463D554 */ addiu $v1, %lo(D_8011D554) # addiu $v1, $v1, -0x2aac
/* 05418C 8005358C 8C790000 */ lw $t9, ($v1)
/* 054190 80053590 44808000 */ mtc1 $zero, $f16
/* 054194 80053594 00004812 */ mflo $t1
/* 054198 80053598 03295023 */ subu $t2, $t9, $t1
/* 05419C 8005359C AC6A0000 */ sw $t2, ($v1)
/* 0541A0 800535A0 C492002C */ lwc1 $f18, 0x2c($a0)
/* 0541A4 800535A4 000A6023 */ negu $t4, $t2
/* 0541A8 800535A8 4612803C */ c.lt.s $f16, $f18
/* 0541AC 800535AC 00000000 */ nop
/* 0541B0 800535B0 45000002 */ bc1f .L800535BC
/* 0541B4 800535B4 00000000 */ nop
/* 0541B8 800535B8 AC6C0000 */ sw $t4, ($v1)
.L800535BC:
/* 0541BC 800535BC 03E00008 */ jr $ra
/* 0541C0 800535C0 00000000 */ nop
@@ -1,63 +0,0 @@
glabel func_800575EC
/* 0581EC 800575EC 27BDFF88 */ addiu $sp, $sp, -0x78
/* 0581F0 800575F0 AFB00030 */ sw $s0, 0x30($sp)
/* 0581F4 800575F4 00A08025 */ move $s0, $a1
/* 0581F8 800575F8 AFBF0034 */ sw $ra, 0x34($sp)
/* 0581FC 800575FC E7B50028 */ swc1 $f21, 0x28($sp)
/* 058200 80057600 E7B4002C */ swc1 $f20, 0x2c($sp)
/* 058204 80057604 848E0000 */ lh $t6, ($a0)
/* 058208 80057608 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012
/* 05820C 8005760C 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0
/* 058210 80057610 A4AE0000 */ sh $t6, ($a1)
/* 058214 80057614 848F0002 */ lh $t7, 2($a0)
/* 058218 80057618 4480A000 */ mtc1 $zero, $f20
/* 05821C 8005761C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 058220 80057620 44812000 */ mtc1 $at, $f4
/* 058224 80057624 A4A00004 */ sh $zero, 4($a1)
/* 058228 80057628 27A40038 */ addiu $a0, $sp, 0x38
/* 05822C 8005762C A4AF0002 */ sh $t7, 2($a1)
/* 058230 80057630 E4B4000C */ swc1 $f20, 0xc($a1)
/* 058234 80057634 E4B40010 */ swc1 $f20, 0x10($a1)
/* 058238 80057638 E4B40014 */ swc1 $f20, 0x14($a1)
/* 05823C 8005763C 0C01BF0C */ jal func_8006FC30
/* 058240 80057640 E4A40008 */ swc1 $f4, 8($a1)
/* 058244 80057644 4405A000 */ mfc1 $a1, $f20
/* 058248 80057648 4406A000 */ mfc1 $a2, $f20
/* 05824C 8005764C 26180038 */ addiu $t8, $s0, 0x38
/* 058250 80057650 2619003C */ addiu $t9, $s0, 0x3c
/* 058254 80057654 26080040 */ addiu $t0, $s0, 0x40
/* 058258 80057658 AFA80018 */ sw $t0, 0x18($sp)
/* 05825C 8005765C AFB90014 */ sw $t9, 0x14($sp)
/* 058260 80057660 AFB80010 */ sw $t8, 0x10($sp)
/* 058264 80057664 27A40038 */ addiu $a0, $sp, 0x38
/* 058268 80057668 0C01BD93 */ jal guMtxXFMF
/* 05826C 8005766C 3C073F80 */ lui $a3, 0x3f80
/* 058270 80057670 4405A000 */ mfc1 $a1, $f20
/* 058274 80057674 4407A000 */ mfc1 $a3, $f20
/* 058278 80057678 26090044 */ addiu $t1, $s0, 0x44
/* 05827C 8005767C 260A0048 */ addiu $t2, $s0, 0x48
/* 058280 80057680 260B004C */ addiu $t3, $s0, 0x4c
/* 058284 80057684 AFAB0018 */ sw $t3, 0x18($sp)
/* 058288 80057688 AFAA0014 */ sw $t2, 0x14($sp)
/* 05828C 8005768C AFA90010 */ sw $t1, 0x10($sp)
/* 058290 80057690 27A40038 */ addiu $a0, $sp, 0x38
/* 058294 80057694 0C01BD93 */ jal guMtxXFMF
/* 058298 80057698 3C063F80 */ lui $a2, 0x3f80
/* 05829C 8005769C 4406A000 */ mfc1 $a2, $f20
/* 0582A0 800576A0 4407A000 */ mfc1 $a3, $f20
/* 0582A4 800576A4 260C0050 */ addiu $t4, $s0, 0x50
/* 0582A8 800576A8 260D0054 */ addiu $t5, $s0, 0x54
/* 0582AC 800576AC 260E0058 */ addiu $t6, $s0, 0x58
/* 0582B0 800576B0 AFAE0018 */ sw $t6, 0x18($sp)
/* 0582B4 800576B4 AFAD0014 */ sw $t5, 0x14($sp)
/* 0582B8 800576B8 AFAC0010 */ sw $t4, 0x10($sp)
/* 0582BC 800576BC 27A40038 */ addiu $a0, $sp, 0x38
/* 0582C0 800576C0 0C01BD93 */ jal guMtxXFMF
/* 0582C4 800576C4 3C053F80 */ lui $a1, 0x3f80
/* 0582C8 800576C8 8FBF0034 */ lw $ra, 0x34($sp)
/* 0582CC 800576CC C7B50028 */ lwc1 $f21, 0x28($sp)
/* 0582D0 800576D0 C7B4002C */ lwc1 $f20, 0x2c($sp)
/* 0582D4 800576D4 8FB00030 */ lw $s0, 0x30($sp)
/* 0582D8 800576D8 03E00008 */ jr $ra
/* 0582DC 800576DC 27BD0078 */ addiu $sp, $sp, 0x78
@@ -1,81 +0,0 @@
glabel func_800580B4
/* 058CB4 800580B4 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 058CB8 800580B8 3C0E8012 */ lui $t6, %hi(D_8011D55C) # $t6, 0x8012
/* 058CBC 800580BC 8DCED55C */ lw $t6, %lo(D_8011D55C)($t6)
/* 058CC0 800580C0 AFA70034 */ sw $a3, 0x34($sp)
/* 058CC4 800580C4 2401FFFF */ li $at, -1
/* 058CC8 800580C8 00C03825 */ move $a3, $a2
/* 058CCC 800580CC AFBF0014 */ sw $ra, 0x14($sp)
/* 058CD0 800580D0 AFA40028 */ sw $a0, 0x28($sp)
/* 058CD4 800580D4 11C10040 */ beq $t6, $at, .L800581D8
/* 058CD8 800580D8 AFA60030 */ sw $a2, 0x30($sp)
/* 058CDC 800580DC 80AF01D8 */ lb $t7, 0x1d8($a1)
/* 058CE0 800580E0 24010001 */ li $at, 1
/* 058CE4 800580E4 11E1003C */ beq $t7, $at, .L800581D8
/* 058CE8 800580E8 3C038012 */ lui $v1, %hi(gCameraObject) # $v1, 0x8012
/* 058CEC 800580EC 2463D508 */ addiu $v1, %lo(gCameraObject) # addiu $v1, $v1, -0x2af8
/* 058CF0 800580F0 8C780000 */ lw $t8, ($v1)
/* 058CF4 800580F4 00000000 */ nop
/* 058CF8 800580F8 87190036 */ lh $t9, 0x36($t8)
/* 058CFC 800580FC 00000000 */ nop
/* 058D00 80058100 10D90036 */ beq $a2, $t9, .L800581DC
/* 058D04 80058104 8FBF0014 */ lw $ra, 0x14($sp)
/* 058D08 80058108 8FA60034 */ lw $a2, 0x34($sp)
/* 058D0C 8005810C AFA5002C */ sw $a1, 0x2c($sp)
/* 058D10 80058110 0C015E90 */ jal func_80057A40
/* 058D14 80058114 AFA70030 */ sw $a3, 0x30($sp)
/* 058D18 80058118 3C038012 */ lui $v1, %hi(gCameraObject) # $v1, 0x8012
/* 058D1C 8005811C 2463D508 */ addiu $v1, %lo(gCameraObject) # addiu $v1, $v1, -0x2af8
/* 058D20 80058120 8C620000 */ lw $v0, ($v1)
/* 058D24 80058124 8FA70030 */ lw $a3, 0x30($sp)
/* 058D28 80058128 C444000C */ lwc1 $f4, 0xc($v0)
/* 058D2C 8005812C 8FA5002C */ lw $a1, 0x2c($sp)
/* 058D30 80058130 E7A40024 */ swc1 $f4, 0x24($sp)
/* 058D34 80058134 C4460010 */ lwc1 $f6, 0x10($v0)
/* 058D38 80058138 00000000 */ nop
/* 058D3C 8005813C E7A60020 */ swc1 $f6, 0x20($sp)
/* 058D40 80058140 C4480014 */ lwc1 $f8, 0x14($v0)
/* 058D44 80058144 00000000 */ nop
/* 058D48 80058148 E7A8001C */ swc1 $f8, 0x1c($sp)
/* 058D4C 8005814C A4470036 */ sh $a3, 0x36($v0)
/* 058D50 80058150 8FA60034 */ lw $a2, 0x34($sp)
/* 058D54 80058154 8FA40028 */ lw $a0, 0x28($sp)
/* 058D58 80058158 0C015E90 */ jal func_80057A40
/* 058D5C 8005815C 00000000 */ nop
/* 058D60 80058160 3C088012 */ lui $t0, %hi(D_8011D540) # $t0, 0x8012
/* 058D64 80058164 8D08D540 */ lw $t0, %lo(D_8011D540)($t0)
/* 058D68 80058168 3C038012 */ lui $v1, %hi(gCameraObject) # $v1, 0x8012
/* 058D6C 8005816C 1500001A */ bnez $t0, .L800581D8
/* 058D70 80058170 2463D508 */ addiu $v1, %lo(gCameraObject) # addiu $v1, $v1, -0x2af8
/* 058D74 80058174 3C098012 */ lui $t1, %hi(D_8011D582) # $t1, 0x8012
/* 058D78 80058178 8129D582 */ lb $t1, %lo(D_8011D582)($t1)
/* 058D7C 8005817C 00000000 */ nop
/* 058D80 80058180 15200016 */ bnez $t1, .L800581DC
/* 058D84 80058184 8FBF0014 */ lw $ra, 0x14($sp)
/* 058D88 80058188 8C620000 */ lw $v0, ($v1)
/* 058D8C 8005818C C7AA0024 */ lwc1 $f10, 0x24($sp)
/* 058D90 80058190 C450000C */ lwc1 $f16, 0xc($v0)
/* 058D94 80058194 00000000 */ nop
/* 058D98 80058198 46105481 */ sub.s $f18, $f10, $f16
/* 058D9C 8005819C E4520024 */ swc1 $f18, 0x24($v0)
/* 058DA0 800581A0 8C620000 */ lw $v0, ($v1)
/* 058DA4 800581A4 C7AA0020 */ lwc1 $f10, 0x20($sp)
/* 058DA8 800581A8 C4440010 */ lwc1 $f4, 0x10($v0)
/* 058DAC 800581AC C4460030 */ lwc1 $f6, 0x30($v0)
/* 058DB0 800581B0 00000000 */ nop
/* 058DB4 800581B4 46062200 */ add.s $f8, $f4, $f6
/* 058DB8 800581B8 46085401 */ sub.s $f16, $f10, $f8
/* 058DBC 800581BC E4500028 */ swc1 $f16, 0x28($v0)
/* 058DC0 800581C0 8C620000 */ lw $v0, ($v1)
/* 058DC4 800581C4 C7B2001C */ lwc1 $f18, 0x1c($sp)
/* 058DC8 800581C8 C4440014 */ lwc1 $f4, 0x14($v0)
/* 058DCC 800581CC 00000000 */ nop
/* 058DD0 800581D0 46049181 */ sub.s $f6, $f18, $f4
/* 058DD4 800581D4 E446002C */ swc1 $f6, 0x2c($v0)
.L800581D8:
/* 058DD8 800581D8 8FBF0014 */ lw $ra, 0x14($sp)
.L800581DC:
/* 058DDC 800581DC 27BD0028 */ addiu $sp, $sp, 0x28
/* 058DE0 800581E0 03E00008 */ jr $ra
/* 058DE4 800581E4 00000000 */ nop
+614 -82
View File
File diff suppressed because it is too large Load Diff
-14
View File
@@ -486,20 +486,6 @@ extern s16 D_800E13A8[138];
extern s16* D_800E14BC[32];
// Not sure what these arrays are supposed to be
extern s32 D_800E153C[10];
extern s32 D_800E1564[12];
extern s32 D_800E1594[10];
extern s32 D_800E15BC[12];
extern s32 D_800E15EC[10];
extern s32 D_800E1614[12];
extern s32 D_800E1644[10];
extern s32 D_800E166C[12];
extern s32 D_800E169C[10];
extern s32 D_800E16C4[12];
extern s32 *D_800E16F4[5];
extern s16 D_800E1708[34];
extern s16 D_800E174C[4];
+367 -8
View File
@@ -147,7 +147,29 @@ const char D_800E62A0[] = "Back\n";
s32 D_8011D4F0[2];
s32 D_8011D4F8[3];
s32 D_8011D504;
Object *gCameraObject;
typedef struct ObjectCamera {
/* 0x0000 */ s16 y_rotation;
/* 0x0002 */ s16 x_rotation;
/* 0x0004 */ s16 z_rotation;
/* 0x0006 */ s16 unk6;
/* 0x0008 */ f32 scale;
/* 0x000C */ f32 x_position;
/* 0x0010 */ f32 y_position;
/* 0x0014 */ f32 z_position;
u8 pad18[0xC];
/* 0x0024 */ f32 unk24;
/* 0x0028 */ f32 unk28;
/* 0x002C */ f32 unk2C;
/* 0x0030 */ f32 unk30;
s16 unk34;
/* 0x0036 */ s16 unk36;
} ObjectCamera;
ObjectCamera *gCameraObject;
s32 D_8011D50C;
/* Size: 0x18 bytes */
@@ -221,6 +243,9 @@ s8 D_8011D5BC;
/******************************/
void func_80011570(Object *, f32, f32, f32);
void func_800570B8(Object *obj, s32 arg1, s32 arg2, s32 arg3);
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80042D20.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80043ECC.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80044170.s")
@@ -238,12 +263,166 @@ GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80048C7C.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80048E64.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800494E0.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80049794.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004C0A0.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004C140.s")
/* Unknown size */
typedef struct Object_64_8004C0A0 {
u8 pad0[0x1D7];
s8 unk1D7;
u8 pad1D8[9];
s8 unk1E1;
u8 pad1E2[0x10];
u8 unk1F2;
} Object_64_8004C0A0;
// Something Plane related.
void func_8004C0A0(s32 arg0, Object *planeObj, Object_64_8004C0A0 *planeObj64) {
s32 temp_v1;
s32 phi_v0;
if (planeObj64->unk1D7 != 10) {
//!@bug Typo. Should've been `== 0`, not `= 0`.
if (planeObj64->unk1F2 = 0) {
return; // This never gets called because of the typo.
}
phi_v0 = planeObj64->unk1E1;
phi_v0 = 40 - (phi_v0 >> 1);
if (phi_v0 < 0) {
phi_v0 = 0;
}
if (phi_v0 >= 0x4A) {
phi_v0 = 0x49;
}
temp_v1 = phi_v0 - planeObj->unk18;
phi_v0 = 0;
if (temp_v1 > 0) {
phi_v0 = arg0 * 3;
if (temp_v1 < phi_v0) {
phi_v0 = temp_v1;
}
}
if (temp_v1 < 0) {
phi_v0 = arg0 * -3;
if (phi_v0 < temp_v1) {
phi_v0 = temp_v1;
}
}
planeObj->unk18 += phi_v0;
}
}
typedef struct Object_64_8004C140 {
s16 unk0;
u8 pad2[0x183];
s8 unk185;
u8 unk186;
s8 unk187;
u8 pad188[4];
s16 unk18C;
s16 unk18E;
u8 pad190[0x39];
u8 unk1C9;
u8 pad1CA[0xC];
s8 unk1D6;
u8 pad1D7[4];
s8 unk1DB;
u8 pad1DC[0x28];
s16 unk204;
} Object_64_8004C140;
void func_800576E0(Object *obj, Object_64_8004C140 *obj64, s32);
void func_8004C140(Object *obj, Object_64_8004C140 *obj64) {
s8 phi_v1;
s8 temp;
if (obj64->unk0 == -1) {
phi_v1 = 0;
} else {
phi_v1 = obj64->unk185;
}
temp = obj64->unk187;
if (temp == 0 || obj64->unk18E > 0) {
obj64->unk187 = 0;
return;
}
if (temp != 4) {
func_800576E0(obj, obj64, 2);
}
obj64->unk18C = 0x168;
if (obj64->unk1C9 == 8) {
obj64->unk1C9 = 0;
}
if (obj64->unk1D6 < 5) {
func_800570B8(obj, 0x1C2, 8, 0x81);
switch(obj64->unk187) {
case 1:
case 2:
if (phi_v1 != 0) {
obj64->unk1DB = 0x28;
} else {
obj64->unk1DB = 0x3C;
}
break;
case 3:
if (phi_v1 != 0) {
obj64->unk1DB = 0x28;
} else {
obj64->unk1DB = 0x3C;
}
break;
case 6:
obj64->unk204 = 0x78;
obj->x_velocity *= 0.7;
obj->z_velocity *= 0.7;
break;
}
obj64->unk187 = 0;
}
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004C2B0.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004CC20.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004D590.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004D95C.s")
typedef struct Object_64_8004D95C {
u8 unk0[0x118];
s32 unk118;
u8 unk11C[0x38];
Object *someObject;
u8 unk158[0x7E];
s8 unk1D6;
s8 unk1D7;
} Object_64_8004D95C;
void func_8004D95C(s32 arg0, s32 arg1, Object *obj, Object_64_8004D95C *obj64) {
s16 sp26;
if (obj64->unk118 != 0) {
func_80006AC8(obj);
}
if ((func_8002341C() != 0) && (obj64->unk1D6 == 0xA)) {
obj->unk4C->unk14 = 0;
}
sp26 = obj->unk18;
obj64->unk1D6 = 0xA;
func_80049794(arg0, arg1, obj, obj64);
obj64->unk1D6 = obj64->unk1D7;
obj->unk3B = 0;
if (obj64->unk1D6 == 0xA) {
if (obj64->someObject != NULL) {
obj64->someObject->x_position = obj->x_position;
obj64->someObject->y_position = obj->y_position;
obj64->someObject->z_position = obj->z_position;
obj64->someObject->unk2E = obj->unk2E;
obj64->someObject->y_rotation = obj->y_rotation;
obj64->someObject->x_rotation = obj->x_rotation;
obj64->someObject->z_rotation = obj->z_rotation;
obj->unk3B = 0;
obj->unk18 = sp26 + arg0;
func_80061C0C(obj);
}
}
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004DAB0.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004DE38.s")
@@ -277,7 +456,51 @@ void func_8004F77C(unk8004F77C *arg0) {
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004F7F4.s")
#ifdef NON_MATCHING
typedef struct Object_64_80050754 {
u8 unk0[0x2C];
f32 unk2C;
f32 unk30;
u8 unk34[0x114];
/* 0x148 */ Object *someObj;
u8 unk14C[0x54];
/* 0x1A0 */ s16 unk1A0;
/* 0x1A2 */ s16 unk1A2;
/* 0x1A4 */ s16 unk1A4;
u8 unk1A6[0x4C];
/* 0x1F2 */ s8 unk1F2;
} Object_64_80050754;
// Mainly has regalloc issues.
void func_80050754(Object *obj, Object_64_80050754 *obj64, f32 arg2) {
f32 xDiff, yDiff, zDiff;
Object *someObj;
obj->unk3B = 0;
obj->unk18 = 0x28;
someObj = obj64->someObj;
xDiff = someObj->x_position - obj->x_position;
yDiff = someObj->y_position - obj->y_position;
zDiff = someObj->z_position - obj->z_position;
func_80011570(obj, xDiff, yDiff, zDiff);
obj->y_rotation = obj64->someObj->y_rotation;
obj->x_rotation = obj64->someObj->x_rotation;
obj->z_rotation = obj64->someObj->z_rotation;
obj64->unk1A4 = obj->z_rotation;
obj64->unk1A0 = obj->y_rotation;
obj->x_velocity = xDiff / arg2;
obj->y_velocity = yDiff / arg2;
obj->z_velocity = zDiff / arg2;
obj64->unk1F2 = 0;
obj64->unk2C = 0.0f;
obj64->unk30 = 0.0f;
}
#else
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80050754.s")
#endif
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80050850.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80050A28.s")
@@ -373,8 +596,40 @@ void func_80052988(Object* arg0, Object_64* arg1, s32 arg2, s32 arg3, s32 arg4,
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052B64.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052D7C.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80053478.s")
typedef struct Object_64_80053478 {
u8 unk0[0x2C];
f32 unk2C;
u8 unk30[0x1B1];
s8 unk1E1;
u8 unk1E2[4];
s8 unk1E6;
} Object_64_80053478;
void func_80053478(Object_64_80053478 *obj) {
s32 phi_v0;
f32 phi_f0 = obj->unk2C;
if (phi_f0 < 0.0) {
phi_f0 = -phi_f0;
}
if (phi_f0 > 1.8) {
phi_f0 = 1.8f;
}
phi_f0 -= 0.2;
if (phi_f0 < 0.0) {
phi_f0 = 0.0f;
}
if (obj->unk1E6 != 0) {
phi_v0 = phi_f0 * 68.0f;
} else {
phi_v0 = phi_f0 * 58.0f;
}
D_8011D554 -= (obj->unk1E1 * phi_v0);
if (obj->unk2C > 0.0f) {
D_8011D554 = -D_8011D554;
}
}
extern unk8011D510 D_8011D510;
@@ -502,9 +757,87 @@ void func_800570A4(unk800570A4_2 *arg0, s32 arg1, s32 arg2) {
temp->unk210 = arg2;
}
#ifdef NON_MATCHING
void func_80009558(u16, f32, f32, f32, s32, s32 *);
typedef struct Object_64_800570B8 {
u8 pad0[3];
s8 unk3;
u8 pad4[0x20];
s32 unk24;
u16 unk28;
u16 unk2A;
u8 pad2C[0xDC];
s32 unk108;
} Object_64_800570B8;
void func_800570B8(Object *obj, s32 arg1, s32 arg2, s32 arg3) {
s32 phi_t0;
Object_64_800570B8 *obj64;
obj64 = obj->unk64;
if ((obj64->unk108 == 0) && ((!(arg3 & 0x80)) || (D_8011D55C != -1))) {
if (arg3 == 2) {
if ((obj64->unk24 != 0) && (arg1 != obj64->unk2A)) {
func_800096F8(obj64->unk24);
obj64->unk24 = 0;
}
}
if (obj64->unk24 == 0) {
if (arg3 != 3 || get_random_number_from_range(0, 1) != 0) {
obj64->unk2A = arg1;
arg1 += obj64->unk3;
arg2--;
phi_t0 = (get_random_number_from_range(0, arg2) * 12) + arg1;
if (arg2 > 0) {
while (phi_t0 == obj64->unk28) {
phi_t0 = (get_random_number_from_range(0, arg2) * 12) + arg1;
}
}
//sp34 = phi_t0;
func_80009558(phi_t0, obj->x_position, obj->y_position, obj->z_position, 4, &obj64->unk24);
obj64->unk28 = phi_t0;
}
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800570B8.s")
#endif
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80057220.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800575EC.s")
/* Unknown size */
typedef struct Object_64_800575EC {
u8 pad0[0x38];
f32 unk38;
f32 unk3C;
f32 unk40;
f32 unk44;
f32 unk48;
f32 unk4C;
f32 unk50;
f32 unk54;
f32 unk58;
} Object_64_800575EC;
void func_800575EC(Object *obj, Object_64_800575EC *obj64) {
f32 sp38[4][4];
D_8011D510.unk0 = obj->y_rotation;
D_8011D510.unk2 = obj->x_rotation;
D_8011D510.unk4 = 0;
D_8011D510.unkC = 0.0f;
D_8011D510.unk10 = 0.0f;
D_8011D510.unk14 = 0.0f;
D_8011D510.unk8 = 1.0f;
func_8006FC30(&sp38, &D_8011D510);
guMtxXFMF(&sp38, 0.0f, 0.0f, 1.0f, &obj64->unk38, &obj64->unk3C, &obj64->unk40);
guMtxXFMF(&sp38, 0.0f, 1.0f, 0.0f, &obj64->unk44, &obj64->unk48, &obj64->unk4C);
guMtxXFMF(&sp38, 1.0f, 0.0f, 0.0f, &obj64->unk50, &obj64->unk54, &obj64->unk58);
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800576E0.s")
extern s32 D_8011D534;
@@ -534,7 +867,33 @@ void func_800579B0(unk800579B0 *arg0, s32 arg1, f32 arg2) {
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80057A40.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800580B4.s")
typedef struct Object_64_800580B4 {
u8 unk0[0x1D8];
s8 unk1D8;
} Object_64_800580B4;
void func_80057A40(Object *, Object_64_800580B4 *, f32);
void func_800580B4(Object *arg0, Object_64_800580B4 *arg1, s32 arg2, f32 arg3) {
f32 xPos, yPos, zPos;
if ((D_8011D55C != -1) && (arg1->unk1D8 != 1)) {
if (arg2 != gCameraObject->unk36) {
func_80057A40(arg0, arg1, arg3);
xPos = gCameraObject->x_position;
yPos = gCameraObject->y_position;
zPos = gCameraObject->z_position;
gCameraObject->unk36 = arg2;
func_80057A40(arg0, arg1, arg3);
if (D_8011D540 == 0 && D_8011D582 == 0) {
gCameraObject->unk24 = xPos - gCameraObject->x_position;
gCameraObject->unk28 = yPos - (gCameraObject->y_position + gCameraObject->unk30);
gCameraObject->unk2C = zPos - gCameraObject->z_position;
}
}
}
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800581E8.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80058B84.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80058D5C.s")
@@ -550,7 +909,7 @@ void func_80058F44(f32 arg0, Object *arg1, Object *arg2) {
temp1 = func_8007066C(gCameraObject->x_position - arg1->x_position, gCameraObject->z_position - arg1->z_position);
gCameraObject->y_rotation += (((-temp1 - gCameraObject->y_rotation) + 0x8000) * temp0) >> 4;
gCameraObject->z_rotation -= (gCameraObject->z_rotation * temp0) >> 4;
gCameraObject->unk34_s = func_80029F18(gCameraObject->x_position, arg2->unk3C_f, gCameraObject->z_position);
gCameraObject->unk34 = func_80029F18(gCameraObject->x_position, arg2->unk3C_f, gCameraObject->z_position);
}
#else