Particles Matches (#439)

* Match func_800B26E0

* Match func_800AF714

* Match func_800B0BAC

* WIP func_800AF404

* Run tidy again

* Swap macro naming, and update README score.
This commit is contained in:
Ryan Myers
2024-01-26 11:00:11 -05:00
committed by GitHub
parent 46a1087b8f
commit 293325af32
8 changed files with 537 additions and 1400 deletions
+12 -12
View File
@@ -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 November 30, 2023, this is our current score:
As of January 26, 2023, this is our current score:
&emsp;&emsp;&emsp;&emsp;Decomp progress: 65.92%
&emsp;&emsp;&emsp;&emsp;Decomp progress: 66.48%
&emsp;&emsp;&emsp;&emsp;Documentation progress: 35.21%
&emsp;&emsp;&emsp;&emsp;Documentation progress: 35.36%
<!-- README_SCORE_SUMMARY_END -->
---
@@ -125,30 +125,30 @@ s32 is_drumstick_unlocked(void) {
```
<!-- README_SCORE_BEGIN -->
As of November 30, 2023, this is our current score:
As of January 26, 2023, this is our current score:
```
====================================================================
ADVENTURE ONE (ASM -> C Decompilation)
-------------- 65.92% Complete (68.87% NON_MATCHING) ---------------
# Decompiled functions: 1678
# GLOBAL_ASM remaining: 167
-------------- 66.48% Complete (69.44% NON_MATCHING) ---------------
# Decompiled functions: 1681
# GLOBAL_ASM remaining: 164
# NON_MATCHING functions: 16
# NON_EQUIVALENT WIP functions: 54
--------------------------- Game Status ----------------------------
Balloons: 31/47, Keys: 3/4, Trophies: 3/5
T.T. Amulets: 3/4, Wizpig Amulets: 3/4
--------------------------------------------------------------------
We are racing in Windmill Plains. (Lap 2/3)
We are racing in Windmill Plains. (Lap 3/3)
====================================================================
ADVENTURE TWO (Cleanup & Documentation)
------------------------- 35.21% Complete --------------------------
# Documented functions: 825
# Undocumented remaining: 743
------------------------- 35.36% Complete --------------------------
# Documented functions: 828
# Undocumented remaining: 740
--------------------------- Game Status ----------------------------
Balloons: 17/47, Keys: 2/4, Trophies: 1/5
T.T. Amulets: 2/4, Wizpig Amulets: 1/4
--------------------------------------------------------------------
We are collecting silver coins in Everfrost Peak. (2/8 silver coins)
We are collecting silver coins in Everfrost Peak. (3/8 silver coins)
====================================================================
```
<!-- README_SCORE_END -->
-364
View File
@@ -1,364 +0,0 @@
glabel func_800AF714
/* 0B0314 800AF714 27BDFF80 */ addiu $sp, $sp, -0x80
/* 0B0318 800AF718 AFBF003C */ sw $ra, 0x3c($sp)
/* 0B031C 800AF71C AFBE0038 */ sw $fp, 0x38($sp)
/* 0B0320 800AF720 AFB70034 */ sw $s7, 0x34($sp)
/* 0B0324 800AF724 AFB60030 */ sw $s6, 0x30($sp)
/* 0B0328 800AF728 AFB5002C */ sw $s5, 0x2c($sp)
/* 0B032C 800AF72C AFB40028 */ sw $s4, 0x28($sp)
/* 0B0330 800AF730 AFB30024 */ sw $s3, 0x24($sp)
/* 0B0334 800AF734 AFB20020 */ sw $s2, 0x20($sp)
/* 0B0338 800AF738 AFB1001C */ sw $s1, 0x1c($sp)
/* 0B033C 800AF73C AFB00018 */ sw $s0, 0x18($sp)
/* 0B0340 800AF740 AFA50084 */ sw $a1, 0x84($sp)
/* 0B0344 800AF744 8C930064 */ lw $s3, 0x64($a0)
/* 0B0348 800AF748 8C970074 */ lw $s7, 0x74($a0)
/* 0B034C 800AF74C 827E01D6 */ lb $fp, 0x1d6($s3)
/* 0B0350 800AF750 00809025 */ move $s2, $a0
/* 0B0354 800AF754 0C004B8A */ jal object_do_player_tumble
/* 0B0358 800AF758 00008025 */ move $s0, $zero
/* 0B035C 800AF75C 8E4E0040 */ lw $t6, 0x40($s2)
/* 0B0360 800AF760 24160002 */ li $s6, 2
/* 0B0364 800AF764 81CF0057 */ lb $t7, 0x57($t6)
/* 0B0368 800AF768 241500FF */ li $s5, 255
/* 0B036C 800AF76C 19E00125 */ blez $t7, .L800AFC04
/* 0B0370 800AF770 3C14800E */ lui $s4, %hi(D_800E2E84) # $s4, 0x800e
/* 0B0374 800AF774 3C11800E */ lui $s1, %hi(D_800E2D00) # $s1, 0x800e
/* 0B0378 800AF778 26312D00 */ addiu $s1, %lo(D_800E2D00) # addiu $s1, $s1, 0x2d00
/* 0B037C 800AF77C 26942E84 */ addiu $s4, %lo(D_800E2E84) # addiu $s4, $s4, 0x2e84
.L800AF780:
/* 0B0380 800AF780 32F80001 */ andi $t8, $s7, 1
/* 0B0384 800AF784 130000E8 */ beqz $t8, .L800AFB28
/* 0B0388 800AF788 00000000 */ nop
/* 0B038C 800AF78C 13C00008 */ beqz $fp, .L800AF7B0
/* 0B0390 800AF790 240B0001 */ li $t3, 1
/* 0B0394 800AF794 24010001 */ li $at, 1
/* 0B0398 800AF798 13C10099 */ beq $fp, $at, .L800AFA00
/* 0B039C 800AF79C 00000000 */ nop
/* 0B03A0 800AF7A0 13D60083 */ beq $fp, $s6, .L800AF9B0
/* 0B03A4 800AF7A4 00000000 */ nop
/* 0B03A8 800AF7A8 100000AA */ b .L800AFA54
/* 0B03AC 800AF7AC 00000000 */ nop
.L800AF7B0:
/* 0B03B0 800AF7B0 0600004C */ bltz $s0, .L800AF8E4
/* 0B03B4 800AF7B4 2A01000A */ slti $at, $s0, 0xa
/* 0B03B8 800AF7B8 1020004B */ beqz $at, .L800AF8E8
/* 0B03BC 800AF7BC 2401000A */ li $at, 10
/* 0B03C0 800AF7C0 8662016E */ lh $v0, 0x16e($s3)
/* 0B03C4 800AF7C4 00106140 */ sll $t4, $s0, 5
/* 0B03C8 800AF7C8 04410002 */ bgez $v0, .L800AF7D4
/* 0B03CC 800AF7CC 3C18800E */ lui $t8, %hi(gParticlesAssetTable) # $t8, 0x800e
/* 0B03D0 800AF7D0 00021023 */ negu $v0, $v0
.L800AF7D4:
/* 0B03D4 800AF7D4 2442FFE8 */ addiu $v0, $v0, -0x18
/* 0B03D8 800AF7D8 1840009E */ blez $v0, .L800AFA54
/* 0B03DC 800AF7DC 28410021 */ slti $at, $v0, 0x21
/* 0B03E0 800AF7E0 8E59006C */ lw $t9, 0x6c($s2)
/* 0B03E4 800AF7E4 8F182CF0 */ lw $t8, %lo(gParticlesAssetTable)($t8)
/* 0B03E8 800AF7E8 032C6821 */ addu $t5, $t9, $t4
/* 0B03EC 800AF7EC 85AE0008 */ lh $t6, 8($t5)
/* 0B03F0 800AF7F0 3C0D800E */ lui $t5, %hi(D_800E2EC4) # $t5, 0x800e
/* 0B03F4 800AF7F4 000E7880 */ sll $t7, $t6, 2
/* 0B03F8 800AF7F8 25AD2EC4 */ addiu $t5, %lo(D_800E2EC4) # addiu $t5, $t5, 0x2ec4
/* 0B03FC 800AF7FC 00106080 */ sll $t4, $s0, 2
/* 0B0400 800AF800 030FC821 */ addu $t9, $t8, $t7
/* 0B0404 800AF804 8F270000 */ lw $a3, ($t9)
/* 0B0408 800AF808 018D4021 */ addu $t0, $t4, $t5
/* 0B040C 800AF80C 14200002 */ bnez $at, .L800AF818
/* 0B0410 800AF810 250A0003 */ addiu $t2, $t0, 3
/* 0B0414 800AF814 24020020 */ li $v0, 32
.L800AF818:
/* 0B0418 800AF818 00420019 */ multu $v0, $v0
/* 0B041C 800AF81C 90E40014 */ lbu $a0, 0x14($a3)
/* 0B0420 800AF820 910F0000 */ lbu $t7, ($t0)
/* 0B0424 800AF824 00024900 */ sll $t1, $v0, 4
/* 0B0428 800AF828 01E4C823 */ subu $t9, $t7, $a0
/* 0B042C 800AF82C 28410011 */ slti $at, $v0, 0x11
/* 0B0430 800AF830 00007012 */ mflo $t6
/* 0B0434 800AF834 000EC083 */ sra $t8, $t6, 2
/* 0B0438 800AF838 01381823 */ subu $v1, $t1, $t8
/* 0B043C 800AF83C 03230019 */ multu $t9, $v1
/* 0B0440 800AF840 91190001 */ lbu $t9, 1($t0)
/* 0B0444 800AF844 00006012 */ mflo $t4
/* 0B0448 800AF848 000C6A03 */ sra $t5, $t4, 8
/* 0B044C 800AF84C 01A47021 */ addu $t6, $t5, $a0
/* 0B0450 800AF850 000E7E00 */ sll $t7, $t6, 0x18
/* 0B0454 800AF854 AE2F0000 */ sw $t7, ($s1)
/* 0B0458 800AF858 90E50015 */ lbu $a1, 0x15($a3)
/* 0B045C 800AF85C 00000000 */ nop
/* 0B0460 800AF860 03256023 */ subu $t4, $t9, $a1
/* 0B0464 800AF864 01830019 */ multu $t4, $v1
/* 0B0468 800AF868 00006812 */ mflo $t5
/* 0B046C 800AF86C 000D7203 */ sra $t6, $t5, 8
/* 0B0470 800AF870 00AEC021 */ addu $t8, $a1, $t6
/* 0B0474 800AF874 0018CC00 */ sll $t9, $t8, 0x10
/* 0B0478 800AF878 01F96825 */ or $t5, $t7, $t9
/* 0B047C 800AF87C AE2D0000 */ sw $t5, ($s1)
/* 0B0480 800AF880 90E60016 */ lbu $a2, 0x16($a3)
/* 0B0484 800AF884 910E0002 */ lbu $t6, 2($t0)
/* 0B0488 800AF888 00000000 */ nop
/* 0B048C 800AF88C 01C6C023 */ subu $t8, $t6, $a2
/* 0B0490 800AF890 03030019 */ multu $t8, $v1
/* 0B0494 800AF894 00007812 */ mflo $t7
/* 0B0498 800AF898 000FCA03 */ sra $t9, $t7, 8
/* 0B049C 800AF89C 00D96021 */ addu $t4, $a2, $t9
/* 0B04A0 800AF8A0 000C7200 */ sll $t6, $t4, 8
/* 0B04A4 800AF8A4 01AEC025 */ or $t8, $t5, $t6
/* 0B04A8 800AF8A8 14200002 */ bnez $at, .L800AF8B4
/* 0B04AC 800AF8AC AE380000 */ sw $t8, ($s1)
/* 0B04B0 800AF8B0 24090100 */ li $t1, 256
.L800AF8B4:
/* 0B04B4 800AF8B4 90E20017 */ lbu $v0, 0x17($a3)
/* 0B04B8 800AF8B8 91590000 */ lbu $t9, ($t2)
/* 0B04BC 800AF8BC 8E2F0000 */ lw $t7, ($s1)
/* 0B04C0 800AF8C0 03226023 */ subu $t4, $t9, $v0
/* 0B04C4 800AF8C4 01890019 */ multu $t4, $t1
/* 0B04C8 800AF8C8 3C01800E */ lui $at, %hi(D_800E2D00) # $at, 0x800e
/* 0B04CC 800AF8CC 00006812 */ mflo $t5
/* 0B04D0 800AF8D0 000D7203 */ sra $t6, $t5, 8
/* 0B04D4 800AF8D4 004EC021 */ addu $t8, $v0, $t6
/* 0B04D8 800AF8D8 01F8C825 */ or $t9, $t7, $t8
/* 0B04DC 800AF8DC 1000005D */ b .L800AFA54
/* 0B04E0 800AF8E0 AC392D00 */ sw $t9, %lo(D_800E2D00)($at)
.L800AF8E4:
/* 0B04E4 800AF8E4 2401000A */ li $at, 10
.L800AF8E8:
/* 0B04E8 800AF8E8 12010009 */ beq $s0, $at, .L800AF910
/* 0B04EC 800AF8EC 2401000B */ li $at, 11
/* 0B04F0 800AF8F0 12010011 */ beq $s0, $at, .L800AF938
/* 0B04F4 800AF8F4 2401000C */ li $at, 12
/* 0B04F8 800AF8F8 12010019 */ beq $s0, $at, .L800AF960
/* 0B04FC 800AF8FC 2401000D */ li $at, 13
/* 0B0500 800AF900 12010021 */ beq $s0, $at, .L800AF988
/* 0B0504 800AF904 00000000 */ nop
/* 0B0508 800AF908 10000052 */ b .L800AFA54
/* 0B050C 800AF90C 00000000 */ nop
.L800AF910:
/* 0B0510 800AF910 926201DE */ lbu $v0, 0x1de($s3)
/* 0B0514 800AF914 00000000 */ nop
/* 0B0518 800AF918 16A20002 */ bne $s5, $v0, .L800AF924
/* 0B051C 800AF91C 304C000F */ andi $t4, $v0, 0xf
/* 0B0520 800AF920 00005825 */ move $t3, $zero
.L800AF924:
/* 0B0524 800AF924 000C6880 */ sll $t5, $t4, 2
/* 0B0528 800AF928 028D7021 */ addu $t6, $s4, $t5
/* 0B052C 800AF92C 8DCF0000 */ lw $t7, ($t6)
/* 0B0530 800AF930 10000048 */ b .L800AFA54
/* 0B0534 800AF934 AE2F0000 */ sw $t7, ($s1)
.L800AF938:
/* 0B0538 800AF938 926201DF */ lbu $v0, 0x1df($s3)
/* 0B053C 800AF93C 00000000 */ nop
/* 0B0540 800AF940 16A20002 */ bne $s5, $v0, .L800AF94C
/* 0B0544 800AF944 3058000F */ andi $t8, $v0, 0xf
/* 0B0548 800AF948 00005825 */ move $t3, $zero
.L800AF94C:
/* 0B054C 800AF94C 0018C880 */ sll $t9, $t8, 2
/* 0B0550 800AF950 02996021 */ addu $t4, $s4, $t9
/* 0B0554 800AF954 8D8D0000 */ lw $t5, ($t4)
/* 0B0558 800AF958 1000003E */ b .L800AFA54
/* 0B055C 800AF95C AE2D0000 */ sw $t5, ($s1)
.L800AF960:
/* 0B0560 800AF960 926201DC */ lbu $v0, 0x1dc($s3)
/* 0B0564 800AF964 00000000 */ nop
/* 0B0568 800AF968 16A20002 */ bne $s5, $v0, .L800AF974
/* 0B056C 800AF96C 304E000F */ andi $t6, $v0, 0xf
/* 0B0570 800AF970 00005825 */ move $t3, $zero
.L800AF974:
/* 0B0574 800AF974 000E7880 */ sll $t7, $t6, 2
/* 0B0578 800AF978 028FC021 */ addu $t8, $s4, $t7
/* 0B057C 800AF97C 8F190000 */ lw $t9, ($t8)
/* 0B0580 800AF980 10000034 */ b .L800AFA54
/* 0B0584 800AF984 AE390000 */ sw $t9, ($s1)
.L800AF988:
/* 0B0588 800AF988 926201DD */ lbu $v0, 0x1dd($s3)
/* 0B058C 800AF98C 00000000 */ nop
/* 0B0590 800AF990 16A20002 */ bne $s5, $v0, .L800AF99C
/* 0B0594 800AF994 304C000F */ andi $t4, $v0, 0xf
/* 0B0598 800AF998 00005825 */ move $t3, $zero
.L800AF99C:
/* 0B059C 800AF99C 000C6880 */ sll $t5, $t4, 2
/* 0B05A0 800AF9A0 028D7021 */ addu $t6, $s4, $t5
/* 0B05A4 800AF9A4 8DCF0000 */ lw $t7, ($t6)
/* 0B05A8 800AF9A8 1000002A */ b .L800AFA54
/* 0B05AC 800AF9AC AE2F0000 */ sw $t7, ($s1)
.L800AF9B0:
/* 0B05B0 800AF9B0 16000009 */ bnez $s0, .L800AF9D8
/* 0B05B4 800AF9B4 24010001 */ li $at, 1
/* 0B05B8 800AF9B8 927801DC */ lbu $t8, 0x1dc($s3)
/* 0B05BC 800AF9BC 00000000 */ nop
/* 0B05C0 800AF9C0 3319000F */ andi $t9, $t8, 0xf
/* 0B05C4 800AF9C4 00196080 */ sll $t4, $t9, 2
/* 0B05C8 800AF9C8 028C6821 */ addu $t5, $s4, $t4
/* 0B05CC 800AF9CC 8DAE0000 */ lw $t6, ($t5)
/* 0B05D0 800AF9D0 10000020 */ b .L800AFA54
/* 0B05D4 800AF9D4 AE2E0000 */ sw $t6, ($s1)
.L800AF9D8:
/* 0B05D8 800AF9D8 1601001E */ bne $s0, $at, .L800AFA54
/* 0B05DC 800AF9DC 00000000 */ nop
/* 0B05E0 800AF9E0 926F01DD */ lbu $t7, 0x1dd($s3)
/* 0B05E4 800AF9E4 00000000 */ nop
/* 0B05E8 800AF9E8 31F8000F */ andi $t8, $t7, 0xf
/* 0B05EC 800AF9EC 0018C880 */ sll $t9, $t8, 2
/* 0B05F0 800AF9F0 02996021 */ addu $t4, $s4, $t9
/* 0B05F4 800AF9F4 8D8D0000 */ lw $t5, ($t4)
/* 0B05F8 800AF9F8 10000016 */ b .L800AFA54
/* 0B05FC 800AF9FC AE2D0000 */ sw $t5, ($s1)
.L800AFA00:
/* 0B0600 800AFA00 12160003 */ beq $s0, $s6, .L800AFA10
/* 0B0604 800AFA04 24010003 */ li $at, 3
/* 0B0608 800AFA08 16010012 */ bne $s0, $at, .L800AFA54
/* 0B060C 800AFA0C 00000000 */ nop
.L800AFA10:
/* 0B0610 800AFA10 826E0002 */ lb $t6, 2($s3)
/* 0B0614 800AFA14 3C198012 */ lui $t9, %hi(D_80127C88) # $t9, 0x8012
/* 0B0618 800AFA18 31CF0007 */ andi $t7, $t6, 7
/* 0B061C 800AFA1C 000FC040 */ sll $t8, $t7, 1
/* 0B0620 800AFA20 27397C88 */ addiu $t9, %lo(D_80127C88) # addiu $t9, $t9, 0x7c88
/* 0B0624 800AFA24 8FAC0084 */ lw $t4, 0x84($sp)
/* 0B0628 800AFA28 03191821 */ addu $v1, $t8, $t9
/* 0B062C 800AFA2C 84620000 */ lh $v0, ($v1)
/* 0B0630 800AFA30 000C6880 */ sll $t5, $t4, 2
/* 0B0634 800AFA34 004D1021 */ addu $v0, $v0, $t5
/* 0B0638 800AFA38 28410101 */ slti $at, $v0, 0x101
/* 0B063C 800AFA3C 14200002 */ bnez $at, .L800AFA48
/* 0B0640 800AFA40 00000000 */ nop
/* 0B0644 800AFA44 24020100 */ li $v0, 256
.L800AFA48:
/* 0B0648 800AFA48 A4620000 */ sh $v0, ($v1)
/* 0B064C 800AFA4C 3C01800E */ lui $at, %hi(gParticleOpacity) # $at, 0x800e
/* 0B0650 800AFA50 AC222EEC */ sw $v0, %lo(gParticleOpacity)($at)
.L800AFA54:
/* 0B0654 800AFA54 11600060 */ beqz $t3, .L800AFBD8
/* 0B0658 800AFA58 00000000 */ nop
/* 0B065C 800AFA5C 8E46006C */ lw $a2, 0x6c($s2)
/* 0B0660 800AFA60 00103940 */ sll $a3, $s0, 5
/* 0B0664 800AFA64 00C71021 */ addu $v0, $a2, $a3
/* 0B0668 800AFA68 84430004 */ lh $v1, 4($v0)
/* 0B066C 800AFA6C 02402025 */ move $a0, $s2
/* 0B0670 800AFA70 306E8000 */ andi $t6, $v1, 0x8000
/* 0B0674 800AFA74 15C00009 */ bnez $t6, .L800AFA9C
/* 0B0678 800AFA78 02002825 */ move $a1, $s0
/* 0B067C 800AFA7C 0C02BD4B */ jal func_800AF52C
/* 0B0680 800AFA80 AFA70044 */ sw $a3, 0x44($sp)
/* 0B0684 800AFA84 8FA70044 */ lw $a3, 0x44($sp)
/* 0B0688 800AFA88 8E46006C */ lw $a2, 0x6c($s2)
/* 0B068C 800AFA8C 00000000 */ nop
/* 0B0690 800AFA90 00C71021 */ addu $v0, $a2, $a3
/* 0B0694 800AFA94 84430004 */ lh $v1, 4($v0)
/* 0B0698 800AFA98 00000000 */ nop
.L800AFA9C:
/* 0B069C 800AFA9C 306F4000 */ andi $t7, $v1, 0x4000
/* 0B06A0 800AFAA0 11E00007 */ beqz $t7, .L800AFAC0
/* 0B06A4 800AFAA4 30790400 */ andi $t9, $v1, 0x400
/* 0B06A8 800AFAA8 0010C140 */ sll $t8, $s0, 5
/* 0B06AC 800AFAAC 00D82821 */ addu $a1, $a2, $t8
/* 0B06B0 800AFAB0 0C02BF97 */ jal func_800AFE5C
/* 0B06B4 800AFAB4 02402025 */ move $a0, $s2
/* 0B06B8 800AFAB8 10000048 */ b .L800AFBDC
/* 0B06BC 800AFABC AE200000 */ sw $zero, ($s1)
.L800AFAC0:
/* 0B06C0 800AFAC0 13200006 */ beqz $t9, .L800AFADC
/* 0B06C4 800AFAC4 02402025 */ move $a0, $s2
/* 0B06C8 800AFAC8 00106140 */ sll $t4, $s0, 5
/* 0B06CC 800AFACC 0C02BF97 */ jal func_800AFE5C
/* 0B06D0 800AFAD0 00CC2821 */ addu $a1, $a2, $t4
/* 0B06D4 800AFAD4 10000041 */ b .L800AFBDC
/* 0B06D8 800AFAD8 AE200000 */ sw $zero, ($s1)
.L800AFADC:
/* 0B06DC 800AFADC 844D000A */ lh $t5, 0xa($v0)
/* 0B06E0 800AFAE0 8FAE0084 */ lw $t6, 0x84($sp)
/* 0B06E4 800AFAE4 02402025 */ move $a0, $s2
/* 0B06E8 800AFAE8 01AE7821 */ addu $t7, $t5, $t6
/* 0B06EC 800AFAEC A44F000A */ sh $t7, 0xa($v0)
/* 0B06F0 800AFAF0 8E46006C */ lw $a2, 0x6c($s2)
/* 0B06F4 800AFAF4 00106940 */ sll $t5, $s0, 5
/* 0B06F8 800AFAF8 00C71021 */ addu $v0, $a2, $a3
/* 0B06FC 800AFAFC 8C590000 */ lw $t9, ($v0)
/* 0B0700 800AFB00 8458000A */ lh $t8, 0xa($v0)
/* 0B0704 800AFB04 872C0040 */ lh $t4, 0x40($t9)
/* 0B0708 800AFB08 00000000 */ nop
/* 0B070C 800AFB0C 030C082A */ slt $at, $t8, $t4
/* 0B0710 800AFB10 14200031 */ bnez $at, .L800AFBD8
/* 0B0714 800AFB14 00000000 */ nop
/* 0B0718 800AFB18 0C02BF97 */ jal func_800AFE5C
/* 0B071C 800AFB1C 00CD2821 */ addu $a1, $a2, $t5
/* 0B0720 800AFB20 1000002E */ b .L800AFBDC
/* 0B0724 800AFB24 AE200000 */ sw $zero, ($s1)
.L800AFB28:
/* 0B0728 800AFB28 8E46006C */ lw $a2, 0x6c($s2)
/* 0B072C 800AFB2C 00107140 */ sll $t6, $s0, 5
/* 0B0730 800AFB30 00CE1021 */ addu $v0, $a2, $t6
/* 0B0734 800AFB34 84430004 */ lh $v1, 4($v0)
/* 0B0738 800AFB38 00000000 */ nop
/* 0B073C 800AFB3C 306F8000 */ andi $t7, $v1, 0x8000
/* 0B0740 800AFB40 11E00025 */ beqz $t7, .L800AFBD8
/* 0B0744 800AFB44 30794000 */ andi $t9, $v1, 0x4000
/* 0B0748 800AFB48 13200009 */ beqz $t9, .L800AFB70
/* 0B074C 800AFB4C 306C0400 */ andi $t4, $v1, 0x400
/* 0B0750 800AFB50 0010C140 */ sll $t8, $s0, 5
/* 0B0754 800AFB54 00D81021 */ addu $v0, $a2, $t8
/* 0B0758 800AFB58 A0400006 */ sb $zero, 6($v0)
/* 0B075C 800AFB5C 02402025 */ move $a0, $s2
/* 0B0760 800AFB60 0C02BDB9 */ jal func_800AF6E4
/* 0B0764 800AFB64 02002825 */ move $a1, $s0
/* 0B0768 800AFB68 10000011 */ b .L800AFBB0
/* 0B076C 800AFB6C 00000000 */ nop
.L800AFB70:
/* 0B0770 800AFB70 1180000D */ beqz $t4, .L800AFBA8
/* 0B0774 800AFB74 02402025 */ move $a0, $s2
/* 0B0778 800AFB78 00106940 */ sll $t5, $s0, 5
/* 0B077C 800AFB7C 346E0200 */ ori $t6, $v1, 0x200
/* 0B0780 800AFB80 00CD2021 */ addu $a0, $a2, $t5
/* 0B0784 800AFB84 A44E0004 */ sh $t6, 4($v0)
/* 0B0788 800AFB88 908F0006 */ lbu $t7, 6($a0)
/* 0B078C 800AFB8C 02402025 */ move $a0, $s2
/* 0B0790 800AFB90 15E00007 */ bnez $t7, .L800AFBB0
/* 0B0794 800AFB94 00000000 */ nop
/* 0B0798 800AFB98 0C02BDB9 */ jal func_800AF6E4
/* 0B079C 800AFB9C 02002825 */ move $a1, $s0
/* 0B07A0 800AFBA0 10000003 */ b .L800AFBB0
/* 0B07A4 800AFBA4 00000000 */ nop
.L800AFBA8:
/* 0B07A8 800AFBA8 0C02BDB9 */ jal func_800AF6E4
/* 0B07AC 800AFBAC 02002825 */ move $a1, $s0
.L800AFBB0:
/* 0B07B0 800AFBB0 12160003 */ beq $s0, $s6, .L800AFBC0
/* 0B07B4 800AFBB4 24010003 */ li $at, 3
/* 0B07B8 800AFBB8 16010007 */ bne $s0, $at, .L800AFBD8
/* 0B07BC 800AFBBC 00000000 */ nop
.L800AFBC0:
/* 0B07C0 800AFBC0 82790002 */ lb $t9, 2($s3)
/* 0B07C4 800AFBC4 3C018012 */ lui $at, %hi(D_80127C88) # $at, 0x8012
/* 0B07C8 800AFBC8 33380007 */ andi $t8, $t9, 7
/* 0B07CC 800AFBCC 00186040 */ sll $t4, $t8, 1
/* 0B07D0 800AFBD0 002C0821 */ addu $at, $at, $t4
/* 0B07D4 800AFBD4 A4207C88 */ sh $zero, %lo(D_80127C88)($at)
.L800AFBD8:
/* 0B07D8 800AFBD8 AE200000 */ sw $zero, ($s1)
.L800AFBDC:
/* 0B07DC 800AFBDC 240E0100 */ li $t6, 256
/* 0B07E0 800AFBE0 3C01800E */ lui $at, %hi(gParticleOpacity) # $at, 0x800e
/* 0B07E4 800AFBE4 AC2E2EEC */ sw $t6, %lo(gParticleOpacity)($at)
/* 0B07E8 800AFBE8 8E4F0040 */ lw $t7, 0x40($s2)
/* 0B07EC 800AFBEC 26100001 */ addiu $s0, $s0, 1
/* 0B07F0 800AFBF0 81F90057 */ lb $t9, 0x57($t7)
/* 0B07F4 800AFBF4 00176842 */ srl $t5, $s7, 1
/* 0B07F8 800AFBF8 0219082A */ slt $at, $s0, $t9
/* 0B07FC 800AFBFC 1420FEE0 */ bnez $at, .L800AF780
/* 0B0800 800AFC00 01A0B825 */ move $s7, $t5
.L800AFC04:
/* 0B0804 800AFC04 0C004BCC */ jal object_undo_player_tumble
/* 0B0808 800AFC08 02402025 */ move $a0, $s2
/* 0B080C 800AFC0C 8FBF003C */ lw $ra, 0x3c($sp)
/* 0B0810 800AFC10 8FB00018 */ lw $s0, 0x18($sp)
/* 0B0814 800AFC14 8FB1001C */ lw $s1, 0x1c($sp)
/* 0B0818 800AFC18 8FB20020 */ lw $s2, 0x20($sp)
/* 0B081C 800AFC1C 8FB30024 */ lw $s3, 0x24($sp)
/* 0B0820 800AFC20 8FB40028 */ lw $s4, 0x28($sp)
/* 0B0824 800AFC24 8FB5002C */ lw $s5, 0x2c($sp)
/* 0B0828 800AFC28 8FB60030 */ lw $s6, 0x30($sp)
/* 0B082C 800AFC2C 8FB70034 */ lw $s7, 0x34($sp)
/* 0B0830 800AFC30 8FBE0038 */ lw $fp, 0x38($sp)
/* 0B0834 800AFC34 03E00008 */ jr $ra
/* 0B0838 800AFC38 27BD0080 */ addiu $sp, $sp, 0x80
-375
View File
@@ -1,375 +0,0 @@
glabel func_800B0BAC
/* 0B17AC 800B0BAC 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 0B17B0 800B0BB0 AFBF001C */ sw $ra, 0x1c($sp)
/* 0B17B4 800B0BB4 AFB00018 */ sw $s0, 0x18($sp)
/* 0B17B8 800B0BB8 84AF0008 */ lh $t7, 8($a1)
/* 0B17BC 800B0BBC 3C0E800E */ lui $t6, %hi(gParticlesAssetTable) # $t6, 0x800e
/* 0B17C0 800B0BC0 8DCE2CF0 */ lw $t6, %lo(gParticlesAssetTable)($t6)
/* 0B17C4 800B0BC4 000FC080 */ sll $t8, $t7, 2
/* 0B17C8 800B0BC8 01D8C821 */ addu $t9, $t6, $t8
/* 0B17CC 800B0BCC 8F280000 */ lw $t0, ($t9)
/* 0B17D0 800B0BD0 24010003 */ li $at, 3
/* 0B17D4 800B0BD4 910A0000 */ lbu $t2, ($t0)
/* 0B17D8 800B0BD8 00808025 */ move $s0, $a0
/* 0B17DC 800B0BDC 11410003 */ beq $t2, $at, .L800B0BEC
/* 0B17E0 800B0BE0 00A03025 */ move $a2, $a1
/* 0B17E4 800B0BE4 1000014E */ b .L800B1120
/* 0B17E8 800B0BE8 00001025 */ move $v0, $zero
.L800B0BEC:
/* 0B17EC 800B0BEC 8CC30000 */ lw $v1, ($a2)
/* 0B17F0 800B0BF0 24040003 */ li $a0, 3
/* 0B17F4 800B0BF4 8C69009C */ lw $t1, 0x9c($v1)
/* 0B17F8 800B0BF8 AFA80034 */ sw $t0, 0x34($sp)
/* 0B17FC 800B0BFC AFA6003C */ sw $a2, 0x3c($sp)
/* 0B1800 800B0C00 AFA30028 */ sw $v1, 0x28($sp)
/* 0B1804 800B0C04 0C02C72E */ jal func_800B1CB8
/* 0B1808 800B0C08 AFA90024 */ sw $t1, 0x24($sp)
/* 0B180C 800B0C0C 8FA30028 */ lw $v1, 0x28($sp)
/* 0B1810 800B0C10 8FA6003C */ lw $a2, 0x3c($sp)
/* 0B1814 800B0C14 8FA80034 */ lw $t0, 0x34($sp)
/* 0B1818 800B0C18 8FA90024 */ lw $t1, 0x24($sp)
/* 0B181C 800B0C1C 14400003 */ bnez $v0, .L800B0C2C
/* 0B1820 800B0C20 00403825 */ move $a3, $v0
/* 0B1824 800B0C24 1000013E */ b .L800B1120
/* 0B1828 800B0C28 00001025 */ move $v0, $zero
.L800B0C2C:
/* 0B182C 800B0C2C 860B002E */ lh $t3, 0x2e($s0)
/* 0B1830 800B0C30 240C8000 */ li $t4, -32768
/* 0B1834 800B0C34 A44C0006 */ sh $t4, 6($v0)
/* 0B1838 800B0C38 A44B002E */ sh $t3, 0x2e($v0)
/* 0B183C 800B0C3C 910D0001 */ lbu $t5, 1($t0)
/* 0B1840 800B0C40 00000000 */ nop
/* 0B1844 800B0C44 A04D0039 */ sb $t5, 0x39($v0)
/* 0B1848 800B0C48 950F0002 */ lhu $t7, 2($t0)
/* 0B184C 800B0C4C AC50003C */ sw $s0, 0x3c($v0)
/* 0B1850 800B0C50 AC460058 */ sw $a2, 0x58($v0)
/* 0B1854 800B0C54 AC4F0040 */ sw $t7, 0x40($v0)
/* 0B1858 800B0C58 C5040010 */ lwc1 $f4, 0x10($t0)
/* 0B185C 800B0C5C C4660050 */ lwc1 $f6, 0x50($v1)
/* 0B1860 800B0C60 00000000 */ nop
/* 0B1864 800B0C64 46062202 */ mul.s $f8, $f4, $f6
/* 0B1868 800B0C68 44802000 */ mtc1 $zero, $f4
/* 0B186C 800B0C6C E4480008 */ swc1 $f8, 8($v0)
/* 0B1870 800B0C70 C4700054 */ lwc1 $f16, 0x54($v1)
/* 0B1874 800B0C74 C50A0010 */ lwc1 $f10, 0x10($t0)
/* 0B1878 800B0C78 3C03800E */ lui $v1, %hi(D_800E2D00) # $v1, 0x800e
/* 0B187C 800B0C7C 46105482 */ mul.s $f18, $f10, $f16
/* 0B1880 800B0C80 E4520028 */ swc1 $f18, 0x28($v0)
/* 0B1884 800B0C84 850E0008 */ lh $t6, 8($t0)
/* 0B1888 800B0C88 A0400038 */ sb $zero, 0x38($v0)
/* 0B188C 800B0C8C E4440034 */ swc1 $f4, 0x34($v0)
/* 0B1890 800B0C90 A44E003A */ sh $t6, 0x3a($v0)
/* 0B1894 800B0C94 8C632D00 */ lw $v1, %lo(D_800E2D00)($v1)
/* 0B1898 800B0C98 00000000 */ nop
/* 0B189C 800B0C9C 10600003 */ beqz $v1, .L800B0CAC
/* 0B18A0 800B0CA0 00000000 */ nop
/* 0B18A4 800B0CA4 1000000A */ b .L800B0CD0
/* 0B18A8 800B0CA8 AC43006C */ sw $v1, 0x6c($v0)
.L800B0CAC:
/* 0B18AC 800B0CAC 91180014 */ lbu $t8, 0x14($t0)
/* 0B18B0 800B0CB0 00000000 */ nop
/* 0B18B4 800B0CB4 A058006C */ sb $t8, 0x6c($v0)
/* 0B18B8 800B0CB8 91190015 */ lbu $t9, 0x15($t0)
/* 0B18BC 800B0CBC 00000000 */ nop
/* 0B18C0 800B0CC0 A059006D */ sb $t9, 0x6d($v0)
/* 0B18C4 800B0CC4 910A0016 */ lbu $t2, 0x16($t0)
/* 0B18C8 800B0CC8 00000000 */ nop
/* 0B18CC 800B0CCC A04A006E */ sb $t2, 0x6e($v0)
.L800B0CD0:
/* 0B18D0 800B0CD0 8C4C0040 */ lw $t4, 0x40($v0)
/* 0B18D4 800B0CD4 910B0017 */ lbu $t3, 0x17($t0)
/* 0B18D8 800B0CD8 318D0800 */ andi $t5, $t4, 0x800
/* 0B18DC 800B0CDC 11A00014 */ beqz $t5, .L800B0D30
/* 0B18E0 800B0CE0 A04B006F */ sb $t3, 0x6f($v0)
/* 0B18E4 800B0CE4 8E030054 */ lw $v1, 0x54($s0)
/* 0B18E8 800B0CE8 3C01437F */ li $at, 0x437F0000 # 255.000000
/* 0B18EC 800B0CEC 10600010 */ beqz $v1, .L800B0D30
/* 0B18F0 800B0CF0 00000000 */ nop
/* 0B18F4 800B0CF4 C4660000 */ lwc1 $f6, ($v1)
/* 0B18F8 800B0CF8 44814000 */ mtc1 $at, $f8
/* 0B18FC 800B0CFC 00000000 */ nop
/* 0B1900 800B0D00 46083282 */ mul.s $f10, $f6, $f8
/* 0B1904 800B0D04 444FF800 */ cfc1 $t7, $31
/* 0B1908 800B0D08 00000000 */ nop
/* 0B190C 800B0D0C 35E10003 */ ori $at, $t7, 3
/* 0B1910 800B0D10 38210002 */ xori $at, $at, 2
/* 0B1914 800B0D14 44C1F800 */ ctc1 $at, $31
/* 0B1918 800B0D18 00000000 */ nop
/* 0B191C 800B0D1C 46005424 */ cvt.w.s $f16, $f10
/* 0B1920 800B0D20 440E8000 */ mfc1 $t6, $f16
/* 0B1924 800B0D24 44CFF800 */ ctc1 $t7, $31
/* 0B1928 800B0D28 10000003 */ b .L800B0D38
/* 0B192C 800B0D2C A44E004A */ sh $t6, 0x4a($v0)
.L800B0D30:
/* 0B1930 800B0D30 241800FF */ li $t8, 255
/* 0B1934 800B0D34 A458004A */ sh $t8, 0x4a($v0)
.L800B0D38:
/* 0B1938 800B0D38 8519000E */ lh $t9, 0xe($t0)
/* 0B193C 800B0D3C 00000000 */ nop
/* 0B1940 800B0D40 A4590060 */ sh $t9, 0x60($v0)
/* 0B1944 800B0D44 910A000C */ lbu $t2, 0xc($t0)
/* 0B1948 800B0D48 00000000 */ nop
/* 0B194C 800B0D4C 000A5A00 */ sll $t3, $t2, 8
/* 0B1950 800B0D50 A44B005C */ sh $t3, 0x5c($v0)
/* 0B1954 800B0D54 910C000C */ lbu $t4, 0xc($t0)
/* 0B1958 800B0D58 00000000 */ nop
/* 0B195C 800B0D5C 298100FF */ slti $at, $t4, 0xff
/* 0B1960 800B0D60 1020000F */ beqz $at, .L800B0DA0
/* 0B1964 800B0D64 00000000 */ nop
/* 0B1968 800B0D68 8C4D0040 */ lw $t5, 0x40($v0)
/* 0B196C 800B0D6C 00000000 */ nop
/* 0B1970 800B0D70 31AF1000 */ andi $t7, $t5, 0x1000
/* 0B1974 800B0D74 11E00006 */ beqz $t7, .L800B0D90
/* 0B1978 800B0D78 00000000 */ nop
/* 0B197C 800B0D7C 844E0006 */ lh $t6, 6($v0)
/* 0B1980 800B0D80 00000000 */ nop
/* 0B1984 800B0D84 35D80100 */ ori $t8, $t6, 0x100
/* 0B1988 800B0D88 10000005 */ b .L800B0DA0
/* 0B198C 800B0D8C A4580006 */ sh $t8, 6($v0)
.L800B0D90:
/* 0B1990 800B0D90 84590006 */ lh $t9, 6($v0)
/* 0B1994 800B0D94 00000000 */ nop
/* 0B1998 800B0D98 372A0080 */ ori $t2, $t9, 0x80
/* 0B199C 800B0D9C A44A0006 */ sh $t2, 6($v0)
.L800B0DA0:
/* 0B19A0 800B0DA0 84440060 */ lh $a0, 0x60($v0)
/* 0B19A4 800B0DA4 8443003A */ lh $v1, 0x3a($v0)
/* 0B19A8 800B0DA8 00000000 */ nop
/* 0B19AC 800B0DAC 0083082A */ slt $at, $a0, $v1
/* 0B19B0 800B0DB0 10200014 */ beqz $at, .L800B0E04
/* 0B19B4 800B0DB4 00000000 */ nop
/* 0B19B8 800B0DB8 910B000D */ lbu $t3, 0xd($t0)
/* 0B19BC 800B0DBC 910C000C */ lbu $t4, 0xc($t0)
/* 0B19C0 800B0DC0 00647023 */ subu $t6, $v1, $a0
/* 0B19C4 800B0DC4 016C6823 */ subu $t5, $t3, $t4
/* 0B19C8 800B0DC8 000D7A00 */ sll $t7, $t5, 8
/* 0B19CC 800B0DCC 01EE001A */ div $zero, $t7, $t6
/* 0B19D0 800B0DD0 15C00002 */ bnez $t6, .L800B0DDC
/* 0B19D4 800B0DD4 00000000 */ nop
/* 0B19D8 800B0DD8 0007000D */ break 7
.L800B0DDC:
/* 0B19DC 800B0DDC 2401FFFF */ li $at, -1
/* 0B19E0 800B0DE0 15C10004 */ bne $t6, $at, .L800B0DF4
/* 0B19E4 800B0DE4 3C018000 */ lui $at, 0x8000
/* 0B19E8 800B0DE8 15E10002 */ bne $t7, $at, .L800B0DF4
/* 0B19EC 800B0DEC 00000000 */ nop
/* 0B19F0 800B0DF0 0006000D */ break 6
.L800B0DF4:
/* 0B19F4 800B0DF4 0000C012 */ mflo $t8
/* 0B19F8 800B0DF8 A458005E */ sh $t8, 0x5e($v0)
/* 0B19FC 800B0DFC 10000003 */ b .L800B0E0C
/* 0B1A00 800B0E00 84D90018 */ lh $t9, 0x18($a2)
.L800B0E04:
/* 0B1A04 800B0E04 A440005E */ sh $zero, 0x5e($v0)
/* 0B1A08 800B0E08 84D90018 */ lh $t9, 0x18($a2)
.L800B0E0C:
/* 0B1A0C 800B0E0C 84CA001A */ lh $t2, 0x1a($a2)
/* 0B1A10 800B0E10 84CB001C */ lh $t3, 0x1c($a2)
/* 0B1A14 800B0E14 44999000 */ mtc1 $t9, $f18
/* 0B1A18 800B0E18 448A3000 */ mtc1 $t2, $f6
/* 0B1A1C 800B0E1C 448B5000 */ mtc1 $t3, $f10
/* 0B1A20 800B0E20 46809120 */ cvt.s.w $f4, $f18
/* 0B1A24 800B0E24 02002025 */ move $a0, $s0
/* 0B1A28 800B0E28 24C5000C */ addiu $a1, $a2, 0xc
/* 0B1A2C 800B0E2C 46803220 */ cvt.s.w $f8, $f6
/* 0B1A30 800B0E30 E4C4000C */ swc1 $f4, 0xc($a2)
/* 0B1A34 800B0E34 46805420 */ cvt.s.w $f16, $f10
/* 0B1A38 800B0E38 E4C80010 */ swc1 $f8, 0x10($a2)
/* 0B1A3C 800B0E3C E4D00014 */ swc1 $f16, 0x14($a2)
/* 0B1A40 800B0E40 AFA90024 */ sw $t1, 0x24($sp)
/* 0B1A44 800B0E44 AFA80034 */ sw $t0, 0x34($sp)
/* 0B1A48 800B0E48 AFA70030 */ sw $a3, 0x30($sp)
/* 0B1A4C 800B0E4C 0C01C0C8 */ jal f32_vec3_apply_object_rotation
/* 0B1A50 800B0E50 AFA6003C */ sw $a2, 0x3c($sp)
/* 0B1A54 800B0E54 8FA6003C */ lw $a2, 0x3c($sp)
/* 0B1A58 800B0E58 C604000C */ lwc1 $f4, 0xc($s0)
/* 0B1A5C 800B0E5C C4D2000C */ lwc1 $f18, 0xc($a2)
/* 0B1A60 800B0E60 8FA70030 */ lw $a3, 0x30($sp)
/* 0B1A64 800B0E64 46049180 */ add.s $f6, $f18, $f4
/* 0B1A68 800B0E68 8FA80034 */ lw $t0, 0x34($sp)
/* 0B1A6C 800B0E6C 8FA90024 */ lw $t1, 0x24($sp)
/* 0B1A70 800B0E70 E4C6000C */ swc1 $f6, 0xc($a2)
/* 0B1A74 800B0E74 C60A0010 */ lwc1 $f10, 0x10($s0)
/* 0B1A78 800B0E78 C4C80010 */ lwc1 $f8, 0x10($a2)
/* 0B1A7C 800B0E7C C4D20014 */ lwc1 $f18, 0x14($a2)
/* 0B1A80 800B0E80 460A4400 */ add.s $f16, $f8, $f10
/* 0B1A84 800B0E84 2402FFFF */ li $v0, -1
/* 0B1A88 800B0E88 E4D00010 */ swc1 $f16, 0x10($a2)
/* 0B1A8C 800B0E8C C6040014 */ lwc1 $f4, 0x14($s0)
/* 0B1A90 800B0E90 00000000 */ nop
/* 0B1A94 800B0E94 46049180 */ add.s $f6, $f18, $f4
/* 0B1A98 800B0E98 E4C60014 */ swc1 $f6, 0x14($a2)
/* 0B1A9C 800B0E9C A0E00068 */ sb $zero, 0x68($a3)
/* 0B1AA0 800B0EA0 A0E0006A */ sb $zero, 0x6a($a3)
/* 0B1AA4 800B0EA4 A0E2006B */ sb $v0, 0x6b($a3)
/* 0B1AA8 800B0EA8 850C0006 */ lh $t4, 6($t0)
/* 0B1AAC 800B0EAC A4E00018 */ sh $zero, 0x18($a3)
/* 0B1AB0 800B0EB0 A4EC001A */ sh $t4, 0x1a($a3)
/* 0B1AB4 800B0EB4 85040004 */ lh $a0, 4($t0)
/* 0B1AB8 800B0EB8 8CE30044 */ lw $v1, 0x44($a3)
/* 0B1ABC 800B0EBC 14440003 */ bne $v0, $a0, .L800B0ECC
/* 0B1AC0 800B0EC0 00000000 */ nop
/* 0B1AC4 800B0EC4 1000002C */ b .L800B0F78
/* 0B1AC8 800B0EC8 AC600000 */ sw $zero, ($v1)
.L800B0ECC:
/* 0B1ACC 800B0ECC AFA3002C */ sw $v1, 0x2c($sp)
/* 0B1AD0 800B0ED0 AFA6003C */ sw $a2, 0x3c($sp)
/* 0B1AD4 800B0ED4 AFA70030 */ sw $a3, 0x30($sp)
/* 0B1AD8 800B0ED8 AFA80034 */ sw $t0, 0x34($sp)
/* 0B1ADC 800B0EDC 0C01EB9D */ jal load_texture
/* 0B1AE0 800B0EE0 AFA90024 */ sw $t1, 0x24($sp)
/* 0B1AE4 800B0EE4 8FA3002C */ lw $v1, 0x2c($sp)
/* 0B1AE8 800B0EE8 8FA6003C */ lw $a2, 0x3c($sp)
/* 0B1AEC 800B0EEC 8FA70030 */ lw $a3, 0x30($sp)
/* 0B1AF0 800B0EF0 8FA80034 */ lw $t0, 0x34($sp)
/* 0B1AF4 800B0EF4 8FA90024 */ lw $t1, 0x24($sp)
/* 0B1AF8 800B0EF8 1040001F */ beqz $v0, .L800B0F78
/* 0B1AFC 800B0EFC AC620000 */ sw $v0, ($v1)
/* 0B1B00 800B0F00 844F0006 */ lh $t7, 6($v0)
/* 0B1B04 800B0F04 00000000 */ nop
/* 0B1B08 800B0F08 31EE0004 */ andi $t6, $t7, 4
/* 0B1B0C 800B0F0C 11C0000F */ beqz $t6, .L800B0F4C
/* 0B1B10 800B0F10 00000000 */ nop
/* 0B1B14 800B0F14 8CF80040 */ lw $t8, 0x40($a3)
/* 0B1B18 800B0F18 00000000 */ nop
/* 0B1B1C 800B0F1C 33191000 */ andi $t9, $t8, 0x1000
/* 0B1B20 800B0F20 13200006 */ beqz $t9, .L800B0F3C
/* 0B1B24 800B0F24 00000000 */ nop
/* 0B1B28 800B0F28 84EA0006 */ lh $t2, 6($a3)
/* 0B1B2C 800B0F2C 00000000 */ nop
/* 0B1B30 800B0F30 354B0100 */ ori $t3, $t2, 0x100
/* 0B1B34 800B0F34 10000005 */ b .L800B0F4C
/* 0B1B38 800B0F38 A4EB0006 */ sh $t3, 6($a3)
.L800B0F3C:
/* 0B1B3C 800B0F3C 84EC0006 */ lh $t4, 6($a3)
/* 0B1B40 800B0F40 00000000 */ nop
/* 0B1B44 800B0F44 358D0080 */ ori $t5, $t4, 0x80
/* 0B1B48 800B0F48 A4ED0006 */ sh $t5, 6($a3)
.L800B0F4C:
/* 0B1B4C 800B0F4C 8CEF0040 */ lw $t7, 0x40($a3)
/* 0B1B50 800B0F50 24010002 */ li $at, 2
/* 0B1B54 800B0F54 31EE0003 */ andi $t6, $t7, 3
/* 0B1B58 800B0F58 15C10007 */ bne $t6, $at, .L800B0F78
/* 0B1B5C 800B0F5C 00000000 */ nop
/* 0B1B60 800B0F60 8C780000 */ lw $t8, ($v1)
/* 0B1B64 800B0F64 00000000 */ nop
/* 0B1B68 800B0F68 97190012 */ lhu $t9, 0x12($t8)
/* 0B1B6C 800B0F6C 00000000 */ nop
/* 0B1B70 800B0F70 272AFFFF */ addiu $t2, $t9, -1
/* 0B1B74 800B0F74 A4EA0018 */ sh $t2, 0x18($a3)
.L800B0F78:
/* 0B1B78 800B0F78 444BF800 */ cfc1 $t3, $31
/* 0B1B7C 800B0F7C C4C8000C */ lwc1 $f8, 0xc($a2)
/* 0B1B80 800B0F80 35610003 */ ori $at, $t3, 3
/* 0B1B84 800B0F84 38210002 */ xori $at, $at, 2
/* 0B1B88 800B0F88 44C1F800 */ ctc1 $at, $31
/* 0B1B8C 800B0F8C 8C6D0008 */ lw $t5, 8($v1)
/* 0B1B90 800B0F90 460042A4 */ cvt.w.s $f10, $f8
/* 0B1B94 800B0F94 44CBF800 */ ctc1 $t3, $31
/* 0B1B98 800B0F98 440C5000 */ mfc1 $t4, $f10
/* 0B1B9C 800B0F9C 00000000 */ nop
/* 0B1BA0 800B0FA0 444FF800 */ cfc1 $t7, $31
/* 0B1BA4 800B0FA4 A5AC0000 */ sh $t4, ($t5)
/* 0B1BA8 800B0FA8 35E10003 */ ori $at, $t7, 3
/* 0B1BAC 800B0FAC 38210002 */ xori $at, $at, 2
/* 0B1BB0 800B0FB0 44C1F800 */ ctc1 $at, $31
/* 0B1BB4 800B0FB4 C4D00010 */ lwc1 $f16, 0x10($a2)
/* 0B1BB8 800B0FB8 8C780008 */ lw $t8, 8($v1)
/* 0B1BBC 800B0FBC 460084A4 */ cvt.w.s $f18, $f16
/* 0B1BC0 800B0FC0 44CFF800 */ ctc1 $t7, $31
/* 0B1BC4 800B0FC4 440E9000 */ mfc1 $t6, $f18
/* 0B1BC8 800B0FC8 00000000 */ nop
/* 0B1BCC 800B0FCC 4459F800 */ cfc1 $t9, $31
/* 0B1BD0 800B0FD0 A70E0002 */ sh $t6, 2($t8)
/* 0B1BD4 800B0FD4 37210003 */ ori $at, $t9, 3
/* 0B1BD8 800B0FD8 38210002 */ xori $at, $at, 2
/* 0B1BDC 800B0FDC 44C1F800 */ ctc1 $at, $31
/* 0B1BE0 800B0FE0 C4C40014 */ lwc1 $f4, 0x14($a2)
/* 0B1BE4 800B0FE4 8C6B0008 */ lw $t3, 8($v1)
/* 0B1BE8 800B0FE8 460021A4 */ cvt.w.s $f6, $f4
/* 0B1BEC 800B0FEC 2401FFFF */ li $at, -1
/* 0B1BF0 800B0FF0 440A3000 */ mfc1 $t2, $f6
/* 0B1BF4 800B0FF4 44D9F800 */ ctc1 $t9, $31
/* 0B1BF8 800B0FF8 11210026 */ beq $t1, $at, .L800B1094
/* 0B1BFC 800B0FFC A56A0004 */ sh $t2, 4($t3)
/* 0B1C00 800B1000 84CC001E */ lh $t4, 0x1e($a2)
/* 0B1C04 800B1004 00000000 */ nop
/* 0B1C08 800B1008 258D0001 */ addiu $t5, $t4, 1
/* 0B1C0C 800B100C A4CD001E */ sh $t5, 0x1e($a2)
/* 0B1C10 800B1010 8D2F0000 */ lw $t7, ($t1)
/* 0B1C14 800B1014 84C2001E */ lh $v0, 0x1e($a2)
/* 0B1C18 800B1018 00000000 */ nop
/* 0B1C1C 800B101C 004F082A */ slt $at, $v0, $t7
/* 0B1C20 800B1020 14200005 */ bnez $at, .L800B1038
/* 0B1C24 800B1024 000270C0 */ sll $t6, $v0, 3
/* 0B1C28 800B1028 A4C0001E */ sh $zero, 0x1e($a2)
/* 0B1C2C 800B102C 84C2001E */ lh $v0, 0x1e($a2)
/* 0B1C30 800B1030 00000000 */ nop
/* 0B1C34 800B1034 000270C0 */ sll $t6, $v0, 3
.L800B1038:
/* 0B1C38 800B1038 012EC021 */ addu $t8, $t1, $t6
/* 0B1C3C 800B103C 93190014 */ lbu $t9, 0x14($t8)
/* 0B1C40 800B1040 8C6A0008 */ lw $t2, 8($v1)
/* 0B1C44 800B1044 00000000 */ nop
/* 0B1C48 800B1048 A1590006 */ sb $t9, 6($t2)
/* 0B1C4C 800B104C 84CB001E */ lh $t3, 0x1e($a2)
/* 0B1C50 800B1050 8C6E0008 */ lw $t6, 8($v1)
/* 0B1C54 800B1054 000B60C0 */ sll $t4, $t3, 3
/* 0B1C58 800B1058 012C6821 */ addu $t5, $t1, $t4
/* 0B1C5C 800B105C 91AF0015 */ lbu $t7, 0x15($t5)
/* 0B1C60 800B1060 00000000 */ nop
/* 0B1C64 800B1064 A1CF0007 */ sb $t7, 7($t6)
/* 0B1C68 800B1068 84D8001E */ lh $t8, 0x1e($a2)
/* 0B1C6C 800B106C 8C6C0008 */ lw $t4, 8($v1)
/* 0B1C70 800B1070 0018C8C0 */ sll $t9, $t8, 3
/* 0B1C74 800B1074 01395021 */ addu $t2, $t1, $t9
/* 0B1C78 800B1078 914B0016 */ lbu $t3, 0x16($t2)
/* 0B1C7C 800B107C 00000000 */ nop
/* 0B1C80 800B1080 A18B0008 */ sb $t3, 8($t4)
/* 0B1C84 800B1084 8C6F0008 */ lw $t7, 8($v1)
/* 0B1C88 800B1088 90CD0006 */ lbu $t5, 6($a2)
/* 0B1C8C 800B108C 10000011 */ b .L800B10D4
/* 0B1C90 800B1090 A1ED0009 */ sb $t5, 9($t7)
.L800B1094:
/* 0B1C94 800B1094 90EE006C */ lbu $t6, 0x6c($a3)
/* 0B1C98 800B1098 8C780008 */ lw $t8, 8($v1)
/* 0B1C9C 800B109C 00000000 */ nop
/* 0B1CA0 800B10A0 A30E0006 */ sb $t6, 6($t8)
/* 0B1CA4 800B10A4 8C6A0008 */ lw $t2, 8($v1)
/* 0B1CA8 800B10A8 90F9006D */ lbu $t9, 0x6d($a3)
/* 0B1CAC 800B10AC 00000000 */ nop
/* 0B1CB0 800B10B0 A1590007 */ sb $t9, 7($t2)
/* 0B1CB4 800B10B4 8C6C0008 */ lw $t4, 8($v1)
/* 0B1CB8 800B10B8 90EB006E */ lbu $t3, 0x6e($a3)
/* 0B1CBC 800B10BC 00000000 */ nop
/* 0B1CC0 800B10C0 A18B0008 */ sb $t3, 8($t4)
/* 0B1CC4 800B10C4 8C6F0008 */ lw $t7, 8($v1)
/* 0B1CC8 800B10C8 90CD0006 */ lbu $t5, 6($a2)
/* 0B1CCC 800B10CC 00000000 */ nop
/* 0B1CD0 800B10D0 A1ED0009 */ sb $t5, 9($t7)
.L800B10D4:
/* 0B1CD4 800B10D4 950E000A */ lhu $t6, 0xa($t0)
/* 0B1CD8 800B10D8 00E01025 */ move $v0, $a3
/* 0B1CDC 800B10DC 000EC282 */ srl $t8, $t6, 0xa
/* 0B1CE0 800B10E0 A0F8006A */ sb $t8, 0x6a($a3)
/* 0B1CE4 800B10E4 8D190008 */ lw $t9, 8($t0)
/* 0B1CE8 800B10E8 00000000 */ nop
/* 0B1CEC 800B10EC 00195580 */ sll $t2, $t9, 0x16
/* 0B1CF0 800B10F0 000A5E82 */ srl $t3, $t2, 0x1a
/* 0B1CF4 800B10F4 A0EB006B */ sb $t3, 0x6b($a3)
/* 0B1CF8 800B10F8 C608000C */ lwc1 $f8, 0xc($s0)
/* 0B1CFC 800B10FC 00000000 */ nop
/* 0B1D00 800B1100 E4E8000C */ swc1 $f8, 0xc($a3)
/* 0B1D04 800B1104 C60A0010 */ lwc1 $f10, 0x10($s0)
/* 0B1D08 800B1108 00000000 */ nop
/* 0B1D0C 800B110C E4EA0010 */ swc1 $f10, 0x10($a3)
/* 0B1D10 800B1110 C6100014 */ lwc1 $f16, 0x14($s0)
/* 0B1D14 800B1114 00000000 */ nop
/* 0B1D18 800B1118 E4F00014 */ swc1 $f16, 0x14($a3)
/* 0B1D1C 800B111C A4C0000A */ sh $zero, 0xa($a2)
.L800B1120:
/* 0B1D20 800B1120 8FBF001C */ lw $ra, 0x1c($sp)
/* 0B1D24 800B1124 8FB00018 */ lw $s0, 0x18($sp)
/* 0B1D28 800B1128 03E00008 */ jr $ra
/* 0B1D2C 800B112C 27BD0038 */ addiu $sp, $sp, 0x38
File diff suppressed because it is too large Load Diff
+5 -1
View File
@@ -547,6 +547,9 @@ typedef struct TexCoords {
};
} TexCoords;
#define BACKFACE_CULL 0x00
#define BACKFACE_DRAW 0x40
/* Size: 0x10 bytes */
typedef struct Triangle {
union {
@@ -1716,7 +1719,8 @@ typedef struct Object_6C {
/* 0x00 */ struct Particle *unk0;
/* 0x04 */ s16 unk4;
/* 0x06 */ u8 unk6;
/* 0x07 */ u8 pad7[0x3];
/* 0x07 */ u8 unk7;
/* 0x08 */ s16 unk8;
/* 0x0A */ s16 unkA;
/* 0x0C */ u8 padC[0x14];
} Object_6C;
+444 -42
View File
File diff suppressed because it is too large Load Diff
+75 -7
View File
@@ -56,8 +56,16 @@ typedef struct ParticleProperties {
/* 0x02 */ u16 unk2;
/* 0x04 */ s16 textureID;
/* 0x06 */ s16 unk6;
/* 0x08 */ s16 lifeTime;
/* 0x0A */ s16 lifeTimeRange;
union {
struct {
/* 0x08 */ s16 lifeTime;
union {
/* 0x0A */ s16 lifeTimeRange;
/* 0x0A */ u16 lifeTimeRangeUnsigned;
};
};
/* 0x08 */ s32 lifeTimeWord;
};
/* 0x0C */ u8 opacity;
/* 0x0D */ u8 opacityVel;
/* 0x0E */ s16 opacityTimer;
@@ -87,6 +95,49 @@ typedef struct unk800B1130_SP28 {
u8 a;
} unk800B1130_SP28;
// Size: 8 bytes
typedef struct Particle_58_0_9C {
u8 pad0[4];
u8 unk4;
u8 unk5;
u8 unk6;
u8 unk7;
} Particle_58_0_9C;
typedef struct Particle_58_0 {
s32 unk0;
u8 pad4[0x2];
u8 unk6;
u8 pad7[0x5];
f32 unkC;
f32 unk10;
f32 unk14;
u8 pad18[0x6];
s16 unk1E;
u8 pad20[0x7C];
Particle_58_0_9C *unk9C;
} Particle_58_0;
typedef struct Particle_58 {
Particle_58_0 *unk0;
u8 pad4[0x2];
u8 unk6;
u8 pad7[0x5];
f32 unkC;
f32 unk10;
f32 unk14;
u8 pad18[0x6];
s16 unk1E;
} Particle_58;
typedef struct ParticleSegment_3C {
u8 pad0[0x1C];
f32 unk1C;
f32 unk20;
f32 unk24;
} ParticleSegment_3C;
typedef struct ParticleAngle {
s16 y_rotation;
s16 x_rotation;
@@ -179,7 +230,10 @@ typedef struct Particle {
/* 0x0054 */ f32 baseVelZ;
/* 0x0054 */ f32 *unk54_ptr;
};
union {
/* 0x0058 */ Particle_58 **unk58_ptr;
/* 0x0058 */ f32 forwardVel;
};
/* 0x005C */ s16 opacity;
/* 0x005E */ s16 opacityVel;
/* 0x0060 */ s16 opacityTimer;
@@ -187,8 +241,13 @@ typedef struct Particle {
/* 0x0064 */ s16 angleVelX;
/* 0x0066 */ s16 angleVelZ;
union {
/* 0x0068 */ u8 unk68b;
/* 0x0068 */ f32 gravity;
struct {
/* 0x0068 */ u8 unk68b;
/* 0x0069 */ u8 unk69b;
/* 0x006A */ s8 unk6Ab;
/* 0x006B */ s8 unk6Bb;
};
};
/* 0x006C */ ColourRGBA colour;
/* 0x0070 */ struct Particle *unk70;
@@ -198,6 +257,15 @@ typedef struct Particle {
/* 0x0077 */ s8 unk77;
} Particle;
// Size: 8 bytes
typedef struct unkParticleBehaviorUnk9C {
s32 unk0;
u8 r;
u8 g;
u8 b;
u8 pad7; // Probably alpha
} unkParticleBehaviorUnk9C;
// Almost an identical copy of Particle, but a few bytes shorter. Exists to make sure func_800B1CB8 matches.
typedef struct ParticleType {
u8 pad[0x2C];
@@ -239,12 +307,12 @@ void func_800B4668(Object *obj, s32 idx, s32 arg2, s32 arg3);
void func_800B46BC(Object *obj, s32 idx, s32 arg2, s32 arg3);
void func_800AFC3C(Object *obj, s32 updateRate);
void func_800B3E64(Object *obj);
void func_800B26E0(Particle *particle);
void func_800AF714(Object *racerObj, s32 updateRate);
Particle* func_800B0BAC(Object* arg0, Particle* arg1);
void func_800AF404(s32 arg0); // Non Matching
void func_800AF404(s32 updateRate); // Non Matching
void func_800AE728(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5); // Non Matching
void func_800AF714(Object*, s32); // Non matching
Particle *func_800B0BAC();
void func_800B26E0();
void move_particle_basic_parent(Particle *);
void move_particle_velocity_parent(Particle *);
void move_particle_with_velocities(Particle *);
+1 -1
View File
@@ -18,4 +18,4 @@ compiler_type = "ido"
"NULL" = "unsigned int"
[decompme.compilers]
"./tools/ido-static-recomp/build/5.3/out/cc" = "ido5.3_irix"
"tools/ido-static-recomp/build/5.3/out/cc" = "ido5.3_irix"