diff --git a/asm/JSystem/JParticle/JPAMath/JPACalcKeyAnmValue__FfUsPCf.s b/asm/JSystem/JParticle/JPAMath/JPACalcKeyAnmValue__FfUsPCf.s deleted file mode 100644 index 5be458d5854..00000000000 --- a/asm/JSystem/JParticle/JPAMath/JPACalcKeyAnmValue__FfUsPCf.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80280984: -/* 80280984 C0 04 00 00 */ lfs f0, 0(r4) -/* 80280988 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8028098C 40 80 00 0C */ bge lbl_80280998 -/* 80280990 C0 24 00 04 */ lfs f1, 4(r4) -/* 80280994 4E 80 00 20 */ blr -lbl_80280998: -/* 80280998 54 63 04 3E */ clrlwi r3, r3, 0x10 -/* 8028099C 38 03 FF FF */ addi r0, r3, -1 -/* 802809A0 54 00 20 36 */ slwi r0, r0, 4 -/* 802809A4 7C 04 04 2E */ lfsx f0, r4, r0 -/* 802809A8 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 802809AC 4C 40 13 82 */ cror 2, 0, 2 -/* 802809B0 40 82 00 40 */ bne lbl_802809F0 -/* 802809B4 7C 64 02 14 */ add r3, r4, r0 -/* 802809B8 C0 23 00 04 */ lfs f1, 4(r3) -/* 802809BC 4E 80 00 20 */ blr -/* 802809C0 48 00 00 30 */ b lbl_802809F0 -lbl_802809C4: -/* 802809C4 7C 60 0E 70 */ srawi r0, r3, 1 -/* 802809C8 7C A0 01 94 */ addze r5, r0 -/* 802809CC 54 A0 20 36 */ slwi r0, r5, 4 -/* 802809D0 7C 04 04 2E */ lfsx f0, r4, r0 -/* 802809D4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802809D8 4C 41 13 82 */ cror 2, 1, 2 -/* 802809DC 40 82 00 10 */ bne lbl_802809EC -/* 802809E0 7C 84 02 14 */ add r4, r4, r0 -/* 802809E4 7C 65 18 50 */ subf r3, r5, r3 -/* 802809E8 48 00 00 08 */ b lbl_802809F0 -lbl_802809EC: -/* 802809EC 7C A3 2B 78 */ mr r3, r5 -lbl_802809F0: -/* 802809F0 2C 03 00 01 */ cmpwi r3, 1 -/* 802809F4 41 81 FF D0 */ bgt lbl_802809C4 -/* 802809F8 C1 24 00 18 */ lfs f9, 0x18(r4) -/* 802809FC C1 04 00 14 */ lfs f8, 0x14(r4) -/* 80280A00 C0 44 00 10 */ lfs f2, 0x10(r4) -/* 80280A04 C0 E4 00 0C */ lfs f7, 0xc(r4) -/* 80280A08 C0 C4 00 04 */ lfs f6, 4(r4) -/* 80280A0C C0 04 00 00 */ lfs f0, 0(r4) -/* 80280A10 EC A1 00 28 */ fsubs f5, f1, f0 -/* 80280A14 EC 82 00 28 */ fsubs f4, f2, f0 -/* 80280A18 EC 65 20 24 */ fdivs f3, f5, f4 -/* 80280A1C EC 03 00 F2 */ fmuls f0, f3, f3 -/* 80280A20 EC 23 18 2A */ fadds f1, f3, f3 -/* 80280A24 EC 40 18 28 */ fsubs f2, f0, f3 -/* 80280A28 EC 86 40 28 */ fsubs f4, f6, f8 -/* 80280A2C EC 01 00 B8 */ fmsubs f0, f1, f2, f0 -/* 80280A30 EC 27 38 BA */ fmadds f1, f7, f2, f7 -/* 80280A34 EC 00 31 3A */ fmadds f0, f0, f4, f6 -/* 80280A38 EC 29 08 BA */ fmadds f1, f9, f2, f1 -/* 80280A3C EC 23 09 F8 */ fmsubs f1, f3, f7, f1 -/* 80280A40 EC 25 00 7C */ fnmsubs f1, f5, f1, f0 -/* 80280A44 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAMath/JPAGetXYZRotateMtx__FsssPA4_f.s b/asm/JSystem/JParticle/JPAMath/JPAGetXYZRotateMtx__FsssPA4_f.s deleted file mode 100644 index cf12a4ae54d..00000000000 --- a/asm/JSystem/JParticle/JPAMath/JPAGetXYZRotateMtx__FsssPA4_f.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_80280734: -/* 80280734 3C E0 80 44 */ lis r7, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 80280738 38 E7 9A 20 */ addi r7, r7, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 8028073C 39 07 00 04 */ addi r8, r7, 4 -/* 80280740 54 60 04 38 */ rlwinm r0, r3, 0, 0x10, 0x1c -/* 80280744 7C 28 04 2E */ lfsx f1, r8, r0 -/* 80280748 54 83 04 38 */ rlwinm r3, r4, 0, 0x10, 0x1c -/* 8028074C 7C 48 1C 2E */ lfsx f2, r8, r3 -/* 80280750 54 A4 04 38 */ rlwinm r4, r5, 0, 0x10, 0x1c -/* 80280754 7C 68 24 2E */ lfsx f3, r8, r4 -/* 80280758 7C 87 04 2E */ lfsx f4, r7, r0 -/* 8028075C 7C A7 1C 2E */ lfsx f5, r7, r3 -/* 80280760 7C C7 24 2E */ lfsx f6, r7, r4 -/* 80280764 EC 02 00 F2 */ fmuls f0, f2, f3 -/* 80280768 D0 06 00 00 */ stfs f0, 0(r6) -/* 8028076C EC 02 01 B2 */ fmuls f0, f2, f6 -/* 80280770 D0 06 00 10 */ stfs f0, 0x10(r6) -/* 80280774 FC 00 28 50 */ fneg f0, f5 -/* 80280778 D0 06 00 20 */ stfs f0, 0x20(r6) -/* 8028077C EC 04 00 B2 */ fmuls f0, f4, f2 -/* 80280780 D0 06 00 24 */ stfs f0, 0x24(r6) -/* 80280784 EC 01 00 B2 */ fmuls f0, f1, f2 -/* 80280788 D0 06 00 28 */ stfs f0, 0x28(r6) -/* 8028078C EC 41 01 B2 */ fmuls f2, f1, f6 -/* 80280790 EC E4 00 F2 */ fmuls f7, f4, f3 -/* 80280794 EC 07 01 72 */ fmuls f0, f7, f5 -/* 80280798 EC 00 10 28 */ fsubs f0, f0, f2 -/* 8028079C D0 06 00 04 */ stfs f0, 4(r6) -/* 802807A0 EC 02 01 72 */ fmuls f0, f2, f5 -/* 802807A4 EC 00 38 28 */ fsubs f0, f0, f7 -/* 802807A8 D0 06 00 18 */ stfs f0, 0x18(r6) -/* 802807AC EC 44 01 B2 */ fmuls f2, f4, f6 -/* 802807B0 EC 21 00 F2 */ fmuls f1, f1, f3 -/* 802807B4 EC 01 01 72 */ fmuls f0, f1, f5 -/* 802807B8 EC 02 00 2A */ fadds f0, f2, f0 -/* 802807BC D0 06 00 08 */ stfs f0, 8(r6) -/* 802807C0 EC 02 01 72 */ fmuls f0, f2, f5 -/* 802807C4 EC 01 00 2A */ fadds f0, f1, f0 -/* 802807C8 D0 06 00 14 */ stfs f0, 0x14(r6) -/* 802807CC C0 02 B9 BC */ lfs f0, lit_2238(r2) -/* 802807D0 D0 06 00 2C */ stfs f0, 0x2c(r6) -/* 802807D4 D0 06 00 1C */ stfs f0, 0x1c(r6) -/* 802807D8 D0 06 00 0C */ stfs f0, 0xc(r6) -/* 802807DC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAMath/JPAGetYZRotateMtx__FssPA4_f.s b/asm/JSystem/JParticle/JPAMath/JPAGetYZRotateMtx__FssPA4_f.s deleted file mode 100644 index c47f70569b4..00000000000 --- a/asm/JSystem/JParticle/JPAMath/JPAGetYZRotateMtx__FssPA4_f.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802806C0: -/* 802806C0 3C C0 80 44 */ lis r6, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 802806C4 38 C6 9A 20 */ addi r6, r6, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 802806C8 38 E6 00 04 */ addi r7, r6, 4 -/* 802806CC 54 60 04 38 */ rlwinm r0, r3, 0, 0x10, 0x1c -/* 802806D0 7C 27 04 2E */ lfsx f1, r7, r0 -/* 802806D4 54 83 04 38 */ rlwinm r3, r4, 0, 0x10, 0x1c -/* 802806D8 7C 47 1C 2E */ lfsx f2, r7, r3 -/* 802806DC 7C 66 04 2E */ lfsx f3, r6, r0 -/* 802806E0 7C 86 1C 2E */ lfsx f4, r6, r3 -/* 802806E4 EC 01 00 B2 */ fmuls f0, f1, f2 -/* 802806E8 D0 05 00 00 */ stfs f0, 0(r5) -/* 802806EC FC 00 20 50 */ fneg f0, f4 -/* 802806F0 D0 05 00 04 */ stfs f0, 4(r5) -/* 802806F4 EC 03 00 B2 */ fmuls f0, f3, f2 -/* 802806F8 D0 05 00 08 */ stfs f0, 8(r5) -/* 802806FC EC 01 01 32 */ fmuls f0, f1, f4 -/* 80280700 D0 05 00 10 */ stfs f0, 0x10(r5) -/* 80280704 D0 45 00 14 */ stfs f2, 0x14(r5) -/* 80280708 EC 03 01 32 */ fmuls f0, f3, f4 -/* 8028070C D0 05 00 18 */ stfs f0, 0x18(r5) -/* 80280710 FC 00 18 50 */ fneg f0, f3 -/* 80280714 D0 05 00 20 */ stfs f0, 0x20(r5) -/* 80280718 D0 25 00 28 */ stfs f1, 0x28(r5) -/* 8028071C C0 02 B9 BC */ lfs f0, lit_2238(r2) -/* 80280720 D0 05 00 2C */ stfs f0, 0x2c(r5) -/* 80280724 D0 05 00 24 */ stfs f0, 0x24(r5) -/* 80280728 D0 05 00 1C */ stfs f0, 0x1c(r5) -/* 8028072C D0 05 00 0C */ stfs f0, 0xc(r5) -/* 80280730 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAMath/func_80280588.s b/asm/JSystem/JParticle/JPAMath/func_80280588.s deleted file mode 100644 index b8d58e1dbd0..00000000000 --- a/asm/JSystem/JParticle/JPAMath/func_80280588.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_80280588: -/* 80280588 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8028058C 7C 08 02 A6 */ mflr r0 -/* 80280590 90 01 00 34 */ stw r0, 0x34(r1) -/* 80280594 DB E1 00 20 */ stfd f31, 0x20(r1) -/* 80280598 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */ -/* 8028059C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802805A0 93 C1 00 18 */ stw r30, 0x18(r1) -/* 802805A4 7C 7E 1B 78 */ mr r30, r3 -/* 802805A8 7C 9F 23 78 */ mr r31, r4 -/* 802805AC C0 03 00 00 */ lfs f0, 0(r3) -/* 802805B0 FC 20 00 50 */ fneg f1, f0 -/* 802805B4 C0 03 00 04 */ lfs f0, 4(r3) -/* 802805B8 D0 01 00 08 */ stfs f0, 8(r1) -/* 802805BC D0 21 00 0C */ stfs f1, 0xc(r1) -/* 802805C0 C0 02 B9 BC */ lfs f0, lit_2238(r2) -/* 802805C4 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 802805C8 38 61 00 08 */ addi r3, r1, 8 -/* 802805CC 48 0C 6B 85 */ bl PSVECMag -/* 802805D0 C0 42 B9 C0 */ lfs f2, lit_2239(r2) -/* 802805D4 3C 60 80 45 */ lis r3, __float_epsilon@ha /* 0x80450AEC@ha */ -/* 802805D8 C0 03 0A EC */ lfs f0, __float_epsilon@l(r3) /* 0x80450AEC@l */ -/* 802805DC EC 02 00 32 */ fmuls f0, f2, f0 -/* 802805E0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802805E4 4C 40 13 82 */ cror 2, 0, 2 -/* 802805E8 40 82 00 18 */ bne lbl_80280600 -/* 802805EC C0 02 B9 BC */ lfs f0, lit_2238(r2) -/* 802805F0 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 802805F4 D0 01 00 0C */ stfs f0, 0xc(r1) -/* 802805F8 D0 01 00 08 */ stfs f0, 8(r1) -/* 802805FC 48 00 00 24 */ b lbl_80280620 -lbl_80280600: -/* 80280600 C0 02 B9 B8 */ lfs f0, lit_2193(r2) -/* 80280604 EF E0 08 24 */ fdivs f31, f0, f1 -/* 80280608 E0 01 00 08 */ psq_l f0, 8(r1), 0, 0 /* qr0 */ -/* 8028060C E0 41 80 10 */ psq_l f2, 16(r1), 1, 0 /* qr0 */ -/* 80280610 10 00 07 D8 */ ps_muls0 f0, f0, f31 -/* 80280614 F0 01 00 08 */ psq_st f0, 8(r1), 0, 0 /* qr0 */ -/* 80280618 10 02 07 D8 */ ps_muls0 f0, f2, f31 -/* 8028061C F0 01 80 10 */ psq_st f0, 16(r1), 1, 0 /* qr0 */ -lbl_80280620: -/* 80280620 C0 01 00 08 */ lfs f0, 8(r1) -/* 80280624 EC A0 00 32 */ fmuls f5, f0, f0 -/* 80280628 C0 61 00 0C */ lfs f3, 0xc(r1) -/* 8028062C EC C3 00 F2 */ fmuls f6, f3, f3 -/* 80280630 EC E0 00 72 */ fmuls f7, f0, f1 -/* 80280634 ED 03 00 72 */ fmuls f8, f3, f1 -/* 80280638 C0 42 B9 B8 */ lfs f2, lit_2193(r2) -/* 8028063C C0 9E 00 08 */ lfs f4, 8(r30) -/* 80280640 EC 22 20 28 */ fsubs f1, f2, f4 -/* 80280644 EC 00 00 F2 */ fmuls f0, f0, f3 -/* 80280648 EC 61 00 32 */ fmuls f3, f1, f0 -/* 8028064C EC 02 28 28 */ fsubs f0, f2, f5 -/* 80280650 EC 04 00 32 */ fmuls f0, f4, f0 -/* 80280654 EC 05 00 2A */ fadds f0, f5, f0 -/* 80280658 D0 1F 00 00 */ stfs f0, 0(r31) -/* 8028065C D0 7F 00 04 */ stfs f3, 4(r31) -/* 80280660 FC 00 40 50 */ fneg f0, f8 -/* 80280664 D0 1F 00 08 */ stfs f0, 8(r31) -/* 80280668 C0 22 B9 BC */ lfs f1, lit_2238(r2) -/* 8028066C D0 3F 00 0C */ stfs f1, 0xc(r31) -/* 80280670 D0 7F 00 10 */ stfs f3, 0x10(r31) -/* 80280674 EC 02 30 28 */ fsubs f0, f2, f6 -/* 80280678 EC 04 00 32 */ fmuls f0, f4, f0 -/* 8028067C EC 06 00 2A */ fadds f0, f6, f0 -/* 80280680 D0 1F 00 14 */ stfs f0, 0x14(r31) -/* 80280684 D0 FF 00 18 */ stfs f7, 0x18(r31) -/* 80280688 D0 3F 00 1C */ stfs f1, 0x1c(r31) -/* 8028068C D1 1F 00 20 */ stfs f8, 0x20(r31) -/* 80280690 FC 00 38 50 */ fneg f0, f7 -/* 80280694 D0 1F 00 24 */ stfs f0, 0x24(r31) -/* 80280698 D0 9F 00 28 */ stfs f4, 0x28(r31) -/* 8028069C D0 3F 00 2C */ stfs f1, 0x2c(r31) -/* 802806A0 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */ -/* 802806A4 CB E1 00 20 */ lfd f31, 0x20(r1) -/* 802806A8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802806AC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 802806B0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802806B4 7C 08 03 A6 */ mtlr r0 -/* 802806B8 38 21 00 30 */ addi r1, r1, 0x30 -/* 802806BC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAMath/func_802807E0.s b/asm/JSystem/JParticle/JPAMath/func_802807E0.s deleted file mode 100644 index a0d83df878f..00000000000 --- a/asm/JSystem/JParticle/JPAMath/func_802807E0.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802807E0: -/* 802807E0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802807E4 7C 08 02 A6 */ mflr r0 -/* 802807E8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802807EC 7C A6 2B 78 */ mr r6, r5 -/* 802807F0 38 A1 00 08 */ addi r5, r1, 8 -/* 802807F4 48 00 00 15 */ bl func_80280808 -/* 802807F8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802807FC 7C 08 03 A6 */ mtlr r0 -/* 80280800 38 21 00 20 */ addi r1, r1, 0x20 -/* 80280804 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAMath/func_80280808.s b/asm/JSystem/JParticle/JPAMath/func_80280808.s deleted file mode 100644 index 65f5d4b7e80..00000000000 --- a/asm/JSystem/JParticle/JPAMath/func_80280808.s +++ /dev/null @@ -1,99 +0,0 @@ -lbl_80280808: -/* 80280808 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8028080C 7C 08 02 A6 */ mflr r0 -/* 80280810 90 01 00 34 */ stw r0, 0x34(r1) -/* 80280814 39 61 00 30 */ addi r11, r1, 0x30 -/* 80280818 48 0E 19 C1 */ bl _savegpr_28 -/* 8028081C 7C 7C 1B 78 */ mr r28, r3 -/* 80280820 7C 9D 23 78 */ mr r29, r4 -/* 80280824 7C BE 2B 78 */ mr r30, r5 -/* 80280828 7C DF 33 78 */ mr r31, r6 -/* 8028082C C0 43 00 20 */ lfs f2, 0x20(r3) -/* 80280830 C0 23 00 10 */ lfs f1, 0x10(r3) -/* 80280834 C0 03 00 00 */ lfs f0, 0(r3) -/* 80280838 D0 01 00 08 */ stfs f0, 8(r1) -/* 8028083C D0 21 00 0C */ stfs f1, 0xc(r1) -/* 80280840 D0 41 00 10 */ stfs f2, 0x10(r1) -/* 80280844 38 61 00 08 */ addi r3, r1, 8 -/* 80280848 48 0C 69 09 */ bl PSVECMag -/* 8028084C D0 3E 00 00 */ stfs f1, 0(r30) -/* 80280850 C0 5C 00 24 */ lfs f2, 0x24(r28) -/* 80280854 C0 3C 00 14 */ lfs f1, 0x14(r28) -/* 80280858 C0 1C 00 04 */ lfs f0, 4(r28) -/* 8028085C D0 01 00 08 */ stfs f0, 8(r1) -/* 80280860 D0 21 00 0C */ stfs f1, 0xc(r1) -/* 80280864 D0 41 00 10 */ stfs f2, 0x10(r1) -/* 80280868 38 61 00 08 */ addi r3, r1, 8 -/* 8028086C 48 0C 68 E5 */ bl PSVECMag -/* 80280870 D0 3E 00 04 */ stfs f1, 4(r30) -/* 80280874 C0 5C 00 28 */ lfs f2, 0x28(r28) -/* 80280878 C0 3C 00 18 */ lfs f1, 0x18(r28) -/* 8028087C C0 1C 00 08 */ lfs f0, 8(r28) -/* 80280880 D0 01 00 08 */ stfs f0, 8(r1) -/* 80280884 D0 21 00 0C */ stfs f1, 0xc(r1) -/* 80280888 D0 41 00 10 */ stfs f2, 0x10(r1) -/* 8028088C 38 61 00 08 */ addi r3, r1, 8 -/* 80280890 48 0C 68 C1 */ bl PSVECMag -/* 80280894 D0 3E 00 08 */ stfs f1, 8(r30) -/* 80280898 7F A3 EB 78 */ mr r3, r29 -/* 8028089C 48 0C 5B E9 */ bl PSMTXIdentity -/* 802808A0 C0 02 B9 BC */ lfs f0, lit_2238(r2) -/* 802808A4 C0 3E 00 00 */ lfs f1, 0(r30) -/* 802808A8 FC 00 08 00 */ fcmpu cr0, f0, f1 -/* 802808AC 41 82 00 30 */ beq lbl_802808DC -/* 802808B0 C0 02 B9 B8 */ lfs f0, lit_2193(r2) -/* 802808B4 EC 20 08 24 */ fdivs f1, f0, f1 -/* 802808B8 C0 1C 00 00 */ lfs f0, 0(r28) -/* 802808BC EC 00 00 72 */ fmuls f0, f0, f1 -/* 802808C0 D0 1D 00 00 */ stfs f0, 0(r29) -/* 802808C4 C0 1C 00 10 */ lfs f0, 0x10(r28) -/* 802808C8 EC 00 00 72 */ fmuls f0, f0, f1 -/* 802808CC D0 1D 00 10 */ stfs f0, 0x10(r29) -/* 802808D0 C0 1C 00 20 */ lfs f0, 0x20(r28) -/* 802808D4 EC 00 00 72 */ fmuls f0, f0, f1 -/* 802808D8 D0 1D 00 20 */ stfs f0, 0x20(r29) -lbl_802808DC: -/* 802808DC C0 02 B9 BC */ lfs f0, lit_2238(r2) -/* 802808E0 C0 3E 00 04 */ lfs f1, 4(r30) -/* 802808E4 FC 00 08 00 */ fcmpu cr0, f0, f1 -/* 802808E8 41 82 00 30 */ beq lbl_80280918 -/* 802808EC C0 02 B9 B8 */ lfs f0, lit_2193(r2) -/* 802808F0 EC 20 08 24 */ fdivs f1, f0, f1 -/* 802808F4 C0 1C 00 04 */ lfs f0, 4(r28) -/* 802808F8 EC 00 00 72 */ fmuls f0, f0, f1 -/* 802808FC D0 1D 00 04 */ stfs f0, 4(r29) -/* 80280900 C0 1C 00 14 */ lfs f0, 0x14(r28) -/* 80280904 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80280908 D0 1D 00 14 */ stfs f0, 0x14(r29) -/* 8028090C C0 1C 00 24 */ lfs f0, 0x24(r28) -/* 80280910 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80280914 D0 1D 00 24 */ stfs f0, 0x24(r29) -lbl_80280918: -/* 80280918 C0 02 B9 BC */ lfs f0, lit_2238(r2) -/* 8028091C C0 3E 00 08 */ lfs f1, 8(r30) -/* 80280920 FC 00 08 00 */ fcmpu cr0, f0, f1 -/* 80280924 41 82 00 30 */ beq lbl_80280954 -/* 80280928 C0 02 B9 B8 */ lfs f0, lit_2193(r2) -/* 8028092C EC 20 08 24 */ fdivs f1, f0, f1 -/* 80280930 C0 1C 00 08 */ lfs f0, 8(r28) -/* 80280934 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80280938 D0 1D 00 08 */ stfs f0, 8(r29) -/* 8028093C C0 1C 00 18 */ lfs f0, 0x18(r28) -/* 80280940 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80280944 D0 1D 00 18 */ stfs f0, 0x18(r29) -/* 80280948 C0 1C 00 28 */ lfs f0, 0x28(r28) -/* 8028094C EC 00 00 72 */ fmuls f0, f0, f1 -/* 80280950 D0 1D 00 28 */ stfs f0, 0x28(r29) -lbl_80280954: -/* 80280954 C0 5C 00 2C */ lfs f2, 0x2c(r28) -/* 80280958 C0 3C 00 1C */ lfs f1, 0x1c(r28) -/* 8028095C C0 1C 00 0C */ lfs f0, 0xc(r28) -/* 80280960 D0 1F 00 00 */ stfs f0, 0(r31) -/* 80280964 D0 3F 00 04 */ stfs f1, 4(r31) -/* 80280968 D0 5F 00 08 */ stfs f2, 8(r31) -/* 8028096C 39 61 00 30 */ addi r11, r1, 0x30 -/* 80280970 48 0E 18 B5 */ bl _restgpr_28 -/* 80280974 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80280978 7C 08 03 A6 */ mtlr r0 -/* 8028097C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80280980 4E 80 00 20 */ blr diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index 34a243ee68c..c9fb14ecab6 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -155,6 +155,10 @@ struct TVec3 { scale(norm); } + f32 length() { + return PSVECMag((Vec*)this); + } + void scale(register f32 sc) { register f32 z; register f32 x_y; diff --git a/include/JSystem/JParticle/JPAMath.h b/include/JSystem/JParticle/JPAMath.h index 7bb10f61011..0451090843a 100644 --- a/include/JSystem/JParticle/JPAMath.h +++ b/include/JSystem/JParticle/JPAMath.h @@ -4,9 +4,13 @@ #include "dolphin/mtx/mtx.h" #include "JSystem/JGeometry.h" +void JPAGetDirMtx(JGeometry::TVec3 const& param_0, f32 (*param_1)[4]); +void JPAGetYZRotateMtx(s16 angleY, s16 angleZ, f32 (*param_2)[4]); void JPAGetXYZRotateMtx(s16 x, s16 y, s16 z, Mtx dst); void JPASetRMtxTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], JGeometry::TVec3* param_2); -void JPACalcKeyAnmValue(f32 param_0, u16 param_1, f32 const* param_2); +f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, f32 const* param_2); +void JPASetRMtxSTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], + JGeometry::TVec3* param_2, JGeometry::TVec3* param_3); #endif /* JPAMATH_H */ diff --git a/libs/JSystem/JParticle/JPAMath.cpp b/libs/JSystem/JParticle/JPAMath.cpp index 3bc89025836..94744cb018e 100644 --- a/libs/JSystem/JParticle/JPAMath.cpp +++ b/libs/JSystem/JParticle/JPAMath.cpp @@ -4,7 +4,8 @@ // #include "JSystem/JParticle/JPAMath.h" -#include "dol2asm.h" +#include "JSystem/JMath/JMATrigonometric.h" +#include "JSystem/J2DGraph/J2DAnimation.h" #include "dolphin/types.h" // @@ -35,85 +36,152 @@ extern "C" u8 sincosTable___5JMath[65536]; // /* ############################################################################################## */ -/* 804553B8-804553BC 0039B8 0004+00 2/2 0/0 0/0 .sdata2 @2193 */ -SECTION_SDATA2 static f32 lit_2193 = 1.0f; - -/* 804553BC-804553C0 0039BC 0004+00 4/4 0/0 0/0 .sdata2 @2238 */ -SECTION_SDATA2 static u8 lit_2238[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 804553C0-804553C8 0039C0 0004+04 1/1 0/0 0/0 .sdata2 @2239 */ -SECTION_SDATA2 static f32 lit_2239[1 + 1 /* padding */] = { - 32.0f, - /* padding */ - 0.0f, -}; +// Probably some local function needed to change float literal order +static f32 floatDummyFunc() { + return 1.0f; +} /* 80280588-802806C0 27AEC8 0138+00 0/0 1/1 0/0 .text JPAGetDirMtx__FRCQ29JGeometry8TVec3PA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAGetDirMtx(JGeometry::TVec3 const& param_0, f32 (*param_1)[4]) { - nofralloc -#include "asm/JSystem/JParticle/JPAMath/func_80280588.s" +void JPAGetDirMtx(JGeometry::TVec3 const& param_0, f32 (*param_1)[4]) { + JGeometry::TVec3 local_78; + f32 minusx = -param_0.x; + local_78.x = param_0.y; + local_78.y = minusx; + local_78.z = 0.0f; + f32 len = local_78.length(); + + if (len <= 32.0f * FLT_EPSILON) { + local_78.zero(); + } else { + local_78.scale(1.0f / len); + } + f32 xsquared = local_78.x * local_78.x; + f32 ysquared = local_78.y * local_78.y; + f32 xlen = local_78.x * len; + f32 ylen = local_78.y * len; + f32 fVar5 = (1.0f - param_0.z) * (local_78.x * local_78.y); + param_1[0][0] = xsquared + param_0.z * (1.0f - xsquared); + param_1[0][1] = fVar5; + param_1[0][2] = -ylen; + param_1[0][3] = 0.0f; + param_1[1][0] = fVar5; + param_1[1][1] = ysquared + param_0.z * (1.0f - ysquared); + param_1[1][2] = xlen; + param_1[1][3] = 0.0f; + param_1[2][0] = ylen; + param_1[2][1] = -xlen; + param_1[2][2] = param_0.z; + param_1[2][3] = 0.0f; } -#pragma pop /* 802806C0-80280734 27B000 0074+00 0/0 1/1 0/0 .text JPAGetYZRotateMtx__FssPA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAGetYZRotateMtx(s16 param_0, s16 param_1, f32 (*param_2)[4]) { - nofralloc -#include "asm/JSystem/JParticle/JPAMath/JPAGetYZRotateMtx__FssPA4_f.s" +void JPAGetYZRotateMtx(s16 angleY, s16 angleZ, f32 (*param_2)[4]) { + f32 cosy = JMASCos(angleY); + f32 cosz = JMASCos(angleZ); + f32 siny = JMASSin(angleY); + f32 sinz = JMASSin(angleZ); + param_2[0][0] = (cosy * cosz); + param_2[0][1] = -sinz; + param_2[0][2] = (siny * cosz); + param_2[1][0] = (cosy * sinz); + param_2[1][1] = cosz; + param_2[1][2] = (siny * sinz); + param_2[2][0] = -siny; + param_2[2][2] = cosy; + param_2[2][3] = 0.0f; + param_2[2][1] = 0.0f; + param_2[1][3] = 0.0f; + param_2[0][3] = 0.0f; } -#pragma pop /* 80280734-802807E0 27B074 00AC+00 0/0 6/6 11/11 .text JPAGetXYZRotateMtx__FsssPA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAGetXYZRotateMtx(s16 x, s16 y, s16 z, Mtx mtx) { - nofralloc -#include "asm/JSystem/JParticle/JPAMath/JPAGetXYZRotateMtx__FsssPA4_f.s" +void JPAGetXYZRotateMtx(s16 x, s16 y, s16 z, Mtx mtx) { + f32 cosx = JMASCos(x); + f32 cosy = JMASCos(y); + f32 cosz = JMASCos(z); + f32 sinx = JMASSin(x); + f32 siny = JMASSin(y); + f32 sinz = JMASSin(z); + mtx[0][0] = cosy * cosz; + mtx[1][0] = cosy * sinz; + mtx[2][0] = -siny; + mtx[2][1] = sinx * cosy; + mtx[2][2] = cosx * cosy; + f32 cosxsinz = cosx * sinz; + f32 sinxcosz = sinx * cosz; + mtx[0][1] = sinxcosz * siny - cosxsinz; + mtx[1][2] = cosxsinz * siny - sinxcosz; + f32 sinxsinz = sinx * sinz; + f32 cosxcosz = cosx * cosz; + mtx[0][2] = sinxsinz + cosxcosz * siny; + mtx[1][1] = cosxcosz + sinxsinz * siny; + mtx[2][3] = 0.0f; + mtx[1][3] = 0.0f; + mtx[0][3] = 0.0f; } -#pragma pop /* 802807E0-80280808 27B120 0028+00 0/0 11/11 71/71 .text * JPASetRMtxTVecfromMtx__FPA4_CfPA4_fPQ29JGeometry8TVec3 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPASetRMtxTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], +void JPASetRMtxTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], JGeometry::TVec3* param_2) { - nofralloc -#include "asm/JSystem/JParticle/JPAMath/func_802807E0.s" + JGeometry::TVec3 dummy; + JPASetRMtxSTVecfromMtx(param_0, param_1, &dummy, param_2); } -#pragma pop /* 80280808-80280984 27B148 017C+00 1/1 1/1 53/53 .text * JPASetRMtxSTVecfromMtx__FPA4_CfPA4_fPQ29JGeometry8TVec3PQ29JGeometry8TVec3 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPASetRMtxSTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], +void JPASetRMtxSTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], JGeometry::TVec3* param_2, JGeometry::TVec3* param_3) { - nofralloc -#include "asm/JSystem/JParticle/JPAMath/func_80280808.s" + JGeometry::TVec3 aTStack_54; + aTStack_54.set(param_0[0][0], param_0[1][0], param_0[2][0]); + param_2->x = aTStack_54.length(); + aTStack_54.set(param_0[0][1], param_0[1][1], param_0[2][1]); + param_2->y = aTStack_54.length(); + aTStack_54.set(param_0[0][2], param_0[1][2], param_0[2][2]); + param_2->z = aTStack_54.length(); + PSMTXIdentity(param_1); + if (param_2->x != 0.0f) { + f32 fVar5 = 1.0f / param_2->x; + param_1[0][0] = param_0[0][0] * fVar5; + param_1[1][0] = param_0[1][0] * fVar5; + param_1[2][0] = param_0[2][0] * fVar5; + } + if (param_2->y != 0.0f) { + f32 fVar5 = 1.0f / param_2->y; + param_1[0][1] = param_0[0][1] * fVar5; + param_1[1][1] = param_0[1][1] * fVar5; + param_1[2][1] = param_0[2][1] * fVar5; + } + if (param_2->z != 0.0f) { + f32 fVar5 = 1.0f / param_2->z; + param_1[0][2] = param_0[0][2] * fVar5; + param_1[1][2] = param_0[1][2] * fVar5; + param_1[2][2] = param_0[2][2] * fVar5; + } + param_3->set(param_0[0][3], param_0[1][3], param_0[2][3]); } -#pragma pop /* 80280984-80280A48 27B2C4 00C4+00 0/0 2/1 0/0 .text JPACalcKeyAnmValue__FfUsPCf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcKeyAnmValue(f32 param_0, u16 param_1, f32 const* param_2) { - nofralloc -#include "asm/JSystem/JParticle/JPAMath/JPACalcKeyAnmValue__FfUsPCf.s" +f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, f32 const* param_2) { + if (param_0 < param_2[0]) { + return param_2[1]; + } + int ind = param_1 - 1; + if (param_2[ind * 4] <= param_0) { + return param_2[ind * 4 + 1]; + } + int x = param_1; + while (x > 1) { + u32 uVar3 = x / 2; + if (param_0 >= param_2[uVar3 * 4]) { + param_2 += uVar3 * 4; + x -= uVar3; + } else { + x = uVar3; + } + } + return JMAHermiteInterpolation(param_0, param_2[0], param_2[1], + param_2[3], param_2[4], + param_2[5], param_2[6]); } -#pragma pop