mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
203 lines
11 KiB
ArmAsm
203 lines
11 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_802BC974_E2D0A4
|
|
/* E2D0A4 802BC974 27BDFE80 */ addiu $sp, $sp, -0x180
|
|
/* E2D0A8 802BC978 AFBE0148 */ sw $fp, 0x148($sp)
|
|
/* E2D0AC 802BC97C 0000F02D */ daddu $fp, $zero, $zero
|
|
/* E2D0B0 802BC980 27A80098 */ addiu $t0, $sp, 0x98
|
|
/* E2D0B4 802BC984 AFB5013C */ sw $s5, 0x13c($sp)
|
|
/* E2D0B8 802BC988 27B500D8 */ addiu $s5, $sp, 0xd8
|
|
/* E2D0BC 802BC98C AFB40138 */ sw $s4, 0x138($sp)
|
|
/* E2D0C0 802BC990 27B40058 */ addiu $s4, $sp, 0x58
|
|
/* E2D0C4 802BC994 AFA8011C */ sw $t0, 0x11c($sp)
|
|
/* E2D0C8 802BC998 3C080001 */ lui $t0, 1
|
|
/* E2D0CC 802BC99C AFB1012C */ sw $s1, 0x12c($sp)
|
|
/* E2D0D0 802BC9A0 3C11800A */ lui $s1, %hi(gMasterGfxPos)
|
|
/* E2D0D4 802BC9A4 8E31A66C */ lw $s1, %lo(gMasterGfxPos)($s1)
|
|
/* E2D0D8 802BC9A8 35081630 */ ori $t0, $t0, 0x1630
|
|
/* E2D0DC 802BC9AC AFBF014C */ sw $ra, 0x14c($sp)
|
|
/* E2D0E0 802BC9B0 AFB70144 */ sw $s7, 0x144($sp)
|
|
/* E2D0E4 802BC9B4 AFB60140 */ sw $s6, 0x140($sp)
|
|
/* E2D0E8 802BC9B8 AFB30134 */ sw $s3, 0x134($sp)
|
|
/* E2D0EC 802BC9BC AFB20130 */ sw $s2, 0x130($sp)
|
|
/* E2D0F0 802BC9C0 AFB00128 */ sw $s0, 0x128($sp)
|
|
/* E2D0F4 802BC9C4 F7BE0178 */ sdc1 $f30, 0x178($sp)
|
|
/* E2D0F8 802BC9C8 F7BC0170 */ sdc1 $f28, 0x170($sp)
|
|
/* E2D0FC 802BC9CC F7BA0168 */ sdc1 $f26, 0x168($sp)
|
|
/* E2D100 802BC9D0 F7B80160 */ sdc1 $f24, 0x160($sp)
|
|
/* E2D104 802BC9D4 F7B60158 */ sdc1 $f22, 0x158($sp)
|
|
/* E2D108 802BC9D8 F7B40150 */ sdc1 $f20, 0x150($sp)
|
|
/* E2D10C 802BC9DC 0C04417A */ jal get_entity_by_index
|
|
/* E2D110 802BC9E0 AFA80120 */ sw $t0, 0x120($sp)
|
|
/* E2D114 802BC9E4 0040B82D */ daddu $s7, $v0, $zero
|
|
/* E2D118 802BC9E8 3C0143B4 */ lui $at, 0x43b4
|
|
/* E2D11C 802BC9EC 4481D000 */ mtc1 $at, $f26
|
|
/* E2D120 802BC9F0 3C013B80 */ lui $at, 0x3b80
|
|
/* E2D124 802BC9F4 4481C000 */ mtc1 $at, $f24
|
|
/* E2D128 802BC9F8 3C013F80 */ lui $at, 0x3f80
|
|
/* E2D12C 802BC9FC 4481B000 */ mtc1 $at, $f22
|
|
/* E2D130 802BCA00 8EE20040 */ lw $v0, 0x40($s7)
|
|
/* E2D134 802BCA04 4480A000 */ mtc1 $zero, $f20
|
|
/* E2D138 802BCA08 C6E00048 */ lwc1 $f0, 0x48($s7)
|
|
/* E2D13C 802BCA0C 0040902D */ daddu $s2, $v0, $zero
|
|
/* E2D140 802BCA10 0240982D */ daddu $s3, $s2, $zero
|
|
/* E2D144 802BCA14 2630FFFC */ addiu $s0, $s1, -4
|
|
/* E2D148 802BCA18 46000007 */ neg.s $f0, $f0
|
|
/* E2D14C 802BCA1C E7A00118 */ swc1 $f0, 0x118($sp)
|
|
/* E2D150 802BCA20 C6E0004C */ lwc1 $f0, 0x4c($s7)
|
|
/* E2D154 802BCA24 C6E20050 */ lwc1 $f2, 0x50($s7)
|
|
/* E2D158 802BCA28 8E560000 */ lw $s6, ($s2)
|
|
/* E2D15C 802BCA2C 46000787 */ neg.s $f30, $f0
|
|
/* E2D160 802BCA30 46001707 */ neg.s $f28, $f2
|
|
.L802BCA34:
|
|
/* E2D164 802BCA34 82420008 */ lb $v0, 8($s2)
|
|
/* E2D168 802BCA38 28420002 */ slti $v0, $v0, 2
|
|
/* E2D16C 802BCA3C 1040000F */ beqz $v0, .L802BCA7C
|
|
/* E2D170 802BCA40 3C03E200 */ lui $v1, 0xe200
|
|
/* E2D174 802BCA44 26100008 */ addiu $s0, $s0, 8
|
|
/* E2D178 802BCA48 3463001C */ ori $v1, $v1, 0x1c
|
|
/* E2D17C 802BCA4C 3C020055 */ lui $v0, 0x55
|
|
/* E2D180 802BCA50 34422078 */ ori $v0, $v0, 0x2078
|
|
/* E2D184 802BCA54 AE03FFFC */ sw $v1, -4($s0)
|
|
/* E2D188 802BCA58 AE020000 */ sw $v0, ($s0)
|
|
/* E2D18C 802BCA5C 26100008 */ addiu $s0, $s0, 8
|
|
/* E2D190 802BCA60 26310010 */ addiu $s1, $s1, 0x10
|
|
/* E2D194 802BCA64 3C03FC12 */ lui $v1, 0xfc12
|
|
/* E2D198 802BCA68 34631824 */ ori $v1, $v1, 0x1824
|
|
/* E2D19C 802BCA6C 3C02FF33 */ lui $v0, 0xff33
|
|
/* E2D1A0 802BCA70 3442FFFF */ ori $v0, $v0, 0xffff
|
|
/* E2D1A4 802BCA74 080AF2AB */ j .L802BCAAC
|
|
/* E2D1A8 802BCA78 AE03FFFC */ sw $v1, -4($s0)
|
|
.L802BCA7C:
|
|
/* E2D1AC 802BCA7C 26100008 */ addiu $s0, $s0, 8
|
|
/* E2D1B0 802BCA80 3C03FCFF */ lui $v1, 0xfcff
|
|
/* E2D1B4 802BCA84 3463C3FF */ ori $v1, $v1, 0xc3ff
|
|
/* E2D1B8 802BCA88 3C02FF30 */ lui $v0, 0xff30
|
|
/* E2D1BC 802BCA8C 3442FE7F */ ori $v0, $v0, 0xfe7f
|
|
/* E2D1C0 802BCA90 AE03FFFC */ sw $v1, -4($s0)
|
|
/* E2D1C4 802BCA94 AE020000 */ sw $v0, ($s0)
|
|
/* E2D1C8 802BCA98 26100008 */ addiu $s0, $s0, 8
|
|
/* E2D1CC 802BCA9C 3C02FA00 */ lui $v0, 0xfa00
|
|
/* E2D1D0 802BCAA0 AE02FFFC */ sw $v0, -4($s0)
|
|
/* E2D1D4 802BCAA4 9242000E */ lbu $v0, 0xe($s2)
|
|
/* E2D1D8 802BCAA8 26310010 */ addiu $s1, $s1, 0x10
|
|
.L802BCAAC:
|
|
/* E2D1DC 802BCAAC AE020000 */ sw $v0, ($s0)
|
|
/* E2D1E0 802BCAB0 8FA50118 */ lw $a1, 0x118($sp)
|
|
/* E2D1E4 802BCAB4 4406F000 */ mfc1 $a2, $f30
|
|
/* E2D1E8 802BCAB8 4407E000 */ mfc1 $a3, $f28
|
|
/* E2D1EC 802BCABC 0C019E40 */ jal guTranslateF
|
|
/* E2D1F0 802BCAC0 27A40018 */ addiu $a0, $sp, 0x18
|
|
/* E2D1F4 802BCAC4 92420014 */ lbu $v0, 0x14($s2)
|
|
/* E2D1F8 802BCAC8 44820000 */ mtc1 $v0, $f0
|
|
/* E2D1FC 802BCACC 00000000 */ nop
|
|
/* E2D200 802BCAD0 46800020 */ cvt.s.w $f0, $f0
|
|
/* E2D204 802BCAD4 461A0002 */ mul.s $f0, $f0, $f26
|
|
/* E2D208 802BCAD8 00000000 */ nop
|
|
/* E2D20C 802BCADC 46180002 */ mul.s $f0, $f0, $f24
|
|
/* E2D210 802BCAE0 00000000 */ nop
|
|
/* E2D214 802BCAE4 4406B000 */ mfc1 $a2, $f22
|
|
/* E2D218 802BCAE8 4407A000 */ mfc1 $a3, $f20
|
|
/* E2D21C 802BCAEC 8FA4011C */ lw $a0, 0x11c($sp)
|
|
/* E2D220 802BCAF0 44050000 */ mfc1 $a1, $f0
|
|
/* E2D224 802BCAF4 0C019EC8 */ jal guRotateF
|
|
/* E2D228 802BCAF8 E7B40010 */ swc1 $f20, 0x10($sp)
|
|
/* E2D22C 802BCAFC 9242001A */ lbu $v0, 0x1a($s2)
|
|
/* E2D230 802BCB00 44820000 */ mtc1 $v0, $f0
|
|
/* E2D234 802BCB04 00000000 */ nop
|
|
/* E2D238 802BCB08 46800020 */ cvt.s.w $f0, $f0
|
|
/* E2D23C 802BCB0C 461A0002 */ mul.s $f0, $f0, $f26
|
|
/* E2D240 802BCB10 00000000 */ nop
|
|
/* E2D244 802BCB14 26100008 */ addiu $s0, $s0, 8
|
|
/* E2D248 802BCB18 26310018 */ addiu $s1, $s1, 0x18
|
|
/* E2D24C 802BCB1C 46180002 */ mul.s $f0, $f0, $f24
|
|
/* E2D250 802BCB20 00000000 */ nop
|
|
/* E2D254 802BCB24 27DE0001 */ addiu $fp, $fp, 1
|
|
/* E2D258 802BCB28 02A0202D */ daddu $a0, $s5, $zero
|
|
/* E2D25C 802BCB2C 4406A000 */ mfc1 $a2, $f20
|
|
/* E2D260 802BCB30 4407B000 */ mfc1 $a3, $f22
|
|
/* E2D264 802BCB34 44050000 */ mfc1 $a1, $f0
|
|
/* E2D268 802BCB38 26520001 */ addiu $s2, $s2, 1
|
|
/* E2D26C 802BCB3C 0C019EC8 */ jal guRotateF
|
|
/* E2D270 802BCB40 E7B40010 */ swc1 $f20, 0x10($sp)
|
|
/* E2D274 802BCB44 02A0282D */ daddu $a1, $s5, $zero
|
|
/* E2D278 802BCB48 8FA4011C */ lw $a0, 0x11c($sp)
|
|
/* E2D27C 802BCB4C 0C019D80 */ jal guMtxCatF
|
|
/* E2D280 802BCB50 02A0302D */ daddu $a2, $s5, $zero
|
|
/* E2D284 802BCB54 02A0202D */ daddu $a0, $s5, $zero
|
|
/* E2D288 802BCB58 27A50018 */ addiu $a1, $sp, 0x18
|
|
/* E2D28C 802BCB5C 0C019D80 */ jal guMtxCatF
|
|
/* E2D290 802BCB60 00A0302D */ daddu $a2, $a1, $zero
|
|
/* E2D294 802BCB64 0280202D */ daddu $a0, $s4, $zero
|
|
/* E2D298 802BCB68 8E650040 */ lw $a1, 0x40($s3)
|
|
/* E2D29C 802BCB6C 8E660058 */ lw $a2, 0x58($s3)
|
|
/* E2D2A0 802BCB70 8E670070 */ lw $a3, 0x70($s3)
|
|
/* E2D2A4 802BCB74 0C019E40 */ jal guTranslateF
|
|
/* E2D2A8 802BCB78 26730004 */ addiu $s3, $s3, 4
|
|
/* E2D2AC 802BCB7C 27A40018 */ addiu $a0, $sp, 0x18
|
|
/* E2D2B0 802BCB80 0280282D */ daddu $a1, $s4, $zero
|
|
/* E2D2B4 802BCB84 0C019D80 */ jal guMtxCatF
|
|
/* E2D2B8 802BCB88 0280302D */ daddu $a2, $s4, $zero
|
|
/* E2D2BC 802BCB8C 0280202D */ daddu $a0, $s4, $zero
|
|
/* E2D2C0 802BCB90 3C058007 */ lui $a1, %hi(gMatrixListPos)
|
|
/* E2D2C4 802BCB94 94A541F0 */ lhu $a1, %lo(gMatrixListPos)($a1)
|
|
/* E2D2C8 802BCB98 3C02800A */ lui $v0, %hi(gDisplayContext)
|
|
/* E2D2CC 802BCB9C 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
|
|
/* E2D2D0 802BCBA0 8FA80120 */ lw $t0, 0x120($sp)
|
|
/* E2D2D4 802BCBA4 00052980 */ sll $a1, $a1, 6
|
|
/* E2D2D8 802BCBA8 00A82821 */ addu $a1, $a1, $t0
|
|
/* E2D2DC 802BCBAC 0C019D40 */ jal guMtxF2L
|
|
/* E2D2E0 802BCBB0 00452821 */ addu $a1, $v0, $a1
|
|
/* E2D2E4 802BCBB4 3C05D838 */ lui $a1, 0xd838
|
|
/* E2D2E8 802BCBB8 34A50002 */ ori $a1, $a1, 2
|
|
/* E2D2EC 802BCBBC 3C028007 */ lui $v0, %hi(gMatrixListPos)
|
|
/* E2D2F0 802BCBC0 944241F0 */ lhu $v0, %lo(gMatrixListPos)($v0)
|
|
/* E2D2F4 802BCBC4 3C03DA38 */ lui $v1, 0xda38
|
|
/* E2D2F8 802BCBC8 AE03FFFC */ sw $v1, -4($s0)
|
|
/* E2D2FC 802BCBCC 8FA80120 */ lw $t0, 0x120($sp)
|
|
/* E2D300 802BCBD0 24430001 */ addiu $v1, $v0, 1
|
|
/* E2D304 802BCBD4 3042FFFF */ andi $v0, $v0, 0xffff
|
|
/* E2D308 802BCBD8 00021180 */ sll $v0, $v0, 6
|
|
/* E2D30C 802BCBDC 3C018007 */ lui $at, %hi(gMatrixListPos)
|
|
/* E2D310 802BCBE0 A42341F0 */ sh $v1, %lo(gMatrixListPos)($at)
|
|
/* E2D314 802BCBE4 3C03800A */ lui $v1, %hi(gDisplayContext)
|
|
/* E2D318 802BCBE8 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1)
|
|
/* E2D31C 802BCBEC 00481021 */ addu $v0, $v0, $t0
|
|
/* E2D320 802BCBF0 00621821 */ addu $v1, $v1, $v0
|
|
/* E2D324 802BCBF4 AE030000 */ sw $v1, ($s0)
|
|
/* E2D328 802BCBF8 96C40002 */ lhu $a0, 2($s6)
|
|
/* E2D32C 802BCBFC 26D60004 */ addiu $s6, $s6, 4
|
|
/* E2D330 802BCC00 26100008 */ addiu $s0, $s0, 8
|
|
/* E2D334 802BCC04 8EE30044 */ lw $v1, 0x44($s7)
|
|
/* E2D338 802BCC08 3C02DE00 */ lui $v0, 0xde00
|
|
/* E2D33C 802BCC0C AE02FFFC */ sw $v0, -4($s0)
|
|
/* E2D340 802BCC10 24020040 */ addiu $v0, $zero, 0x40
|
|
/* E2D344 802BCC14 00641821 */ addu $v1, $v1, $a0
|
|
/* E2D348 802BCC18 AE030000 */ sw $v1, ($s0)
|
|
/* E2D34C 802BCC1C 26100008 */ addiu $s0, $s0, 8
|
|
/* E2D350 802BCC20 AE020000 */ sw $v0, ($s0)
|
|
/* E2D354 802BCC24 2BC20005 */ slti $v0, $fp, 5
|
|
/* E2D358 802BCC28 1440FF82 */ bnez $v0, .L802BCA34
|
|
/* E2D35C 802BCC2C AE05FFFC */ sw $a1, -4($s0)
|
|
/* E2D360 802BCC30 8FBF014C */ lw $ra, 0x14c($sp)
|
|
/* E2D364 802BCC34 8FBE0148 */ lw $fp, 0x148($sp)
|
|
/* E2D368 802BCC38 8FB70144 */ lw $s7, 0x144($sp)
|
|
/* E2D36C 802BCC3C 8FB60140 */ lw $s6, 0x140($sp)
|
|
/* E2D370 802BCC40 8FB5013C */ lw $s5, 0x13c($sp)
|
|
/* E2D374 802BCC44 8FB40138 */ lw $s4, 0x138($sp)
|
|
/* E2D378 802BCC48 8FB30134 */ lw $s3, 0x134($sp)
|
|
/* E2D37C 802BCC4C 8FB20130 */ lw $s2, 0x130($sp)
|
|
/* E2D380 802BCC50 3C01800A */ lui $at, %hi(gMasterGfxPos)
|
|
/* E2D384 802BCC54 AC31A66C */ sw $s1, %lo(gMasterGfxPos)($at)
|
|
/* E2D388 802BCC58 8FB1012C */ lw $s1, 0x12c($sp)
|
|
/* E2D38C 802BCC5C 8FB00128 */ lw $s0, 0x128($sp)
|
|
/* E2D390 802BCC60 D7BE0178 */ ldc1 $f30, 0x178($sp)
|
|
/* E2D394 802BCC64 D7BC0170 */ ldc1 $f28, 0x170($sp)
|
|
/* E2D398 802BCC68 D7BA0168 */ ldc1 $f26, 0x168($sp)
|
|
/* E2D39C 802BCC6C D7B80160 */ ldc1 $f24, 0x160($sp)
|
|
/* E2D3A0 802BCC70 D7B60158 */ ldc1 $f22, 0x158($sp)
|
|
/* E2D3A4 802BCC74 D7B40150 */ ldc1 $f20, 0x150($sp)
|
|
/* E2D3A8 802BCC78 03E00008 */ jr $ra
|
|
/* E2D3AC 802BCC7C 27BD0180 */ addiu $sp, $sp, 0x180
|