mirror of https://github.com/PrimeDecomp/prime.git
152 lines
6.2 KiB
ArmAsm
152 lines
6.2 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .sbss, "wa"
|
|
.balign 8
|
|
|
|
.global mParticleLifetime__16CParticleGlobals
|
|
mParticleLifetime__16CParticleGlobals:
|
|
.skip 0x4
|
|
.global mParticleLifetimeReal__16CParticleGlobals
|
|
mParticleLifetimeReal__16CParticleGlobals:
|
|
.skip 0x4
|
|
.global mEmitterTime__16CParticleGlobals
|
|
mEmitterTime__16CParticleGlobals:
|
|
.skip 0x4
|
|
.global mEmitterTimeReal__16CParticleGlobals
|
|
mEmitterTimeReal__16CParticleGlobals:
|
|
.skip 0x4
|
|
.global mParticleLifetimePercentage__16CParticleGlobals
|
|
mParticleLifetimePercentage__16CParticleGlobals:
|
|
.skip 0x4
|
|
.global mParticleLifetimePercentageReal__16CParticleGlobals
|
|
mParticleLifetimePercentageReal__16CParticleGlobals:
|
|
.skip 0x4
|
|
.global mParticleLifetimePercentageRemainder__16CParticleGlobals
|
|
mParticleLifetimePercentageRemainder__16CParticleGlobals:
|
|
.skip 0x4
|
|
# mCurrentParticle
|
|
.global lbl_805A94AC
|
|
lbl_805A94AC:
|
|
.skip 0x4
|
|
# mParticleAccessParameters
|
|
.global lbl_805A94B0
|
|
lbl_805A94B0:
|
|
.skip 0x4
|
|
# mCurrentParticleSystem
|
|
.global mCurrentParticleSystem__16CParticleGlobals
|
|
mCurrentParticleSystem__16CParticleGlobals:
|
|
.skip 0x4
|
|
|
|
.section .text, "ax"
|
|
|
|
.global UpdateParticleLifetimeTweenValues__16CParticleGlobalsFi
|
|
UpdateParticleLifetimeTweenValues__16CParticleGlobalsFi:
|
|
/* 8032A67C 003275DC 94 21 FF D0 */ stwu r1, -0x30(r1)
|
|
/* 8032A680 003275E0 3C 00 43 30 */ lis r0, 0x4330
|
|
/* 8032A684 003275E4 C8 22 CA 88 */ lfd f1, lbl_805AE7A8@sda21(r2)
|
|
/* 8032A688 003275E8 80 8D A8 D0 */ lwz r4, mParticleLifetime__16CParticleGlobals@sda21(r13)
|
|
/* 8032A68C 003275EC 90 01 00 08 */ stw r0, 8(r1)
|
|
/* 8032A690 003275F0 6C 84 80 00 */ xoris r4, r4, 0x8000
|
|
/* 8032A694 003275F4 C0 42 CA 7C */ lfs f2, lbl_805AE79C@sda21(r2)
|
|
/* 8032A698 003275F8 90 81 00 0C */ stw r4, 0xc(r1)
|
|
/* 8032A69C 003275FC C8 01 00 08 */ lfd f0, 8(r1)
|
|
/* 8032A6A0 00327600 EC 00 08 28 */ fsubs f0, f0, f1
|
|
/* 8032A6A4 00327604 FC 02 00 00 */ fcmpu cr0, f2, f0
|
|
/* 8032A6A8 00327608 41 82 00 18 */ beq lbl_8032A6C0
|
|
/* 8032A6AC 0032760C 90 81 00 14 */ stw r4, 0x14(r1)
|
|
/* 8032A6B0 00327610 90 01 00 10 */ stw r0, 0x10(r1)
|
|
/* 8032A6B4 00327614 C8 01 00 10 */ lfd f0, 0x10(r1)
|
|
/* 8032A6B8 00327618 EC 60 08 28 */ fsubs f3, f0, f1
|
|
/* 8032A6BC 0032761C 48 00 00 08 */ b lbl_8032A6C4
|
|
lbl_8032A6C0:
|
|
/* 8032A6C0 00327620 C0 62 CA 78 */ lfs f3, lbl_805AE798@sda21(r2)
|
|
lbl_8032A6C4:
|
|
/* 8032A6C4 00327624 3C 00 43 30 */ lis r0, 0x4330
|
|
/* 8032A6C8 00327628 6C 63 80 00 */ xoris r3, r3, 0x8000
|
|
/* 8032A6CC 0032762C 90 61 00 1C */ stw r3, 0x1c(r1)
|
|
/* 8032A6D0 00327630 C8 42 CA 88 */ lfd f2, lbl_805AE7A8@sda21(r2)
|
|
/* 8032A6D4 00327634 90 01 00 18 */ stw r0, 0x18(r1)
|
|
/* 8032A6D8 00327638 C0 22 CA 80 */ lfs f1, lbl_805AE7A0@sda21(r2)
|
|
/* 8032A6DC 0032763C C8 01 00 18 */ lfd f0, 0x18(r1)
|
|
/* 8032A6E0 00327640 90 01 00 28 */ stw r0, 0x28(r1)
|
|
/* 8032A6E4 00327644 EC 00 10 28 */ fsubs f0, f0, f2
|
|
/* 8032A6E8 00327648 EC 01 00 32 */ fmuls f0, f1, f0
|
|
/* 8032A6EC 0032764C EC 20 18 24 */ fdivs f1, f0, f3
|
|
/* 8032A6F0 00327650 FC 00 08 1E */ fctiwz f0, f1
|
|
/* 8032A6F4 00327654 D0 2D A8 E4 */ stfs f1, mParticleLifetimePercentageReal__16CParticleGlobals@sda21(r13)
|
|
/* 8032A6F8 00327658 D8 01 00 20 */ stfd f0, 0x20(r1)
|
|
/* 8032A6FC 0032765C 80 61 00 24 */ lwz r3, 0x24(r1)
|
|
/* 8032A700 00327660 6C 60 80 00 */ xoris r0, r3, 0x8000
|
|
/* 8032A704 00327664 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 8032A708 00327668 90 01 00 2C */ stw r0, 0x2c(r1)
|
|
/* 8032A70C 0032766C C8 01 00 28 */ lfd f0, 0x28(r1)
|
|
/* 8032A710 00327670 90 6D A8 E0 */ stw r3, mParticleLifetimePercentage__16CParticleGlobals@sda21(r13)
|
|
/* 8032A714 00327674 EC 00 10 28 */ fsubs f0, f0, f2
|
|
/* 8032A718 00327678 EC 01 00 28 */ fsubs f0, f1, f0
|
|
/* 8032A71C 0032767C D0 0D A8 E8 */ stfs f0, mParticleLifetimePercentageRemainder__16CParticleGlobals@sda21(r13)
|
|
/* 8032A720 00327680 40 80 00 10 */ bge lbl_8032A730
|
|
/* 8032A724 00327684 38 00 00 00 */ li r0, 0
|
|
/* 8032A728 00327688 90 0D A8 E0 */ stw r0, mParticleLifetimePercentage__16CParticleGlobals@sda21(r13)
|
|
/* 8032A72C 0032768C 48 00 00 14 */ b lbl_8032A740
|
|
lbl_8032A730:
|
|
/* 8032A730 00327690 2C 03 00 64 */ cmpwi r3, 0x64
|
|
/* 8032A734 00327694 40 81 00 0C */ ble lbl_8032A740
|
|
/* 8032A738 00327698 38 00 00 64 */ li r0, 0x64
|
|
/* 8032A73C 0032769C 90 0D A8 E0 */ stw r0, mParticleLifetimePercentage__16CParticleGlobals@sda21(r13)
|
|
lbl_8032A740:
|
|
/* 8032A740 003276A0 38 21 00 30 */ addi r1, r1, 0x30
|
|
/* 8032A744 003276A4 4E 80 00 20 */ blr
|
|
|
|
.global SetEmitterTime__16CParticleGlobalsFi
|
|
SetEmitterTime__16CParticleGlobalsFi:
|
|
/* 8032A748 003276A8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 8032A74C 003276AC 6C 64 80 00 */ xoris r4, r3, 0x8000
|
|
/* 8032A750 003276B0 3C 00 43 30 */ lis r0, 0x4330
|
|
/* 8032A754 003276B4 C8 22 CA 88 */ lfd f1, lbl_805AE7A8@sda21(r2)
|
|
/* 8032A758 003276B8 90 81 00 0C */ stw r4, 0xc(r1)
|
|
/* 8032A75C 003276BC 90 01 00 08 */ stw r0, 8(r1)
|
|
/* 8032A760 003276C0 C8 01 00 08 */ lfd f0, 8(r1)
|
|
/* 8032A764 003276C4 90 6D A8 D8 */ stw r3, mEmitterTime__16CParticleGlobals@sda21(r13)
|
|
/* 8032A768 003276C8 EC 00 08 28 */ fsubs f0, f0, f1
|
|
/* 8032A76C 003276CC D0 0D A8 DC */ stfs f0, mEmitterTimeReal__16CParticleGlobals@sda21(r13)
|
|
/* 8032A770 003276D0 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 8032A774 003276D4 4E 80 00 20 */ blr
|
|
|
|
.global SetParticleLifetime__16CParticleGlobalsFi
|
|
SetParticleLifetime__16CParticleGlobalsFi:
|
|
/* 8032A778 003276D8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 8032A77C 003276DC 6C 64 80 00 */ xoris r4, r3, 0x8000
|
|
/* 8032A780 003276E0 3C 00 43 30 */ lis r0, 0x4330
|
|
/* 8032A784 003276E4 C8 22 CA 88 */ lfd f1, lbl_805AE7A8@sda21(r2)
|
|
/* 8032A788 003276E8 90 81 00 0C */ stw r4, 0xc(r1)
|
|
/* 8032A78C 003276EC 90 01 00 08 */ stw r0, 8(r1)
|
|
/* 8032A790 003276F0 C8 01 00 08 */ lfd f0, 8(r1)
|
|
/* 8032A794 003276F4 90 6D A8 D0 */ stw r3, mParticleLifetime__16CParticleGlobals@sda21(r13)
|
|
/* 8032A798 003276F8 EC 00 08 28 */ fsubs f0, f0, f1
|
|
/* 8032A79C 003276FC D0 0D A8 D4 */ stfs f0, mParticleLifetimeReal__16CParticleGlobals@sda21(r13)
|
|
/* 8032A7A0 00327700 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 8032A7A4 00327704 4E 80 00 20 */ blr
|
|
|
|
.section .sdata2, "a"
|
|
.balign 8
|
|
.global lbl_805AE798
|
|
lbl_805AE798:
|
|
# ROM: 0x3FB038
|
|
.float 1.0
|
|
|
|
.global lbl_805AE79C
|
|
lbl_805AE79C:
|
|
# ROM: 0x3FB03C
|
|
.4byte 0
|
|
|
|
.global lbl_805AE7A0
|
|
lbl_805AE7A0:
|
|
# ROM: 0x3FB040
|
|
.4byte 0x42C80000
|
|
.4byte 0
|
|
|
|
.global lbl_805AE7A8
|
|
lbl_805AE7A8:
|
|
# ROM: 0x3FB048
|
|
.double 4.503601774854144E15
|