mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Further matches + bit of labelling (#228)
* match func_80058D5C * minor cosmetic tweak * what is to crush the spirit of somebody but to discover more unions * dont mind me just switching computers * remove a tempstruct * temp thing * match func_80054110 * Delete func_80054110.s * racer.c cleanup * Update math_util.h * Update racer.c * added CLAMP and WRAP macros * Update math_util.h * match func_80055A84 * he * match func_80057A40 * we do a little labelling * match update_camera_loop * match update_camera_hovercraft * Update structs.h * pain. * Update README.md * Update racer.c * like this?
This commit is contained in:
@@ -115,29 +115,29 @@ s32 is_drumstick_unlocked(void) {
|
||||
|
||||
As of April 29th, 2022, this is our current score:
|
||||
```
|
||||
=====================================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
-------------------------- 23.68% Complete --------------------------
|
||||
# Decompiled functions: 1131
|
||||
# GLOBAL_ASM remaining: 648
|
||||
# NON_MATCHING functions: 8
|
||||
# NON_EQUIVALENT WIP functions: 104
|
||||
---------------------------- Game Status ----------------------------
|
||||
Balloons: 12/47, Keys: 1/4, Trophies: 0/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
---------------------------------------------------------------------
|
||||
We are participating in the Trophy Race of Dino Domain. (Round Three)
|
||||
=====================================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
-------------------------- 2.99% Complete --------------------------
|
||||
# Documented functions: 147
|
||||
# Undocumented remaining: 1632
|
||||
---------------------------- Game Status ----------------------------
|
||||
Balloons: 1/47, Keys: 0/4, Trophies: 0/5
|
||||
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
|
||||
---------------------------------------------------------------------
|
||||
We are collecting the second balloon on Timber's Island.
|
||||
=====================================================================
|
||||
=======================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
------------------- 24.58% Complete -------------------
|
||||
# Decompiled functions: 1137
|
||||
# GLOBAL_ASM remaining: 642
|
||||
# NON_MATCHING functions: 8
|
||||
# NON_EQUIVALENT WIP functions: 106
|
||||
--------------------- Game Status ---------------------
|
||||
Balloons: 12/47, Keys: 1/4, Trophies: 1/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
-------------------------------------------------------
|
||||
We are racing Taj in the Car Challenge. (Lap 1/3)
|
||||
=======================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
------------------- 3.43% Complete -------------------
|
||||
# Documented functions: 152
|
||||
# Undocumented remaining: 1627
|
||||
--------------------- Game Status ---------------------
|
||||
Balloons: 2/47, Keys: 0/4, Trophies: 0/5
|
||||
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
|
||||
-------------------------------------------------------
|
||||
We are collecting the third balloon on Timber's Island.
|
||||
=======================================================
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -1,446 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_800E6498
|
||||
.double 65.0
|
||||
|
||||
.text
|
||||
glabel func_80048E64
|
||||
/* 049A64 80048E64 27BDFFA0 */ addiu $sp, $sp, -0x60
|
||||
/* 049A68 80048E68 3C014325 */ li $at, 0x43250000 # 165.000000
|
||||
/* 049A6C 80048E6C 44817000 */ mtc1 $at, $f14
|
||||
/* 049A70 80048E70 3C014282 */ li $at, 0x42820000 # 65.000000
|
||||
/* 049A74 80048E74 44819000 */ mtc1 $at, $f18
|
||||
/* 049A78 80048E78 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 049A7C 80048E7C 240E0400 */ li $t6, 1024
|
||||
/* 049A80 80048E80 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 049A84 80048E84 E7AC0060 */ swc1 $f12, 0x60($sp)
|
||||
/* 049A88 80048E88 AFA50064 */ sw $a1, 0x64($sp)
|
||||
/* 049A8C 80048E8C AFAE0024 */ sw $t6, 0x24($sp)
|
||||
/* 049A90 80048E90 AFA60068 */ sw $a2, 0x68($sp)
|
||||
/* 049A94 80048E94 E7AE0048 */ swc1 $f14, 0x48($sp)
|
||||
/* 049A98 80048E98 0C019884 */ jal get_viewport_count
|
||||
/* 049A9C 80048E9C E7B20044 */ swc1 $f18, 0x44($sp)
|
||||
/* 049AA0 80048EA0 24060001 */ li $a2, 1
|
||||
/* 049AA4 80048EA4 8FA70068 */ lw $a3, 0x68($sp)
|
||||
/* 049AA8 80048EA8 C7AE0048 */ lwc1 $f14, 0x48($sp)
|
||||
/* 049AAC 80048EAC C7B20044 */ lwc1 $f18, 0x44($sp)
|
||||
/* 049AB0 80048EB0 14460008 */ bne $v0, $a2, .L80048ED4
|
||||
/* 049AB4 80048EB4 3C108012 */ lui $s0, %hi(gCameraObject) # $s0, 0x8012
|
||||
/* 049AB8 80048EB8 3C014348 */ li $at, 0x43480000 # 200.000000
|
||||
/* 049ABC 80048EBC 44817000 */ mtc1 $at, $f14
|
||||
/* 049AC0 80048EC0 3C01424C */ li $at, 0x424C0000 # 51.000000
|
||||
/* 049AC4 80048EC4 44819000 */ mtc1 $at, $f18
|
||||
/* 049AC8 80048EC8 240F0280 */ li $t7, 640
|
||||
/* 049ACC 80048ECC 10000008 */ b .L80048EF0
|
||||
/* 049AD0 80048ED0 AFAF0024 */ sw $t7, 0x24($sp)
|
||||
.L80048ED4:
|
||||
/* 049AD4 80048ED4 28410002 */ slti $at, $v0, 2
|
||||
/* 049AD8 80048ED8 14200005 */ bnez $at, .L80048EF0
|
||||
/* 049ADC 80048EDC 3C014302 */ li $at, 0x43020000 # 130.000000
|
||||
/* 049AE0 80048EE0 44817000 */ mtc1 $at, $f14
|
||||
/* 049AE4 80048EE4 3C014248 */ li $at, 0x42480000 # 50.000000
|
||||
/* 049AE8 80048EE8 44819000 */ mtc1 $at, $f18
|
||||
/* 049AEC 80048EEC 00000000 */ nop
|
||||
.L80048EF0:
|
||||
/* 049AF0 80048EF0 2610D508 */ addiu $s0, %lo(gCameraObject) # addiu $s0, $s0, -0x2af8
|
||||
/* 049AF4 80048EF4 8E050000 */ lw $a1, ($s0)
|
||||
/* 049AF8 80048EF8 C4F000B8 */ lwc1 $f16, 0xb8($a3)
|
||||
/* 049AFC 80048EFC 90A2003B */ lbu $v0, 0x3b($a1)
|
||||
/* 049B00 80048F00 C4EC0008 */ lwc1 $f12, 8($a3)
|
||||
/* 049B04 80048F04 10460007 */ beq $v0, $a2, .L80048F24
|
||||
/* 049B08 80048F08 24010002 */ li $at, 2
|
||||
/* 049B0C 80048F0C 10410009 */ beq $v0, $at, .L80048F34
|
||||
/* 049B10 80048F10 24010003 */ li $at, 3
|
||||
/* 049B14 80048F14 1041000F */ beq $v0, $at, .L80048F54
|
||||
/* 049B18 80048F18 3C014254 */ lui $at, 0x4254
|
||||
/* 049B1C 80048F1C 1000001A */ b .L80048F88
|
||||
/* 049B20 80048F20 80F801E4 */ lb $t8, 0x1e4($a3)
|
||||
.L80048F24:
|
||||
/* 049B24 80048F24 3C01420C */ li $at, 0x420C0000 # 35.000000
|
||||
/* 049B28 80048F28 44812000 */ mtc1 $at, $f4
|
||||
/* 049B2C 80048F2C 10000015 */ b .L80048F84
|
||||
/* 049B30 80048F30 46047380 */ add.s $f14, $f14, $f4
|
||||
.L80048F34:
|
||||
/* 049B34 80048F34 3C01420C */ li $at, 0x420C0000 # 35.000000
|
||||
/* 049B38 80048F38 44813000 */ mtc1 $at, $f6
|
||||
/* 049B3C 80048F3C 3C014120 */ li $at, 0x41200000 # 10.000000
|
||||
/* 049B40 80048F40 44814000 */ mtc1 $at, $f8
|
||||
/* 049B44 80048F44 46067381 */ sub.s $f14, $f14, $f6
|
||||
/* 049B48 80048F48 1000000E */ b .L80048F84
|
||||
/* 049B4C 80048F4C 46089481 */ sub.s $f18, $f18, $f8
|
||||
/* 049B50 80048F50 3C014254 */ li $at, 0x42540000 # 53.000000
|
||||
.L80048F54:
|
||||
/* 049B54 80048F54 44815000 */ mtc1 $at, $f10
|
||||
/* 049B58 80048F58 3C0140A0 */ li $at, 0x40A00000 # 5.000000
|
||||
/* 049B5C 80048F5C 44812000 */ mtc1 $at, $f4
|
||||
/* 049B60 80048F60 3C013FD0 */ li $at, 0x3FD00000 # 1.625000
|
||||
/* 049B64 80048F64 44814800 */ mtc1 $at, $f9
|
||||
/* 049B68 80048F68 44804000 */ mtc1 $zero, $f8
|
||||
/* 049B6C 80048F6C 460061A1 */ cvt.d.s $f6, $f12
|
||||
/* 049B70 80048F70 460A7381 */ sub.s $f14, $f14, $f10
|
||||
/* 049B74 80048F74 44808000 */ mtc1 $zero, $f16
|
||||
/* 049B78 80048F78 46283282 */ mul.d $f10, $f6, $f8
|
||||
/* 049B7C 80048F7C 46049481 */ sub.s $f18, $f18, $f4
|
||||
/* 049B80 80048F80 46205320 */ cvt.s.d $f12, $f10
|
||||
.L80048F84:
|
||||
/* 049B84 80048F84 80F801E4 */ lb $t8, 0x1e4($a3)
|
||||
.L80048F88:
|
||||
/* 049B88 80048F88 00000000 */ nop
|
||||
/* 049B8C 80048F8C 1700002D */ bnez $t8, .L80049044
|
||||
/* 049B90 80048F90 00000000 */ nop
|
||||
/* 049B94 80048F94 8FB90064 */ lw $t9, 0x64($sp)
|
||||
/* 049B98 80048F98 8FA90024 */ lw $t1, 0x24($sp)
|
||||
/* 049B9C 80048F9C 87220002 */ lh $v0, 2($t9)
|
||||
/* 049BA0 80048FA0 34018001 */ li $at, 32769
|
||||
/* 049BA4 80048FA4 18400008 */ blez $v0, .L80048FC8
|
||||
/* 049BA8 80048FA8 00000000 */ nop
|
||||
/* 049BAC 80048FAC 2442F9E4 */ addiu $v0, $v0, -0x61c
|
||||
/* 049BB0 80048FB0 04410003 */ bgez $v0, .L80048FC0
|
||||
/* 049BB4 80048FB4 00024043 */ sra $t0, $v0, 1
|
||||
/* 049BB8 80048FB8 00001025 */ move $v0, $zero
|
||||
/* 049BBC 80048FBC 00024043 */ sra $t0, $v0, 1
|
||||
.L80048FC0:
|
||||
/* 049BC0 80048FC0 10000005 */ b .L80048FD8
|
||||
/* 049BC4 80048FC4 01001025 */ move $v0, $t0
|
||||
.L80048FC8:
|
||||
/* 049BC8 80048FC8 2442061C */ addiu $v0, $v0, 0x61c
|
||||
/* 049BCC 80048FCC 18400002 */ blez $v0, .L80048FD8
|
||||
/* 049BD0 80048FD0 00000000 */ nop
|
||||
/* 049BD4 80048FD4 00001025 */ move $v0, $zero
|
||||
.L80048FD8:
|
||||
/* 049BD8 80048FD8 84A40002 */ lh $a0, 2($a1)
|
||||
/* 049BDC 80048FDC 01221023 */ subu $v0, $t1, $v0
|
||||
/* 049BE0 80048FE0 308AFFFF */ andi $t2, $a0, 0xffff
|
||||
/* 049BE4 80048FE4 004A1823 */ subu $v1, $v0, $t2
|
||||
/* 049BE8 80048FE8 0061082A */ slt $at, $v1, $at
|
||||
/* 049BEC 80048FEC 14200003 */ bnez $at, .L80048FFC
|
||||
/* 049BF0 80048FF0 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff
|
||||
/* 049BF4 80048FF4 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1
|
||||
/* 049BF8 80048FF8 00611821 */ addu $v1, $v1, $at
|
||||
.L80048FFC:
|
||||
/* 049BFC 80048FFC 28618000 */ slti $at, $v1, -0x8000
|
||||
/* 049C00 80049000 10200002 */ beqz $at, .L8004900C
|
||||
/* 049C04 80049004 3401FFFF */ li $at, 65535
|
||||
/* 049C08 80049008 00611821 */ addu $v1, $v1, $at
|
||||
.L8004900C:
|
||||
/* 049C0C 8004900C 444BF800 */ cfc1 $t3, $31
|
||||
/* 049C10 80049010 C7A40060 */ lwc1 $f4, 0x60($sp)
|
||||
/* 049C14 80049014 35610003 */ ori $at, $t3, 3
|
||||
/* 049C18 80049018 38210002 */ xori $at, $at, 2
|
||||
/* 049C1C 8004901C 44C1F800 */ ctc1 $at, $31
|
||||
/* 049C20 80049020 00000000 */ nop
|
||||
/* 049C24 80049024 460021A4 */ cvt.w.s $f6, $f4
|
||||
/* 049C28 80049028 440C3000 */ mfc1 $t4, $f6
|
||||
/* 049C2C 8004902C 44CBF800 */ ctc1 $t3, $31
|
||||
/* 049C30 80049030 006C0019 */ multu $v1, $t4
|
||||
/* 049C34 80049034 00006812 */ mflo $t5
|
||||
/* 049C38 80049038 000D7103 */ sra $t6, $t5, 4
|
||||
/* 049C3C 8004903C 008E7821 */ addu $t7, $a0, $t6
|
||||
/* 049C40 80049040 A4AF0002 */ sh $t7, 2($a1)
|
||||
.L80049044:
|
||||
/* 049C44 80049044 AFA70068 */ sw $a3, 0x68($sp)
|
||||
/* 049C48 80049048 E7AC0028 */ swc1 $f12, 0x28($sp)
|
||||
/* 049C4C 8004904C E7AE0048 */ swc1 $f14, 0x48($sp)
|
||||
/* 049C50 80049050 E7B0002C */ swc1 $f16, 0x2c($sp)
|
||||
/* 049C54 80049054 0C019884 */ jal get_viewport_count
|
||||
/* 049C58 80049058 E7B20044 */ swc1 $f18, 0x44($sp)
|
||||
/* 049C5C 8004905C 8FA70068 */ lw $a3, 0x68($sp)
|
||||
/* 049C60 80049060 44805800 */ mtc1 $zero, $f11
|
||||
/* 049C64 80049064 C4E0002C */ lwc1 $f0, 0x2c($a3)
|
||||
/* 049C68 80049068 44805000 */ mtc1 $zero, $f10
|
||||
/* 049C6C 8004906C 46000221 */ cvt.d.s $f8, $f0
|
||||
/* 049C70 80049070 462A403C */ c.lt.d $f8, $f10
|
||||
/* 049C74 80049074 C7AC0028 */ lwc1 $f12, 0x28($sp)
|
||||
/* 049C78 80049078 C7AE0048 */ lwc1 $f14, 0x48($sp)
|
||||
/* 049C7C 8004907C C7B0002C */ lwc1 $f16, 0x2c($sp)
|
||||
/* 049C80 80049080 C7B20044 */ lwc1 $f18, 0x44($sp)
|
||||
/* 049C84 80049084 45000013 */ bc1f .L800490D4
|
||||
/* 049C88 80049088 3C0141F0 */ lui $at, 0x41f0
|
||||
/* 049C8C 8004908C 46100102 */ mul.s $f4, $f0, $f16
|
||||
/* 049C90 80049090 3C0140C0 */ li $at, 0x40C00000 # 6.000000
|
||||
/* 049C94 80049094 44814000 */ mtc1 $at, $f8
|
||||
/* 049C98 80049098 3C01800E */ lui $at, %hi(D_800E6498 + 4) # $at, 0x800e
|
||||
/* 049C9C 8004909C 46002187 */ neg.s $f6, $f4
|
||||
/* 049CA0 800490A0 46083082 */ mul.s $f2, $f6, $f8
|
||||
/* 049CA4 800490A4 C42B6498 */ lwc1 $f11, %lo(D_800E6498)($at)
|
||||
/* 049CA8 800490A8 C42A649C */ lwc1 $f10, %lo(D_800E6498 + 4)($at)
|
||||
/* 049CAC 800490AC 3C014282 */ li $at, 0x42820000 # 65.000000
|
||||
/* 049CB0 800490B0 46001121 */ cvt.d.s $f4, $f2
|
||||
/* 049CB4 800490B4 4624503C */ c.lt.d $f10, $f4
|
||||
/* 049CB8 800490B8 00000000 */ nop
|
||||
/* 049CBC 800490BC 45000003 */ bc1f .L800490CC
|
||||
/* 049CC0 800490C0 00000000 */ nop
|
||||
/* 049CC4 800490C4 44811000 */ mtc1 $at, $f2
|
||||
/* 049CC8 800490C8 00000000 */ nop
|
||||
.L800490CC:
|
||||
/* 049CCC 800490CC 46027381 */ sub.s $f14, $f14, $f2
|
||||
/* 049CD0 800490D0 3C0141F0 */ li $at, 0x41F00000 # 30.000000
|
||||
.L800490D4:
|
||||
/* 049CD4 800490D4 44813000 */ mtc1 $at, $f6
|
||||
/* 049CD8 800490D8 3C188012 */ lui $t8, %hi(D_8011D540) # $t8, 0x8012
|
||||
/* 049CDC 800490DC 46066202 */ mul.s $f8, $f12, $f6
|
||||
/* 049CE0 800490E0 8F18D540 */ lw $t8, %lo(D_8011D540)($t8)
|
||||
/* 049CE4 800490E4 00000000 */ nop
|
||||
/* 049CE8 800490E8 17000014 */ bnez $t8, .L8004913C
|
||||
/* 049CEC 800490EC 46087380 */ add.s $f14, $f14, $f8
|
||||
/* 049CF0 800490F0 24040024 */ li $a0, 36
|
||||
/* 049CF4 800490F4 AFA70068 */ sw $a3, 0x68($sp)
|
||||
/* 049CF8 800490F8 E7AE0048 */ swc1 $f14, 0x48($sp)
|
||||
/* 049CFC 800490FC 0C00322D */ jal func_8000C8B4
|
||||
/* 049D00 80049100 E7B20044 */ swc1 $f18, 0x44($sp)
|
||||
/* 049D04 80049104 8FA70068 */ lw $a3, 0x68($sp)
|
||||
/* 049D08 80049108 C7AE0048 */ lwc1 $f14, 0x48($sp)
|
||||
/* 049D0C 8004910C 80E301D3 */ lb $v1, 0x1d3($a3)
|
||||
/* 049D10 80049110 C7B20044 */ lwc1 $f18, 0x44($sp)
|
||||
/* 049D14 80049114 0043082A */ slt $at, $v0, $v1
|
||||
/* 049D18 80049118 10200004 */ beqz $at, .L8004912C
|
||||
/* 049D1C 8004911C 3C01C1F0 */ li $at, 0xC1F00000 # -30.000000
|
||||
/* 049D20 80049120 44817000 */ mtc1 $at, $f14
|
||||
/* 049D24 80049124 10000005 */ b .L8004913C
|
||||
/* 049D28 80049128 00000000 */ nop
|
||||
.L8004912C:
|
||||
/* 049D2C 8004912C 18600003 */ blez $v1, .L8004913C
|
||||
/* 049D30 80049130 3C014334 */ li $at, 0x43340000 # 180.000000
|
||||
/* 049D34 80049134 44817000 */ mtc1 $at, $f14
|
||||
/* 049D38 80049138 00000000 */ nop
|
||||
.L8004913C:
|
||||
/* 049D3C 8004913C 3C198012 */ lui $t9, %hi(D_8011D540) # $t9, 0x8012
|
||||
/* 049D40 80049140 8F39D540 */ lw $t9, %lo(D_8011D540)($t9)
|
||||
/* 049D44 80049144 00000000 */ nop
|
||||
/* 049D48 80049148 2B210051 */ slti $at, $t9, 0x51
|
||||
/* 049D4C 8004914C 14200007 */ bnez $at, .L8004916C
|
||||
/* 049D50 80049150 00000000 */ nop
|
||||
/* 049D54 80049154 8E080000 */ lw $t0, ($s0)
|
||||
/* 049D58 80049158 00000000 */ nop
|
||||
/* 049D5C 8004915C E50E001C */ swc1 $f14, 0x1c($t0)
|
||||
/* 049D60 80049160 8E090000 */ lw $t1, ($s0)
|
||||
/* 049D64 80049164 00000000 */ nop
|
||||
/* 049D68 80049168 E5320020 */ swc1 $f18, 0x20($t1)
|
||||
.L8004916C:
|
||||
/* 049D6C 8004916C 8E050000 */ lw $a1, ($s0)
|
||||
/* 049D70 80049170 3C013FC0 */ li $at, 0x3FC00000 # 1.500000
|
||||
/* 049D74 80049174 C4A0001C */ lwc1 $f0, 0x1c($a1)
|
||||
/* 049D78 80049178 44816800 */ mtc1 $at, $f13
|
||||
/* 049D7C 8004917C 46007101 */ sub.s $f4, $f14, $f0
|
||||
/* 049D80 80049180 44806000 */ mtc1 $zero, $f12
|
||||
/* 049D84 80049184 460021A1 */ cvt.d.s $f6, $f4
|
||||
/* 049D88 80049188 462C3202 */ mul.d $f8, $f6, $f12
|
||||
/* 049D8C 8004918C 460002A1 */ cvt.d.s $f10, $f0
|
||||
/* 049D90 80049190 46285100 */ add.d $f4, $f10, $f8
|
||||
/* 049D94 80049194 462021A0 */ cvt.s.d $f6, $f4
|
||||
/* 049D98 80049198 E4A6001C */ swc1 $f6, 0x1c($a1)
|
||||
/* 049D9C 8004919C 8E050000 */ lw $a1, ($s0)
|
||||
/* 049DA0 800491A0 00000000 */ nop
|
||||
/* 049DA4 800491A4 C4A20020 */ lwc1 $f2, 0x20($a1)
|
||||
/* 049DA8 800491A8 00000000 */ nop
|
||||
/* 049DAC 800491AC 46029201 */ sub.s $f8, $f18, $f2
|
||||
/* 049DB0 800491B0 46004121 */ cvt.d.s $f4, $f8
|
||||
/* 049DB4 800491B4 462C2182 */ mul.d $f6, $f4, $f12
|
||||
/* 049DB8 800491B8 460012A1 */ cvt.d.s $f10, $f2
|
||||
/* 049DBC 800491BC 46265200 */ add.d $f8, $f10, $f6
|
||||
/* 049DC0 800491C0 46204120 */ cvt.s.d $f4, $f8
|
||||
/* 049DC4 800491C4 E4A40020 */ swc1 $f4, 0x20($a1)
|
||||
/* 049DC8 800491C8 8E0A0000 */ lw $t2, ($s0)
|
||||
/* 049DCC 800491CC 8FAC0024 */ lw $t4, 0x24($sp)
|
||||
/* 049DD0 800491D0 854B0002 */ lh $t3, 2($t2)
|
||||
/* 049DD4 800491D4 AFA70068 */ sw $a3, 0x68($sp)
|
||||
/* 049DD8 800491D8 016C2023 */ subu $a0, $t3, $t4
|
||||
/* 049DDC 800491DC 00046C00 */ sll $t5, $a0, 0x10
|
||||
/* 049DE0 800491E0 0C01C1F1 */ jal cosine_s
|
||||
/* 049DE4 800491E4 000D2403 */ sra $a0, $t5, 0x10
|
||||
/* 049DE8 800491E8 8E0F0000 */ lw $t7, ($s0)
|
||||
/* 049DEC 800491EC E7A00034 */ swc1 $f0, 0x34($sp)
|
||||
/* 049DF0 800491F0 8FB90024 */ lw $t9, 0x24($sp)
|
||||
/* 049DF4 800491F4 85F80002 */ lh $t8, 2($t7)
|
||||
/* 049DF8 800491F8 00000000 */ nop
|
||||
/* 049DFC 800491FC 03192023 */ subu $a0, $t8, $t9
|
||||
/* 049E00 80049200 00044400 */ sll $t0, $a0, 0x10
|
||||
/* 049E04 80049204 0C01C1FE */ jal sine_s
|
||||
/* 049E08 80049208 00082403 */ sra $a0, $t0, 0x10
|
||||
/* 049E0C 8004920C 8E050000 */ lw $a1, ($s0)
|
||||
/* 049E10 80049210 C7A60034 */ lwc1 $f6, 0x34($sp)
|
||||
/* 049E14 80049214 C4AA001C */ lwc1 $f10, 0x1c($a1)
|
||||
/* 049E18 80049218 C4A40020 */ lwc1 $f4, 0x20($a1)
|
||||
/* 049E1C 8004921C 46065202 */ mul.s $f8, $f10, $f6
|
||||
/* 049E20 80049220 8FA70068 */ lw $a3, 0x68($sp)
|
||||
/* 049E24 80049224 340B8000 */ li $t3, 32768
|
||||
/* 049E28 80049228 84EA0196 */ lh $t2, 0x196($a3)
|
||||
/* 049E2C 8004922C 46002282 */ mul.s $f10, $f4, $f0
|
||||
/* 049E30 80049230 016A2023 */ subu $a0, $t3, $t2
|
||||
/* 049E34 80049234 00046400 */ sll $t4, $a0, 0x10
|
||||
/* 049E38 80049238 000C2403 */ sra $a0, $t4, 0x10
|
||||
/* 049E3C 8004923C 460A4480 */ add.s $f18, $f8, $f10
|
||||
/* 049E40 80049240 0C01C1F1 */ jal cosine_s
|
||||
/* 049E44 80049244 E7B20044 */ swc1 $f18, 0x44($sp)
|
||||
/* 049E48 80049248 8E0E0000 */ lw $t6, ($s0)
|
||||
/* 049E4C 8004924C 8FA70068 */ lw $a3, 0x68($sp)
|
||||
/* 049E50 80049250 C5C6001C */ lwc1 $f6, 0x1c($t6)
|
||||
/* 049E54 80049254 34188000 */ li $t8, 32768
|
||||
/* 049E58 80049258 46060102 */ mul.s $f4, $f0, $f6
|
||||
/* 049E5C 8004925C E7A40040 */ swc1 $f4, 0x40($sp)
|
||||
/* 049E60 80049260 84EF0196 */ lh $t7, 0x196($a3)
|
||||
/* 049E64 80049264 00000000 */ nop
|
||||
/* 049E68 80049268 030F2023 */ subu $a0, $t8, $t7
|
||||
/* 049E6C 8004926C 0004CC00 */ sll $t9, $a0, 0x10
|
||||
/* 049E70 80049270 0C01C1FE */ jal sine_s
|
||||
/* 049E74 80049274 00192403 */ sra $a0, $t9, 0x10
|
||||
/* 049E78 80049278 3C0B8012 */ lui $t3, %hi(D_8011D586) # $t3, 0x8012
|
||||
/* 049E7C 8004927C 856BD586 */ lh $t3, %lo(D_8011D586)($t3)
|
||||
/* 049E80 80049280 8E090000 */ lw $t1, ($s0)
|
||||
/* 049E84 80049284 448B5000 */ mtc1 $t3, $f10
|
||||
/* 049E88 80049288 3C014120 */ li $at, 0x41200000 # 10.000000
|
||||
/* 049E8C 8004928C 44817000 */ mtc1 $at, $f14
|
||||
/* 049E90 80049290 468051A0 */ cvt.s.w $f6, $f10
|
||||
/* 049E94 80049294 C528001C */ lwc1 $f8, 0x1c($t1)
|
||||
/* 049E98 80049298 3C014620 */ li $at, 0x46200000 # 10240.000000
|
||||
/* 049E9C 8004929C 44812000 */ mtc1 $at, $f4
|
||||
/* 049EA0 800492A0 46080402 */ mul.s $f16, $f0, $f8
|
||||
/* 049EA4 800492A4 00000000 */ nop
|
||||
/* 049EA8 800492A8 46043203 */ div.s $f8, $f6, $f4
|
||||
/* 049EAC 800492AC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
|
||||
/* 049EB0 800492B0 44813800 */ mtc1 $at, $f7
|
||||
/* 049EB4 800492B4 44803000 */ mtc1 $zero, $f6
|
||||
/* 049EB8 800492B8 8FA70068 */ lw $a3, 0x68($sp)
|
||||
/* 049EBC 800492BC 3C014000 */ li $at, 0x40000000 # 2.000000
|
||||
/* 049EC0 800492C0 460042A1 */ cvt.d.s $f10, $f8
|
||||
/* 049EC4 800492C4 462A3101 */ sub.d $f4, $f6, $f10
|
||||
/* 049EC8 800492C8 C4E60038 */ lwc1 $f6, 0x38($a3)
|
||||
/* 049ECC 800492CC 462020A0 */ cvt.s.d $f2, $f4
|
||||
/* 049ED0 800492D0 C7A80040 */ lwc1 $f8, 0x40($sp)
|
||||
/* 049ED4 800492D4 460E3282 */ mul.s $f10, $f6, $f14
|
||||
/* 049ED8 800492D8 00000000 */ nop
|
||||
/* 049EDC 800492DC 46025102 */ mul.s $f4, $f10, $f2
|
||||
/* 049EE0 800492E0 46044181 */ sub.s $f6, $f8, $f4
|
||||
/* 049EE4 800492E4 E7A60040 */ swc1 $f6, 0x40($sp)
|
||||
/* 049EE8 800492E8 C4EA0040 */ lwc1 $f10, 0x40($a3)
|
||||
/* 049EEC 800492EC C4E60030 */ lwc1 $f6, 0x30($a3)
|
||||
/* 049EF0 800492F0 460E5202 */ mul.s $f8, $f10, $f14
|
||||
/* 049EF4 800492F4 44815000 */ mtc1 $at, $f10
|
||||
/* 049EF8 800492F8 C4EC00C8 */ lwc1 $f12, 0xc8($a3)
|
||||
/* 049EFC 800492FC 3C013FD0 */ li $at, 0x3FD00000 # 1.625000
|
||||
/* 049F00 80049300 46024102 */ mul.s $f4, $f8, $f2
|
||||
/* 049F04 80049304 44813800 */ mtc1 $at, $f7
|
||||
/* 049F08 80049308 84E40196 */ lh $a0, 0x196($a3)
|
||||
/* 049F0C 8004930C 460A3082 */ mul.s $f2, $f6, $f10
|
||||
/* 049F10 80049310 46048401 */ sub.s $f16, $f16, $f4
|
||||
/* 049F14 80049314 44803000 */ mtc1 $zero, $f6
|
||||
/* 049F18 80049318 24844000 */ addiu $a0, $a0, 0x4000
|
||||
/* 049F1C 8004931C 46026201 */ sub.s $f8, $f12, $f2
|
||||
/* 049F20 80049320 00045400 */ sll $t2, $a0, 0x10
|
||||
/* 049F24 80049324 46004121 */ cvt.d.s $f4, $f8
|
||||
/* 049F28 80049328 46262282 */ mul.d $f10, $f4, $f6
|
||||
/* 049F2C 8004932C 46006221 */ cvt.d.s $f8, $f12
|
||||
/* 049F30 80049330 000A2403 */ sra $a0, $t2, 0x10
|
||||
/* 049F34 80049334 462A4101 */ sub.d $f4, $f8, $f10
|
||||
/* 049F38 80049338 462021A0 */ cvt.s.d $f6, $f4
|
||||
/* 049F3C 8004933C E4E600C8 */ swc1 $f6, 0xc8($a3)
|
||||
/* 049F40 80049340 0C01C1F1 */ jal cosine_s
|
||||
/* 049F44 80049344 E7B0003C */ swc1 $f16, 0x3c($sp)
|
||||
/* 049F48 80049348 8FA70068 */ lw $a3, 0x68($sp)
|
||||
/* 049F4C 8004934C 8FA20064 */ lw $v0, 0x64($sp)
|
||||
/* 049F50 80049350 C4E800C8 */ lwc1 $f8, 0xc8($a3)
|
||||
/* 049F54 80049354 C7A40040 */ lwc1 $f4, 0x40($sp)
|
||||
/* 049F58 80049358 46080082 */ mul.s $f2, $f0, $f8
|
||||
/* 049F5C 8004935C C44A000C */ lwc1 $f10, 0xc($v0)
|
||||
/* 049F60 80049360 8E0D0000 */ lw $t5, ($s0)
|
||||
/* 049F64 80049364 C7B20044 */ lwc1 $f18, 0x44($sp)
|
||||
/* 049F68 80049368 46045180 */ add.s $f6, $f10, $f4
|
||||
/* 049F6C 8004936C C7B0003C */ lwc1 $f16, 0x3c($sp)
|
||||
/* 049F70 80049370 46023200 */ add.s $f8, $f6, $f2
|
||||
/* 049F74 80049374 44803000 */ mtc1 $zero, $f6
|
||||
/* 049F78 80049378 E5A8000C */ swc1 $f8, 0xc($t5)
|
||||
/* 049F7C 8004937C 8E050000 */ lw $a1, ($s0)
|
||||
/* 049F80 80049380 C44A0010 */ lwc1 $f10, 0x10($v0)
|
||||
/* 049F84 80049384 C4AC0010 */ lwc1 $f12, 0x10($a1)
|
||||
/* 049F88 80049388 46125100 */ add.s $f4, $f10, $f18
|
||||
/* 049F8C 8004938C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
||||
/* 049F90 80049390 46046081 */ sub.s $f2, $f12, $f4
|
||||
/* 049F94 80049394 3C0E8012 */ lui $t6, %hi(D_8011D53C) # $t6, 0x8012
|
||||
/* 049F98 80049398 4602303C */ c.lt.s $f6, $f2
|
||||
/* 049F9C 8004939C 00000000 */ nop
|
||||
/* 049FA0 800493A0 45000007 */ bc1f .L800493C0
|
||||
/* 049FA4 800493A4 00000000 */ nop
|
||||
/* 049FA8 800493A8 44815800 */ mtc1 $at, $f11
|
||||
/* 049FAC 800493AC 44805000 */ mtc1 $zero, $f10
|
||||
/* 049FB0 800493B0 46001221 */ cvt.d.s $f8, $f2
|
||||
/* 049FB4 800493B4 462A4102 */ mul.d $f4, $f8, $f10
|
||||
/* 049FB8 800493B8 10000018 */ b .L8004941C
|
||||
/* 049FBC 800493BC 462020A0 */ cvt.s.d $f2, $f4
|
||||
.L800493C0:
|
||||
/* 049FC0 800493C0 8DCED53C */ lw $t6, %lo(D_8011D53C)($t6)
|
||||
/* 049FC4 800493C4 24010001 */ li $at, 1
|
||||
/* 049FC8 800493C8 15C10007 */ bne $t6, $at, .L800493E8
|
||||
/* 049FCC 800493CC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
||||
/* 049FD0 800493D0 44814800 */ mtc1 $at, $f9
|
||||
/* 049FD4 800493D4 44804000 */ mtc1 $zero, $f8
|
||||
/* 049FD8 800493D8 460011A1 */ cvt.d.s $f6, $f2
|
||||
/* 049FDC 800493DC 46283282 */ mul.d $f10, $f6, $f8
|
||||
/* 049FE0 800493E0 10000007 */ b .L80049400
|
||||
/* 049FE4 800493E4 462050A0 */ cvt.s.d $f2, $f10
|
||||
.L800493E8:
|
||||
/* 049FE8 800493E8 3C013FD0 */ li $at, 0x3FD00000 # 1.625000
|
||||
/* 049FEC 800493EC 44813800 */ mtc1 $at, $f7
|
||||
/* 049FF0 800493F0 44803000 */ mtc1 $zero, $f6
|
||||
/* 049FF4 800493F4 46001121 */ cvt.d.s $f4, $f2
|
||||
/* 049FF8 800493F8 46262202 */ mul.d $f8, $f4, $f6
|
||||
/* 049FFC 800493FC 462040A0 */ cvt.s.d $f2, $f8
|
||||
.L80049400:
|
||||
/* 04A000 80049400 80F801D3 */ lb $t8, 0x1d3($a3)
|
||||
/* 04A004 80049404 00000000 */ nop
|
||||
/* 04A008 80049408 13000004 */ beqz $t8, .L8004941C
|
||||
/* 04A00C 8004940C 00000000 */ nop
|
||||
/* 04A010 80049410 46001021 */ cvt.d.s $f0, $f2
|
||||
/* 04A014 80049414 46200280 */ add.d $f10, $f0, $f0
|
||||
/* 04A018 80049418 462050A0 */ cvt.s.d $f2, $f10
|
||||
.L8004941C:
|
||||
/* 04A01C 8004941C 46026101 */ sub.s $f4, $f12, $f2
|
||||
/* 04A020 80049420 3C198012 */ lui $t9, %hi(D_8011D540) # $t9, 0x8012
|
||||
/* 04A024 80049424 E4A40010 */ swc1 $f4, 0x10($a1)
|
||||
/* 04A028 80049428 8E0F0000 */ lw $t7, ($s0)
|
||||
/* 04A02C 8004942C 00000000 */ nop
|
||||
/* 04A030 80049430 A5E00004 */ sh $zero, 4($t7)
|
||||
/* 04A034 80049434 8F39D540 */ lw $t9, %lo(D_8011D540)($t9)
|
||||
/* 04A038 80049438 00000000 */ nop
|
||||
/* 04A03C 8004943C 13200005 */ beqz $t9, .L80049454
|
||||
/* 04A040 80049440 00000000 */ nop
|
||||
/* 04A044 80049444 C4460010 */ lwc1 $f6, 0x10($v0)
|
||||
/* 04A048 80049448 8E080000 */ lw $t0, ($s0)
|
||||
/* 04A04C 8004944C 46123200 */ add.s $f8, $f6, $f18
|
||||
/* 04A050 80049450 E5080010 */ swc1 $f8, 0x10($t0)
|
||||
.L80049454:
|
||||
/* 04A054 80049454 84E40196 */ lh $a0, 0x196($a3)
|
||||
/* 04A058 80049458 E7B0003C */ swc1 $f16, 0x3c($sp)
|
||||
/* 04A05C 8004945C 24844000 */ addiu $a0, $a0, 0x4000
|
||||
/* 04A060 80049460 00044C00 */ sll $t1, $a0, 0x10
|
||||
/* 04A064 80049464 00092403 */ sra $a0, $t1, 0x10
|
||||
/* 04A068 80049468 0C01C1FE */ jal sine_s
|
||||
/* 04A06C 8004946C AFA70068 */ sw $a3, 0x68($sp)
|
||||
/* 04A070 80049470 8FAA0064 */ lw $t2, 0x64($sp)
|
||||
/* 04A074 80049474 C7B0003C */ lwc1 $f16, 0x3c($sp)
|
||||
/* 04A078 80049478 C54A0014 */ lwc1 $f10, 0x14($t2)
|
||||
/* 04A07C 8004947C 8E0C0000 */ lw $t4, ($s0)
|
||||
/* 04A080 80049480 46105100 */ add.s $f4, $f10, $f16
|
||||
/* 04A084 80049484 8FA70068 */ lw $a3, 0x68($sp)
|
||||
/* 04A088 80049488 E5840014 */ swc1 $f4, 0x14($t4)
|
||||
/* 04A08C 8004948C 8E0E0000 */ lw $t6, ($s0)
|
||||
/* 04A090 80049490 84ED0196 */ lh $t5, 0x196($a3)
|
||||
/* 04A094 80049494 00000000 */ nop
|
||||
/* 04A098 80049498 A5CD0000 */ sh $t5, ($t6)
|
||||
/* 04A09C 8004949C 8E050000 */ lw $a1, ($s0)
|
||||
/* 04A0A0 800494A0 00000000 */ nop
|
||||
/* 04A0A4 800494A4 C4AC000C */ lwc1 $f12, 0xc($a1)
|
||||
/* 04A0A8 800494A8 C4AE0010 */ lwc1 $f14, 0x10($a1)
|
||||
/* 04A0AC 800494AC 8CA60014 */ lw $a2, 0x14($a1)
|
||||
/* 04A0B0 800494B0 0C00A7C6 */ jal get_level_segment_index_from_position
|
||||
/* 04A0B4 800494B4 00000000 */ nop
|
||||
/* 04A0B8 800494B8 2401FFFF */ li $at, -1
|
||||
/* 04A0BC 800494BC 10410005 */ beq $v0, $at, .L800494D4
|
||||
/* 04A0C0 800494C0 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 04A0C4 800494C4 8E180000 */ lw $t8, ($s0)
|
||||
/* 04A0C8 800494C8 00000000 */ nop
|
||||
/* 04A0CC 800494CC A7020034 */ sh $v0, 0x34($t8)
|
||||
/* 04A0D0 800494D0 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
.L800494D4:
|
||||
/* 04A0D4 800494D4 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 04A0D8 800494D8 03E00008 */ jr $ra
|
||||
/* 04A0DC 800494DC 27BD0060 */ addiu $sp, $sp, 0x60
|
||||
|
||||
@@ -1,254 +0,0 @@
|
||||
glabel func_8004D590
|
||||
/* 04E190 8004D590 3C0142F0 */ li $at, 0x42F00000 # 120.000000
|
||||
/* 04E194 8004D594 3C028012 */ lui $v0, %hi(D_8011D540) # $v0, 0x8012
|
||||
/* 04E198 8004D598 44810000 */ mtc1 $at, $f0
|
||||
/* 04E19C 8004D59C 8C42D540 */ lw $v0, %lo(D_8011D540)($v0)
|
||||
/* 04E1A0 8004D5A0 27BDFF58 */ addiu $sp, $sp, -0xa8
|
||||
/* 04E1A4 8004D5A4 2841003D */ slti $at, $v0, 0x3d
|
||||
/* 04E1A8 8004D5A8 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 04E1AC 8004D5AC AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 04E1B0 8004D5B0 E7AC00A8 */ swc1 $f12, 0xa8($sp)
|
||||
/* 04E1B4 8004D5B4 AFA500AC */ sw $a1, 0xac($sp)
|
||||
/* 04E1B8 8004D5B8 14200009 */ bnez $at, .L8004D5E0
|
||||
/* 04E1BC 8004D5BC 46000386 */ mov.s $f14, $f0
|
||||
/* 04E1C0 8004D5C0 244EFFC4 */ addiu $t6, $v0, -0x3c
|
||||
/* 04E1C4 8004D5C4 448E2000 */ mtc1 $t6, $f4
|
||||
/* 04E1C8 8004D5C8 3C014080 */ li $at, 0x40800000 # 4.000000
|
||||
/* 04E1CC 8004D5CC 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 04E1D0 8004D5D0 44814000 */ mtc1 $at, $f8
|
||||
/* 04E1D4 8004D5D4 00000000 */ nop
|
||||
/* 04E1D8 8004D5D8 46083282 */ mul.s $f10, $f6, $f8
|
||||
/* 04E1DC 8004D5DC 460A0380 */ add.s $f14, $f0, $f10
|
||||
.L8004D5E0:
|
||||
/* 04E1E0 8004D5E0 84CF01A0 */ lh $t7, 0x1a0($a2)
|
||||
/* 04E1E4 8004D5E4 34188000 */ li $t8, 32768
|
||||
/* 04E1E8 8004D5E8 030FC823 */ subu $t9, $t8, $t7
|
||||
/* 04E1EC 8004D5EC A4D90196 */ sh $t9, 0x196($a2)
|
||||
/* 04E1F0 8004D5F0 E7AE0094 */ swc1 $f14, 0x94($sp)
|
||||
/* 04E1F4 8004D5F4 0C019884 */ jal get_viewport_count
|
||||
/* 04E1F8 8004D5F8 AFA600B0 */ sw $a2, 0xb0($sp)
|
||||
/* 04E1FC 8004D5FC 24040001 */ li $a0, 1
|
||||
/* 04E200 8004D600 C7AE0094 */ lwc1 $f14, 0x94($sp)
|
||||
/* 04E204 8004D604 14440004 */ bne $v0, $a0, .L8004D618
|
||||
/* 04E208 8004D608 3C108012 */ lui $s0, %hi(gCameraObject) # $s0, 0x8012
|
||||
/* 04E20C 8004D60C 3C014320 */ li $at, 0x43200000 # 160.000000
|
||||
/* 04E210 8004D610 44817000 */ mtc1 $at, $f14
|
||||
/* 04E214 8004D614 00000000 */ nop
|
||||
.L8004D618:
|
||||
/* 04E218 8004D618 2610D508 */ addiu $s0, %lo(gCameraObject) # addiu $s0, $s0, -0x2af8
|
||||
/* 04E21C 8004D61C 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E220 8004D620 44804000 */ mtc1 $zero, $f8
|
||||
/* 04E224 8004D624 9043003B */ lbu $v1, 0x3b($v0)
|
||||
/* 04E228 8004D628 00000000 */ nop
|
||||
/* 04E22C 8004D62C 14830004 */ bne $a0, $v1, .L8004D640
|
||||
/* 04E230 8004D630 3C01420C */ li $at, 0x420C0000 # 35.000000
|
||||
/* 04E234 8004D634 44818000 */ mtc1 $at, $f16
|
||||
/* 04E238 8004D638 00000000 */ nop
|
||||
/* 04E23C 8004D63C 46107380 */ add.s $f14, $f14, $f16
|
||||
.L8004D640:
|
||||
/* 04E240 8004D640 14830004 */ bne $a0, $v1, .L8004D654
|
||||
/* 04E244 8004D644 3C01420C */ li $at, 0x420C0000 # 35.000000
|
||||
/* 04E248 8004D648 44819000 */ mtc1 $at, $f18
|
||||
/* 04E24C 8004D64C 00000000 */ nop
|
||||
/* 04E250 8004D650 46127381 */ sub.s $f14, $f14, $f18
|
||||
.L8004D654:
|
||||
/* 04E254 8004D654 C440001C */ lwc1 $f0, 0x1c($v0)
|
||||
/* 04E258 8004D658 3C013FC0 */ li $at, 0x3FC00000 # 1.500000
|
||||
/* 04E25C 8004D65C 46007101 */ sub.s $f4, $f14, $f0
|
||||
/* 04E260 8004D660 44814800 */ mtc1 $at, $f9
|
||||
/* 04E264 8004D664 460021A1 */ cvt.d.s $f6, $f4
|
||||
/* 04E268 8004D668 46283282 */ mul.d $f10, $f6, $f8
|
||||
/* 04E26C 8004D66C 46000421 */ cvt.d.s $f16, $f0
|
||||
/* 04E270 8004D670 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012
|
||||
/* 04E274 8004D674 340A8000 */ li $t2, 32768
|
||||
/* 04E278 8004D678 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0
|
||||
/* 04E27C 8004D67C 462A8480 */ add.d $f18, $f16, $f10
|
||||
/* 04E280 8004D680 44801000 */ mtc1 $zero, $f2
|
||||
/* 04E284 8004D684 46209120 */ cvt.s.d $f4, $f18
|
||||
/* 04E288 8004D688 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 04E28C 8004D68C E444001C */ swc1 $f4, 0x1c($v0)
|
||||
/* 04E290 8004D690 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E294 8004D694 44813000 */ mtc1 $at, $f6
|
||||
/* 04E298 8004D698 84490000 */ lh $t1, ($v0)
|
||||
/* 04E29C 8004D69C 27A40048 */ addiu $a0, $sp, 0x48
|
||||
/* 04E2A0 8004D6A0 01495823 */ subu $t3, $t2, $t1
|
||||
/* 04E2A4 8004D6A4 A4AB0000 */ sh $t3, ($a1)
|
||||
/* 04E2A8 8004D6A8 844C0002 */ lh $t4, 2($v0)
|
||||
/* 04E2AC 8004D6AC A4A00004 */ sh $zero, 4($a1)
|
||||
/* 04E2B0 8004D6B0 000C6823 */ negu $t5, $t4
|
||||
/* 04E2B4 8004D6B4 A4AD0002 */ sh $t5, 2($a1)
|
||||
/* 04E2B8 8004D6B8 E4A2000C */ swc1 $f2, 0xc($a1)
|
||||
/* 04E2BC 8004D6BC E4A20010 */ swc1 $f2, 0x10($a1)
|
||||
/* 04E2C0 8004D6C0 E4A20014 */ swc1 $f2, 0x14($a1)
|
||||
/* 04E2C4 8004D6C4 0C01BF0C */ jal func_8006FC30
|
||||
/* 04E2C8 8004D6C8 E4A60008 */ swc1 $f6, 8($a1)
|
||||
/* 04E2CC 8004D6CC 8E0E0000 */ lw $t6, ($s0)
|
||||
/* 04E2D0 8004D6D0 44801000 */ mtc1 $zero, $f2
|
||||
/* 04E2D4 8004D6D4 8DC7001C */ lw $a3, 0x1c($t6)
|
||||
/* 04E2D8 8004D6D8 27B80090 */ addiu $t8, $sp, 0x90
|
||||
/* 04E2DC 8004D6DC 27AF008C */ addiu $t7, $sp, 0x8c
|
||||
/* 04E2E0 8004D6E0 27B90088 */ addiu $t9, $sp, 0x88
|
||||
/* 04E2E4 8004D6E4 44051000 */ mfc1 $a1, $f2
|
||||
/* 04E2E8 8004D6E8 44061000 */ mfc1 $a2, $f2
|
||||
/* 04E2EC 8004D6EC AFB90018 */ sw $t9, 0x18($sp)
|
||||
/* 04E2F0 8004D6F0 AFAF0014 */ sw $t7, 0x14($sp)
|
||||
/* 04E2F4 8004D6F4 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 04E2F8 8004D6F8 0C01BD93 */ jal guMtxXFMF
|
||||
/* 04E2FC 8004D6FC 27A40048 */ addiu $a0, $sp, 0x48
|
||||
/* 04E300 8004D700 8FA200AC */ lw $v0, 0xac($sp)
|
||||
/* 04E304 8004D704 C7B00090 */ lwc1 $f16, 0x90($sp)
|
||||
/* 04E308 8004D708 C448000C */ lwc1 $f8, 0xc($v0)
|
||||
/* 04E30C 8004D70C 8E0A0000 */ lw $t2, ($s0)
|
||||
/* 04E310 8004D710 46104280 */ add.s $f10, $f8, $f16
|
||||
/* 04E314 8004D714 24040800 */ li $a0, 2048
|
||||
/* 04E318 8004D718 E54A000C */ swc1 $f10, 0xc($t2)
|
||||
/* 04E31C 8004D71C C7A4008C */ lwc1 $f4, 0x8c($sp)
|
||||
/* 04E320 8004D720 C4520010 */ lwc1 $f18, 0x10($v0)
|
||||
/* 04E324 8004D724 8E090000 */ lw $t1, ($s0)
|
||||
/* 04E328 8004D728 46049180 */ add.s $f6, $f18, $f4
|
||||
/* 04E32C 8004D72C E5260010 */ swc1 $f6, 0x10($t1)
|
||||
/* 04E330 8004D730 C7B00088 */ lwc1 $f16, 0x88($sp)
|
||||
/* 04E334 8004D734 C4480014 */ lwc1 $f8, 0x14($v0)
|
||||
/* 04E338 8004D738 8E0B0000 */ lw $t3, ($s0)
|
||||
/* 04E33C 8004D73C 46104280 */ add.s $f10, $f8, $f16
|
||||
/* 04E340 8004D740 0C01C1F1 */ jal cosine_s
|
||||
/* 04E344 8004D744 E56A0014 */ swc1 $f10, 0x14($t3)
|
||||
/* 04E348 8004D748 8E0C0000 */ lw $t4, ($s0)
|
||||
/* 04E34C 8004D74C 44801000 */ mtc1 $zero, $f2
|
||||
/* 04E350 8004D750 C592001C */ lwc1 $f18, 0x1c($t4)
|
||||
/* 04E354 8004D754 27AD0090 */ addiu $t5, $sp, 0x90
|
||||
/* 04E358 8004D758 46120102 */ mul.s $f4, $f0, $f18
|
||||
/* 04E35C 8004D75C 27AE008C */ addiu $t6, $sp, 0x8c
|
||||
/* 04E360 8004D760 27B80088 */ addiu $t8, $sp, 0x88
|
||||
/* 04E364 8004D764 44051000 */ mfc1 $a1, $f2
|
||||
/* 04E368 8004D768 44062000 */ mfc1 $a2, $f4
|
||||
/* 04E36C 8004D76C 44071000 */ mfc1 $a3, $f2
|
||||
/* 04E370 8004D770 AFB80018 */ sw $t8, 0x18($sp)
|
||||
/* 04E374 8004D774 AFAE0014 */ sw $t6, 0x14($sp)
|
||||
/* 04E378 8004D778 AFAD0010 */ sw $t5, 0x10($sp)
|
||||
/* 04E37C 8004D77C 0C01BD93 */ jal guMtxXFMF
|
||||
/* 04E380 8004D780 27A40048 */ addiu $a0, $sp, 0x48
|
||||
/* 04E384 8004D784 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E388 8004D788 C7A80090 */ lwc1 $f8, 0x90($sp)
|
||||
/* 04E38C 8004D78C C446000C */ lwc1 $f6, 0xc($v0)
|
||||
/* 04E390 8004D790 34088001 */ li $t0, 32769
|
||||
/* 04E394 8004D794 46083400 */ add.s $f16, $f6, $f8
|
||||
/* 04E398 8004D798 E450000C */ swc1 $f16, 0xc($v0)
|
||||
/* 04E39C 8004D79C 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E3A0 8004D7A0 C7B2008C */ lwc1 $f18, 0x8c($sp)
|
||||
/* 04E3A4 8004D7A4 C44A0010 */ lwc1 $f10, 0x10($v0)
|
||||
/* 04E3A8 8004D7A8 00000000 */ nop
|
||||
/* 04E3AC 8004D7AC 46125100 */ add.s $f4, $f10, $f18
|
||||
/* 04E3B0 8004D7B0 E4440010 */ swc1 $f4, 0x10($v0)
|
||||
/* 04E3B4 8004D7B4 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E3B8 8004D7B8 C7A80088 */ lwc1 $f8, 0x88($sp)
|
||||
/* 04E3BC 8004D7BC C4460014 */ lwc1 $f6, 0x14($v0)
|
||||
/* 04E3C0 8004D7C0 00000000 */ nop
|
||||
/* 04E3C4 8004D7C4 46083400 */ add.s $f16, $f6, $f8
|
||||
/* 04E3C8 8004D7C8 E4500014 */ swc1 $f16, 0x14($v0)
|
||||
/* 04E3CC 8004D7CC 8FAF00AC */ lw $t7, 0xac($sp)
|
||||
/* 04E3D0 8004D7D0 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E3D4 8004D7D4 85E40004 */ lh $a0, 4($t7)
|
||||
/* 04E3D8 8004D7D8 84460004 */ lh $a2, 4($v0)
|
||||
/* 04E3DC 8004D7DC 00042023 */ negu $a0, $a0
|
||||
/* 04E3E0 8004D7E0 3099FFFF */ andi $t9, $a0, 0xffff
|
||||
/* 04E3E4 8004D7E4 30CAFFFF */ andi $t2, $a2, 0xffff
|
||||
/* 04E3E8 8004D7E8 032A1823 */ subu $v1, $t9, $t2
|
||||
/* 04E3EC 8004D7EC 0068082A */ slt $at, $v1, $t0
|
||||
/* 04E3F0 8004D7F0 14200003 */ bnez $at, .L8004D800
|
||||
/* 04E3F4 8004D7F4 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff
|
||||
/* 04E3F8 8004D7F8 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1
|
||||
/* 04E3FC 8004D7FC 00611821 */ addu $v1, $v1, $at
|
||||
.L8004D800:
|
||||
/* 04E400 8004D800 28618000 */ slti $at, $v1, -0x8000
|
||||
/* 04E404 8004D804 10200002 */ beqz $at, .L8004D810
|
||||
/* 04E408 8004D808 3401FFFF */ li $at, 65535
|
||||
/* 04E40C 8004D80C 00611821 */ addu $v1, $v1, $at
|
||||
.L8004D810:
|
||||
/* 04E410 8004D810 4449F800 */ cfc1 $t1, $31
|
||||
/* 04E414 8004D814 C7AA00A8 */ lwc1 $f10, 0xa8($sp)
|
||||
/* 04E418 8004D818 35210003 */ ori $at, $t1, 3
|
||||
/* 04E41C 8004D81C 38210002 */ xori $at, $at, 2
|
||||
/* 04E420 8004D820 44C1F800 */ ctc1 $at, $31
|
||||
/* 04E424 8004D824 00000000 */ nop
|
||||
/* 04E428 8004D828 460054A4 */ cvt.w.s $f18, $f10
|
||||
/* 04E42C 8004D82C 44059000 */ mfc1 $a1, $f18
|
||||
/* 04E430 8004D830 44C9F800 */ ctc1 $t1, $31
|
||||
/* 04E434 8004D834 00650019 */ multu $v1, $a1
|
||||
/* 04E438 8004D838 00005812 */ mflo $t3
|
||||
/* 04E43C 8004D83C 000B6103 */ sra $t4, $t3, 4
|
||||
/* 04E440 8004D840 00CC6821 */ addu $t5, $a2, $t4
|
||||
/* 04E444 8004D844 A44D0004 */ sh $t5, 4($v0)
|
||||
/* 04E448 8004D848 8FAE00AC */ lw $t6, 0xac($sp)
|
||||
/* 04E44C 8004D84C 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E450 8004D850 85C40002 */ lh $a0, 2($t6)
|
||||
/* 04E454 8004D854 84470002 */ lh $a3, 2($v0)
|
||||
/* 04E458 8004D858 00042023 */ negu $a0, $a0
|
||||
/* 04E45C 8004D85C 30F8FFFF */ andi $t8, $a3, 0xffff
|
||||
/* 04E460 8004D860 00981823 */ subu $v1, $a0, $t8
|
||||
/* 04E464 8004D864 0068082A */ slt $at, $v1, $t0
|
||||
/* 04E468 8004D868 14200003 */ bnez $at, .L8004D878
|
||||
/* 04E46C 8004D86C 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff
|
||||
/* 04E470 8004D870 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1
|
||||
/* 04E474 8004D874 00611821 */ addu $v1, $v1, $at
|
||||
.L8004D878:
|
||||
/* 04E478 8004D878 28618000 */ slti $at, $v1, -0x8000
|
||||
/* 04E47C 8004D87C 10200002 */ beqz $at, .L8004D888
|
||||
/* 04E480 8004D880 3401FFFF */ li $at, 65535
|
||||
/* 04E484 8004D884 00611821 */ addu $v1, $v1, $at
|
||||
.L8004D888:
|
||||
/* 04E488 8004D888 00650019 */ multu $v1, $a1
|
||||
/* 04E48C 8004D88C 00007812 */ mflo $t7
|
||||
/* 04E490 8004D890 000FC903 */ sra $t9, $t7, 4
|
||||
/* 04E494 8004D894 00F95021 */ addu $t2, $a3, $t9
|
||||
/* 04E498 8004D898 A44A0002 */ sh $t2, 2($v0)
|
||||
/* 04E49C 8004D89C 8FA900B0 */ lw $t1, 0xb0($sp)
|
||||
/* 04E4A0 8004D8A0 8E0C0000 */ lw $t4, ($s0)
|
||||
/* 04E4A4 8004D8A4 852B0196 */ lh $t3, 0x196($t1)
|
||||
/* 04E4A8 8004D8A8 00000000 */ nop
|
||||
/* 04E4AC 8004D8AC A58B0000 */ sh $t3, ($t4)
|
||||
/* 04E4B0 8004D8B0 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E4B4 8004D8B4 00000000 */ nop
|
||||
/* 04E4B8 8004D8B8 C44C000C */ lwc1 $f12, 0xc($v0)
|
||||
/* 04E4BC 8004D8BC C44E0010 */ lwc1 $f14, 0x10($v0)
|
||||
/* 04E4C0 8004D8C0 8C460014 */ lw $a2, 0x14($v0)
|
||||
/* 04E4C4 8004D8C4 0C00A7C6 */ jal get_level_segment_index_from_position
|
||||
/* 04E4C8 8004D8C8 00000000 */ nop
|
||||
/* 04E4CC 8004D8CC 2401FFFF */ li $at, -1
|
||||
/* 04E4D0 8004D8D0 10410004 */ beq $v0, $at, .L8004D8E4
|
||||
/* 04E4D4 8004D8D4 00000000 */ nop
|
||||
/* 04E4D8 8004D8D8 8E0D0000 */ lw $t5, ($s0)
|
||||
/* 04E4DC 8004D8DC 00000000 */ nop
|
||||
/* 04E4E0 8004D8E0 A5A20034 */ sh $v0, 0x34($t5)
|
||||
.L8004D8E4:
|
||||
/* 04E4E4 8004D8E4 8E0E0000 */ lw $t6, ($s0)
|
||||
/* 04E4E8 8004D8E8 8FAF00B0 */ lw $t7, 0xb0($sp)
|
||||
/* 04E4EC 8004D8EC 85D80000 */ lh $t8, ($t6)
|
||||
/* 04E4F0 8004D8F0 00000000 */ nop
|
||||
/* 04E4F4 8004D8F4 A5F80196 */ sh $t8, 0x196($t7)
|
||||
/* 04E4F8 8004D8F8 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E4FC 8004D8FC 00000000 */ nop
|
||||
/* 04E500 8004D900 C444000C */ lwc1 $f4, 0xc($v0)
|
||||
/* 04E504 8004D904 C4460024 */ lwc1 $f6, 0x24($v0)
|
||||
/* 04E508 8004D908 00000000 */ nop
|
||||
/* 04E50C 8004D90C 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 04E510 8004D910 E448000C */ swc1 $f8, 0xc($v0)
|
||||
/* 04E514 8004D914 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E518 8004D918 00000000 */ nop
|
||||
/* 04E51C 8004D91C C4500010 */ lwc1 $f16, 0x10($v0)
|
||||
/* 04E520 8004D920 C44A0028 */ lwc1 $f10, 0x28($v0)
|
||||
/* 04E524 8004D924 00000000 */ nop
|
||||
/* 04E528 8004D928 460A8480 */ add.s $f18, $f16, $f10
|
||||
/* 04E52C 8004D92C E4520010 */ swc1 $f18, 0x10($v0)
|
||||
/* 04E530 8004D930 8E020000 */ lw $v0, ($s0)
|
||||
/* 04E534 8004D934 00000000 */ nop
|
||||
/* 04E538 8004D938 C4440014 */ lwc1 $f4, 0x14($v0)
|
||||
/* 04E53C 8004D93C C446002C */ lwc1 $f6, 0x2c($v0)
|
||||
/* 04E540 8004D940 00000000 */ nop
|
||||
/* 04E544 8004D944 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 04E548 8004D948 E4480014 */ swc1 $f8, 0x14($v0)
|
||||
/* 04E54C 8004D94C 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 04E550 8004D950 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 04E554 8004D954 03E00008 */ jr $ra
|
||||
/* 04E558 8004D958 27BD00A8 */ addiu $sp, $sp, 0xa8
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,292 +0,0 @@
|
||||
glabel func_80055A84
|
||||
/* 056684 80055A84 27BDFF80 */ addiu $sp, $sp, -0x80
|
||||
/* 056688 80055A88 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 05668C 80055A8C AFB10028 */ sw $s1, 0x28($sp)
|
||||
/* 056690 80055A90 AFB00024 */ sw $s0, 0x24($sp)
|
||||
/* 056694 80055A94 AFA60088 */ sw $a2, 0x88($sp)
|
||||
/* 056698 80055A98 3C018012 */ lui $at, %hi(D_8011D4F0) # $at, 0x8012
|
||||
/* 05669C 80055A9C C420D4F0 */ lwc1 $f0, %lo(D_8011D4F0)($at)
|
||||
/* 0566A0 80055AA0 C4840010 */ lwc1 $f4, 0x10($a0)
|
||||
/* 0566A4 80055AA4 00A08025 */ move $s0, $a1
|
||||
/* 0566A8 80055AA8 4604003C */ c.lt.s $f0, $f4
|
||||
/* 0566AC 80055AAC 00808825 */ move $s1, $a0
|
||||
/* 0566B0 80055AB0 45000002 */ bc1f .L80055ABC
|
||||
/* 0566B4 80055AB4 00000000 */ nop
|
||||
/* 0566B8 80055AB8 E4800010 */ swc1 $f0, 0x10($a0)
|
||||
.L80055ABC:
|
||||
/* 0566BC 80055ABC 0C0078A7 */ jal get_misc_asset
|
||||
/* 0566C0 80055AC0 24040038 */ li $a0, 56
|
||||
/* 0566C4 80055AC4 240EFFFF */ li $t6, -1
|
||||
/* 0566C8 80055AC8 A3AE003F */ sb $t6, 0x3f($sp)
|
||||
/* 0566CC 80055ACC 820F01D7 */ lb $t7, 0x1d7($s0)
|
||||
/* 0566D0 80055AD0 44800000 */ mtc1 $zero, $f0
|
||||
/* 0566D4 80055AD4 000FC080 */ sll $t8, $t7, 2
|
||||
/* 0566D8 80055AD8 0058C821 */ addu $t9, $v0, $t8
|
||||
/* 0566DC 80055ADC C7260000 */ lwc1 $f6, ($t9)
|
||||
/* 0566E0 80055AE0 3C018012 */ lui $at, %hi(D_8011D548) # $at, 0x8012
|
||||
/* 0566E4 80055AE4 E7A60040 */ swc1 $f6, 0x40($sp)
|
||||
/* 0566E8 80055AE8 C628000C */ lwc1 $f8, 0xc($s1)
|
||||
/* 0566EC 80055AEC 00001825 */ move $v1, $zero
|
||||
/* 0566F0 80055AF0 E7A80048 */ swc1 $f8, 0x48($sp)
|
||||
/* 0566F4 80055AF4 C62A0010 */ lwc1 $f10, 0x10($s1)
|
||||
/* 0566F8 80055AF8 00000000 */ nop
|
||||
/* 0566FC 80055AFC E7AA004C */ swc1 $f10, 0x4c($sp)
|
||||
/* 056700 80055B00 C6240014 */ lwc1 $f4, 0x14($s1)
|
||||
/* 056704 80055B04 E420D548 */ swc1 $f0, %lo(D_8011D548)($at)
|
||||
/* 056708 80055B08 3C018012 */ lui $at, %hi(D_8011D54C) # $at, 0x8012
|
||||
/* 05670C 80055B0C AFA00074 */ sw $zero, 0x74($sp)
|
||||
/* 056710 80055B10 E420D54C */ swc1 $f0, %lo(D_8011D54C)($at)
|
||||
/* 056714 80055B14 E7A40050 */ swc1 $f4, 0x50($sp)
|
||||
/* 056718 80055B18 86090000 */ lh $t1, ($s0)
|
||||
/* 05671C 80055B1C 2401FFFF */ li $at, -1
|
||||
/* 056720 80055B20 15210006 */ bne $t1, $at, .L80055B3C
|
||||
/* 056724 80055B24 27AB0048 */ addiu $t3, $sp, 0x48
|
||||
/* 056728 80055B28 820A01D7 */ lb $t2, 0x1d7($s0)
|
||||
/* 05672C 80055B2C 00000000 */ nop
|
||||
/* 056730 80055B30 29410005 */ slti $at, $t2, 5
|
||||
/* 056734 80055B34 1020000C */ beqz $at, .L80055B68
|
||||
/* 056738 80055B38 27AB0048 */ addiu $t3, $sp, 0x48
|
||||
.L80055B3C:
|
||||
/* 05673C 80055B3C 27AC0040 */ addiu $t4, $sp, 0x40
|
||||
/* 056740 80055B40 27AD003F */ addiu $t5, $sp, 0x3f
|
||||
/* 056744 80055B44 AFAD0018 */ sw $t5, 0x18($sp)
|
||||
/* 056748 80055B48 AFAC0014 */ sw $t4, 0x14($sp)
|
||||
/* 05674C 80055B4C AFAB0010 */ sw $t3, 0x10($sp)
|
||||
/* 056750 80055B50 02202025 */ move $a0, $s1
|
||||
/* 056754 80055B54 24050001 */ li $a1, 1
|
||||
/* 056758 80055B58 27A60074 */ addiu $a2, $sp, 0x74
|
||||
/* 05675C 80055B5C 0C005C92 */ jal func_80017248
|
||||
/* 056760 80055B60 260700D8 */ addiu $a3, $s0, 0xd8
|
||||
/* 056764 80055B64 00401825 */ move $v1, $v0
|
||||
.L80055B68:
|
||||
/* 056768 80055B68 306E0080 */ andi $t6, $v1, 0x80
|
||||
/* 05676C 80055B6C 11C0000E */ beqz $t6, .L80055BA8
|
||||
/* 056770 80055B70 260500D8 */ addiu $a1, $s0, 0xd8
|
||||
/* 056774 80055B74 C7A60048 */ lwc1 $f6, 0x48($sp)
|
||||
/* 056778 80055B78 C628000C */ lwc1 $f8, 0xc($s1)
|
||||
/* 05677C 80055B7C 3C018012 */ lui $at, %hi(D_8011D548) # $at, 0x8012
|
||||
/* 056780 80055B80 46083281 */ sub.s $f10, $f6, $f8
|
||||
/* 056784 80055B84 C7A40050 */ lwc1 $f4, 0x50($sp)
|
||||
/* 056788 80055B88 E42AD548 */ swc1 $f10, %lo(D_8011D548)($at)
|
||||
/* 05678C 80055B8C C6260014 */ lwc1 $f6, 0x14($s1)
|
||||
/* 056790 80055B90 3C018012 */ lui $at, %hi(D_8011D54C) # $at, 0x8012
|
||||
/* 056794 80055B94 46062201 */ sub.s $f8, $f4, $f6
|
||||
/* 056798 80055B98 E428D54C */ swc1 $f8, %lo(D_8011D54C)($at)
|
||||
/* 05679C 80055B9C 2401FF7F */ li $at, -129
|
||||
/* 0567A0 80055BA0 00617824 */ and $t7, $v1, $at
|
||||
/* 0567A4 80055BA4 01E01825 */ move $v1, $t7
|
||||
.L80055BA8:
|
||||
/* 0567A8 80055BA8 1060000E */ beqz $v1, .L80055BE4
|
||||
/* 0567AC 80055BAC 00004025 */ move $t0, $zero
|
||||
/* 0567B0 80055BB0 C7AA004C */ lwc1 $f10, 0x4c($sp)
|
||||
/* 0567B4 80055BB4 C6260010 */ lwc1 $f6, 0x10($s1)
|
||||
/* 0567B8 80055BB8 3C014010 */ li $at, 0x40100000 # 2.250000
|
||||
/* 0567BC 80055BBC 46005121 */ cvt.d.s $f4, $f10
|
||||
/* 0567C0 80055BC0 44805000 */ mtc1 $zero, $f10
|
||||
/* 0567C4 80055BC4 44815800 */ mtc1 $at, $f11
|
||||
/* 0567C8 80055BC8 46003221 */ cvt.d.s $f8, $f6
|
||||
/* 0567CC 80055BCC 462A4181 */ sub.d $f6, $f8, $f10
|
||||
/* 0567D0 80055BD0 4626203C */ c.lt.d $f4, $f6
|
||||
/* 0567D4 80055BD4 00000000 */ nop
|
||||
/* 0567D8 80055BD8 45000002 */ bc1f .L80055BE4
|
||||
/* 0567DC 80055BDC 00000000 */ nop
|
||||
/* 0567E0 80055BE0 24080001 */ li $t0, 1
|
||||
.L80055BE4:
|
||||
/* 0567E4 80055BE4 820701D6 */ lb $a3, 0x1d6($s0)
|
||||
/* 0567E8 80055BE8 A3A8003E */ sb $t0, 0x3e($sp)
|
||||
/* 0567EC 80055BEC AFA50038 */ sw $a1, 0x38($sp)
|
||||
/* 0567F0 80055BF0 AFA30070 */ sw $v1, 0x70($sp)
|
||||
/* 0567F4 80055BF4 24040001 */ li $a0, 1
|
||||
/* 0567F8 80055BF8 0C00C44C */ jal func_80031130
|
||||
/* 0567FC 80055BFC 27A60048 */ addiu $a2, $sp, 0x48
|
||||
/* 056800 80055C00 8FA40038 */ lw $a0, 0x38($sp)
|
||||
/* 056804 80055C04 24180001 */ li $t8, 1
|
||||
/* 056808 80055C08 27B90074 */ addiu $t9, $sp, 0x74
|
||||
/* 05680C 80055C0C AFA00074 */ sw $zero, 0x74($sp)
|
||||
/* 056810 80055C10 AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 056814 80055C14 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 056818 80055C18 27A50048 */ addiu $a1, $sp, 0x48
|
||||
/* 05681C 80055C1C 27A60040 */ addiu $a2, $sp, 0x40
|
||||
/* 056820 80055C20 0C00C580 */ jal func_80031600
|
||||
/* 056824 80055C24 27A7003F */ addiu $a3, $sp, 0x3f
|
||||
/* 056828 80055C28 8FA30070 */ lw $v1, 0x70($sp)
|
||||
/* 05682C 80055C2C 83A8003E */ lb $t0, 0x3e($sp)
|
||||
/* 056830 80055C30 A20201E3 */ sb $v0, 0x1e3($s0)
|
||||
/* 056834 80055C34 820901E3 */ lb $t1, 0x1e3($s0)
|
||||
/* 056838 80055C38 A20301E4 */ sb $v1, 0x1e4($s0)
|
||||
/* 05683C 80055C3C 01235025 */ or $t2, $t1, $v1
|
||||
/* 056840 80055C40 A20A01E3 */ sb $t2, 0x1e3($s0)
|
||||
/* 056844 80055C44 820B01E3 */ lb $t3, 0x1e3($s0)
|
||||
/* 056848 80055C48 A20001E2 */ sb $zero, 0x1e2($s0)
|
||||
/* 05684C 80055C4C 11600005 */ beqz $t3, .L80055C64
|
||||
/* 056850 80055C50 02001825 */ move $v1, $s0
|
||||
/* 056854 80055C54 240C000F */ li $t4, 15
|
||||
/* 056858 80055C58 240D0004 */ li $t5, 4
|
||||
/* 05685C 80055C5C A20C01E3 */ sb $t4, 0x1e3($s0)
|
||||
/* 056860 80055C60 A20D01E2 */ sb $t5, 0x1e2($s0)
|
||||
.L80055C64:
|
||||
/* 056864 80055C64 1100000C */ beqz $t0, .L80055C98
|
||||
/* 056868 80055C68 27A20048 */ addiu $v0, $sp, 0x48
|
||||
/* 05686C 80055C6C 8FAE0074 */ lw $t6, 0x74($sp)
|
||||
/* 056870 80055C70 00000000 */ nop
|
||||
/* 056874 80055C74 11C00009 */ beqz $t6, .L80055C9C
|
||||
/* 056878 80055C78 27A40054 */ addiu $a0, $sp, 0x54
|
||||
/* 05687C 80055C7C 820F01ED */ lb $t7, 0x1ed($s0)
|
||||
/* 056880 80055C80 24180004 */ li $t8, 4
|
||||
/* 056884 80055C84 15E00003 */ bnez $t7, .L80055C94
|
||||
/* 056888 80055C88 2419003C */ li $t9, 60
|
||||
/* 05688C 80055C8C 10000002 */ b .L80055C98
|
||||
/* 056890 80055C90 A2180187 */ sb $t8, 0x187($s0)
|
||||
.L80055C94:
|
||||
/* 056894 80055C94 A21901ED */ sb $t9, 0x1ed($s0)
|
||||
.L80055C98:
|
||||
/* 056898 80055C98 27A40054 */ addiu $a0, $sp, 0x54
|
||||
.L80055C9C:
|
||||
/* 05689C 80055C9C C4480000 */ lwc1 $f8, ($v0)
|
||||
/* 0568A0 80055CA0 24420004 */ addiu $v0, $v0, 4
|
||||
/* 0568A4 80055CA4 0044082B */ sltu $at, $v0, $a0
|
||||
/* 0568A8 80055CA8 24630004 */ addiu $v1, $v1, 4
|
||||
/* 0568AC 80055CAC 1420FFFB */ bnez $at, .L80055C9C
|
||||
/* 0568B0 80055CB0 E46800D4 */ swc1 $f8, 0xd4($v1)
|
||||
/* 0568B4 80055CB4 83A9003F */ lb $t1, 0x3f($sp)
|
||||
/* 0568B8 80055CB8 C60A00D8 */ lwc1 $f10, 0xd8($s0)
|
||||
/* 0568BC 80055CBC A20901DC */ sb $t1, 0x1dc($s0)
|
||||
/* 0568C0 80055CC0 83AA003F */ lb $t2, 0x3f($sp)
|
||||
/* 0568C4 80055CC4 27A40068 */ addiu $a0, $sp, 0x68
|
||||
/* 0568C8 80055CC8 A20A01DD */ sb $t2, 0x1dd($s0)
|
||||
/* 0568CC 80055CCC 83AB003F */ lb $t3, 0x3f($sp)
|
||||
/* 0568D0 80055CD0 27A50064 */ addiu $a1, $sp, 0x64
|
||||
/* 0568D4 80055CD4 A20B01DE */ sb $t3, 0x1de($s0)
|
||||
/* 0568D8 80055CD8 83AC003F */ lb $t4, 0x3f($sp)
|
||||
/* 0568DC 80055CDC 00000000 */ nop
|
||||
/* 0568E0 80055CE0 A20C01DF */ sb $t4, 0x1df($s0)
|
||||
/* 0568E4 80055CE4 E62A000C */ swc1 $f10, 0xc($s1)
|
||||
/* 0568E8 80055CE8 C60400DC */ lwc1 $f4, 0xdc($s0)
|
||||
/* 0568EC 80055CEC 00000000 */ nop
|
||||
/* 0568F0 80055CF0 E6240010 */ swc1 $f4, 0x10($s1)
|
||||
/* 0568F4 80055CF4 C60600E0 */ lwc1 $f6, 0xe0($s0)
|
||||
/* 0568F8 80055CF8 00000000 */ nop
|
||||
/* 0568FC 80055CFC E6260014 */ swc1 $f6, 0x14($s1)
|
||||
/* 056900 80055D00 820D01E2 */ lb $t5, 0x1e2($s0)
|
||||
/* 056904 80055D04 00000000 */ nop
|
||||
/* 056908 80055D08 11A00046 */ beqz $t5, .L80055E24
|
||||
/* 05690C 80055D0C 00000000 */ nop
|
||||
/* 056910 80055D10 0C00AB35 */ jal func_8002ACD4
|
||||
/* 056914 80055D14 27A60060 */ addiu $a2, $sp, 0x60
|
||||
/* 056918 80055D18 86240000 */ lh $a0, ($s1)
|
||||
/* 05691C 80055D1C 00000000 */ nop
|
||||
/* 056920 80055D20 00042023 */ negu $a0, $a0
|
||||
/* 056924 80055D24 00047400 */ sll $t6, $a0, 0x10
|
||||
/* 056928 80055D28 0C01C1F1 */ jal cosine_s
|
||||
/* 05692C 80055D2C 000E2403 */ sra $a0, $t6, 0x10
|
||||
/* 056930 80055D30 86240000 */ lh $a0, ($s1)
|
||||
/* 056934 80055D34 E7A00058 */ swc1 $f0, 0x58($sp)
|
||||
/* 056938 80055D38 00042023 */ negu $a0, $a0
|
||||
/* 05693C 80055D3C 0004C400 */ sll $t8, $a0, 0x10
|
||||
/* 056940 80055D40 0C01C1FE */ jal sine_s
|
||||
/* 056944 80055D44 00182403 */ sra $a0, $t8, 0x10
|
||||
/* 056948 80055D48 C7B00068 */ lwc1 $f16, 0x68($sp)
|
||||
/* 05694C 80055D4C C7A20058 */ lwc1 $f2, 0x58($sp)
|
||||
/* 056950 80055D50 46008202 */ mul.s $f8, $f16, $f0
|
||||
/* 056954 80055D54 C7B20060 */ lwc1 $f18, 0x60($sp)
|
||||
/* 056958 80055D58 C7AE0064 */ lwc1 $f14, 0x64($sp)
|
||||
/* 05695C 80055D5C 46029282 */ mul.s $f10, $f18, $f2
|
||||
/* 056960 80055D60 00000000 */ nop
|
||||
/* 056964 80055D64 46028102 */ mul.s $f4, $f16, $f2
|
||||
/* 056968 80055D68 460A4300 */ add.s $f12, $f8, $f10
|
||||
/* 05696C 80055D6C 46009182 */ mul.s $f6, $f18, $f0
|
||||
/* 056970 80055D70 46062481 */ sub.s $f18, $f4, $f6
|
||||
/* 056974 80055D74 0C01C1D4 */ jal arctan2_f
|
||||
/* 056978 80055D78 E7B20060 */ swc1 $f18, 0x60($sp)
|
||||
/* 05697C 80055D7C 00021C00 */ sll $v1, $v0, 0x10
|
||||
/* 056980 80055D80 00034C03 */ sra $t1, $v1, 0x10
|
||||
/* 056984 80055D84 00091823 */ negu $v1, $t1
|
||||
/* 056988 80055D88 28612000 */ slti $at, $v1, 0x2000
|
||||
/* 05698C 80055D8C 10200004 */ beqz $at, .L80055DA0
|
||||
/* 056990 80055D90 2861E001 */ slti $at, $v1, -0x1fff
|
||||
/* 056994 80055D94 14200002 */ bnez $at, .L80055DA0
|
||||
/* 056998 80055D98 00000000 */ nop
|
||||
/* 05699C 80055D9C A60301A4 */ sh $v1, 0x1a4($s0)
|
||||
.L80055DA0:
|
||||
/* 0569A0 80055DA0 C7AC0060 */ lwc1 $f12, 0x60($sp)
|
||||
/* 0569A4 80055DA4 C7AE0064 */ lwc1 $f14, 0x64($sp)
|
||||
/* 0569A8 80055DA8 0C01C1D4 */ jal arctan2_f
|
||||
/* 0569AC 80055DAC 00000000 */ nop
|
||||
/* 0569B0 80055DB0 00021C00 */ sll $v1, $v0, 0x10
|
||||
/* 0569B4 80055DB4 00035403 */ sra $t2, $v1, 0x10
|
||||
/* 0569B8 80055DB8 000A1823 */ negu $v1, $t2
|
||||
/* 0569BC 80055DBC 28612000 */ slti $at, $v1, 0x2000
|
||||
/* 0569C0 80055DC0 10200004 */ beqz $at, .L80055DD4
|
||||
/* 0569C4 80055DC4 2861E001 */ slti $at, $v1, -0x1fff
|
||||
/* 0569C8 80055DC8 14200002 */ bnez $at, .L80055DD4
|
||||
/* 0569CC 80055DCC 00000000 */ nop
|
||||
/* 0569D0 80055DD0 A6230002 */ sh $v1, 2($s1)
|
||||
.L80055DD4:
|
||||
/* 0569D4 80055DD4 820B01D6 */ lb $t3, 0x1d6($s0)
|
||||
/* 0569D8 80055DD8 24010004 */ li $at, 4
|
||||
/* 0569DC 80055DDC 15610011 */ bne $t3, $at, .L80055E24
|
||||
/* 0569E0 80055DE0 00000000 */ nop
|
||||
/* 0569E4 80055DE4 86240002 */ lh $a0, 2($s1)
|
||||
/* 0569E8 80055DE8 34018001 */ li $at, 32769
|
||||
/* 0569EC 80055DEC 308CFFFF */ andi $t4, $a0, 0xffff
|
||||
/* 0569F0 80055DF0 006C1023 */ subu $v0, $v1, $t4
|
||||
/* 0569F4 80055DF4 0041082A */ slt $at, $v0, $at
|
||||
/* 0569F8 80055DF8 14200003 */ bnez $at, .L80055E08
|
||||
/* 0569FC 80055DFC 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff
|
||||
/* 056A00 80055E00 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1
|
||||
/* 056A04 80055E04 00411021 */ addu $v0, $v0, $at
|
||||
.L80055E08:
|
||||
/* 056A08 80055E08 28418000 */ slti $at, $v0, -0x8000
|
||||
/* 056A0C 80055E0C 10200002 */ beqz $at, .L80055E18
|
||||
/* 056A10 80055E10 3401FFFF */ li $at, 65535
|
||||
/* 056A14 80055E14 00411021 */ addu $v0, $v0, $at
|
||||
.L80055E18:
|
||||
/* 056A18 80055E18 00026883 */ sra $t5, $v0, 2
|
||||
/* 056A1C 80055E1C 008D7021 */ addu $t6, $a0, $t5
|
||||
/* 056A20 80055E20 A62E0002 */ sh $t6, 2($s1)
|
||||
.L80055E24:
|
||||
/* 056A24 80055E24 820201D6 */ lb $v0, 0x1d6($s0)
|
||||
/* 056A28 80055E28 24010004 */ li $at, 4
|
||||
/* 056A2C 80055E2C 1041001F */ beq $v0, $at, .L80055EAC
|
||||
/* 056A30 80055E30 24010002 */ li $at, 2
|
||||
/* 056A34 80055E34 1041001D */ beq $v0, $at, .L80055EAC
|
||||
/* 056A38 80055E38 2401000A */ li $at, 10
|
||||
/* 056A3C 80055E3C 1041001B */ beq $v0, $at, .L80055EAC
|
||||
/* 056A40 80055E40 24010007 */ li $at, 7
|
||||
/* 056A44 80055E44 1041001A */ beq $v0, $at, .L80055EB0
|
||||
/* 056A48 80055E48 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 056A4C 80055E4C 860201A4 */ lh $v0, 0x1a4($s0)
|
||||
/* 056A50 80055E50 240F3400 */ li $t7, 13312
|
||||
/* 056A54 80055E54 28413401 */ slti $at, $v0, 0x3401
|
||||
/* 056A58 80055E58 14200004 */ bnez $at, .L80055E6C
|
||||
/* 056A5C 80055E5C 2418CC00 */ li $t8, -13312
|
||||
/* 056A60 80055E60 A60F01A4 */ sh $t7, 0x1a4($s0)
|
||||
/* 056A64 80055E64 860201A4 */ lh $v0, 0x1a4($s0)
|
||||
/* 056A68 80055E68 00000000 */ nop
|
||||
.L80055E6C:
|
||||
/* 056A6C 80055E6C 2841CC00 */ slti $at, $v0, -0x3400
|
||||
/* 056A70 80055E70 10200002 */ beqz $at, .L80055E7C
|
||||
/* 056A74 80055E74 24193400 */ li $t9, 13312
|
||||
/* 056A78 80055E78 A61801A4 */ sh $t8, 0x1a4($s0)
|
||||
.L80055E7C:
|
||||
/* 056A7C 80055E7C 86240002 */ lh $a0, 2($s1)
|
||||
/* 056A80 80055E80 2409CC00 */ li $t1, -13312
|
||||
/* 056A84 80055E84 28813401 */ slti $at, $a0, 0x3401
|
||||
/* 056A88 80055E88 14200005 */ bnez $at, .L80055EA0
|
||||
/* 056A8C 80055E8C 2881CC00 */ slti $at, $a0, -0x3400
|
||||
/* 056A90 80055E90 A6390002 */ sh $t9, 2($s1)
|
||||
/* 056A94 80055E94 86240002 */ lh $a0, 2($s1)
|
||||
/* 056A98 80055E98 00000000 */ nop
|
||||
/* 056A9C 80055E9C 2881CC00 */ slti $at, $a0, -0x3400
|
||||
.L80055EA0:
|
||||
/* 056AA0 80055EA0 10200003 */ beqz $at, .L80055EB0
|
||||
/* 056AA4 80055EA4 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 056AA8 80055EA8 A6290002 */ sh $t1, 2($s1)
|
||||
.L80055EAC:
|
||||
/* 056AAC 80055EAC 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
.L80055EB0:
|
||||
/* 056AB0 80055EB0 8FB00024 */ lw $s0, 0x24($sp)
|
||||
/* 056AB4 80055EB4 8FB10028 */ lw $s1, 0x28($sp)
|
||||
/* 056AB8 80055EB8 03E00008 */ jr $ra
|
||||
/* 056ABC 80055EBC 27BD0080 */ addiu $sp, $sp, 0x80
|
||||
|
||||
@@ -1,454 +0,0 @@
|
||||
.late_rodata
|
||||
glabel jpt_800E68D0
|
||||
.word L80057BBC, L80057BE4, L80057CD0, L80057C0C, L80057C34, L80057C5C, L80057C84, L80057CAC
|
||||
glabel D_800E68F0
|
||||
.double 91.75
|
||||
glabel D_800E68F8
|
||||
.double 90.0
|
||||
glabel D_800E6900
|
||||
.double 48.5
|
||||
glabel D_800E6908
|
||||
.double 0.95
|
||||
|
||||
.text
|
||||
glabel func_80057A40
|
||||
/* 058640 80057A40 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 058644 80057A44 3C0E8012 */ lui $t6, %hi(gActivePlayerButtonPress) # $t6, 0x8012
|
||||
/* 058648 80057A48 8DCED52C */ lw $t6, %lo(gActivePlayerButtonPress)($t6)
|
||||
/* 05864C 80057A4C AFA5003C */ sw $a1, 0x3c($sp)
|
||||
/* 058650 80057A50 31CF0008 */ andi $t7, $t6, 8
|
||||
/* 058654 80057A54 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 058658 80057A58 AFA40038 */ sw $a0, 0x38($sp)
|
||||
/* 05865C 80057A5C AFA60040 */ sw $a2, 0x40($sp)
|
||||
/* 058660 80057A60 11E00037 */ beqz $t7, .L80057B40
|
||||
/* 058664 80057A64 AFA5003C */ sw $a1, 0x3c($sp)
|
||||
/* 058668 80057A68 0C028064 */ jal func_800A0190
|
||||
/* 05866C 80057A6C AFA5003C */ sw $a1, 0x3c($sp)
|
||||
/* 058670 80057A70 10400033 */ beqz $v0, .L80057B40
|
||||
/* 058674 80057A74 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 058678 80057A78 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 05867C 80057A7C 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058680 80057A80 00000000 */ nop
|
||||
/* 058684 80057A84 9058003B */ lbu $t8, 0x3b($v0)
|
||||
/* 058688 80057A88 00000000 */ nop
|
||||
/* 05868C 80057A8C 27190001 */ addiu $t9, $t8, 1
|
||||
/* 058690 80057A90 A059003B */ sb $t9, 0x3b($v0)
|
||||
/* 058694 80057A94 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058698 80057A98 00000000 */ nop
|
||||
/* 05869C 80057A9C 9045003B */ lbu $a1, 0x3b($v0)
|
||||
/* 0586A0 80057AA0 00000000 */ nop
|
||||
/* 0586A4 80057AA4 28A10004 */ slti $at, $a1, 4
|
||||
/* 0586A8 80057AA8 14200007 */ bnez $at, .L80057AC8
|
||||
/* 0586AC 80057AAC 8FA9003C */ lw $t1, 0x3c($sp)
|
||||
/* 0586B0 80057AB0 A040003B */ sb $zero, 0x3b($v0)
|
||||
/* 0586B4 80057AB4 8CE80000 */ lw $t0, ($a3)
|
||||
/* 0586B8 80057AB8 00000000 */ nop
|
||||
/* 0586BC 80057ABC 9105003B */ lbu $a1, 0x3b($t0)
|
||||
/* 0586C0 80057AC0 00000000 */ nop
|
||||
/* 0586C4 80057AC4 8FA9003C */ lw $t1, 0x3c($sp)
|
||||
.L80057AC8:
|
||||
/* 0586C8 80057AC8 2401FFFF */ li $at, -1
|
||||
/* 0586CC 80057ACC 85240000 */ lh $a0, ($t1)
|
||||
/* 0586D0 80057AD0 00000000 */ nop
|
||||
/* 0586D4 80057AD4 10810009 */ beq $a0, $at, .L80057AFC
|
||||
/* 0586D8 80057AD8 00000000 */ nop
|
||||
/* 0586DC 80057ADC 0C019818 */ jal func_80066060
|
||||
/* 0586E0 80057AE0 00000000 */ nop
|
||||
/* 0586E4 80057AE4 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 0586E8 80057AE8 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 0586EC 80057AEC 8CEA0000 */ lw $t2, ($a3)
|
||||
/* 0586F0 80057AF0 00000000 */ nop
|
||||
/* 0586F4 80057AF4 9145003B */ lbu $a1, 0x3b($t2)
|
||||
/* 0586F8 80057AF8 00000000 */ nop
|
||||
.L80057AFC:
|
||||
/* 0586FC 80057AFC 10A00006 */ beqz $a1, .L80057B18
|
||||
/* 058700 80057B00 24040068 */ li $a0, 104
|
||||
/* 058704 80057B04 24010001 */ li $at, 1
|
||||
/* 058708 80057B08 10A10007 */ beq $a1, $at, .L80057B28
|
||||
/* 05870C 80057B0C 24040069 */ li $a0, 105
|
||||
/* 058710 80057B10 10000009 */ b .L80057B38
|
||||
/* 058714 80057B14 2404006A */ li $a0, 106
|
||||
.L80057B18:
|
||||
/* 058718 80057B18 0C000741 */ jal func_80001D04
|
||||
/* 05871C 80057B1C 00002825 */ move $a1, $zero
|
||||
/* 058720 80057B20 10000008 */ b .L80057B44
|
||||
/* 058724 80057B24 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
.L80057B28:
|
||||
/* 058728 80057B28 0C000741 */ jal func_80001D04
|
||||
/* 05872C 80057B2C 00002825 */ move $a1, $zero
|
||||
/* 058730 80057B30 10000004 */ b .L80057B44
|
||||
/* 058734 80057B34 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
.L80057B38:
|
||||
/* 058738 80057B38 0C000741 */ jal func_80001D04
|
||||
/* 05873C 80057B3C 00002825 */ move $a1, $zero
|
||||
.L80057B40:
|
||||
/* 058740 80057B40 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
.L80057B44:
|
||||
/* 058744 80057B44 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 058748 80057B48 80CB01D8 */ lb $t3, 0x1d8($a2)
|
||||
/* 05874C 80057B4C 24010001 */ li $at, 1
|
||||
/* 058750 80057B50 15610008 */ bne $t3, $at, .L80057B74
|
||||
/* 058754 80057B54 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 058758 80057B58 8CE20000 */ lw $v0, ($a3)
|
||||
/* 05875C 80057B5C 24010005 */ li $at, 5
|
||||
/* 058760 80057B60 844C0036 */ lh $t4, 0x36($v0)
|
||||
/* 058764 80057B64 240D0007 */ li $t5, 7
|
||||
/* 058768 80057B68 11810002 */ beq $t4, $at, .L80057B74
|
||||
/* 05876C 80057B6C 00000000 */ nop
|
||||
/* 058770 80057B70 A44D0036 */ sh $t5, 0x36($v0)
|
||||
.L80057B74:
|
||||
/* 058774 80057B74 8CCE0108 */ lw $t6, 0x108($a2)
|
||||
/* 058778 80057B78 8CE20000 */ lw $v0, ($a3)
|
||||
/* 05877C 80057B7C 11C00004 */ beqz $t6, .L80057B90
|
||||
/* 058780 80057B80 240F0003 */ li $t7, 3
|
||||
/* 058784 80057B84 A44F0036 */ sh $t7, 0x36($v0)
|
||||
/* 058788 80057B88 8CE20000 */ lw $v0, ($a3)
|
||||
/* 05878C 80057B8C 00000000 */ nop
|
||||
.L80057B90:
|
||||
/* 058790 80057B90 94580036 */ lhu $t8, 0x36($v0)
|
||||
/* 058794 80057B94 00000000 */ nop
|
||||
/* 058798 80057B98 2F010008 */ sltiu $at, $t8, 8
|
||||
/* 05879C 80057B9C 1020004C */ beqz $at, .L80057CD0
|
||||
/* 0587A0 80057BA0 0018C080 */ sll $t8, $t8, 2
|
||||
/* 0587A4 80057BA4 3C01800E */ lui $at, %hi(jpt_800E68D0) # $at, 0x800e
|
||||
/* 0587A8 80057BA8 00380821 */ addu $at, $at, $t8
|
||||
/* 0587AC 80057BAC 8C3868D0 */ lw $t8, %lo(jpt_800E68D0)($at)
|
||||
/* 0587B0 80057BB0 00000000 */ nop
|
||||
/* 0587B4 80057BB4 03000008 */ jr $t8
|
||||
/* 0587B8 80057BB8 00000000 */ nop
|
||||
glabel L80057BBC
|
||||
/* 0587BC 80057BBC C7AC0040 */ lwc1 $f12, 0x40($sp)
|
||||
/* 0587C0 80057BC0 8FA50038 */ lw $a1, 0x38($sp)
|
||||
/* 0587C4 80057BC4 0C01607A */ jal func_800581E8
|
||||
/* 0587C8 80057BC8 AFA6003C */ sw $a2, 0x3c($sp)
|
||||
/* 0587CC 80057BCC 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 0587D0 80057BD0 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 0587D4 80057BD4 8CE20000 */ lw $v0, ($a3)
|
||||
/* 0587D8 80057BD8 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
/* 0587DC 80057BDC 1000003C */ b .L80057CD0
|
||||
/* 0587E0 80057BE0 00000000 */ nop
|
||||
glabel L80057BE4
|
||||
/* 0587E4 80057BE4 C7AC0040 */ lwc1 $f12, 0x40($sp)
|
||||
/* 0587E8 80057BE8 8FA50038 */ lw $a1, 0x38($sp)
|
||||
/* 0587EC 80057BEC 0C0130AC */ jal func_8004C2B0
|
||||
/* 0587F0 80057BF0 AFA6003C */ sw $a2, 0x3c($sp)
|
||||
/* 0587F4 80057BF4 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 0587F8 80057BF8 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 0587FC 80057BFC 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058800 80057C00 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
/* 058804 80057C04 10000032 */ b .L80057CD0
|
||||
/* 058808 80057C08 00000000 */ nop
|
||||
glabel L80057C0C
|
||||
/* 05880C 80057C0C C7AC0040 */ lwc1 $f12, 0x40($sp)
|
||||
/* 058810 80057C10 8FA50038 */ lw $a1, 0x38($sp)
|
||||
/* 058814 80057C14 0C0163D1 */ jal func_80058F44
|
||||
/* 058818 80057C18 AFA6003C */ sw $a2, 0x3c($sp)
|
||||
/* 05881C 80057C1C 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 058820 80057C20 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 058824 80057C24 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058828 80057C28 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
/* 05882C 80057C2C 10000028 */ b .L80057CD0
|
||||
/* 058830 80057C30 00000000 */ nop
|
||||
glabel L80057C34
|
||||
/* 058834 80057C34 C7AC0040 */ lwc1 $f12, 0x40($sp)
|
||||
/* 058838 80057C38 8FA50038 */ lw $a1, 0x38($sp)
|
||||
/* 05883C 80057C3C 0C012399 */ jal func_80048E64
|
||||
/* 058840 80057C40 AFA6003C */ sw $a2, 0x3c($sp)
|
||||
/* 058844 80057C44 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 058848 80057C48 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 05884C 80057C4C 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058850 80057C50 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
/* 058854 80057C54 1000001E */ b .L80057CD0
|
||||
/* 058858 80057C58 00000000 */ nop
|
||||
glabel L80057C5C
|
||||
/* 05885C 80057C5C C7AC0040 */ lwc1 $f12, 0x40($sp)
|
||||
/* 058860 80057C60 8FA50038 */ lw $a1, 0x38($sp)
|
||||
/* 058864 80057C64 0C0162E1 */ jal func_80058B84
|
||||
/* 058868 80057C68 AFA6003C */ sw $a2, 0x3c($sp)
|
||||
/* 05886C 80057C6C 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 058870 80057C70 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 058874 80057C74 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058878 80057C78 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
/* 05887C 80057C7C 10000014 */ b .L80057CD0
|
||||
/* 058880 80057C80 00000000 */ nop
|
||||
glabel L80057C84
|
||||
/* 058884 80057C84 C7AC0040 */ lwc1 $f12, 0x40($sp)
|
||||
/* 058888 80057C88 8FA50038 */ lw $a1, 0x38($sp)
|
||||
/* 05888C 80057C8C 0C013564 */ jal func_8004D590
|
||||
/* 058890 80057C90 AFA6003C */ sw $a2, 0x3c($sp)
|
||||
/* 058894 80057C94 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 058898 80057C98 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 05889C 80057C9C 8CE20000 */ lw $v0, ($a3)
|
||||
/* 0588A0 80057CA0 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
/* 0588A4 80057CA4 1000000A */ b .L80057CD0
|
||||
/* 0588A8 80057CA8 00000000 */ nop
|
||||
glabel L80057CAC
|
||||
/* 0588AC 80057CAC C7AC0040 */ lwc1 $f12, 0x40($sp)
|
||||
/* 0588B0 80057CB0 8FA50038 */ lw $a1, 0x38($sp)
|
||||
/* 0588B4 80057CB4 0C016357 */ jal func_80058D5C
|
||||
/* 0588B8 80057CB8 AFA6003C */ sw $a2, 0x3c($sp)
|
||||
/* 0588BC 80057CBC 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 0588C0 80057CC0 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 0588C4 80057CC4 8CE20000 */ lw $v0, ($a3)
|
||||
/* 0588C8 80057CC8 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
/* 0588CC 80057CCC 00000000 */ nop
|
||||
.L80057CD0:
|
||||
glabel L80057CD0
|
||||
/* 0588D0 80057CD0 3C038012 */ lui $v1, %hi(D_8011D586) # $v1, 0x8012
|
||||
/* 0588D4 80057CD4 3C01800E */ lui $at, %hi(D_800E68F0 + 4) # $at, 0x800e
|
||||
/* 0588D8 80057CD8 2463D586 */ addiu $v1, %lo(D_8011D586) # addiu $v1, $v1, -0x2a7a
|
||||
/* 0588DC 80057CDC C42168F0 */ lwc1 $f1, %lo(D_800E68F0)($at)
|
||||
/* 0588E0 80057CE0 C42068F4 */ lwc1 $f0, %lo(D_800E68F0 + 4)($at)
|
||||
/* 0588E4 80057CE4 84790000 */ lh $t9, ($v1)
|
||||
/* 0588E8 80057CE8 3C01800E */ lui $at, %hi(D_800E68F8 + 4) # $at, 0x800e
|
||||
/* 0588EC 80057CEC 44992000 */ mtc1 $t9, $f4
|
||||
/* 0588F0 80057CF0 C42D68F8 */ lwc1 $f13, %lo(D_800E68F8)($at)
|
||||
/* 0588F4 80057CF4 C42C68FC */ lwc1 $f12, %lo(D_800E68F8 + 4)($at)
|
||||
/* 0588F8 80057CF8 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0588FC 80057CFC 8FA80038 */ lw $t0, 0x38($sp)
|
||||
/* 058900 80057D00 3C014620 */ li $at, 0x46200000 # 10240.000000
|
||||
/* 058904 80057D04 44814000 */ mtc1 $at, $f8
|
||||
/* 058908 80057D08 C4D20038 */ lwc1 $f18, 0x38($a2)
|
||||
/* 05890C 80057D0C C50A000C */ lwc1 $f10, 0xc($t0)
|
||||
/* 058910 80057D10 46083383 */ div.s $f14, $f6, $f8
|
||||
/* 058914 80057D14 46009121 */ cvt.d.s $f4, $f18
|
||||
/* 058918 80057D18 46240182 */ mul.d $f6, $f0, $f4
|
||||
/* 05891C 80057D1C 46005421 */ cvt.d.s $f16, $f10
|
||||
/* 058920 80057D20 C4CA0050 */ lwc1 $f10, 0x50($a2)
|
||||
/* 058924 80057D24 00000000 */ nop
|
||||
/* 058928 80057D28 460054A1 */ cvt.d.s $f18, $f10
|
||||
/* 05892C 80057D2C 46326102 */ mul.d $f4, $f12, $f18
|
||||
/* 058930 80057D30 46268200 */ add.d $f8, $f16, $f6
|
||||
/* 058934 80057D34 C446000C */ lwc1 $f6, 0xc($v0)
|
||||
/* 058938 80057D38 46244400 */ add.d $f16, $f8, $f4
|
||||
/* 05893C 80057D3C 460032A1 */ cvt.d.s $f10, $f6
|
||||
/* 058940 80057D40 462A8481 */ sub.d $f18, $f16, $f10
|
||||
/* 058944 80057D44 460070A1 */ cvt.d.s $f2, $f14
|
||||
/* 058948 80057D48 46229202 */ mul.d $f8, $f18, $f2
|
||||
/* 05894C 80057D4C 46204120 */ cvt.s.d $f4, $f8
|
||||
/* 058950 80057D50 E4440024 */ swc1 $f4, 0x24($v0)
|
||||
/* 058954 80057D54 8FA90038 */ lw $t1, 0x38($sp)
|
||||
/* 058958 80057D58 C4CA0040 */ lwc1 $f10, 0x40($a2)
|
||||
/* 05895C 80057D5C C5260014 */ lwc1 $f6, 0x14($t1)
|
||||
/* 058960 80057D60 460054A1 */ cvt.d.s $f18, $f10
|
||||
/* 058964 80057D64 46320202 */ mul.d $f8, $f0, $f18
|
||||
/* 058968 80057D68 46003421 */ cvt.d.s $f16, $f6
|
||||
/* 05896C 80057D6C C4C60058 */ lwc1 $f6, 0x58($a2)
|
||||
/* 058970 80057D70 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058974 80057D74 460032A1 */ cvt.d.s $f10, $f6
|
||||
/* 058978 80057D78 462A6482 */ mul.d $f18, $f12, $f10
|
||||
/* 05897C 80057D7C 46288100 */ add.d $f4, $f16, $f8
|
||||
/* 058980 80057D80 C4480014 */ lwc1 $f8, 0x14($v0)
|
||||
/* 058984 80057D84 46322400 */ add.d $f16, $f4, $f18
|
||||
/* 058988 80057D88 460041A1 */ cvt.d.s $f6, $f8
|
||||
/* 05898C 80057D8C 46268281 */ sub.d $f10, $f16, $f6
|
||||
/* 058990 80057D90 46225102 */ mul.d $f4, $f10, $f2
|
||||
/* 058994 80057D94 462024A0 */ cvt.s.d $f18, $f4
|
||||
/* 058998 80057D98 E452002C */ swc1 $f18, 0x2c($v0)
|
||||
/* 05899C 80057D9C E7AE0034 */ swc1 $f14, 0x34($sp)
|
||||
/* 0589A0 80057DA0 E7A2001C */ swc1 $f2, 0x1c($sp)
|
||||
/* 0589A4 80057DA4 0C00EB2B */ jal func_8003ACAC
|
||||
/* 0589A8 80057DA8 E7A30018 */ swc1 $f3, 0x18($sp)
|
||||
/* 0589AC 80057DAC 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
|
||||
/* 0589B0 80057DB0 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
|
||||
/* 0589B4 80057DB4 3C01800E */ lui $at, %hi(D_800E6900 + 4) # $at, 0x800e
|
||||
/* 0589B8 80057DB8 8CE20000 */ lw $v0, ($a3)
|
||||
/* 0589BC 80057DBC C4316900 */ lwc1 $f17, %lo(D_800E6900)($at)
|
||||
/* 0589C0 80057DC0 C4306904 */ lwc1 $f16, %lo(D_800E6900 + 4)($at)
|
||||
/* 0589C4 80057DC4 C44A0010 */ lwc1 $f10, 0x10($v0)
|
||||
/* 0589C8 80057DC8 46000221 */ cvt.d.s $f8, $f0
|
||||
/* 0589CC 80057DCC 46304180 */ add.d $f6, $f8, $f16
|
||||
/* 0589D0 80057DD0 C7A30018 */ lwc1 $f3, 0x18($sp)
|
||||
/* 0589D4 80057DD4 46005121 */ cvt.d.s $f4, $f10
|
||||
/* 0589D8 80057DD8 46243481 */ sub.d $f18, $f6, $f4
|
||||
/* 0589DC 80057DDC C7A2001C */ lwc1 $f2, 0x1c($sp)
|
||||
/* 0589E0 80057DE0 C7AE0034 */ lwc1 $f14, 0x34($sp)
|
||||
/* 0589E4 80057DE4 46229202 */ mul.d $f8, $f18, $f2
|
||||
/* 0589E8 80057DE8 3C0E8012 */ lui $t6, %hi(D_8011D540) # $t6, 0x8012
|
||||
/* 0589EC 80057DEC 3C038012 */ lui $v1, %hi(D_8011D586) # $v1, 0x8012
|
||||
/* 0589F0 80057DF0 2463D586 */ addiu $v1, %lo(D_8011D586) # addiu $v1, $v1, -0x2a7a
|
||||
/* 0589F4 80057DF4 24182800 */ li $t8, 10240
|
||||
/* 0589F8 80057DF8 46204420 */ cvt.s.d $f16, $f8
|
||||
/* 0589FC 80057DFC 3C088012 */ lui $t0, %hi(D_8011D583) # $t0, 0x8012
|
||||
/* 058A00 80057E00 E4500028 */ swc1 $f16, 0x28($v0)
|
||||
/* 058A04 80057E04 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058A08 80057E08 00000000 */ nop
|
||||
/* 058A0C 80057E0C 844A0002 */ lh $t2, 2($v0)
|
||||
/* 058A10 80057E10 00000000 */ nop
|
||||
/* 058A14 80057E14 000A5823 */ negu $t3, $t2
|
||||
/* 058A18 80057E18 448B5000 */ mtc1 $t3, $f10
|
||||
/* 058A1C 80057E1C 00000000 */ nop
|
||||
/* 058A20 80057E20 468051A0 */ cvt.s.w $f6, $f10
|
||||
/* 058A24 80057E24 460E3102 */ mul.s $f4, $f6, $f14
|
||||
/* 058A28 80057E28 444CF800 */ cfc1 $t4, $31
|
||||
/* 058A2C 80057E2C 00000000 */ nop
|
||||
/* 058A30 80057E30 35810003 */ ori $at, $t4, 3
|
||||
/* 058A34 80057E34 38210002 */ xori $at, $at, 2
|
||||
/* 058A38 80057E38 44C1F800 */ ctc1 $at, $31
|
||||
/* 058A3C 80057E3C 00000000 */ nop
|
||||
/* 058A40 80057E40 460024A4 */ cvt.w.s $f18, $f4
|
||||
/* 058A44 80057E44 440D9000 */ mfc1 $t5, $f18
|
||||
/* 058A48 80057E48 44CCF800 */ ctc1 $t4, $31
|
||||
/* 058A4C 80057E4C A44D0038 */ sh $t5, 0x38($v0)
|
||||
/* 058A50 80057E50 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058A54 80057E54 00000000 */ nop
|
||||
/* 058A58 80057E58 C448000C */ lwc1 $f8, 0xc($v0)
|
||||
/* 058A5C 80057E5C C4500024 */ lwc1 $f16, 0x24($v0)
|
||||
/* 058A60 80057E60 00000000 */ nop
|
||||
/* 058A64 80057E64 46104280 */ add.s $f10, $f8, $f16
|
||||
/* 058A68 80057E68 E44A000C */ swc1 $f10, 0xc($v0)
|
||||
/* 058A6C 80057E6C 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058A70 80057E70 00000000 */ nop
|
||||
/* 058A74 80057E74 C4460028 */ lwc1 $f6, 0x28($v0)
|
||||
/* 058A78 80057E78 C4440030 */ lwc1 $f4, 0x30($v0)
|
||||
/* 058A7C 80057E7C C4480010 */ lwc1 $f8, 0x10($v0)
|
||||
/* 058A80 80057E80 46043480 */ add.s $f18, $f6, $f4
|
||||
/* 058A84 80057E84 46124400 */ add.s $f16, $f8, $f18
|
||||
/* 058A88 80057E88 E4500010 */ swc1 $f16, 0x10($v0)
|
||||
/* 058A8C 80057E8C 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058A90 80057E90 00000000 */ nop
|
||||
/* 058A94 80057E94 C44A0014 */ lwc1 $f10, 0x14($v0)
|
||||
/* 058A98 80057E98 C446002C */ lwc1 $f6, 0x2c($v0)
|
||||
/* 058A9C 80057E9C 00000000 */ nop
|
||||
/* 058AA0 80057EA0 46065100 */ add.s $f4, $f10, $f6
|
||||
/* 058AA4 80057EA4 E4440014 */ swc1 $f4, 0x14($v0)
|
||||
/* 058AA8 80057EA8 8DCED540 */ lw $t6, %lo(D_8011D540)($t6)
|
||||
/* 058AAC 80057EAC 00000000 */ nop
|
||||
/* 058AB0 80057EB0 15C0001D */ bnez $t6, .L80057F28
|
||||
/* 058AB4 80057EB4 00000000 */ nop
|
||||
/* 058AB8 80057EB8 846F0000 */ lh $t7, ($v1)
|
||||
/* 058ABC 80057EBC 3C01800E */ lui $at, %hi(D_800E6908 + 4) # $at, 0x800e
|
||||
/* 058AC0 80057EC0 15E00019 */ bnez $t7, .L80057F28
|
||||
/* 058AC4 80057EC4 00000000 */ nop
|
||||
/* 058AC8 80057EC8 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058ACC 80057ECC C4216908 */ lwc1 $f1, %lo(D_800E6908)($at)
|
||||
/* 058AD0 80057ED0 C4480024 */ lwc1 $f8, 0x24($v0)
|
||||
/* 058AD4 80057ED4 C420690C */ lwc1 $f0, %lo(D_800E6908 + 4)($at)
|
||||
/* 058AD8 80057ED8 460044A1 */ cvt.d.s $f18, $f8
|
||||
/* 058ADC 80057EDC 46209402 */ mul.d $f16, $f18, $f0
|
||||
/* 058AE0 80057EE0 462082A0 */ cvt.s.d $f10, $f16
|
||||
/* 058AE4 80057EE4 E44A0024 */ swc1 $f10, 0x24($v0)
|
||||
/* 058AE8 80057EE8 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058AEC 80057EEC 00000000 */ nop
|
||||
/* 058AF0 80057EF0 C4460028 */ lwc1 $f6, 0x28($v0)
|
||||
/* 058AF4 80057EF4 00000000 */ nop
|
||||
/* 058AF8 80057EF8 46003121 */ cvt.d.s $f4, $f6
|
||||
/* 058AFC 80057EFC 46202202 */ mul.d $f8, $f4, $f0
|
||||
/* 058B00 80057F00 462044A0 */ cvt.s.d $f18, $f8
|
||||
/* 058B04 80057F04 E4520028 */ swc1 $f18, 0x28($v0)
|
||||
/* 058B08 80057F08 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058B0C 80057F0C 00000000 */ nop
|
||||
/* 058B10 80057F10 C450002C */ lwc1 $f16, 0x2c($v0)
|
||||
/* 058B14 80057F14 00000000 */ nop
|
||||
/* 058B18 80057F18 460082A1 */ cvt.d.s $f10, $f16
|
||||
/* 058B1C 80057F1C 46205182 */ mul.d $f6, $f10, $f0
|
||||
/* 058B20 80057F20 46203120 */ cvt.s.d $f4, $f6
|
||||
/* 058B24 80057F24 E444002C */ swc1 $f4, 0x2c($v0)
|
||||
.L80057F28:
|
||||
/* 058B28 80057F28 84640000 */ lh $a0, ($v1)
|
||||
/* 058B2C 80057F2C 00000000 */ nop
|
||||
/* 058B30 80057F30 28811401 */ slti $at, $a0, 0x1401
|
||||
/* 058B34 80057F34 14200002 */ bnez $at, .L80057F40
|
||||
/* 058B38 80057F38 00801025 */ move $v0, $a0
|
||||
/* 058B3C 80057F3C 03041023 */ subu $v0, $t8, $a0
|
||||
.L80057F40:
|
||||
/* 058B40 80057F40 28410601 */ slti $at, $v0, 0x601
|
||||
/* 058B44 80057F44 14200002 */ bnez $at, .L80057F50
|
||||
/* 058B48 80057F48 00000000 */ nop
|
||||
/* 058B4C 80057F4C 24020600 */ li $v0, 1536
|
||||
.L80057F50:
|
||||
/* 058B50 80057F50 8108D583 */ lb $t0, %lo(D_8011D583)($t0)
|
||||
/* 058B54 80057F54 0002C903 */ sra $t9, $v0, 4
|
||||
/* 058B58 80057F58 11000018 */ beqz $t0, .L80057FBC
|
||||
/* 058B5C 80057F5C 27220004 */ addiu $v0, $t9, 4
|
||||
/* 058B60 80057F60 4449F800 */ cfc1 $t1, $31
|
||||
/* 058B64 80057F64 C7A80040 */ lwc1 $f8, 0x40($sp)
|
||||
/* 058B68 80057F68 35210003 */ ori $at, $t1, 3
|
||||
/* 058B6C 80057F6C 38210002 */ xori $at, $at, 2
|
||||
/* 058B70 80057F70 44C1F800 */ ctc1 $at, $31
|
||||
/* 058B74 80057F74 3C018012 */ lui $at, %hi(D_8011D586) # $at, 0x8012
|
||||
/* 058B78 80057F78 460044A4 */ cvt.w.s $f18, $f8
|
||||
/* 058B7C 80057F7C 240C2800 */ li $t4, 10240
|
||||
/* 058B80 80057F80 44059000 */ mfc1 $a1, $f18
|
||||
/* 058B84 80057F84 44C9F800 */ ctc1 $t1, $31
|
||||
/* 058B88 80057F88 00A20019 */ multu $a1, $v0
|
||||
/* 058B8C 80057F8C 00005012 */ mflo $t2
|
||||
/* 058B90 80057F90 008A5821 */ addu $t3, $a0, $t2
|
||||
/* 058B94 80057F94 A42BD586 */ sh $t3, %lo(D_8011D586)($at)
|
||||
/* 058B98 80057F98 84640000 */ lh $a0, ($v1)
|
||||
/* 058B9C 80057F9C 00000000 */ nop
|
||||
/* 058BA0 80057FA0 28812801 */ slti $at, $a0, 0x2801
|
||||
/* 058BA4 80057FA4 14200019 */ bnez $at, .L8005800C
|
||||
/* 058BA8 80057FA8 00000000 */ nop
|
||||
/* 058BAC 80057FAC A46C0000 */ sh $t4, ($v1)
|
||||
/* 058BB0 80057FB0 84640000 */ lh $a0, ($v1)
|
||||
/* 058BB4 80057FB4 10000016 */ b .L80058010
|
||||
/* 058BB8 80057FB8 8CE20000 */ lw $v0, ($a3)
|
||||
.L80057FBC:
|
||||
/* 058BBC 80057FBC 444DF800 */ cfc1 $t5, $31
|
||||
/* 058BC0 80057FC0 C7B00040 */ lwc1 $f16, 0x40($sp)
|
||||
/* 058BC4 80057FC4 35A10003 */ ori $at, $t5, 3
|
||||
/* 058BC8 80057FC8 38210002 */ xori $at, $at, 2
|
||||
/* 058BCC 80057FCC 44C1F800 */ ctc1 $at, $31
|
||||
/* 058BD0 80057FD0 3C018012 */ lui $at, %hi(D_8011D586) # $at, 0x8012
|
||||
/* 058BD4 80057FD4 460082A4 */ cvt.w.s $f10, $f16
|
||||
/* 058BD8 80057FD8 44055000 */ mfc1 $a1, $f10
|
||||
/* 058BDC 80057FDC 44CDF800 */ ctc1 $t5, $31
|
||||
/* 058BE0 80057FE0 00A20019 */ multu $a1, $v0
|
||||
/* 058BE4 80057FE4 00007012 */ mflo $t6
|
||||
/* 058BE8 80057FE8 008E7823 */ subu $t7, $a0, $t6
|
||||
/* 058BEC 80057FEC A42FD586 */ sh $t7, %lo(D_8011D586)($at)
|
||||
/* 058BF0 80057FF0 84640000 */ lh $a0, ($v1)
|
||||
/* 058BF4 80057FF4 00000000 */ nop
|
||||
/* 058BF8 80057FF8 04810004 */ bgez $a0, .L8005800C
|
||||
/* 058BFC 80057FFC 00000000 */ nop
|
||||
/* 058C00 80058000 A4600000 */ sh $zero, ($v1)
|
||||
/* 058C04 80058004 84640000 */ lh $a0, ($v1)
|
||||
/* 058C08 80058008 00000000 */ nop
|
||||
.L8005800C:
|
||||
/* 058C0C 8005800C 8CE20000 */ lw $v0, ($a3)
|
||||
.L80058010:
|
||||
/* 058C10 80058010 3C013FE8 */ li $at, 0x3FE80000 # 1.812500
|
||||
/* 058C14 80058014 84580000 */ lh $t8, ($v0)
|
||||
/* 058C18 80058018 00000000 */ nop
|
||||
/* 058C1C 8005801C 0304C823 */ subu $t9, $t8, $a0
|
||||
/* 058C20 80058020 A4590000 */ sh $t9, ($v0)
|
||||
/* 058C24 80058024 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058C28 80058028 00000000 */ nop
|
||||
/* 058C2C 8005802C 8048003A */ lb $t0, 0x3a($v0)
|
||||
/* 058C30 80058030 00000000 */ nop
|
||||
/* 058C34 80058034 01054823 */ subu $t1, $t0, $a1
|
||||
/* 058C38 80058038 A049003A */ sb $t1, 0x3a($v0)
|
||||
/* 058C3C 8005803C 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058C40 80058040 00000000 */ nop
|
||||
/* 058C44 80058044 8043003A */ lb $v1, 0x3a($v0)
|
||||
/* 058C48 80058048 00000000 */ nop
|
||||
/* 058C4C 8005804C 04610016 */ bgez $v1, .L800580A8
|
||||
/* 058C50 80058050 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 058C54 80058054 44810800 */ mtc1 $at, $f1
|
||||
/* 058C58 80058058 44800000 */ mtc1 $zero, $f0
|
||||
/* 058C5C 8005805C 00000000 */ nop
|
||||
/* 058C60 80058060 246A0005 */ addiu $t2, $v1, 5
|
||||
.L80058064:
|
||||
/* 058C64 80058064 A04A003A */ sb $t2, 0x3a($v0)
|
||||
/* 058C68 80058068 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058C6C 8005806C 00000000 */ nop
|
||||
/* 058C70 80058070 C4460030 */ lwc1 $f6, 0x30($v0)
|
||||
/* 058C74 80058074 00000000 */ nop
|
||||
/* 058C78 80058078 46003107 */ neg.s $f4, $f6
|
||||
/* 058C7C 8005807C 46002221 */ cvt.d.s $f8, $f4
|
||||
/* 058C80 80058080 46204482 */ mul.d $f18, $f8, $f0
|
||||
/* 058C84 80058084 46209420 */ cvt.s.d $f16, $f18
|
||||
/* 058C88 80058088 E4500030 */ swc1 $f16, 0x30($v0)
|
||||
/* 058C8C 8005808C 8CE20000 */ lw $v0, ($a3)
|
||||
/* 058C90 80058090 00000000 */ nop
|
||||
/* 058C94 80058094 8043003A */ lb $v1, 0x3a($v0)
|
||||
/* 058C98 80058098 00000000 */ nop
|
||||
/* 058C9C 8005809C 0460FFF1 */ bltz $v1, .L80058064
|
||||
/* 058CA0 800580A0 246A0005 */ addiu $t2, $v1, 5
|
||||
/* 058CA4 800580A4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800580A8:
|
||||
/* 058CA8 800580A8 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
/* 058CAC 800580AC 03E00008 */ jr $ra
|
||||
/* 058CB0 800580B0 00000000 */ nop
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
glabel func_80058D5C
|
||||
/* 05995C 80058D5C 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 059960 80058D60 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 059964 80058D64 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 059968 80058D68 E7AC0038 */ swc1 $f12, 0x38($sp)
|
||||
/* 05996C 80058D6C AFA60040 */ sw $a2, 0x40($sp)
|
||||
/* 059970 80058D70 80CF01D0 */ lb $t7, 0x1d0($a2)
|
||||
/* 059974 80058D74 00A03825 */ move $a3, $a1
|
||||
/* 059978 80058D78 00A02025 */ move $a0, $a1
|
||||
/* 05997C 80058D7C 27A50034 */ addiu $a1, $sp, 0x34
|
||||
/* 059980 80058D80 AFA7003C */ sw $a3, 0x3c($sp)
|
||||
/* 059984 80058D84 0C006F75 */ jal func_8001BDD4
|
||||
/* 059988 80058D88 AFAF0034 */ sw $t7, 0x34($sp)
|
||||
/* 05998C 80058D8C 8FA7003C */ lw $a3, 0x3c($sp)
|
||||
/* 059990 80058D90 14400007 */ bnez $v0, .L80058DB0
|
||||
/* 059994 80058D94 00402025 */ move $a0, $v0
|
||||
/* 059998 80058D98 3C108012 */ lui $s0, %hi(gCameraObject) # $s0, 0x8012
|
||||
/* 05999C 80058D9C 2610D508 */ addiu $s0, %lo(gCameraObject) # addiu $s0, $s0, -0x2af8
|
||||
/* 0599A0 80058DA0 8E190000 */ lw $t9, ($s0)
|
||||
/* 0599A4 80058DA4 24180005 */ li $t8, 5
|
||||
/* 0599A8 80058DA8 10000062 */ b .L80058F34
|
||||
/* 0599AC 80058DAC A7380036 */ sh $t8, 0x36($t9)
|
||||
.L80058DB0:
|
||||
/* 0599B0 80058DB0 8FA80034 */ lw $t0, 0x34($sp)
|
||||
/* 0599B4 80058DB4 8FA90040 */ lw $t1, 0x40($sp)
|
||||
/* 0599B8 80058DB8 3C108012 */ lui $s0, %hi(gCameraObject) # $s0, 0x8012
|
||||
/* 0599BC 80058DBC A12801D0 */ sb $t0, 0x1d0($t1)
|
||||
/* 0599C0 80058DC0 2610D508 */ addiu $s0, %lo(gCameraObject) # addiu $s0, $s0, -0x2af8
|
||||
/* 0599C4 80058DC4 8E0A0000 */ lw $t2, ($s0)
|
||||
/* 0599C8 80058DC8 C484000C */ lwc1 $f4, 0xc($a0)
|
||||
/* 0599CC 80058DCC 00000000 */ nop
|
||||
/* 0599D0 80058DD0 E544000C */ swc1 $f4, 0xc($t2)
|
||||
/* 0599D4 80058DD4 8E0B0000 */ lw $t3, ($s0)
|
||||
/* 0599D8 80058DD8 C4860010 */ lwc1 $f6, 0x10($a0)
|
||||
/* 0599DC 80058DDC 00000000 */ nop
|
||||
/* 0599E0 80058DE0 E5660010 */ swc1 $f6, 0x10($t3)
|
||||
/* 0599E4 80058DE4 8E0C0000 */ lw $t4, ($s0)
|
||||
/* 0599E8 80058DE8 C4880014 */ lwc1 $f8, 0x14($a0)
|
||||
/* 0599EC 80058DEC 00000000 */ nop
|
||||
/* 0599F0 80058DF0 E5880014 */ swc1 $f8, 0x14($t4)
|
||||
/* 0599F4 80058DF4 8E030000 */ lw $v1, ($s0)
|
||||
/* 0599F8 80058DF8 C4E40010 */ lwc1 $f4, 0x10($a3)
|
||||
/* 0599FC 80058DFC C4720010 */ lwc1 $f18, 0x10($v1)
|
||||
/* 059A00 80058E00 C4F0000C */ lwc1 $f16, 0xc($a3)
|
||||
/* 059A04 80058E04 C46A000C */ lwc1 $f10, 0xc($v1)
|
||||
/* 059A08 80058E08 46049181 */ sub.s $f6, $f18, $f4
|
||||
/* 059A0C 80058E0C 46105081 */ sub.s $f2, $f10, $f16
|
||||
/* 059A10 80058E10 E7A60028 */ swc1 $f6, 0x28($sp)
|
||||
/* 059A14 80058E14 C4EA0014 */ lwc1 $f10, 0x14($a3)
|
||||
/* 059A18 80058E18 C4680014 */ lwc1 $f8, 0x14($v1)
|
||||
/* 059A1C 80058E1C 46021402 */ mul.s $f16, $f2, $f2
|
||||
/* 059A20 80058E20 460A4381 */ sub.s $f14, $f8, $f10
|
||||
/* 059A24 80058E24 E7A2002C */ swc1 $f2, 0x2c($sp)
|
||||
/* 059A28 80058E28 E7AE0024 */ swc1 $f14, 0x24($sp)
|
||||
/* 059A2C 80058E2C 460E7482 */ mul.s $f18, $f14, $f14
|
||||
/* 059A30 80058E30 0C0326B4 */ jal sqrtf
|
||||
/* 059A34 80058E34 46128300 */ add.s $f12, $f16, $f18
|
||||
/* 059A38 80058E38 444DF800 */ cfc1 $t5, $31
|
||||
/* 059A3C 80058E3C C7A2002C */ lwc1 $f2, 0x2c($sp)
|
||||
/* 059A40 80058E40 35A10003 */ ori $at, $t5, 3
|
||||
/* 059A44 80058E44 38210002 */ xori $at, $at, 2
|
||||
/* 059A48 80058E48 44C1F800 */ ctc1 $at, $31
|
||||
/* 059A4C 80058E4C C7AE0024 */ lwc1 $f14, 0x24($sp)
|
||||
/* 059A50 80058E50 46001124 */ cvt.w.s $f4, $f2
|
||||
/* 059A54 80058E54 E7A00020 */ swc1 $f0, 0x20($sp)
|
||||
/* 059A58 80058E58 44CDF800 */ ctc1 $t5, $31
|
||||
/* 059A5C 80058E5C 44042000 */ mfc1 $a0, $f4
|
||||
/* 059A60 80058E60 00000000 */ nop
|
||||
/* 059A64 80058E64 444EF800 */ cfc1 $t6, $31
|
||||
/* 059A68 80058E68 00000000 */ nop
|
||||
/* 059A6C 80058E6C 35C10003 */ ori $at, $t6, 3
|
||||
/* 059A70 80058E70 38210002 */ xori $at, $at, 2
|
||||
/* 059A74 80058E74 44C1F800 */ ctc1 $at, $31
|
||||
/* 059A78 80058E78 00000000 */ nop
|
||||
/* 059A7C 80058E7C 460071A4 */ cvt.w.s $f6, $f14
|
||||
/* 059A80 80058E80 44053000 */ mfc1 $a1, $f6
|
||||
/* 059A84 80058E84 44CEF800 */ ctc1 $t6, $31
|
||||
/* 059A88 80058E88 0C01C19B */ jal func_8007066C
|
||||
/* 059A8C 80058E8C 00000000 */ nop
|
||||
/* 059A90 80058E90 4448F800 */ cfc1 $t0, $31
|
||||
/* 059A94 80058E94 8E190000 */ lw $t9, ($s0)
|
||||
/* 059A98 80058E98 340F8000 */ li $t7, 32768
|
||||
/* 059A9C 80058E9C 01E2C023 */ subu $t8, $t7, $v0
|
||||
/* 059AA0 80058EA0 35010003 */ ori $at, $t0, 3
|
||||
/* 059AA4 80058EA4 38210002 */ xori $at, $at, 2
|
||||
/* 059AA8 80058EA8 A7380000 */ sh $t8, ($t9)
|
||||
/* 059AAC 80058EAC C7A80028 */ lwc1 $f8, 0x28($sp)
|
||||
/* 059AB0 80058EB0 44C1F800 */ ctc1 $at, $31
|
||||
/* 059AB4 80058EB4 C7B00020 */ lwc1 $f16, 0x20($sp)
|
||||
/* 059AB8 80058EB8 460042A4 */ cvt.w.s $f10, $f8
|
||||
/* 059ABC 80058EBC 44C8F800 */ ctc1 $t0, $31
|
||||
/* 059AC0 80058EC0 44045000 */ mfc1 $a0, $f10
|
||||
/* 059AC4 80058EC4 00000000 */ nop
|
||||
/* 059AC8 80058EC8 4449F800 */ cfc1 $t1, $31
|
||||
/* 059ACC 80058ECC 00000000 */ nop
|
||||
/* 059AD0 80058ED0 35210003 */ ori $at, $t1, 3
|
||||
/* 059AD4 80058ED4 38210002 */ xori $at, $at, 2
|
||||
/* 059AD8 80058ED8 44C1F800 */ ctc1 $at, $31
|
||||
/* 059ADC 80058EDC 00000000 */ nop
|
||||
/* 059AE0 80058EE0 460084A4 */ cvt.w.s $f18, $f16
|
||||
/* 059AE4 80058EE4 44059000 */ mfc1 $a1, $f18
|
||||
/* 059AE8 80058EE8 44C9F800 */ ctc1 $t1, $31
|
||||
/* 059AEC 80058EEC 0C01C19B */ jal func_8007066C
|
||||
/* 059AF0 80058EF0 00000000 */ nop
|
||||
/* 059AF4 80058EF4 8E0A0000 */ lw $t2, ($s0)
|
||||
/* 059AF8 80058EF8 00000000 */ nop
|
||||
/* 059AFC 80058EFC A5420002 */ sh $v0, 2($t2)
|
||||
/* 059B00 80058F00 8E0B0000 */ lw $t3, ($s0)
|
||||
/* 059B04 80058F04 00000000 */ nop
|
||||
/* 059B08 80058F08 A5600004 */ sh $zero, 4($t3)
|
||||
/* 059B0C 80058F0C 8E030000 */ lw $v1, ($s0)
|
||||
/* 059B10 80058F10 8FAC0040 */ lw $t4, 0x40($sp)
|
||||
/* 059B14 80058F14 C46C000C */ lwc1 $f12, 0xc($v1)
|
||||
/* 059B18 80058F18 8C660014 */ lw $a2, 0x14($v1)
|
||||
/* 059B1C 80058F1C C58E003C */ lwc1 $f14, 0x3c($t4)
|
||||
/* 059B20 80058F20 0C00A7C6 */ jal get_level_segment_index_from_position
|
||||
/* 059B24 80058F24 00000000 */ nop
|
||||
/* 059B28 80058F28 8E0D0000 */ lw $t5, ($s0)
|
||||
/* 059B2C 80058F2C 00000000 */ nop
|
||||
/* 059B30 80058F30 A5A20034 */ sh $v0, 0x34($t5)
|
||||
.L80058F34:
|
||||
/* 059B34 80058F34 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 059B38 80058F38 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 059B3C 80058F3C 03E00008 */ jr $ra
|
||||
/* 059B40 80058F40 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ glabel D_800E6918
|
||||
.double 1.3
|
||||
|
||||
.text
|
||||
glabel func_800581E8
|
||||
glabel update_camera_car
|
||||
/* 058DE8 800581E8 27BDFF98 */ addiu $sp, $sp, -0x68
|
||||
/* 058DEC 800581EC 3C0142F0 */ li $at, 0x42F00000 # 120.000000
|
||||
/* 058DF0 800581F0 44818000 */ mtc1 $at, $f16
|
||||
+1
-1
@@ -12,7 +12,7 @@ glabel D_800E6578
|
||||
.double 0.2
|
||||
|
||||
.text
|
||||
glabel func_8004C2B0
|
||||
glabel update_camera_plane
|
||||
/* 04CEB0 8004C2B0 3C014348 */ li $at, 0x43480000 # 200.000000
|
||||
/* 04CEB4 8004C2B4 44810000 */ mtc1 $at, $f0
|
||||
/* 04CEB8 8004C2B8 3C0142F0 */ li $at, 0x42F00000 # 120.000000
|
||||
@@ -11,6 +11,17 @@ typedef enum Vehicle {
|
||||
NUMBER_OF_VEHICLE_TYPES
|
||||
} Vehicle;
|
||||
|
||||
typedef enum CameraMode {
|
||||
CAMERA_CAR,
|
||||
CAMERA_PLANE,
|
||||
CAMERA_UNUSED,
|
||||
CAMERA_FIXED,
|
||||
CAMERA_HOVERCRAFT,
|
||||
CAMERA_FINISH_CHALLENGE,
|
||||
CAMERA_LOOP,
|
||||
CAMERA_FINISH_RACE
|
||||
} CameraMode;
|
||||
|
||||
typedef enum Language {
|
||||
LANGUAGE_ENGLISH,
|
||||
LANGUAGE_GERMAN,
|
||||
|
||||
+21
-3
@@ -4,8 +4,26 @@
|
||||
#include "types.h"
|
||||
#include "structs.h"
|
||||
|
||||
extern s16 arctan2_f(f32 y, f32 x);
|
||||
extern f32 sine_s(s16 angle);
|
||||
extern f32 cosine_s(s16 angle);
|
||||
/**
|
||||
* Keeps the value within the range.
|
||||
*/
|
||||
#define CLAMP(x, low, high) { \
|
||||
if ((x) > (high)) (x) = (high); \
|
||||
if ((x) < (low)) (x) = (low); \
|
||||
}
|
||||
/**
|
||||
* Allows an arbitrary range the number can wrap around.
|
||||
* Often used for angles, to keep them within s16 bounds while stored in an s32.
|
||||
*/
|
||||
#define WRAP(x, low, high) { \
|
||||
if ((x) > (high)) (x) -= ((high) * 2) - 1; \
|
||||
if ((x) < (low)) (x) += ((high) * 2) - 1; \
|
||||
}
|
||||
|
||||
s16 arctan2_f(f32 y, f32 x);
|
||||
f32 sine_s(s16 angle);
|
||||
f32 cosine_s(s16 angle);
|
||||
void func_80031130(s32, f32*, f32*, s32);
|
||||
s32 func_80031600(f32*, f32*, s32*, s8*, s32, s32*);
|
||||
|
||||
#endif // MATH_UTIL_H
|
||||
|
||||
+36
-37
@@ -209,7 +209,7 @@ typedef struct PulsatingLightData {
|
||||
typedef struct LevelHeader {
|
||||
/* 0x00 */ s8 world;
|
||||
/* 0x01 */ u8 unk1;
|
||||
/* 0x02 */ u8 unk2;
|
||||
/* 0x02 */ s8 unk2;
|
||||
/* 0x03 */ u8 unk3;
|
||||
/* 0x04 */ u8 unk4[4];
|
||||
|
||||
@@ -219,7 +219,9 @@ typedef struct LevelHeader {
|
||||
|
||||
/* 0x20 */ s32 *unk20;
|
||||
|
||||
/* 0x24 */ u8 pad24[0x10];
|
||||
/* 0x24 */ u8 pad24[6];
|
||||
/* 0x2A */ u8 unk2A;
|
||||
/* 0x2B */ u8 pad2B[9];
|
||||
|
||||
/* 0x34 */ s16 geometry;
|
||||
/* 0x36 */ s16 collectables; // Objects such as bananas, balloons, etc.
|
||||
@@ -512,7 +514,8 @@ typedef struct ObjectHeader {
|
||||
/* 0x55 */ s8 numberOfModelIds; // size of array pointed by Object->unk68
|
||||
u8 pad56;
|
||||
/* 0x57 */ s8 unk57;
|
||||
u8 pad58[0x2];
|
||||
s8 unk58;
|
||||
u8 pad59;
|
||||
/* 0x5A */ s8 unk5A;
|
||||
u8 pad5B[0x5];
|
||||
/* 0x60 */ char internalName[16];
|
||||
@@ -805,11 +808,11 @@ typedef struct Object_Racer {
|
||||
/* 0x002 */ u8 unk2;
|
||||
/* 0x003 */ s8 characterId; // Affects minimap color, horn, voice, etc.
|
||||
/* 0x004 */ s32 unk4;
|
||||
/* 0x008 */ s32 unk8;
|
||||
/* 0x008 */ f32 unk8;
|
||||
/* 0x00C */ s32 unkC;
|
||||
/* 0x010 */ s32 unk10;
|
||||
/* 0x014 */ s32 unk14;
|
||||
/* 0x018 */ s32 unk18;
|
||||
/* 0x010 */ f32 unk10;
|
||||
/* 0x014 */ f32 unk14;
|
||||
/* 0x018 */ f32 unk18;
|
||||
/* 0x01C */ s32 unk1C;
|
||||
/* 0x020 */ s32 unk20;
|
||||
/* 0x024 */ s32 unk24;
|
||||
@@ -833,7 +836,7 @@ typedef struct Object_Racer {
|
||||
/* 0x068 */ s32 unk68;
|
||||
/* 0x06C */ s32 unk6C;
|
||||
/* 0x070 */ s32 unk70;
|
||||
/* 0x074 */ s32 unk74;
|
||||
/* 0x074 */ f32 unk74;
|
||||
/* 0x078 */ f32 unk78;
|
||||
/* 0x07C */ f32 unk7C;
|
||||
/* 0x080 */ f32 unk80;
|
||||
@@ -858,31 +861,23 @@ typedef struct Object_Racer {
|
||||
/* 0x0CC */ f32 unkCC;
|
||||
/* 0x0D0 */ f32 unkD0;
|
||||
/* 0x0D4 */ s32 unkD4;
|
||||
/* 0x0D8 */ f32 unkD8;
|
||||
/* 0x0DC */ f32 unkDC;
|
||||
/* 0x0E0 */ f32 unkE0;
|
||||
/* 0x0E4 */ f32 unkE4;
|
||||
/* 0x0E8 */ f32 unkE8;
|
||||
/* 0x0EC */ f32 unkEC;
|
||||
/* 0x0F0 */ f32 unkF0;
|
||||
/* 0x0F4 */ f32 unkF4;
|
||||
/* 0x0F8 */ f32 unkF8;
|
||||
/* 0x0FC */ f32 unkFC;
|
||||
/* 0x100 */ f32 unk100;
|
||||
/* 0x104 */ f32 unk104;
|
||||
/* 0x0D8 */ f32 unkD8[3];
|
||||
/* 0x0E4 */ f32 unkE4[3];
|
||||
/* 0x0F0 */ f32 unkF0[3];
|
||||
/* 0x0FC */ f32 unkFC[3];
|
||||
/* 0x108 */ s32 unk108;
|
||||
/* 0x10C */ s32 unk10C;
|
||||
/* 0x110 */ s32 unk110;
|
||||
/* 0x114 */ s32 unk114;
|
||||
/* 0x118 */ s32 unk118;
|
||||
/* 0x11C */ s32 unk11C;
|
||||
/* 0x120 */ s32 unk120;
|
||||
/* 0x11C */ f32 unk11C;
|
||||
/* 0x120 */ f32 unk120;
|
||||
/* 0x124 */ f32 unk124;
|
||||
/* 0x128 */ u32 lap_times[3];
|
||||
/* 0x134 */ s32 unk134;
|
||||
/* 0x138 */ s32 unk138;
|
||||
/* 0x13C */ s32 unk13C;
|
||||
/* 0x140 */ s32 unk140;
|
||||
/* 0x140 */ struct Object *unk140;
|
||||
/* 0x144 */ struct Object *held_obj;
|
||||
/* 0x148 */ struct Object *unk148;
|
||||
/* 0x14C */ struct Object *unk14C;
|
||||
@@ -899,29 +894,33 @@ typedef struct Object_Racer {
|
||||
/* 0x166 */ s16 unk16C; // As for these, they seem to affect the turning direction of the racer's head.
|
||||
/* 0x16E */ s16 unk16E;
|
||||
/* 0x170 */ s16 unk170;
|
||||
/* 0x172 */ u8 balloon_type;
|
||||
/* 0x173 */ u8 balloon_quantity;
|
||||
/* 0x174 */ u8 balloon_level;
|
||||
/* 0x175 */ u8 unk175;
|
||||
/* 0x172 */ s8 balloon_type;
|
||||
/* 0x173 */ s8 balloon_quantity;
|
||||
/* 0x174 */ s8 balloon_level;
|
||||
/* 0x175 */ s8 unk175;
|
||||
/* 0x176 */ s16 unk176;
|
||||
/* 0x178 */ s32 unk178;
|
||||
/* 0x17C */ s32 unk17C;
|
||||
/* 0x180 */ s32 unk180;
|
||||
/* 0x184 */ s8 pad184;
|
||||
/* 0x184 */ s8 unk184;
|
||||
/* 0x185 */ s8 bananas;
|
||||
/* 0x186 */ u8 unk186;
|
||||
/* 0x187 */ s8 unk187;
|
||||
/* 0x188 */ s32 unk188;
|
||||
/* 0x188 */ s8 unk188;
|
||||
/* 0x189 */ s8 unk189;
|
||||
/* 0x18A */ s8 unk18A;
|
||||
/* 0x18B */ s8 unk18B;
|
||||
/* 0x18C */ s16 unk18C;
|
||||
/* 0x18E */ s16 unk18E;
|
||||
/* 0x190 */ u16 unk190;
|
||||
/* 0x192 */ u8 unk192;
|
||||
/* 0x190 */ s16 unk190;
|
||||
/* 0x192 */ s8 unk192;
|
||||
/* 0x193 */ s8 unk193;
|
||||
/* 0x194 */ s8 unk194;
|
||||
/* 0x195 */ s8 unk195;
|
||||
/* 0x196 */ s16 unk196;
|
||||
/* 0x198 */ s32 unk198;
|
||||
/* 0x19C */ s32 unk19C;
|
||||
/* 0x19C */ s16 unk19C;
|
||||
/* 0x19E */ s16 unk19E;
|
||||
/* 0x1A0 */ s16 unk1A0;
|
||||
/* 0x1A2 */ s16 unk1A2;
|
||||
/* 0x1A4 */ s16 unk1A4;
|
||||
@@ -947,20 +946,20 @@ typedef struct Object_Racer {
|
||||
/* 0x1CD */ u8 unk1CD;
|
||||
/* 0x1CE */ u8 unk1CE;
|
||||
/* 0x1CF */ s8 unk1CF;
|
||||
/* 0x1D0 */ u8 unk1D0;
|
||||
/* 0x1D0 */ s8 spectateCamID;
|
||||
/* 0x1D1 */ u8 unk1D1;
|
||||
/* 0x1D2 */ u8 unk1D2;
|
||||
/* 0x1D2 */ s8 unk1D2;
|
||||
/* 0x1D3 */ s8 unk1D3;
|
||||
/* 0x1D4 */ u8 unk1D4;
|
||||
/* 0x1D5 */ u8 unk1D5;
|
||||
/* 0x1D6 */ s8 unk1D6;
|
||||
/* 0x1D7 */ s8 unk1D7;
|
||||
/* 0x1D8 */ s8 unk1D8;
|
||||
/* 0x1D8 */ s8 raceStatus;
|
||||
/* 0x1D9 */ u8 unk1D9;
|
||||
/* 0x1DA */ u8 unk1DA;
|
||||
/* 0x1DB */ s8 spinout_timer;
|
||||
/* 0x1DC */ u8 wheel_surfaces[4];
|
||||
/* 0x1E0 */ u8 unk1E0;
|
||||
/* 0x1E0 */ s8 unk1E0;
|
||||
/* 0x1E1 */ s8 unk1E1;
|
||||
/* 0x1E2 */ s8 unk1E2;
|
||||
/* 0x1E3 */ s8 unk1E3;
|
||||
@@ -1005,7 +1004,7 @@ typedef struct Object_Racer {
|
||||
/* 0x20D */ u8 unk20D;
|
||||
/* 0x20E */ s16 unk20E;
|
||||
/* 0x210 */ s8 unk210;
|
||||
/* 0x211 */ u8 unk211;
|
||||
/* 0x211 */ s8 unk211;
|
||||
/* 0x212 */ u8 unk212;
|
||||
/* 0x213 */ s8 unk213;
|
||||
/* 0x214 */ s8 unk214;
|
||||
|
||||
+3
-2
@@ -10,6 +10,7 @@
|
||||
#include "game.h"
|
||||
#include "audio.h"
|
||||
#include "textures_sprites.h"
|
||||
#include "racer.h"
|
||||
|
||||
extern u32 osTvType;
|
||||
|
||||
@@ -285,7 +286,7 @@ void func_800A0DC0(s32 arg0, Object *arg1, s32 arg2) {
|
||||
func_800A4C44(temp, arg2);
|
||||
func_800A3884(arg1, arg2);
|
||||
|
||||
if (D_80127188 != 0 && temp->unk1D8 == 0) {
|
||||
if (D_80127188 != 0 && temp->raceStatus == STATUS_RACING) {
|
||||
func_800A47A0(temp, arg2);
|
||||
}
|
||||
|
||||
@@ -298,7 +299,7 @@ GLOBAL_ASM("asm/non_matchings/game_ui/func_800A1248.s")
|
||||
|
||||
void func_800A1428(s32 arg0, Object *arg1, s32 arg2) {
|
||||
Object_Racer *temp = &arg1->unk64->racer;
|
||||
if (temp->unk1D8 == 0) {
|
||||
if (temp->raceStatus == STATUS_RACING) {
|
||||
func_80068508(1);
|
||||
func_800A3CE4(arg0, arg2);
|
||||
func_800A7520(arg1, arg2);
|
||||
|
||||
@@ -876,7 +876,7 @@ void obj_loop_groundzipper(Object *obj, UNUSED s32 speed) {
|
||||
if (racerObj64->unk20C) {
|
||||
racerObj64->unk203 |= 4;
|
||||
}
|
||||
if (racerObj64->unk1D8 == 0) {
|
||||
if (racerObj64->raceStatus == STATUS_RACING) {
|
||||
func_80072348(racerObj64->playerIndex, 8);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,5 +136,6 @@ void func_800AF404(s32 arg0); // Non Matching
|
||||
void func_800AFC3C(Object *, s32); // Non Matching
|
||||
void init_particle_assets(void); // Non Matching
|
||||
void func_800AE728(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5); // Non Matching
|
||||
void func_800AF714(Object*, s32, f32); // Non matching
|
||||
|
||||
#endif
|
||||
|
||||
+1284
-353
File diff suppressed because it is too large
Load Diff
+76
-26
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "structs.h"
|
||||
#include "level_object_entries.h"
|
||||
|
||||
typedef enum ActivePlayers {
|
||||
PLAYER_COMPUTER = -1,
|
||||
@@ -12,6 +13,18 @@ typedef enum ActivePlayers {
|
||||
PLAYER_FOUR
|
||||
} ActivePlayers;
|
||||
|
||||
typedef enum RaceStatus {
|
||||
STATUS_RACING,
|
||||
STATUS_FINISHED
|
||||
} RaceStatus;
|
||||
|
||||
typedef enum CameraZoom {
|
||||
ZOOM_MEDIUM,
|
||||
ZOOM_FAR,
|
||||
ZOOM_CLOSE,
|
||||
ZOOM_VERY_CLOSE
|
||||
} CameraZoom;
|
||||
|
||||
typedef struct ObjectCamera {
|
||||
/* 0x0014 */ ObjectTransform trans;
|
||||
/* 0x0018 */ f32 unk18;
|
||||
@@ -22,10 +35,10 @@ typedef struct ObjectCamera {
|
||||
/* 0x002C */ f32 z_velocity;
|
||||
/* 0x0030 */ f32 unk30;
|
||||
/* 0x0034 */ s16 unk34;
|
||||
/* 0x0036 */ s16 unk36;
|
||||
/* 0x0036 */ s16 mode;
|
||||
/* 0x0038 */ s16 unk38;
|
||||
/* 0x003A */ u8 unk3A;
|
||||
/* 0x003B */ u8 unk3B;
|
||||
/* 0x003A */ s8 unk3A;
|
||||
/* 0x003B */ u8 zoom;
|
||||
/* 0x003C */ u8 unk3C;
|
||||
/* 0x003D */ u8 unk3D;
|
||||
/* 0x003E */ u8 unk3E;
|
||||
@@ -43,6 +56,23 @@ typedef struct unk8005234C {
|
||||
s16 unk16C;
|
||||
} unk8005234C;
|
||||
|
||||
// Also fairly certain this is NOT Object_Racer.
|
||||
typedef struct Object_64_Unknown5 {
|
||||
u8 pad0[0x88];
|
||||
u8 unk89;
|
||||
u8 pad90[0xE9];
|
||||
s8 unk172;
|
||||
s8 unk173;
|
||||
s8 unk174;
|
||||
u8 pad175[0x5E];
|
||||
s8 unk1D3;
|
||||
} Object_64_Unknown5;
|
||||
|
||||
typedef struct TempStruct5 {
|
||||
s8 pad0[8];
|
||||
s8 unk8[4][4];
|
||||
} TempStruct5;
|
||||
|
||||
typedef struct Object_64_80053478 {
|
||||
u8 unk0[0x2C];
|
||||
f32 unk2C; // Forward Velocity?
|
||||
@@ -82,14 +112,7 @@ typedef struct unk800579B0 {
|
||||
s8 unk1E1;
|
||||
} unk800579B0;
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk8005C270 {
|
||||
u8 unk0[0x190];
|
||||
s16 unk190;
|
||||
s8 unk192;
|
||||
s8 unk193;
|
||||
} unk8005C270;
|
||||
|
||||
extern ObjectCamera *gCameraObject;
|
||||
extern s32 gObjLoopGoldenBalloonLength;
|
||||
extern s16 D_800DCB54;
|
||||
extern s32 D_800DCB58;
|
||||
@@ -140,24 +163,24 @@ s32 get_random_number_from_range(s32, s32); //?
|
||||
void func_8006FC30(Matrix, ObjectTransform *); // asm func
|
||||
void func_8006FE74(Matrix *, ObjectTransform *); // Non Matching ?
|
||||
|
||||
s32 func_80044450(s32 arg0);
|
||||
s32 func_80044450(s32 cap);
|
||||
void func_8004C0A0(s32 arg0, Object *planeObj, Object_Racer *planeObj64);
|
||||
void func_8004C140(Object *obj, Object_Racer *obj64);
|
||||
void func_8004D95C(s32 arg0, s32 arg1, Object *obj, Object_Racer *obj64);
|
||||
void func_8004C140(Object *obj, Object_Racer *racer);
|
||||
void func_8004D95C(s32 arg0, s32 arg1, Object *obj, Object_Racer *racer);
|
||||
void func_8004F77C(unk8004F77C *arg0);
|
||||
s32 func_80052188(void);
|
||||
void func_800521B8(s32 arg0);
|
||||
void func_8005234C(unk8005234C *arg0);
|
||||
void func_80052988(Object *arg0, Object_Racer *arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7);
|
||||
void handle_car_steering(Object_Racer *obj);
|
||||
void func_8005234C(Object_Racer *racer);
|
||||
void func_80052988(Object *obj, Object_Racer *arg1, s32 action, s32 arg3, s32 duration, s32 arg5, s32 arg6, s32 arg7);
|
||||
void handle_car_steering(Object_Racer *racer);
|
||||
void func_800535C4(unk800535C4 *arg0, unk800535C4_2 *arg1);
|
||||
void handle_car_velocity_control(Object_Racer *obj);
|
||||
void play_char_horn_sound(Object *obj, Object_Racer *obj64);
|
||||
void handle_car_velocity_control(Object_Racer *racer);
|
||||
void play_char_horn_sound(Object *obj, Object_Racer *racer);
|
||||
void func_80057048(Object *obj, s32 arg1);
|
||||
void func_800570A4(Object *obj, s32 arg1, s32 arg2);
|
||||
void func_800575EC(Object *obj, Object_Racer *obj64);
|
||||
void func_800579B0(unk800579B0 *arg0, s32 arg1, f32 arg2);
|
||||
void func_800580B4(Object *obj, Object_Racer *obj64, s32 arg2, f32 arg3);
|
||||
void func_800575EC(Object *obj, Object_Racer *racer);
|
||||
void func_800579B0(Object_Racer *racer, s32 arg1, f32 updateRate);
|
||||
void func_800580B4(Object *obj, Object_Racer *racer, s32 mode, f32 arg3);
|
||||
void get_timestamp_from_frames(s32 frameCount, s32 *minutes, s32 *seconds, s32 *hundredths);
|
||||
void func_800598D0(void);
|
||||
void func_80059944(void);
|
||||
@@ -172,12 +195,39 @@ void func_8005A3B0(void);
|
||||
void func_8005A3C0(void);
|
||||
void func_8005A3D0(void);
|
||||
void antipiracy_modify_surface_traction_table(void);
|
||||
s32 func_80052388(Object *obj1, Object_Racer *arg1, Object *obj2, f32 distance);
|
||||
s32 func_80052388(Object *obj1, Object_Racer *racer, Object *obj2, f32 distance);
|
||||
void func_80055A84(Object *obj, Object_Racer *racer, s32 arg2);
|
||||
void func_8005C270(Object_Racer *racer);
|
||||
f32 func_80057220(Object *obj, Object_Racer *racer);
|
||||
void func_800570B8(Object *obj, s32 arg1, s32 arg2, s32 arg3);
|
||||
void apply_vehicle_rotation_offset(Object_Racer *obj, s32 max, s16 yRotation, s16 xRotation, s16 zRotation);
|
||||
void func_80059080(Object *obj, Object_Racer *racer, f32 *velX, f32 *velY, f32 *velZ);
|
||||
void func_80054110(Object *obj, Object_Racer *racer, s32 updateRate, f32 arg3);
|
||||
void update_camera_hovercraft(f32 updateRate, Object *obj, Object_Racer *racer);
|
||||
void update_camera_plane(f32 updateRate, Object *obj, Object_Racer *racer);
|
||||
void update_camera_loop(f32 updateRate, Object *obj, Object_Racer *racer);
|
||||
void update_camera_car(f32 updateRate, Object *obj, Object_Racer *racer);
|
||||
void update_camera_finish_challenge(f32 arg0, Object *obj, Object_Racer *racer);
|
||||
void update_camera_finish_race(f32 arg0, Object *obj, Object_Racer *racer);
|
||||
void update_camera_fixed(f32 arg0, struct Object *obj, Object_Racer *racer);
|
||||
void func_800521C4(Object *obj, Object_Racer *racer, s32 arg2);
|
||||
void func_80050754(Object *obj, Object_Racer *racer, f32 divisor);
|
||||
void obj_init_racer(Object *obj, LevelObjectEntry_CharacterFlag *racer);
|
||||
void func_80044170(Object *obj, Object_Racer *racer, s32 updateRate);
|
||||
void func_80043ECC(s32 arg0, Object_64_Unknown5 *arg1, s32 updateRate);
|
||||
void func_80055A84(Object *obj, Object_Racer *racer, s32 updateRate);
|
||||
void func_80057A40(Object *obj, Object_Racer *racer, f32 updateRate);
|
||||
|
||||
//Non Matching
|
||||
void set_ghost_position_and_rotation(Object *obj);
|
||||
void func_800570B8(Object *obj, s32 arg1, s32 arg2, s32 arg3);
|
||||
void func_800576E0(Object *obj, Object_Racer *obj64, s32 arg2);
|
||||
void func_80057A40(Object *obj, Object_Racer *obj64, f32 arg2);
|
||||
void func_800576E0(Object *obj, Object_Racer *racer, s32 arg2);
|
||||
void func_80055EC0(Object *obj, Object_Racer *racer, s32);
|
||||
void func_80054FD0(Object *obj, Object_Racer *racer, s32);
|
||||
void func_8005492C(Object *obj, Object_Racer *racer, s32, f32);
|
||||
void func_80053E9C(Object *obj, Object_Racer *racer, s32);
|
||||
void func_80053750(Object *obj, Object_Racer *racer, f32);
|
||||
void func_80052D7C(Object *obj, Object_Racer *racer, s32, f32);
|
||||
void func_80052B64(Object *obj, Object_Racer *racer, s32, f32);
|
||||
s32 func_80017248(void*, s32, s32*, void*, f32*, s32*, s8*);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user