mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Splat changes (#462)
* Merge changes from splat where it makes sense at this stage. * Update score, and script for what seems like new map file style. * format * Fix accidental inclusion of version specific details. * Match camera_init * Update Score * Near match for func_80046524 * Format * Woops, it's NON_MATCHING * Missed button pressed value * Work on documenting func_80046524 * MAtch func_80046524 * Match func_80046524 * Minor changes * Fix warnings in func_80046524 * format.py * Update README * Match func_800230D0 * Fix UB in mode_init_taj_race
This commit is contained in:
@@ -12,9 +12,13 @@ VERSION := us_1.0
|
||||
NON_MATCHING ?= 0
|
||||
$(eval $(call validate-option,NON_MATCHING,0 1))
|
||||
|
||||
LIBULTRA_VERSION_DEFINE := -DBUILD_VERSION=4 -DBUILD_VERSION_STRING=\"2.0G\" -DRAREDIFFS
|
||||
|
||||
ifeq ($(VERSION),us_1.0)
|
||||
DEFINES += VERSION_US_1_0=1
|
||||
DEFINES += F3DDKR_GBI=1
|
||||
DEFINES += _FINALROM=1
|
||||
DEFINES += TARGET_N64=1
|
||||
endif
|
||||
ifeq ($(NON_EQUIVALENT),1)
|
||||
DEFINES += NON_EQUIVALENT=1
|
||||
@@ -155,7 +159,7 @@ OPT_FLAGS := -O2 -Xfullwarn #include -Xfullwarn here since it's not supported wi
|
||||
|
||||
INCLUDE_DIRS := include $(BUILD_DIR) $(BUILD_DIR)/include src include/libc .
|
||||
|
||||
C_DEFINES := $(foreach d,$(DEFINES),-D$(d))
|
||||
C_DEFINES := $(foreach d,$(DEFINES),-D$(d)) $(LIBULTRA_VERSION_DEFINE) -D_MIPS_SZLONG=32
|
||||
DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
|
||||
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the
|
||||
Currently, only the US 1.0 version (SHA1 = 0cb115d8716dbbc2922fda38e533b9fe63bb9670) of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time.
|
||||
|
||||
<!-- README_SCORE_SUMMARY_BEGIN -->
|
||||
As of February 14, 2025, this is our current score:
|
||||
As of February 18, 2025, this is our current score:
|
||||
|
||||
    Decomp progress: 67.74%
|
||||
    Decomp progress: 70.26%
|
||||
|
||||
    Documentation progress: 49.72%
|
||||
<!-- README_SCORE_SUMMARY_END -->
|
||||
@@ -126,20 +126,20 @@ s32 is_drumstick_unlocked(void) {
|
||||
```
|
||||
|
||||
<!-- README_SCORE_BEGIN -->
|
||||
As of February 14th, 2025, this is our current score:
|
||||
As of February 18th, 2025, this is our current score:
|
||||
```
|
||||
=============================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
--- 67.74% Complete (70.43% NON_MATCHING) ---
|
||||
# Decompiled functions: 1695
|
||||
# GLOBAL_ASM remaining: 150
|
||||
# NON_MATCHING functions: 16
|
||||
# NON_EQUIVALENT WIP functions: 47
|
||||
--- 70.26% Complete (72.90% NON_MATCHING) ---
|
||||
# Decompiled functions: 1706
|
||||
# GLOBAL_ASM remaining: 139
|
||||
# NON_MATCHING functions: 15
|
||||
# NON_EQUIVALENT WIP functions: 44
|
||||
---------------- Game Status ----------------
|
||||
Balloons: 32/47, Keys: 3/4, Trophies: 3/5
|
||||
Balloons: 34/47, Keys: 4/4, Trophies: 3/5
|
||||
T.T. Amulets: 3/4, Wizpig Amulets: 3/4
|
||||
---------------------------------------------
|
||||
We are racing in Greenwood Village. (Lap 3/3)
|
||||
We are racing in Haunted Woods. (Lap 2/3)
|
||||
=============================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
-------------- 49.72% Complete --------------
|
||||
|
||||
+2
-2
@@ -11,9 +11,9 @@
|
||||
|
||||
glabel entrypoint
|
||||
.ent entrypoint
|
||||
/* 001000 80000400 3C08800F */ lui $t0, %hi(gBssSectionStart) # $t0, 0x800f
|
||||
/* 001000 80000400 3C08800F */ lui $t0, %hi(gAudioHeapStack) # $t0, 0x800f
|
||||
/* 001004 80000404 3C090004 */ lui $t1, %hi(__BSS_SECTION_SIZE) # lui $t1, 4
|
||||
/* 001008 80000408 2508BF60 */ addiu $t0, %lo(gBssSectionStart) # addiu $t0, $t0, -0x40a0
|
||||
/* 001008 80000408 2508BF60 */ addiu $t0, %lo(gAudioHeapStack) # addiu $t0, $t0, -0x40a0
|
||||
/* 00100C 8000040C 35291490 */ ori $t1, %lo(__BSS_SECTION_SIZE) # ori $t1, $t1, 0x1490
|
||||
.L80000410:
|
||||
/* 001010 80000410 2129FFF8 */ addi $t1, $t1, -8
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_800E709C
|
||||
.float 15000.0
|
||||
|
||||
.text
|
||||
glabel camera_init
|
||||
/* 066AA0 80065EA0 3C048012 */ lui $a0, %hi(D_80120DA0) # $a0, 0x8012
|
||||
/* 066AA4 80065EA4 24030001 */ li $v1, 1
|
||||
/* 066AA8 80065EA8 3C0F8012 */ lui $t7, %hi(gModelMatrixF) # $t7, 0x8012
|
||||
/* 066AAC 80065EAC 25EF0D70 */ addiu $t7, %lo(gModelMatrixF) # addiu $t7, $t7, 0xd70
|
||||
/* 066AB0 80065EB0 00037080 */ sll $t6, $v1, 2
|
||||
/* 066AB4 80065EB4 24840DA0 */ addiu $a0, %lo(D_80120DA0) # addiu $a0, $a0, 0xda0
|
||||
/* 066AB8 80065EB8 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 066ABC 80065EBC 0003C980 */ sll $t9, $v1, 6
|
||||
/* 066AC0 80065EC0 3C018012 */ lui $at, %hi(gModelMatrixF) # $at, 0x8012
|
||||
/* 066AC4 80065EC4 AC240D70 */ sw $a0, %lo(gModelMatrixF)($at)
|
||||
/* 066AC8 80065EC8 00994021 */ addu $t0, $a0, $t9
|
||||
/* 066ACC 80065ECC 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 066AD0 80065ED0 AC480000 */ sw $t0, ($v0)
|
||||
/* 066AD4 80065ED4 246A0001 */ addiu $t2, $v1, 1
|
||||
/* 066AD8 80065ED8 000A5980 */ sll $t3, $t2, 6
|
||||
/* 066ADC 80065EDC 24680003 */ addiu $t0, $v1, 3
|
||||
/* 066AE0 80065EE0 246E0002 */ addiu $t6, $v1, 2
|
||||
/* 066AE4 80065EE4 AFB1002C */ sw $s1, 0x2c($sp)
|
||||
/* 066AE8 80065EE8 000E7980 */ sll $t7, $t6, 6
|
||||
/* 066AEC 80065EEC 00084980 */ sll $t1, $t0, 6
|
||||
/* 066AF0 80065EF0 AFB20030 */ sw $s2, 0x30($sp)
|
||||
/* 066AF4 80065EF4 AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 066AF8 80065EF8 00895021 */ addu $t2, $a0, $t1
|
||||
/* 066AFC 80065EFC 008FC021 */ addu $t8, $a0, $t7
|
||||
/* 066B00 80065F00 008B6021 */ addu $t4, $a0, $t3
|
||||
/* 066B04 80065F04 3C118012 */ lui $s1, %hi(gActiveCameraID) # $s1, 0x8012
|
||||
/* 066B08 80065F08 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 066B0C 80065F0C AC4C0004 */ sw $t4, 4($v0)
|
||||
/* 066B10 80065F10 AC580008 */ sw $t8, 8($v0)
|
||||
/* 066B14 80065F14 AC4A000C */ sw $t2, 0xc($v0)
|
||||
/* 066B18 80065F18 26310CE4 */ addiu $s1, %lo(gActiveCameraID) # addiu $s1, $s1, 0xce4
|
||||
/* 066B1C 80065F1C 00008025 */ move $s0, $zero
|
||||
/* 066B20 80065F20 24120008 */ li $s2, 8
|
||||
/* 066B24 80065F24 240B00B4 */ li $t3, 180
|
||||
.L80065F28:
|
||||
/* 066B28 80065F28 AE300000 */ sw $s0, ($s1)
|
||||
/* 066B2C 80065F2C AFAB0014 */ sw $t3, 0x14($sp)
|
||||
/* 066B30 80065F30 240400C8 */ li $a0, 200
|
||||
/* 066B34 80065F34 240500C8 */ li $a1, 200
|
||||
/* 066B38 80065F38 240600C8 */ li $a2, 200
|
||||
/* 066B3C 80065F3C 00003825 */ move $a3, $zero
|
||||
/* 066B40 80065F40 0C0198F7 */ jal camera_reset
|
||||
/* 066B44 80065F44 AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 066B48 80065F48 26100001 */ addiu $s0, $s0, 1
|
||||
/* 066B4C 80065F4C 1612FFF6 */ bne $s0, $s2, .L80065F28
|
||||
/* 066B50 80065F50 240B00B4 */ li $t3, 180
|
||||
/* 066B54 80065F54 3C018012 */ lui $at, %hi(gCutsceneCameraActive) # $at, 0x8012
|
||||
/* 066B58 80065F58 A0200D14 */ sb $zero, %lo(gCutsceneCameraActive)($at)
|
||||
/* 066B5C 80065F5C AE200000 */ sw $zero, ($s1)
|
||||
/* 066B60 80065F60 3C018012 */ lui $at, %hi(gModelMatrixStackPos) # $at, 0x8012
|
||||
/* 066B64 80065F64 AC200D1C */ sw $zero, %lo(gModelMatrixStackPos)($at)
|
||||
/* 066B68 80065F68 3C018012 */ lui $at, %hi(gCameraMatrixPos) # $at, 0x8012
|
||||
/* 066B6C 80065F6C AC200D20 */ sw $zero, %lo(gCameraMatrixPos)($at)
|
||||
/* 066B70 80065F70 3C018012 */ lui $at, %hi(gNumberOfViewports) # $at, 0x8012
|
||||
/* 066B74 80065F74 AC200CE0 */ sw $zero, %lo(gNumberOfViewports)($at)
|
||||
/* 066B78 80065F78 3C018012 */ lui $at, %hi(gSpriteAnimOff) # $at, 0x8012
|
||||
/* 066B7C 80065F7C AC200D0C */ sw $zero, %lo(gSpriteAnimOff)($at)
|
||||
/* 066B80 80065F80 3C018012 */ lui $at, %hi(D_80120D18) # $at, 0x8012
|
||||
/* 066B84 80065F84 AC200D18 */ sw $zero, %lo(D_80120D18)($at)
|
||||
/* 066B88 80065F88 3C04800E */ lui $a0, %hi(gAntiPiracyViewport) # $a0, 0x800e
|
||||
/* 066B8C 80065F8C 3C018012 */ lui $at, %hi(gAdjustViewportHeight) # $at, 0x8012
|
||||
/* 066B90 80065F90 2484D060 */ addiu $a0, %lo(gAntiPiracyViewport) # addiu $a0, $a0, -0x2fa0
|
||||
/* 066B94 80065F94 3C03A460 */ lui $v1, (0xA4600010 >> 16) # lui $v1, 0xa460
|
||||
/* 066B98 80065F98 A0200D15 */ sb $zero, %lo(gAdjustViewportHeight)($at)
|
||||
/* 066B9C 80065F9C 34630010 */ ori $v1, (0xA4600010 & 0xFFFF) # ori $v1, $v1, 0x10
|
||||
/* 066BA0 80065FA0 A0800000 */ sb $zero, ($a0)
|
||||
/* 066BA4 80065FA4 8C620000 */ lw $v0, ($v1)
|
||||
/* 066BA8 80065FA8 3C0EB000 */ lui $t6, %hi(D_B0000578) # $t6, 0xb000
|
||||
/* 066BAC 80065FAC 304C0003 */ andi $t4, $v0, 3
|
||||
/* 066BB0 80065FB0 11800006 */ beqz $t4, .L80065FCC
|
||||
/* 066BB4 80065FB4 3C108012 */ lui $s0, %hi(gPerspectiveMatrixF) # $s0, 0x8012
|
||||
.L80065FB8:
|
||||
/* 066BB8 80065FB8 8C620000 */ lw $v0, ($v1)
|
||||
/* 066BBC 80065FBC 00000000 */ nop
|
||||
/* 066BC0 80065FC0 304D0003 */ andi $t5, $v0, 3
|
||||
/* 066BC4 80065FC4 15A0FFFC */ bnez $t5, .L80065FB8
|
||||
/* 066BC8 80065FC8 00000000 */ nop
|
||||
.L80065FCC:
|
||||
/* 066BCC 80065FCC 8DCF0578 */ lw $t7, %lo(D_B0000578)($t6)
|
||||
/* 066BD0 80065FD0 34018965 */ li $at, 0x8965
|
||||
/* 066BD4 80065FD4 31F8FFFF */ andi $t8, $t7, 0xffff
|
||||
/* 066BD8 80065FD8 13010003 */ beq $t8, $at, .L80065FE8
|
||||
/* 066BDC 80065FDC 26100EE0 */ addiu $s0, %lo(gPerspectiveMatrixF) # addiu $s0, $s0, 0xee0
|
||||
/* 066BE0 80065FE0 24190001 */ li $t9, 1
|
||||
/* 066BE4 80065FE4 A0990000 */ sb $t9, ($a0)
|
||||
.L80065FE8:
|
||||
/* 066BE8 80065FE8 3C014120 */ li $at, 0x41200000 # 10.000000
|
||||
/* 066BEC 80065FEC 44812000 */ mtc1 $at, $f4
|
||||
/* 066BF0 80065FF0 3C01800E */ lui $at, %hi(D_800E709C) # $at, 0x800e
|
||||
/* 066BF4 80065FF4 C426709C */ lwc1 $f6, %lo(D_800E709C)($at)
|
||||
/* 066BF8 80065FF8 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 066BFC 80065FFC 44814000 */ mtc1 $at, $f8
|
||||
/* 066C00 80066000 3C058012 */ lui $a1, %hi(perspNorm) # $a1, 0x8012
|
||||
/* 066C04 80066004 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa
|
||||
/* 066C08 80066008 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab
|
||||
/* 066C0C 8006600C 24A50D6C */ addiu $a1, %lo(perspNorm) # addiu $a1, $a1, 0xd6c
|
||||
/* 066C10 80066010 02002025 */ move $a0, $s0
|
||||
/* 066C14 80066014 3C064270 */ lui $a2, 0x4270
|
||||
/* 066C18 80066018 E7A40010 */ swc1 $f4, 0x10($sp)
|
||||
/* 066C1C 8006601C E7A60014 */ swc1 $f6, 0x14($sp)
|
||||
/* 066C20 80066020 0C033248 */ jal guPerspectiveF
|
||||
/* 066C24 80066024 E7A80018 */ swc1 $f8, 0x18($sp)
|
||||
/* 066C28 80066028 3C058012 */ lui $a1, %hi(gProjectionMatrixS) # $a1, 0x8012
|
||||
/* 066C2C 8006602C 24A50FE0 */ addiu $a1, %lo(gProjectionMatrixS) # addiu $a1, $a1, 0xfe0
|
||||
/* 066C30 80066030 0C01BE1C */ jal f32_matrix_to_s16_matrix
|
||||
/* 066C34 80066034 02002025 */ move $a0, $s0
|
||||
/* 066C38 80066038 3C014270 */ li $at, 0x42700000 # 60.000000
|
||||
/* 066C3C 8006603C 44815000 */ mtc1 $at, $f10
|
||||
/* 066C40 80066040 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 066C44 80066044 3C018012 */ lui $at, %hi(gCurCamFOV) # $at, 0x8012
|
||||
/* 066C48 80066048 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 066C4C 8006604C 8FB1002C */ lw $s1, 0x2c($sp)
|
||||
/* 066C50 80066050 8FB20030 */ lw $s2, 0x30($sp)
|
||||
/* 066C54 80066054 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
/* 066C58 80066058 03E00008 */ jr $ra
|
||||
/* 066C5C 8006605C E42A0D10 */ swc1 $f10, %lo(gCurCamFOV)($at)
|
||||
@@ -1,223 +0,0 @@
|
||||
glabel func_800230D0
|
||||
/* 023CD0 800230D0 27BDFFA0 */ addiu $sp, $sp, -0x60
|
||||
/* 023CD4 800230D4 3C028012 */ lui $v0, %hi(gNumberOfCheckpoints) # $v0, 0x8012
|
||||
/* 023CD8 800230D8 8C42AED0 */ lw $v0, %lo(gNumberOfCheckpoints)($v0)
|
||||
/* 023CDC 800230DC AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 023CE0 800230E0 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 023CE4 800230E4 00808025 */ move $s0, $a0
|
||||
/* 023CE8 800230E8 00A08825 */ move $s1, $a1
|
||||
/* 023CEC 800230EC 14400032 */ bnez $v0, .L800231B8
|
||||
/* 023CF0 800230F0 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 023CF4 800230F4 3C078012 */ lui $a3, %hi(gObjectCount) # $a3, 0x8012
|
||||
/* 023CF8 800230F8 24E7AE5C */ addiu $a3, %lo(gObjectCount) # addiu $a3, $a3, -0x51a4
|
||||
/* 023CFC 800230FC 8CE40000 */ lw $a0, ($a3)
|
||||
/* 023D00 80023100 00004025 */ move $t0, $zero
|
||||
/* 023D04 80023104 1880002A */ blez $a0, .L800231B0
|
||||
/* 023D08 80023108 00001025 */ move $v0, $zero
|
||||
/* 023D0C 8002310C 3C058012 */ lui $a1, %hi(gObjPtrList) # $a1, 0x8012
|
||||
/* 023D10 80023110 24A5AE58 */ addiu $a1, %lo(gObjPtrList) # addiu $a1, $a1, -0x51a8
|
||||
/* 023D14 80023114 2406000B */ li $a2, 11
|
||||
.L80023118:
|
||||
/* 023D18 80023118 8CAE0000 */ lw $t6, ($a1)
|
||||
/* 023D1C 8002311C 00027880 */ sll $t7, $v0, 2
|
||||
/* 023D20 80023120 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* 023D24 80023124 8F030000 */ lw $v1, ($t8)
|
||||
/* 023D28 80023128 00000000 */ nop
|
||||
/* 023D2C 8002312C 84790006 */ lh $t9, 6($v1)
|
||||
/* 023D30 80023130 00000000 */ nop
|
||||
/* 023D34 80023134 33298000 */ andi $t1, $t9, 0x8000
|
||||
/* 023D38 80023138 15200018 */ bnez $t1, .L8002319C
|
||||
/* 023D3C 8002313C 00000000 */ nop
|
||||
/* 023D40 80023140 846A0048 */ lh $t2, 0x48($v1)
|
||||
/* 023D44 80023144 00000000 */ nop
|
||||
/* 023D48 80023148 14CA0014 */ bne $a2, $t2, .L8002319C
|
||||
/* 023D4C 8002314C 00000000 */ nop
|
||||
/* 023D50 80023150 8C6B0078 */ lw $t3, 0x78($v1)
|
||||
/* 023D54 80023154 00000000 */ nop
|
||||
/* 023D58 80023158 15600011 */ bnez $t3, .L800231A0
|
||||
/* 023D5C 8002315C 24420001 */ addiu $v0, $v0, 1
|
||||
/* 023D60 80023160 C464000C */ lwc1 $f4, 0xc($v1)
|
||||
/* 023D64 80023164 00000000 */ nop
|
||||
/* 023D68 80023168 E604000C */ swc1 $f4, 0xc($s0)
|
||||
/* 023D6C 8002316C C4660010 */ lwc1 $f6, 0x10($v1)
|
||||
/* 023D70 80023170 00000000 */ nop
|
||||
/* 023D74 80023174 E6060010 */ swc1 $f6, 0x10($s0)
|
||||
/* 023D78 80023178 C4680014 */ lwc1 $f8, 0x14($v1)
|
||||
/* 023D7C 8002317C 00000000 */ nop
|
||||
/* 023D80 80023180 E6080014 */ swc1 $f8, 0x14($s0)
|
||||
/* 023D84 80023184 846C002E */ lh $t4, 0x2e($v1)
|
||||
/* 023D88 80023188 00000000 */ nop
|
||||
/* 023D8C 8002318C A60C002E */ sh $t4, 0x2e($s0)
|
||||
/* 023D90 80023190 8CE40000 */ lw $a0, ($a3)
|
||||
/* 023D94 80023194 00000000 */ nop
|
||||
/* 023D98 80023198 00801025 */ move $v0, $a0
|
||||
.L8002319C:
|
||||
/* 023D9C 8002319C 24420001 */ addiu $v0, $v0, 1
|
||||
.L800231A0:
|
||||
/* 023DA0 800231A0 0044082A */ slt $at, $v0, $a0
|
||||
/* 023DA4 800231A4 1420FFDC */ bnez $at, .L80023118
|
||||
/* 023DA8 800231A8 00000000 */ nop
|
||||
/* 023DAC 800231AC AFA3002C */ sw $v1, 0x2c($sp)
|
||||
.L800231B0:
|
||||
/* 023DB0 800231B0 1000001E */ b .L8002322C
|
||||
/* 023DB4 800231B4 8604002E */ lh $a0, 0x2e($s0)
|
||||
.L800231B8:
|
||||
/* 023DB8 800231B8 00026900 */ sll $t5, $v0, 4
|
||||
/* 023DBC 800231BC 3C0E8012 */ lui $t6, %hi(gTrackCheckpoints) # $t6, 0x8012
|
||||
/* 023DC0 800231C0 8DCEAECC */ lw $t6, %lo(gTrackCheckpoints)($t6)
|
||||
/* 023DC4 800231C4 01A26823 */ subu $t5, $t5, $v0
|
||||
/* 023DC8 800231C8 000D6880 */ sll $t5, $t5, 2
|
||||
/* 023DCC 800231CC 3C01420C */ li $at, 0x420C0000 # 35.000000
|
||||
/* 023DD0 800231D0 01AE4021 */ addu $t0, $t5, $t6
|
||||
/* 023DD4 800231D4 44810000 */ mtc1 $at, $f0
|
||||
/* 023DD8 800231D8 C510FFCC */ lwc1 $f16, -0x34($t0)
|
||||
/* 023DDC 800231DC C50AFFD4 */ lwc1 $f10, -0x2c($t0)
|
||||
/* 023DE0 800231E0 46008482 */ mul.s $f18, $f16, $f0
|
||||
/* 023DE4 800231E4 2508FFC4 */ addiu $t0, $t0, -0x3c
|
||||
/* 023DE8 800231E8 46125101 */ sub.s $f4, $f10, $f18
|
||||
/* 023DEC 800231EC E604000C */ swc1 $f4, 0xc($s0)
|
||||
/* 023DF0 800231F0 C5060014 */ lwc1 $f6, 0x14($t0)
|
||||
/* 023DF4 800231F4 C60C000C */ lwc1 $f12, 0xc($s0)
|
||||
/* 023DF8 800231F8 E6060010 */ swc1 $f6, 0x10($s0)
|
||||
/* 023DFC 800231FC C5100000 */ lwc1 $f16, ($t0)
|
||||
/* 023E00 80023200 C5080018 */ lwc1 $f8, 0x18($t0)
|
||||
/* 023E04 80023204 46008282 */ mul.s $f10, $f16, $f0
|
||||
/* 023E08 80023208 C60E0010 */ lwc1 $f14, 0x10($s0)
|
||||
/* 023E0C 8002320C 460A4480 */ add.s $f18, $f8, $f10
|
||||
/* 023E10 80023210 E6120014 */ swc1 $f18, 0x14($s0)
|
||||
/* 023E14 80023214 8E060014 */ lw $a2, 0x14($s0)
|
||||
/* 023E18 80023218 0C00A7C6 */ jal get_level_segment_index_from_position
|
||||
/* 023E1C 8002321C AFA8005C */ sw $t0, 0x5c($sp)
|
||||
/* 023E20 80023220 8FA8005C */ lw $t0, 0x5c($sp)
|
||||
/* 023E24 80023224 A602002E */ sh $v0, 0x2e($s0)
|
||||
/* 023E28 80023228 8604002E */ lh $a0, 0x2e($s0)
|
||||
.L8002322C:
|
||||
/* 023E2C 8002322C 8E05000C */ lw $a1, 0xc($s0)
|
||||
/* 023E30 80023230 8E060014 */ lw $a2, 0x14($s0)
|
||||
/* 023E34 80023234 AFA8005C */ sw $t0, 0x5c($sp)
|
||||
/* 023E38 80023238 0C00AEAC */ jal func_8002BAB0
|
||||
/* 023E3C 8002323C 27A70030 */ addiu $a3, $sp, 0x30
|
||||
/* 023E40 80023240 8FA3002C */ lw $v1, 0x2c($sp)
|
||||
/* 023E44 80023244 8FA8005C */ lw $t0, 0x5c($sp)
|
||||
/* 023E48 80023248 10400005 */ beqz $v0, .L80023260
|
||||
/* 023E4C 8002324C 00027880 */ sll $t7, $v0, 2
|
||||
/* 023E50 80023250 03AFC021 */ addu $t8, $sp, $t7
|
||||
/* 023E54 80023254 C704002C */ lwc1 $f4, 0x2c($t8)
|
||||
/* 023E58 80023258 00000000 */ nop
|
||||
/* 023E5C 8002325C E6040010 */ swc1 $f4, 0x10($s0)
|
||||
.L80023260:
|
||||
/* 023E60 80023260 C606000C */ lwc1 $f6, 0xc($s0)
|
||||
/* 023E64 80023264 00000000 */ nop
|
||||
/* 023E68 80023268 E626005C */ swc1 $f6, 0x5c($s1)
|
||||
/* 023E6C 8002326C C6100010 */ lwc1 $f16, 0x10($s0)
|
||||
/* 023E70 80023270 00000000 */ nop
|
||||
/* 023E74 80023274 E6300060 */ swc1 $f16, 0x60($s1)
|
||||
/* 023E78 80023278 C6080014 */ lwc1 $f8, 0x14($s0)
|
||||
/* 023E7C 8002327C 11000008 */ beqz $t0, .L800232A0
|
||||
/* 023E80 80023280 E6280064 */ swc1 $f8, 0x64($s1)
|
||||
/* 023E84 80023284 C50C0000 */ lwc1 $f12, ($t0)
|
||||
/* 023E88 80023288 C50E0008 */ lwc1 $f14, 8($t0)
|
||||
/* 023E8C 8002328C 0C01C1D4 */ jal arctan2_f
|
||||
/* 023E90 80023290 AFA8005C */ sw $t0, 0x5c($sp)
|
||||
/* 023E94 80023294 8FA8005C */ lw $t0, 0x5c($sp)
|
||||
/* 023E98 80023298 10000004 */ b .L800232AC
|
||||
/* 023E9C 8002329C A62201A0 */ sh $v0, 0x1a0($s1)
|
||||
.L800232A0:
|
||||
/* 023EA0 800232A0 84790000 */ lh $t9, ($v1)
|
||||
/* 023EA4 800232A4 00000000 */ nop
|
||||
/* 023EA8 800232A8 A63901A0 */ sh $t9, 0x1a0($s1)
|
||||
.L800232AC:
|
||||
/* 023EAC 800232AC A2200192 */ sb $zero, 0x192($s1)
|
||||
/* 023EB0 800232B0 3C0A8012 */ lui $t2, %hi(gNumberOfCheckpoints) # $t2, 0x8012
|
||||
/* 023EB4 800232B4 8D4AAED0 */ lw $t2, %lo(gNumberOfCheckpoints)($t2)
|
||||
/* 023EB8 800232B8 82290193 */ lb $t1, 0x193($s1)
|
||||
/* 023EBC 800232BC 862C01A0 */ lh $t4, 0x1a0($s1)
|
||||
/* 023EC0 800232C0 012A0019 */ multu $t1, $t2
|
||||
/* 023EC4 800232C4 3C014170 */ li $at, 0x41700000 # 15.000000
|
||||
/* 023EC8 800232C8 44810000 */ mtc1 $at, $f0
|
||||
/* 023ECC 800232CC 2401FFFF */ li $at, -1
|
||||
/* 023ED0 800232D0 00005812 */ mflo $t3
|
||||
/* 023ED4 800232D4 A62B0190 */ sh $t3, 0x190($s1)
|
||||
/* 023ED8 800232D8 C60A000C */ lwc1 $f10, 0xc($s0)
|
||||
/* 023EDC 800232DC A60C0000 */ sh $t4, ($s0)
|
||||
/* 023EE0 800232E0 E62A00D8 */ swc1 $f10, 0xd8($s1)
|
||||
/* 023EE4 800232E4 C6120010 */ lwc1 $f18, 0x10($s0)
|
||||
/* 023EE8 800232E8 00000000 */ nop
|
||||
/* 023EEC 800232EC 46009100 */ add.s $f4, $f18, $f0
|
||||
/* 023EF0 800232F0 E62400DC */ swc1 $f4, 0xdc($s1)
|
||||
/* 023EF4 800232F4 C6060014 */ lwc1 $f6, 0x14($s0)
|
||||
/* 023EF8 800232F8 00000000 */ nop
|
||||
/* 023EFC 800232FC E62600E0 */ swc1 $f6, 0xe0($s1)
|
||||
/* 023F00 80023300 C610000C */ lwc1 $f16, 0xc($s0)
|
||||
/* 023F04 80023304 00000000 */ nop
|
||||
/* 023F08 80023308 E63000E4 */ swc1 $f16, 0xe4($s1)
|
||||
/* 023F0C 8002330C C6080010 */ lwc1 $f8, 0x10($s0)
|
||||
/* 023F10 80023310 00000000 */ nop
|
||||
/* 023F14 80023314 46004280 */ add.s $f10, $f8, $f0
|
||||
/* 023F18 80023318 E62A00E8 */ swc1 $f10, 0xe8($s1)
|
||||
/* 023F1C 8002331C C6120014 */ lwc1 $f18, 0x14($s0)
|
||||
/* 023F20 80023320 00000000 */ nop
|
||||
/* 023F24 80023324 E63200EC */ swc1 $f18, 0xec($s1)
|
||||
/* 023F28 80023328 C604000C */ lwc1 $f4, 0xc($s0)
|
||||
/* 023F2C 8002332C 00000000 */ nop
|
||||
/* 023F30 80023330 E62400F0 */ swc1 $f4, 0xf0($s1)
|
||||
/* 023F34 80023334 C6060010 */ lwc1 $f6, 0x10($s0)
|
||||
/* 023F38 80023338 00000000 */ nop
|
||||
/* 023F3C 8002333C 46003400 */ add.s $f16, $f6, $f0
|
||||
/* 023F40 80023340 E63000F4 */ swc1 $f16, 0xf4($s1)
|
||||
/* 023F44 80023344 C6080014 */ lwc1 $f8, 0x14($s0)
|
||||
/* 023F48 80023348 00000000 */ nop
|
||||
/* 023F4C 8002334C E62800F8 */ swc1 $f8, 0xf8($s1)
|
||||
/* 023F50 80023350 C60A000C */ lwc1 $f10, 0xc($s0)
|
||||
/* 023F54 80023354 00000000 */ nop
|
||||
/* 023F58 80023358 E62A00FC */ swc1 $f10, 0xfc($s1)
|
||||
/* 023F5C 8002335C C6120010 */ lwc1 $f18, 0x10($s0)
|
||||
/* 023F60 80023360 00000000 */ nop
|
||||
/* 023F64 80023364 46009100 */ add.s $f4, $f18, $f0
|
||||
/* 023F68 80023368 44800000 */ mtc1 $zero, $f0
|
||||
/* 023F6C 8002336C E6240100 */ swc1 $f4, 0x100($s1)
|
||||
/* 023F70 80023370 C6060014 */ lwc1 $f6, 0x14($s0)
|
||||
/* 023F74 80023374 00000000 */ nop
|
||||
/* 023F78 80023378 E6260104 */ swc1 $f6, 0x104($s1)
|
||||
/* 023F7C 8002337C 8E0D004C */ lw $t5, 0x4c($s0)
|
||||
/* 023F80 80023380 C610000C */ lwc1 $f16, 0xc($s0)
|
||||
/* 023F84 80023384 00000000 */ nop
|
||||
/* 023F88 80023388 E5B00004 */ swc1 $f16, 4($t5)
|
||||
/* 023F8C 8002338C 8E0E004C */ lw $t6, 0x4c($s0)
|
||||
/* 023F90 80023390 C6080010 */ lwc1 $f8, 0x10($s0)
|
||||
/* 023F94 80023394 00000000 */ nop
|
||||
/* 023F98 80023398 E5C80008 */ swc1 $f8, 8($t6)
|
||||
/* 023F9C 8002339C 8E0F004C */ lw $t7, 0x4c($s0)
|
||||
/* 023FA0 800233A0 C60A0014 */ lwc1 $f10, 0x14($s0)
|
||||
/* 023FA4 800233A4 00000000 */ nop
|
||||
/* 023FA8 800233A8 E5EA000C */ swc1 $f10, 0xc($t7)
|
||||
/* 023FAC 800233AC E620002C */ swc1 $f0, 0x2c($s1)
|
||||
/* 023FB0 800233B0 E6200030 */ swc1 $f0, 0x30($s1)
|
||||
/* 023FB4 800233B4 E600001C */ swc1 $f0, 0x1c($s0)
|
||||
/* 023FB8 800233B8 E6000024 */ swc1 $f0, 0x24($s0)
|
||||
/* 023FBC 800233BC 823801D7 */ lb $t8, 0x1d7($s1)
|
||||
/* 023FC0 800233C0 86240000 */ lh $a0, ($s1)
|
||||
/* 023FC4 800233C4 A23801D6 */ sb $t8, 0x1d6($s1)
|
||||
/* 023FC8 800233C8 1081000F */ beq $a0, $at, .L80023408
|
||||
/* 023FCC 800233CC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 023FD0 800233D0 0C01997A */ jal set_active_camera
|
||||
/* 023FD4 800233D4 AFA8005C */ sw $t0, 0x5c($sp)
|
||||
/* 023FD8 800233D8 0C01A73F */ jal get_active_camera_segment_no_cutscenes
|
||||
/* 023FDC 800233DC 00000000 */ nop
|
||||
/* 023FE0 800233E0 C612000C */ lwc1 $f18, 0xc($s0)
|
||||
/* 023FE4 800233E4 8FA8005C */ lw $t0, 0x5c($sp)
|
||||
/* 023FE8 800233E8 E452000C */ swc1 $f18, 0xc($v0)
|
||||
/* 023FEC 800233EC C6040010 */ lwc1 $f4, 0x10($s0)
|
||||
/* 023FF0 800233F0 00000000 */ nop
|
||||
/* 023FF4 800233F4 E4440010 */ swc1 $f4, 0x10($v0)
|
||||
/* 023FF8 800233F8 C6060014 */ lwc1 $f6, 0x14($s0)
|
||||
/* 023FFC 800233FC 00000000 */ nop
|
||||
/* 024000 80023400 E4460014 */ swc1 $f6, 0x14($v0)
|
||||
/* 024004 80023404 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
.L80023408:
|
||||
/* 024008 80023408 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 02400C 8002340C 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 024010 80023410 27BD0060 */ addiu $sp, $sp, 0x60
|
||||
/* 024014 80023414 03E00008 */ jr $ra
|
||||
/* 024018 80023418 01001025 */ move $v0, $t0
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
glabel func_8007BF34
|
||||
/* 07CB34 8007BF34 3C078012 */ lui $a3, %hi(gCurrentRenderFlags) # $a3, 0x8012
|
||||
/* 07CB38 8007BF38 24E76374 */ addiu $a3, %lo(gCurrentRenderFlags) # addiu $a3, $a3, 0x6374
|
||||
/* 07CB3C 8007BF3C 8CEE0000 */ lw $t6, ($a3)
|
||||
/* 07CB40 8007BF40 3C088012 */ lui $t0, %hi(gForceFlags) # $t0, 0x8012
|
||||
/* 07CB44 8007BF44 14AE0005 */ bne $a1, $t6, .L8007BF5C
|
||||
/* 07CB48 8007BF48 25086382 */ addiu $t0, %lo(gForceFlags) # addiu $t0, $t0, 0x6382
|
||||
/* 07CB4C 8007BF4C 850F0000 */ lh $t7, ($t0)
|
||||
/* 07CB50 8007BF50 00000000 */ nop
|
||||
/* 07CB54 8007BF54 11E00073 */ beqz $t7, .L8007C124
|
||||
/* 07CB58 8007BF58 00000000 */ nop
|
||||
.L8007BF5C:
|
||||
/* 07CB5C 8007BF5C 8C820000 */ lw $v0, ($a0)
|
||||
/* 07CB60 8007BF60 3C19E700 */ lui $t9, 0xe700
|
||||
/* 07CB64 8007BF64 24580008 */ addiu $t8, $v0, 8
|
||||
/* 07CB68 8007BF68 AC980000 */ sw $t8, ($a0)
|
||||
/* 07CB6C 8007BF6C AC400004 */ sw $zero, 4($v0)
|
||||
/* 07CB70 8007BF70 AC590000 */ sw $t9, ($v0)
|
||||
/* 07CB74 8007BF74 8CE30000 */ lw $v1, ($a3)
|
||||
/* 07CB78 8007BF78 3C088012 */ lui $t0, %hi(gForceFlags) # $t0, 0x8012
|
||||
/* 07CB7C 8007BF7C 00034900 */ sll $t1, $v1, 4
|
||||
/* 07CB80 8007BF80 05200005 */ bltz $t1, .L8007BF98
|
||||
/* 07CB84 8007BF84 25086382 */ addiu $t0, %lo(gForceFlags) # addiu $t0, $t0, 0x6382
|
||||
/* 07CB88 8007BF88 850A0000 */ lh $t2, ($t0)
|
||||
/* 07CB8C 8007BF8C 00000000 */ nop
|
||||
/* 07CB90 8007BF90 1140000A */ beqz $t2, .L8007BFBC
|
||||
/* 07CB94 8007BF94 00000000 */ nop
|
||||
.L8007BF98:
|
||||
/* 07CB98 8007BF98 8C820000 */ lw $v0, ($a0)
|
||||
/* 07CB9C 8007BF9C 3C0CB700 */ lui $t4, 0xb700
|
||||
/* 07CBA0 8007BFA0 244B0008 */ addiu $t3, $v0, 8
|
||||
/* 07CBA4 8007BFA4 AC8B0000 */ sw $t3, ($a0)
|
||||
/* 07CBA8 8007BFA8 3C0D0001 */ lui $t5, 1
|
||||
/* 07CBAC 8007BFAC AC4D0004 */ sw $t5, 4($v0)
|
||||
/* 07CBB0 8007BFB0 AC4C0000 */ sw $t4, ($v0)
|
||||
/* 07CBB4 8007BFB4 8CE30000 */ lw $v1, ($a3)
|
||||
/* 07CBB8 8007BFB8 00000000 */ nop
|
||||
.L8007BFBC:
|
||||
/* 07CBBC 8007BFBC 3C0F8012 */ lui $t7, %hi(gBlockedRenderFlags) # $t7, 0x8012
|
||||
/* 07CBC0 8007BFC0 8DEF6378 */ lw $t7, %lo(gBlockedRenderFlags)($t7)
|
||||
/* 07CBC4 8007BFC4 3C01F7FF */ lui $at, (0xF7FFFFFF >> 16) # lui $at, 0xf7ff
|
||||
/* 07CBC8 8007BFC8 3421FFFF */ ori $at, (0xF7FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
||||
/* 07CBCC 8007BFCC 00A17024 */ and $t6, $a1, $at
|
||||
/* 07CBD0 8007BFD0 01E0C027 */ not $t8, $t7
|
||||
/* 07CBD4 8007BFD4 01D82824 */ and $a1, $t6, $t8
|
||||
/* 07CBD8 8007BFD8 30A20002 */ andi $v0, $a1, 2
|
||||
/* 07CBDC 8007BFDC 30790002 */ andi $t9, $v1, 2
|
||||
/* 07CBE0 8007BFE0 17220005 */ bne $t9, $v0, .L8007BFF8
|
||||
/* 07CBE4 8007BFE4 2401F7FF */ li $at, -2049
|
||||
/* 07CBE8 8007BFE8 85090000 */ lh $t1, ($t0)
|
||||
/* 07CBEC 8007BFEC 00000000 */ nop
|
||||
/* 07CBF0 8007BFF0 11200011 */ beqz $t1, .L8007C038
|
||||
/* 07CBF4 8007BFF4 00000000 */ nop
|
||||
.L8007BFF8:
|
||||
/* 07CBF8 8007BFF8 10400009 */ beqz $v0, .L8007C020
|
||||
/* 07CBFC 8007BFFC 3C0EB600 */ lui $t6, 0xb600
|
||||
/* 07CC00 8007C000 8C820000 */ lw $v0, ($a0)
|
||||
/* 07CC04 8007C004 3C0BB700 */ lui $t3, 0xb700
|
||||
/* 07CC08 8007C008 244A0008 */ addiu $t2, $v0, 8
|
||||
/* 07CC0C 8007C00C AC8A0000 */ sw $t2, ($a0)
|
||||
/* 07CC10 8007C010 240C0001 */ li $t4, 1
|
||||
/* 07CC14 8007C014 AC4C0004 */ sw $t4, 4($v0)
|
||||
/* 07CC18 8007C018 10000007 */ b .L8007C038
|
||||
/* 07CC1C 8007C01C AC4B0000 */ sw $t3, ($v0)
|
||||
.L8007C020:
|
||||
/* 07CC20 8007C020 8C820000 */ lw $v0, ($a0)
|
||||
/* 07CC24 8007C024 240F0001 */ li $t7, 1
|
||||
/* 07CC28 8007C028 244D0008 */ addiu $t5, $v0, 8
|
||||
/* 07CC2C 8007C02C AC8D0000 */ sw $t5, ($a0)
|
||||
/* 07CC30 8007C030 AC4F0004 */ sw $t7, 4($v0)
|
||||
/* 07CC34 8007C034 AC4E0000 */ sw $t6, ($v0)
|
||||
.L8007C038:
|
||||
/* 07CC38 8007C038 A5000000 */ sh $zero, ($t0)
|
||||
/* 07CC3C 8007C03C ACE50000 */ sw $a1, ($a3)
|
||||
/* 07CC40 8007C040 3C19800E */ lui $t9, %hi(gSpriteOpaque) # $t9, 0x800e
|
||||
/* 07CC44 8007C044 8F39E7C4 */ lw $t9, %lo(gSpriteOpaque)($t9)
|
||||
/* 07CC48 8007C048 00A1C024 */ and $t8, $a1, $at
|
||||
/* 07CC4C 8007C04C 17200023 */ bnez $t9, .L8007C0DC
|
||||
/* 07CC50 8007C050 03002825 */ move $a1, $t8
|
||||
/* 07CC54 8007C054 8CE90000 */ lw $t1, ($a3)
|
||||
/* 07CC58 8007C058 3C0B0702 */ lui $t3, (0x07020010 >> 16) # lui $t3, 0x702
|
||||
/* 07CC5C 8007C05C 312A0200 */ andi $t2, $t1, 0x200
|
||||
/* 07CC60 8007C060 11400011 */ beqz $t2, .L8007C0A8
|
||||
/* 07CC64 8007C064 356B0010 */ ori $t3, (0x07020010 & 0xFFFF) # ori $t3, $t3, 0x10
|
||||
/* 07CC68 8007C068 8C820000 */ lw $v0, ($a0)
|
||||
/* 07CC6C 8007C06C 00186843 */ sra $t5, $t8, 1
|
||||
/* 07CC70 8007C070 31AE0001 */ andi $t6, $t5, 1
|
||||
/* 07CC74 8007C074 000E7900 */ sll $t7, $t6, 4
|
||||
/* 07CC78 8007C078 3C018000 */ lui $at, 0x8000
|
||||
/* 07CC7C 8007C07C 3C19800E */ lui $t9, %hi(dRenderSettingsSpriteCld) # $t9, 0x800e
|
||||
/* 07CC80 8007C080 2739E848 */ addiu $t9, %lo(dRenderSettingsSpriteCld) # addiu $t9, $t9, -0x17b8
|
||||
/* 07CC84 8007C084 01E1C021 */ addu $t8, $t7, $at
|
||||
/* 07CC88 8007C088 3C0C0702 */ lui $t4, (0x07020010 >> 16) # lui $t4, 0x702
|
||||
/* 07CC8C 8007C08C 244B0008 */ addiu $t3, $v0, 8
|
||||
/* 07CC90 8007C090 AC8B0000 */ sw $t3, ($a0)
|
||||
/* 07CC94 8007C094 358C0010 */ ori $t4, (0x07020010 & 0xFFFF) # ori $t4, $t4, 0x10
|
||||
/* 07CC98 8007C098 03194821 */ addu $t1, $t8, $t9
|
||||
/* 07CC9C 8007C09C AC490004 */ sw $t1, 4($v0)
|
||||
/* 07CCA0 8007C0A0 1000001B */ b .L8007C110
|
||||
/* 07CCA4 8007C0A4 AC4C0000 */ sw $t4, ($v0)
|
||||
.L8007C0A8:
|
||||
/* 07CCA8 8007C0A8 8C820000 */ lw $v0, ($a0)
|
||||
/* 07CCAC 8007C0AC 24ACFFF0 */ addiu $t4, $a1, -0x10
|
||||
/* 07CCB0 8007C0B0 000C6900 */ sll $t5, $t4, 4
|
||||
/* 07CCB4 8007C0B4 3C018000 */ lui $at, 0x8000
|
||||
/* 07CCB8 8007C0B8 3C0F800E */ lui $t7, %hi(dRenderSettingsSpriteXlu) # $t7, 0x800e
|
||||
/* 07CCBC 8007C0BC 25EFE868 */ addiu $t7, %lo(dRenderSettingsSpriteXlu) # addiu $t7, $t7, -0x1798
|
||||
/* 07CCC0 8007C0C0 01A17021 */ addu $t6, $t5, $at
|
||||
/* 07CCC4 8007C0C4 244A0008 */ addiu $t2, $v0, 8
|
||||
/* 07CCC8 8007C0C8 AC8A0000 */ sw $t2, ($a0)
|
||||
/* 07CCCC 8007C0CC 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* 07CCD0 8007C0D0 AC580004 */ sw $t8, 4($v0)
|
||||
/* 07CCD4 8007C0D4 1000000E */ b .L8007C110
|
||||
/* 07CCD8 8007C0D8 AC4B0000 */ sw $t3, ($v0)
|
||||
.L8007C0DC:
|
||||
/* 07CCDC 8007C0DC 8C820000 */ lw $v0, ($a0)
|
||||
/* 07CCE0 8007C0E0 00055100 */ sll $t2, $a1, 4
|
||||
/* 07CCE4 8007C0E4 3C018000 */ lui $at, 0x8000
|
||||
/* 07CCE8 8007C0E8 3C0C800E */ lui $t4, %hi(dRenderSettingsCommon) # $t4, 0x800e
|
||||
/* 07CCEC 8007C0EC 24590008 */ addiu $t9, $v0, 8
|
||||
/* 07CCF0 8007C0F0 AC990000 */ sw $t9, ($a0)
|
||||
/* 07CCF4 8007C0F4 258CE8E8 */ addiu $t4, %lo(dRenderSettingsCommon) # addiu $t4, $t4, -0x1718
|
||||
/* 07CCF8 8007C0F8 01415821 */ addu $t3, $t2, $at
|
||||
/* 07CCFC 8007C0FC 3C090702 */ lui $t1, (0x07020010 >> 16) # lui $t1, 0x702
|
||||
/* 07CD00 8007C100 35290010 */ ori $t1, (0x07020010 & 0xFFFF) # ori $t1, $t1, 0x10
|
||||
/* 07CD04 8007C104 016C6821 */ addu $t5, $t3, $t4
|
||||
/* 07CD08 8007C108 AC4D0004 */ sw $t5, 4($v0)
|
||||
/* 07CD0C 8007C10C AC490000 */ sw $t1, ($v0)
|
||||
.L8007C110:
|
||||
/* 07CD10 8007C110 3C018012 */ lui $at, %hi(gCurrentTextureHeader) # $at, 0x8012
|
||||
/* 07CD14 8007C114 AC20637C */ sw $zero, %lo(gCurrentTextureHeader)($at)
|
||||
/* 07CD18 8007C118 3C018012 */ lui $at, %hi(gUsingTexture) # $at, 0x8012
|
||||
/* 07CD1C 8007C11C 240E0001 */ li $t6, 1
|
||||
/* 07CD20 8007C120 A42E6380 */ sh $t6, %lo(gUsingTexture)($at)
|
||||
.L8007C124:
|
||||
/* 07CD24 8007C124 03E00008 */ jr $ra
|
||||
/* 07CD28 8007C128 00000000 */ nop
|
||||
|
||||
@@ -1,352 +0,0 @@
|
||||
glabel func_800278E8
|
||||
/* 0284E8 800278E8 27BDFF90 */ addiu $sp, $sp, -0x70
|
||||
/* 0284EC 800278EC AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0284F0 800278F0 AFA40070 */ sw $a0, 0x70($sp)
|
||||
/* 0284F4 800278F4 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 0284F8 800278F8 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 0284FC 800278FC 0C006E9D */ jal get_racer_objects
|
||||
/* 028500 80027900 27A40038 */ addiu $a0, $sp, 0x38
|
||||
/* 028504 80027904 8FAE0038 */ lw $t6, 0x38($sp)
|
||||
/* 028508 80027908 00001825 */ move $v1, $zero
|
||||
/* 02850C 8002790C 19C00031 */ blez $t6, .L800279D4
|
||||
/* 028510 80027910 00003025 */ move $a2, $zero
|
||||
/* 028514 80027914 00408025 */ move $s0, $v0
|
||||
.L80027918:
|
||||
/* 028518 80027918 8E020000 */ lw $v0, ($s0)
|
||||
/* 02851C 8002791C 00000000 */ nop
|
||||
/* 028520 80027920 10400028 */ beqz $v0, .L800279C4
|
||||
/* 028524 80027924 8FAE0038 */ lw $t6, 0x38($sp)
|
||||
/* 028528 80027928 8C510064 */ lw $s1, 0x64($v0)
|
||||
/* 02852C 8002792C 27A50030 */ addiu $a1, $sp, 0x30
|
||||
/* 028530 80027930 822F01FD */ lb $t7, 0x1fd($s1)
|
||||
/* 028534 80027934 00000000 */ nop
|
||||
/* 028538 80027938 AFAF0030 */ sw $t7, 0x30($sp)
|
||||
/* 02853C 8002793C 8E040000 */ lw $a0, ($s0)
|
||||
/* 028540 80027940 AFA60034 */ sw $a2, 0x34($sp)
|
||||
/* 028544 80027944 0C006F75 */ jal spectate_nearest
|
||||
/* 028548 80027948 AFA30040 */ sw $v1, 0x40($sp)
|
||||
/* 02854C 8002794C 8FB80030 */ lw $t8, 0x30($sp)
|
||||
/* 028550 80027950 823901D8 */ lb $t9, 0x1d8($s1)
|
||||
/* 028554 80027954 8FA30040 */ lw $v1, 0x40($sp)
|
||||
/* 028558 80027958 8FA60034 */ lw $a2, 0x34($sp)
|
||||
/* 02855C 8002795C 13200009 */ beqz $t9, .L80027984
|
||||
/* 028560 80027960 A23801FD */ sb $t8, 0x1fd($s1)
|
||||
/* 028564 80027964 862801AC */ lh $t0, 0x1ac($s1)
|
||||
/* 028568 80027968 24010001 */ li $at, 1
|
||||
/* 02856C 8002796C 15010015 */ bne $t0, $at, .L800279C4
|
||||
/* 028570 80027970 8FAE0038 */ lw $t6, 0x38($sp)
|
||||
/* 028574 80027974 AFB1003C */ sw $s1, 0x3c($sp)
|
||||
/* 028578 80027978 8E090000 */ lw $t1, ($s0)
|
||||
/* 02857C 8002797C 10000010 */ b .L800279C0
|
||||
/* 028580 80027980 AFA90048 */ sw $t1, 0x48($sp)
|
||||
.L80027984:
|
||||
/* 028584 80027984 14600005 */ bnez $v1, .L8002799C
|
||||
/* 028588 80027988 00000000 */ nop
|
||||
/* 02858C 8002798C 8E0A0000 */ lw $t2, ($s0)
|
||||
/* 028590 80027990 02201825 */ move $v1, $s1
|
||||
/* 028594 80027994 1000000A */ b .L800279C0
|
||||
/* 028598 80027998 AFAA004C */ sw $t2, 0x4c($sp)
|
||||
.L8002799C:
|
||||
/* 02859C 8002799C 862B01AE */ lh $t3, 0x1ae($s1)
|
||||
/* 0285A0 800279A0 846C01AE */ lh $t4, 0x1ae($v1)
|
||||
/* 0285A4 800279A4 00000000 */ nop
|
||||
/* 0285A8 800279A8 016C082A */ slt $at, $t3, $t4
|
||||
/* 0285AC 800279AC 10200005 */ beqz $at, .L800279C4
|
||||
/* 0285B0 800279B0 8FAE0038 */ lw $t6, 0x38($sp)
|
||||
/* 0285B4 800279B4 8E0D0000 */ lw $t5, ($s0)
|
||||
/* 0285B8 800279B8 02201825 */ move $v1, $s1
|
||||
/* 0285BC 800279BC AFAD004C */ sw $t5, 0x4c($sp)
|
||||
.L800279C0:
|
||||
/* 0285C0 800279C0 8FAE0038 */ lw $t6, 0x38($sp)
|
||||
.L800279C4:
|
||||
/* 0285C4 800279C4 24C60001 */ addiu $a2, $a2, 1
|
||||
/* 0285C8 800279C8 00CE082A */ slt $at, $a2, $t6
|
||||
/* 0285CC 800279CC 1420FFD2 */ bnez $at, .L80027918
|
||||
/* 0285D0 800279D0 26100004 */ addiu $s0, $s0, 4
|
||||
.L800279D4:
|
||||
/* 0285D4 800279D4 10600005 */ beqz $v1, .L800279EC
|
||||
/* 0285D8 800279D8 8FB1003C */ lw $s1, 0x3c($sp)
|
||||
/* 0285DC 800279DC 8FA5004C */ lw $a1, 0x4c($sp)
|
||||
/* 0285E0 800279E0 10000004 */ b .L800279F4
|
||||
/* 0285E4 800279E4 00608825 */ move $s1, $v1
|
||||
/* 0285E8 800279E8 8FB1003C */ lw $s1, 0x3c($sp)
|
||||
.L800279EC:
|
||||
/* 0285EC 800279EC 8FA50048 */ lw $a1, 0x48($sp)
|
||||
/* 0285F0 800279F0 00000000 */ nop
|
||||
.L800279F4:
|
||||
/* 0285F4 800279F4 822401FD */ lb $a0, 0x1fd($s1)
|
||||
/* 0285F8 800279F8 0C006F65 */ jal spectate_object
|
||||
/* 0285FC 800279FC AFA50054 */ sw $a1, 0x54($sp)
|
||||
/* 028600 80027A00 3C0F8012 */ lui $t7, %hi(D_8011B104) # $t7, 0x8012
|
||||
/* 028604 80027A04 8DEFB104 */ lw $t7, %lo(D_8011B104)($t7)
|
||||
/* 028608 80027A08 823801FD */ lb $t8, 0x1fd($s1)
|
||||
/* 02860C 80027A0C 8FA50054 */ lw $a1, 0x54($sp)
|
||||
/* 028610 80027A10 11F80005 */ beq $t7, $t8, .L80027A28
|
||||
/* 028614 80027A14 00408025 */ move $s0, $v0
|
||||
/* 028618 80027A18 3C078012 */ lui $a3, %hi(D_8011B108) # $a3, 0x8012
|
||||
/* 02861C 80027A1C 24E7B108 */ addiu $a3, %lo(D_8011B108) # addiu $a3, $a3, -0x4ef8
|
||||
/* 028620 80027A20 1000000E */ b .L80027A5C
|
||||
/* 028624 80027A24 ACE00000 */ sw $zero, ($a3)
|
||||
.L80027A28:
|
||||
/* 028628 80027A28 3C038012 */ lui $v1, %hi(D_8011B100) # $v1, 0x8012
|
||||
/* 02862C 80027A2C 2463B100 */ addiu $v1, %lo(D_8011B100) # addiu $v1, $v1, -0x4f00
|
||||
/* 028630 80027A30 8C790000 */ lw $t9, ($v1)
|
||||
/* 028634 80027A34 86280000 */ lh $t0, ($s1)
|
||||
/* 028638 80027A38 00000000 */ nop
|
||||
/* 02863C 80027A3C 13280007 */ beq $t9, $t0, .L80027A5C
|
||||
/* 028640 80027A40 3C078012 */ lui $a3, %hi(D_8011B108) # $a3, 0x8012
|
||||
/* 028644 80027A44 24E7B108 */ addiu $a3, %lo(D_8011B108) # addiu $a3, $a3, -0x4ef8
|
||||
/* 028648 80027A48 240900B4 */ li $t1, 180
|
||||
/* 02864C 80027A4C ACE90000 */ sw $t1, ($a3)
|
||||
/* 028650 80027A50 862A0000 */ lh $t2, ($s1)
|
||||
/* 028654 80027A54 00000000 */ nop
|
||||
/* 028658 80027A58 AC6A0000 */ sw $t2, ($v1)
|
||||
.L80027A5C:
|
||||
/* 02865C 80027A5C 104000ED */ beqz $v0, .L80027E14
|
||||
/* 028660 80027A60 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 028664 80027A64 0C01A73F */ jal get_active_camera_segment_no_cutscenes
|
||||
/* 028668 80027A68 AFA50054 */ sw $a1, 0x54($sp)
|
||||
/* 02866C 80027A6C C604000C */ lwc1 $f4, 0xc($s0)
|
||||
/* 028670 80027A70 8FA50054 */ lw $a1, 0x54($sp)
|
||||
/* 028674 80027A74 E444000C */ swc1 $f4, 0xc($v0)
|
||||
/* 028678 80027A78 C6060010 */ lwc1 $f6, 0x10($s0)
|
||||
/* 02867C 80027A7C C44A000C */ lwc1 $f10, 0xc($v0)
|
||||
/* 028680 80027A80 E4460010 */ swc1 $f6, 0x10($v0)
|
||||
/* 028684 80027A84 C6080014 */ lwc1 $f8, 0x14($s0)
|
||||
/* 028688 80027A88 C4520010 */ lwc1 $f18, 0x10($v0)
|
||||
/* 02868C 80027A8C E4480014 */ swc1 $f8, 0x14($v0)
|
||||
/* 028690 80027A90 C4A40010 */ lwc1 $f4, 0x10($a1)
|
||||
/* 028694 80027A94 C4B0000C */ lwc1 $f16, 0xc($a1)
|
||||
/* 028698 80027A98 46049181 */ sub.s $f6, $f18, $f4
|
||||
/* 02869C 80027A9C 46105081 */ sub.s $f2, $f10, $f16
|
||||
/* 0286A0 80027AA0 E7A60064 */ swc1 $f6, 0x64($sp)
|
||||
/* 0286A4 80027AA4 C4480014 */ lwc1 $f8, 0x14($v0)
|
||||
/* 0286A8 80027AA8 C4AA0014 */ lwc1 $f10, 0x14($a1)
|
||||
/* 0286AC 80027AAC 46021402 */ mul.s $f16, $f2, $f2
|
||||
/* 0286B0 80027AB0 460A4381 */ sub.s $f14, $f8, $f10
|
||||
/* 0286B4 80027AB4 E7A20068 */ swc1 $f2, 0x68($sp)
|
||||
/* 0286B8 80027AB8 E7AE0060 */ swc1 $f14, 0x60($sp)
|
||||
/* 0286BC 80027ABC 460E7482 */ mul.s $f18, $f14, $f14
|
||||
/* 0286C0 80027AC0 AFA20058 */ sw $v0, 0x58($sp)
|
||||
/* 0286C4 80027AC4 0C0326B4 */ jal sqrtf
|
||||
/* 0286C8 80027AC8 46128300 */ add.s $f12, $f16, $f18
|
||||
/* 0286CC 80027ACC 3C078012 */ lui $a3, %hi(D_8011B108) # $a3, 0x8012
|
||||
/* 0286D0 80027AD0 24E7B108 */ addiu $a3, %lo(D_8011B108) # addiu $a3, $a3, -0x4ef8
|
||||
/* 0286D4 80027AD4 8CEB0000 */ lw $t3, ($a3)
|
||||
/* 0286D8 80027AD8 8FA30058 */ lw $v1, 0x58($sp)
|
||||
/* 0286DC 80027ADC C7A20068 */ lwc1 $f2, 0x68($sp)
|
||||
/* 0286E0 80027AE0 C7AE0060 */ lwc1 $f14, 0x60($sp)
|
||||
/* 0286E4 80027AE4 1160008C */ beqz $t3, .L80027D18
|
||||
/* 0286E8 80027AE8 46000306 */ mov.s $f12, $f0
|
||||
/* 0286EC 80027AEC 444CF800 */ cfc1 $t4, $31
|
||||
/* 0286F0 80027AF0 AFA30058 */ sw $v1, 0x58($sp)
|
||||
/* 0286F4 80027AF4 35810003 */ ori $at, $t4, 3
|
||||
/* 0286F8 80027AF8 38210002 */ xori $at, $at, 2
|
||||
/* 0286FC 80027AFC 44C1F800 */ ctc1 $at, $31
|
||||
/* 028700 80027B00 E7AC005C */ swc1 $f12, 0x5c($sp)
|
||||
/* 028704 80027B04 46001124 */ cvt.w.s $f4, $f2
|
||||
/* 028708 80027B08 44CCF800 */ ctc1 $t4, $31
|
||||
/* 02870C 80027B0C 44042000 */ mfc1 $a0, $f4
|
||||
/* 028710 80027B10 00000000 */ nop
|
||||
/* 028714 80027B14 444DF800 */ cfc1 $t5, $31
|
||||
/* 028718 80027B18 00000000 */ nop
|
||||
/* 02871C 80027B1C 35A10003 */ ori $at, $t5, 3
|
||||
/* 028720 80027B20 38210002 */ xori $at, $at, 2
|
||||
/* 028724 80027B24 44C1F800 */ ctc1 $at, $31
|
||||
/* 028728 80027B28 00000000 */ nop
|
||||
/* 02872C 80027B2C 460071A4 */ cvt.w.s $f6, $f14
|
||||
/* 028730 80027B30 44053000 */ mfc1 $a1, $f6
|
||||
/* 028734 80027B34 44CDF800 */ ctc1 $t5, $31
|
||||
/* 028738 80027B38 0C01C19B */ jal atan2s
|
||||
/* 02873C 80027B3C 00000000 */ nop
|
||||
/* 028740 80027B40 8FA30058 */ lw $v1, 0x58($sp)
|
||||
/* 028744 80027B44 00027023 */ negu $t6, $v0
|
||||
/* 028748 80027B48 84660000 */ lh $a2, ($v1)
|
||||
/* 02874C 80027B4C 34018000 */ li $at, 32768
|
||||
/* 028750 80027B50 01C68023 */ subu $s0, $t6, $a2
|
||||
/* 028754 80027B54 02018021 */ addu $s0, $s0, $at
|
||||
/* 028758 80027B58 00107C00 */ sll $t7, $s0, 0x10
|
||||
/* 02875C 80027B5C 000FC403 */ sra $t8, $t7, 0x10
|
||||
/* 028760 80027B60 34018001 */ li $at, 32769
|
||||
/* 028764 80027B64 3C078012 */ lui $a3, %hi(D_8011B108) # $a3, 0x8012
|
||||
/* 028768 80027B68 C7AC005C */ lwc1 $f12, 0x5c($sp)
|
||||
/* 02876C 80027B6C 0301082A */ slt $at, $t8, $at
|
||||
/* 028770 80027B70 24E7B108 */ addiu $a3, %lo(D_8011B108) # addiu $a3, $a3, -0x4ef8
|
||||
/* 028774 80027B74 14200007 */ bnez $at, .L80027B94
|
||||
/* 028778 80027B78 03008025 */ move $s0, $t8
|
||||
/* 02877C 80027B7C 3C08FFFF */ lui $t0, (0xFFFF0001 >> 16) # lui $t0, 0xffff
|
||||
/* 028780 80027B80 35080001 */ ori $t0, (0xFFFF0001 & 0xFFFF) # ori $t0, $t0, 1
|
||||
/* 028784 80027B84 0018C823 */ negu $t9, $t8
|
||||
/* 028788 80027B88 01198023 */ subu $s0, $t0, $t9
|
||||
/* 02878C 80027B8C 00104C00 */ sll $t1, $s0, 0x10
|
||||
/* 028790 80027B90 00098403 */ sra $s0, $t1, 0x10
|
||||
.L80027B94:
|
||||
/* 028794 80027B94 8CEB0000 */ lw $t3, ($a3)
|
||||
/* 028798 80027B98 3C014334 */ li $at, 0x43340000 # 180.000000
|
||||
/* 02879C 80027B9C 448B4000 */ mtc1 $t3, $f8
|
||||
/* 0287A0 80027BA0 44818000 */ mtc1 $at, $f16
|
||||
/* 0287A4 80027BA4 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 0287A8 80027BA8 3C014180 */ li $at, 0x41800000 # 16.000000
|
||||
/* 0287AC 80027BAC 44812000 */ mtc1 $at, $f4
|
||||
/* 0287B0 80027BB0 46105483 */ div.s $f18, $f10, $f16
|
||||
/* 0287B4 80027BB4 44904000 */ mtc1 $s0, $f8
|
||||
/* 0287B8 80027BB8 00000000 */ nop
|
||||
/* 0287BC 80027BBC 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 0287C0 80027BC0 46122182 */ mul.s $f6, $f4, $f18
|
||||
/* 0287C4 80027BC4 00000000 */ nop
|
||||
/* 0287C8 80027BC8 46065403 */ div.s $f16, $f10, $f6
|
||||
/* 0287CC 80027BCC 444CF800 */ cfc1 $t4, $31
|
||||
/* 0287D0 80027BD0 00000000 */ nop
|
||||
/* 0287D4 80027BD4 35810003 */ ori $at, $t4, 3
|
||||
/* 0287D8 80027BD8 38210002 */ xori $at, $at, 2
|
||||
/* 0287DC 80027BDC 44C1F800 */ ctc1 $at, $31
|
||||
/* 0287E0 80027BE0 00000000 */ nop
|
||||
/* 0287E4 80027BE4 46008124 */ cvt.w.s $f4, $f16
|
||||
/* 0287E8 80027BE8 44CCF800 */ ctc1 $t4, $31
|
||||
/* 0287EC 80027BEC 440E2000 */ mfc1 $t6, $f4
|
||||
/* 0287F0 80027BF0 00000000 */ nop
|
||||
/* 0287F4 80027BF4 4458F800 */ cfc1 $t8, $31
|
||||
/* 0287F8 80027BF8 00CE7821 */ addu $t7, $a2, $t6
|
||||
/* 0287FC 80027BFC 37010003 */ ori $at, $t8, 3
|
||||
/* 028800 80027C00 A46F0000 */ sh $t7, ($v1)
|
||||
/* 028804 80027C04 38210002 */ xori $at, $at, 2
|
||||
/* 028808 80027C08 44C1F800 */ ctc1 $at, $31
|
||||
/* 02880C 80027C0C C7B20064 */ lwc1 $f18, 0x64($sp)
|
||||
/* 028810 80027C10 AFA30058 */ sw $v1, 0x58($sp)
|
||||
/* 028814 80027C14 46009224 */ cvt.w.s $f8, $f18
|
||||
/* 028818 80027C18 44D8F800 */ ctc1 $t8, $31
|
||||
/* 02881C 80027C1C 44044000 */ mfc1 $a0, $f8
|
||||
/* 028820 80027C20 00000000 */ nop
|
||||
/* 028824 80027C24 4448F800 */ cfc1 $t0, $31
|
||||
/* 028828 80027C28 00000000 */ nop
|
||||
/* 02882C 80027C2C 35010003 */ ori $at, $t0, 3
|
||||
/* 028830 80027C30 38210002 */ xori $at, $at, 2
|
||||
/* 028834 80027C34 44C1F800 */ ctc1 $at, $31
|
||||
/* 028838 80027C38 00000000 */ nop
|
||||
/* 02883C 80027C3C 460062A4 */ cvt.w.s $f10, $f12
|
||||
/* 028840 80027C40 44055000 */ mfc1 $a1, $f10
|
||||
/* 028844 80027C44 44C8F800 */ ctc1 $t0, $31
|
||||
/* 028848 80027C48 0C01C19B */ jal atan2s
|
||||
/* 02884C 80027C4C 00000000 */ nop
|
||||
/* 028850 80027C50 8FA30058 */ lw $v1, 0x58($sp)
|
||||
/* 028854 80027C54 34018001 */ li $at, 32769
|
||||
/* 028858 80027C58 84640002 */ lh $a0, 2($v1)
|
||||
/* 02885C 80027C5C 3C078012 */ lui $a3, %hi(D_8011B108) # $a3, 0x8012
|
||||
/* 028860 80027C60 00448023 */ subu $s0, $v0, $a0
|
||||
/* 028864 80027C64 0010CC00 */ sll $t9, $s0, 0x10
|
||||
/* 028868 80027C68 00194C03 */ sra $t1, $t9, 0x10
|
||||
/* 02886C 80027C6C 0121082A */ slt $at, $t1, $at
|
||||
/* 028870 80027C70 01208025 */ move $s0, $t1
|
||||
/* 028874 80027C74 14200007 */ bnez $at, .L80027C94
|
||||
/* 028878 80027C78 24E7B108 */ addiu $a3, %lo(D_8011B108) # addiu $a3, $a3, -0x4ef8
|
||||
/* 02887C 80027C7C 3C0BFFFF */ lui $t3, (0xFFFF0001 >> 16) # lui $t3, 0xffff
|
||||
/* 028880 80027C80 356B0001 */ ori $t3, (0xFFFF0001 & 0xFFFF) # ori $t3, $t3, 1
|
||||
/* 028884 80027C84 00095023 */ negu $t2, $t1
|
||||
/* 028888 80027C88 016A8023 */ subu $s0, $t3, $t2
|
||||
/* 02888C 80027C8C 00106400 */ sll $t4, $s0, 0x10
|
||||
/* 028890 80027C90 000C8403 */ sra $s0, $t4, 0x10
|
||||
.L80027C94:
|
||||
/* 028894 80027C94 8CEE0000 */ lw $t6, ($a3)
|
||||
/* 028898 80027C98 3C014334 */ li $at, 0x43340000 # 180.000000
|
||||
/* 02889C 80027C9C 448E3000 */ mtc1 $t6, $f6
|
||||
/* 0288A0 80027CA0 44812000 */ mtc1 $at, $f4
|
||||
/* 0288A4 80027CA4 46803420 */ cvt.s.w $f16, $f6
|
||||
/* 0288A8 80027CA8 3C014180 */ li $at, 0x41800000 # 16.000000
|
||||
/* 0288AC 80027CAC 44814000 */ mtc1 $at, $f8
|
||||
/* 0288B0 80027CB0 46048483 */ div.s $f18, $f16, $f4
|
||||
/* 0288B4 80027CB4 44903000 */ mtc1 $s0, $f6
|
||||
/* 0288B8 80027CB8 00000000 */ nop
|
||||
/* 0288BC 80027CBC 46803420 */ cvt.s.w $f16, $f6
|
||||
/* 0288C0 80027CC0 46124282 */ mul.s $f10, $f8, $f18
|
||||
/* 0288C4 80027CC4 00000000 */ nop
|
||||
/* 0288C8 80027CC8 460A8103 */ div.s $f4, $f16, $f10
|
||||
/* 0288CC 80027CCC 444FF800 */ cfc1 $t7, $31
|
||||
/* 0288D0 80027CD0 00000000 */ nop
|
||||
/* 0288D4 80027CD4 35E10003 */ ori $at, $t7, 3
|
||||
/* 0288D8 80027CD8 38210002 */ xori $at, $at, 2
|
||||
/* 0288DC 80027CDC 44C1F800 */ ctc1 $at, $31
|
||||
/* 0288E0 80027CE0 00000000 */ nop
|
||||
/* 0288E4 80027CE4 46002224 */ cvt.w.s $f8, $f4
|
||||
/* 0288E8 80027CE8 44084000 */ mfc1 $t0, $f8
|
||||
/* 0288EC 80027CEC 44CFF800 */ ctc1 $t7, $31
|
||||
/* 0288F0 80027CF0 0088C821 */ addu $t9, $a0, $t0
|
||||
/* 0288F4 80027CF4 A4790002 */ sh $t9, 2($v1)
|
||||
/* 0288F8 80027CF8 8CE90000 */ lw $t1, ($a3)
|
||||
/* 0288FC 80027CFC 8FAB0070 */ lw $t3, 0x70($sp)
|
||||
/* 028900 80027D00 00000000 */ nop
|
||||
/* 028904 80027D04 012B5023 */ subu $t2, $t1, $t3
|
||||
/* 028908 80027D08 05410035 */ bgez $t2, .L80027DE0
|
||||
/* 02890C 80027D0C ACEA0000 */ sw $t2, ($a3)
|
||||
/* 028910 80027D10 10000033 */ b .L80027DE0
|
||||
/* 028914 80027D14 ACE00000 */ sw $zero, ($a3)
|
||||
.L80027D18:
|
||||
/* 028918 80027D18 444DF800 */ cfc1 $t5, $31
|
||||
/* 02891C 80027D1C AFA30058 */ sw $v1, 0x58($sp)
|
||||
/* 028920 80027D20 35A10003 */ ori $at, $t5, 3
|
||||
/* 028924 80027D24 38210002 */ xori $at, $at, 2
|
||||
/* 028928 80027D28 44C1F800 */ ctc1 $at, $31
|
||||
/* 02892C 80027D2C E7AC005C */ swc1 $f12, 0x5c($sp)
|
||||
/* 028930 80027D30 460014A4 */ cvt.w.s $f18, $f2
|
||||
/* 028934 80027D34 44CDF800 */ ctc1 $t5, $31
|
||||
/* 028938 80027D38 44049000 */ mfc1 $a0, $f18
|
||||
/* 02893C 80027D3C 00000000 */ nop
|
||||
/* 028940 80027D40 444EF800 */ cfc1 $t6, $31
|
||||
/* 028944 80027D44 00000000 */ nop
|
||||
/* 028948 80027D48 35C10003 */ ori $at, $t6, 3
|
||||
/* 02894C 80027D4C 38210002 */ xori $at, $at, 2
|
||||
/* 028950 80027D50 44C1F800 */ ctc1 $at, $31
|
||||
/* 028954 80027D54 00000000 */ nop
|
||||
/* 028958 80027D58 460071A4 */ cvt.w.s $f6, $f14
|
||||
/* 02895C 80027D5C 44053000 */ mfc1 $a1, $f6
|
||||
/* 028960 80027D60 44CEF800 */ ctc1 $t6, $31
|
||||
/* 028964 80027D64 0C01C19B */ jal atan2s
|
||||
/* 028968 80027D68 00000000 */ nop
|
||||
/* 02896C 80027D6C 4448F800 */ cfc1 $t0, $31
|
||||
/* 028970 80027D70 8FA30058 */ lw $v1, 0x58($sp)
|
||||
/* 028974 80027D74 340F8000 */ li $t7, 32768
|
||||
/* 028978 80027D78 C7AC005C */ lwc1 $f12, 0x5c($sp)
|
||||
/* 02897C 80027D7C 01E2C023 */ subu $t8, $t7, $v0
|
||||
/* 028980 80027D80 35010003 */ ori $at, $t0, 3
|
||||
/* 028984 80027D84 38210002 */ xori $at, $at, 2
|
||||
/* 028988 80027D88 A4780000 */ sh $t8, ($v1)
|
||||
/* 02898C 80027D8C C7B00064 */ lwc1 $f16, 0x64($sp)
|
||||
/* 028990 80027D90 44C1F800 */ ctc1 $at, $31
|
||||
/* 028994 80027D94 00000000 */ nop
|
||||
/* 028998 80027D98 460082A4 */ cvt.w.s $f10, $f16
|
||||
/* 02899C 80027D9C 44C8F800 */ ctc1 $t0, $31
|
||||
/* 0289A0 80027DA0 44045000 */ mfc1 $a0, $f10
|
||||
/* 0289A4 80027DA4 00000000 */ nop
|
||||
/* 0289A8 80027DA8 4459F800 */ cfc1 $t9, $31
|
||||
/* 0289AC 80027DAC 00000000 */ nop
|
||||
/* 0289B0 80027DB0 37210003 */ ori $at, $t9, 3
|
||||
/* 0289B4 80027DB4 38210002 */ xori $at, $at, 2
|
||||
/* 0289B8 80027DB8 44C1F800 */ ctc1 $at, $31
|
||||
/* 0289BC 80027DBC 00000000 */ nop
|
||||
/* 0289C0 80027DC0 46006124 */ cvt.w.s $f4, $f12
|
||||
/* 0289C4 80027DC4 44052000 */ mfc1 $a1, $f4
|
||||
/* 0289C8 80027DC8 44D9F800 */ ctc1 $t9, $31
|
||||
/* 0289CC 80027DCC 0C01C19B */ jal atan2s
|
||||
/* 0289D0 80027DD0 00000000 */ nop
|
||||
/* 0289D4 80027DD4 8FA30058 */ lw $v1, 0x58($sp)
|
||||
/* 0289D8 80027DD8 00000000 */ nop
|
||||
/* 0289DC 80027DDC A4620002 */ sh $v0, 2($v1)
|
||||
.L80027DE0:
|
||||
/* 0289E0 80027DE0 A4600004 */ sh $zero, 4($v1)
|
||||
/* 0289E4 80027DE4 C62E003C */ lwc1 $f14, 0x3c($s1)
|
||||
/* 0289E8 80027DE8 C46C000C */ lwc1 $f12, 0xc($v1)
|
||||
/* 0289EC 80027DEC 8C660014 */ lw $a2, 0x14($v1)
|
||||
/* 0289F0 80027DF0 0C00A7C6 */ jal get_level_segment_index_from_position
|
||||
/* 0289F4 80027DF4 AFA30058 */ sw $v1, 0x58($sp)
|
||||
/* 0289F8 80027DF8 8FA30058 */ lw $v1, 0x58($sp)
|
||||
/* 0289FC 80027DFC 3C018012 */ lui $at, %hi(D_8011B104) # $at, 0x8012
|
||||
/* 028A00 80027E00 A4620034 */ sh $v0, 0x34($v1)
|
||||
/* 028A04 80027E04 822901FD */ lb $t1, 0x1fd($s1)
|
||||
/* 028A08 80027E08 00000000 */ nop
|
||||
/* 028A0C 80027E0C AC29B104 */ sw $t1, %lo(D_8011B104)($at)
|
||||
/* 028A10 80027E10 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
.L80027E14:
|
||||
/* 028A14 80027E14 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 028A18 80027E18 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 028A1C 80027E1C 03E00008 */ jr $ra
|
||||
/* 028A20 80027E20 27BD0070 */ addiu $sp, $sp, 0x70
|
||||
|
||||
@@ -1,468 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_800E5F48
|
||||
.float 1.4
|
||||
glabel D_800E5F4C
|
||||
.float 0.714
|
||||
glabel D_800E5F50
|
||||
.float 0.005
|
||||
|
||||
.text
|
||||
glabel func_8002E234
|
||||
/* 02EE34 8002E234 27BDFF00 */ addiu $sp, $sp, -0x100
|
||||
/* 02EE38 8002E238 444EF800 */ cfc1 $t6, $31
|
||||
/* 02EE3C 8002E23C AFBF0044 */ sw $ra, 0x44($sp)
|
||||
/* 02EE40 8002E240 35C10003 */ ori $at, $t6, 3
|
||||
/* 02EE44 8002E244 AFB60040 */ sw $s6, 0x40($sp)
|
||||
/* 02EE48 8002E248 AFB5003C */ sw $s5, 0x3c($sp)
|
||||
/* 02EE4C 8002E24C AFB40038 */ sw $s4, 0x38($sp)
|
||||
/* 02EE50 8002E250 AFB30034 */ sw $s3, 0x34($sp)
|
||||
/* 02EE54 8002E254 AFB20030 */ sw $s2, 0x30($sp)
|
||||
/* 02EE58 8002E258 AFB1002C */ sw $s1, 0x2c($sp)
|
||||
/* 02EE5C 8002E25C AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 02EE60 8002E260 38210002 */ xori $at, $at, 2
|
||||
/* 02EE64 8002E264 44C1F800 */ ctc1 $at, $31
|
||||
/* 02EE68 8002E268 C4840010 */ lwc1 $f4, 0x10($a0)
|
||||
/* 02EE6C 8002E26C 848F0048 */ lh $t7, 0x48($a0)
|
||||
/* 02EE70 8002E270 460021A4 */ cvt.w.s $f6, $f4
|
||||
/* 02EE74 8002E274 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 02EE78 8002E278 24120001 */ li $s2, 1
|
||||
/* 02EE7C 8002E27C 44103000 */ mfc1 $s0, $f6
|
||||
/* 02EE80 8002E280 44819000 */ mtc1 $at, $f18
|
||||
/* 02EE84 8002E284 44CEF800 */ ctc1 $t6, $31
|
||||
/* 02EE88 8002E288 0080A825 */ move $s5, $a0
|
||||
/* 02EE8C 8002E28C 164F000F */ bne $s2, $t7, .L8002E2CC
|
||||
/* 02EE90 8002E290 00A0B025 */ move $s6, $a1
|
||||
/* 02EE94 8002E294 0C0270C3 */ jal get_filtered_cheats
|
||||
/* 02EE98 8002E298 E7B2006C */ swc1 $f18, 0x6c($sp)
|
||||
/* 02EE9C 8002E29C C7B2006C */ lwc1 $f18, 0x6c($sp)
|
||||
/* 02EEA0 8002E2A0 30580010 */ andi $t8, $v0, 0x10
|
||||
/* 02EEA4 8002E2A4 13000005 */ beqz $t8, .L8002E2BC
|
||||
/* 02EEA8 8002E2A8 30590020 */ andi $t9, $v0, 0x20
|
||||
/* 02EEAC 8002E2AC 3C01800E */ lui $at, %hi(D_800E5F48) # $at, 0x800e
|
||||
/* 02EEB0 8002E2B0 C4325F48 */ lwc1 $f18, %lo(D_800E5F48)($at)
|
||||
/* 02EEB4 8002E2B4 10000006 */ b .L8002E2D0
|
||||
/* 02EEB8 8002E2B8 3C014000 */ lui $at, 0x4000
|
||||
.L8002E2BC:
|
||||
/* 02EEBC 8002E2BC 13200003 */ beqz $t9, .L8002E2CC
|
||||
/* 02EEC0 8002E2C0 3C01800E */ lui $at, %hi(D_800E5F4C) # $at, 0x800e
|
||||
/* 02EEC4 8002E2C4 C4325F4C */ lwc1 $f18, %lo(D_800E5F4C)($at)
|
||||
/* 02EEC8 8002E2C8 00000000 */ nop
|
||||
.L8002E2CC:
|
||||
/* 02EECC 8002E2CC 3C014000 */ li $at, 0x40000000 # 2.000000
|
||||
.L8002E2D0:
|
||||
/* 02EED0 8002E2D0 44814000 */ mtc1 $at, $f8
|
||||
/* 02EED4 8002E2D4 3C118012 */ lui $s1, %hi(D_8011D0C8) # $s1, 0x8012
|
||||
/* 02EED8 8002E2D8 3C138012 */ lui $s3, %hi(D_8011D0C4) # $s3, 0x8012
|
||||
/* 02EEDC 8002E2DC 2673D0C4 */ addiu $s3, %lo(D_8011D0C4) # addiu $s3, $s3, -0x2f3c
|
||||
/* 02EEE0 8002E2E0 2631D0C8 */ addiu $s1, %lo(D_8011D0C8) # addiu $s1, $s1, -0x2f38
|
||||
/* 02EEE4 8002E2E4 AE750000 */ sw $s5, ($s3)
|
||||
/* 02EEE8 8002E2E8 12C00042 */ beqz $s6, .L8002E3F4
|
||||
/* 02EEEC 8002E2EC E6280000 */ swc1 $f8, ($s1)
|
||||
/* 02EEF0 8002E2F0 3C018012 */ lui $at, %hi(D_8011D0B8) # $at, 0x8012
|
||||
/* 02EEF4 8002E2F4 AC20D0B8 */ sw $zero, %lo(D_8011D0B8)($at)
|
||||
/* 02EEF8 8002E2F8 3C088012 */ lui $t0, %hi(D_8011D364) # $t0, 0x8012
|
||||
/* 02EEFC 8002E2FC 8D08D364 */ lw $t0, %lo(D_8011D364)($t0)
|
||||
/* 02EF00 8002E300 8EA90058 */ lw $t1, 0x58($s5)
|
||||
/* 02EF04 8002E304 00000000 */ nop
|
||||
/* 02EF08 8002E308 A5280008 */ sh $t0, 8($t1)
|
||||
/* 02EF0C 8002E30C 8EA20058 */ lw $v0, 0x58($s5)
|
||||
/* 02EF10 8002E310 00000000 */ nop
|
||||
/* 02EF14 8002E314 8445000C */ lh $a1, 0xc($v0)
|
||||
/* 02EF18 8002E318 8C440004 */ lw $a0, 4($v0)
|
||||
/* 02EF1C 8002E31C 00055200 */ sll $t2, $a1, 8
|
||||
/* 02EF20 8002E320 01402825 */ move $a1, $t2
|
||||
/* 02EF24 8002E324 0C01ED1B */ jal set_animated_texture_header
|
||||
/* 02EF28 8002E328 E7B2006C */ swc1 $f18, 0x6c($sp)
|
||||
/* 02EF2C 8002E32C 3C018012 */ lui $at, %hi(D_8011D0C0) # $at, 0x8012
|
||||
/* 02EF30 8002E330 AC22D0C0 */ sw $v0, %lo(D_8011D0C0)($at)
|
||||
/* 02EF34 8002E334 8EAB0040 */ lw $t3, 0x40($s5)
|
||||
/* 02EF38 8002E338 3C148012 */ lui $s4, %hi(D_8011D0CE) # $s4, 0x8012
|
||||
/* 02EF3C 8002E33C 856C0048 */ lh $t4, 0x48($t3)
|
||||
/* 02EF40 8002E340 2694D0CE */ addiu $s4, %lo(D_8011D0CE) # addiu $s4, $s4, -0x2f32
|
||||
/* 02EF44 8002E344 01906821 */ addu $t5, $t4, $s0
|
||||
/* 02EF48 8002E348 A68D0000 */ sh $t5, ($s4)
|
||||
/* 02EF4C 8002E34C 8EAE0040 */ lw $t6, 0x40($s5)
|
||||
/* 02EF50 8002E350 3C198012 */ lui $t9, %hi(gWaveBlockCount) # $t9, 0x8012
|
||||
/* 02EF54 8002E354 85CF0046 */ lh $t7, 0x46($t6)
|
||||
/* 02EF58 8002E358 8F39D384 */ lw $t9, %lo(gWaveBlockCount)($t9)
|
||||
/* 02EF5C 8002E35C C7B2006C */ lwc1 $f18, 0x6c($sp)
|
||||
/* 02EF60 8002E360 3C018012 */ lui $at, %hi(D_8011D0CC) # $at, 0x8012
|
||||
/* 02EF64 8002E364 01F0C021 */ addu $t8, $t7, $s0
|
||||
/* 02EF68 8002E368 13200006 */ beqz $t9, .L8002E384
|
||||
/* 02EF6C 8002E36C A438D0CC */ sh $t8, %lo(D_8011D0CC)($at)
|
||||
/* 02EF70 8002E370 0C019884 */ jal get_viewport_count
|
||||
/* 02EF74 8002E374 E7B2006C */ swc1 $f18, 0x6c($sp)
|
||||
/* 02EF78 8002E378 C7B2006C */ lwc1 $f18, 0x6c($sp)
|
||||
/* 02EF7C 8002E37C 1C400004 */ bgtz $v0, .L8002E390
|
||||
/* 02EF80 8002E380 00000000 */ nop
|
||||
.L8002E384:
|
||||
/* 02EF84 8002E384 44805000 */ mtc1 $zero, $f10
|
||||
/* 02EF88 8002E388 00000000 */ nop
|
||||
/* 02EF8C 8002E38C E62A0000 */ swc1 $f10, ($s1)
|
||||
.L8002E390:
|
||||
/* 02EF90 8002E390 8EA80058 */ lw $t0, 0x58($s5)
|
||||
/* 02EF94 8002E394 3C038012 */ lui $v1, %hi(D_8011D0D8) # $v1, 0x8012
|
||||
/* 02EF98 8002E398 C5040000 */ lwc1 $f4, ($t0)
|
||||
/* 02EF9C 8002E39C 2463D0D8 */ addiu $v1, %lo(D_8011D0D8) # addiu $v1, $v1, -0x2f28
|
||||
/* 02EFA0 8002E3A0 46122182 */ mul.s $f6, $f4, $f18
|
||||
/* 02EFA4 8002E3A4 3C014120 */ li $at, 0x41200000 # 10.000000
|
||||
/* 02EFA8 8002E3A8 44814000 */ mtc1 $at, $f8
|
||||
/* 02EFAC 8002E3AC 3C018012 */ lui $at, %hi(D_8011D0DC) # $at, 0x8012
|
||||
/* 02EFB0 8002E3B0 E4660000 */ swc1 $f6, ($v1)
|
||||
/* 02EFB4 8002E3B4 C4700000 */ lwc1 $f16, ($v1)
|
||||
/* 02EFB8 8002E3B8 3C028012 */ lui $v0, %hi(D_8011D0F0) # $v0, 0x8012
|
||||
/* 02EFBC 8002E3BC 46088002 */ mul.s $f0, $f16, $f8
|
||||
/* 02EFC0 8002E3C0 2442D0F0 */ addiu $v0, %lo(D_8011D0F0) # addiu $v0, $v0, -0x2f10
|
||||
/* 02EFC4 8002E3C4 E420D0DC */ swc1 $f0, %lo(D_8011D0DC)($at)
|
||||
/* 02EFC8 8002E3C8 3C018012 */ lui $at, %hi(D_8011D0E0) # $at, 0x8012
|
||||
/* 02EFCC 8002E3CC E420D0E0 */ swc1 $f0, %lo(D_8011D0E0)($at)
|
||||
/* 02EFD0 8002E3D0 3C01BF80 */ li $at, 0xBF800000 # -1.000000
|
||||
/* 02EFD4 8002E3D4 44815000 */ mtc1 $at, $f10
|
||||
/* 02EFD8 8002E3D8 3C018012 */ lui $at, %hi(D_8011D0DC) # $at, 0x8012
|
||||
/* 02EFDC 8002E3DC E44A0000 */ swc1 $f10, ($v0)
|
||||
/* 02EFE0 8002E3E0 C42CD0DC */ lwc1 $f12, %lo(D_8011D0DC)($at)
|
||||
/* 02EFE4 8002E3E4 3C018012 */ lui $at, %hi(D_8011D0E0) # $at, 0x8012
|
||||
/* 02EFE8 8002E3E8 C42ED0E0 */ lwc1 $f14, %lo(D_8011D0E0)($at)
|
||||
/* 02EFEC 8002E3EC 10000076 */ b .L8002E5C8
|
||||
/* 02EFF0 8002E3F0 3C014310 */ lui $at, 0x4310
|
||||
.L8002E3F4:
|
||||
/* 02EFF4 8002E3F4 3C098012 */ lui $t1, %hi(D_8011D364) # $t1, 0x8012
|
||||
/* 02EFF8 8002E3F8 8D29D364 */ lw $t1, %lo(D_8011D364)($t1)
|
||||
/* 02EFFC 8002E3FC 8EAA0050 */ lw $t2, 0x50($s5)
|
||||
/* 02F000 8002E400 3C018012 */ lui $at, %hi(D_8011D0C0) # $at, 0x8012
|
||||
/* 02F004 8002E404 A5490008 */ sh $t1, 8($t2)
|
||||
/* 02F008 8002E408 8EAB0050 */ lw $t3, 0x50($s5)
|
||||
/* 02F00C 8002E40C 3C148012 */ lui $s4, %hi(D_8011D0CE) # $s4, 0x8012
|
||||
/* 02F010 8002E410 8D6C0004 */ lw $t4, 4($t3)
|
||||
/* 02F014 8002E414 2694D0CE */ addiu $s4, %lo(D_8011D0CE) # addiu $s4, $s4, -0x2f32
|
||||
/* 02F018 8002E418 AC2CD0C0 */ sw $t4, %lo(D_8011D0C0)($at)
|
||||
/* 02F01C 8002E41C 8EAD0040 */ lw $t5, 0x40($s5)
|
||||
/* 02F020 8002E420 3C018012 */ lui $at, %hi(D_8011D0CC) # $at, 0x8012
|
||||
/* 02F024 8002E424 85AE0044 */ lh $t6, 0x44($t5)
|
||||
/* 02F028 8002E428 00000000 */ nop
|
||||
/* 02F02C 8002E42C 01D07821 */ addu $t7, $t6, $s0
|
||||
/* 02F030 8002E430 A68F0000 */ sh $t7, ($s4)
|
||||
/* 02F034 8002E434 8EB80040 */ lw $t8, 0x40($s5)
|
||||
/* 02F038 8002E438 00000000 */ nop
|
||||
/* 02F03C 8002E43C 87190042 */ lh $t9, 0x42($t8)
|
||||
/* 02F040 8002E440 00000000 */ nop
|
||||
/* 02F044 8002E444 03304021 */ addu $t0, $t9, $s0
|
||||
/* 02F048 8002E448 A428D0CC */ sh $t0, %lo(D_8011D0CC)($at)
|
||||
/* 02F04C 8002E44C 86A90048 */ lh $t1, 0x48($s5)
|
||||
/* 02F050 8002E450 00000000 */ nop
|
||||
/* 02F054 8002E454 12490025 */ beq $s2, $t1, .L8002E4EC
|
||||
/* 02F058 8002E458 00000000 */ nop
|
||||
/* 02F05C 8002E45C C6A20030 */ lwc1 $f2, 0x30($s5)
|
||||
/* 02F060 8002E460 44806800 */ mtc1 $zero, $f13
|
||||
/* 02F064 8002E464 44806000 */ mtc1 $zero, $f12
|
||||
/* 02F068 8002E468 46001021 */ cvt.d.s $f0, $f2
|
||||
/* 02F06C 8002E46C 462C003C */ c.lt.d $f0, $f12
|
||||
/* 02F070 8002E470 44802000 */ mtc1 $zero, $f4
|
||||
/* 02F074 8002E474 45000003 */ bc1f .L8002E484
|
||||
/* 02F078 8002E478 3C014080 */ li $at, 0x40800000 # 4.000000
|
||||
/* 02F07C 8002E47C 46001087 */ neg.s $f2, $f2
|
||||
/* 02F080 8002E480 46001021 */ cvt.d.s $f0, $f2
|
||||
.L8002E484:
|
||||
/* 02F084 8002E484 44812800 */ mtc1 $at, $f5
|
||||
/* 02F088 8002E488 3C014090 */ li $at, 0x40900000 # 4.500000
|
||||
/* 02F08C 8002E48C 46240181 */ sub.d $f6, $f0, $f4
|
||||
/* 02F090 8002E490 44814800 */ mtc1 $at, $f9
|
||||
/* 02F094 8002E494 462030A0 */ cvt.s.d $f2, $f6
|
||||
/* 02F098 8002E498 44804000 */ mtc1 $zero, $f8
|
||||
/* 02F09C 8002E49C 46001021 */ cvt.d.s $f0, $f2
|
||||
/* 02F0A0 8002E4A0 462C003C */ c.lt.d $f0, $f12
|
||||
/* 02F0A4 8002E4A4 3C014480 */ li $at, 0x44800000 # 1024.000000
|
||||
/* 02F0A8 8002E4A8 45000004 */ bc1f .L8002E4BC
|
||||
/* 02F0AC 8002E4AC 00000000 */ nop
|
||||
/* 02F0B0 8002E4B0 44801000 */ mtc1 $zero, $f2
|
||||
/* 02F0B4 8002E4B4 00000000 */ nop
|
||||
/* 02F0B8 8002E4B8 46001021 */ cvt.d.s $f0, $f2
|
||||
.L8002E4BC:
|
||||
/* 02F0BC 8002E4BC 4620403C */ c.lt.d $f8, $f0
|
||||
/* 02F0C0 8002E4C0 00000000 */ nop
|
||||
/* 02F0C4 8002E4C4 45000003 */ bc1f .L8002E4D4
|
||||
/* 02F0C8 8002E4C8 00000000 */ nop
|
||||
/* 02F0CC 8002E4CC 44811000 */ mtc1 $at, $f2
|
||||
/* 02F0D0 8002E4D0 00000000 */ nop
|
||||
.L8002E4D4:
|
||||
/* 02F0D4 8002E4D4 3C01800E */ lui $at, %hi(D_800E5F50) # $at, 0x800e
|
||||
/* 02F0D8 8002E4D8 C4245F50 */ lwc1 $f4, %lo(D_800E5F50)($at)
|
||||
/* 02F0DC 8002E4DC C62A0000 */ lwc1 $f10, ($s1)
|
||||
/* 02F0E0 8002E4E0 46041182 */ mul.s $f6, $f2, $f4
|
||||
/* 02F0E4 8002E4E4 46065200 */ add.s $f8, $f10, $f6
|
||||
/* 02F0E8 8002E4E8 E6280000 */ swc1 $f8, ($s1)
|
||||
.L8002E4EC:
|
||||
/* 02F0EC 8002E4EC 8EAA0050 */ lw $t2, 0x50($s5)
|
||||
/* 02F0F0 8002E4F0 3C038012 */ lui $v1, %hi(D_8011D0D8) # $v1, 0x8012
|
||||
/* 02F0F4 8002E4F4 C5440000 */ lwc1 $f4, ($t2)
|
||||
/* 02F0F8 8002E4F8 2463D0D8 */ addiu $v1, %lo(D_8011D0D8) # addiu $v1, $v1, -0x2f28
|
||||
/* 02F0FC 8002E4FC 46122282 */ mul.s $f10, $f4, $f18
|
||||
/* 02F100 8002E500 3C014120 */ li $at, 0x41200000 # 10.000000
|
||||
/* 02F104 8002E504 44813000 */ mtc1 $at, $f6
|
||||
/* 02F108 8002E508 3C018012 */ lui $at, %hi(D_8011D0DC) # $at, 0x8012
|
||||
/* 02F10C 8002E50C E46A0000 */ swc1 $f10, ($v1)
|
||||
/* 02F110 8002E510 C4700000 */ lwc1 $f16, ($v1)
|
||||
/* 02F114 8002E514 3C028012 */ lui $v0, %hi(D_8011D0F0) # $v0, 0x8012
|
||||
/* 02F118 8002E518 46068002 */ mul.s $f0, $f16, $f6
|
||||
/* 02F11C 8002E51C 2442D0F0 */ addiu $v0, %lo(D_8011D0F0) # addiu $v0, $v0, -0x2f10
|
||||
/* 02F120 8002E520 E420D0DC */ swc1 $f0, %lo(D_8011D0DC)($at)
|
||||
/* 02F124 8002E524 3C018012 */ lui $at, %hi(D_8011D0E0) # $at, 0x8012
|
||||
/* 02F128 8002E528 E420D0E0 */ swc1 $f0, %lo(D_8011D0E0)($at)
|
||||
/* 02F12C 8002E52C 3C018012 */ lui $at, %hi(D_8011D0DC) # $at, 0x8012
|
||||
/* 02F130 8002E530 C42CD0DC */ lwc1 $f12, %lo(D_8011D0DC)($at)
|
||||
/* 02F134 8002E534 3C018012 */ lui $at, %hi(D_8011D0E0) # $at, 0x8012
|
||||
/* 02F138 8002E538 C42ED0E0 */ lwc1 $f14, %lo(D_8011D0E0)($at)
|
||||
/* 02F13C 8002E53C 3C014080 */ li $at, 0x40800000 # 4.000000
|
||||
/* 02F140 8002E540 44814000 */ mtc1 $at, $f8
|
||||
/* 02F144 8002E544 3C018012 */ lui $at, %hi(D_8011D0E4) # $at, 0x8012
|
||||
/* 02F148 8002E548 460C4102 */ mul.s $f4, $f8, $f12
|
||||
/* 02F14C 8002E54C 00000000 */ nop
|
||||
/* 02F150 8002E550 460E2282 */ mul.s $f10, $f4, $f14
|
||||
/* 02F154 8002E554 E42AD0E4 */ swc1 $f10, %lo(D_8011D0E4)($at)
|
||||
/* 02F158 8002E558 8EAB0040 */ lw $t3, 0x40($s5)
|
||||
/* 02F15C 8002E55C 3C013E00 */ li $at, 0x3E000000 # 0.125000
|
||||
/* 02F160 8002E560 856C0042 */ lh $t4, 0x42($t3)
|
||||
/* 02F164 8002E564 44812000 */ mtc1 $at, $f4
|
||||
/* 02F168 8002E568 448C3000 */ mtc1 $t4, $f6
|
||||
/* 02F16C 8002E56C 3C0140E0 */ li $at, 0x40E00000 # 7.000000
|
||||
/* 02F170 8002E570 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 02F174 8002E574 44803000 */ mtc1 $zero, $f6
|
||||
/* 02F178 8002E578 46044282 */ mul.s $f10, $f8, $f4
|
||||
/* 02F17C 8002E57C 44812000 */ mtc1 $at, $f4
|
||||
/* 02F180 8002E580 E44A0000 */ swc1 $f10, ($v0)
|
||||
/* 02F184 8002E584 C4420000 */ lwc1 $f2, ($v0)
|
||||
/* 02F188 8002E588 00000000 */ nop
|
||||
/* 02F18C 8002E58C 4606103C */ c.lt.s $f2, $f6
|
||||
/* 02F190 8002E590 00000000 */ nop
|
||||
/* 02F194 8002E594 45000005 */ bc1f .L8002E5AC
|
||||
/* 02F198 8002E598 00000000 */ nop
|
||||
/* 02F19C 8002E59C 46001207 */ neg.s $f8, $f2
|
||||
/* 02F1A0 8002E5A0 E4480000 */ swc1 $f8, ($v0)
|
||||
/* 02F1A4 8002E5A4 C4420000 */ lwc1 $f2, ($v0)
|
||||
/* 02F1A8 8002E5A8 00000000 */ nop
|
||||
.L8002E5AC:
|
||||
/* 02F1AC 8002E5AC 46022282 */ mul.s $f10, $f4, $f2
|
||||
/* 02F1B0 8002E5B0 3C018012 */ lui $at, %hi(D_8011D0F4) # $at, 0x8012
|
||||
/* 02F1B4 8002E5B4 240D8000 */ li $t5, -32768
|
||||
/* 02F1B8 8002E5B8 E42AD0F4 */ swc1 $f10, %lo(D_8011D0F4)($at)
|
||||
/* 02F1BC 8002E5BC 3C018012 */ lui $at, %hi(D_8011D0D0) # $at, 0x8012
|
||||
/* 02F1C0 8002E5C0 A42DD0D0 */ sh $t5, %lo(D_8011D0D0)($at)
|
||||
/* 02F1C4 8002E5C4 3C014310 */ li $at, 0x43100000 # 144.000000
|
||||
.L8002E5C8:
|
||||
/* 02F1C8 8002E5C8 44813000 */ mtc1 $at, $f6
|
||||
/* 02F1CC 8002E5CC 8E620000 */ lw $v0, ($s3)
|
||||
/* 02F1D0 8002E5D0 46103203 */ div.s $f8, $f6, $f16
|
||||
/* 02F1D4 8002E5D4 868C0000 */ lh $t4, ($s4)
|
||||
/* 02F1D8 8002E5D8 3C068012 */ lui $a2, %hi(D_8011D0CC) # $a2, 0x8012
|
||||
/* 02F1DC 8002E5DC 27A40078 */ addiu $a0, $sp, 0x78
|
||||
/* 02F1E0 8002E5E0 E4680000 */ swc1 $f8, ($v1)
|
||||
/* 02F1E4 8002E5E4 C440000C */ lwc1 $f0, 0xc($v0)
|
||||
/* 02F1E8 8002E5E8 C4420014 */ lwc1 $f2, 0x14($v0)
|
||||
/* 02F1EC 8002E5EC 460C0101 */ sub.s $f4, $f0, $f12
|
||||
/* 02F1F0 8002E5F0 84C6D0CC */ lh $a2, %lo(D_8011D0CC)($a2)
|
||||
/* 02F1F4 8002E5F4 444EF800 */ cfc1 $t6, $31
|
||||
/* 02F1F8 8002E5F8 AFAC0014 */ sw $t4, 0x14($sp)
|
||||
/* 02F1FC 8002E5FC 35C10003 */ ori $at, $t6, 3
|
||||
/* 02F200 8002E600 38210002 */ xori $at, $at, 2
|
||||
/* 02F204 8002E604 44C1F800 */ ctc1 $at, $31
|
||||
/* 02F208 8002E608 00000000 */ nop
|
||||
/* 02F20C 8002E60C 460022A4 */ cvt.w.s $f10, $f4
|
||||
/* 02F210 8002E610 44CEF800 */ ctc1 $t6, $31
|
||||
/* 02F214 8002E614 44055000 */ mfc1 $a1, $f10
|
||||
/* 02F218 8002E618 460E1181 */ sub.s $f6, $f2, $f14
|
||||
/* 02F21C 8002E61C 00057C00 */ sll $t7, $a1, 0x10
|
||||
/* 02F220 8002E620 4459F800 */ cfc1 $t9, $31
|
||||
/* 02F224 8002E624 000F2C03 */ sra $a1, $t7, 0x10
|
||||
/* 02F228 8002E628 37210003 */ ori $at, $t9, 3
|
||||
/* 02F22C 8002E62C 38210002 */ xori $at, $at, 2
|
||||
/* 02F230 8002E630 44C1F800 */ ctc1 $at, $31
|
||||
/* 02F234 8002E634 00000000 */ nop
|
||||
/* 02F238 8002E638 46003224 */ cvt.w.s $f8, $f6
|
||||
/* 02F23C 8002E63C 44D9F800 */ ctc1 $t9, $31
|
||||
/* 02F240 8002E640 44074000 */ mfc1 $a3, $f8
|
||||
/* 02F244 8002E644 460C0100 */ add.s $f4, $f0, $f12
|
||||
/* 02F248 8002E648 00074400 */ sll $t0, $a3, 0x10
|
||||
/* 02F24C 8002E64C 444AF800 */ cfc1 $t2, $31
|
||||
/* 02F250 8002E650 00083C03 */ sra $a3, $t0, 0x10
|
||||
/* 02F254 8002E654 35410003 */ ori $at, $t2, 3
|
||||
/* 02F258 8002E658 38210002 */ xori $at, $at, 2
|
||||
/* 02F25C 8002E65C 44C1F800 */ ctc1 $at, $31
|
||||
/* 02F260 8002E660 00000000 */ nop
|
||||
/* 02F264 8002E664 460022A4 */ cvt.w.s $f10, $f4
|
||||
/* 02F268 8002E668 44CAF800 */ ctc1 $t2, $31
|
||||
/* 02F26C 8002E66C 440B5000 */ mfc1 $t3, $f10
|
||||
/* 02F270 8002E670 460E1180 */ add.s $f6, $f2, $f14
|
||||
/* 02F274 8002E674 AFAB0010 */ sw $t3, 0x10($sp)
|
||||
/* 02F278 8002E678 444DF800 */ cfc1 $t5, $31
|
||||
/* 02F27C 8002E67C 00000000 */ nop
|
||||
/* 02F280 8002E680 35A10003 */ ori $at, $t5, 3
|
||||
/* 02F284 8002E684 38210002 */ xori $at, $at, 2
|
||||
/* 02F288 8002E688 44C1F800 */ ctc1 $at, $31
|
||||
/* 02F28C 8002E68C 00000000 */ nop
|
||||
/* 02F290 8002E690 46003224 */ cvt.w.s $f8, $f6
|
||||
/* 02F294 8002E694 440E4000 */ mfc1 $t6, $f8
|
||||
/* 02F298 8002E698 44CDF800 */ ctc1 $t5, $31
|
||||
/* 02F29C 8002E69C 0C00A84D */ jal get_inside_segment_count_xyz
|
||||
/* 02F2A0 8002E6A0 AFAE0018 */ sw $t6, 0x18($sp)
|
||||
/* 02F2A4 8002E6A4 3C018012 */ lui $at, %hi(D_8011C230) # $at, 0x8012
|
||||
/* 02F2A8 8002E6A8 AC20C230 */ sw $zero, %lo(D_8011C230)($at)
|
||||
/* 02F2AC 8002E6AC 3C018012 */ lui $at, %hi(D_8011B118) # $at, 0x8012
|
||||
/* 02F2B0 8002E6B0 3C038012 */ lui $v1, %hi(D_8011B320) # $v1, 0x8012
|
||||
/* 02F2B4 8002E6B4 3C048012 */ lui $a0, %hi(D_8011B320) # $a0, 0x8012
|
||||
/* 02F2B8 8002E6B8 AFA20070 */ sw $v0, 0x70($sp)
|
||||
/* 02F2BC 8002E6BC AC20B118 */ sw $zero, %lo(D_8011B118)($at)
|
||||
/* 02F2C0 8002E6C0 2484B330 */ addiu $a0, %lo(D_8011B320) + 0x10 # addiu $a0, $a0, -0x4cd0
|
||||
/* 02F2C4 8002E6C4 2463B320 */ addiu $v1, %lo(D_8011B320) # addiu $v1, $v1, -0x4ce0
|
||||
.L8002E6C8:
|
||||
/* 02F2C8 8002E6C8 24630004 */ addiu $v1, $v1, 4
|
||||
/* 02F2CC 8002E6CC 0064082B */ sltu $at, $v1, $a0
|
||||
/* 02F2D0 8002E6D0 1420FFFD */ bnez $at, .L8002E6C8
|
||||
/* 02F2D4 8002E6D4 AC60FFFC */ sw $zero, -4($v1)
|
||||
/* 02F2D8 8002E6D8 2403FFFF */ li $v1, -1
|
||||
/* 02F2DC 8002E6DC 3C018012 */ lui $at, %hi(D_8011D0E8) # $at, 0x8012
|
||||
/* 02F2E0 8002E6E0 AC23D0E8 */ sw $v1, %lo(D_8011D0E8)($at)
|
||||
/* 02F2E4 8002E6E4 3C018012 */ lui $at, %hi(D_8011D0EC) # $at, 0x8012
|
||||
/* 02F2E8 8002E6E8 AC23D0EC */ sw $v1, %lo(D_8011D0EC)($at)
|
||||
/* 02F2EC 8002E6EC 1840005C */ blez $v0, .L8002E860
|
||||
/* 02F2F0 8002E6F0 00009025 */ move $s2, $zero
|
||||
/* 02F2F4 8002E6F4 3C13800E */ lui $s3, %hi(gCurrentLevelModel) # $s3, 0x800e
|
||||
/* 02F2F8 8002E6F8 2673C918 */ addiu $s3, %lo(gCurrentLevelModel) # addiu $s3, $s3, -0x36e8
|
||||
/* 02F2FC 8002E6FC 27B10078 */ addiu $s1, $sp, 0x78
|
||||
/* 02F300 8002E700 24140044 */ li $s4, 68
|
||||
.L8002E704:
|
||||
/* 02F304 8002E704 8E300000 */ lw $s0, ($s1)
|
||||
/* 02F308 8002E708 00000000 */ nop
|
||||
/* 02F30C 8002E70C 06000051 */ bltz $s0, .L8002E854
|
||||
/* 02F310 8002E710 8FAD0070 */ lw $t5, 0x70($sp)
|
||||
/* 02F314 8002E714 12C00013 */ beqz $s6, .L8002E764
|
||||
/* 02F318 8002E718 3C018012 */ lui $at, %hi(D_8011D0DC) # $at, 0x8012
|
||||
/* 02F31C 8002E71C 02140019 */ multu $s0, $s4
|
||||
/* 02F320 8002E720 8E6F0000 */ lw $t7, ($s3)
|
||||
/* 02F324 8002E724 3C0A8012 */ lui $t2, %hi(gWaveBlockCount) # $t2, 0x8012
|
||||
/* 02F328 8002E728 8DF80004 */ lw $t8, 4($t7)
|
||||
/* 02F32C 8002E72C 0000C812 */ mflo $t9
|
||||
/* 02F330 8002E730 03194021 */ addu $t0, $t8, $t9
|
||||
/* 02F334 8002E734 8109002B */ lb $t1, 0x2b($t0)
|
||||
/* 02F338 8002E738 00000000 */ nop
|
||||
/* 02F33C 8002E73C 11200009 */ beqz $t1, .L8002E764
|
||||
/* 02F340 8002E740 00000000 */ nop
|
||||
/* 02F344 8002E744 8D4AD384 */ lw $t2, %lo(gWaveBlockCount)($t2)
|
||||
/* 02F348 8002E748 00000000 */ nop
|
||||
/* 02F34C 8002E74C 11400005 */ beqz $t2, .L8002E764
|
||||
/* 02F350 8002E750 00000000 */ nop
|
||||
/* 02F354 8002E754 0C00BBBB */ jal func_8002EEEC
|
||||
/* 02F358 8002E758 02002025 */ move $a0, $s0
|
||||
/* 02F35C 8002E75C 1000003D */ b .L8002E854
|
||||
/* 02F360 8002E760 8FAD0070 */ lw $t5, 0x70($sp)
|
||||
.L8002E764:
|
||||
/* 02F364 8002E764 C6A0000C */ lwc1 $f0, 0xc($s5)
|
||||
/* 02F368 8002E768 C42CD0DC */ lwc1 $f12, %lo(D_8011D0DC)($at)
|
||||
/* 02F36C 8002E76C C6A20014 */ lwc1 $f2, 0x14($s5)
|
||||
/* 02F370 8002E770 460C0101 */ sub.s $f4, $f0, $f12
|
||||
/* 02F374 8002E774 8E6C0000 */ lw $t4, ($s3)
|
||||
/* 02F378 8002E778 444EF800 */ cfc1 $t6, $31
|
||||
/* 02F37C 8002E77C 00105880 */ sll $t3, $s0, 2
|
||||
/* 02F380 8002E780 35C10003 */ ori $at, $t6, 3
|
||||
/* 02F384 8002E784 38210002 */ xori $at, $at, 2
|
||||
/* 02F388 8002E788 44C1F800 */ ctc1 $at, $31
|
||||
/* 02F38C 8002E78C 3C018012 */ lui $at, %hi(D_8011D0E0) # $at, 0x8012
|
||||
/* 02F390 8002E790 460022A4 */ cvt.w.s $f10, $f4
|
||||
/* 02F394 8002E794 C42ED0E0 */ lwc1 $f14, %lo(D_8011D0E0)($at)
|
||||
/* 02F398 8002E798 44CEF800 */ ctc1 $t6, $31
|
||||
/* 02F39C 8002E79C 44055000 */ mfc1 $a1, $f10
|
||||
/* 02F3A0 8002E7A0 460E1181 */ sub.s $f6, $f2, $f14
|
||||
/* 02F3A4 8002E7A4 8D8D0008 */ lw $t5, 8($t4)
|
||||
/* 02F3A8 8002E7A8 444FF800 */ cfc1 $t7, $31
|
||||
/* 02F3AC 8002E7AC 01705823 */ subu $t3, $t3, $s0
|
||||
/* 02F3B0 8002E7B0 35E10003 */ ori $at, $t7, 3
|
||||
/* 02F3B4 8002E7B4 38210002 */ xori $at, $at, 2
|
||||
/* 02F3B8 8002E7B8 44C1F800 */ ctc1 $at, $31
|
||||
/* 02F3BC 8002E7BC 000B5880 */ sll $t3, $t3, 2
|
||||
/* 02F3C0 8002E7C0 46003224 */ cvt.w.s $f8, $f6
|
||||
/* 02F3C4 8002E7C4 016D2021 */ addu $a0, $t3, $t5
|
||||
/* 02F3C8 8002E7C8 44CFF800 */ ctc1 $t7, $31
|
||||
/* 02F3CC 8002E7CC 44064000 */ mfc1 $a2, $f8
|
||||
/* 02F3D0 8002E7D0 460C0100 */ add.s $f4, $f0, $f12
|
||||
/* 02F3D4 8002E7D4 4458F800 */ cfc1 $t8, $31
|
||||
/* 02F3D8 8002E7D8 00000000 */ nop
|
||||
/* 02F3DC 8002E7DC 37010003 */ ori $at, $t8, 3
|
||||
/* 02F3E0 8002E7E0 38210002 */ xori $at, $at, 2
|
||||
/* 02F3E4 8002E7E4 44C1F800 */ ctc1 $at, $31
|
||||
/* 02F3E8 8002E7E8 00000000 */ nop
|
||||
/* 02F3EC 8002E7EC 460022A4 */ cvt.w.s $f10, $f4
|
||||
/* 02F3F0 8002E7F0 44D8F800 */ ctc1 $t8, $31
|
||||
/* 02F3F4 8002E7F4 44075000 */ mfc1 $a3, $f10
|
||||
/* 02F3F8 8002E7F8 460E1180 */ add.s $f6, $f2, $f14
|
||||
/* 02F3FC 8002E7FC 4459F800 */ cfc1 $t9, $31
|
||||
/* 02F400 8002E800 00000000 */ nop
|
||||
/* 02F404 8002E804 37210003 */ ori $at, $t9, 3
|
||||
/* 02F408 8002E808 38210002 */ xori $at, $at, 2
|
||||
/* 02F40C 8002E80C 44C1F800 */ ctc1 $at, $31
|
||||
/* 02F410 8002E810 00000000 */ nop
|
||||
/* 02F414 8002E814 46003224 */ cvt.w.s $f8, $f6
|
||||
/* 02F418 8002E818 44084000 */ mfc1 $t0, $f8
|
||||
/* 02F41C 8002E81C 44D9F800 */ ctc1 $t9, $31
|
||||
/* 02F420 8002E820 0C00C537 */ jal func_800314DC
|
||||
/* 02F424 8002E824 AFA80010 */ sw $t0, 0x10($sp)
|
||||
/* 02F428 8002E828 8E290000 */ lw $t1, ($s1)
|
||||
/* 02F42C 8002E82C 8E6C0000 */ lw $t4, ($s3)
|
||||
/* 02F430 8002E830 01340019 */ multu $t1, $s4
|
||||
/* 02F434 8002E834 8D8B0004 */ lw $t3, 4($t4)
|
||||
/* 02F438 8002E838 00402825 */ move $a1, $v0
|
||||
/* 02F43C 8002E83C 02C03025 */ move $a2, $s6
|
||||
/* 02F440 8002E840 00005012 */ mflo $t2
|
||||
/* 02F444 8002E844 014B2021 */ addu $a0, $t2, $t3
|
||||
/* 02F448 8002E848 0C00BA41 */ jal func_8002E904
|
||||
/* 02F44C 8002E84C 00000000 */ nop
|
||||
/* 02F450 8002E850 8FAD0070 */ lw $t5, 0x70($sp)
|
||||
.L8002E854:
|
||||
/* 02F454 8002E854 26520001 */ addiu $s2, $s2, 1
|
||||
/* 02F458 8002E858 164DFFAA */ bne $s2, $t5, .L8002E704
|
||||
/* 02F45C 8002E85C 26310004 */ addiu $s1, $s1, 4
|
||||
.L8002E860:
|
||||
/* 02F460 8002E860 3C0E8012 */ lui $t6, %hi(D_8011C230) # $t6, 0x8012
|
||||
/* 02F464 8002E864 8DCEC230 */ lw $t6, %lo(D_8011C230)($t6)
|
||||
/* 02F468 8002E868 00000000 */ nop
|
||||
/* 02F46C 8002E86C 19C00010 */ blez $t6, .L8002E8B0
|
||||
/* 02F470 8002E870 00000000 */ nop
|
||||
/* 02F474 8002E874 8EAF0054 */ lw $t7, 0x54($s5)
|
||||
/* 02F478 8002E878 00000000 */ nop
|
||||
/* 02F47C 8002E87C 11E00008 */ beqz $t7, .L8002E8A0
|
||||
/* 02F480 8002E880 00000000 */ nop
|
||||
/* 02F484 8002E884 16C00006 */ bnez $s6, .L8002E8A0
|
||||
/* 02F488 8002E888 00000000 */ nop
|
||||
/* 02F48C 8002E88C 0C00BE99 */ jal func_8002FA64
|
||||
/* 02F490 8002E890 00000000 */ nop
|
||||
/* 02F494 8002E894 8EB80054 */ lw $t8, 0x54($s5)
|
||||
/* 02F498 8002E898 00000000 */ nop
|
||||
/* 02F49C 8002E89C E7000000 */ swc1 $f0, ($t8)
|
||||
.L8002E8A0:
|
||||
/* 02F4A0 8002E8A0 0C00BCAB */ jal func_8002F2AC
|
||||
/* 02F4A4 8002E8A4 00000000 */ nop
|
||||
/* 02F4A8 8002E8A8 0C00BD10 */ jal func_8002F440
|
||||
/* 02F4AC 8002E8AC 00000000 */ nop
|
||||
.L8002E8B0:
|
||||
/* 02F4B0 8002E8B0 16C00006 */ bnez $s6, .L8002E8CC
|
||||
/* 02F4B4 8002E8B4 3C098012 */ lui $t1, %hi(D_8011D364) # $t1, 0x8012
|
||||
/* 02F4B8 8002E8B8 3C198012 */ lui $t9, %hi(D_8011D364) # $t9, 0x8012
|
||||
/* 02F4BC 8002E8BC 8F39D364 */ lw $t9, %lo(D_8011D364)($t9)
|
||||
/* 02F4C0 8002E8C0 8EA80050 */ lw $t0, 0x50($s5)
|
||||
/* 02F4C4 8002E8C4 10000005 */ b .L8002E8DC
|
||||
/* 02F4C8 8002E8C8 A519000A */ sh $t9, 0xa($t0)
|
||||
.L8002E8CC:
|
||||
/* 02F4CC 8002E8CC 8D29D364 */ lw $t1, %lo(D_8011D364)($t1)
|
||||
/* 02F4D0 8002E8D0 8EAC0058 */ lw $t4, 0x58($s5)
|
||||
/* 02F4D4 8002E8D4 00000000 */ nop
|
||||
/* 02F4D8 8002E8D8 A589000A */ sh $t1, 0xa($t4)
|
||||
.L8002E8DC:
|
||||
/* 02F4DC 8002E8DC 8FBF0044 */ lw $ra, 0x44($sp)
|
||||
/* 02F4E0 8002E8E0 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 02F4E4 8002E8E4 8FB1002C */ lw $s1, 0x2c($sp)
|
||||
/* 02F4E8 8002E8E8 8FB20030 */ lw $s2, 0x30($sp)
|
||||
/* 02F4EC 8002E8EC 8FB30034 */ lw $s3, 0x34($sp)
|
||||
/* 02F4F0 8002E8F0 8FB40038 */ lw $s4, 0x38($sp)
|
||||
/* 02F4F4 8002E8F4 8FB5003C */ lw $s5, 0x3c($sp)
|
||||
/* 02F4F8 8002E8F8 8FB60040 */ lw $s6, 0x40($sp)
|
||||
/* 02F4FC 8002E8FC 03E00008 */ jr $ra
|
||||
/* 02F500 8002E900 27BD0100 */ addiu $sp, $sp, 0x100
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
#define TV_TYPE_PAL 0
|
||||
#define TV_TYPE_MPAL 2
|
||||
|
||||
#define OS_TV_TYPE_PAL 0
|
||||
#define OS_TV_TYPE_NTSC 1
|
||||
#define OS_TV_TYPE_MPAL 2
|
||||
|
||||
#define RESET_TYPE_COLD_RESET 0
|
||||
#define RESET_TYPE_NMI 1
|
||||
#define RESET_TYPE_BOOT_DISK 2
|
||||
|
||||
+2
-2
@@ -92,8 +92,8 @@ s32 osPiWriteIo(uintptr_t devAddr, u32 data);
|
||||
s32 osPiReadIo(uintptr_t devAddr, u32 *data);
|
||||
s32 osPiRawReadIo(u32 devAddr, u32 *data);
|
||||
|
||||
s32 osPiRawStartDma(s32 dir, u32 cart_addr, void *dram_addr, size_t size);
|
||||
s32 osEPiRawStartDma(OSPiHandle *piHandle, s32 dir, u32 cart_addr, void *dram_addr, size_t size);
|
||||
s32 __osPiRawStartDma(s32 dir, u32 cart_addr, void *dram_addr, size_t size);
|
||||
s32 __osEPiRawStartDma(OSPiHandle *piHandle, s32 dir, u32 cart_addr, void *dram_addr, size_t size);
|
||||
s32 osEPiRawWriteIo(OSPiHandle *, u32 , u32);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
#ifndef COMMON_H
|
||||
#define COMMON_H
|
||||
|
||||
#define VERSION_77 77 // NA / PAL V1
|
||||
#define VERSION_79 79 // Japan
|
||||
#define VERSION_80 80 // NA / PAL V1.1
|
||||
|
||||
#define REGION_NA 1
|
||||
#define REGION_PAL 2
|
||||
#define REGION_JP 3
|
||||
|
||||
#if defined(VERSION_us_v77)
|
||||
#define Func80019808Checksum 0x35281
|
||||
#define ViewportFuncChecksum 0x585E
|
||||
#define TractionTableChecksum 0x1C65B
|
||||
#define ObjLoopGoldenBalloonChecksum 0xA597
|
||||
#define VERSION VERSION_77
|
||||
#define REGION REGION_NA
|
||||
#elif defined(VERSION_pal_v77)
|
||||
#define Func80019808Checksum 0x34E72
|
||||
#define ViewportFuncChecksum 0x59E5
|
||||
#define TractionTableChecksum 0x1C38F
|
||||
#define ObjLoopGoldenBalloonChecksum 0xA6FF
|
||||
#define VERSION VERSION_77
|
||||
#define REGION REGION_PAL
|
||||
#elif defined(VERSION_jpn_v79)
|
||||
#define Func80019808Checksum 0x34EA6
|
||||
#define ViewportFuncChecksum 0x592D
|
||||
#define TractionTableChecksum 0x1C9EC
|
||||
#define ObjLoopGoldenBalloonChecksum 0xA7C5
|
||||
#define VERSION VERSION_79
|
||||
#define REGION REGION_JP
|
||||
#elif defined(VERSION_us_v80)
|
||||
#define Func80019808Checksum 0x34B94
|
||||
#define ViewportFuncChecksum 0x5881
|
||||
#define TractionTableChecksum 0x1CA13
|
||||
#define ObjLoopGoldenBalloonChecksum 0xA745
|
||||
#define VERSION VERSION_80
|
||||
#define REGION REGION_NA
|
||||
#elif defined(VERSION_pal_v80)
|
||||
#define Func80019808Checksum 0x3507C
|
||||
#define ViewportFuncChecksum 0x580A
|
||||
#define TractionTableChecksum 0x1CE40
|
||||
#define ObjLoopGoldenBalloonChecksum 0xA6AF
|
||||
#define VERSION VERSION_80
|
||||
#define REGION REGION_PAL
|
||||
#else
|
||||
// Default to NA V1 if somehow we don't have a proper define.
|
||||
#define Func80019808Checksum 0x35281
|
||||
#define ViewportFuncChecksum 0x585E
|
||||
#define TractionTableChecksum 0x1C65B
|
||||
#define ObjLoopGoldenBalloonChecksum 0xA597
|
||||
#define VERSION VERSION_77
|
||||
#define REGION REGION_NA
|
||||
#endif
|
||||
|
||||
#endif // COMMON_H
|
||||
@@ -37,6 +37,13 @@
|
||||
#define STATIC_ASSERT(cond, msg) typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ALIGNED(x) __attribute__((aligned(x)))
|
||||
#else
|
||||
#define ALIGNED(x)
|
||||
#endif
|
||||
|
||||
// Align to 8-byte boundary for DMA requirements
|
||||
#ifdef __GNUC__
|
||||
#define ALIGNED8 __attribute__((aligned(8)))
|
||||
@@ -68,4 +75,12 @@
|
||||
// Used to make a u32 colour value look clearer. Transforms 0xFF0000FF to 255, 0, 0, 255
|
||||
#define COLOUR_RGBA32(r, g, b, a) (((r << 24) | (g << 16) | (b << 8) | a))
|
||||
|
||||
#define ALIGN8(val) (((val) + 7) & ~7)
|
||||
|
||||
#define STACK(stack, size) \
|
||||
u64 stack[ALIGN8(size) / sizeof(u64)]
|
||||
|
||||
#define STACK_START(stack) \
|
||||
((u8*)(stack) + sizeof(stack))
|
||||
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -1368,7 +1368,7 @@ typedef struct Object_Racer {
|
||||
/* 0x1FA */ s8 drifting;
|
||||
/* 0x1FB */ s8 unk1FB;
|
||||
/* 0x1FC */ u8 unk1FC;
|
||||
/* 0x1FD */ s8 unk1FD;
|
||||
/* 0x1FD */ s8 cameraIndex;
|
||||
/* 0x1FE */ u8 unk1FE;
|
||||
/* 0x1FF */ u8 unk1FF;
|
||||
/* 0x200 */ s8 transitionTimer;
|
||||
|
||||
@@ -5,47 +5,73 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "stacks.h"
|
||||
#include "lib/src/os/piint.h"
|
||||
#include "macros.h"
|
||||
|
||||
extern OSMesgQueue __osPiAccessQueue;
|
||||
extern u32 __osPiAccessQueueEnabled;
|
||||
extern OSDevMgr __osPiDevMgr;
|
||||
static OSThread piThread ALIGNED(0x8);
|
||||
static STACK(piThreadStack, OS_PIM_STACKSIZE) ALIGNED(0x10);
|
||||
|
||||
// bss variables
|
||||
OSThread piThread;
|
||||
u64 gPIMgrStack[0x20];
|
||||
OSMesgQueue piEventQueue;
|
||||
OSMesg piEventBuf[2];
|
||||
static OSMesgQueue piEventQueue ALIGNED(0x8);
|
||||
static OSMesg piEventBuf[1];
|
||||
|
||||
void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt) {
|
||||
OSDevMgr __osPiDevMgr = { 0 };
|
||||
|
||||
#ifndef RAREDIFFS
|
||||
OSPiHandle* __osPiTable = NULL;
|
||||
#if BUILD_VERSION >= VERSION_J
|
||||
OSPiHandle __Dom1SpeedParam ALIGNED(0x8);
|
||||
OSPiHandle __Dom2SpeedParam ALIGNED(0x8);
|
||||
OSPiHandle* __osCurrentHandle[2] ALIGNED(0x8) = { &__Dom1SpeedParam, &__Dom2SpeedParam };
|
||||
#else
|
||||
extern OSPiHandle CartRomHandle;
|
||||
extern OSPiHandle LeoDiskHandle;
|
||||
OSPiHandle* __osCurrentHandle[2] ALIGNED(0x8) = { &CartRomHandle, &LeoDiskHandle };
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) {
|
||||
u32 savedMask;
|
||||
OSPri oldPri;
|
||||
OSPri myPri;
|
||||
if (!__osPiDevMgr.active) {
|
||||
osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt);
|
||||
osCreateMesgQueue(&piEventQueue, (OSMesg*)&piEventBuf, 1);
|
||||
if (!__osPiAccessQueueEnabled)
|
||||
__osPiCreateAccessQueue();
|
||||
osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg)0x22222222);
|
||||
oldPri = -1;
|
||||
myPri = osGetThreadPri(NULL);
|
||||
if (myPri < pri) {
|
||||
oldPri = myPri;
|
||||
osSetThreadPri(NULL, pri);
|
||||
}
|
||||
savedMask = __osDisableInt();
|
||||
__osPiDevMgr.active = 1;
|
||||
__osPiDevMgr.thread = &piThread;
|
||||
__osPiDevMgr.cmdQueue = cmdQ;
|
||||
__osPiDevMgr.evtQueue = &piEventQueue;
|
||||
__osPiDevMgr.acsQueue = &__osPiAccessQueue;
|
||||
__osPiDevMgr.dma = osPiRawStartDma;
|
||||
__osPiDevMgr.edma = osEPiRawStartDma;
|
||||
|
||||
osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, &gPIMgrStack[0x20], pri);
|
||||
osStartThread(&piThread);
|
||||
__osRestoreInt(savedMask);
|
||||
if (oldPri != -1) {
|
||||
osSetThreadPri(NULL, oldPri);
|
||||
}
|
||||
#ifdef _DEBUG
|
||||
if ((pri < OS_PRIORITY_IDLE) || (pri > OS_PRIORITY_MAX)) {
|
||||
__osError(ERR_OSCREATEPIMANAGER, 1, pri);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (__osPiDevMgr.active) {
|
||||
return;
|
||||
}
|
||||
osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt);
|
||||
osCreateMesgQueue(&piEventQueue, (OSMesg*)piEventBuf, 1);
|
||||
|
||||
if (!__osPiAccessQueueEnabled) {
|
||||
__osPiCreateAccessQueue();
|
||||
}
|
||||
|
||||
osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg)0x22222222);
|
||||
oldPri = -1;
|
||||
myPri = osGetThreadPri(NULL);
|
||||
|
||||
if (myPri < pri) {
|
||||
oldPri = myPri;
|
||||
osSetThreadPri(NULL, pri);
|
||||
}
|
||||
|
||||
savedMask = __osDisableInt();
|
||||
__osPiDevMgr.active = 1;
|
||||
__osPiDevMgr.thread = &piThread;
|
||||
__osPiDevMgr.cmdQueue = cmdQ;
|
||||
__osPiDevMgr.evtQueue = &piEventQueue;
|
||||
__osPiDevMgr.acsQueue = &__osPiAccessQueue;
|
||||
__osPiDevMgr.dma = __osPiRawStartDma;
|
||||
__osPiDevMgr.edma = __osEPiRawStartDma;
|
||||
osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, STACK_START(piThreadStack), pri);
|
||||
osStartThread(&piThread);
|
||||
__osRestoreInt(savedMask);
|
||||
|
||||
if (oldPri != -1) {
|
||||
osSetThreadPri(NULL, oldPri);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
// Used for __osException, but .bss file order is weird. Need to fix later.
|
||||
u8 leoDiskStack[16]; // technically should have a OS_LEO_STACKSIZE or something.
|
||||
// This is something like 4096 in libreultra...
|
||||
|
||||
//This has been blanked out for some reason
|
||||
s32 __osLeoInterrupt(void) {
|
||||
return 0;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "PR/rcp.h"
|
||||
|
||||
s32 osEPiRawStartDma(OSPiHandle *pihandle, s32 dir, u32 cart_addr, void *dram_addr, u32 size) {
|
||||
s32 __osEPiRawStartDma(OSPiHandle *pihandle, s32 dir, u32 cart_addr, void *dram_addr, u32 size) {
|
||||
register int status;
|
||||
|
||||
status = IO_READ(PI_STATUS_REG);
|
||||
|
||||
@@ -18,6 +18,7 @@ OSTime osClockRate = OS_CLOCK_RATE;
|
||||
u32 __osShutdown = 0;
|
||||
u32 __OSGlobalIntMask = OS_IM_ALL;
|
||||
s32 gLeoFound = FALSE;
|
||||
u32 __osFinalrom;
|
||||
s32 __osLeoInterrupt(void);
|
||||
|
||||
extern s32 osViClock; //This is defined in another file somehow
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "PR/rcp.h"
|
||||
|
||||
s32 osPiRawStartDma(s32 direction, u32 devAddr, void *dramAddr, u32 size) {
|
||||
s32 __osPiRawStartDma(s32 direction, u32 devAddr, void *dramAddr, u32 size) {
|
||||
register int status;
|
||||
status = IO_READ(PI_STATUS_REG);
|
||||
while (status & (PI_STATUS_DMA_BUSY | PI_STATUS_IO_BUSY | PI_STATUS_ERROR)) {
|
||||
|
||||
@@ -12,8 +12,6 @@ extern u32 __osBaseCounter;
|
||||
extern u32 __osViIntrCount;
|
||||
|
||||
OSDevMgr __osViDevMgr = {0};
|
||||
u64 gThread30Stack[0x400];
|
||||
u32 __osFinalrom;
|
||||
|
||||
extern OSThread viThread;
|
||||
extern OSMesgQueue viEventQueue;
|
||||
|
||||
+4
-3
@@ -39,7 +39,7 @@ u8 gBlockVoiceLimitChange = FALSE;
|
||||
/************ .bss ************/
|
||||
|
||||
// The audio heap is located at the start of the BSS section.
|
||||
u8 gBssSectionStart[AUDIO_HEAP_SIZE];
|
||||
u8 gAudioHeapStack[AUDIO_HEAP_SIZE];
|
||||
|
||||
ALHeap gALHeap;
|
||||
ALSeqFile *gSequenceTable;
|
||||
@@ -50,7 +50,7 @@ u8 gCurrentJingleID;
|
||||
s32 gMusicTempo;
|
||||
u32 *gSeqLengthTable;
|
||||
ALBankFile *gSequenceBank;
|
||||
ALBankFile *gSoundBank;
|
||||
ALBankFile *gSoundBank; // Official Name: sfxBankPtr
|
||||
SoundData *gSoundTable;
|
||||
MusicData *gSeqSoundTable;
|
||||
s32 gSoundCount;
|
||||
@@ -89,7 +89,7 @@ void audio_init(OSSched *sc) {
|
||||
audioMgrConfig audConfig;
|
||||
|
||||
seqLength = 0;
|
||||
alHeapInit(&gALHeap, gBssSectionStart, sizeof(gBssSectionStart));
|
||||
alHeapInit(&gALHeap, gAudioHeapStack, sizeof(gAudioHeapStack));
|
||||
|
||||
addrPtr = (s32 *) load_asset_section_from_rom(ASSET_AUDIO_TABLE);
|
||||
gSoundBank = (ALBankFile *) mempool_alloc_safe(addrPtr[ASSET_AUDIO_2] - addrPtr[ASSET_AUDIO_1], COLOUR_TAG_CYAN);
|
||||
@@ -894,6 +894,7 @@ UNUSED void sound_pitch_set(SoundMask *soundMask, u32 pitch) {
|
||||
|
||||
/**
|
||||
* Return the number of playable sounds in the audio table.
|
||||
* Official name: amGetSfxCount
|
||||
*/
|
||||
u16 sound_count(void) {
|
||||
return gSoundBank->bankArray[0]->instArray[0]->soundCount;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user