papermario/asm/nonmatchings/code_7bb60_len_41b0/update_fall_state.s

158 lines
7.6 KiB
ArmAsm
Raw Normal View History

2020-09-24 05:16:13 +02:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_fall_state
/* 7C1C8 800E2D18 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7C1CC 800E2D1C AFB00010 */ sw $s0, 0x10($sp)
2020-09-28 03:13:56 +02:00
/* 7C1D0 800E2D20 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* 7C1D4 800E2D24 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
2020-09-24 05:16:13 +02:00
/* 7C1D8 800E2D28 AFBF0014 */ sw $ra, 0x14($sp)
/* 7C1DC 800E2D2C F7B40018 */ sdc1 $f20, 0x18($sp)
/* 7C1E0 800E2D30 860200C0 */ lh $v0, 0xc0($s0)
/* 7C1E4 800E2D34 1040006A */ beqz $v0, .L800E2EE0
/* 7C1E8 800E2D38 00000000 */ nop
/* 7C1EC 800E2D3C 920200B4 */ lbu $v0, 0xb4($s0)
/* 7C1F0 800E2D40 2442FFFC */ addiu $v0, $v0, -4
/* 7C1F4 800E2D44 00021600 */ sll $v0, $v0, 0x18
/* 7C1F8 800E2D48 00021E03 */ sra $v1, $v0, 0x18
/* 7C1FC 800E2D4C 2C620014 */ sltiu $v0, $v1, 0x14
/* 7C200 800E2D50 10400045 */ beqz $v0, .L800E2E68
/* 7C204 800E2D54 00031080 */ sll $v0, $v1, 2
/* 7C208 800E2D58 3C018011 */ lui $at, 0x8011
/* 7C20C 800E2D5C 00220821 */ addu $at, $at, $v0
/* 7C210 800E2D60 8C22BD98 */ lw $v0, -0x4268($at)
/* 7C214 800E2D64 00400008 */ jr $v0
/* 7C218 800E2D68 00000000 */ nop
/* 7C21C 800E2D6C 0C038AEC */ jal func_800E2BB0
/* 7C220 800E2D70 00000000 */ nop
/* 7C224 800E2D74 08038BD3 */ j .L800E2F4C
/* 7C228 800E2D78 00000000 */ nop
/* 7C22C 800E2D7C 0C038A72 */ jal func_800E29C8
/* 7C230 800E2D80 00000000 */ nop
/* 7C234 800E2D84 08038BD3 */ j .L800E2F4C
/* 7C238 800E2D88 00000000 */ nop
/* 7C23C 800E2D8C 0C038D12 */ jal integrate_gravity
/* 7C240 800E2D90 00000000 */ nop
/* 7C244 800E2D94 C600002C */ lwc1 $f0, 0x2c($s0)
/* 7C248 800E2D98 C6020070 */ lwc1 $f2, 0x70($s0)
/* 7C24C 800E2D9C 46020000 */ add.s $f0, $f0, $f2
/* 7C250 800E2DA0 4480A000 */ mtc1 $zero, $f20
/* 7C254 800E2DA4 00000000 */ nop
/* 7C258 800E2DA8 4614103E */ c.le.s $f2, $f20
/* 7C25C 800E2DAC 00000000 */ nop
/* 7C260 800E2DB0 45000066 */ bc1f .L800E2F4C
/* 7C264 800E2DB4 E600002C */ swc1 $f0, 0x2c($s0)
/* 7C268 800E2DB8 0C0389AC */ jal func_800E26B0
/* 7C26C 800E2DBC 00000000 */ nop
/* 7C270 800E2DC0 0C011052 */ jal func_80044148
/* 7C274 800E2DC4 00000000 */ nop
/* 7C278 800E2DC8 1040001F */ beqz $v0, .L800E2E48
/* 7C27C 800E2DCC 00000000 */ nop
/* 7C280 800E2DD0 3C013E1E */ lui $at, 0x3e1e
/* 7C284 800E2DD4 34210C17 */ ori $at, $at, 0xc17
/* 7C288 800E2DD8 44810000 */ mtc1 $at, $f0
/* 7C28C 800E2DDC 3C01BEB3 */ lui $at, 0xbeb3
/* 7C290 800E2DE0 34213DB0 */ ori $at, $at, 0x3db0
/* 7C294 800E2DE4 44811000 */ mtc1 $at, $f2
/* 7C298 800E2DE8 E6140078 */ swc1 $f20, 0x78($s0)
/* 7C29C 800E2DEC E614007C */ swc1 $f20, 0x7c($s0)
/* 7C2A0 800E2DF0 E6000070 */ swc1 $f0, 0x70($s0)
/* 7C2A4 800E2DF4 08038B94 */ j .L800E2E50
/* 7C2A8 800E2DF8 E6020074 */ swc1 $f2, 0x74($s0)
/* 7C2AC 800E2DFC C6000070 */ lwc1 $f0, 0x70($s0)
/* 7C2B0 800E2E00 3C014012 */ lui $at, 0x4012
/* 7C2B4 800E2E04 44811800 */ mtc1 $at, $f3
/* 7C2B8 800E2E08 44801000 */ mtc1 $zero, $f2
/* 7C2BC 800E2E0C 46000021 */ cvt.d.s $f0, $f0
/* 7C2C0 800E2E10 46220001 */ sub.d $f0, $f0, $f2
/* 7C2C4 800E2E14 C602002C */ lwc1 $f2, 0x2c($s0)
/* 7C2C8 800E2E18 46200020 */ cvt.s.d $f0, $f0
/* 7C2CC 800E2E1C E6000070 */ swc1 $f0, 0x70($s0)
/* 7C2D0 800E2E20 46000106 */ mov.s $f4, $f0
/* 7C2D4 800E2E24 46001080 */ add.s $f2, $f2, $f0
/* 7C2D8 800E2E28 44800000 */ mtc1 $zero, $f0
/* 7C2DC 800E2E2C 00000000 */ nop
/* 7C2E0 800E2E30 4600203E */ c.le.s $f4, $f0
/* 7C2E4 800E2E34 00000000 */ nop
/* 7C2E8 800E2E38 45000044 */ bc1f .L800E2F4C
/* 7C2EC 800E2E3C E602002C */ swc1 $f2, 0x2c($s0)
/* 7C2F0 800E2E40 0C0389AC */ jal func_800E26B0
/* 7C2F4 800E2E44 00000000 */ nop
.L800E2E48:
/* 7C2F8 800E2E48 0C038C1B */ jal gravity_use_fall_parms
/* 7C2FC 800E2E4C 00000000 */ nop
.L800E2E50:
/* 7C300 800E2E50 0C038D12 */ jal integrate_gravity
/* 7C304 800E2E54 00000000 */ nop
/* 7C308 800E2E58 0C039769 */ jal set_action_state
/* 7C30C 800E2E5C 24040008 */ addiu $a0, $zero, 8
/* 7C310 800E2E60 08038BD3 */ j .L800E2F4C
/* 7C314 800E2E64 00000000 */ nop
.L800E2E68:
/* 7C318 800E2E68 8E0200DC */ lw $v0, 0xdc($s0)
/* 7C31C 800E2E6C 30428000 */ andi $v0, $v0, 0x8000
/* 7C320 800E2E70 1440001B */ bnez $v0, .L800E2EE0
/* 7C324 800E2E74 00000000 */ nop
/* 7C328 800E2E78 0C0389AC */ jal func_800E26B0
/* 7C32C 800E2E7C 00000000 */ nop
/* 7C330 800E2E80 0C039769 */ jal set_action_state
/* 7C334 800E2E84 24040005 */ addiu $a0, $zero, 5
/* 7C338 800E2E88 0C038D12 */ jal integrate_gravity
/* 7C33C 800E2E8C 00000000 */ nop
/* 7C340 800E2E90 8E020000 */ lw $v0, ($s0)
/* 7C344 800E2E94 3C030004 */ lui $v1, 4
/* 7C348 800E2E98 00431024 */ and $v0, $v0, $v1
/* 7C34C 800E2E9C 10400010 */ beqz $v0, .L800E2EE0
/* 7C350 800E2EA0 00000000 */ nop
/* 7C354 800E2EA4 C6060074 */ lwc1 $f6, 0x74($s0)
/* 7C358 800E2EA8 3C013F00 */ lui $at, 0x3f00
/* 7C35C 800E2EAC 44811000 */ mtc1 $at, $f2
/* 7C360 800E2EB0 00000000 */ nop
/* 7C364 800E2EB4 46023182 */ mul.s $f6, $f6, $f2
/* 7C368 800E2EB8 00000000 */ nop
/* 7C36C 800E2EBC C6040078 */ lwc1 $f4, 0x78($s0)
/* 7C370 800E2EC0 46022102 */ mul.s $f4, $f4, $f2
/* 7C374 800E2EC4 00000000 */ nop
/* 7C378 800E2EC8 C600007C */ lwc1 $f0, 0x7c($s0)
/* 7C37C 800E2ECC 46020002 */ mul.s $f0, $f0, $f2
/* 7C380 800E2ED0 00000000 */ nop
/* 7C384 800E2ED4 E6060074 */ swc1 $f6, 0x74($s0)
/* 7C388 800E2ED8 E6040078 */ swc1 $f4, 0x78($s0)
/* 7C38C 800E2EDC E600007C */ swc1 $f0, 0x7c($s0)
.L800E2EE0:
/* 7C390 800E2EE0 0C038D12 */ jal integrate_gravity
/* 7C394 800E2EE4 00000000 */ nop
/* 7C398 800E2EE8 C6020070 */ lwc1 $f2, 0x70($s0)
/* 7C39C 800E2EEC 44800000 */ mtc1 $zero, $f0
/* 7C3A0 800E2EF0 00000000 */ nop
/* 7C3A4 800E2EF4 4600103E */ c.le.s $f2, $f0
/* 7C3A8 800E2EF8 00000000 */ nop
/* 7C3AC 800E2EFC 45000009 */ bc1f .L800E2F24
/* 7C3B0 800E2F00 00000000 */ nop
/* 7C3B4 800E2F04 0C0389AC */ jal func_800E26B0
/* 7C3B8 800E2F08 00000000 */ nop
/* 7C3BC 800E2F0C 0C038C1B */ jal gravity_use_fall_parms
/* 7C3C0 800E2F10 00000000 */ nop
/* 7C3C4 800E2F14 0C038D12 */ jal integrate_gravity
/* 7C3C8 800E2F18 00000000 */ nop
/* 7C3CC 800E2F1C 0C039769 */ jal set_action_state
/* 7C3D0 800E2F20 24040008 */ addiu $a0, $zero, 8
.L800E2F24:
/* 7C3D4 800E2F24 C6000070 */ lwc1 $f0, 0x70($s0)
/* 7C3D8 800E2F28 C602006C */ lwc1 $f2, 0x6c($s0)
/* 7C3DC 800E2F2C 4600103C */ c.lt.s $f2, $f0
/* 7C3E0 800E2F30 00000000 */ nop
/* 7C3E4 800E2F34 45030001 */ bc1tl .L800E2F3C
/* 7C3E8 800E2F38 E6020070 */ swc1 $f2, 0x70($s0)
.L800E2F3C:
/* 7C3EC 800E2F3C C600002C */ lwc1 $f0, 0x2c($s0)
/* 7C3F0 800E2F40 C6020070 */ lwc1 $f2, 0x70($s0)
/* 7C3F4 800E2F44 46020000 */ add.s $f0, $f0, $f2
/* 7C3F8 800E2F48 E600002C */ swc1 $f0, 0x2c($s0)
.L800E2F4C:
/* 7C3FC 800E2F4C 8FBF0014 */ lw $ra, 0x14($sp)
/* 7C400 800E2F50 8FB00010 */ lw $s0, 0x10($sp)
/* 7C404 800E2F54 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 7C408 800E2F58 03E00008 */ jr $ra
/* 7C40C 800E2F5C 27BD0020 */ addiu $sp, $sp, 0x20