mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
We are collecting silver coins in Pirate Lagoon. (2/8 silver coins) (#418)
* Match func_800C0B00 * Rename func_80065EA0 to camera_init * Match menu_audio_options_loop * Fix last commit * Couple small changes * Match 3 wave funcs * update README
This commit is contained in:
@@ -5,11 +5,11 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the
|
||||
Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time.
|
||||
|
||||
<!-- README_SCORE_SUMMARY_BEGIN -->
|
||||
As of October 6, 2023, this is our current score:
|
||||
As of October 10, 2023, this is our current score:
|
||||
|
||||
    Decomp progress: 56.60%
|
||||
    Decomp progress: 58.00%
|
||||
|
||||
    Documentation progress: 30.06%
|
||||
    Documentation progress: 31.11%
|
||||
<!-- README_SCORE_SUMMARY_END -->
|
||||
|
||||
---
|
||||
@@ -128,31 +128,31 @@ s32 is_drumstick_unlocked(void) {
|
||||
```
|
||||
|
||||
<!-- README_SCORE_BEGIN -->
|
||||
As of October 6th, 2023, this is our current score:
|
||||
As of October 10th, 2023, this is our current score:
|
||||
```
|
||||
=====================================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
-------------------------- 56.60% Complete --------------------------
|
||||
# Decompiled functions: 1592
|
||||
# GLOBAL_ASM remaining: 246
|
||||
# NON_MATCHING functions: 12
|
||||
# NON_EQUIVALENT WIP functions: 60
|
||||
---------------------------- Game Status ----------------------------
|
||||
Balloons: 27/47, Keys: 3/4, Trophies: 2/5
|
||||
T.T. Amulets: 3/4, Wizpig Amulets: 2/4
|
||||
---------------------------------------------------------------------
|
||||
We are collecting silver coins in Crescent Island. (3/8 silver coins)
|
||||
=====================================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
-------------------------- 30.06% Complete --------------------------
|
||||
# Documented functions: 656
|
||||
# Undocumented remaining: 914
|
||||
---------------------------- Game Status ----------------------------
|
||||
Balloons: 15/47, Keys: 1/4, Trophies: 1/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
---------------------------------------------------------------------
|
||||
We are racing in Snowball Valley. (Lap 3/3)
|
||||
=====================================================================
|
||||
===================================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
------------------------- 58.00% Complete -------------------------
|
||||
# Decompiled functions: 1606
|
||||
# GLOBAL_ASM remaining: 232
|
||||
# NON_MATCHING functions: 11
|
||||
# NON_EQUIVALENT WIP functions: 59
|
||||
--------------------------- Game Status ---------------------------
|
||||
Balloons: 28/47, Keys: 3/4, Trophies: 2/5
|
||||
T.T. Amulets: 3/4, Wizpig Amulets: 2/4
|
||||
-------------------------------------------------------------------
|
||||
We are collecting silver coins in Pirate Lagoon. (2/8 silver coins)
|
||||
===================================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
------------------------- 31.11% Complete -------------------------
|
||||
# Documented functions: 683
|
||||
# Undocumented remaining: 887
|
||||
--------------------------- Game Status ---------------------------
|
||||
Balloons: 16/47, Keys: 2/4, Trophies: 1/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
-------------------------------------------------------------------
|
||||
We are racing in Frosty Village. (Lap 2/3)
|
||||
===================================================================
|
||||
```
|
||||
<!-- README_SCORE_END -->
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ glabel D_800E709C
|
||||
.float 15000.0
|
||||
|
||||
.text
|
||||
glabel func_80065EA0
|
||||
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
|
||||
@@ -1,156 +0,0 @@
|
||||
glabel func_800BA288
|
||||
/* 0BAE88 800BA288 3C038013 */ lui $v1, %hi(D_8012A0E0) # $v1, 0x8013
|
||||
/* 0BAE8C 800BA28C 8C63A0E0 */ lw $v1, %lo(D_8012A0E0)($v1)
|
||||
/* 0BAE90 800BA290 27BDFFF0 */ addiu $sp, $sp, -0x10
|
||||
/* 0BAE94 800BA294 AFB00008 */ sw $s0, 8($sp)
|
||||
/* 0BAE98 800BA298 000570C0 */ sll $t6, $a1, 3
|
||||
/* 0BAE9C 800BA29C 00808025 */ move $s0, $a0
|
||||
/* 0BAEA0 800BA2A0 AFB1000C */ sw $s1, 0xc($sp)
|
||||
/* 0BAEA4 800BA2A4 01C02825 */ move $a1, $t6
|
||||
/* 0BAEA8 800BA2A8 1860007F */ blez $v1, .L800BA4A8
|
||||
/* 0BAEAC 800BA2AC 00001025 */ move $v0, $zero
|
||||
/* 0BAEB0 800BA2B0 3C0C800E */ lui $t4, %hi(D_800E30D4) # $t4, 0x800e
|
||||
/* 0BAEB4 800BA2B4 3C0B8013 */ lui $t3, %hi(D_80129FC8) # $t3, 0x8013
|
||||
/* 0BAEB8 800BA2B8 3C0A8013 */ lui $t2, %hi(D_8012A0E8) # $t2, 0x8013
|
||||
/* 0BAEBC 800BA2BC 3C09800E */ lui $t1, %hi(D_800E30D8) # $t1, 0x800e
|
||||
/* 0BAEC0 800BA2C0 252930D8 */ addiu $t1, %lo(D_800E30D8) # addiu $t1, $t1, 0x30d8
|
||||
/* 0BAEC4 800BA2C4 254AA0E8 */ addiu $t2, %lo(D_8012A0E8) # addiu $t2, $t2, -0x5f18
|
||||
/* 0BAEC8 800BA2C8 256B9FC8 */ addiu $t3, %lo(D_80129FC8) # addiu $t3, $t3, -0x6038
|
||||
/* 0BAECC 800BA2CC 258C30D4 */ addiu $t4, %lo(D_800E30D4) # addiu $t4, $t4, 0x30d4
|
||||
/* 0BAED0 800BA2D0 00003025 */ move $a2, $zero
|
||||
/* 0BAED4 800BA2D4 24110080 */ li $s1, 128
|
||||
/* 0BAED8 800BA2D8 240D0004 */ li $t5, 4
|
||||
.L800BA2DC:
|
||||
/* 0BAEDC 800BA2DC 8D240000 */ lw $a0, ($t1)
|
||||
/* 0BAEE0 800BA2E0 24180001 */ li $t8, 1
|
||||
/* 0BAEE4 800BA2E4 00863821 */ addu $a3, $a0, $a2
|
||||
/* 0BAEE8 800BA2E8 90EF000A */ lbu $t7, 0xa($a3)
|
||||
/* 0BAEEC 800BA2EC 90EE000B */ lbu $t6, 0xb($a3)
|
||||
/* 0BAEF0 800BA2F0 01F8C804 */ sllv $t9, $t8, $t7
|
||||
/* 0BAEF4 800BA2F4 000EC080 */ sll $t8, $t6, 2
|
||||
/* 0BAEF8 800BA2F8 01587821 */ addu $t7, $t2, $t8
|
||||
/* 0BAEFC 800BA2FC 8DEE0000 */ lw $t6, ($t7)
|
||||
/* 0BAF00 800BA300 00000000 */ nop
|
||||
/* 0BAF04 800BA304 032EC024 */ and $t8, $t9, $t6
|
||||
/* 0BAF08 800BA308 13000063 */ beqz $t8, .L800BA498
|
||||
/* 0BAF0C 800BA30C 00000000 */ nop
|
||||
/* 0BAF10 800BA310 8D6F0028 */ lw $t7, 0x28($t3)
|
||||
/* 0BAF14 800BA314 00001825 */ move $v1, $zero
|
||||
/* 0BAF18 800BA318 11E00035 */ beqz $t7, .L800BA3F0
|
||||
/* 0BAF1C 800BA31C 00000000 */ nop
|
||||
.L800BA320:
|
||||
/* 0BAF20 800BA320 8D240000 */ lw $a0, ($t1)
|
||||
/* 0BAF24 800BA324 8D990000 */ lw $t9, ($t4)
|
||||
/* 0BAF28 800BA328 00867021 */ addu $t6, $a0, $a2
|
||||
/* 0BAF2C 800BA32C 8DD8000C */ lw $t8, 0xc($t6)
|
||||
/* 0BAF30 800BA330 00000000 */ nop
|
||||
/* 0BAF34 800BA334 00187880 */ sll $t7, $t8, 2
|
||||
/* 0BAF38 800BA338 032F7021 */ addu $t6, $t9, $t7
|
||||
/* 0BAF3C 800BA33C 8DD80000 */ lw $t8, ($t6)
|
||||
/* 0BAF40 800BA340 240F00FF */ li $t7, 255
|
||||
/* 0BAF44 800BA344 0003C8C0 */ sll $t9, $v1, 3
|
||||
/* 0BAF48 800BA348 032F7004 */ sllv $t6, $t7, $t9
|
||||
/* 0BAF4C 800BA34C 030E7824 */ and $t7, $t8, $t6
|
||||
/* 0BAF50 800BA350 11E00011 */ beqz $t7, .L800BA398
|
||||
/* 0BAF54 800BA354 0002C0C0 */ sll $t8, $v0, 3
|
||||
/* 0BAF58 800BA358 0002C8C0 */ sll $t9, $v0, 3
|
||||
/* 0BAF5C 800BA35C 0322C823 */ subu $t9, $t9, $v0
|
||||
/* 0BAF60 800BA360 0019C880 */ sll $t9, $t9, 2
|
||||
/* 0BAF64 800BA364 0099C021 */ addu $t8, $a0, $t9
|
||||
/* 0BAF68 800BA368 00107080 */ sll $t6, $s0, 2
|
||||
/* 0BAF6C 800BA36C 030E7821 */ addu $t7, $t8, $t6
|
||||
/* 0BAF70 800BA370 01E33821 */ addu $a3, $t7, $v1
|
||||
/* 0BAF74 800BA374 90E80014 */ lbu $t0, 0x14($a3)
|
||||
/* 0BAF78 800BA378 00000000 */ nop
|
||||
/* 0BAF7C 800BA37C 00A8082A */ slt $at, $a1, $t0
|
||||
/* 0BAF80 800BA380 10200003 */ beqz $at, .L800BA390
|
||||
/* 0BAF84 800BA384 0105C823 */ subu $t9, $t0, $a1
|
||||
/* 0BAF88 800BA388 10000012 */ b .L800BA3D4
|
||||
/* 0BAF8C 800BA38C A0F90014 */ sb $t9, 0x14($a3)
|
||||
.L800BA390:
|
||||
/* 0BAF90 800BA390 10000010 */ b .L800BA3D4
|
||||
/* 0BAF94 800BA394 A0E00014 */ sb $zero, 0x14($a3)
|
||||
.L800BA398:
|
||||
/* 0BAF98 800BA398 0302C023 */ subu $t8, $t8, $v0
|
||||
/* 0BAF9C 800BA39C 0018C080 */ sll $t8, $t8, 2
|
||||
/* 0BAFA0 800BA3A0 00987021 */ addu $t6, $a0, $t8
|
||||
/* 0BAFA4 800BA3A4 00107880 */ sll $t7, $s0, 2
|
||||
/* 0BAFA8 800BA3A8 01CFC821 */ addu $t9, $t6, $t7
|
||||
/* 0BAFAC 800BA3AC 03233821 */ addu $a3, $t9, $v1
|
||||
/* 0BAFB0 800BA3B0 90F80014 */ lbu $t8, 0x14($a3)
|
||||
/* 0BAFB4 800BA3B4 00000000 */ nop
|
||||
/* 0BAFB8 800BA3B8 03054021 */ addu $t0, $t8, $a1
|
||||
/* 0BAFBC 800BA3BC 29010080 */ slti $at, $t0, 0x80
|
||||
/* 0BAFC0 800BA3C0 10200003 */ beqz $at, .L800BA3D0
|
||||
/* 0BAFC4 800BA3C4 00000000 */ nop
|
||||
/* 0BAFC8 800BA3C8 10000002 */ b .L800BA3D4
|
||||
/* 0BAFCC 800BA3CC A0E80014 */ sb $t0, 0x14($a3)
|
||||
.L800BA3D0:
|
||||
/* 0BAFD0 800BA3D0 A0F10014 */ sb $s1, 0x14($a3)
|
||||
.L800BA3D4:
|
||||
/* 0BAFD4 800BA3D4 24630001 */ addiu $v1, $v1, 1
|
||||
/* 0BAFD8 800BA3D8 146DFFD1 */ bne $v1, $t5, .L800BA320
|
||||
/* 0BAFDC 800BA3DC 00000000 */ nop
|
||||
/* 0BAFE0 800BA3E0 3C038013 */ lui $v1, %hi(D_8012A0E0) # $v1, 0x8013
|
||||
/* 0BAFE4 800BA3E4 8C63A0E0 */ lw $v1, %lo(D_8012A0E0)($v1)
|
||||
/* 0BAFE8 800BA3E8 1000002C */ b .L800BA49C
|
||||
/* 0BAFEC 800BA3EC 24420001 */ addiu $v0, $v0, 1
|
||||
.L800BA3F0:
|
||||
/* 0BAFF0 800BA3F0 8CEF000C */ lw $t7, 0xc($a3)
|
||||
/* 0BAFF4 800BA3F4 8D8E0000 */ lw $t6, ($t4)
|
||||
/* 0BAFF8 800BA3F8 000FC880 */ sll $t9, $t7, 2
|
||||
/* 0BAFFC 800BA3FC 01D9C021 */ addu $t8, $t6, $t9
|
||||
/* 0BB000 800BA400 8F0F0000 */ lw $t7, ($t8)
|
||||
/* 0BB004 800BA404 00101880 */ sll $v1, $s0, 2
|
||||
/* 0BB008 800BA408 11E00010 */ beqz $t7, .L800BA44C
|
||||
/* 0BB00C 800BA40C 000270C0 */ sll $t6, $v0, 3
|
||||
/* 0BB010 800BA410 01C27023 */ subu $t6, $t6, $v0
|
||||
/* 0BB014 800BA414 000E7080 */ sll $t6, $t6, 2
|
||||
/* 0BB018 800BA418 008EC821 */ addu $t9, $a0, $t6
|
||||
/* 0BB01C 800BA41C 03233821 */ addu $a3, $t9, $v1
|
||||
/* 0BB020 800BA420 90E80014 */ lbu $t0, 0x14($a3)
|
||||
/* 0BB024 800BA424 3C038013 */ lui $v1, %hi(D_8012A0E0) # $v1, 0x8013
|
||||
/* 0BB028 800BA428 00A8082A */ slt $at, $a1, $t0
|
||||
/* 0BB02C 800BA42C 10200003 */ beqz $at, .L800BA43C
|
||||
/* 0BB030 800BA430 0105C023 */ subu $t8, $t0, $a1
|
||||
/* 0BB034 800BA434 10000002 */ b .L800BA440
|
||||
/* 0BB038 800BA438 A0F80014 */ sb $t8, 0x14($a3)
|
||||
.L800BA43C:
|
||||
/* 0BB03C 800BA43C A0E00014 */ sb $zero, 0x14($a3)
|
||||
.L800BA440:
|
||||
/* 0BB040 800BA440 8C63A0E0 */ lw $v1, %lo(D_8012A0E0)($v1)
|
||||
/* 0BB044 800BA444 10000015 */ b .L800BA49C
|
||||
/* 0BB048 800BA448 24420001 */ addiu $v0, $v0, 1
|
||||
.L800BA44C:
|
||||
/* 0BB04C 800BA44C 000278C0 */ sll $t7, $v0, 3
|
||||
/* 0BB050 800BA450 01E27823 */ subu $t7, $t7, $v0
|
||||
/* 0BB054 800BA454 000F7880 */ sll $t7, $t7, 2
|
||||
/* 0BB058 800BA458 008F7021 */ addu $t6, $a0, $t7
|
||||
/* 0BB05C 800BA45C 01C33821 */ addu $a3, $t6, $v1
|
||||
/* 0BB060 800BA460 90F90014 */ lbu $t9, 0x14($a3)
|
||||
/* 0BB064 800BA464 3C038013 */ lui $v1, %hi(D_8012A0E0) # $v1, 0x8013
|
||||
/* 0BB068 800BA468 03254021 */ addu $t0, $t9, $a1
|
||||
/* 0BB06C 800BA46C 29010080 */ slti $at, $t0, 0x80
|
||||
/* 0BB070 800BA470 10200006 */ beqz $at, .L800BA48C
|
||||
/* 0BB074 800BA474 00000000 */ nop
|
||||
/* 0BB078 800BA478 A0E80014 */ sb $t0, 0x14($a3)
|
||||
/* 0BB07C 800BA47C 3C038013 */ lui $v1, %hi(D_8012A0E0) # $v1, 0x8013
|
||||
/* 0BB080 800BA480 8C63A0E0 */ lw $v1, %lo(D_8012A0E0)($v1)
|
||||
/* 0BB084 800BA484 10000005 */ b .L800BA49C
|
||||
/* 0BB088 800BA488 24420001 */ addiu $v0, $v0, 1
|
||||
.L800BA48C:
|
||||
/* 0BB08C 800BA48C A0F10014 */ sb $s1, 0x14($a3)
|
||||
/* 0BB090 800BA490 8C63A0E0 */ lw $v1, %lo(D_8012A0E0)($v1)
|
||||
/* 0BB094 800BA494 00000000 */ nop
|
||||
.L800BA498:
|
||||
/* 0BB098 800BA498 24420001 */ addiu $v0, $v0, 1
|
||||
.L800BA49C:
|
||||
/* 0BB09C 800BA49C 0043082A */ slt $at, $v0, $v1
|
||||
/* 0BB0A0 800BA4A0 1420FF8E */ bnez $at, .L800BA2DC
|
||||
/* 0BB0A4 800BA4A4 24C6001C */ addiu $a2, $a2, 0x1c
|
||||
.L800BA4A8:
|
||||
/* 0BB0A8 800BA4A8 8FB00008 */ lw $s0, 8($sp)
|
||||
/* 0BB0AC 800BA4AC 8FB1000C */ lw $s1, 0xc($sp)
|
||||
/* 0BB0B0 800BA4B0 03E00008 */ jr $ra
|
||||
/* 0BB0B4 800BA4B4 27BD0010 */ addiu $sp, $sp, 0x10
|
||||
|
||||
@@ -1,278 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_800E92A8
|
||||
.float 6.64
|
||||
glabel D_800E92AC
|
||||
.float 89128.961
|
||||
glabel D_800E92B0
|
||||
.float 6.5333333
|
||||
glabel D_800E92B4
|
||||
.float 89128.961
|
||||
|
||||
.text
|
||||
glabel func_800BF634
|
||||
/* 0C0234 800BF634 3C03800E */ lui $v1, %hi(D_800E3190) # $v1, 0x800e
|
||||
/* 0C0238 800BF638 24633190 */ addiu $v1, %lo(D_800E3190) # addiu $v1, $v1, 0x3190
|
||||
/* 0C023C 800BF63C 8C6E0000 */ lw $t6, ($v1)
|
||||
/* 0C0240 800BF640 44856000 */ mtc1 $a1, $f12
|
||||
/* 0C0244 800BF644 44877000 */ mtc1 $a3, $f14
|
||||
/* 0C0248 800BF648 00803825 */ move $a3, $a0
|
||||
/* 0C024C 800BF64C AFA40000 */ sw $a0, ($sp)
|
||||
/* 0C0250 800BF650 AFA60008 */ sw $a2, 8($sp)
|
||||
/* 0C0254 800BF654 11C000E5 */ beqz $t6, .L800BF9EC
|
||||
/* 0C0258 800BF658 00002825 */ move $a1, $zero
|
||||
/* 0C025C 800BF65C 3C0F800E */ lui $t7, %hi(D_800E3194) # $t7, 0x800e
|
||||
/* 0C0260 800BF660 8DEF3194 */ lw $t7, %lo(D_800E3194)($t7)
|
||||
/* 0C0264 800BF664 0000C080 */ sll $t8, $zero, 2
|
||||
/* 0C0268 800BF668 00001025 */ move $v0, $zero
|
||||
/* 0C026C 800BF66C 00002025 */ move $a0, $zero
|
||||
/* 0C0270 800BF670 01F83021 */ addu $a2, $t7, $t8
|
||||
.L800BF674:
|
||||
/* 0C0274 800BF674 8CD90000 */ lw $t9, ($a2)
|
||||
/* 0C0278 800BF678 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0C027C 800BF67C 17200002 */ bnez $t9, .L800BF688
|
||||
/* 0C0280 800BF680 28410020 */ slti $at, $v0, 0x20
|
||||
/* 0C0284 800BF684 2404FFFF */ li $a0, -1
|
||||
.L800BF688:
|
||||
/* 0C0288 800BF688 10200003 */ beqz $at, .L800BF698
|
||||
/* 0C028C 800BF68C 24C60004 */ addiu $a2, $a2, 4
|
||||
/* 0C0290 800BF690 1080FFF8 */ beqz $a0, .L800BF674
|
||||
/* 0C0294 800BF694 00000000 */ nop
|
||||
.L800BF698:
|
||||
/* 0C0298 800BF698 108000D4 */ beqz $a0, .L800BF9EC
|
||||
/* 0C029C 800BF69C 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 0C02A0 800BF6A0 3C0B800E */ lui $t3, %hi(D_800E3194) # $t3, 0x800e
|
||||
/* 0C02A4 800BF6A4 8D6B3194 */ lw $t3, %lo(D_800E3194)($t3)
|
||||
/* 0C02A8 800BF6A8 00026080 */ sll $t4, $v0, 2
|
||||
/* 0C02AC 800BF6AC 3C04800E */ lui $a0, %hi(D_800E3188) # $a0, 0x800e
|
||||
/* 0C02B0 800BF6B0 016C6821 */ addu $t5, $t3, $t4
|
||||
/* 0C02B4 800BF6B4 24843188 */ addiu $a0, %lo(D_800E3188) # addiu $a0, $a0, 0x3188
|
||||
/* 0C02B8 800BF6B8 ADA70000 */ sw $a3, ($t5)
|
||||
/* 0C02BC 800BF6BC 8C8E0000 */ lw $t6, ($a0)
|
||||
/* 0C02C0 800BF6C0 3C188013 */ lui $t8, %hi(D_80129FC8 + 40) # $t8, 0x8013
|
||||
/* 0C02C4 800BF6C4 25CF0001 */ addiu $t7, $t6, 1
|
||||
/* 0C02C8 800BF6C8 AC8F0000 */ sw $t7, ($a0)
|
||||
/* 0C02CC 800BF6CC 8F189FF0 */ lw $t8, %lo(D_80129FC8 + 40)($t8)
|
||||
/* 0C02D0 800BF6D0 3C018013 */ lui $at, %hi(D_8012A0B8) # $at, 0x8013
|
||||
/* 0C02D4 800BF6D4 C420A0B8 */ lwc1 $f0, %lo(D_8012A0B8)($at)
|
||||
/* 0C02D8 800BF6D8 13000006 */ beqz $t8, .L800BF6F4
|
||||
/* 0C02DC 800BF6DC 3C198013 */ lui $t9, %hi(D_8012A0D0) # $t9, 0x8013
|
||||
/* 0C02E0 800BF6E0 3C013F00 */ li $at, 0x3F000000 # 0.500000
|
||||
/* 0C02E4 800BF6E4 44812000 */ mtc1 $at, $f4
|
||||
/* 0C02E8 800BF6E8 00000000 */ nop
|
||||
/* 0C02EC 800BF6EC 46040002 */ mul.s $f0, $f0, $f4
|
||||
/* 0C02F0 800BF6F0 00000000 */ nop
|
||||
.L800BF6F4:
|
||||
/* 0C02F4 800BF6F4 8F39A0D0 */ lw $t9, %lo(D_8012A0D0)($t9)
|
||||
/* 0C02F8 800BF6F8 460E6201 */ sub.s $f8, $f12, $f14
|
||||
/* 0C02FC 800BF6FC 44993000 */ mtc1 $t9, $f6
|
||||
/* 0C0300 800BF700 3C05800E */ lui $a1, %hi(D_800E318C) # $a1, 0x800e
|
||||
/* 0C0304 800BF704 468030A0 */ cvt.s.w $f2, $f6
|
||||
/* 0C0308 800BF708 8CA5318C */ lw $a1, %lo(D_800E318C)($a1)
|
||||
/* 0C030C 800BF70C 46024281 */ sub.s $f10, $f8, $f2
|
||||
/* 0C0310 800BF710 00000000 */ nop
|
||||
/* 0C0314 800BF714 46005403 */ div.s $f16, $f10, $f0
|
||||
/* 0C0318 800BF718 444BF800 */ cfc1 $t3, $31
|
||||
/* 0C031C 800BF71C 00000000 */ nop
|
||||
/* 0C0320 800BF720 35610003 */ ori $at, $t3, 3
|
||||
/* 0C0324 800BF724 38210002 */ xori $at, $at, 2
|
||||
/* 0C0328 800BF728 44C1F800 */ ctc1 $at, $31
|
||||
/* 0C032C 800BF72C 00000000 */ nop
|
||||
/* 0C0330 800BF730 460084A4 */ cvt.w.s $f18, $f16
|
||||
/* 0C0334 800BF734 44049000 */ mfc1 $a0, $f18
|
||||
/* 0C0338 800BF738 44CBF800 */ ctc1 $t3, $31
|
||||
/* 0C033C 800BF73C 0085082A */ slt $at, $a0, $a1
|
||||
/* 0C0340 800BF740 14200003 */ bnez $at, .L800BF750
|
||||
/* 0C0344 800BF744 00000000 */ nop
|
||||
/* 0C0348 800BF748 03E00008 */ jr $ra
|
||||
/* 0C034C 800BF74C 00001025 */ move $v0, $zero
|
||||
|
||||
.L800BF750:
|
||||
/* 0C0350 800BF750 460E6100 */ add.s $f4, $f12, $f14
|
||||
/* 0C0354 800BF754 46022181 */ sub.s $f6, $f4, $f2
|
||||
/* 0C0358 800BF758 00000000 */ nop
|
||||
/* 0C035C 800BF75C 46003203 */ div.s $f8, $f6, $f0
|
||||
/* 0C0360 800BF760 444CF800 */ cfc1 $t4, $31
|
||||
/* 0C0364 800BF764 00000000 */ nop
|
||||
/* 0C0368 800BF768 35810003 */ ori $at, $t4, 3
|
||||
/* 0C036C 800BF76C 38210002 */ xori $at, $at, 2
|
||||
/* 0C0370 800BF770 44C1F800 */ ctc1 $at, $31
|
||||
/* 0C0374 800BF774 00000000 */ nop
|
||||
/* 0C0378 800BF778 460042A4 */ cvt.w.s $f10, $f8
|
||||
/* 0C037C 800BF77C 44065000 */ mfc1 $a2, $f10
|
||||
/* 0C0380 800BF780 44CCF800 */ ctc1 $t4, $31
|
||||
/* 0C0384 800BF784 04C10003 */ bgez $a2, .L800BF794
|
||||
/* 0C0388 800BF788 00C5082A */ slt $at, $a2, $a1
|
||||
/* 0C038C 800BF78C 03E00008 */ jr $ra
|
||||
/* 0C0390 800BF790 00001025 */ move $v0, $zero
|
||||
|
||||
.L800BF794:
|
||||
/* 0C0394 800BF794 04810002 */ bgez $a0, .L800BF7A0
|
||||
/* 0C0398 800BF798 00026180 */ sll $t4, $v0, 6
|
||||
/* 0C039C 800BF79C 00002025 */ move $a0, $zero
|
||||
.L800BF7A0:
|
||||
/* 0C03A0 800BF7A0 14200002 */ bnez $at, .L800BF7AC
|
||||
/* 0C03A4 800BF7A4 240A00FF */ li $t2, 255
|
||||
/* 0C03A8 800BF7A8 24A6FFFF */ addiu $a2, $a1, -1
|
||||
.L800BF7AC:
|
||||
/* 0C03AC 800BF7AC 00C4082A */ slt $at, $a2, $a0
|
||||
/* 0C03B0 800BF7B0 14200017 */ bnez $at, .L800BF810
|
||||
/* 0C03B4 800BF7B4 00802825 */ move $a1, $a0
|
||||
/* 0C03B8 800BF7B8 3C09800E */ lui $t1, %hi(D_800E3184) # $t1, 0x800e
|
||||
/* 0C03BC 800BF7BC 25293184 */ addiu $t1, %lo(D_800E3184) # addiu $t1, $t1, 0x3184
|
||||
/* 0C03C0 800BF7C0 24C80001 */ addiu $t0, $a2, 1
|
||||
.L800BF7C4:
|
||||
/* 0C03C4 800BF7C4 8D2E0000 */ lw $t6, ($t1)
|
||||
/* 0C03C8 800BF7C8 000568C0 */ sll $t5, $a1, 3
|
||||
/* 0C03CC 800BF7CC 01AE2021 */ addu $a0, $t5, $t6
|
||||
/* 0C03D0 800BF7D0 908F0007 */ lbu $t7, 7($a0)
|
||||
/* 0C03D4 800BF7D4 24A50001 */ addiu $a1, $a1, 1
|
||||
/* 0C03D8 800BF7D8 154F000B */ bne $t2, $t7, .L800BF808
|
||||
/* 0C03DC 800BF7DC 00000000 */ nop
|
||||
/* 0C03E0 800BF7E0 90980000 */ lbu $t8, ($a0)
|
||||
/* 0C03E4 800BF7E4 00003025 */ move $a2, $zero
|
||||
/* 0C03E8 800BF7E8 11580005 */ beq $t2, $t8, .L800BF800
|
||||
/* 0C03EC 800BF7EC 00803825 */ move $a3, $a0
|
||||
.L800BF7F0:
|
||||
/* 0C03F0 800BF7F0 90F90001 */ lbu $t9, 1($a3)
|
||||
/* 0C03F4 800BF7F4 24C60001 */ addiu $a2, $a2, 1
|
||||
/* 0C03F8 800BF7F8 1559FFFD */ bne $t2, $t9, .L800BF7F0
|
||||
/* 0C03FC 800BF7FC 24E70001 */ addiu $a3, $a3, 1
|
||||
.L800BF800:
|
||||
/* 0C0400 800BF800 00865821 */ addu $t3, $a0, $a2
|
||||
/* 0C0404 800BF804 A1620000 */ sb $v0, ($t3)
|
||||
.L800BF808:
|
||||
/* 0C0408 800BF808 1505FFEE */ bne $t0, $a1, .L800BF7C4
|
||||
/* 0C040C 800BF80C 00000000 */ nop
|
||||
.L800BF810:
|
||||
/* 0C0410 800BF810 C7B00008 */ lwc1 $f16, 8($sp)
|
||||
/* 0C0414 800BF814 8C6D0000 */ lw $t5, ($v1)
|
||||
/* 0C0418 800BF818 460E8481 */ sub.s $f18, $f16, $f14
|
||||
/* 0C041C 800BF81C 018D2821 */ addu $a1, $t4, $t5
|
||||
/* 0C0420 800BF820 E4B20000 */ swc1 $f18, ($a1)
|
||||
/* 0C0424 800BF824 C7A40008 */ lwc1 $f4, 8($sp)
|
||||
/* 0C0428 800BF828 E4AC0008 */ swc1 $f12, 8($a1)
|
||||
/* 0C042C 800BF82C 460E2180 */ add.s $f6, $f4, $f14
|
||||
/* 0C0430 800BF830 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000
|
||||
/* 0C0434 800BF834 E4A60004 */ swc1 $f6, 4($a1)
|
||||
/* 0C0438 800BF838 460E7282 */ mul.s $f10, $f14, $f14
|
||||
/* 0C043C 800BF83C C7A80008 */ lwc1 $f8, 8($sp)
|
||||
/* 0C0440 800BF840 E4AE0010 */ swc1 $f14, 0x10($a1)
|
||||
/* 0C0444 800BF844 A4A20018 */ sh $v0, 0x18($a1)
|
||||
/* 0C0448 800BF848 E4AA0014 */ swc1 $f10, 0x14($a1)
|
||||
/* 0C044C 800BF84C E4A8000C */ swc1 $f8, 0xc($a1)
|
||||
/* 0C0450 800BF850 8FAE0010 */ lw $t6, 0x10($sp)
|
||||
# Used to access D_800E92B0 and D_800E92B4.
|
||||
/* 0C0454 800BF854 3C01800F */ lui $at, %hi(D_800E92B0) # $at, 0x800f
|
||||
/* 0C0458 800BF858 A4AE001A */ sh $t6, 0x1a($a1)
|
||||
/* 0C045C 800BF85C 8DEF0300 */ lw $t7, %lo(osTvType)($t7)
|
||||
/* 0C0460 800BF860 C7A00014 */ lwc1 $f0, 0x14($sp)
|
||||
/* 0C0464 800BF864 15E0002B */ bnez $t7, .L800BF914
|
||||
/* 0C0468 800BF868 00000000 */ nop
|
||||
/* 0C046C 800BF86C 3C01800F */ lui $at, %hi(D_800E92AC) # $at, 0x800f
|
||||
/* 0C0470 800BF870 C7A00014 */ lwc1 $f0, 0x14($sp)
|
||||
/* 0C0474 800BF874 C43392A8 */ lwc1 $f19, %lo(D_800E92A8)($at)
|
||||
/* 0C0478 800BF878 C43292AC */ lwc1 $f18, %lo(D_800E92AC)($at)
|
||||
/* 0C047C 800BF87C 46000421 */ cvt.d.s $f16, $f0
|
||||
/* 0C0480 800BF880 46328102 */ mul.d $f4, $f16, $f18
|
||||
/* 0C0484 800BF884 24190001 */ li $t9, 1
|
||||
/* 0C0488 800BF888 3C0141E0 */ li $at, 0x41E00000 # 28.000000
|
||||
/* 0C048C 800BF88C 4458F800 */ cfc1 $t8, $31
|
||||
/* 0C0490 800BF890 44D9F800 */ ctc1 $t9, $31
|
||||
/* 0C0494 800BF894 00000000 */ nop
|
||||
/* 0C0498 800BF898 462021A4 */ cvt.w.d $f6, $f4
|
||||
/* 0C049C 800BF89C 4459F800 */ cfc1 $t9, $31
|
||||
/* 0C04A0 800BF8A0 00000000 */ nop
|
||||
/* 0C04A4 800BF8A4 33390078 */ andi $t9, $t9, 0x78
|
||||
/* 0C04A8 800BF8A8 13200013 */ beqz $t9, .L800BF8F8
|
||||
/* 0C04AC 800BF8AC 00000000 */ nop
|
||||
/* 0C04B0 800BF8B0 44813800 */ mtc1 $at, $f7
|
||||
/* 0C04B4 800BF8B4 44803000 */ mtc1 $zero, $f6
|
||||
/* 0C04B8 800BF8B8 24190001 */ li $t9, 1
|
||||
/* 0C04BC 800BF8BC 46262181 */ sub.d $f6, $f4, $f6
|
||||
/* 0C04C0 800BF8C0 3C018000 */ lui $at, 0x8000
|
||||
/* 0C04C4 800BF8C4 44D9F800 */ ctc1 $t9, $31
|
||||
/* 0C04C8 800BF8C8 00000000 */ nop
|
||||
/* 0C04CC 800BF8CC 462031A4 */ cvt.w.d $f6, $f6
|
||||
/* 0C04D0 800BF8D0 4459F800 */ cfc1 $t9, $31
|
||||
/* 0C04D4 800BF8D4 00000000 */ nop
|
||||
/* 0C04D8 800BF8D8 33390078 */ andi $t9, $t9, 0x78
|
||||
/* 0C04DC 800BF8DC 17200004 */ bnez $t9, .L800BF8F0
|
||||
/* 0C04E0 800BF8E0 00000000 */ nop
|
||||
/* 0C04E4 800BF8E4 44193000 */ mfc1 $t9, $f6
|
||||
/* 0C04E8 800BF8E8 10000007 */ b .L800BF908
|
||||
/* 0C04EC 800BF8EC 0321C825 */ or $t9, $t9, $at
|
||||
.L800BF8F0:
|
||||
/* 0C04F0 800BF8F0 10000005 */ b .L800BF908
|
||||
/* 0C04F4 800BF8F4 2419FFFF */ li $t9, -1
|
||||
.L800BF8F8:
|
||||
/* 0C04F8 800BF8F8 44193000 */ mfc1 $t9, $f6
|
||||
/* 0C04FC 800BF8FC 00000000 */ nop
|
||||
/* 0C0500 800BF900 0720FFFB */ bltz $t9, .L800BF8F0
|
||||
/* 0C0504 800BF904 00000000 */ nop
|
||||
.L800BF908:
|
||||
/* 0C0508 800BF908 44D8F800 */ ctc1 $t8, $31
|
||||
/* 0C050C 800BF90C 10000029 */ b .L800BF9B4
|
||||
/* 0C0510 800BF910 ACB9001C */ sw $t9, 0x1c($a1)
|
||||
.L800BF914:
|
||||
/* 0C0514 800BF914 C42B92B0 */ lwc1 $f11, %lo(D_800E92B0)($at)
|
||||
/* 0C0518 800BF918 C42A92B4 */ lwc1 $f10, %lo(D_800E92B4)($at)
|
||||
/* 0C051C 800BF91C 46000221 */ cvt.d.s $f8, $f0
|
||||
/* 0C0520 800BF920 462A4402 */ mul.d $f16, $f8, $f10
|
||||
/* 0C0524 800BF924 240C0001 */ li $t4, 1
|
||||
/* 0C0528 800BF928 3C0141E0 */ li $at, 0x41E00000 # 28.000000
|
||||
/* 0C052C 800BF92C 444BF800 */ cfc1 $t3, $31
|
||||
/* 0C0530 800BF930 44CCF800 */ ctc1 $t4, $31
|
||||
/* 0C0534 800BF934 00000000 */ nop
|
||||
/* 0C0538 800BF938 462084A4 */ cvt.w.d $f18, $f16
|
||||
/* 0C053C 800BF93C 444CF800 */ cfc1 $t4, $31
|
||||
/* 0C0540 800BF940 00000000 */ nop
|
||||
/* 0C0544 800BF944 318C0078 */ andi $t4, $t4, 0x78
|
||||
/* 0C0548 800BF948 11800013 */ beqz $t4, .L800BF998
|
||||
/* 0C054C 800BF94C 00000000 */ nop
|
||||
/* 0C0550 800BF950 44819800 */ mtc1 $at, $f19
|
||||
/* 0C0554 800BF954 44809000 */ mtc1 $zero, $f18
|
||||
/* 0C0558 800BF958 240C0001 */ li $t4, 1
|
||||
/* 0C055C 800BF95C 46328481 */ sub.d $f18, $f16, $f18
|
||||
/* 0C0560 800BF960 3C018000 */ lui $at, 0x8000
|
||||
/* 0C0564 800BF964 44CCF800 */ ctc1 $t4, $31
|
||||
/* 0C0568 800BF968 00000000 */ nop
|
||||
/* 0C056C 800BF96C 462094A4 */ cvt.w.d $f18, $f18
|
||||
/* 0C0570 800BF970 444CF800 */ cfc1 $t4, $31
|
||||
/* 0C0574 800BF974 00000000 */ nop
|
||||
/* 0C0578 800BF978 318C0078 */ andi $t4, $t4, 0x78
|
||||
/* 0C057C 800BF97C 15800004 */ bnez $t4, .L800BF990
|
||||
/* 0C0580 800BF980 00000000 */ nop
|
||||
/* 0C0584 800BF984 440C9000 */ mfc1 $t4, $f18
|
||||
/* 0C0588 800BF988 10000007 */ b .L800BF9A8
|
||||
/* 0C058C 800BF98C 01816025 */ or $t4, $t4, $at
|
||||
.L800BF990:
|
||||
/* 0C0590 800BF990 10000005 */ b .L800BF9A8
|
||||
/* 0C0594 800BF994 240CFFFF */ li $t4, -1
|
||||
.L800BF998:
|
||||
/* 0C0598 800BF998 440C9000 */ mfc1 $t4, $f18
|
||||
/* 0C059C 800BF99C 00000000 */ nop
|
||||
/* 0C05A0 800BF9A0 0580FFFB */ bltz $t4, .L800BF990
|
||||
/* 0C05A4 800BF9A4 00000000 */ nop
|
||||
.L800BF9A8:
|
||||
/* 0C05A8 800BF9A8 44CBF800 */ ctc1 $t3, $31
|
||||
/* 0C05AC 800BF9AC ACAC001C */ sw $t4, 0x1c($a1)
|
||||
/* 0C05B0 800BF9B0 00000000 */ nop
|
||||
.L800BF9B4:
|
||||
/* 0C05B4 800BF9B4 3C014780 */ li $at, 0x47800000 # 65536.000000
|
||||
/* 0C05B8 800BF9B8 C7A20018 */ lwc1 $f2, 0x18($sp)
|
||||
/* 0C05BC 800BF9BC 44812000 */ mtc1 $at, $f4
|
||||
/* 0C05C0 800BF9C0 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* 0C05C4 800BF9C4 46022183 */ div.s $f6, $f4, $f2
|
||||
/* 0C05C8 800BF9C8 304D0001 */ andi $t5, $v0, 1
|
||||
/* 0C05CC 800BF9CC 304E0002 */ andi $t6, $v0, 2
|
||||
/* 0C05D0 800BF9D0 E4A60020 */ swc1 $f6, 0x20($a1)
|
||||
/* 0C05D4 800BF9D4 C7A8001C */ lwc1 $f8, 0x1c($sp)
|
||||
/* 0C05D8 800BF9D8 E4A00028 */ swc1 $f0, 0x28($a1)
|
||||
/* 0C05DC 800BF9DC A0AD0030 */ sb $t5, 0x30($a1)
|
||||
/* 0C05E0 800BF9E0 A0AE0031 */ sb $t6, 0x31($a1)
|
||||
/* 0C05E4 800BF9E4 E4A2002C */ swc1 $f2, 0x2c($a1)
|
||||
/* 0C05E8 800BF9E8 E4A80024 */ swc1 $f8, 0x24($a1)
|
||||
.L800BF9EC:
|
||||
/* 0C05EC 800BF9EC 00A01025 */ move $v0, $a1
|
||||
/* 0C05F0 800BF9F0 03E00008 */ jr $ra
|
||||
/* 0C05F4 800BF9F4 00000000 */ nop
|
||||
@@ -1,170 +0,0 @@
|
||||
glabel func_800BF9F8
|
||||
/* 0C05F8 800BF9F8 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0C05FC 800BF9FC E7B4000C */ swc1 $f20, 0xc($sp)
|
||||
/* 0C0600 800BFA00 4486A000 */ mtc1 $a2, $f20
|
||||
/* 0C0604 800BFA04 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 0C0608 800BFA08 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 0C060C 800BFA0C E7B50008 */ swc1 $f21, 8($sp)
|
||||
/* 0C0610 800BFA10 1080008A */ beqz $a0, .L800BFC3C
|
||||
/* 0C0614 800BFA14 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 0C0618 800BFA18 3C0E8013 */ lui $t6, %hi(D_80129FC8 + 40) # $t6, 0x8013
|
||||
/* 0C061C 800BFA1C 8DCE9FF0 */ lw $t6, %lo(D_80129FC8 + 40)($t6)
|
||||
/* 0C0620 800BFA20 3C018013 */ lui $at, %hi(D_8012A0B8) # $at, 0x8013
|
||||
/* 0C0624 800BFA24 C420A0B8 */ lwc1 $f0, %lo(D_8012A0B8)($at)
|
||||
/* 0C0628 800BFA28 11C00006 */ beqz $t6, .L800BFA44
|
||||
/* 0C062C 800BFA2C 00001025 */ move $v0, $zero
|
||||
/* 0C0630 800BFA30 3C013F00 */ li $at, 0x3F000000 # 0.500000
|
||||
/* 0C0634 800BFA34 44812000 */ mtc1 $at, $f4
|
||||
/* 0C0638 800BFA38 00000000 */ nop
|
||||
/* 0C063C 800BFA3C 46040002 */ mul.s $f0, $f0, $f4
|
||||
/* 0C0640 800BFA40 00000000 */ nop
|
||||
.L800BFA44:
|
||||
/* 0C0644 800BFA44 3C0D800E */ lui $t5, %hi(D_800E3184) # $t5, 0x800e
|
||||
/* 0C0648 800BFA48 3C0C800E */ lui $t4, %hi(D_800E318C) # $t4, 0x800e
|
||||
/* 0C064C 800BFA4C 3C0B8013 */ lui $t3, %hi(D_8012A0D0) # $t3, 0x8013
|
||||
/* 0C0650 800BFA50 94830018 */ lhu $v1, 0x18($a0)
|
||||
/* 0C0654 800BFA54 8FA8001C */ lw $t0, 0x1c($sp)
|
||||
/* 0C0658 800BFA58 256BA0D0 */ addiu $t3, %lo(D_8012A0D0) # addiu $t3, $t3, -0x5f30
|
||||
/* 0C065C 800BFA5C 258C318C */ addiu $t4, %lo(D_800E318C) # addiu $t4, $t4, 0x318c
|
||||
/* 0C0660 800BFA60 25AD3184 */ addiu $t5, %lo(D_800E3184) # addiu $t5, $t5, 0x3184
|
||||
/* 0C0664 800BFA64 241100FF */ li $s1, 255
|
||||
/* 0C0668 800BFA68 241000FF */ li $s0, 255
|
||||
.L800BFA6C:
|
||||
/* 0C066C 800BFA6C 8D6F0000 */ lw $t7, ($t3)
|
||||
/* 0C0670 800BFA70 C4820008 */ lwc1 $f2, 8($a0)
|
||||
/* 0C0674 800BFA74 448F3000 */ mtc1 $t7, $f6
|
||||
/* 0C0678 800BFA78 C48C0010 */ lwc1 $f12, 0x10($a0)
|
||||
/* 0C067C 800BFA7C 468033A0 */ cvt.s.w $f14, $f6
|
||||
/* 0C0680 800BFA80 8D870000 */ lw $a3, ($t4)
|
||||
/* 0C0684 800BFA84 24050001 */ li $a1, 1
|
||||
/* 0C0688 800BFA88 460C1201 */ sub.s $f8, $f2, $f12
|
||||
/* 0C068C 800BFA8C 460E4281 */ sub.s $f10, $f8, $f14
|
||||
/* 0C0690 800BFA90 00000000 */ nop
|
||||
/* 0C0694 800BFA94 46005403 */ div.s $f16, $f10, $f0
|
||||
/* 0C0698 800BFA98 4458F800 */ cfc1 $t8, $31
|
||||
/* 0C069C 800BFA9C 00000000 */ nop
|
||||
/* 0C06A0 800BFAA0 37010003 */ ori $at, $t8, 3
|
||||
/* 0C06A4 800BFAA4 38210002 */ xori $at, $at, 2
|
||||
/* 0C06A8 800BFAA8 44C1F800 */ ctc1 $at, $31
|
||||
/* 0C06AC 800BFAAC 00000000 */ nop
|
||||
/* 0C06B0 800BFAB0 460084A4 */ cvt.w.s $f18, $f16
|
||||
/* 0C06B4 800BFAB4 44069000 */ mfc1 $a2, $f18
|
||||
/* 0C06B8 800BFAB8 44D8F800 */ ctc1 $t8, $31
|
||||
/* 0C06BC 800BFABC 00C7082A */ slt $at, $a2, $a3
|
||||
/* 0C06C0 800BFAC0 14200003 */ bnez $at, .L800BFAD0
|
||||
/* 0C06C4 800BFAC4 00000000 */ nop
|
||||
/* 0C06C8 800BFAC8 10000004 */ b .L800BFADC
|
||||
/* 0C06CC 800BFACC 00002825 */ move $a1, $zero
|
||||
.L800BFAD0:
|
||||
/* 0C06D0 800BFAD0 04C10002 */ bgez $a2, .L800BFADC
|
||||
/* 0C06D4 800BFAD4 00000000 */ nop
|
||||
/* 0C06D8 800BFAD8 00003025 */ move $a2, $zero
|
||||
.L800BFADC:
|
||||
/* 0C06DC 800BFADC 10A00015 */ beqz $a1, .L800BFB34
|
||||
/* 0C06E0 800BFAE0 00000000 */ nop
|
||||
/* 0C06E4 800BFAE4 460C1100 */ add.s $f4, $f2, $f12
|
||||
/* 0C06E8 800BFAE8 460E2181 */ sub.s $f6, $f4, $f14
|
||||
/* 0C06EC 800BFAEC 00000000 */ nop
|
||||
/* 0C06F0 800BFAF0 46003203 */ div.s $f8, $f6, $f0
|
||||
/* 0C06F4 800BFAF4 4459F800 */ cfc1 $t9, $31
|
||||
/* 0C06F8 800BFAF8 00000000 */ nop
|
||||
/* 0C06FC 800BFAFC 37210003 */ ori $at, $t9, 3
|
||||
/* 0C0700 800BFB00 38210002 */ xori $at, $at, 2
|
||||
/* 0C0704 800BFB04 44C1F800 */ ctc1 $at, $31
|
||||
/* 0C0708 800BFB08 00000000 */ nop
|
||||
/* 0C070C 800BFB0C 460042A4 */ cvt.w.s $f10, $f8
|
||||
/* 0C0710 800BFB10 44085000 */ mfc1 $t0, $f10
|
||||
/* 0C0714 800BFB14 44D9F800 */ ctc1 $t9, $31
|
||||
/* 0C0718 800BFB18 05010003 */ bgez $t0, .L800BFB28
|
||||
/* 0C071C 800BFB1C 0107082A */ slt $at, $t0, $a3
|
||||
/* 0C0720 800BFB20 10000004 */ b .L800BFB34
|
||||
/* 0C0724 800BFB24 00002825 */ move $a1, $zero
|
||||
.L800BFB28:
|
||||
/* 0C0728 800BFB28 14200002 */ bnez $at, .L800BFB34
|
||||
/* 0C072C 800BFB2C 00000000 */ nop
|
||||
/* 0C0730 800BFB30 24E8FFFF */ addiu $t0, $a3, -1
|
||||
.L800BFB34:
|
||||
/* 0C0734 800BFB34 10A0002E */ beqz $a1, .L800BFBF0
|
||||
/* 0C0738 800BFB38 0106082A */ slt $at, $t0, $a2
|
||||
/* 0C073C 800BFB3C 1420002C */ bnez $at, .L800BFBF0
|
||||
/* 0C0740 800BFB40 00C02825 */ move $a1, $a2
|
||||
/* 0C0744 800BFB44 250A0001 */ addiu $t2, $t0, 1
|
||||
.L800BFB48:
|
||||
/* 0C0748 800BFB48 8DAF0000 */ lw $t7, ($t5)
|
||||
/* 0C074C 800BFB4C 000570C0 */ sll $t6, $a1, 3
|
||||
/* 0C0750 800BFB50 00003825 */ move $a3, $zero
|
||||
/* 0C0754 800BFB54 1040000F */ beqz $v0, .L800BFB94
|
||||
/* 0C0758 800BFB58 01CF3021 */ addu $a2, $t6, $t7
|
||||
/* 0C075C 800BFB5C 90D80007 */ lbu $t8, 7($a2)
|
||||
/* 0C0760 800BFB60 00000000 */ nop
|
||||
/* 0C0764 800BFB64 1618001F */ bne $s0, $t8, .L800BFBE4
|
||||
/* 0C0768 800BFB68 00000000 */ nop
|
||||
/* 0C076C 800BFB6C 90D90000 */ lbu $t9, ($a2)
|
||||
/* 0C0770 800BFB70 00000000 */ nop
|
||||
/* 0C0774 800BFB74 12190005 */ beq $s0, $t9, .L800BFB8C
|
||||
/* 0C0778 800BFB78 00000000 */ nop
|
||||
.L800BFB7C:
|
||||
/* 0C077C 800BFB7C 90CE0001 */ lbu $t6, 1($a2)
|
||||
/* 0C0780 800BFB80 24C60001 */ addiu $a2, $a2, 1
|
||||
/* 0C0784 800BFB84 160EFFFD */ bne $s0, $t6, .L800BFB7C
|
||||
/* 0C0788 800BFB88 00000000 */ nop
|
||||
.L800BFB8C:
|
||||
/* 0C078C 800BFB8C 10000015 */ b .L800BFBE4
|
||||
/* 0C0790 800BFB90 A0C30000 */ sb $v1, ($a2)
|
||||
.L800BFB94:
|
||||
/* 0C0794 800BFB94 00C74821 */ addu $t1, $a2, $a3
|
||||
.L800BFB98:
|
||||
/* 0C0798 800BFB98 912F0000 */ lbu $t7, ($t1)
|
||||
/* 0C079C 800BFB9C 28E10007 */ slti $at, $a3, 7
|
||||
/* 0C07A0 800BFBA0 146F000C */ bne $v1, $t7, .L800BFBD4
|
||||
/* 0C07A4 800BFBA4 00000000 */ nop
|
||||
/* 0C07A8 800BFBA8 10200007 */ beqz $at, .L800BFBC8
|
||||
/* 0C07AC 800BFBAC 00000000 */ nop
|
||||
.L800BFBB0:
|
||||
/* 0C07B0 800BFBB0 91380001 */ lbu $t8, 1($t1)
|
||||
/* 0C07B4 800BFBB4 24E70001 */ addiu $a3, $a3, 1
|
||||
/* 0C07B8 800BFBB8 28E10007 */ slti $at, $a3, 7
|
||||
/* 0C07BC 800BFBBC 25290001 */ addiu $t1, $t1, 1
|
||||
/* 0C07C0 800BFBC0 1420FFFB */ bnez $at, .L800BFBB0
|
||||
/* 0C07C4 800BFBC4 A138FFFF */ sb $t8, -1($t1)
|
||||
.L800BFBC8:
|
||||
/* 0C07C8 800BFBC8 A1310000 */ sb $s1, ($t1)
|
||||
/* 0C07CC 800BFBCC 24E70001 */ addiu $a3, $a3, 1
|
||||
/* 0C07D0 800BFBD0 25290001 */ addiu $t1, $t1, 1
|
||||
.L800BFBD4:
|
||||
/* 0C07D4 800BFBD4 24E70001 */ addiu $a3, $a3, 1
|
||||
/* 0C07D8 800BFBD8 28E10008 */ slti $at, $a3, 8
|
||||
/* 0C07DC 800BFBDC 1420FFEE */ bnez $at, .L800BFB98
|
||||
/* 0C07E0 800BFBE0 25290001 */ addiu $t1, $t1, 1
|
||||
.L800BFBE4:
|
||||
/* 0C07E4 800BFBE4 24A50001 */ addiu $a1, $a1, 1
|
||||
/* 0C07E8 800BFBE8 1545FFD7 */ bne $t2, $a1, .L800BFB48
|
||||
/* 0C07EC 800BFBEC 00000000 */ nop
|
||||
.L800BFBF0:
|
||||
/* 0C07F0 800BFBF0 1440000E */ bnez $v0, .L800BFC2C
|
||||
/* 0C07F4 800BFBF4 24010002 */ li $at, 2
|
||||
/* 0C07F8 800BFBF8 C4920008 */ lwc1 $f18, 8($a0)
|
||||
/* 0C07FC 800BFBFC C7B00034 */ lwc1 $f16, 0x34($sp)
|
||||
/* 0C0800 800BFC00 C48E000C */ lwc1 $f14, 0xc($a0)
|
||||
/* 0C0804 800BFC04 46109400 */ add.s $f16, $f18, $f16
|
||||
/* 0C0808 800BFC08 C4920000 */ lwc1 $f18, ($a0)
|
||||
/* 0C080C 800BFC0C C48C0004 */ lwc1 $f12, 4($a0)
|
||||
/* 0C0810 800BFC10 46147380 */ add.s $f14, $f14, $f20
|
||||
/* 0C0814 800BFC14 E4900008 */ swc1 $f16, 8($a0)
|
||||
/* 0C0818 800BFC18 46149480 */ add.s $f18, $f18, $f20
|
||||
/* 0C081C 800BFC1C E48E000C */ swc1 $f14, 0xc($a0)
|
||||
/* 0C0820 800BFC20 46146300 */ add.s $f12, $f12, $f20
|
||||
/* 0C0824 800BFC24 E4920000 */ swc1 $f18, ($a0)
|
||||
/* 0C0828 800BFC28 E48C0004 */ swc1 $f12, 4($a0)
|
||||
.L800BFC2C:
|
||||
/* 0C082C 800BFC2C 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0C0830 800BFC30 1441FF8E */ bne $v0, $at, .L800BFA6C
|
||||
/* 0C0834 800BFC34 00000000 */ nop
|
||||
/* 0C0838 800BFC38 AFA8001C */ sw $t0, 0x1c($sp)
|
||||
.L800BFC3C:
|
||||
/* 0C083C 800BFC3C C7B50008 */ lwc1 $f21, 8($sp)
|
||||
/* 0C0840 800BFC40 C7B4000C */ lwc1 $f20, 0xc($sp)
|
||||
/* 0C0844 800BFC44 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 0C0848 800BFC48 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 0C084C 800BFC4C 03E00008 */ jr $ra
|
||||
/* 0C0850 800BFC50 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
@@ -41,6 +41,6 @@ typedef s32 ptrdiff_t;
|
||||
|
||||
typedef float Matrix[4][4];
|
||||
typedef s16 VertexList;
|
||||
typedef s8 TriangleList;
|
||||
typedef u8 TriangleList;
|
||||
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ typedef s32 ptrdiff_t;
|
||||
typedef float Matrix[4][4];
|
||||
typedef s32 MatrixS[4][4];
|
||||
typedef s16 VertexList;
|
||||
typedef s8 TriangleList;
|
||||
typedef u8 TriangleList;
|
||||
|
||||
#if defined(__sgi)
|
||||
#define stubbed_printf
|
||||
|
||||
+3
-3
@@ -141,7 +141,7 @@ extern s32 D_B0000578;
|
||||
/**
|
||||
* Official Name: camInit
|
||||
*/
|
||||
void func_80065EA0(void) {
|
||||
void camera_init(void) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
u32 stat;
|
||||
@@ -172,11 +172,11 @@ void func_80065EA0(void) {
|
||||
}
|
||||
|
||||
guPerspectiveF(gPerspectiveMatrixF, &perspNorm, CAMERA_DEFAULT_FOV, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE);
|
||||
f32_matrix_to_s16_matrix((Matrix *) gPerspectiveMatrixF, (MatrixS *) gProjectionMatrixS);
|
||||
f32_matrix_to_s16_matrix(&gPerspectiveMatrixF, &gProjectionMatrixS);
|
||||
gCurCamFOV = CAMERA_DEFAULT_FOV;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/camera/func_80065EA0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/camera/camera_init.s")
|
||||
#endif
|
||||
|
||||
void func_80066060(s32 arg0, s32 arg1) {
|
||||
|
||||
+1
-1
@@ -130,7 +130,7 @@ void apply_head_turning_matrix(Gfx **dlist, MatrixS **mtx, Object_68 *obj68, s16
|
||||
void apply_object_shear_matrix(Gfx **dlist, MatrixS **mtx, Object *arg2, Object *arg3, f32 shear);
|
||||
|
||||
// Non Matching
|
||||
void func_80065EA0(void);
|
||||
void camera_init(void);
|
||||
void func_80066CDC(Gfx **dlist, MatrixS **mats);
|
||||
|
||||
#endif
|
||||
|
||||
+74
-75
@@ -64,13 +64,13 @@ TriangleList D_800E32AC[12] = {
|
||||
0x08, 0x12, 0x14, 0x16,
|
||||
};
|
||||
|
||||
s8 D_800E32B8[24] = {
|
||||
u8 D_800E32B8[24] = {
|
||||
0, 3, 1, 1, 3, 4, 1, 4,
|
||||
2, 2, 4, 5, 6, 9, 7, 7,
|
||||
9, 10, 7, 10, 8, 8, 10, 11,
|
||||
};
|
||||
|
||||
s8 D_800E32D0[12] = {
|
||||
u8 D_800E32D0[12] = {
|
||||
-1, -1, 0, -1, -1, 0, 0, -1, -1, 0, -1, -1,
|
||||
};
|
||||
|
||||
@@ -80,19 +80,19 @@ VertexList D_800E32DC[24] = {
|
||||
0xFF60, 0xFF88, 0x00A0, 0xFF88, 0x01E0, 0xFF88, 0x0320, 0xFF88,
|
||||
};
|
||||
|
||||
s8 D_800E330C[12] = {
|
||||
TriangleList D_800E330C[12] = {
|
||||
0, 2, 4, 12, 14, 8, 10, 18, 20, 22, 0, 0,
|
||||
};
|
||||
|
||||
s8 D_800E3318[12] = {
|
||||
TriangleList D_800E3318[12] = {
|
||||
4, 6, 8, 16, 18, 4, 6, 14, 16, 18, 0, 0,
|
||||
};
|
||||
|
||||
s8 D_800E3324[20] = {
|
||||
u8 D_800E3324[20] = {
|
||||
0, 1, 3, 1, 3, 4, 1, 4, 2, 5, 7, 8, 5, 8, 6, 6, 8, 9, 0, 0,
|
||||
};
|
||||
|
||||
s8 D_800E3338[12] = {
|
||||
u8 D_800E3338[12] = {
|
||||
-1, -1, 0, -1, 0, 0, -1, 0, -1, -1, 0, 0,
|
||||
};
|
||||
|
||||
@@ -145,7 +145,7 @@ TriangleList D_800E349C[92] = {
|
||||
0x76, 0x78, 0x7A, 0x7C,
|
||||
};
|
||||
|
||||
s8 D_800E34F8[92] = {
|
||||
u8 D_800E34F8[92] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
@@ -460,75 +460,74 @@ void render_fade_fullscreen(Gfx **dList, UNUSED MatrixS **mats, UNUSED Vertex **
|
||||
reset_render_settings(dList);
|
||||
}
|
||||
|
||||
void func_800C0B00(FadeTransition *transition, s32 numVerts, s32 numTris, s16 *arg3, u8 *arg4, u8 *arg5, u8 *arg6, u8 *arg7, u8 *arg8) {
|
||||
s32 temp;
|
||||
u8 *swap;
|
||||
s32 sizeVerts;
|
||||
s32 sizeTris;
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
j = numVerts;
|
||||
sizeVerts = j * 10;
|
||||
sizeTris = numTris * 16;
|
||||
i = (j * 12);
|
||||
|
||||
sTransitionVtx[0] = allocate_from_main_pool_safe(((sizeVerts + sizeTris) * 2) + (i * 3), 0xFFFF00FF);
|
||||
sTransitionVtx[1] = sTransitionVtx[0] + j;
|
||||
sTransitionTris[0] = (Triangle*)(sTransitionVtx[1] + j);
|
||||
sTransitionTris[1] = (Triangle*)(((u8 *) sTransitionTris[0]) + sizeTris);
|
||||
D_8012A770 = (f32 *) (((u8 *) sTransitionTris[1]) + sizeTris);
|
||||
D_8012A774 = (f32 *) (((u8 *) D_8012A770) + i);
|
||||
D_8012A778 = (f32 *) (((u8 *) D_8012A774) + i);
|
||||
if (transition->type & 0x80) {
|
||||
swap = arg4;
|
||||
arg4 = arg5;
|
||||
arg5 = swap;
|
||||
swap = arg6;
|
||||
arg6 = arg7;
|
||||
arg7 = swap;
|
||||
}
|
||||
|
||||
for (i = 0; i < numVerts; i++) {
|
||||
D_8012A770[(i * 3) + 0] = arg3[arg4[i]];
|
||||
D_8012A770[(i * 3) + 1] = arg3[arg4[i] + 1];
|
||||
D_8012A770[(i * 3) + 2] = arg6[i];
|
||||
D_8012A778[(i * 3) + 0] = arg3[arg5[i]];
|
||||
D_8012A778[(i * 3) + 1] = arg3[arg5[i] + 1];
|
||||
D_8012A778[(i * 3) + 2] = arg7[i];
|
||||
D_8012A774[(i * 3) + 0] = (D_8012A778[(i * 3) + 0] - D_8012A770[(i * 3) + 0]) / sTransitionFadeTimer;
|
||||
D_8012A774[(i * 3) + 1] = (D_8012A778[(i * 3) + 1] - D_8012A770[(i * 3) + 1]) / sTransitionFadeTimer;
|
||||
D_8012A774[(i * 3) + 2] = (D_8012A778[(i * 3) + 2] - D_8012A770[(i * 3) + 2]) / sTransitionFadeTimer;
|
||||
}
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
for (j = 0; j < numVerts; j++) {
|
||||
sTransitionVtx[i][j].z = -16;
|
||||
sTransitionVtx[i][j].r = gCurFadeRed;
|
||||
sTransitionVtx[i][j].g = gCurFadeGreen;
|
||||
sTransitionVtx[i][j].b = gCurFadeBlue;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
for (j = 0; j < numTris; j++) {
|
||||
sTransitionTris[i][j].flags = 0x40;
|
||||
sTransitionTris[i][j].vi0 = arg8[(j * 3) + 0];
|
||||
sTransitionTris[i][j].uv0.u = 0;
|
||||
sTransitionTris[i][j].uv0.v = 0;
|
||||
sTransitionTris[i][j].vi1 = arg8[(j * 3) + 1];
|
||||
sTransitionTris[i][j].uv1.u = 0;
|
||||
sTransitionTris[i][j].uv1.v = 0;
|
||||
sTransitionTris[i][j].vi2 = arg8[(j * 3) + 2];
|
||||
sTransitionTris[i][j].uv2.u = 0;
|
||||
sTransitionTris[i][j].uv2.v = 0;
|
||||
}
|
||||
}
|
||||
|
||||
sTransitionStatus = 1;
|
||||
D_8012A77C = numVerts;
|
||||
}
|
||||
void func_800C0B00(FadeTransition *transition, s32 numVerts, s32 numTris, VertexList *arg3, TriangleList *arg4, TriangleList *arg5, u8 *arg6, u8 *arg7, u8 *arg8) {
|
||||
UNUSED s32 pad;
|
||||
u8 *swap;
|
||||
s32 sizeVerts;
|
||||
s32 sizeTris;
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
j = numVerts;
|
||||
sizeVerts = j * 10;
|
||||
sizeTris = numTris * 16;
|
||||
i = (j * 12);
|
||||
|
||||
sTransitionVtx[0] = allocate_from_main_pool_safe(((sizeVerts + sizeTris) * 2) + (i * 3), COLOUR_TAG_YELLOW);
|
||||
sTransitionVtx[1] = sTransitionVtx[0] + j;
|
||||
sTransitionTris[0] = (Triangle *) (sTransitionVtx[1] + j);
|
||||
sTransitionTris[1] = (Triangle *) (((u8 *) sTransitionTris[0]) + sizeTris);
|
||||
D_8012A770 = (f32 *) (((u8 *) sTransitionTris[1]) + sizeTris);
|
||||
D_8012A774 = (f32 *) (((u8 *) D_8012A770) + i);
|
||||
D_8012A778 = (f32 *) (((u8 *) D_8012A774) + i);
|
||||
if (transition->type & 0x80) {
|
||||
swap = arg4;
|
||||
arg4 = arg5;
|
||||
arg5 = swap;
|
||||
swap = arg6;
|
||||
arg6 = arg7;
|
||||
arg7 = swap;
|
||||
}
|
||||
|
||||
for (i = 0; i < numVerts; i++) {
|
||||
D_8012A770[(i * 3) + 0] = arg3[arg4[i]];
|
||||
D_8012A770[(i * 3) + 1] = arg3[arg4[i] + 1];
|
||||
D_8012A770[(i * 3) + 2] = arg6[i];
|
||||
D_8012A778[(i * 3) + 0] = arg3[arg5[i]];
|
||||
D_8012A778[(i * 3) + 1] = arg3[arg5[i] + 1];
|
||||
D_8012A778[(i * 3) + 2] = arg7[i];
|
||||
D_8012A774[(i * 3) + 0] = (D_8012A778[(i * 3) + 0] - D_8012A770[(i * 3) + 0]) / sTransitionFadeTimer;
|
||||
D_8012A774[(i * 3) + 1] = (D_8012A778[(i * 3) + 1] - D_8012A770[(i * 3) + 1]) / sTransitionFadeTimer;
|
||||
D_8012A774[(i * 3) + 2] = (D_8012A778[(i * 3) + 2] - D_8012A770[(i * 3) + 2]) / sTransitionFadeTimer;
|
||||
}
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
for (j = 0; j < numVerts; j++) {
|
||||
sTransitionVtx[i][j].z = -16;
|
||||
sTransitionVtx[i][j].r = gCurFadeRed;
|
||||
sTransitionVtx[i][j].g = gCurFadeGreen;
|
||||
sTransitionVtx[i][j].b = gCurFadeBlue;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
for (j = 0; j < numTris; j++) {
|
||||
sTransitionTris[i][j].flags = 0x40; // 0x40 = Draw backface.
|
||||
sTransitionTris[i][j].vi0 = arg8[(j * 3) + 0];
|
||||
sTransitionTris[i][j].uv0.u = 0;
|
||||
sTransitionTris[i][j].uv0.v = 0;
|
||||
sTransitionTris[i][j].vi1 = arg8[(j * 3) + 1];
|
||||
sTransitionTris[i][j].uv1.u = 0;
|
||||
sTransitionTris[i][j].uv1.v = 0;
|
||||
sTransitionTris[i][j].vi2 = arg8[(j * 3) + 2];
|
||||
sTransitionTris[i][j].uv2.u = 0;
|
||||
sTransitionTris[i][j].uv2.v = 0;
|
||||
}
|
||||
}
|
||||
|
||||
sTransitionStatus = 1;
|
||||
D_8012A77C = numVerts;
|
||||
}
|
||||
|
||||
void func_800C1130(s32 updateRate) {
|
||||
s32 i;
|
||||
|
||||
@@ -60,7 +60,7 @@ void func_800C27A0(s32 updateRate);
|
||||
s32 transition_begin(FadeTransition *transition);
|
||||
void render_fade_circle(Gfx **dList, MatrixS **mats, Vertex **verts);
|
||||
void func_800C1130(s32 updateRate);
|
||||
void func_800C0B00(FadeTransition *transition, s32 numVerts, s32 numTris, s16 *arg3, u8 *arg4, u8 *arg5, u8 *arg6, u8 *arg7, u8 *arg8);
|
||||
void func_800C0B00(FadeTransition *transition, s32 numVerts, s32 numTris, VertexList *arg3, TriangleList *arg4, TriangleList *arg5, u8 *arg6, u8 *arg7, u8 *arg8);
|
||||
|
||||
void render_fade_waves(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Vertex **verts); //Non Matching
|
||||
void func_800C1EE8(s32); //Non Matching
|
||||
|
||||
+50
-51
@@ -3067,9 +3067,9 @@ GLOBAL_ASM("asm/non_matchings/menu/func_80084854.s")
|
||||
s32 menu_audio_options_loop(s32 updateRate) {
|
||||
s32 i;
|
||||
u32 buttonsPressed;
|
||||
s32 sp3C;
|
||||
s32 sp38;
|
||||
s32 sp34;
|
||||
s32 contX;
|
||||
s32 contY;
|
||||
s32 contXAxis;
|
||||
s32 sp30;
|
||||
|
||||
sp30 = 0;
|
||||
@@ -3081,65 +3081,64 @@ s32 menu_audio_options_loop(s32 updateRate) {
|
||||
gMenuDelay -= updateRate;
|
||||
}
|
||||
}
|
||||
if ((gMenuDelay > -20) && (gMenuDelay < 20)) {
|
||||
if (gMenuDelay > -20 && gMenuDelay < 20) {
|
||||
func_80084854();
|
||||
}
|
||||
if (gIgnorePlayerInputTime == 0) {
|
||||
sp3C = 0;
|
||||
sp38 = 0;
|
||||
contX = 0;
|
||||
contY = 0;
|
||||
if (gMenuDelay == 0) {
|
||||
buttonsPressed = 0;
|
||||
sp34 = 0;
|
||||
contXAxis = 0;
|
||||
for(i = 0; i < 4; i++) {
|
||||
buttonsPressed |= get_buttons_pressed_from_player(i);
|
||||
sp34 += clamp_joystick_x_axis(i);
|
||||
sp3C += gControllersXAxisDirection[i];
|
||||
sp38 += gControllersYAxisDirection[i];
|
||||
contXAxis += clamp_joystick_x_axis(i);
|
||||
contX += gControllersXAxisDirection[i];
|
||||
contY += gControllersYAxisDirection[i];
|
||||
}
|
||||
if (sp34 < 0) {
|
||||
sp34 += 24;
|
||||
if (sp34 > 0) {
|
||||
sp34 = 0;
|
||||
if (contXAxis < 0) {
|
||||
contXAxis += 24;
|
||||
if (contXAxis > 0) {
|
||||
contXAxis = 0;
|
||||
}
|
||||
} else {
|
||||
sp34 -= 24;
|
||||
if (sp34 < 0) {
|
||||
sp34 = 0;
|
||||
contXAxis -= 24;
|
||||
if (contXAxis < 0) {
|
||||
contXAxis = 0;
|
||||
}
|
||||
}
|
||||
sp34 >>= 2;
|
||||
contXAxis >>= 2;
|
||||
if (((buttonsPressed & (A_BUTTON | START_BUTTON)) && (gMenuOptionCount == gOptionsMenuItemIndex + 1)) || (buttonsPressed & B_BUTTON)) {
|
||||
gMenuDelay = -1;
|
||||
transition_begin(&sMenuTransitionFadeIn);
|
||||
if (gOpacityDecayTimer >= 0) {
|
||||
set_music_fade_timer(-0x80);
|
||||
set_music_fade_timer(-128);
|
||||
|
||||
}
|
||||
sp30 = 3;
|
||||
} else if ((sp38 < 0) && (gOptionsMenuItemIndex < (gMenuOptionCount - 1))) {
|
||||
gOptionsMenuItemIndex += 1;
|
||||
} else if (contY < 0 && gOptionsMenuItemIndex < (gMenuOptionCount - 1)) {
|
||||
gOptionsMenuItemIndex++;
|
||||
sp30 = 1;
|
||||
} else if ((sp38 > 0) && (gOptionsMenuItemIndex > 0)) {
|
||||
gOptionsMenuItemIndex -= 1;
|
||||
} else if (contY > 0 && gOptionsMenuItemIndex > 0) {
|
||||
gOptionsMenuItemIndex--;
|
||||
sp30 = 1;
|
||||
} else if ((gOptionsMenuItemIndex == 0) && (sp3C != 0)) {
|
||||
if (sp3C < 0) {
|
||||
|
||||
D_800DFAC8 -= 1;
|
||||
} else if (gOptionsMenuItemIndex == 0 && contX != 0) {
|
||||
if (contX < 0) {
|
||||
D_800DFAC8--;
|
||||
} else {
|
||||
D_800DFAC8 += 1;
|
||||
D_800DFAC8++;
|
||||
}
|
||||
if (D_800DFAC8 < 0) {
|
||||
D_800DFAC8 = 2;
|
||||
}
|
||||
if (!(D_800DFAC8 < 3)) {
|
||||
if (D_800DFAC8 >= 3) {
|
||||
D_800DFAC8 = 0;
|
||||
}
|
||||
set_stereo_pan_mode(D_800DFAC8);
|
||||
sp30 = 1;
|
||||
} else if (sp34 && ((gOptionsMenuItemIndex == 1) || (gOptionsMenuItemIndex == 2))) {
|
||||
} else if (contXAxis && (gOptionsMenuItemIndex == 1 || gOptionsMenuItemIndex == 2)) {
|
||||
if (gOptionsMenuItemIndex == 1) {
|
||||
gSfxVolumeSliderValue += sp34;
|
||||
gSfxVolumeSliderValue += contXAxis;
|
||||
if (gSfxVolumeSliderValue < 0) {
|
||||
gSfxVolumeSliderValue = 0;
|
||||
} else if (gSfxVolumeSliderValue > 256) {
|
||||
@@ -3147,61 +3146,61 @@ s32 menu_audio_options_loop(s32 updateRate) {
|
||||
}
|
||||
set_sfx_volume_slider(gSfxVolumeSliderValue);
|
||||
} else if (gOptionsMenuItemIndex == 2) {
|
||||
gMusicVolumeSliderValue += sp34;
|
||||
gMusicVolumeSliderValue += contXAxis;
|
||||
if (gMusicVolumeSliderValue < 0) {
|
||||
gMusicVolumeSliderValue = 0;
|
||||
} else if (gMusicVolumeSliderValue > 256) {
|
||||
gMusicVolumeSliderValue = 256;
|
||||
}
|
||||
set_music_volume_slider(gMusicVolumeSliderValue);
|
||||
if (music_is_playing() == 0) {
|
||||
if (!music_is_playing()) {
|
||||
if (gOpacityDecayTimer >= 0) {
|
||||
func_80000B28();
|
||||
play_music(D_800DFABC);
|
||||
} else {
|
||||
func_80000B28();
|
||||
set_music_player_voice_limit(0x18U);
|
||||
play_music(0x18U);
|
||||
set_music_player_voice_limit(24);
|
||||
play_music(SEQUENCE_MAIN_MENU);
|
||||
func_80000B18();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ((gMenuOptionCount >= 5) && (gOptionsMenuItemIndex == 3)) {
|
||||
if ((sp3C < 0) && (D_800DFABC > 0)) {
|
||||
D_800DFABC -= 1;
|
||||
} else if (gMenuOptionCount >= 5 && gOptionsMenuItemIndex == 3) {
|
||||
if (contX < 0 && D_800DFABC > 0) {
|
||||
D_800DFABC--;
|
||||
sp30 = 1;
|
||||
} else if (sp3C > 0) {
|
||||
} else if (contX > 0) {
|
||||
if (D_800DFABC < (ALSeqFile_80115CF8_GetSeqCount() - 1)) {
|
||||
D_800DFABC += 1;
|
||||
D_800DFABC++;
|
||||
sp30 = 1;
|
||||
}
|
||||
}
|
||||
if ((buttonsPressed & (A_BUTTON | START_BUTTON))) {
|
||||
if (buttonsPressed & (A_BUTTON | START_BUTTON)) {
|
||||
func_80000B28();
|
||||
set_music_player_voice_limit(0x18U);
|
||||
set_music_player_voice_limit(24);
|
||||
play_music(D_800DFABC);
|
||||
gOpacityDecayTimer = D_800DFABC;
|
||||
}
|
||||
}
|
||||
if (gOptionsMenuItemIndex == 1) {
|
||||
if (D_801269FC == NULL) {
|
||||
play_sound_global(0x19BU, (s32* ) &D_801269FC);
|
||||
play_sound_global(SOUND_VOICE_DIDDY_POSITIVE5, (s32 *) &D_801269FC);
|
||||
}
|
||||
} else if (D_801269FC != NULL) {
|
||||
func_8000488C((u8* ) D_801269FC);
|
||||
}
|
||||
if (sp30 == 3) {
|
||||
play_sound_global(0x241U, NULL);
|
||||
play_sound_global(SOUND_MENU_BACK3, NULL);
|
||||
} else if (sp30 == 2) {
|
||||
play_sound_global(0xEFU, NULL);
|
||||
play_sound_global(SOUND_SELECT2, NULL);
|
||||
} else if (sp30 == 1) {
|
||||
play_sound_global(0xEBU, NULL);
|
||||
play_sound_global(SOUND_MENU_PICK2, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gMenuDelay < -0x1E) {
|
||||
if (gMenuDelay < -30) {
|
||||
func_800851FC();
|
||||
menu_init(0xCU);
|
||||
menu_init(MENU_OPTIONS);
|
||||
return 0;
|
||||
}
|
||||
gIgnorePlayerInputTime = 0;
|
||||
@@ -3210,10 +3209,10 @@ s32 menu_audio_options_loop(s32 updateRate) {
|
||||
|
||||
void func_800851FC(void) {
|
||||
if (D_801269FC != NULL) {
|
||||
func_8000488C((s32 *) D_801269FC);
|
||||
func_8000488C(D_801269FC);
|
||||
}
|
||||
if (gOpacityDecayTimer >= 0) {
|
||||
set_music_player_voice_limit(0x18);
|
||||
set_music_player_voice_limit(24);
|
||||
play_music(SEQUENCE_MAIN_MENU);
|
||||
set_music_fade_timer(0x100);
|
||||
func_80000B18();
|
||||
@@ -3234,7 +3233,7 @@ void menu_save_options_init(void) {
|
||||
gOpacityDecayTimer = 0;
|
||||
D_80126A64 = (u8 *) allocate_from_main_pool_safe(0x800, COLOUR_TAG_WHITE);
|
||||
D_80126A0C = (unk800861C8 *) allocate_from_main_pool_safe(0xA00, COLOUR_TAG_WHITE);
|
||||
D_80126A04 = &D_80126A0C[80]; //0x500 bytes forward
|
||||
D_80126A04 = &D_80126A0C[80];
|
||||
D_80126A08 = 0;
|
||||
D_80126BD4 = 0;
|
||||
D_80126BDC = 0.0f;
|
||||
|
||||
+1
-1
@@ -475,11 +475,11 @@ s32 menu_results_loop(s32 updateRate);
|
||||
s32 menu_options_loop(s32 updateRate);
|
||||
void func_8008B4C8(void);
|
||||
void func_8008B758(s8 *activePlayers);
|
||||
s32 menu_audio_options_loop(s32 updateRate);
|
||||
|
||||
// Non Matching functions below here
|
||||
void load_menu_text(s32 language); // Non Matching
|
||||
void draw_menu_elements(s32 arg0, MenuElement *elem, f32 arg2);
|
||||
s32 menu_audio_options_loop(s32 arg0);
|
||||
s32 menu_controller_pak_loop(s32 updateRate);
|
||||
void render_magic_codes_list_menu_text(s32 arg0);
|
||||
void randomise_ai_racer_slots(s32 arg0);
|
||||
|
||||
@@ -535,7 +535,7 @@ void obj_loop_torch_mist(Object *obj, s32 updateRate) {
|
||||
void obj_init_effectbox(UNUSED Object *obj, UNUSED LevelObjectEntry_EffectBox *entry) {
|
||||
}
|
||||
|
||||
void obj_loop_effectbox(Object *effectBoxObj, s32 arg1) {
|
||||
void obj_loop_effectbox(Object *effectBoxObj, UNUSED s32 updateRate) {
|
||||
Object **racers;
|
||||
LevelObjectEntry_EffectBox *effectBoxEntry;
|
||||
s32 numRacers;
|
||||
|
||||
@@ -403,6 +403,7 @@ void play_rocket_trailing_sound(Object *obj, struct Object_Weapon *weapon, u16 s
|
||||
void rocket_prevent_overshoot(Object *obj, s32 updateRate, Object_Weapon *rocket);
|
||||
void homing_rocket_prevent_overshoot(Object *obj, s32 updateRate, Object_Weapon *rocket);
|
||||
void func_8001F23C(Object *obj, LevelObjectEntry_Animation *animEntry);
|
||||
void obj_loop_effectbox(Object *obj, s32 updateRate);
|
||||
|
||||
//Non Matching
|
||||
void obj_loop_lavaspurt(Object *obj, s32 updateRate);
|
||||
@@ -413,7 +414,6 @@ void obj_loop_goldenballoon(Object *obj, s32 updateRate);
|
||||
void obj_loop_groundzipper(Object *obj, s32 updateRate);
|
||||
void obj_loop_laserbolt(Object *obj, s32 updateRate);
|
||||
void obj_loop_posarrow(Object *obj, s32 updateRate);
|
||||
void obj_loop_effectbox(Object *obj, s32 updateRate);
|
||||
void obj_loop_bananacreator(Object *obj, s32 updateRate);
|
||||
void obj_loop_butterfly(Object *obj, s32 updateRate);
|
||||
void obj_loop_airzippers_waterzippers(Object *obj, s32 updateRate);
|
||||
|
||||
+3
-3
@@ -373,7 +373,7 @@ void load_next_ingame_level(s32 numPlayers, s32 trackID, Vehicle vehicle) {
|
||||
void load_level_game(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId) {
|
||||
alloc_displaylist_heap(numberOfPlayers);
|
||||
set_free_queue_state(0);
|
||||
func_80065EA0();
|
||||
camera_init();
|
||||
load_game_text_table();
|
||||
load_level(levelId, numberOfPlayers, entranceId, vehicleId, gGameCurrentCutscene);
|
||||
init_hud(get_viewport_count());
|
||||
@@ -819,7 +819,7 @@ void load_menu_with_level_background(s32 menuId, s32 levelId, s32 cutsceneId) {
|
||||
set_sound_channel_volume(0, 32767);
|
||||
set_sound_channel_volume(1, 32767);
|
||||
set_sound_channel_volume(2, 32767);
|
||||
func_80065EA0();
|
||||
camera_init();
|
||||
|
||||
if (!gIsLoading) {
|
||||
gIsLoading = FALSE;
|
||||
@@ -864,7 +864,7 @@ Vehicle get_level_default_vehicle(void) {
|
||||
*/
|
||||
void load_level_menu(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) {
|
||||
set_free_queue_state(0);
|
||||
func_80065EA0();
|
||||
camera_init();
|
||||
load_game_text_table();
|
||||
load_level(levelId, numberOfPlayers, entranceId, vehicleId, cutsceneId);
|
||||
init_hud(get_viewport_count());
|
||||
|
||||
+198
-11
@@ -69,7 +69,7 @@ unk800E3184 *D_800E3184 = NULL;
|
||||
s32 D_800E3188 = NULL;
|
||||
s32 D_800E318C = 0;
|
||||
unk800E3190 *D_800E3190 = NULL;
|
||||
s32 *D_800E3194 = NULL;
|
||||
Object **D_800E3194 = NULL;
|
||||
Object *D_800E3198 = 0;
|
||||
s32 D_800E319C = 0;
|
||||
|
||||
@@ -240,7 +240,7 @@ s32 func_800B9228(LevelModelSegment *arg0) {
|
||||
while (v0 < D_8012A0E0 && arg0 != D_800E30D8[v0].unk00) {
|
||||
v0++;
|
||||
};
|
||||
if (D_800E30D4[D_800E30D8[v0].unk0C]) {
|
||||
if (D_800E30D4[D_800E30D8[v0].unkC]) {
|
||||
result = TRUE;
|
||||
D_8012A1E8[D_800E30DC++] = v0;
|
||||
}
|
||||
@@ -250,7 +250,50 @@ s32 func_800B9228(LevelModelSegment *arg0) {
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800B92F4.s")
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800B97A8.s")
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800B9C18.s")
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800BA288.s")
|
||||
|
||||
void func_800BA288(s32 arg0, s32 arg1) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
arg1 <<= 3;
|
||||
for (i = 0; i < D_8012A0E0; i++) {
|
||||
if (D_8012A0E8[D_800E30D8[i].unkB] & (1 << D_800E30D8[i].unkA)) {
|
||||
if (D_80129FC8->unk28 != 0) {
|
||||
for(j = 0; j < 4; j++) {
|
||||
s32 ti = j << 3;
|
||||
if (D_800E30D4[D_800E30D8[i].unkC] & (0xFF << ti)) {
|
||||
if (arg1 < D_800E30D8[i].unk14[arg0].unk0[j]) {
|
||||
D_800E30D8[i].unk14[arg0].unk0[j] -= arg1;
|
||||
} else {
|
||||
D_800E30D8[i].unk14[arg0].unk0[j] = 0;
|
||||
}
|
||||
} else {
|
||||
if (D_800E30D8[i].unk14[arg0].unk0[j] + arg1 < 128) {
|
||||
D_800E30D8[i].unk14[arg0].unk0[j] += arg1;
|
||||
} else {
|
||||
D_800E30D8[i].unk14[arg0].unk0[j] = 128;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (D_800E30D4[D_800E30D8[i].unkC]) {
|
||||
if (arg1 < D_800E30D8[i].unk14[arg0].unk0[0]) {
|
||||
D_800E30D8[i].unk14[arg0].unk0[0] -= arg1;
|
||||
} else {
|
||||
D_800E30D8[i].unk14[arg0].unk0[0] = 0;
|
||||
}
|
||||
} else {
|
||||
if (D_800E30D8[i].unk14[arg0].unk0[0] + arg1 < 128) {
|
||||
D_800E30D8[i].unk14[arg0].unk0[0] += arg1;
|
||||
} else {
|
||||
D_800E30D8[i].unk14[arg0].unk0[0] = 128;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//https://decomp.me/scratch/h4uac
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800BA4B8.s")
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800BA8E4.s")
|
||||
@@ -413,7 +456,7 @@ f32 func_800BEFC4(s32 arg0, s32 arg1, s32 arg2) {
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800BEFC4.s")
|
||||
#endif
|
||||
|
||||
void func_800BF3E4(s32 arg0) {
|
||||
void func_800BF3E4(Object *obj) {
|
||||
s32 i;
|
||||
s32 k;
|
||||
s32 j;
|
||||
@@ -423,7 +466,7 @@ void func_800BF3E4(s32 arg0) {
|
||||
if (D_800E3190 != NULL) {
|
||||
|
||||
for (i = 0, m = 0; i < D_800E3188 && m == 0; i++) {
|
||||
if (arg0 == D_800E3194[i]) {
|
||||
if (obj == D_800E3194[i]) {
|
||||
m = -1;
|
||||
}
|
||||
}
|
||||
@@ -441,7 +484,7 @@ void func_800BF3E4(s32 arg0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
D_800E3194[j] = 0;
|
||||
D_800E3194[j] = NULL;
|
||||
D_800E3188 -= 1;
|
||||
}
|
||||
}
|
||||
@@ -459,13 +502,157 @@ void func_800BF524(Object *obj) {
|
||||
if (temp_v0->unk11 != 0) {
|
||||
var_v1 |= 2;
|
||||
}
|
||||
func_800BF634(obj, obj->segment.trans.x_position, obj->segment.trans.z_position, (f32)temp_v0->unkA, temp_v0->unk9 << 8,
|
||||
(f32)temp_v0->unk8 * 0.0625, (f32)temp_v0->unkE, (f32)temp_v0->unkC * 0.0625, var_v1);
|
||||
func_800BF634(obj, obj->segment.trans.x_position, obj->segment.trans.z_position, (f32) temp_v0->unkA, temp_v0->unk9 << 8,
|
||||
(f32) temp_v0->unk8 * 0.0625, (f32) temp_v0->unkE, (f32) temp_v0->unkC * 0.0625, var_v1);
|
||||
}
|
||||
|
||||
unk800E3190 *func_800BF634(Object *obj, f32 xPos, f32 zPos, f32 arg3, s32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8) {
|
||||
f32 var_f0;
|
||||
s32 var_a0;
|
||||
s32 var_a0_2;
|
||||
s32 j;
|
||||
s32 var_a2_2;
|
||||
s32 k;
|
||||
s32 i;
|
||||
unk800E3184 *temp;
|
||||
unk800E3190 *result;
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800BF634.s")
|
||||
GLOBAL_ASM("asm/non_matchings/waves/func_800BF9F8.s")
|
||||
result = NULL;
|
||||
if (D_800E3190 != NULL) {
|
||||
for(i = 0, var_a0 = 0; i < 32 && var_a0 == 0; i++) {
|
||||
if (D_800E3194[i] == NULL) {
|
||||
var_a0 = -1;
|
||||
}
|
||||
}
|
||||
i--;
|
||||
if (var_a0 != 0) {
|
||||
D_800E3194[i] = obj;
|
||||
D_800E3188 += 1;
|
||||
var_f0 = D_8012A0B8;
|
||||
if (D_80129FC8->unk28 != 0) {
|
||||
var_f0 *= 0.5f;
|
||||
}
|
||||
var_a0_2 = (((xPos - arg3) - D_8012A0D0) / var_f0);
|
||||
if (var_a0_2 >= D_800E318C) {
|
||||
return NULL;
|
||||
}
|
||||
var_a2_2 = (((xPos + arg3) - D_8012A0D0) / var_f0);
|
||||
if (var_a2_2 < 0) {
|
||||
return NULL;
|
||||
}
|
||||
if (var_a0_2 < 0) {
|
||||
var_a0_2 = 0;
|
||||
}
|
||||
if (var_a2_2 >= D_800E318C) {
|
||||
var_a2_2 = D_800E318C - 1;
|
||||
}
|
||||
|
||||
for (j = var_a0_2; j <= var_a2_2; j++) {
|
||||
temp = &D_800E3184[j];
|
||||
if (temp->unk0[7] == 0xFF) {
|
||||
k = 0;
|
||||
while (temp->unk0[k] != 0xFF) {
|
||||
k++;
|
||||
}
|
||||
temp->unk0[k] = i;
|
||||
}
|
||||
}
|
||||
result = &D_800E3190[i];
|
||||
result->unk0 = zPos - arg3;
|
||||
result->unk4 = zPos + arg3;
|
||||
result->unk8 = xPos;
|
||||
result->unkC = zPos;
|
||||
result->unk10 = arg3;
|
||||
result->unk18 = i;
|
||||
result->unk14 = arg3 * arg3;
|
||||
result->unk1A = arg4;
|
||||
if (osTvType == TV_TYPE_PAL) {
|
||||
result->unk1C = arg5 * 20971.52;//(f64) (0x80000 / 25.0);
|
||||
} else {
|
||||
result->unk1C = arg5 * 17476.27;//(f64) ((0x80000 / 1.2) / 25.0);
|
||||
}
|
||||
result->unk20 = 65536.0f / arg6;
|
||||
result->unk24 = arg7;
|
||||
result->unk28 = arg5;
|
||||
result->unk31 = arg8 & 1;
|
||||
result->unk32 = arg8 & 2;
|
||||
result->unk2C = arg6;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void func_800BF9F8(unk800BF9F8 *arg0, f32 arg1, f32 arg2) {
|
||||
UNUSED s32 pad[4];
|
||||
s32 sp1C;
|
||||
f32 var_f0;
|
||||
s32 var_a1;
|
||||
s32 i;
|
||||
s32 var_a2;
|
||||
s32 j;
|
||||
s32 iteration;
|
||||
s32 temp_v1;
|
||||
u8 *var_a2_2;
|
||||
|
||||
if (arg0 != NULL) {
|
||||
var_f0 = D_8012A0B8;
|
||||
iteration = 0;
|
||||
if (D_80129FC8->unk28 != 0) {
|
||||
var_f0 *= 0.5f;
|
||||
}
|
||||
temp_v1 = arg0->unk18;
|
||||
while (iteration != 2) {
|
||||
var_a1 = TRUE;
|
||||
var_a2 = (((arg0->unk8 - arg0->unk10) - D_8012A0D0) / var_f0);
|
||||
if (var_a2 >= D_800E318C) {
|
||||
var_a1 = FALSE;
|
||||
} else if (var_a2 < 0) {
|
||||
var_a2 = 0;
|
||||
}
|
||||
if (var_a1) {
|
||||
sp1C = (((arg0->unk8 + arg0->unk10) - D_8012A0D0) / var_f0);
|
||||
if (sp1C < 0) {
|
||||
var_a1 = FALSE;
|
||||
} else if (sp1C >= D_800E318C) {
|
||||
sp1C = D_800E318C - 1;
|
||||
}
|
||||
}
|
||||
if (var_a1) {
|
||||
for (i = var_a2; i <= sp1C; i++) {
|
||||
var_a2_2 = &D_800E3184[i].unk0[0];
|
||||
j = 0;
|
||||
if (iteration != 0) {
|
||||
if (var_a2_2[7] == 0xFF) {
|
||||
while(var_a2_2[0] != 0xFF) {
|
||||
var_a2_2++;
|
||||
}
|
||||
var_a2_2[0] = temp_v1;
|
||||
}
|
||||
} else {
|
||||
while (j < 8) {
|
||||
if (temp_v1 == var_a2_2[j]) {
|
||||
while(j < 7){
|
||||
var_a2_2[j] = var_a2_2[j+1];
|
||||
j++;
|
||||
}
|
||||
var_a2_2[j] = 0xFF;
|
||||
j++;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (iteration == 0) {
|
||||
arg0->unk8 += arg1;
|
||||
arg0->unkC += arg2;
|
||||
arg0->unk0 += arg2;
|
||||
arg0->unk4 += arg2;
|
||||
}
|
||||
iteration++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UNUSED void func_800BFC54(unk800BFC54_arg0 *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
||||
if (arg0 != NULL) {
|
||||
@@ -494,7 +681,7 @@ void func_800BFE98(s32 arg0) {
|
||||
s32 i;
|
||||
|
||||
for(i = 0; i < 32; i++) {
|
||||
if (D_800E3194[i] != 0) {
|
||||
if (D_800E3194[i] != NULL) {
|
||||
D_800E3190[i].unk1A += ((0, D_800E3190[i].unk1C * arg0)) >> 4;
|
||||
}
|
||||
}
|
||||
|
||||
+24
-7
@@ -4,13 +4,17 @@
|
||||
#include "types.h"
|
||||
#include "structs.h"
|
||||
|
||||
typedef struct{
|
||||
typedef struct {
|
||||
u8 unk0[4];
|
||||
} LevelModelSubArray;
|
||||
typedef struct {
|
||||
LevelModelSegment *unk00;
|
||||
u8 pad04[0x6];
|
||||
u8 unkA;
|
||||
u8 unkB;
|
||||
u32 unk0C;
|
||||
u8 pad10[0xC];
|
||||
u32 unkC;
|
||||
u8 pad10[0x4];
|
||||
LevelModelSubArray unk14[2];
|
||||
} LevelModel_Alternate;
|
||||
|
||||
typedef struct unk800E3190 {
|
||||
@@ -20,12 +24,13 @@ typedef struct unk800E3190 {
|
||||
f32 unkC;
|
||||
f32 unk10;
|
||||
f32 unk14;
|
||||
u8 pad18[0x2];
|
||||
s16 unk18;
|
||||
u16 unk1A;
|
||||
u32 unk1C;
|
||||
f32 unk20;
|
||||
f32 unk24;
|
||||
u8 pad28[0x8];
|
||||
f32 unk28;
|
||||
f32 unk2C;
|
||||
u8 unk31;
|
||||
u8 unk32;
|
||||
u8 pad33[0xE];
|
||||
@@ -101,6 +106,16 @@ typedef struct unk800BFC54_arg0 {
|
||||
f32 unk2C;
|
||||
} unk800BFC54_arg0;
|
||||
|
||||
typedef struct unk800BF9F8 {
|
||||
f32 unk0;
|
||||
f32 unk4;
|
||||
f32 unk8;
|
||||
f32 unkC;
|
||||
f32 unk10;
|
||||
u8 pad14[4];
|
||||
u16 unk18;
|
||||
} unk800BF9F8;
|
||||
|
||||
void func_800B7D20(void);
|
||||
void func_800B8B8C(void);
|
||||
s32 func_800B9228(LevelModelSegment *arg0);
|
||||
@@ -110,15 +125,17 @@ void func_800B8134(unk800B8134 *arg0);
|
||||
void func_800BBE08(LevelModel *level, unk800BBE08_arg1 *arg1);
|
||||
void obj_loop_wavepower(Object *obj);
|
||||
void func_800BFC54(unk800BFC54_arg0 *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4);
|
||||
void func_800BF3E4(s32 arg0);
|
||||
void func_800BF3E4(Object *obj);
|
||||
f32 get_wave_height(Object_Log *log, s32 updateRate);
|
||||
void func_800BA288(s32 arg0, s32 arg1);
|
||||
void func_800BF9F8(unk800BF9F8 *arg0, f32 arg1, f32 arg2);
|
||||
unk800E3190 *func_800BF634(Object *obj, f32 arg1, f32 arg2, f32 arg3, s32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8);
|
||||
|
||||
Object_64 *func_800BE654(s16, f32, f32); // Non Matching
|
||||
void func_800BBF78(LevelModel *arg0); // Non Matching
|
||||
f32 func_800BB2F4(s32, f32, f32, f32*);
|
||||
void func_800B8C04(s32, s32, s32, s32, s32);
|
||||
void func_800BF524(Object *);
|
||||
void *func_800BF634(Object *arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8);
|
||||
f32 func_800BEFC4(s32, s32, s32);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -10,6 +10,7 @@ compiler_type = "ido"
|
||||
"G_IM_.*" = "unsigned int"
|
||||
"KEEPLINEBREAK" = "void"
|
||||
"IO_READ" = "volatile unsigned int *"
|
||||
"WAIT_ON_IOBUSY" = "void"
|
||||
|
||||
[decompme.compilers]
|
||||
"./tools/ido-static-recomp/build/5.3/out/cc" = "ido5.3_irix"
|
||||
|
||||
Reference in New Issue
Block a user