mirror of
https://github.com/pmret/papermario.git
synced 2024-11-14 23:13:10 +01:00
195 lines
9.8 KiB
ArmAsm
195 lines
9.8 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
.section .rodata
|
|
|
|
dlabel D_80245350_EEB900
|
|
.double 0.04
|
|
|
|
dlabel D_80245358_EEB908
|
|
.double 0.98
|
|
|
|
.section .text
|
|
|
|
glabel func_80240504_EE6AB4
|
|
/* EE6AB4 80240504 27BDFF88 */ addiu $sp, $sp, -0x78
|
|
/* EE6AB8 80240508 AFBF0064 */ sw $ra, 0x64($sp)
|
|
/* EE6ABC 8024050C AFB00060 */ sw $s0, 0x60($sp)
|
|
/* EE6AC0 80240510 F7B60070 */ sdc1 $f22, 0x70($sp)
|
|
/* EE6AC4 80240514 F7B40068 */ sdc1 $f20, 0x68($sp)
|
|
/* EE6AC8 80240518 0C01B198 */ jal __osGetCause
|
|
/* EE6ACC 8024051C 27A40010 */ addiu $a0, $sp, 0x10
|
|
/* EE6AD0 80240520 3C108024 */ lui $s0, %hi(D_80243B44_EEA0F4)
|
|
/* EE6AD4 80240524 26103B44 */ addiu $s0, $s0, %lo(D_80243B44_EEA0F4)
|
|
/* EE6AD8 80240528 C6000000 */ lwc1 $f0, ($s0)
|
|
/* EE6ADC 8024052C 3C014130 */ lui $at, 0x4130
|
|
/* EE6AE0 80240530 44816000 */ mtc1 $at, $f12
|
|
/* EE6AE4 80240534 0C00AD17 */ jal func_8002B45C
|
|
/* EE6AE8 80240538 460C0303 */ div.s $f12, $f0, $f12
|
|
/* EE6AEC 8024053C 3C018024 */ lui $at, %hi(D_80245350_EEB900)
|
|
/* EE6AF0 80240540 D4345350 */ ldc1 $f20, %lo(D_80245350_EEB900)($at)
|
|
/* EE6AF4 80240544 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6AF8 80240548 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6AFC 8024054C 00000000 */ nop
|
|
/* EE6B00 80240550 3C018024 */ lui $at, %hi(D_80245358_EEB908)
|
|
/* EE6B04 80240554 D4365358 */ ldc1 $f22, %lo(D_80245358_EEB908)($at)
|
|
/* EE6B08 80240558 C6020000 */ lwc1 $f2, ($s0)
|
|
/* EE6B0C 8024055C 3C014140 */ lui $at, 0x4140
|
|
/* EE6B10 80240560 44816000 */ mtc1 $at, $f12
|
|
/* EE6B14 80240564 46360000 */ add.d $f0, $f0, $f22
|
|
/* EE6B18 80240568 460C1303 */ div.s $f12, $f2, $f12
|
|
/* EE6B1C 8024056C 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6B20 80240570 0C00AD17 */ jal func_8002B45C
|
|
/* EE6B24 80240574 E7A00010 */ swc1 $f0, 0x10($sp)
|
|
/* EE6B28 80240578 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6B2C 8024057C 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6B30 80240580 00000000 */ nop
|
|
/* EE6B34 80240584 C6020000 */ lwc1 $f2, ($s0)
|
|
/* EE6B38 80240588 3C014150 */ lui $at, 0x4150
|
|
/* EE6B3C 8024058C 44816000 */ mtc1 $at, $f12
|
|
/* EE6B40 80240590 00000000 */ nop
|
|
/* EE6B44 80240594 460C1303 */ div.s $f12, $f2, $f12
|
|
/* EE6B48 80240598 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6B4C 8024059C 0C00AD30 */ jal dead_cos_rad
|
|
/* EE6B50 802405A0 E7A00014 */ swc1 $f0, 0x14($sp)
|
|
/* EE6B54 802405A4 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6B58 802405A8 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6B5C 802405AC 00000000 */ nop
|
|
/* EE6B60 802405B0 C60C0000 */ lwc1 $f12, ($s0)
|
|
/* EE6B64 802405B4 3C0140E0 */ lui $at, 0x40e0
|
|
/* EE6B68 802405B8 44811000 */ mtc1 $at, $f2
|
|
/* EE6B6C 802405BC 3C013F80 */ lui $at, 0x3f80
|
|
/* EE6B70 802405C0 44812000 */ mtc1 $at, $f4
|
|
/* EE6B74 802405C4 46026303 */ div.s $f12, $f12, $f2
|
|
/* EE6B78 802405C8 46046300 */ add.s $f12, $f12, $f4
|
|
/* EE6B7C 802405CC 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6B80 802405D0 0C00AD17 */ jal func_8002B45C
|
|
/* EE6B84 802405D4 E7A00018 */ swc1 $f0, 0x18($sp)
|
|
/* EE6B88 802405D8 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6B8C 802405DC 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6B90 802405E0 00000000 */ nop
|
|
/* EE6B94 802405E4 C6020000 */ lwc1 $f2, ($s0)
|
|
/* EE6B98 802405E8 3C014160 */ lui $at, 0x4160
|
|
/* EE6B9C 802405EC 44816000 */ mtc1 $at, $f12
|
|
/* EE6BA0 802405F0 46360000 */ add.d $f0, $f0, $f22
|
|
/* EE6BA4 802405F4 460C1303 */ div.s $f12, $f2, $f12
|
|
/* EE6BA8 802405F8 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6BAC 802405FC 0C00AD17 */ jal func_8002B45C
|
|
/* EE6BB0 80240600 E7A00024 */ swc1 $f0, 0x24($sp)
|
|
/* EE6BB4 80240604 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6BB8 80240608 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6BBC 8024060C 00000000 */ nop
|
|
/* EE6BC0 80240610 C6020000 */ lwc1 $f2, ($s0)
|
|
/* EE6BC4 80240614 3C014170 */ lui $at, 0x4170
|
|
/* EE6BC8 80240618 44816000 */ mtc1 $at, $f12
|
|
/* EE6BCC 8024061C 00000000 */ nop
|
|
/* EE6BD0 80240620 460C1303 */ div.s $f12, $f2, $f12
|
|
/* EE6BD4 80240624 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6BD8 80240628 0C00AD30 */ jal dead_cos_rad
|
|
/* EE6BDC 8024062C E7A00020 */ swc1 $f0, 0x20($sp)
|
|
/* EE6BE0 80240630 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6BE4 80240634 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6BE8 80240638 00000000 */ nop
|
|
/* EE6BEC 8024063C C60C0000 */ lwc1 $f12, ($s0)
|
|
/* EE6BF0 80240640 3C013E80 */ lui $at, 0x3e80
|
|
/* EE6BF4 80240644 44811000 */ mtc1 $at, $f2
|
|
/* EE6BF8 80240648 00000000 */ nop
|
|
/* EE6BFC 8024064C 46026302 */ mul.s $f12, $f12, $f2
|
|
/* EE6C00 80240650 00000000 */ nop
|
|
/* EE6C04 80240654 3C014000 */ lui $at, 0x4000
|
|
/* EE6C08 80240658 44811000 */ mtc1 $at, $f2
|
|
/* EE6C0C 8024065C 00000000 */ nop
|
|
/* EE6C10 80240660 46026300 */ add.s $f12, $f12, $f2
|
|
/* EE6C14 80240664 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6C18 80240668 0C00AD17 */ jal func_8002B45C
|
|
/* EE6C1C 8024066C E7A00028 */ swc1 $f0, 0x28($sp)
|
|
/* EE6C20 80240670 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6C24 80240674 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6C28 80240678 00000000 */ nop
|
|
/* EE6C2C 8024067C C6020000 */ lwc1 $f2, ($s0)
|
|
/* EE6C30 80240680 3C013D80 */ lui $at, 0x3d80
|
|
/* EE6C34 80240684 44816000 */ mtc1 $at, $f12
|
|
/* EE6C38 80240688 00000000 */ nop
|
|
/* EE6C3C 8024068C 460C1302 */ mul.s $f12, $f2, $f12
|
|
/* EE6C40 80240690 00000000 */ nop
|
|
/* EE6C44 80240694 46360000 */ add.d $f0, $f0, $f22
|
|
/* EE6C48 80240698 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6C4C 8024069C 0C00AD17 */ jal func_8002B45C
|
|
/* EE6C50 802406A0 E7A00038 */ swc1 $f0, 0x38($sp)
|
|
/* EE6C54 802406A4 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6C58 802406A8 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6C5C 802406AC 00000000 */ nop
|
|
/* EE6C60 802406B0 C6020000 */ lwc1 $f2, ($s0)
|
|
/* EE6C64 802406B4 3C014188 */ lui $at, 0x4188
|
|
/* EE6C68 802406B8 44816000 */ mtc1 $at, $f12
|
|
/* EE6C6C 802406BC 00000000 */ nop
|
|
/* EE6C70 802406C0 460C1303 */ div.s $f12, $f2, $f12
|
|
/* EE6C74 802406C4 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6C78 802406C8 0C00AD30 */ jal dead_cos_rad
|
|
/* EE6C7C 802406CC E7A00030 */ swc1 $f0, 0x30($sp)
|
|
/* EE6C80 802406D0 3C030001 */ lui $v1, 1
|
|
/* EE6C84 802406D4 46000021 */ cvt.d.s $f0, $f0
|
|
/* EE6C88 802406D8 46340002 */ mul.d $f0, $f0, $f20
|
|
/* EE6C8C 802406DC 00000000 */ nop
|
|
/* EE6C90 802406E0 34631630 */ ori $v1, $v1, 0x1630
|
|
/* EE6C94 802406E4 27A40010 */ addiu $a0, $sp, 0x10
|
|
/* EE6C98 802406E8 3C058008 */ lui $a1, %hi(D_80079540)
|
|
/* EE6C9C 802406EC 94A59540 */ lhu $a1, %lo(D_80079540)($a1)
|
|
/* EE6CA0 802406F0 3C02800A */ lui $v0, %hi(D_800A15CC)
|
|
/* EE6CA4 802406F4 8C4215CC */ lw $v0, %lo(D_800A15CC)($v0)
|
|
/* EE6CA8 802406F8 00052980 */ sll $a1, $a1, 6
|
|
/* EE6CAC 802406FC 00A32821 */ addu $a1, $a1, $v1
|
|
/* EE6CB0 80240700 00452821 */ addu $a1, $v0, $a1
|
|
/* EE6CB4 80240704 46200020 */ cvt.s.d $f0, $f0
|
|
/* EE6CB8 80240708 0C01B1B0 */ jal __osSpDeviceBusy
|
|
/* EE6CBC 8024070C E7A00034 */ swc1 $f0, 0x34($sp)
|
|
/* EE6CC0 80240710 0000202D */ daddu $a0, $zero, $zero
|
|
/* EE6CC4 80240714 27A50050 */ addiu $a1, $sp, 0x50
|
|
/* EE6CC8 80240718 27A60054 */ addiu $a2, $sp, 0x54
|
|
/* EE6CCC 8024071C 0C0499BE */ jal func_801266F8
|
|
/* EE6CD0 80240720 27A70058 */ addiu $a3, $sp, 0x58
|
|
/* EE6CD4 80240724 3C03DA38 */ lui $v1, 0xda38
|
|
/* EE6CD8 80240728 34630001 */ ori $v1, $v1, 1
|
|
/* EE6CDC 8024072C 3C080001 */ lui $t0, 1
|
|
/* EE6CE0 80240730 35081630 */ ori $t0, $t0, 0x1630
|
|
/* EE6CE4 80240734 3C06800A */ lui $a2, %hi(D_800A15C4)
|
|
/* EE6CE8 80240738 24C615C4 */ addiu $a2, $a2, %lo(D_800A15C4)
|
|
/* EE6CEC 8024073C 0000202D */ daddu $a0, $zero, $zero
|
|
/* EE6CF0 80240740 3C058008 */ lui $a1, %hi(D_80079540)
|
|
/* EE6CF4 80240744 24A59540 */ addiu $a1, $a1, %lo(D_80079540)
|
|
/* EE6CF8 80240748 8CD00000 */ lw $s0, ($a2)
|
|
/* EE6CFC 8024074C 94A20000 */ lhu $v0, ($a1)
|
|
/* EE6D00 80240750 0200382D */ daddu $a3, $s0, $zero
|
|
/* EE6D04 80240754 26100008 */ addiu $s0, $s0, 8
|
|
/* EE6D08 80240758 ACD00000 */ sw $s0, ($a2)
|
|
/* EE6D0C 8024075C ACE30000 */ sw $v1, ($a3)
|
|
/* EE6D10 80240760 24430001 */ addiu $v1, $v0, 1
|
|
/* EE6D14 80240764 3042FFFF */ andi $v0, $v0, 0xffff
|
|
/* EE6D18 80240768 00021180 */ sll $v0, $v0, 6
|
|
/* EE6D1C 8024076C A4A30000 */ sh $v1, ($a1)
|
|
/* EE6D20 80240770 3C03800A */ lui $v1, %hi(D_800A15CC)
|
|
/* EE6D24 80240774 8C6315CC */ lw $v1, %lo(D_800A15CC)($v1)
|
|
/* EE6D28 80240778 00481021 */ addu $v0, $v0, $t0
|
|
/* EE6D2C 8024077C 00621821 */ addu $v1, $v1, $v0
|
|
/* EE6D30 80240780 26020008 */ addiu $v0, $s0, 8
|
|
/* EE6D34 80240784 ACE30004 */ sw $v1, 4($a3)
|
|
/* EE6D38 80240788 ACC20000 */ sw $v0, ($a2)
|
|
/* EE6D3C 8024078C 3C02DE00 */ lui $v0, 0xde00
|
|
/* EE6D40 80240790 0C0499CD */ jal func_80126734
|
|
/* EE6D44 80240794 AE020000 */ sw $v0, ($s0)
|
|
/* EE6D48 80240798 3C038024 */ lui $v1, %hi(D_80243B44_EEA0F4)
|
|
/* EE6D4C 8024079C 24633B44 */ addiu $v1, $v1, %lo(D_80243B44_EEA0F4)
|
|
/* EE6D50 802407A0 C4600000 */ lwc1 $f0, ($v1)
|
|
/* EE6D54 802407A4 3C013F80 */ lui $at, 0x3f80
|
|
/* EE6D58 802407A8 44811000 */ mtc1 $at, $f2
|
|
/* EE6D5C 802407AC 00000000 */ nop
|
|
/* EE6D60 802407B0 46020000 */ add.s $f0, $f0, $f2
|
|
/* EE6D64 802407B4 AE020004 */ sw $v0, 4($s0)
|
|
/* EE6D68 802407B8 E4600000 */ swc1 $f0, ($v1)
|
|
/* EE6D6C 802407BC 8FBF0064 */ lw $ra, 0x64($sp)
|
|
/* EE6D70 802407C0 8FB00060 */ lw $s0, 0x60($sp)
|
|
/* EE6D74 802407C4 D7B60070 */ ldc1 $f22, 0x70($sp)
|
|
/* EE6D78 802407C8 D7B40068 */ ldc1 $f20, 0x68($sp)
|
|
/* EE6D7C 802407CC 03E00008 */ jr $ra
|
|
/* EE6D80 802407D0 27BD0078 */ addiu $sp, $sp, 0x78
|