Match several functions in code_802B0210 (#216)

Several other functions are as matched as the can be, needing only
 the addition of some RODATA to fully match.

Others are in a mostly-matched state, but have some incorrect
 register allocation. More investigation/work is needed to
 figure that out.

Most of those leftover have had their m2c output regenerated.

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
Tyler McGavran 2022-06-02 02:48:44 -04:00 committed by GitHub
parent c82a7438fb
commit 56120481f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 846 additions and 1618 deletions

View File

@ -1,15 +0,0 @@
glabel func_802B1FFC
/* 11B60C 802B1FFC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 11B610 802B2000 AFBF0014 */ sw $ra, 0x14($sp)
/* 11B614 802B2004 0C0AC792 */ jal func_802B1E48
/* 11B618 802B2008 00000000 */ nop
/* 11B61C 802B200C 000278C0 */ sll $t7, $v0, 3
/* 11B620 802B2010 8FBF0014 */ lw $ra, 0x14($sp)
/* 11B624 802B2014 01E27823 */ subu $t7, $t7, $v0
/* 11B628 802B2018 000F7900 */ sll $t7, $t7, 4
/* 11B62C 802B201C 3C018016 */ lui $at, %hi(gActorList) # 0x8016
/* 11B630 802B2020 002F0821 */ addu $at, $at, $t7
/* 11B634 802B2024 240E002A */ li $t6, 42
/* 11B638 802B2028 A42EF9B8 */ sh $t6, %lo(gActorList)($at)
/* 11B63C 802B202C 03E00008 */ jr $ra
/* 11B640 802B2030 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,87 +0,0 @@
glabel func_802B2D70
/* 11C380 802B2D70 3C0E800E */ lui $t6, %hi(gPlayerOne) # $t6, 0x800e
/* 11C384 802B2D74 8DCEC4DC */ lw $t6, %lo(gPlayerOne)($t6)
/* 11C388 802B2D78 24010DD8 */ li $at, 3544
/* 11C38C 802B2D7C 27BDFF98 */ addiu $sp, $sp, -0x68
/* 11C390 802B2D80 008E1023 */ subu $v0, $a0, $t6
/* 11C394 802B2D84 0041001A */ div $zero, $v0, $at
/* 11C398 802B2D88 00007812 */ mflo $t7
/* 11C39C 802B2D8C 31E8FFFF */ andi $t0, $t7, 0xffff
/* 11C3A0 802B2D90 AFB00018 */ sw $s0, 0x18($sp)
/* 11C3A4 802B2D94 29010008 */ slti $at, $t0, 8
/* 11C3A8 802B2D98 00808025 */ move $s0, $a0
/* 11C3AC 802B2D9C 14200003 */ bnez $at, .L802B2DAC
/* 11C3B0 802B2DA0 AFBF001C */ sw $ra, 0x1c($sp)
/* 11C3B4 802B2DA4 10000040 */ b .L802B2EA8
/* 11C3B8 802B2DA8 2402FFFF */ li $v0, -1
.L802B2DAC:
/* 11C3BC 802B2DAC 44802000 */ mtc1 $zero, $f4
/* 11C3C0 802B2DB0 3C014080 */ li $at, 0x40800000 # 4.000000
/* 11C3C4 802B2DB4 44818000 */ mtc1 $at, $f16
/* 11C3C8 802B2DB8 E7A40028 */ swc1 $f4, 0x28($sp)
/* 11C3CC 802B2DBC C6060070 */ lwc1 $f6, 0x70($s0)
/* 11C3D0 802B2DC0 27A40028 */ addiu $a0, $sp, 0x28
/* 11C3D4 802B2DC4 26050174 */ addiu $a1, $s0, 0x174
/* 11C3D8 802B2DC8 46003207 */ neg.s $f8, $f6
/* 11C3DC 802B2DCC E7A8002C */ swc1 $f8, 0x2c($sp)
/* 11C3E0 802B2DD0 C60A0070 */ lwc1 $f10, 0x70($s0)
/* 11C3E4 802B2DD4 AFA80020 */ sw $t0, 0x20($sp)
/* 11C3E8 802B2DD8 46105480 */ add.s $f18, $f10, $f16
/* 11C3EC 802B2DDC 46009107 */ neg.s $f4, $f18
/* 11C3F0 802B2DE0 0C0AD8EE */ jal func_802B63B8
/* 11C3F4 802B2DE4 E7A40030 */ swc1 $f4, 0x30($sp)
/* 11C3F8 802B2DE8 C7A60028 */ lwc1 $f6, 0x28($sp)
/* 11C3FC 802B2DEC C6080014 */ lwc1 $f8, 0x14($s0)
/* 11C400 802B2DF0 C7B0002C */ lwc1 $f16, 0x2c($sp)
/* 11C404 802B2DF4 27A40028 */ addiu $a0, $sp, 0x28
/* 11C408 802B2DF8 46083280 */ add.s $f10, $f6, $f8
/* 11C40C 802B2DFC C7A60030 */ lwc1 $f6, 0x30($sp)
/* 11C410 802B2E00 27A50034 */ addiu $a1, $sp, 0x34
/* 11C414 802B2E04 27A6003C */ addiu $a2, $sp, 0x3c
/* 11C418 802B2E08 E7AA0028 */ swc1 $f10, 0x28($sp)
/* 11C41C 802B2E0C C6120018 */ lwc1 $f18, 0x18($s0)
/* 11C420 802B2E10 24070006 */ li $a3, 6
/* 11C424 802B2E14 46128100 */ add.s $f4, $f16, $f18
/* 11C428 802B2E18 E7A4002C */ swc1 $f4, 0x2c($sp)
/* 11C42C 802B2E1C C608001C */ lwc1 $f8, 0x1c($s0)
/* 11C430 802B2E20 46083280 */ add.s $f10, $f6, $f8
/* 11C434 802B2E24 E7AA0030 */ swc1 $f10, 0x30($sp)
/* 11C438 802B2E28 C6100034 */ lwc1 $f16, 0x34($s0)
/* 11C43C 802B2E2C E7B0003C */ swc1 $f16, 0x3c($sp)
/* 11C440 802B2E30 C6120038 */ lwc1 $f18, 0x38($s0)
/* 11C444 802B2E34 E7B20040 */ swc1 $f18, 0x40($sp)
/* 11C448 802B2E38 C604003C */ lwc1 $f4, 0x3c($s0)
/* 11C44C 802B2E3C A7A00034 */ sh $zero, 0x34($sp)
/* 11C450 802B2E40 A7A00036 */ sh $zero, 0x36($sp)
/* 11C454 802B2E44 A7A00038 */ sh $zero, 0x38($sp)
/* 11C458 802B2E48 0C0A7B22 */ jal func_8029EC88
/* 11C45C 802B2E4C E7A40044 */ swc1 $f4, 0x44($sp)
/* 11C460 802B2E50 00022400 */ sll $a0, $v0, 0x10
/* 11C464 802B2E54 0004CC03 */ sra $t9, $a0, 0x10
/* 11C468 802B2E58 03202025 */ move $a0, $t9
/* 11C46C 802B2E5C 04410003 */ bgez $v0, .L802B2E6C
/* 11C470 802B2E60 8FA80020 */ lw $t0, 0x20($sp)
/* 11C474 802B2E64 10000010 */ b .L802B2EA8
/* 11C478 802B2E68 03201025 */ move $v0, $t9
.L802B2E6C:
/* 11C47C 802B2E6C 000448C0 */ sll $t1, $a0, 3
/* 11C480 802B2E70 01244823 */ subu $t1, $t1, $a0
/* 11C484 802B2E74 3C0A8016 */ lui $t2, %hi(gActorList) # $t2, 0x8016
/* 11C488 802B2E78 254AF9B8 */ addiu $t2, %lo(gActorList) # addiu $t2, $t2, -0x648
/* 11C48C 802B2E7C 00094900 */ sll $t1, $t1, 4
/* 11C490 802B2E80 012A1821 */ addu $v1, $t1, $t2
/* 11C494 802B2E84 240B0014 */ li $t3, 20
/* 11C498 802B2E88 A4680010 */ sh $t0, 0x10($v1)
/* 11C49C 802B2E8C A4600006 */ sh $zero, 6($v1)
/* 11C4A0 802B2E90 A46B0004 */ sh $t3, 4($v1)
/* 11C4A4 802B2E94 8E0C000C */ lw $t4, 0xc($s0)
/* 11C4A8 802B2E98 3C010004 */ lui $at, 4
/* 11C4AC 802B2E9C 00801025 */ move $v0, $a0
/* 11C4B0 802B2EA0 01816825 */ or $t5, $t4, $at
/* 11C4B4 802B2EA4 AE0D000C */ sw $t5, 0xc($s0)
.L802B2EA8:
/* 11C4B8 802B2EA8 8FBF001C */ lw $ra, 0x1c($sp)
/* 11C4BC 802B2EAC 8FB00018 */ lw $s0, 0x18($sp)
/* 11C4C0 802B2EB0 27BD0068 */ addiu $sp, $sp, 0x68
/* 11C4C4 802B2EB4 03E00008 */ jr $ra
/* 11C4C8 802B2EB8 00000000 */ nop

View File

@ -1,64 +0,0 @@
glabel func_802B2EBC
/* 11C4CC 802B2EBC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 11C4D0 802B2EC0 AFBF0014 */ sw $ra, 0x14($sp)
/* 11C4D4 802B2EC4 0C02796F */ jal func_8009E5BC
/* 11C4D8 802B2EC8 AFA40018 */ sw $a0, 0x18($sp)
/* 11C4DC 802B2ECC 8FA60018 */ lw $a2, 0x18($sp)
/* 11C4E0 802B2ED0 3C18800E */ lui $t8, %hi(gPlayerOne) # $t8, 0x800e
/* 11C4E4 802B2ED4 94CE0000 */ lhu $t6, ($a2)
/* 11C4E8 802B2ED8 31CF4000 */ andi $t7, $t6, 0x4000
/* 11C4EC 802B2EDC 11E0000B */ beqz $t7, .L802B2F0C
/* 11C4F0 802B2EE0 00000000 */ nop
/* 11C4F4 802B2EE4 8F18C4DC */ lw $t8, %lo(gPlayerOne)($t8)
/* 11C4F8 802B2EE8 24010DD8 */ li $at, 3544
/* 11C4FC 802B2EEC AFA60018 */ sw $a2, 0x18($sp)
/* 11C500 802B2EF0 00D82023 */ subu $a0, $a2, $t8
/* 11C504 802B2EF4 0081001A */ div $zero, $a0, $at
/* 11C508 802B2EF8 0000C812 */ mflo $t9
/* 11C50C 802B2EFC 332400FF */ andi $a0, $t9, 0xff
/* 11C510 802B2F00 0C032AD3 */ jal func_800CAB4C
/* 11C514 802B2F04 00000000 */ nop
/* 11C518 802B2F08 8FA60018 */ lw $a2, 0x18($sp)
.L802B2F0C:
/* 11C51C 802B2F0C 3C03800F */ lui $v1, %hi(gPlayers) # $v1, 0x800f
/* 11C520 802B2F10 3C04800F */ lui $a0, %hi(gPlayers+0xDD8) # $a0, 0x800f
/* 11C524 802B2F14 3C058010 */ lui $a1, %hi(gPlayers+0x1BB0) # $a1, 0x8010
/* 11C528 802B2F18 3C028010 */ lui $v0, %hi(gPlayers+0x2988) # $v0, 0x8010
/* 11C52C 802B2F1C 3C078010 */ lui $a3, %hi(gGfxPools+0x2978) # $a3, 0x8010
/* 11C530 802B2F20 24E701D8 */ addiu $a3, %lo(gGfxPools+0x2978) # addiu $a3, $a3, 0x1d8
/* 11C534 802B2F24 24429318 */ addiu $v0, %lo(gPlayers+0x2988) # addiu $v0, $v0, -0x6ce8
/* 11C538 802B2F28 24A58540 */ addiu $a1, %lo(gPlayers+0x1BB0) # addiu $a1, $a1, -0x7ac0
/* 11C53C 802B2F2C 24847768 */ addiu $a0, %lo(gPlayers+0xDD8) # addiu $a0, $a0, 0x7768
/* 11C540 802B2F30 24636990 */ addiu $v1, %lo(gPlayers) # addiu $v1, $v1, 0x6990
.L802B2F34:
/* 11C544 802B2F34 10C30004 */ beq $a2, $v1, .L802B2F48
/* 11C548 802B2F38 00000000 */ nop
/* 11C54C 802B2F3C 8C69000C */ lw $t1, 0xc($v1)
/* 11C550 802B2F40 352A4000 */ ori $t2, $t1, 0x4000
/* 11C554 802B2F44 AC6A000C */ sw $t2, 0xc($v1)
.L802B2F48:
/* 11C558 802B2F48 10C40004 */ beq $a2, $a0, .L802B2F5C
/* 11C55C 802B2F4C 24633760 */ addiu $v1, $v1, 0x3760
/* 11C560 802B2F50 8C8B000C */ lw $t3, 0xc($a0)
/* 11C564 802B2F54 356C4000 */ ori $t4, $t3, 0x4000
/* 11C568 802B2F58 AC8C000C */ sw $t4, 0xc($a0)
.L802B2F5C:
/* 11C56C 802B2F5C 10C50004 */ beq $a2, $a1, .L802B2F70
/* 11C570 802B2F60 24843760 */ addiu $a0, $a0, 0x3760
/* 11C574 802B2F64 8CAD000C */ lw $t5, 0xc($a1)
/* 11C578 802B2F68 35AE4000 */ ori $t6, $t5, 0x4000
/* 11C57C 802B2F6C ACAE000C */ sw $t6, 0xc($a1)
.L802B2F70:
/* 11C580 802B2F70 50C20005 */ beql $a2, $v0, .L802B2F88
/* 11C584 802B2F74 24423760 */ addiu $v0, $v0, 0x3760
/* 11C588 802B2F78 8C4F000C */ lw $t7, 0xc($v0)
/* 11C58C 802B2F7C 35F84000 */ ori $t8, $t7, 0x4000
/* 11C590 802B2F80 AC58000C */ sw $t8, 0xc($v0)
/* 11C594 802B2F84 24423760 */ addiu $v0, $v0, 0x3760
.L802B2F88:
/* 11C598 802B2F88 1447FFEA */ bne $v0, $a3, .L802B2F34
/* 11C59C 802B2F8C 24A53760 */ addiu $a1, $a1, 0x3760
/* 11C5A0 802B2F90 8FBF0014 */ lw $ra, 0x14($sp)
/* 11C5A4 802B2F94 27BD0018 */ addiu $sp, $sp, 0x18
/* 11C5A8 802B2F98 03E00008 */ jr $ra
/* 11C5AC 802B2F9C 00000000 */ nop

View File

@ -1,132 +0,0 @@
glabel func_802B30EC
/* 11C6FC 802B30EC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 11C700 802B30F0 AFBE0038 */ sw $fp, 0x38($sp)
/* 11C704 802B30F4 AFB60030 */ sw $s6, 0x30($sp)
/* 11C708 802B30F8 AFB5002C */ sw $s5, 0x2c($sp)
/* 11C70C 802B30FC AFB40028 */ sw $s4, 0x28($sp)
/* 11C710 802B3100 AFB20020 */ sw $s2, 0x20($sp)
/* 11C714 802B3104 AFB00018 */ sw $s0, 0x18($sp)
/* 11C718 802B3108 AFB70034 */ sw $s7, 0x34($sp)
/* 11C71C 802B310C AFB30024 */ sw $s3, 0x24($sp)
/* 11C720 802B3110 3C10800F */ lui $s0, %hi(gPlayers) # $s0, 0x800f
/* 11C724 802B3114 3C12800F */ lui $s2, %hi(gControllers) # $s2, 0x800f
/* 11C728 802B3118 3C14800F */ lui $s4, %hi(gControllers+0x40) # $s4, 0x800f
/* 11C72C 802B311C 3C15800E */ lui $s5, %hi(gPlayerTwo) # $s5, 0x800e
/* 11C730 802B3120 3C16800E */ lui $s6, %hi(gControllerSix) # $s6, 0x800e
/* 11C734 802B3124 3C1E800E */ lui $fp, %hi(gPlayerThree) # $fp, 0x800e
/* 11C738 802B3128 AFBF003C */ sw $ra, 0x3c($sp)
/* 11C73C 802B312C AFB1001C */ sw $s1, 0x1c($sp)
/* 11C740 802B3130 27DEC4E4 */ addiu $fp, %lo(gPlayerThree) # addiu $fp, $fp, -0x3b1c
/* 11C744 802B3134 26D6C4D0 */ addiu $s6, %lo(gControllerSix) # addiu $s6, $s6, -0x3b30
/* 11C748 802B3138 26B5C4E0 */ addiu $s5, %lo(gPlayerTwo) # addiu $s5, $s5, -0x3b20
/* 11C74C 802B313C 26946950 */ addiu $s4, %lo(gControllers+0x40) # addiu $s4, $s4, 0x6950
/* 11C750 802B3140 26526910 */ addiu $s2, %lo(gControllers) # addiu $s2, $s2, 0x6910
/* 11C754 802B3144 26106990 */ addiu $s0, %lo(gPlayers) # addiu $s0, $s0, 0x6990
/* 11C758 802B3148 24130DD8 */ li $s3, 3544
/* 11C75C 802B314C 2417DFFF */ li $s7, -8193
.L802B3150:
/* 11C760 802B3150 02408825 */ move $s1, $s2
/* 11C764 802B3154 0C024439 */ jal func_800910E4
/* 11C768 802B3158 02002025 */ move $a0, $s0
/* 11C76C 802B315C 5440004B */ bnel $v0, $zero, .L802B328C
/* 11C770 802B3160 26520010 */ addiu $s2, $s2, 0x10
/* 11C774 802B3164 96020000 */ lhu $v0, ($s0)
/* 11C778 802B3168 304E0100 */ andi $t6, $v0, 0x100
/* 11C77C 802B316C 51C00037 */ beql $t6, $zero, .L802B324C
/* 11C780 802B3170 304E4000 */ andi $t6, $v0, 0x4000
/* 11C784 802B3174 8EAF0000 */ lw $t7, ($s5)
/* 11C788 802B3178 020FC023 */ subu $t8, $s0, $t7
/* 11C78C 802B317C 0313001A */ div $zero, $t8, $s3
/* 11C790 802B3180 0000C812 */ mflo $t9
/* 11C794 802B3184 16600002 */ bnez $s3, .L802B3190
/* 11C798 802B3188 00000000 */ nop
/* 11C79C 802B318C 0007000D */ break 7
.L802B3190:
/* 11C7A0 802B3190 2401FFFF */ li $at, -1
/* 11C7A4 802B3194 16610004 */ bne $s3, $at, .L802B31A8
/* 11C7A8 802B3198 3C018000 */ lui $at, 0x8000
/* 11C7AC 802B319C 17010002 */ bne $t8, $at, .L802B31A8
/* 11C7B0 802B31A0 00000000 */ nop
/* 11C7B4 802B31A4 0006000D */ break 6
.L802B31A8:
/* 11C7B8 802B31A8 57200004 */ bnel $t9, $zero, .L802B31BC
/* 11C7BC 802B31AC 8FC80000 */ lw $t0, ($fp)
/* 11C7C0 802B31B0 10000025 */ b .L802B3248
/* 11C7C4 802B31B4 8ED10000 */ lw $s1, ($s6)
/* 11C7C8 802B31B8 8FC80000 */ lw $t0, ($fp)
.L802B31BC:
/* 11C7CC 802B31BC 3C0B800E */ lui $t3, %hi(gPlayerOne) # $t3, 0x800e
/* 11C7D0 802B31C0 02084823 */ subu $t1, $s0, $t0
/* 11C7D4 802B31C4 0133001A */ div $zero, $t1, $s3
/* 11C7D8 802B31C8 00005012 */ mflo $t2
/* 11C7DC 802B31CC 16600002 */ bnez $s3, .L802B31D8
/* 11C7E0 802B31D0 00000000 */ nop
/* 11C7E4 802B31D4 0007000D */ break 7
.L802B31D8:
/* 11C7E8 802B31D8 2401FFFF */ li $at, -1
/* 11C7EC 802B31DC 16610004 */ bne $s3, $at, .L802B31F0
/* 11C7F0 802B31E0 3C018000 */ lui $at, 0x8000
/* 11C7F4 802B31E4 15210002 */ bne $t1, $at, .L802B31F0
/* 11C7F8 802B31E8 00000000 */ nop
/* 11C7FC 802B31EC 0006000D */ break 6
.L802B31F0:
/* 11C800 802B31F0 15400004 */ bnez $t2, .L802B3204
/* 11C804 802B31F4 00000000 */ nop
/* 11C808 802B31F8 3C11800E */ lui $s1, %hi(gControllerSeven) # $s1, 0x800e
/* 11C80C 802B31FC 10000012 */ b .L802B3248
/* 11C810 802B3200 8E31C4D4 */ lw $s1, %lo(gControllerSeven)($s1)
.L802B3204:
/* 11C814 802B3204 8D6BC4DC */ lw $t3, %lo(gPlayerOne)($t3)
/* 11C818 802B3208 020B6023 */ subu $t4, $s0, $t3
/* 11C81C 802B320C 0193001A */ div $zero, $t4, $s3
/* 11C820 802B3210 00006812 */ mflo $t5
/* 11C824 802B3214 16600002 */ bnez $s3, .L802B3220
/* 11C828 802B3218 00000000 */ nop
/* 11C82C 802B321C 0007000D */ break 7
.L802B3220:
/* 11C830 802B3220 2401FFFF */ li $at, -1
/* 11C834 802B3224 16610004 */ bne $s3, $at, .L802B3238
/* 11C838 802B3228 3C018000 */ lui $at, 0x8000
/* 11C83C 802B322C 15810002 */ bne $t4, $at, .L802B3238
/* 11C840 802B3230 00000000 */ nop
/* 11C844 802B3234 0006000D */ break 6
.L802B3238:
/* 11C848 802B3238 55A00004 */ bnel $t5, $zero, .L802B324C
/* 11C84C 802B323C 304E4000 */ andi $t6, $v0, 0x4000
/* 11C850 802B3240 3C11800E */ lui $s1, %hi(gControllerEight) # $s1, 0x800e
/* 11C854 802B3244 8E31C4D8 */ lw $s1, %lo(gControllerEight)($s1)
.L802B3248:
/* 11C858 802B3248 304E4000 */ andi $t6, $v0, 0x4000
.L802B324C:
/* 11C85C 802B324C 51C0000F */ beql $t6, $zero, .L802B328C
/* 11C860 802B3250 26520010 */ addiu $s2, $s2, 0x10
/* 11C864 802B3254 860F0010 */ lh $t7, 0x10($s0)
/* 11C868 802B3258 30582000 */ andi $t8, $v0, 0x2000
/* 11C86C 802B325C 51E0000B */ beql $t7, $zero, .L802B328C
/* 11C870 802B3260 26520010 */ addiu $s2, $s2, 0x10
/* 11C874 802B3264 57000009 */ bnel $t8, $zero, .L802B328C
/* 11C878 802B3268 26520010 */ addiu $s2, $s2, 0x10
/* 11C87C 802B326C 96220006 */ lhu $v0, 6($s1)
/* 11C880 802B3270 02002025 */ move $a0, $s0
/* 11C884 802B3274 30592000 */ andi $t9, $v0, 0x2000
/* 11C888 802B3278 13200003 */ beqz $t9, .L802B3288
/* 11C88C 802B327C 00574024 */ and $t0, $v0, $s7
/* 11C890 802B3280 0C0ACBE8 */ jal func_802B2FA0
/* 11C894 802B3284 A6280006 */ sh $t0, 6($s1)
.L802B3288:
/* 11C898 802B3288 26520010 */ addiu $s2, $s2, 0x10
.L802B328C:
/* 11C89C 802B328C 1654FFB0 */ bne $s2, $s4, .L802B3150
/* 11C8A0 802B3290 26100DD8 */ addiu $s0, $s0, 0xdd8
/* 11C8A4 802B3294 8FBF003C */ lw $ra, 0x3c($sp)
/* 11C8A8 802B3298 8FB00018 */ lw $s0, 0x18($sp)
/* 11C8AC 802B329C 8FB1001C */ lw $s1, 0x1c($sp)
/* 11C8B0 802B32A0 8FB20020 */ lw $s2, 0x20($sp)
/* 11C8B4 802B32A4 8FB30024 */ lw $s3, 0x24($sp)
/* 11C8B8 802B32A8 8FB40028 */ lw $s4, 0x28($sp)
/* 11C8BC 802B32AC 8FB5002C */ lw $s5, 0x2c($sp)
/* 11C8C0 802B32B0 8FB60030 */ lw $s6, 0x30($sp)
/* 11C8C4 802B32B4 8FB70034 */ lw $s7, 0x34($sp)
/* 11C8C8 802B32B8 8FBE0038 */ lw $fp, 0x38($sp)
/* 11C8CC 802B32BC 03E00008 */ jr $ra
/* 11C8D0 802B32C0 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -1,75 +0,0 @@
glabel func_802B4104
/* 11D714 802B4104 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 11D718 802B4108 AFBF001C */ sw $ra, 0x1c($sp)
/* 11D71C 802B410C AFB00018 */ sw $s0, 0x18($sp)
/* 11D720 802B4110 44801000 */ mtc1 $zero, $f2
/* 11D724 802B4114 C484003C */ lwc1 $f4, 0x3c($a0)
/* 11D728 802B4118 00808025 */ move $s0, $a0
/* 11D72C 802B411C 3C013E80 */ li $at, 0x3E800000 # 0.250000
/* 11D730 802B4120 4602203C */ c.lt.s $f4, $f2
/* 11D734 802B4124 00000000 */ nop
/* 11D738 802B4128 4502001A */ bc1fl .L802B4194
/* 11D73C 802B412C C60A0040 */ lwc1 $f10, 0x40($s0)
/* 11D740 802B4130 C480004C */ lwc1 $f0, 0x4c($a0)
/* 11D744 802B4134 44813000 */ mtc1 $at, $f6
/* 11D748 802B4138 3C01BE80 */ li $at, 0xBE800000 # -0.250000
/* 11D74C 802B413C 4606003C */ c.lt.s $f0, $f6
/* 11D750 802B4140 00000000 */ nop
/* 11D754 802B4144 45010007 */ bc1t .L802B4164
/* 11D758 802B4148 00000000 */ nop
/* 11D75C 802B414C 44814000 */ mtc1 $at, $f8
/* 11D760 802B4150 00000000 */ nop
/* 11D764 802B4154 4600403C */ c.lt.s $f8, $f0
/* 11D768 802B4158 00000000 */ nop
/* 11D76C 802B415C 4502000D */ bc1fl .L802B4194
/* 11D770 802B4160 C60A0040 */ lwc1 $f10, 0x40($s0)
.L802B4164:
/* 11D774 802B4164 0C0A7F72 */ jal func_8029FDC8
/* 11D778 802B4168 02002025 */ move $a0, $s0
/* 11D77C 802B416C 3C061900 */ lui $a2, (0x19008054 >> 16) # lui $a2, 0x1900
/* 11D780 802B4170 34C68054 */ ori $a2, (0x19008054 & 0xFFFF) # ori $a2, $a2, 0x8054
/* 11D784 802B4174 26040018 */ addiu $a0, $s0, 0x18
/* 11D788 802B4178 0C03262E */ jal func_800C98B8
/* 11D78C 802B417C 26050024 */ addiu $a1, $s0, 0x24
/* 11D790 802B4180 860E0002 */ lh $t6, 2($s0)
/* 11D794 802B4184 35CF0080 */ ori $t7, $t6, 0x80
/* 11D798 802B4188 1000001E */ b .L802B4204
/* 11D79C 802B418C A60F0002 */ sh $t7, 2($s0)
/* 11D7A0 802B4190 C60A0040 */ lwc1 $f10, 0x40($s0)
.L802B4194:
/* 11D7A4 802B4194 3C013E80 */ li $at, 0x3E800000 # 0.250000
/* 11D7A8 802B4198 4602503C */ c.lt.s $f10, $f2
/* 11D7AC 802B419C 00000000 */ nop
/* 11D7B0 802B41A0 45020019 */ bc1fl .L802B4208
/* 11D7B4 802B41A4 8FBF001C */ lw $ra, 0x1c($sp)
/* 11D7B8 802B41A8 C6000058 */ lwc1 $f0, 0x58($s0)
/* 11D7BC 802B41AC 44818000 */ mtc1 $at, $f16
/* 11D7C0 802B41B0 3C01BE80 */ li $at, 0xBE800000 # -0.250000
/* 11D7C4 802B41B4 4610003C */ c.lt.s $f0, $f16
/* 11D7C8 802B41B8 00000000 */ nop
/* 11D7CC 802B41BC 45010007 */ bc1t .L802B41DC
/* 11D7D0 802B41C0 00000000 */ nop
/* 11D7D4 802B41C4 44819000 */ mtc1 $at, $f18
/* 11D7D8 802B41C8 00000000 */ nop
/* 11D7DC 802B41CC 4612003C */ c.lt.s $f0, $f18
/* 11D7E0 802B41D0 00000000 */ nop
/* 11D7E4 802B41D4 4502000C */ bc1fl .L802B4208
/* 11D7E8 802B41D8 8FBF001C */ lw $ra, 0x1c($sp)
.L802B41DC:
/* 11D7EC 802B41DC 0C0A7F72 */ jal func_8029FDC8
/* 11D7F0 802B41E0 02002025 */ move $a0, $s0
/* 11D7F4 802B41E4 3C061900 */ lui $a2, (0x19008054 >> 16) # lui $a2, 0x1900
/* 11D7F8 802B41E8 34C68054 */ ori $a2, (0x19008054 & 0xFFFF) # ori $a2, $a2, 0x8054
/* 11D7FC 802B41EC 26040018 */ addiu $a0, $s0, 0x18
/* 11D800 802B41F0 0C03262E */ jal func_800C98B8
/* 11D804 802B41F4 26050024 */ addiu $a1, $s0, 0x24
/* 11D808 802B41F8 86180002 */ lh $t8, 2($s0)
/* 11D80C 802B41FC 37190080 */ ori $t9, $t8, 0x80
/* 11D810 802B4200 A6190002 */ sh $t9, 2($s0)
.L802B4204:
/* 11D814 802B4204 8FBF001C */ lw $ra, 0x1c($sp)
.L802B4208:
/* 11D818 802B4208 8FB00018 */ lw $s0, 0x18($sp)
/* 11D81C 802B420C 27BD0020 */ addiu $sp, $sp, 0x20
/* 11D820 802B4210 03E00008 */ jr $ra
/* 11D824 802B4214 00000000 */ nop

View File

@ -101,7 +101,7 @@ void update_simple_objects();
// audio/external.c
extern void func_800C98B8(Vec3f, Vec3f, u32);
extern void func_800C9060(Player*, s32);
extern void func_800C9060(u8, s32);
extern void func_800C90F4(u8, uintptr_t);
extern void func_800C99E0(Vec3f, s32);
extern void func_800C9D80(Vec3f*, Vec3f*, u32);

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#ifndef CODE_802B0210_H
#define CODE_802B0210_H
#include "types.h"
#include "common_structs.h"
#include "actor_types.h"
void func_802B0210(UnkActorInner*, UnkActorInner*);
@ -13,16 +13,44 @@ s32 func_802B09C0(s16);
void update_obj_banana_bunch(struct BananaBunchParent*);
s32 func_802B0E14(s16);
void update_obj_triple_shell(struct TripleShellParent*, s16);
s32 func_802B17F4(Player*);
s32 func_802B18E4(Player*, s16);
s32 func_802B19EC(struct TripleShellParent*, Player*, s16, u16);
s32 func_802B1E48(Player*);
void func_802B1FFC(Player*);
void update_obj_green_shell(struct ShellActor*);
void update_obj_red_blue_shell(struct ShellActor*);
void update_obj_banana(struct BananaActor*);
void func_802B2914(struct BananaBunchParent*, Player*, s16);
s32 func_802B2C40(Player*);
s32 func_802B2D70(Player*);
void func_802B2EBC(Player*);
void func_802B2FA0(Player*);
void func_802B30EC();
void func_802B3E7C(struct ShellActor*, Player*);
void func_802B4104(struct ShellActor*);
void func_802B4E30(struct Actor*);
// src/code_80091750.c
void func_8009E5BC();
// audio/external.c
extern void func_800C9060(Player*, s32);
extern void func_800C9060(u8, s32);
extern void func_800C90F4(u8, u32);
extern void func_800CAB4C(u8);
extern f32 D_802B9F68;
extern s16 gPlayerBalloonCount[];
extern struct Actor gActorList[];
extern Player gPlayers[];
extern Player *gPlayerOne;
extern Player *gPlayerTwo;
extern Player *gPlayerThree;
extern struct Controller gControllers[];
extern struct Controller *gControllerEight;
extern struct Controller *gControllerSeven;
extern struct Controller *gControllerSix;
#endif

View File

@ -3012,10 +3012,10 @@ GLOBAL_ASM("asm/non_matchings/memory/func_802AD278.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75
s32 func_802AC760(void *, f32, f32, f32, f32, f32, f32, f32, f32); /* extern */
s32 func_802ACBA4(void *, void *, f32, f32, f32, s32, f32, f32, f32); /* extern */
s32 func_802AD278(void *, void *, f32, f32, f32, s32, f32, f32, f32); /* extern */
//generated by m2c commit a8f43e46d33dcb7e04d9cdc44a10b3daf4c92c3b
s32 func_802AC760(f32, f32, f32, f32, f32, f32, f32, f32, f32); /* extern */
s32 func_802ACBA4(UnkActorInner *, f32, f32, f32, f32, s32, f32, f32, f32); /* extern */
s32 func_802AD278(UnkActorInner *, f32, f32, f32, f32, s32, f32, f32, f32); /* extern */
extern ? D_8014F110;
extern s32 D_8015F584;
extern s16 D_8015F6E8;
@ -3023,7 +3023,7 @@ extern s16 D_8015F6EA;
extern s16 D_8015F6F0;
extern s16 D_8015F6F2;
s32 func_802AD950(void *arg0, void *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7) {
s32 func_802AD950(UnkActorInner *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7) {
s16 temp_v0_4;
s16 temp_v1;
s32 temp_f10;
@ -3045,46 +3045,46 @@ s32 func_802AD950(void *arg0, void *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5
s32 phi_s4_5;
s32 phi_s4_6;
arg0->unk0 = 0;
arg0->unk2 = 0;
arg0->unk4 = 0;
arg0->unkC = 1000.0f;
arg0->unk10 = 1000.0f;
arg0->unk14 = 1000.0f;
temp_v0 = arg0->unkA;
arg0->unk30 = 0;
arg0->unk32 = 0;
arg0->unk34 = 0;
arg0->unk3C = 1000.0f;
arg0->unk40 = 1000.0f;
arg0->unk44 = 1000.0f;
temp_v0 = arg0->unk3A;
phi_s4_6 = 0;
if (((s32) temp_v0 < (s32) D_8015F588) && (func_802AC760(arg1, arg2, arg3, arg4, (bitwise f32) temp_v0, arg5, arg6, arg7) == 1)) {
phi_s4_6 = 0x4000;
phi_s4_6 = 0x00004000;
}
temp_v0_2 = arg0->unk6;
temp_v0_2 = arg0->unk36;
phi_s4_4 = phi_s4_6;
if (((s32) temp_v0_2 < (s32) D_8015F588) && (func_802ACBA4(arg0, arg1, arg2, arg3, arg4, (s32) temp_v0_2, arg5, arg6, arg7) == 1)) {
phi_s4_4 = (phi_s4_6 | 0x2000) & 0xFFFF;
}
temp_v0_3 = arg0->unk8;
temp_v0_3 = arg0->unk38;
phi_s4 = phi_s4_4;
if (((s32) temp_v0_3 < (s32) D_8015F588) && (func_802AD278(arg0, arg1, arg2, arg3, arg4, (s32) temp_v0_3, arg5, arg6, arg7) == 1)) {
phi_s4 = (phi_s4_4 | 0x8000) & 0xFFFF;
}
phi_s4_2 = phi_s4;
phi_s4_3 = phi_s4;
if (phi_s4 == 0xE000) {
if (phi_s4 == 0x0000E000) {
goto block_39;
}
temp_v0_4 = D_8015F6EA;
temp_v1 = D_8015F6F2;
temp_f10 = (s32) ((arg2 - (f32) temp_v0_4) / (f32) ((s32) (D_8015F6E8 - temp_v0_4) / 32));
temp_f16 = (s32) ((arg4 - (f32) temp_v1) / (f32) ((s32) (D_8015F6F0 - temp_v1) / 32));
if ((s32) (s16) temp_f10 < 0) {
if ((s16) temp_f10 < 0) {
return 0;
}
if ((s32) (s16) temp_f16 < 0) {
if ((s16) temp_f16 < 0) {
return 0;
}
if ((s32) (s16) temp_f10 >= 0x20) {
if ((s16) temp_f10 >= 0x20) {
return 0;
}
if ((s32) (s16) temp_f16 >= 0x20) {
if ((s16) temp_f16 >= 0x20) {
return 0;
}
temp_v1_2 = ((s16) ((s16) temp_f10 + ((s16) temp_f16 << 5)) * 4) + &D_8014F110;
@ -3098,20 +3098,20 @@ s32 func_802AD950(void *arg0, void *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5
loop_22:
phi_s4_3 = phi_s4_2;
phi_s4_5 = phi_s4_2;
if (phi_s4_2 == 0xE000) {
if (phi_s4_2 == 0x0000E000) {
} else {
temp_v0_5 = *(D_8015F584 + (phi_s2 * 2));
temp_v1_3 = (*D_8015F580)[temp_v0_5].flags;
temp_v1_3 = D_8015F580[temp_v0_5].flags;
if ((temp_v1_3 & 0x4000) != 0) {
if (((phi_s4_2 & 0x4000) == 0) && (arg0->unkA != temp_v0_5) && (func_802AC760(arg0, (bitwise f32) arg1, arg2, arg3, arg4, (bitwise f32) temp_v0_5, arg5, arg6, arg7) == 1)) {
if (((phi_s4_2 & 0x4000) == 0) && (arg0->unk3A != temp_v0_5) && (func_802AC760((bitwise f32) arg0, arg1, arg2, arg3, arg4, (bitwise f32) temp_v0_5, arg5, arg6, arg7) == 1)) {
phi_s4_5 = (phi_s4_2 | 0x4000) & 0xFFFF;
}
} else if ((temp_v1_3 & 0x8000) != 0) {
if (((phi_s4_2 & 0x8000) == 0) && (arg0->unk8 != temp_v0_5) && (func_802AD278(arg0, arg1, arg2, arg3, arg4, (s32) temp_v0_5, arg5, arg6, arg7) == 1)) {
if (((phi_s4_2 & 0x8000) == 0) && (arg0->unk38 != temp_v0_5) && (func_802AD278(arg0, arg1, arg2, arg3, arg4, (s32) temp_v0_5, arg5, arg6, arg7) == 1)) {
phi_s4_5 = (phi_s4_2 | 0x8000) & 0xFFFF;
}
} else if (((phi_s4_2 & 0x2000) == 0) && (arg0->unk6 != temp_v0_5) && (func_802ACBA4(arg0, arg1, arg2, arg3, arg4, (s32) temp_v0_5, arg5, arg6, arg7) == 1)) {
} else if (((phi_s4_2 & 0x2000) == 0) && (arg0->unk36 != temp_v0_5) && (func_802ACBA4(arg0, arg1, arg2, arg3, arg4, (s32) temp_v0_5, arg5, arg6, arg7) == 1)) {
phi_s4_5 = (phi_s4_2 | 0x2000) & 0xFFFF;
}
temp_t7 = (phi_s3 + 1) & 0xFFFF;

View File

@ -91,6 +91,7 @@ s16 func_802ABDB8(u16);
s16 func_802ABDF4(u16);
f32 func_802ABE30(f32, f32, f32, u16);
f32 func_802ABEAC(UnkActorInner*, Vec3f);
void func_802AD950(UnkActorInner*, f32, f32, f32, f32, f32, f32, f32);
void func_802ADDC8(UnkActorInner*, f32, f32, f32, f32);
f32 func_802AE1C0(f32, f32, f32);