JPAEmitter OK, work on d_particle (#1874)

* JPAEmitter OK + header reorganization

* libelf: silence repeated relocation warning

* Work on d_particle
This commit is contained in:
hatal175
2023-08-11 05:04:50 +03:00
committed by GitHub
parent 63fc74af79
commit 0a103f01ba
101 changed files with 1918 additions and 3699 deletions
@@ -1,20 +0,0 @@
lbl_8027E6A4:
/* 8027E6A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8027E6A8 7C 08 02 A6 */ mflr r0
/* 8027E6AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8027E6B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8027E6B4 7C 7F 1B 79 */ or. r31, r3, r3
/* 8027E6B8 41 82 00 1C */ beq lbl_8027E6D4
/* 8027E6BC 3C A0 80 3B */ lis r5, __vt__18JPAEmitterCallBack@ha /* 0x803A8578@ha */
/* 8027E6C0 38 05 85 78 */ addi r0, r5, __vt__18JPAEmitterCallBack@l /* 0x803A8578@l */
/* 8027E6C4 90 1F 00 00 */ stw r0, 0(r31)
/* 8027E6C8 7C 80 07 35 */ extsh. r0, r4
/* 8027E6CC 40 81 00 08 */ ble lbl_8027E6D4
/* 8027E6D0 48 05 06 6D */ bl __dl__FPv
lbl_8027E6D4:
/* 8027E6D4 7F E3 FB 78 */ mr r3, r31
/* 8027E6D8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8027E6DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8027E6E0 7C 08 03 A6 */ mtlr r0
/* 8027E6E4 38 21 00 10 */ addi r1, r1, 0x10
/* 8027E6E8 4E 80 00 20 */ blr
@@ -1,217 +0,0 @@
lbl_8027E6EC:
/* 8027E6EC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8027E6F0 7C 08 02 A6 */ mflr r0
/* 8027E6F4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8027E6F8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8027E6FC 93 C1 00 08 */ stw r30, 8(r1)
/* 8027E700 7C 7E 1B 78 */ mr r30, r3
/* 8027E704 7C BF 2B 78 */ mr r31, r5
/* 8027E708 90 83 00 E4 */ stw r4, 0xe4(r3)
/* 8027E70C 93 E3 00 E8 */ stw r31, 0xe8(r3)
/* 8027E710 80 63 00 E8 */ lwz r3, 0xe8(r3)
/* 8027E714 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E718 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E71C C0 43 00 18 */ lfs f2, 0x18(r3)
/* 8027E720 C0 23 00 14 */ lfs f1, 0x14(r3)
/* 8027E724 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 8027E728 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8027E72C D0 3E 00 04 */ stfs f1, 4(r30)
/* 8027E730 D0 5E 00 08 */ stfs f2, 8(r30)
/* 8027E734 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E738 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E73C 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E740 C0 43 00 24 */ lfs f2, 0x24(r3)
/* 8027E744 C0 23 00 20 */ lfs f1, 0x20(r3)
/* 8027E748 C0 03 00 1C */ lfs f0, 0x1c(r3)
/* 8027E74C D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8027E750 D0 3E 00 10 */ stfs f1, 0x10(r30)
/* 8027E754 D0 5E 00 14 */ stfs f2, 0x14(r30)
/* 8027E758 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E75C 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E760 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E764 C0 43 00 30 */ lfs f2, 0x30(r3)
/* 8027E768 C0 23 00 2C */ lfs f1, 0x2c(r3)
/* 8027E76C C0 03 00 28 */ lfs f0, 0x28(r3)
/* 8027E770 D0 1E 00 18 */ stfs f0, 0x18(r30)
/* 8027E774 D0 3E 00 1C */ stfs f1, 0x1c(r30)
/* 8027E778 D0 5E 00 20 */ stfs f2, 0x20(r30)
/* 8027E77C E0 1E 00 18 */ psq_l f0, 24(r30), 0, 0 /* qr0 */
/* 8027E780 10 00 00 32 */ ps_mul f0, f0, f0
/* 8027E784 C0 9E 00 20 */ lfs f4, 0x20(r30)
/* 8027E788 10 A4 01 3A */ ps_madd f5, f4, f4, f0
/* 8027E78C 10 A5 00 14 */ ps_sum0 f5, f5, f0, f0
/* 8027E790 C0 22 B9 70 */ lfs f1, lit_2440(r2)
/* 8027E794 3C 60 80 45 */ lis r3, __float_epsilon@ha /* 0x80450AEC@ha */
/* 8027E798 C0 03 0A EC */ lfs f0, __float_epsilon@l(r3) /* 0x80450AEC@l */
/* 8027E79C EC 01 00 32 */ fmuls f0, f1, f0
/* 8027E7A0 FC 05 00 40 */ fcmpo cr0, f5, f0
/* 8027E7A4 4C 40 13 82 */ cror 2, 0, 2
/* 8027E7A8 41 82 00 5C */ beq lbl_8027E804
/* 8027E7AC C0 02 B9 74 */ lfs f0, lit_2441(r2)
/* 8027E7B0 FC 05 00 40 */ fcmpo cr0, f5, f0
/* 8027E7B4 4C 40 13 82 */ cror 2, 0, 2
/* 8027E7B8 40 82 00 0C */ bne lbl_8027E7C4
/* 8027E7BC FC 60 28 90 */ fmr f3, f5
/* 8027E7C0 48 00 00 2C */ b lbl_8027E7EC
lbl_8027E7C4:
/* 8027E7C4 FC 80 28 34 */ frsqrte f4, f5
/* 8027E7C8 FC 80 20 18 */ frsp f4, f4
/* 8027E7CC C0 02 B9 78 */ lfs f0, lit_2442(r2)
/* 8027E7D0 EC 40 01 32 */ fmuls f2, f0, f4
/* 8027E7D4 C0 22 B9 7C */ lfs f1, lit_2443(r2)
/* 8027E7D8 EC 04 01 32 */ fmuls f0, f4, f4
/* 8027E7DC EC 05 00 32 */ fmuls f0, f5, f0
/* 8027E7E0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8027E7E4 EC 02 00 32 */ fmuls f0, f2, f0
/* 8027E7E8 FC 60 00 90 */ fmr f3, f0
lbl_8027E7EC:
/* 8027E7EC E0 1E 00 18 */ psq_l f0, 24(r30), 0, 0 /* qr0 */
/* 8027E7F0 E0 3E 80 20 */ psq_l f1, 32(r30), 1, 0 /* qr0 */
/* 8027E7F4 10 00 00 D8 */ ps_muls0 f0, f0, f3
/* 8027E7F8 F0 1E 00 18 */ psq_st f0, 24(r30), 0, 0 /* qr0 */
/* 8027E7FC 10 01 00 D8 */ ps_muls0 f0, f1, f3
/* 8027E800 F0 1E 80 20 */ psq_st f0, 32(r30), 1, 0 /* qr0 */
lbl_8027E804:
/* 8027E804 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E808 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E80C 80 A3 00 00 */ lwz r5, 0(r3)
/* 8027E810 A8 85 00 6C */ lha r4, 0x6c(r5)
/* 8027E814 A8 65 00 6A */ lha r3, 0x6a(r5)
/* 8027E818 A8 05 00 68 */ lha r0, 0x68(r5)
/* 8027E81C B0 1E 00 4C */ sth r0, 0x4c(r30)
/* 8027E820 B0 7E 00 4E */ sth r3, 0x4e(r30)
/* 8027E824 B0 9E 00 50 */ sth r4, 0x50(r30)
/* 8027E828 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E82C 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E830 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E834 A8 03 00 6E */ lha r0, 0x6e(r3)
/* 8027E838 90 1E 00 24 */ stw r0, 0x24(r30)
/* 8027E83C 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E840 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E844 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E848 A8 03 00 72 */ lha r0, 0x72(r3)
/* 8027E84C B0 1E 00 52 */ sth r0, 0x52(r30)
/* 8027E850 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E854 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E858 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E85C A0 03 00 74 */ lhz r0, 0x74(r3)
/* 8027E860 B0 1E 00 54 */ sth r0, 0x54(r30)
/* 8027E864 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E868 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E86C 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E870 C0 03 00 4C */ lfs f0, 0x4c(r3)
/* 8027E874 D0 1E 00 28 */ stfs f0, 0x28(r30)
/* 8027E878 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E87C 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E880 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E884 88 03 00 78 */ lbz r0, 0x78(r3)
/* 8027E888 98 1E 00 56 */ stb r0, 0x56(r30)
/* 8027E88C 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E890 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E894 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E898 C0 03 00 58 */ lfs f0, 0x58(r3)
/* 8027E89C D0 1E 00 2C */ stfs f0, 0x2c(r30)
/* 8027E8A0 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E8A4 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E8A8 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E8AC C0 03 00 5C */ lfs f0, 0x5c(r3)
/* 8027E8B0 D0 1E 00 30 */ stfs f0, 0x30(r30)
/* 8027E8B4 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E8B8 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E8BC 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E8C0 C0 03 00 34 */ lfs f0, 0x34(r3)
/* 8027E8C4 D0 1E 00 34 */ stfs f0, 0x34(r30)
/* 8027E8C8 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E8CC 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E8D0 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E8D4 C0 03 00 38 */ lfs f0, 0x38(r3)
/* 8027E8D8 D0 1E 00 38 */ stfs f0, 0x38(r30)
/* 8027E8DC 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E8E0 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E8E4 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E8E8 C0 03 00 40 */ lfs f0, 0x40(r3)
/* 8027E8EC D0 1E 00 3C */ stfs f0, 0x3c(r30)
/* 8027E8F0 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E8F4 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E8F8 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E8FC C0 03 00 44 */ lfs f0, 0x44(r3)
/* 8027E900 D0 1E 00 40 */ stfs f0, 0x40(r30)
/* 8027E904 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E908 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E90C 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E910 C0 03 00 3C */ lfs f0, 0x3c(r3)
/* 8027E914 D0 1E 00 44 */ stfs f0, 0x44(r30)
/* 8027E918 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8027E91C 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8027E920 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E924 C0 03 00 60 */ lfs f0, 0x60(r3)
/* 8027E928 D0 1E 00 48 */ stfs f0, 0x48(r30)
/* 8027E92C 80 7E 00 E4 */ lwz r3, 0xe4(r30)
/* 8027E930 80 A3 00 20 */ lwz r5, 0x20(r3)
/* 8027E934 80 85 00 0C */ lwz r4, 0xc(r5)
/* 8027E938 3C 60 00 19 */ lis r3, 0x0019 /* 0x0019660D@ha */
/* 8027E93C 38 03 66 0D */ addi r0, r3, 0x660D /* 0x0019660D@l */
/* 8027E940 7C 64 01 D6 */ mullw r3, r4, r0
/* 8027E944 3C 63 3C 6F */ addis r3, r3, 0x3c6f
/* 8027E948 38 03 F3 5F */ addi r0, r3, -3233
/* 8027E94C 90 05 00 0C */ stw r0, 0xc(r5)
/* 8027E950 90 1E 00 C4 */ stw r0, 0xc4(r30)
/* 8027E954 38 7E 00 68 */ addi r3, r30, 0x68
/* 8027E958 48 0C 7B 2D */ bl PSMTXIdentity
/* 8027E95C C0 22 B9 80 */ lfs f1, lit_2444(r2)
/* 8027E960 D0 3E 00 98 */ stfs f1, 0x98(r30)
/* 8027E964 D0 3E 00 9C */ stfs f1, 0x9c(r30)
/* 8027E968 D0 3E 00 A0 */ stfs f1, 0xa0(r30)
/* 8027E96C C0 02 B9 74 */ lfs f0, lit_2441(r2)
/* 8027E970 D0 1E 00 AC */ stfs f0, 0xac(r30)
/* 8027E974 D0 1E 00 A8 */ stfs f0, 0xa8(r30)
/* 8027E978 D0 1E 00 A4 */ stfs f0, 0xa4(r30)
/* 8027E97C D0 3E 00 B0 */ stfs f1, 0xb0(r30)
/* 8027E980 D0 3E 00 B4 */ stfs f1, 0xb4(r30)
/* 8027E984 38 00 00 FF */ li r0, 0xff
/* 8027E988 98 1E 00 BF */ stb r0, 0xbf(r30)
/* 8027E98C 98 1E 00 BE */ stb r0, 0xbe(r30)
/* 8027E990 98 1E 00 BD */ stb r0, 0xbd(r30)
/* 8027E994 98 1E 00 BC */ stb r0, 0xbc(r30)
/* 8027E998 98 1E 00 BB */ stb r0, 0xbb(r30)
/* 8027E99C 98 1E 00 BA */ stb r0, 0xba(r30)
/* 8027E9A0 98 1E 00 B9 */ stb r0, 0xb9(r30)
/* 8027E9A4 98 1E 00 B8 */ stb r0, 0xb8(r30)
/* 8027E9A8 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 8027E9AC 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E9B0 88 03 00 26 */ lbz r0, 0x26(r3)
/* 8027E9B4 98 1E 01 08 */ stb r0, 0x108(r30)
/* 8027E9B8 88 03 00 27 */ lbz r0, 0x27(r3)
/* 8027E9BC 98 1E 01 09 */ stb r0, 0x109(r30)
/* 8027E9C0 88 03 00 28 */ lbz r0, 0x28(r3)
/* 8027E9C4 98 1E 01 0A */ stb r0, 0x10a(r30)
/* 8027E9C8 88 03 00 29 */ lbz r0, 0x29(r3)
/* 8027E9CC 98 1E 01 0B */ stb r0, 0x10b(r30)
/* 8027E9D0 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 8027E9D4 80 63 00 00 */ lwz r3, 0(r3)
/* 8027E9D8 88 03 00 2A */ lbz r0, 0x2a(r3)
/* 8027E9DC 98 1E 01 0C */ stb r0, 0x10c(r30)
/* 8027E9E0 88 03 00 2B */ lbz r0, 0x2b(r3)
/* 8027E9E4 98 1E 01 0D */ stb r0, 0x10d(r30)
/* 8027E9E8 88 03 00 2C */ lbz r0, 0x2c(r3)
/* 8027E9EC 98 1E 01 0E */ stb r0, 0x10e(r30)
/* 8027E9F0 88 03 00 2D */ lbz r0, 0x2d(r3)
/* 8027E9F4 98 1E 01 0F */ stb r0, 0x10f(r30)
/* 8027E9F8 38 60 00 00 */ li r3, 0
/* 8027E9FC 90 7E 00 C0 */ stw r3, 0xc0(r30)
/* 8027EA00 D0 3E 00 FC */ stfs f1, 0xfc(r30)
/* 8027EA04 D0 1E 00 F8 */ stfs f0, 0xf8(r30)
/* 8027EA08 38 00 00 30 */ li r0, 0x30
/* 8027EA0C 90 1E 00 F4 */ stw r0, 0xf4(r30)
/* 8027EA10 38 00 00 01 */ li r0, 1
/* 8027EA14 98 1E 01 10 */ stb r0, 0x110(r30)
/* 8027EA18 90 7E 01 00 */ stw r3, 0x100(r30)
/* 8027EA1C B0 7E 01 04 */ sth r3, 0x104(r30)
/* 8027EA20 B0 7E 01 06 */ sth r3, 0x106(r30)
/* 8027EA24 98 7E 01 11 */ stb r3, 0x111(r30)
/* 8027EA28 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8027EA2C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8027EA30 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8027EA34 7C 08 03 A6 */ mtlr r0
/* 8027EA38 38 21 00 10 */ addi r1, r1, 0x10
/* 8027EA3C 4E 80 00 20 */ blr
@@ -1,45 +0,0 @@
lbl_8027EE14:
/* 8027EE14 80 03 00 F4 */ lwz r0, 0xf4(r3)
/* 8027EE18 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 8027EE1C 41 82 00 0C */ beq lbl_8027EE28
/* 8027EE20 38 60 00 01 */ li r3, 1
/* 8027EE24 4E 80 00 20 */ blr
lbl_8027EE28:
/* 8027EE28 80 83 00 24 */ lwz r4, 0x24(r3)
/* 8027EE2C 2C 04 00 00 */ cmpwi r4, 0
/* 8027EE30 40 82 00 0C */ bne lbl_8027EE3C
/* 8027EE34 38 60 00 00 */ li r3, 0
/* 8027EE38 4E 80 00 20 */ blr
lbl_8027EE3C:
/* 8027EE3C 40 80 00 28 */ bge lbl_8027EE64
/* 8027EE40 80 03 00 F4 */ lwz r0, 0xf4(r3)
/* 8027EE44 60 00 00 08 */ ori r0, r0, 8
/* 8027EE48 90 03 00 F4 */ stw r0, 0xf4(r3)
/* 8027EE4C 80 83 00 D0 */ lwz r4, 0xd0(r3)
/* 8027EE50 80 03 00 DC */ lwz r0, 0xdc(r3)
/* 8027EE54 7C 04 02 14 */ add r0, r4, r0
/* 8027EE58 7C 00 00 34 */ cntlzw r0, r0
/* 8027EE5C 54 03 D9 7E */ srwi r3, r0, 5
/* 8027EE60 4E 80 00 20 */ blr
lbl_8027EE64:
/* 8027EE64 80 03 01 00 */ lwz r0, 0x100(r3)
/* 8027EE68 7C 00 20 40 */ cmplw r0, r4
/* 8027EE6C 41 80 00 3C */ blt lbl_8027EEA8
/* 8027EE70 80 03 00 F4 */ lwz r0, 0xf4(r3)
/* 8027EE74 60 00 00 08 */ ori r0, r0, 8
/* 8027EE78 90 03 00 F4 */ stw r0, 0xf4(r3)
/* 8027EE7C 80 03 00 F4 */ lwz r0, 0xf4(r3)
/* 8027EE80 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 8027EE84 41 82 00 0C */ beq lbl_8027EE90
/* 8027EE88 38 60 00 00 */ li r3, 0
/* 8027EE8C 4E 80 00 20 */ blr
lbl_8027EE90:
/* 8027EE90 80 83 00 D0 */ lwz r4, 0xd0(r3)
/* 8027EE94 80 03 00 DC */ lwz r0, 0xdc(r3)
/* 8027EE98 7C 04 02 14 */ add r0, r4, r0
/* 8027EE9C 7C 00 00 34 */ cntlzw r0, r0
/* 8027EEA0 54 03 D9 7E */ srwi r3, r0, 5
/* 8027EEA4 4E 80 00 20 */ blr
lbl_8027EEA8:
/* 8027EEA8 38 60 00 00 */ li r3, 0
/* 8027EEAC 4E 80 00 20 */ blr
@@ -1,11 +0,0 @@
lbl_8004ADF4:
/* 8004ADF4 3C 80 80 3B */ lis r4, __vt__18JPAEmitterCallBack@ha /* 0x803A8578@ha */
/* 8004ADF8 38 04 85 78 */ addi r0, r4, __vt__18JPAEmitterCallBack@l /* 0x803A8578@l */
/* 8004ADFC 90 03 00 00 */ stw r0, 0(r3)
/* 8004AE00 3C 80 80 3B */ lis r4, __vt__19dPa_simpleEcallBack@ha /* 0x803A8448@ha */
/* 8004AE04 38 04 84 48 */ addi r0, r4, __vt__19dPa_simpleEcallBack@l /* 0x803A8448@l */
/* 8004AE08 90 03 00 00 */ stw r0, 0(r3)
/* 8004AE0C 38 00 00 00 */ li r0, 0
/* 8004AE10 90 03 00 04 */ stw r0, 4(r3)
/* 8004AE14 B0 03 00 0C */ sth r0, 0xc(r3)
/* 8004AE18 4E 80 00 20 */ blr
@@ -1,28 +0,0 @@
lbl_8004FB90:
/* 8004FB90 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004FB94 7C 08 02 A6 */ mflr r0
/* 8004FB98 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004FB9C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004FBA0 93 C1 00 08 */ stw r30, 8(r1)
/* 8004FBA4 7C 7E 1B 78 */ mr r30, r3
/* 8004FBA8 3B FE 00 08 */ addi r31, r30, 8
/* 8004FBAC 7F E3 FB 78 */ mr r3, r31
/* 8004FBB0 3C 80 80 3A */ lis r4, j3dDefaultLightInfo@ha /* 0x803A1EC8@ha */
/* 8004FBB4 38 84 1E C8 */ addi r4, r4, j3dDefaultLightInfo@l /* 0x803A1EC8@l */
/* 8004FBB8 48 2D 5B 0D */ bl __as__12J3DLightInfoFRC12J3DLightInfo
/* 8004FBBC 38 7F 00 74 */ addi r3, r31, 0x74
/* 8004FBC0 3C 80 80 02 */ lis r4, __ct__11J3DLightObjFv@ha /* 0x80018C0C@ha */
/* 8004FBC4 38 84 8C 0C */ addi r4, r4, __ct__11J3DLightObjFv@l /* 0x80018C0C@l */
/* 8004FBC8 38 A0 00 00 */ li r5, 0
/* 8004FBCC 38 C0 00 74 */ li r6, 0x74
/* 8004FBD0 38 E0 00 06 */ li r7, 6
/* 8004FBD4 48 31 21 8D */ bl __construct_array
/* 8004FBD8 38 00 00 00 */ li r0, 0
/* 8004FBDC 90 1E 00 00 */ stw r0, 0(r30)
/* 8004FBE0 7F C3 F3 78 */ mr r3, r30
/* 8004FBE4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004FBE8 83 C1 00 08 */ lwz r30, 8(r1)
/* 8004FBEC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004FBF0 7C 08 03 A6 */ mtlr r0
/* 8004FBF4 38 21 00 10 */ addi r1, r1, 0x10
/* 8004FBF8 4E 80 00 20 */ blr
@@ -1,4 +0,0 @@
lbl_8004FBFC:
/* 8004FBFC 38 00 00 00 */ li r0, 0
/* 8004FC00 90 03 00 00 */ stw r0, 0(r3)
/* 8004FC04 4E 80 00 20 */ blr
@@ -1,17 +0,0 @@
lbl_8004B024:
/* 8004B024 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004B028 7C 08 02 A6 */ mflr r0
/* 8004B02C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004B030 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004B034 7C 7F 1B 79 */ or. r31, r3, r3
/* 8004B038 41 82 00 10 */ beq lbl_8004B048
/* 8004B03C 7C 80 07 35 */ extsh. r0, r4
/* 8004B040 40 81 00 08 */ ble lbl_8004B048
/* 8004B044 48 28 3C F9 */ bl __dl__FPv
lbl_8004B048:
/* 8004B048 7F E3 FB 78 */ mr r3, r31
/* 8004B04C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004B050 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004B054 7C 08 03 A6 */ mtlr r0
/* 8004B058 38 21 00 10 */ addi r1, r1, 0x10
/* 8004B05C 4E 80 00 20 */ blr
@@ -1,17 +0,0 @@
lbl_8004AB88:
/* 8004AB88 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004AB8C 7C 08 02 A6 */ mflr r0
/* 8004AB90 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004AB94 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004AB98 7C 7F 1B 79 */ or. r31, r3, r3
/* 8004AB9C 41 82 00 10 */ beq lbl_8004ABAC
/* 8004ABA0 7C 80 07 35 */ extsh. r0, r4
/* 8004ABA4 40 81 00 08 */ ble lbl_8004ABAC
/* 8004ABA8 48 28 41 95 */ bl __dl__FPv
lbl_8004ABAC:
/* 8004ABAC 7F E3 FB 78 */ mr r3, r31
/* 8004ABB0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004ABB4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004ABB8 7C 08 03 A6 */ mtlr r0
/* 8004ABBC 38 21 00 10 */ addi r1, r1, 0x10
/* 8004ABC0 4E 80 00 20 */ blr
@@ -1,14 +0,0 @@
lbl_8004AD28:
/* 8004AD28 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004AD2C 7C 08 02 A6 */ mflr r0
/* 8004AD30 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004AD34 48 00 00 25 */ bl getModel__18dPa_modelEcallBackFP14JPABaseEmitter
/* 8004AD38 28 03 00 00 */ cmplwi r3, 0
/* 8004AD3C 41 82 00 08 */ beq lbl_8004AD44
/* 8004AD40 4B FF FB 4D */ bl cleanup__Q218dPa_modelEcallBack7model_cFv
lbl_8004AD44:
/* 8004AD44 4B FF E6 DD */ bl dPa_cleanupGX__Fv
/* 8004AD48 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004AD4C 7C 08 03 A6 */ mtlr r0
/* 8004AD50 38 21 00 10 */ addi r1, r1, 0x10
/* 8004AD54 4E 80 00 20 */ blr
@@ -1,12 +0,0 @@
lbl_80050284:
/* 80050284 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80050288 7C 08 02 A6 */ mflr r0
/* 8005028C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80050290 81 83 00 00 */ lwz r12, 0(r3)
/* 80050294 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 80050298 7D 89 03 A6 */ mtctr r12
/* 8005029C 4E 80 04 21 */ bctrl
/* 800502A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800502A4 7C 08 03 A6 */ mtlr r0
/* 800502A8 38 21 00 10 */ addi r1, r1, 0x10
/* 800502AC 4E 80 00 20 */ blr
@@ -1,23 +0,0 @@
lbl_8004A88C:
/* 8004A88C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A890 7C 08 02 A6 */ mflr r0
/* 8004A894 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A898 80 83 00 04 */ lwz r4, 4(r3)
/* 8004A89C 28 04 00 00 */ cmplwi r4, 0
/* 8004A8A0 41 82 00 2C */ beq lbl_8004A8CC
/* 8004A8A4 88 03 03 92 */ lbz r0, 0x392(r3)
/* 8004A8A8 28 00 00 00 */ cmplwi r0, 0
/* 8004A8AC 40 82 00 14 */ bne lbl_8004A8C0
/* 8004A8B0 80 63 00 00 */ lwz r3, 0(r3)
/* 8004A8B4 38 63 00 58 */ addi r3, r3, 0x58
/* 8004A8B8 48 2E 4E 41 */ bl removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern
/* 8004A8BC 48 00 00 10 */ b lbl_8004A8CC
lbl_8004A8C0:
/* 8004A8C0 80 63 00 00 */ lwz r3, 0(r3)
/* 8004A8C4 38 63 00 58 */ addi r3, r3, 0x58
/* 8004A8C8 48 2E 4F B9 */ bl removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey
lbl_8004A8CC:
/* 8004A8CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A8D0 7C 08 03 A6 */ mtlr r0
/* 8004A8D4 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A8D8 4E 80 00 20 */ blr
@@ -1,59 +0,0 @@
lbl_8004B5AC:
/* 8004B5AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004B5B0 7C 08 02 A6 */ mflr r0
/* 8004B5B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004B5B8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004B5BC 93 C1 00 08 */ stw r30, 8(r1)
/* 8004B5C0 7C 7F 1B 78 */ mr r31, r3
/* 8004B5C4 80 63 00 08 */ lwz r3, 8(r3)
/* 8004B5C8 83 C3 00 EC */ lwz r30, 0xec(r3)
/* 8004B5CC 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8004B5D0 28 03 00 00 */ cmplwi r3, 0
/* 8004B5D4 41 82 00 14 */ beq lbl_8004B5E8
/* 8004B5D8 81 83 00 00 */ lwz r12, 0(r3)
/* 8004B5DC 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 8004B5E0 7D 89 03 A6 */ mtctr r12
/* 8004B5E4 4E 80 04 21 */ bctrl
lbl_8004B5E8:
/* 8004B5E8 38 0D 89 34 */ la r0, m_b_Light8EcallBack__13dPa_control_c(r13) /* 80450EB4-_SDA_BASE_ */
/* 8004B5EC 7C 1E 00 40 */ cmplw r30, r0
/* 8004B5F0 41 82 00 50 */ beq lbl_8004B640
/* 8004B5F4 38 0D 89 3C */ la r0, m_d_Light8EcallBack__13dPa_control_c(r13) /* 80450EBC-_SDA_BASE_ */
/* 8004B5F8 7C 1E 00 40 */ cmplw r30, r0
/* 8004B5FC 41 82 00 44 */ beq lbl_8004B640
/* 8004B600 38 0D 89 2C */ la r0, mLight8EcallBack__13dPa_control_c(r13) /* 80450EAC-_SDA_BASE_ */
/* 8004B604 7C 1E 00 40 */ cmplw r30, r0
/* 8004B608 41 82 00 38 */ beq lbl_8004B640
/* 8004B60C 38 00 00 00 */ li r0, 0
/* 8004B610 80 7F 00 08 */ lwz r3, 8(r31)
/* 8004B614 90 03 00 EC */ stw r0, 0xec(r3)
/* 8004B618 80 7F 00 08 */ lwz r3, 8(r31)
/* 8004B61C 80 83 00 F0 */ lwz r4, 0xf0(r3)
/* 8004B620 38 0D 87 24 */ la r0, JPTracePCB4(r13) /* 80450CA4-_SDA_BASE_ */
/* 8004B624 7C 04 00 40 */ cmplw r4, r0
/* 8004B628 41 82 00 10 */ beq lbl_8004B638
/* 8004B62C 38 0D 89 48 */ la r0, mParticleTracePCB__13dPa_control_c(r13) /* 80450EC8-_SDA_BASE_ */
/* 8004B630 7C 04 00 40 */ cmplw r4, r0
/* 8004B634 40 82 00 0C */ bne lbl_8004B640
lbl_8004B638:
/* 8004B638 38 00 00 00 */ li r0, 0
/* 8004B63C 90 03 00 F0 */ stw r0, 0xf0(r3)
lbl_8004B640:
/* 8004B640 80 7F 00 08 */ lwz r3, 8(r31)
/* 8004B644 80 03 00 F4 */ lwz r0, 0xf4(r3)
/* 8004B648 60 00 00 01 */ ori r0, r0, 1
/* 8004B64C 90 03 00 F4 */ stw r0, 0xf4(r3)
/* 8004B650 38 00 00 01 */ li r0, 1
/* 8004B654 90 03 00 24 */ stw r0, 0x24(r3)
/* 8004B658 80 7F 00 08 */ lwz r3, 8(r31)
/* 8004B65C 80 03 00 F4 */ lwz r0, 0xf4(r3)
/* 8004B660 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18
/* 8004B664 90 03 00 F4 */ stw r0, 0xf4(r3)
/* 8004B668 38 00 00 00 */ li r0, 0
/* 8004B66C 90 1F 00 00 */ stw r0, 0(r31)
/* 8004B670 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004B674 83 C1 00 08 */ lwz r30, 8(r1)
/* 8004B678 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004B67C 7C 08 03 A6 */ mtlr r0
/* 8004B680 38 21 00 10 */ addi r1, r1, 0x10
/* 8004B684 4E 80 00 20 */ blr
@@ -1,95 +0,0 @@
lbl_8004BB78:
/* 8004BB78 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004BB7C 7C 08 02 A6 */ mflr r0
/* 8004BB80 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004BB84 39 61 00 30 */ addi r11, r1, 0x30
/* 8004BB88 48 31 66 4D */ bl _savegpr_27
/* 8004BB8C 7C 7F 1B 78 */ mr r31, r3
/* 8004BB90 7C 9B 23 78 */ mr r27, r4
/* 8004BB94 38 60 00 00 */ li r3, 0
/* 8004BB98 38 80 00 00 */ li r4, 0
/* 8004BB9C 4B FC 33 85 */ bl mDoExt_createSolidHeapFromSystem__FUlUl
/* 8004BBA0 90 7F 00 00 */ stw r3, 0(r31)
/* 8004BBA4 38 60 00 14 */ li r3, 0x14
/* 8004BBA8 80 9F 00 00 */ lwz r4, 0(r31)
/* 8004BBAC 38 A0 00 00 */ li r5, 0
/* 8004BBB0 48 28 30 E9 */ bl __nw__FUlP7JKRHeapi
/* 8004BBB4 7C 60 1B 79 */ or. r0, r3, r3
/* 8004BBB8 41 82 00 14 */ beq lbl_8004BBCC
/* 8004BBBC 7F 64 DB 78 */ mr r4, r27
/* 8004BBC0 80 BF 00 00 */ lwz r5, 0(r31)
/* 8004BBC4 48 22 82 4D */ bl __ct__18JPAResourceManagerFPCvP7JKRHeap
/* 8004BBC8 7C 60 1B 78 */ mr r0, r3
lbl_8004BBCC:
/* 8004BBCC 90 1F 00 04 */ stw r0, 4(r31)
/* 8004BBD0 80 7F 00 04 */ lwz r3, 4(r31)
/* 8004BBD4 80 8D 86 4C */ lwz r4, mFrameBufferTimg__13mDoGph_gInf_c(r13)
/* 8004BBD8 3C A0 80 38 */ lis r5, d_particle_d_particle__stringBase0@ha /* 0x8037A12C@ha */
/* 8004BBDC 38 A5 A1 2C */ addi r5, r5, d_particle_d_particle__stringBase0@l /* 0x8037A12C@l */
/* 8004BBE0 48 22 83 0D */ bl swapTexture__18JPAResourceManagerFPC7ResTIMGPCc
/* 8004BBE4 38 60 00 30 */ li r3, 0x30
/* 8004BBE8 80 9F 00 00 */ lwz r4, 0(r31)
/* 8004BBEC 38 A0 00 00 */ li r5, 0
/* 8004BBF0 48 28 30 A9 */ bl __nw__FUlP7JKRHeapi
/* 8004BBF4 7C 60 1B 79 */ or. r0, r3, r3
/* 8004BBF8 41 82 00 20 */ beq lbl_8004BC18
/* 8004BBFC 38 80 0B B8 */ li r4, 0xbb8
/* 8004BC00 38 A0 00 FA */ li r5, 0xfa
/* 8004BC04 80 DF 00 00 */ lwz r6, 0(r31)
/* 8004BC08 38 E0 00 13 */ li r7, 0x13
/* 8004BC0C 39 00 00 02 */ li r8, 2
/* 8004BC10 48 23 20 91 */ bl __ct__17JPAEmitterManagerFUlUlP7JKRHeapUcUc
/* 8004BC14 7C 60 1B 78 */ mr r0, r3
lbl_8004BC18:
/* 8004BC18 90 0D 89 20 */ stw r0, mEmitterMng__13dPa_control_c(r13)
/* 8004BC1C 7C 03 03 78 */ mr r3, r0
/* 8004BC20 80 9F 00 04 */ lwz r4, 4(r31)
/* 8004BC24 38 A0 00 00 */ li r5, 0
/* 8004BC28 48 23 27 1D */ bl entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc
/* 8004BC2C 80 7F 00 00 */ lwz r3, 0(r31)
/* 8004BC30 4B FC 35 9D */ bl mDoExt_setCurrentHeap__FP7JKRHeap
/* 8004BC34 7C 7D 1B 78 */ mr r29, r3
/* 8004BC38 3B 80 00 00 */ li r28, 0
/* 8004BC3C 3C 60 80 3B */ lis r3, j_o_id__8dPa_name@ha /* 0x803A85D0@ha */
/* 8004BC40 3B C3 85 D0 */ addi r30, r3, j_o_id__8dPa_name@l /* 0x803A85D0@l */
/* 8004BC44 48 00 00 5C */ b lbl_8004BCA0
lbl_8004BC48:
/* 8004BC48 57 80 0B FC */ rlwinm r0, r28, 1, 0xf, 0x1e
/* 8004BC4C 7F 7E 02 2E */ lhzx r27, r30, r0
/* 8004BC50 80 7F 00 04 */ lwz r3, 4(r31)
/* 8004BC54 7F 64 DB 78 */ mr r4, r27
/* 8004BC58 48 22 82 51 */ bl checkUserIndexDuplication__18JPAResourceManagerCFUs
/* 8004BC5C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004BC60 41 82 00 3C */ beq lbl_8004BC9C
/* 8004BC64 80 7F 00 04 */ lwz r3, 4(r31)
/* 8004BC68 7F 64 DB 78 */ mr r4, r27
/* 8004BC6C 48 22 83 61 */ bl getResUserWork__18JPAResourceManagerCFUs
/* 8004BC70 90 61 00 0C */ stw r3, 0xc(r1)
/* 8004BC74 38 00 00 00 */ li r0, 0
/* 8004BC78 98 01 00 08 */ stb r0, 8(r1)
/* 8004BC7C 38 61 00 0C */ addi r3, r1, 0xc
/* 8004BC80 38 81 00 08 */ addi r4, r1, 8
/* 8004BC84 4B FF DB 65 */ bl dPa_group_id_change__FPUlPUc
/* 8004BC88 7F E3 FB 78 */ mr r3, r31
/* 8004BC8C 7F 64 DB 78 */ mr r4, r27
/* 8004BC90 88 A1 00 08 */ lbz r5, 8(r1)
/* 8004BC94 38 C1 00 0C */ addi r6, r1, 0xc
/* 8004BC98 48 00 14 91 */ bl newSimple__13dPa_control_cFUsUcPUl
lbl_8004BC9C:
/* 8004BC9C 3B 9C 00 01 */ addi r28, r28, 1
lbl_8004BCA0:
/* 8004BCA0 57 80 04 3E */ clrlwi r0, r28, 0x10
/* 8004BCA4 28 00 00 05 */ cmplwi r0, 5
/* 8004BCA8 41 80 FF A0 */ blt lbl_8004BC48
/* 8004BCAC 88 1F 00 19 */ lbz r0, 0x19(r31)
/* 8004BCB0 98 1F 00 1A */ stb r0, 0x1a(r31)
/* 8004BCB4 7F A3 EB 78 */ mr r3, r29
/* 8004BCB8 4B FC 35 15 */ bl mDoExt_setCurrentHeap__FP7JKRHeap
/* 8004BCBC 80 7F 00 00 */ lwz r3, 0(r31)
/* 8004BCC0 4B FC 33 CD */ bl mDoExt_adjustSolidHeap__FP12JKRSolidHeap
/* 8004BCC4 39 61 00 30 */ addi r11, r1, 0x30
/* 8004BCC8 48 31 65 59 */ bl _restgpr_27
/* 8004BCCC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004BCD0 7C 08 03 A6 */ mtlr r0
/* 8004BCD4 38 21 00 30 */ addi r1, r1, 0x30
/* 8004BCD8 4E 80 00 20 */ blr
@@ -1,77 +0,0 @@
lbl_8004BCDC:
/* 8004BCDC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004BCE0 7C 08 02 A6 */ mflr r0
/* 8004BCE4 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004BCE8 39 61 00 30 */ addi r11, r1, 0x30
/* 8004BCEC 48 31 64 E9 */ bl _savegpr_27
/* 8004BCF0 7C 7B 1B 78 */ mr r27, r3
/* 8004BCF4 38 60 00 00 */ li r3, 0
/* 8004BCF8 38 80 00 00 */ li r4, 0
/* 8004BCFC 4B FC 31 DD */ bl mDoExt_createSolidHeapFromGame__FUlUl
/* 8004BD00 90 7B 00 0C */ stw r3, 0xc(r27)
/* 8004BD04 38 60 00 14 */ li r3, 0x14
/* 8004BD08 80 9B 00 0C */ lwz r4, 0xc(r27)
/* 8004BD0C 38 A0 00 00 */ li r5, 0
/* 8004BD10 48 28 2F 89 */ bl __nw__FUlP7JKRHeapi
/* 8004BD14 7C 60 1B 79 */ or. r0, r3, r3
/* 8004BD18 41 82 00 14 */ beq lbl_8004BD2C
/* 8004BD1C 80 9B 00 10 */ lwz r4, 0x10(r27)
/* 8004BD20 80 BB 00 0C */ lwz r5, 0xc(r27)
/* 8004BD24 48 22 80 ED */ bl __ct__18JPAResourceManagerFPCvP7JKRHeap
/* 8004BD28 7C 60 1B 78 */ mr r0, r3
lbl_8004BD2C:
/* 8004BD2C 90 1B 00 14 */ stw r0, 0x14(r27)
/* 8004BD30 80 7B 00 14 */ lwz r3, 0x14(r27)
/* 8004BD34 80 8D 86 4C */ lwz r4, mFrameBufferTimg__13mDoGph_gInf_c(r13)
/* 8004BD38 3C A0 80 38 */ lis r5, d_particle_d_particle__stringBase0@ha /* 0x8037A12C@ha */
/* 8004BD3C 38 A5 A1 2C */ addi r5, r5, d_particle_d_particle__stringBase0@l /* 0x8037A12C@l */
/* 8004BD40 48 22 81 AD */ bl swapTexture__18JPAResourceManagerFPC7ResTIMGPCc
/* 8004BD44 80 6D 89 20 */ lwz r3, mEmitterMng__13dPa_control_c(r13)
/* 8004BD48 80 9B 00 14 */ lwz r4, 0x14(r27)
/* 8004BD4C 38 A0 00 01 */ li r5, 1
/* 8004BD50 48 23 25 F5 */ bl entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc
/* 8004BD54 80 7B 00 0C */ lwz r3, 0xc(r27)
/* 8004BD58 4B FC 34 75 */ bl mDoExt_setCurrentHeap__FP7JKRHeap
/* 8004BD5C 7C 7E 1B 78 */ mr r30, r3
/* 8004BD60 3B A0 00 00 */ li r29, 0
/* 8004BD64 3C 60 80 3B */ lis r3, s_o_id__8dPa_name@ha /* 0x803A85DC@ha */
/* 8004BD68 3B E3 85 DC */ addi r31, r3, s_o_id__8dPa_name@l /* 0x803A85DC@l */
/* 8004BD6C 48 00 00 5C */ b lbl_8004BDC8
lbl_8004BD70:
/* 8004BD70 57 A0 0B FC */ rlwinm r0, r29, 1, 0xf, 0x1e
/* 8004BD74 7F 9F 02 2E */ lhzx r28, r31, r0
/* 8004BD78 80 7B 00 14 */ lwz r3, 0x14(r27)
/* 8004BD7C 7F 84 E3 78 */ mr r4, r28
/* 8004BD80 48 22 81 29 */ bl checkUserIndexDuplication__18JPAResourceManagerCFUs
/* 8004BD84 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004BD88 41 82 00 3C */ beq lbl_8004BDC4
/* 8004BD8C 80 7B 00 14 */ lwz r3, 0x14(r27)
/* 8004BD90 7F 84 E3 78 */ mr r4, r28
/* 8004BD94 48 22 82 39 */ bl getResUserWork__18JPAResourceManagerCFUs
/* 8004BD98 90 61 00 0C */ stw r3, 0xc(r1)
/* 8004BD9C 38 00 00 00 */ li r0, 0
/* 8004BDA0 98 01 00 08 */ stb r0, 8(r1)
/* 8004BDA4 38 61 00 0C */ addi r3, r1, 0xc
/* 8004BDA8 38 81 00 08 */ addi r4, r1, 8
/* 8004BDAC 4B FF DA 3D */ bl dPa_group_id_change__FPUlPUc
/* 8004BDB0 7F 63 DB 78 */ mr r3, r27
/* 8004BDB4 7F 84 E3 78 */ mr r4, r28
/* 8004BDB8 88 A1 00 08 */ lbz r5, 8(r1)
/* 8004BDBC 38 C1 00 0C */ addi r6, r1, 0xc
/* 8004BDC0 48 00 13 69 */ bl newSimple__13dPa_control_cFUsUcPUl
lbl_8004BDC4:
/* 8004BDC4 3B BD 00 01 */ addi r29, r29, 1
lbl_8004BDC8:
/* 8004BDC8 57 A0 04 3E */ clrlwi r0, r29, 0x10
/* 8004BDCC 28 00 00 0E */ cmplwi r0, 0xe
/* 8004BDD0 41 80 FF A0 */ blt lbl_8004BD70
/* 8004BDD4 7F C3 F3 78 */ mr r3, r30
/* 8004BDD8 4B FC 33 F5 */ bl mDoExt_setCurrentHeap__FP7JKRHeap
/* 8004BDDC 80 7B 00 0C */ lwz r3, 0xc(r27)
/* 8004BDE0 4B FC 32 AD */ bl mDoExt_adjustSolidHeap__FP12JKRSolidHeap
/* 8004BDE4 39 61 00 30 */ addi r11, r1, 0x30
/* 8004BDE8 48 31 64 39 */ bl _restgpr_27
/* 8004BDEC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004BDF0 7C 08 03 A6 */ mtlr r0
/* 8004BDF4 38 21 00 30 */ addi r1, r1, 0x30
/* 8004BDF8 4E 80 00 20 */ blr
@@ -1,40 +0,0 @@
lbl_8004BEB0:
/* 8004BEB0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004BEB4 7C 08 02 A6 */ mflr r0
/* 8004BEB8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004BEBC 39 61 00 20 */ addi r11, r1, 0x20
/* 8004BEC0 48 31 63 19 */ bl _savegpr_28
/* 8004BEC4 7C 7C 1B 78 */ mr r28, r3
/* 8004BEC8 7C 9D 23 78 */ mr r29, r4
/* 8004BECC 3B C0 00 00 */ li r30, 0
/* 8004BED0 3B E0 00 00 */ li r31, 0
/* 8004BED4 48 00 00 1C */ b lbl_8004BEF0
lbl_8004BED8:
/* 8004BED8 38 7F 00 1C */ addi r3, r31, 0x1c
/* 8004BEDC 7C 7C 1A 14 */ add r3, r28, r3
/* 8004BEE0 80 8D 89 20 */ lwz r4, mEmitterMng__13dPa_control_c(r13)
/* 8004BEE4 4B FF F1 81 */ bl createEmitter__19dPa_simpleEcallBackFP17JPAEmitterManager
/* 8004BEE8 3B DE 00 01 */ addi r30, r30, 1
/* 8004BEEC 3B FF 00 14 */ addi r31, r31, 0x14
lbl_8004BEF0:
/* 8004BEF0 88 1C 00 1A */ lbz r0, 0x1a(r28)
/* 8004BEF4 7C 1E 00 00 */ cmpw r30, r0
/* 8004BEF8 41 80 FF E0 */ blt lbl_8004BED8
/* 8004BEFC 28 1D 00 00 */ cmplwi r29, 0
/* 8004BF00 41 82 00 08 */ beq lbl_8004BF08
/* 8004BF04 93 BC 00 10 */ stw r29, 0x10(r28)
lbl_8004BF08:
/* 8004BF08 80 1C 00 10 */ lwz r0, 0x10(r28)
/* 8004BF0C 28 00 00 00 */ cmplwi r0, 0
/* 8004BF10 41 82 00 0C */ beq lbl_8004BF1C
/* 8004BF14 7F 83 E3 78 */ mr r3, r28
/* 8004BF18 4B FF FD C5 */ bl createRoomScene__13dPa_control_cFv
lbl_8004BF1C:
/* 8004BF1C 38 60 00 80 */ li r3, 0x80
/* 8004BF20 4B FF EB FD */ bl create__18dPa_modelEcallBackFUc
/* 8004BF24 39 61 00 20 */ addi r11, r1, 0x20
/* 8004BF28 48 31 62 FD */ bl _restgpr_28
/* 8004BF2C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004BF30 7C 08 03 A6 */ mtlr r0
/* 8004BF34 38 21 00 20 */ addi r1, r1, 0x20
/* 8004BF38 4E 80 00 20 */ blr
@@ -1,28 +0,0 @@
lbl_8004AB1C:
/* 8004AB1C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004AB20 7C 08 02 A6 */ mflr r0
/* 8004AB24 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004AB28 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004AB2C 93 C1 00 08 */ stw r30, 8(r1)
/* 8004AB30 7C 7E 1B 78 */ mr r30, r3
/* 8004AB34 54 7F 06 3E */ clrlwi r31, r3, 0x18
/* 8004AB38 1C 7F 03 94 */ mulli r3, r31, 0x394
/* 8004AB3C 38 63 00 10 */ addi r3, r3, 0x10
/* 8004AB40 48 28 41 85 */ bl __nwa__FUl
/* 8004AB44 3C 80 80 05 */ lis r4, __ct__Q218dPa_modelEcallBack7model_cFv@ha /* 0x8004FB90@ha */
/* 8004AB48 38 84 FB 90 */ addi r4, r4, __ct__Q218dPa_modelEcallBack7model_cFv@l /* 0x8004FB90@l */
/* 8004AB4C 3C A0 80 05 */ lis r5, __dt__Q218dPa_modelEcallBack7model_cFv@ha /* 0x8004AB88@ha */
/* 8004AB50 38 A5 AB 88 */ addi r5, r5, __dt__Q218dPa_modelEcallBack7model_cFv@l /* 0x8004AB88@l */
/* 8004AB54 38 C0 03 94 */ li r6, 0x394
/* 8004AB58 7F E7 FB 78 */ mr r7, r31
/* 8004AB5C 48 31 73 B9 */ bl __construct_new_array
/* 8004AB60 90 6D 89 18 */ stw r3, mModel__18dPa_modelEcallBack(r13)
/* 8004AB64 9B CD 89 1C */ stb r30, struct_80450E9C+0x0(r13)
/* 8004AB68 38 00 00 00 */ li r0, 0
/* 8004AB6C 98 0D 89 1D */ stb r0, struct_80450E9C+0x1(r13)
/* 8004AB70 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004AB74 83 C1 00 08 */ lwz r30, 8(r1)
/* 8004AB78 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004AB7C 7C 08 03 A6 */ mtlr r0
/* 8004AB80 38 21 00 10 */ addi r1, r1, 0x10
/* 8004AB84 4E 80 00 20 */ blr
@@ -1,36 +0,0 @@
lbl_8004AF98:
/* 8004AF98 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004AF9C 7C 08 02 A6 */ mflr r0
/* 8004AFA0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004AFA4 39 61 00 20 */ addi r11, r1, 0x20
/* 8004AFA8 48 31 72 35 */ bl _savegpr_29
/* 8004AFAC 7C 7D 1B 78 */ mr r29, r3
/* 8004AFB0 7C 9E 23 78 */ mr r30, r4
/* 8004AFB4 38 00 00 00 */ li r0, 0
/* 8004AFB8 90 03 00 04 */ stw r0, 4(r3)
/* 8004AFBC 98 C3 00 0A */ stb r6, 0xa(r3)
/* 8004AFC0 B0 A3 00 08 */ sth r5, 8(r3)
/* 8004AFC4 38 00 00 20 */ li r0, 0x20
/* 8004AFC8 B0 03 00 0E */ sth r0, 0xe(r3)
/* 8004AFCC A3 E3 00 0E */ lhz r31, 0xe(r3)
/* 8004AFD0 1C 7F 00 14 */ mulli r3, r31, 0x14
/* 8004AFD4 38 63 00 10 */ addi r3, r3, 0x10
/* 8004AFD8 48 28 3C ED */ bl __nwa__FUl
/* 8004AFDC 3C 80 80 05 */ lis r4, __ct__16dPa_simpleData_cFv@ha /* 0x8004B060@ha */
/* 8004AFE0 38 84 B0 60 */ addi r4, r4, __ct__16dPa_simpleData_cFv@l /* 0x8004B060@l */
/* 8004AFE4 3C A0 80 05 */ lis r5, __dt__16dPa_simpleData_cFv@ha /* 0x8004B024@ha */
/* 8004AFE8 38 A5 B0 24 */ addi r5, r5, __dt__16dPa_simpleData_cFv@l /* 0x8004B024@l */
/* 8004AFEC 38 C0 00 14 */ li r6, 0x14
/* 8004AFF0 7F E7 FB 78 */ mr r7, r31
/* 8004AFF4 48 31 6F 21 */ bl __construct_new_array
/* 8004AFF8 90 7D 00 10 */ stw r3, 0x10(r29)
/* 8004AFFC 7F A3 EB 78 */ mr r3, r29
/* 8004B000 7F C4 F3 78 */ mr r4, r30
/* 8004B004 48 00 00 61 */ bl createEmitter__19dPa_simpleEcallBackFP17JPAEmitterManager
/* 8004B008 80 7D 00 04 */ lwz r3, 4(r29)
/* 8004B00C 39 61 00 20 */ addi r11, r1, 0x20
/* 8004B010 48 31 72 19 */ bl _restgpr_29
/* 8004B014 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004B018 7C 08 03 A6 */ mtlr r0
/* 8004B01C 38 21 00 20 */ addi r1, r1, 0x20
/* 8004B020 4E 80 00 20 */ blr
@@ -1,100 +0,0 @@
lbl_800497E8:
/* 800497E8 88 04 00 00 */ lbz r0, 0(r4)
/* 800497EC 28 00 00 0F */ cmplwi r0, 0xf
/* 800497F0 4C 80 00 20 */ bgelr
/* 800497F4 80 A3 00 00 */ lwz r5, 0(r3)
/* 800497F8 54 A0 07 FF */ clrlwi. r0, r5, 0x1f
/* 800497FC 41 82 00 10 */ beq lbl_8004980C
/* 80049800 38 00 00 00 */ li r0, 0
/* 80049804 98 04 00 00 */ stb r0, 0(r4)
/* 80049808 48 00 00 64 */ b lbl_8004986C
lbl_8004980C:
/* 8004980C 54 A0 07 BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e
/* 80049810 41 82 00 10 */ beq lbl_80049820
/* 80049814 38 00 00 01 */ li r0, 1
/* 80049818 98 04 00 00 */ stb r0, 0(r4)
/* 8004981C 48 00 00 50 */ b lbl_8004986C
lbl_80049820:
/* 80049820 54 A0 07 7B */ rlwinm. r0, r5, 0, 0x1d, 0x1d
/* 80049824 41 82 00 10 */ beq lbl_80049834
/* 80049828 38 00 00 02 */ li r0, 2
/* 8004982C 98 04 00 00 */ stb r0, 0(r4)
/* 80049830 48 00 00 3C */ b lbl_8004986C
lbl_80049834:
/* 80049834 54 A0 07 39 */ rlwinm. r0, r5, 0, 0x1c, 0x1c
/* 80049838 41 82 00 10 */ beq lbl_80049848
/* 8004983C 38 00 00 03 */ li r0, 3
/* 80049840 98 04 00 00 */ stb r0, 0(r4)
/* 80049844 48 00 00 28 */ b lbl_8004986C
lbl_80049848:
/* 80049848 54 A0 04 63 */ rlwinm. r0, r5, 0, 0x11, 0x11
/* 8004984C 41 82 00 10 */ beq lbl_8004985C
/* 80049850 38 00 00 04 */ li r0, 4
/* 80049854 98 04 00 00 */ stb r0, 0(r4)
/* 80049858 48 00 00 14 */ b lbl_8004986C
lbl_8004985C:
/* 8004985C 54 A0 04 21 */ rlwinm. r0, r5, 0, 0x10, 0x10
/* 80049860 41 82 00 0C */ beq lbl_8004986C
/* 80049864 38 00 00 05 */ li r0, 5
/* 80049868 98 04 00 00 */ stb r0, 0(r4)
lbl_8004986C:
/* 8004986C 80 03 00 00 */ lwz r0, 0(r3)
/* 80049870 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80049874 41 82 00 80 */ beq lbl_800498F4
/* 80049878 88 04 00 00 */ lbz r0, 0(r4)
/* 8004987C 2C 00 00 03 */ cmpwi r0, 3
/* 80049880 41 82 00 54 */ beq lbl_800498D4
/* 80049884 40 80 00 1C */ bge lbl_800498A0
/* 80049888 2C 00 00 01 */ cmpwi r0, 1
/* 8004988C 41 82 00 30 */ beq lbl_800498BC
/* 80049890 40 80 00 38 */ bge lbl_800498C8
/* 80049894 2C 00 00 00 */ cmpwi r0, 0
/* 80049898 40 80 00 18 */ bge lbl_800498B0
/* 8004989C 48 00 00 58 */ b lbl_800498F4
lbl_800498A0:
/* 800498A0 2C 00 00 05 */ cmpwi r0, 5
/* 800498A4 41 82 00 48 */ beq lbl_800498EC
/* 800498A8 40 80 00 4C */ bge lbl_800498F4
/* 800498AC 48 00 00 34 */ b lbl_800498E0
lbl_800498B0:
/* 800498B0 38 00 00 08 */ li r0, 8
/* 800498B4 98 04 00 00 */ stb r0, 0(r4)
/* 800498B8 48 00 00 3C */ b lbl_800498F4
lbl_800498BC:
/* 800498BC 38 00 00 09 */ li r0, 9
/* 800498C0 98 04 00 00 */ stb r0, 0(r4)
/* 800498C4 48 00 00 30 */ b lbl_800498F4
lbl_800498C8:
/* 800498C8 38 00 00 0A */ li r0, 0xa
/* 800498CC 98 04 00 00 */ stb r0, 0(r4)
/* 800498D0 48 00 00 24 */ b lbl_800498F4
lbl_800498D4:
/* 800498D4 38 00 00 0B */ li r0, 0xb
/* 800498D8 98 04 00 00 */ stb r0, 0(r4)
/* 800498DC 48 00 00 18 */ b lbl_800498F4
lbl_800498E0:
/* 800498E0 38 00 00 06 */ li r0, 6
/* 800498E4 98 04 00 00 */ stb r0, 0(r4)
/* 800498E8 48 00 00 0C */ b lbl_800498F4
lbl_800498EC:
/* 800498EC 38 00 00 07 */ li r0, 7
/* 800498F0 98 04 00 00 */ stb r0, 0(r4)
lbl_800498F4:
/* 800498F4 80 63 00 00 */ lwz r3, 0(r3)
/* 800498F8 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18
/* 800498FC 41 82 00 10 */ beq lbl_8004990C
/* 80049900 38 00 00 0D */ li r0, 0xd
/* 80049904 98 04 00 00 */ stb r0, 0(r4)
/* 80049908 4E 80 00 20 */ blr
lbl_8004990C:
/* 8004990C 54 60 04 E7 */ rlwinm. r0, r3, 0, 0x13, 0x13
/* 80049910 41 82 00 10 */ beq lbl_80049920
/* 80049914 38 00 00 0C */ li r0, 0xc
/* 80049918 98 04 00 00 */ stb r0, 0(r4)
/* 8004991C 4E 80 00 20 */ blr
lbl_80049920:
/* 80049920 54 60 04 A5 */ rlwinm. r0, r3, 0, 0x12, 0x12
/* 80049924 4D 82 00 20 */ beqlr
/* 80049928 38 00 00 0E */ li r0, 0xe
/* 8004992C 98 04 00 00 */ stb r0, 0(r4)
/* 80049930 4E 80 00 20 */ blr
@@ -1,46 +0,0 @@
lbl_8004A3AC:
/* 8004A3AC 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8004A3B0 7C 08 02 A6 */ mflr r0
/* 8004A3B4 90 01 00 54 */ stw r0, 0x54(r1)
/* 8004A3B8 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8004A3BC 7C 7F 1B 78 */ mr r31, r3
/* 8004A3C0 C0 03 00 18 */ lfs f0, 0x18(r3)
/* 8004A3C4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8004A3C8 C0 03 00 1C */ lfs f0, 0x1c(r3)
/* 8004A3CC D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8004A3D0 C0 03 00 20 */ lfs f0, 0x20(r3)
/* 8004A3D4 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8004A3D8 38 61 00 30 */ addi r3, r1, 0x30
/* 8004A3DC 38 81 00 24 */ addi r4, r1, 0x24
/* 8004A3E0 38 A1 00 08 */ addi r5, r1, 8
/* 8004A3E4 48 01 0F 15 */ bl dKyw_get_AllWind_vec__FP4cXyzP4cXyzPf
/* 8004A3E8 C0 02 85 54 */ lfs f0, lit_4048(r2)
/* 8004A3EC D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8004A3F0 38 61 00 0C */ addi r3, r1, 0xc
/* 8004A3F4 38 81 00 24 */ addi r4, r1, 0x24
/* 8004A3F8 C0 22 85 58 */ lfs f1, lit_4049(r2)
/* 8004A3FC C0 01 00 08 */ lfs f0, 8(r1)
/* 8004A400 EC 21 00 32 */ fmuls f1, f1, f0
/* 8004A404 48 21 C7 81 */ bl __ml__4cXyzCFf
/* 8004A408 E0 21 00 0C */ psq_l f1, 12(r1), 0, 0 /* qr0 */
/* 8004A40C C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8004A410 F0 21 00 18 */ psq_st f1, 24(r1), 0, 0 /* qr0 */
/* 8004A414 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8004A418 E0 01 00 30 */ psq_l f0, 48(r1), 0, 0 /* qr0 */
/* 8004A41C 10 00 08 2A */ ps_add f0, f0, f1
/* 8004A420 F0 01 00 30 */ psq_st f0, 48(r1), 0, 0 /* qr0 */
/* 8004A424 E0 21 80 38 */ psq_l f1, 56(r1), 1, 0 /* qr0 */
/* 8004A428 E0 01 80 20 */ psq_l f0, 32(r1), 1, 0 /* qr0 */
/* 8004A42C 10 01 00 2A */ ps_add f0, f1, f0
/* 8004A430 F0 01 80 38 */ psq_st f0, 56(r1), 1, 0 /* qr0 */
/* 8004A434 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8004A438 D0 1F 00 18 */ stfs f0, 0x18(r31)
/* 8004A43C C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8004A440 D0 1F 00 1C */ stfs f0, 0x1c(r31)
/* 8004A444 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8004A448 D0 1F 00 20 */ stfs f0, 0x20(r31)
/* 8004A44C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8004A450 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8004A454 7C 08 03 A6 */ mtlr r0
/* 8004A458 38 21 00 50 */ addi r1, r1, 0x50
/* 8004A45C 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_80050014:
/* 80050014 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80050018 7C 08 02 A6 */ mflr r0
/* 8005001C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80050020 7C 83 23 78 */ mr r3, r4
/* 80050024 4B FF AD 05 */ bl cleanupModel__18dPa_modelEcallBackFP14JPABaseEmitter
/* 80050028 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005002C 7C 08 03 A6 */ mtlr r0
/* 80050030 38 21 00 10 */ addi r1, r1, 0x10
/* 80050034 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_800501E0:
/* 800501E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800501E4 7C 08 02 A6 */ mflr r0
/* 800501E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800501EC 4B FF 92 35 */ bl dPa_cleanupGX__Fv
/* 800501F0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800501F4 7C 08 03 A6 */ mtlr r0
/* 800501F8 38 21 00 10 */ addi r1, r1, 0x10
/* 800501FC 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_8005013C:
/* 8005013C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80050140 7C 08 02 A6 */ mflr r0
/* 80050144 90 01 00 14 */ stw r0, 0x14(r1)
/* 80050148 4B FF 92 D9 */ bl dPa_cleanupGX__Fv
/* 8005014C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80050150 7C 08 03 A6 */ mtlr r0
/* 80050154 38 21 00 10 */ addi r1, r1, 0x10
/* 80050158 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_80050098:
/* 80050098 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005009C 7C 08 02 A6 */ mflr r0
/* 800500A0 90 01 00 14 */ stw r0, 0x14(r1)
/* 800500A4 4B FF 93 7D */ bl dPa_cleanupGX__Fv
/* 800500A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800500AC 7C 08 03 A6 */ mtlr r0
/* 800500B0 38 21 00 10 */ addi r1, r1, 0x10
/* 800500B4 4E 80 00 20 */ blr
@@ -1,25 +0,0 @@
lbl_80049BC0:
/* 80049BC0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80049BC4 7C 08 02 A6 */ mflr r0
/* 80049BC8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80049BCC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80049BD0 7C 7F 1B 78 */ mr r31, r3
/* 80049BD4 38 60 00 00 */ li r3, 0
/* 80049BD8 48 31 60 6D */ bl GXSetColorUpdate
/* 80049BDC 88 9F 00 BB */ lbz r4, 0xbb(r31)
/* 80049BE0 38 60 00 06 */ li r3, 6
/* 80049BE4 38 A0 00 01 */ li r5, 1
/* 80049BE8 38 C0 00 06 */ li r6, 6
/* 80049BEC 7C 87 23 78 */ mr r7, r4
/* 80049BF0 48 31 5A 35 */ bl GXSetAlphaCompare
/* 80049BF4 38 60 00 01 */ li r3, 1
/* 80049BF8 38 80 00 03 */ li r4, 3
/* 80049BFC 38 A0 00 01 */ li r5, 1
/* 80049C00 48 31 60 9D */ bl GXSetZMode
/* 80049C04 38 60 00 00 */ li r3, 0
/* 80049C08 48 31 60 C9 */ bl GXSetZCompLoc
/* 80049C0C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80049C10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80049C14 7C 08 03 A6 */ mtlr r0
/* 80049C18 38 21 00 10 */ addi r1, r1, 0x10
/* 80049C1C 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_80049C20:
/* 80049C20 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80049C24 7C 08 02 A6 */ mflr r0
/* 80049C28 90 01 00 14 */ stw r0, 0x14(r1)
/* 80049C2C 38 60 00 00 */ li r3, 0
/* 80049C30 48 31 60 15 */ bl GXSetColorUpdate
/* 80049C34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80049C38 7C 08 03 A6 */ mtlr r0
/* 80049C3C 38 21 00 10 */ addi r1, r1, 0x10
/* 80049C40 4E 80 00 20 */ blr
@@ -1,17 +0,0 @@
lbl_8004ACEC:
/* 8004ACEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004ACF0 7C 08 02 A6 */ mflr r0
/* 8004ACF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004ACF8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004ACFC 7C 9F 23 78 */ mr r31, r4
/* 8004AD00 48 00 00 59 */ bl getModel__18dPa_modelEcallBackFP14JPABaseEmitter
/* 8004AD04 28 03 00 00 */ cmplwi r3, 0
/* 8004AD08 41 82 00 0C */ beq lbl_8004AD14
/* 8004AD0C 7F E4 FB 78 */ mr r4, r31
/* 8004AD10 4B FF FB CD */ bl draw__Q218dPa_modelEcallBack7model_cFPA4_f
lbl_8004AD14:
/* 8004AD14 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004AD18 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004AD1C 7C 08 03 A6 */ mtlr r0
/* 8004AD20 38 21 00 10 */ addi r1, r1, 0x10
/* 8004AD24 4E 80 00 20 */ blr
@@ -1,110 +0,0 @@
lbl_80049E40:
/* 80049E40 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80049E44 7C 08 02 A6 */ mflr r0
/* 80049E48 90 01 00 24 */ stw r0, 0x24(r1)
/* 80049E4C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80049E50 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80049E54 7C 7E 1B 78 */ mr r30, r3
/* 80049E58 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
/* 80049E5C 3B E3 CA 54 */ addi r31, r3, g_env_light@l /* 0x8042CA54@l */
/* 80049E60 88 0D 87 E4 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0(r13)
/* 80049E64 7C 03 07 74 */ extsb r3, r0
/* 80049E68 48 15 CD B9 */ bl dKy_setLight_nowroom__Fc
/* 80049E6C 38 60 00 01 */ li r3, 1
/* 80049E70 48 31 5D D5 */ bl GXSetColorUpdate
/* 80049E74 38 60 00 01 */ li r3, 1
/* 80049E78 48 31 3C B9 */ bl GXSetNumChans
/* 80049E7C 80 1E 00 C0 */ lwz r0, 0xc0(r30)
/* 80049E80 28 00 00 00 */ cmplwi r0, 0
/* 80049E84 40 82 00 28 */ bne lbl_80049EAC
/* 80049E88 A8 1F 11 00 */ lha r0, 0x1100(r31)
/* 80049E8C 98 01 00 08 */ stb r0, 8(r1)
/* 80049E90 A8 1F 11 02 */ lha r0, 0x1102(r31)
/* 80049E94 98 01 00 09 */ stb r0, 9(r1)
/* 80049E98 A8 1F 11 04 */ lha r0, 0x1104(r31)
/* 80049E9C 98 01 00 0A */ stb r0, 0xa(r1)
/* 80049EA0 A8 1F 11 06 */ lha r0, 0x1106(r31)
/* 80049EA4 98 01 00 0B */ stb r0, 0xb(r1)
/* 80049EA8 48 00 00 24 */ b lbl_80049ECC
lbl_80049EAC:
/* 80049EAC A8 1F 11 08 */ lha r0, 0x1108(r31)
/* 80049EB0 98 01 00 08 */ stb r0, 8(r1)
/* 80049EB4 A8 1F 11 0A */ lha r0, 0x110a(r31)
/* 80049EB8 98 01 00 09 */ stb r0, 9(r1)
/* 80049EBC A8 1F 11 0C */ lha r0, 0x110c(r31)
/* 80049EC0 98 01 00 0A */ stb r0, 0xa(r1)
/* 80049EC4 A8 1F 11 0E */ lha r0, 0x110e(r31)
/* 80049EC8 98 01 00 0B */ stb r0, 0xb(r1)
lbl_80049ECC:
/* 80049ECC 38 61 00 08 */ addi r3, r1, 8
/* 80049ED0 4B FF FC 61 */ bl initiate_b_Lighting8__FR8_GXColor
/* 80049ED4 38 60 00 02 */ li r3, 2
/* 80049ED8 48 31 59 B9 */ bl GXSetNumTevStages
/* 80049EDC 38 60 00 00 */ li r3, 0
/* 80049EE0 38 80 00 00 */ li r4, 0
/* 80049EE4 38 A0 00 00 */ li r5, 0
/* 80049EE8 38 C0 00 04 */ li r6, 4
/* 80049EEC 48 31 58 09 */ bl GXSetTevOrder
/* 80049EF0 38 60 00 00 */ li r3, 0
/* 80049EF4 38 80 00 04 */ li r4, 4
/* 80049EF8 38 A0 00 02 */ li r5, 2
/* 80049EFC 38 C0 00 08 */ li r6, 8
/* 80049F00 38 E0 00 0F */ li r7, 0xf
/* 80049F04 48 31 53 21 */ bl GXSetTevColorIn
/* 80049F08 38 60 00 00 */ li r3, 0
/* 80049F0C 38 80 00 00 */ li r4, 0
/* 80049F10 38 A0 00 00 */ li r5, 0
/* 80049F14 38 C0 00 00 */ li r6, 0
/* 80049F18 38 E0 00 01 */ li r7, 1
/* 80049F1C 39 00 00 00 */ li r8, 0
/* 80049F20 48 31 53 8D */ bl GXSetTevColorOp
/* 80049F24 38 60 00 00 */ li r3, 0
/* 80049F28 38 80 00 07 */ li r4, 7
/* 80049F2C 38 A0 00 07 */ li r5, 7
/* 80049F30 38 C0 00 05 */ li r6, 5
/* 80049F34 38 E0 00 07 */ li r7, 7
/* 80049F38 48 31 53 31 */ bl GXSetTevAlphaIn
/* 80049F3C 38 60 00 00 */ li r3, 0
/* 80049F40 38 80 00 00 */ li r4, 0
/* 80049F44 38 A0 00 00 */ li r5, 0
/* 80049F48 38 C0 00 00 */ li r6, 0
/* 80049F4C 38 E0 00 01 */ li r7, 1
/* 80049F50 39 00 00 00 */ li r8, 0
/* 80049F54 48 31 53 C1 */ bl GXSetTevAlphaOp
/* 80049F58 38 60 00 01 */ li r3, 1
/* 80049F5C 38 80 00 00 */ li r4, 0
/* 80049F60 38 A0 00 00 */ li r5, 0
/* 80049F64 38 C0 00 04 */ li r6, 4
/* 80049F68 48 31 57 8D */ bl GXSetTevOrder
/* 80049F6C 38 60 00 01 */ li r3, 1
/* 80049F70 38 80 00 0F */ li r4, 0xf
/* 80049F74 38 A0 00 00 */ li r5, 0
/* 80049F78 38 C0 00 0A */ li r6, 0xa
/* 80049F7C 38 E0 00 0F */ li r7, 0xf
/* 80049F80 48 31 52 A5 */ bl GXSetTevColorIn
/* 80049F84 38 60 00 01 */ li r3, 1
/* 80049F88 38 80 00 00 */ li r4, 0
/* 80049F8C 38 A0 00 00 */ li r5, 0
/* 80049F90 38 C0 00 02 */ li r6, 2
/* 80049F94 38 E0 00 01 */ li r7, 1
/* 80049F98 39 00 00 00 */ li r8, 0
/* 80049F9C 48 31 53 11 */ bl GXSetTevColorOp
/* 80049FA0 38 60 00 01 */ li r3, 1
/* 80049FA4 38 80 00 07 */ li r4, 7
/* 80049FA8 38 A0 00 04 */ li r5, 4
/* 80049FAC 38 C0 00 01 */ li r6, 1
/* 80049FB0 38 E0 00 07 */ li r7, 7
/* 80049FB4 48 31 52 B5 */ bl GXSetTevAlphaIn
/* 80049FB8 38 60 00 01 */ li r3, 1
/* 80049FBC 38 80 00 00 */ li r4, 0
/* 80049FC0 38 A0 00 00 */ li r5, 0
/* 80049FC4 38 C0 00 00 */ li r6, 0
/* 80049FC8 38 E0 00 01 */ li r7, 1
/* 80049FCC 39 00 00 00 */ li r8, 0
/* 80049FD0 48 31 53 45 */ bl GXSetTevAlphaOp
/* 80049FD4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80049FD8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80049FDC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80049FE0 7C 08 03 A6 */ mtlr r0
/* 80049FE4 38 21 00 20 */ addi r1, r1, 0x20
/* 80049FE8 4E 80 00 20 */ blr
@@ -1,33 +0,0 @@
lbl_8004AA34:
/* 8004AA34 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004AA38 7C 08 02 A6 */ mflr r0
/* 8004AA3C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004AA40 38 A0 00 00 */ li r5, 0
/* 8004AA44 80 04 00 F4 */ lwz r0, 0xf4(r4)
/* 8004AA48 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 8004AA4C 41 82 00 18 */ beq lbl_8004AA64
/* 8004AA50 80 64 00 D0 */ lwz r3, 0xd0(r4)
/* 8004AA54 80 04 00 DC */ lwz r0, 0xdc(r4)
/* 8004AA58 7C 03 02 15 */ add. r0, r3, r0
/* 8004AA5C 40 82 00 08 */ bne lbl_8004AA64
/* 8004AA60 38 A0 00 01 */ li r5, 1
lbl_8004AA64:
/* 8004AA64 54 A0 06 3F */ clrlwi. r0, r5, 0x18
/* 8004AA68 41 82 00 28 */ beq lbl_8004AA90
/* 8004AA6C 80 04 00 F4 */ lwz r0, 0xf4(r4)
/* 8004AA70 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18
/* 8004AA74 90 04 00 F4 */ stw r0, 0xf4(r4)
/* 8004AA78 38 00 00 00 */ li r0, 0
/* 8004AA7C 90 04 00 EC */ stw r0, 0xec(r4)
/* 8004AA80 90 04 00 F0 */ stw r0, 0xf0(r4)
/* 8004AA84 7C 83 23 78 */ mr r3, r4
/* 8004AA88 48 00 02 09 */ bl resetModel__18dPa_modelEcallBackFP14JPABaseEmitter
/* 8004AA8C 48 00 00 0C */ b lbl_8004AA98
lbl_8004AA90:
/* 8004AA90 7C 83 23 78 */ mr r3, r4
/* 8004AA94 48 00 02 2D */ bl setupModel__18dPa_modelEcallBackFP14JPABaseEmitter
lbl_8004AA98:
/* 8004AA98 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004AA9C 7C 08 03 A6 */ mtlr r0
/* 8004AAA0 38 21 00 10 */ addi r1, r1, 0x10
/* 8004AAA4 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_8004A340:
/* 8004A340 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A344 7C 08 02 A6 */ mflr r0
/* 8004A348 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A34C 7C 83 23 78 */ mr r3, r4
/* 8004A350 4B FF FC 9D */ bl static_light8EcallBack__FP14JPABaseEmitter
/* 8004A354 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A358 7C 08 03 A6 */ mtlr r0
/* 8004A35C 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A360 4E 80 00 20 */ blr
@@ -1,13 +0,0 @@
lbl_800502B0:
/* 800502B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800502B4 7C 08 02 A6 */ mflr r0
/* 800502B8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800502BC 80 03 00 04 */ lwz r0, 4(r3)
/* 800502C0 90 01 00 08 */ stw r0, 8(r1)
/* 800502C4 38 60 00 02 */ li r3, 2
/* 800502C8 38 81 00 08 */ addi r4, r1, 8
/* 800502CC 48 30 F0 B1 */ bl GXSetTevColor
/* 800502D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800502D4 7C 08 03 A6 */ mtlr r0
/* 800502D8 38 21 00 10 */ addi r1, r1, 0x10
/* 800502DC 4E 80 00 20 */ blr
@@ -1,13 +0,0 @@
lbl_8004ADC4:
/* 8004ADC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004ADC8 7C 08 02 A6 */ mflr r0
/* 8004ADCC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004ADD0 7C 65 1B 78 */ mr r5, r3
/* 8004ADD4 7C 83 23 78 */ mr r3, r4
/* 8004ADD8 88 85 00 04 */ lbz r4, 4(r5)
/* 8004ADDC 38 A0 00 00 */ li r5, 0
/* 8004ADE0 48 23 41 71 */ bl loadTexture__14JPABaseEmitterFUc11_GXTexMapID
/* 8004ADE4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004ADE8 7C 08 03 A6 */ mtlr r0
/* 8004ADEC 38 21 00 10 */ addi r1, r1, 0x10
/* 8004ADF0 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_8004A364:
/* 8004A364 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A368 7C 08 02 A6 */ mflr r0
/* 8004A36C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A370 7C 83 23 78 */ mr r3, r4
/* 8004A374 4B FF FD 95 */ bl static_gen_b_light8EcallBack__FP14JPABaseEmitter
/* 8004A378 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A37C 7C 08 03 A6 */ mtlr r0
/* 8004A380 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A384 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_8004A388:
/* 8004A388 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A38C 7C 08 02 A6 */ mflr r0
/* 8004A390 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A394 7C 83 23 78 */ mr r3, r4
/* 8004A398 4B FF FE 8D */ bl static_gen_d_light8EcallBack__FP14JPABaseEmitter
/* 8004A39C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A3A0 7C 08 03 A6 */ mtlr r0
/* 8004A3A4 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A3A8 4E 80 00 20 */ blr
@@ -1,94 +0,0 @@
lbl_8004A8DC:
/* 8004A8DC 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8004A8E0 7C 08 02 A6 */ mflr r0
/* 8004A8E4 90 01 00 54 */ stw r0, 0x54(r1)
/* 8004A8E8 39 61 00 50 */ addi r11, r1, 0x50
/* 8004A8EC 48 31 78 E9 */ bl _savegpr_27
/* 8004A8F0 7C 7B 1B 78 */ mr r27, r3
/* 8004A8F4 7C 9C 23 78 */ mr r28, r4
/* 8004A8F8 80 63 00 00 */ lwz r3, 0(r3)
/* 8004A8FC 80 63 00 28 */ lwz r3, 0x28(r3)
/* 8004A900 80 63 00 00 */ lwz r3, 0(r3)
/* 8004A904 83 A3 00 58 */ lwz r29, 0x58(r3)
/* 8004A908 3F C0 C0 00 */ lis r30, 0xc000
/* 8004A90C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8004A910 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
/* 8004A914 48 00 01 00 */ b lbl_8004AA14
lbl_8004A918:
/* 8004A918 7F A3 EB 78 */ mr r3, r29
/* 8004A91C 81 9D 00 00 */ lwz r12, 0(r29)
/* 8004A920 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8004A924 7D 89 03 A6 */ mtctr r12
/* 8004A928 4E 80 04 21 */ bctrl
/* 8004A92C 80 7D 00 08 */ lwz r3, 8(r29)
/* 8004A930 48 2C A9 D1 */ bl loadPreDrawSetting__8J3DShapeCFv
/* 8004A934 80 7D 00 3C */ lwz r3, 0x3c(r29)
/* 8004A938 7C 03 F0 40 */ cmplw r3, r30
/* 8004A93C 40 80 00 0C */ bge lbl_8004A948
/* 8004A940 7C 60 1B 78 */ mr r0, r3
/* 8004A944 48 00 00 08 */ b lbl_8004A94C
lbl_8004A948:
/* 8004A948 38 00 00 00 */ li r0, 0
lbl_8004A94C:
/* 8004A94C 28 00 00 00 */ cmplwi r0, 0
/* 8004A950 41 82 00 2C */ beq lbl_8004A97C
/* 8004A954 3C 00 C0 00 */ lis r0, 0xc000
/* 8004A958 7C 03 00 40 */ cmplw r3, r0
/* 8004A95C 40 80 00 08 */ bge lbl_8004A964
/* 8004A960 48 00 00 08 */ b lbl_8004A968
lbl_8004A964:
/* 8004A964 38 60 00 00 */ li r3, 0
lbl_8004A968:
/* 8004A968 7F A4 EB 78 */ mr r4, r29
/* 8004A96C 81 83 00 00 */ lwz r12, 0(r3)
/* 8004A970 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8004A974 7D 89 03 A6 */ mtctr r12
/* 8004A978 4E 80 04 21 */ bctrl
lbl_8004A97C:
/* 8004A97C 7F A3 EB 78 */ mr r3, r29
/* 8004A980 7F 84 E3 78 */ mr r4, r28
/* 8004A984 81 9D 00 00 */ lwz r12, 0(r29)
/* 8004A988 81 8C 00 08 */ lwz r12, 8(r12)
/* 8004A98C 7D 89 03 A6 */ mtctr r12
/* 8004A990 4E 80 04 21 */ bctrl
/* 8004A994 80 7D 00 2C */ lwz r3, 0x2c(r29)
/* 8004A998 38 80 00 00 */ li r4, 0
/* 8004A99C 81 83 00 00 */ lwz r12, 0(r3)
/* 8004A9A0 81 8C 00 50 */ lwz r12, 0x50(r12)
/* 8004A9A4 7D 89 03 A6 */ mtctr r12
/* 8004A9A8 4E 80 04 21 */ bctrl
/* 8004A9AC 7C 64 1B 78 */ mr r4, r3
/* 8004A9B0 80 7B 00 00 */ lwz r3, 0(r27)
/* 8004A9B4 80 63 00 6C */ lwz r3, 0x6c(r3)
/* 8004A9B8 38 A0 00 00 */ li r5, 0
/* 8004A9BC 48 2C 76 91 */ bl loadGX__10J3DTextureCFUs11_GXTexMapID
/* 8004A9C0 48 15 CC 01 */ bl dKy_setLight_again__Fv
/* 8004A9C4 38 7B 00 08 */ addi r3, r27, 8
/* 8004A9C8 48 15 CC 19 */ bl dKy_Global_amb_set__FP12dKy_tevstr_c
/* 8004A9CC 38 7B 00 08 */ addi r3, r27, 8
/* 8004A9D0 48 15 DC 81 */ bl dKy_GxFog_tevstr_set__FP12dKy_tevstr_c
/* 8004A9D4 7F E3 FB 78 */ mr r3, r31
/* 8004A9D8 7F 84 E3 78 */ mr r4, r28
/* 8004A9DC 38 A1 00 08 */ addi r5, r1, 8
/* 8004A9E0 48 2F BB 05 */ bl PSMTXConcat
/* 8004A9E4 38 61 00 08 */ addi r3, r1, 8
/* 8004A9E8 38 80 00 00 */ li r4, 0
/* 8004A9EC 48 31 58 61 */ bl GXLoadPosMtxImm
/* 8004A9F0 38 61 00 08 */ addi r3, r1, 8
/* 8004A9F4 38 80 00 00 */ li r4, 0
/* 8004A9F8 48 31 58 A5 */ bl GXLoadNrmMtxImm
/* 8004A9FC 80 7D 00 08 */ lwz r3, 8(r29)
/* 8004AA00 81 83 00 00 */ lwz r12, 0(r3)
/* 8004AA04 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 8004AA08 7D 89 03 A6 */ mtctr r12
/* 8004AA0C 4E 80 04 21 */ bctrl
/* 8004AA10 83 BD 00 04 */ lwz r29, 4(r29)
lbl_8004AA14:
/* 8004AA14 28 1D 00 00 */ cmplwi r29, 0
/* 8004AA18 40 82 FF 00 */ bne lbl_8004A918
/* 8004AA1C 39 61 00 50 */ addi r11, r1, 0x50
/* 8004AA20 48 31 78 01 */ bl _restgpr_27
/* 8004AA24 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8004AA28 7C 08 03 A6 */ mtlr r0
/* 8004AA2C 38 21 00 50 */ addi r1, r1, 0x50
/* 8004AA30 4E 80 00 20 */ blr
@@ -1,102 +0,0 @@
lbl_8004AE1C:
/* 8004AE1C 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8004AE20 7C 08 02 A6 */ mflr r0
/* 8004AE24 90 01 00 54 */ stw r0, 0x54(r1)
/* 8004AE28 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 8004AE2C F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */
/* 8004AE30 39 61 00 40 */ addi r11, r1, 0x40
/* 8004AE34 48 31 73 99 */ bl _savegpr_25
/* 8004AE38 7C 7C 1B 78 */ mr r28, r3
/* 8004AE3C 7C 9D 23 78 */ mr r29, r4
/* 8004AE40 7F A3 EB 78 */ mr r3, r29
/* 8004AE44 48 23 40 ED */ bl getCurrentCreateNumber__14JPABaseEmitterCFv
/* 8004AE48 7C 7F 1B 79 */ or. r31, r3, r3
/* 8004AE4C 41 81 00 10 */ bgt lbl_8004AE5C
/* 8004AE50 38 00 00 00 */ li r0, 0
/* 8004AE54 B0 1C 00 0C */ sth r0, 0xc(r28)
/* 8004AE58 48 00 01 10 */ b lbl_8004AF68
lbl_8004AE5C:
/* 8004AE5C 83 DC 00 10 */ lwz r30, 0x10(r28)
/* 8004AE60 80 1D 00 F4 */ lwz r0, 0xf4(r29)
/* 8004AE64 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8004AE68 90 1D 00 F4 */ stw r0, 0xf4(r29)
/* 8004AE6C 3C 60 80 3E */ lis r3, mClipper__14mDoLib_clipper@ha /* 0x803DD8E4@ha */
/* 8004AE70 3B 43 D8 E4 */ addi r26, r3, mClipper__14mDoLib_clipper@l /* 0x803DD8E4@l */
/* 8004AE74 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8004AE78 3B 63 4A C8 */ addi r27, r3, j3dSys@l /* 0x80434AC8@l */
/* 8004AE7C 48 00 00 E0 */ b lbl_8004AF5C
lbl_8004AE80:
/* 8004AE80 80 7E 00 00 */ lwz r3, 0(r30)
/* 8004AE84 80 1E 00 04 */ lwz r0, 4(r30)
/* 8004AE88 90 61 00 08 */ stw r3, 8(r1)
/* 8004AE8C 90 01 00 0C */ stw r0, 0xc(r1)
/* 8004AE90 80 1E 00 08 */ lwz r0, 8(r30)
/* 8004AE94 90 01 00 10 */ stw r0, 0x10(r1)
/* 8004AE98 7F 43 D3 78 */ mr r3, r26
/* 8004AE9C 7F 64 DB 78 */ mr r4, r27
/* 8004AEA0 38 A1 00 08 */ addi r5, r1, 8
/* 8004AEA4 C0 22 85 70 */ lfs f1, lit_4391(r2)
/* 8004AEA8 48 22 8A 55 */ bl clip__11J3DUClipperCFPA4_Cf3Vecf
/* 8004AEAC 2C 03 00 00 */ cmpwi r3, 0
/* 8004AEB0 40 82 00 9C */ bne lbl_8004AF4C
/* 8004AEB4 C3 FD 00 10 */ lfs f31, 0x10(r29)
/* 8004AEB8 C0 5E 00 08 */ lfs f2, 8(r30)
/* 8004AEBC C0 1E 00 04 */ lfs f0, 4(r30)
/* 8004AEC0 EC 20 F8 2A */ fadds f1, f0, f31
/* 8004AEC4 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8004AEC8 D0 1D 00 A4 */ stfs f0, 0xa4(r29)
/* 8004AECC D0 3D 00 A8 */ stfs f1, 0xa8(r29)
/* 8004AED0 D0 5D 00 AC */ stfs f2, 0xac(r29)
/* 8004AED4 88 9E 00 0E */ lbz r4, 0xe(r30)
/* 8004AED8 88 7E 00 0D */ lbz r3, 0xd(r30)
/* 8004AEDC 88 1E 00 0C */ lbz r0, 0xc(r30)
/* 8004AEE0 98 1D 00 B8 */ stb r0, 0xb8(r29)
/* 8004AEE4 98 7D 00 B9 */ stb r3, 0xb9(r29)
/* 8004AEE8 98 9D 00 BA */ stb r4, 0xba(r29)
/* 8004AEEC 88 1E 00 0F */ lbz r0, 0xf(r30)
/* 8004AEF0 98 1D 00 BB */ stb r0, 0xbb(r29)
/* 8004AEF4 88 9E 00 12 */ lbz r4, 0x12(r30)
/* 8004AEF8 88 7E 00 11 */ lbz r3, 0x11(r30)
/* 8004AEFC 88 1E 00 10 */ lbz r0, 0x10(r30)
/* 8004AF00 98 1D 00 BC */ stb r0, 0xbc(r29)
/* 8004AF04 98 7D 00 BD */ stb r3, 0xbd(r29)
/* 8004AF08 98 9D 00 BE */ stb r4, 0xbe(r29)
/* 8004AF0C 3B 20 00 00 */ li r25, 0
/* 8004AF10 48 00 00 34 */ b lbl_8004AF44
lbl_8004AF14:
/* 8004AF14 7F A3 EB 78 */ mr r3, r29
/* 8004AF18 48 23 3B 29 */ bl createParticle__14JPABaseEmitterFv
/* 8004AF1C 28 03 00 00 */ cmplwi r3, 0
/* 8004AF20 41 82 00 2C */ beq lbl_8004AF4C
/* 8004AF24 C0 5E 00 08 */ lfs f2, 8(r30)
/* 8004AF28 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8004AF2C EC 20 F8 2A */ fadds f1, f0, f31
/* 8004AF30 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8004AF34 D0 03 00 18 */ stfs f0, 0x18(r3)
/* 8004AF38 D0 23 00 1C */ stfs f1, 0x1c(r3)
/* 8004AF3C D0 43 00 20 */ stfs f2, 0x20(r3)
/* 8004AF40 3B 39 00 01 */ addi r25, r25, 1
lbl_8004AF44:
/* 8004AF44 7C 19 F8 00 */ cmpw r25, r31
/* 8004AF48 41 80 FF CC */ blt lbl_8004AF14
lbl_8004AF4C:
/* 8004AF4C A8 7C 00 0C */ lha r3, 0xc(r28)
/* 8004AF50 38 03 FF FF */ addi r0, r3, -1
/* 8004AF54 B0 1C 00 0C */ sth r0, 0xc(r28)
/* 8004AF58 3B DE 00 14 */ addi r30, r30, 0x14
lbl_8004AF5C:
/* 8004AF5C A8 1C 00 0C */ lha r0, 0xc(r28)
/* 8004AF60 2C 00 00 00 */ cmpwi r0, 0
/* 8004AF64 40 82 FF 1C */ bne lbl_8004AE80
lbl_8004AF68:
/* 8004AF68 80 1D 00 F4 */ lwz r0, 0xf4(r29)
/* 8004AF6C 60 00 00 01 */ ori r0, r0, 1
/* 8004AF70 90 1D 00 F4 */ stw r0, 0xf4(r29)
/* 8004AF74 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */
/* 8004AF78 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 8004AF7C 39 61 00 40 */ addi r11, r1, 0x40
/* 8004AF80 48 31 72 99 */ bl _restgpr_25
/* 8004AF84 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8004AF88 7C 08 03 A6 */ mtlr r0
/* 8004AF8C 38 21 00 50 */ addi r1, r1, 0x50
/* 8004AF90 4E 80 00 20 */ blr
@@ -1,32 +0,0 @@
lbl_8004DC28:
/* 8004DC28 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004DC2C 7C 08 02 A6 */ mflr r0
/* 8004DC30 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004DC34 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8004DC38 7C BF 2B 78 */ mr r31, r5
/* 8004DC3C C0 05 00 00 */ lfs f0, 0(r5)
/* 8004DC40 C0 25 00 04 */ lfs f1, 4(r5)
/* 8004DC44 C0 45 00 08 */ lfs f2, 8(r5)
/* 8004DC48 D0 01 00 08 */ stfs f0, 8(r1)
/* 8004DC4C D0 21 00 0C */ stfs f1, 0xc(r1)
/* 8004DC50 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8004DC54 38 61 00 08 */ addi r3, r1, 8
/* 8004DC58 4B FD 01 2D */ bl waterCheck__11fopAcM_wt_cFPC4cXyz
/* 8004DC5C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004DC60 41 82 00 2C */ beq lbl_8004DC8C
/* 8004DC64 C0 21 00 0C */ lfs f1, 0xc(r1)
/* 8004DC68 C0 0D 87 58 */ lfs f0, mWaterY__11fopAcM_wt_c(r13)
/* 8004DC6C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8004DC70 40 81 00 1C */ ble lbl_8004DC8C
/* 8004DC74 80 1F 00 7C */ lwz r0, 0x7c(r31)
/* 8004DC78 60 00 00 08 */ ori r0, r0, 8
/* 8004DC7C 90 1F 00 7C */ stw r0, 0x7c(r31)
/* 8004DC80 80 1F 00 7C */ lwz r0, 0x7c(r31)
/* 8004DC84 60 00 00 02 */ ori r0, r0, 2
/* 8004DC88 90 1F 00 7C */ stw r0, 0x7c(r31)
lbl_8004DC8C:
/* 8004DC8C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8004DC90 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004DC94 7C 08 03 A6 */ mtlr r0
/* 8004DC98 38 21 00 20 */ addi r1, r1, 0x20
/* 8004DC9C 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_8004B4E0:
/* 8004B4E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004B4E4 7C 08 02 A6 */ mflr r0
/* 8004B4E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004B4EC 7C A3 2B 78 */ mr r3, r5
/* 8004B4F0 4B FF EE BD */ bl dPa_setWindPower__FP15JPABaseParticle
/* 8004B4F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004B4F8 7C 08 03 A6 */ mtlr r0
/* 8004B4FC 38 21 00 10 */ addi r1, r1, 0x10
/* 8004B500 4E 80 00 20 */ blr
@@ -1,66 +0,0 @@
lbl_800495BC:
/* 800495BC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800495C0 7C 08 02 A6 */ mflr r0
/* 800495C4 90 01 00 24 */ stw r0, 0x24(r1)
/* 800495C8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800495CC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800495D0 7C 7E 1B 78 */ mr r30, r3
/* 800495D4 7C 9F 23 78 */ mr r31, r4
/* 800495D8 88 03 00 12 */ lbz r0, 0x12(r3)
/* 800495DC 28 00 00 00 */ cmplwi r0, 0
/* 800495E0 40 82 00 4C */ bne lbl_8004962C
/* 800495E4 88 1E 00 10 */ lbz r0, 0x10(r30)
/* 800495E8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 800495EC 40 82 00 40 */ bne lbl_8004962C
/* 800495F0 80 7E 00 08 */ lwz r3, 8(r30)
/* 800495F4 C0 43 00 08 */ lfs f2, 8(r3)
/* 800495F8 C0 23 00 04 */ lfs f1, 4(r3)
/* 800495FC C0 03 00 00 */ lfs f0, 0(r3)
/* 80049600 D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 80049604 D0 3F 00 A8 */ stfs f1, 0xa8(r31)
/* 80049608 D0 5F 00 AC */ stfs f2, 0xac(r31)
/* 8004960C 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 80049610 28 05 00 00 */ cmplwi r5, 0
/* 80049614 41 82 00 18 */ beq lbl_8004962C
/* 80049618 A8 65 00 00 */ lha r3, 0(r5)
/* 8004961C A8 85 00 02 */ lha r4, 2(r5)
/* 80049620 A8 A5 00 04 */ lha r5, 4(r5)
/* 80049624 38 DF 00 68 */ addi r6, r31, 0x68
/* 80049628 48 23 71 0D */ bl JPAGetXYZRotateMtx__FsssPA4_f
lbl_8004962C:
/* 8004962C 38 80 00 00 */ li r4, 0
/* 80049630 80 1F 00 F4 */ lwz r0, 0xf4(r31)
/* 80049634 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80049638 41 82 00 18 */ beq lbl_80049650
/* 8004963C 80 7F 00 D0 */ lwz r3, 0xd0(r31)
/* 80049640 80 1F 00 DC */ lwz r0, 0xdc(r31)
/* 80049644 7C 03 02 15 */ add. r0, r3, r0
/* 80049648 40 82 00 08 */ bne lbl_80049650
/* 8004964C 38 80 00 01 */ li r4, 1
lbl_80049650:
/* 80049650 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80049654 41 82 00 18 */ beq lbl_8004966C
/* 80049658 7F C3 F3 78 */ mr r3, r30
/* 8004965C 81 9E 00 00 */ lwz r12, 0(r30)
/* 80049660 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 80049664 7D 89 03 A6 */ mtctr r12
/* 80049668 4E 80 04 21 */ bctrl
lbl_8004966C:
/* 8004966C 88 1E 00 10 */ lbz r0, 0x10(r30)
/* 80049670 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80049674 41 82 00 24 */ beq lbl_80049698
/* 80049678 88 1F 00 BB */ lbz r0, 0xbb(r31)
/* 8004967C B0 01 00 08 */ sth r0, 8(r1)
/* 80049680 38 61 00 08 */ addi r3, r1, 8
/* 80049684 38 80 00 01 */ li r4, 1
/* 80049688 38 A0 00 04 */ li r5, 4
/* 8004968C 48 22 70 45 */ bl cLib_chaseS__FPsss
/* 80049690 A8 01 00 08 */ lha r0, 8(r1)
/* 80049694 98 1F 00 BB */ stb r0, 0xbb(r31)
lbl_80049698:
/* 80049698 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8004969C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800496A0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800496A4 7C 08 03 A6 */ mtlr r0
/* 800496A8 38 21 00 20 */ addi r1, r1, 0x20
/* 800496AC 4E 80 00 20 */ blr
@@ -1,18 +0,0 @@
lbl_8004FAD4:
/* 8004FAD4 A8 05 00 80 */ lha r0, 0x80(r5)
/* 8004FAD8 2C 00 00 00 */ cmpwi r0, 0
/* 8004FADC 4C 81 00 20 */ blelr
/* 8004FAE0 80 64 00 C0 */ lwz r3, 0xc0(r4)
/* 8004FAE4 C0 25 00 18 */ lfs f1, 0x18(r5)
/* 8004FAE8 C0 45 00 1C */ lfs f2, 0x1c(r5)
/* 8004FAEC C0 65 00 20 */ lfs f3, 0x20(r5)
/* 8004FAF0 C0 03 00 00 */ lfs f0, 0(r3)
/* 8004FAF4 EC 21 00 2A */ fadds f1, f1, f0
/* 8004FAF8 C0 03 00 04 */ lfs f0, 4(r3)
/* 8004FAFC EC 42 00 2A */ fadds f2, f2, f0
/* 8004FB00 C0 03 00 08 */ lfs f0, 8(r3)
/* 8004FB04 EC 63 00 2A */ fadds f3, f3, f0
/* 8004FB08 D0 25 00 18 */ stfs f1, 0x18(r5)
/* 8004FB0C D0 45 00 1C */ stfs f2, 0x1c(r5)
/* 8004FB10 D0 65 00 20 */ stfs f3, 0x20(r5)
/* 8004FB14 4E 80 00 20 */ blr
-51
View File
@@ -1,51 +0,0 @@
lbl_8004D068:
/* 8004D068 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8004D06C 7C 08 02 A6 */ mflr r0
/* 8004D070 90 01 00 64 */ stw r0, 0x64(r1)
/* 8004D074 39 61 00 60 */ addi r11, r1, 0x60
/* 8004D078 48 31 51 4D */ bl _savegpr_23
/* 8004D07C 7C 77 1B 78 */ mr r23, r3
/* 8004D080 7C 98 23 78 */ mr r24, r4
/* 8004D084 7C D9 33 78 */ mr r25, r6
/* 8004D088 7C FA 3B 78 */ mr r26, r7
/* 8004D08C 7D 1B 43 78 */ mr r27, r8
/* 8004D090 7D 3C 4B 78 */ mr r28, r9
/* 8004D094 83 A1 00 68 */ lwz r29, 0x68(r1)
/* 8004D098 8B C1 00 6F */ lbz r30, 0x6f(r1)
/* 8004D09C 83 E1 00 70 */ lwz r31, 0x70(r1)
/* 8004D0A0 7C A3 2B 78 */ mr r3, r5
/* 8004D0A4 7D 44 53 78 */ mr r4, r10
/* 8004D0A8 38 A1 00 28 */ addi r5, r1, 0x28
/* 8004D0AC 38 C1 00 24 */ addi r6, r1, 0x24
/* 8004D0B0 38 E1 00 20 */ addi r7, r1, 0x20
/* 8004D0B4 39 01 00 2C */ addi r8, r1, 0x2c
/* 8004D0B8 4B FF FE D9 */ bl getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf
/* 8004D0BC 2C 03 00 00 */ cmpwi r3, 0
/* 8004D0C0 41 82 00 4C */ beq lbl_8004D10C
/* 8004D0C4 93 A1 00 08 */ stw r29, 8(r1)
/* 8004D0C8 93 C1 00 0C */ stw r30, 0xc(r1)
/* 8004D0CC 38 01 00 28 */ addi r0, r1, 0x28
/* 8004D0D0 90 01 00 10 */ stw r0, 0x10(r1)
/* 8004D0D4 38 01 00 24 */ addi r0, r1, 0x24
/* 8004D0D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004D0DC 93 E1 00 18 */ stw r31, 0x18(r1)
/* 8004D0E0 7E E3 BB 78 */ mr r3, r23
/* 8004D0E4 38 80 00 00 */ li r4, 0
/* 8004D0E8 7F 05 C3 78 */ mr r5, r24
/* 8004D0EC 7F 26 CB 78 */ mr r6, r25
/* 8004D0F0 7F 47 D3 78 */ mr r7, r26
/* 8004D0F4 7F 68 DB 78 */ mr r8, r27
/* 8004D0F8 7F 89 E3 78 */ mr r9, r28
/* 8004D0FC 89 41 00 20 */ lbz r10, 0x20(r1)
/* 8004D100 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8004D104 4B FF F9 8D */ bl set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf
/* 8004D108 48 00 00 08 */ b lbl_8004D110
lbl_8004D10C:
/* 8004D10C 38 60 00 00 */ li r3, 0
lbl_8004D110:
/* 8004D110 39 61 00 60 */ addi r11, r1, 0x60
/* 8004D114 48 31 50 FD */ bl _restgpr_23
/* 8004D118 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8004D11C 7C 08 03 A6 */ mtlr r0
/* 8004D120 38 21 00 60 */ addi r1, r1, 0x60
/* 8004D124 4E 80 00 20 */ blr
-126
View File
@@ -1,126 +0,0 @@
lbl_8004D4CC:
/* 8004D4CC 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8004D4D0 7C 08 02 A6 */ mflr r0
/* 8004D4D4 90 01 00 74 */ stw r0, 0x74(r1)
/* 8004D4D8 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 8004D4DC F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */
/* 8004D4E0 39 61 00 60 */ addi r11, r1, 0x60
/* 8004D4E4 48 31 4C C9 */ bl _savegpr_17
/* 8004D4E8 7C 75 1B 78 */ mr r21, r3
/* 8004D4EC 7C B6 2B 78 */ mr r22, r5
/* 8004D4F0 7C D7 33 78 */ mr r23, r6
/* 8004D4F4 7C F8 3B 78 */ mr r24, r7
/* 8004D4F8 7D 19 43 78 */ mr r25, r8
/* 8004D4FC 7D 3A 4B 78 */ mr r26, r9
/* 8004D500 7D 5B 53 78 */ mr r27, r10
/* 8004D504 8B 81 00 7B */ lbz r28, 0x7b(r1)
/* 8004D508 83 A1 00 7C */ lwz r29, 0x7c(r1)
/* 8004D50C 8A 21 00 83 */ lbz r17, 0x83(r1)
/* 8004D510 83 C1 00 84 */ lwz r30, 0x84(r1)
/* 8004D514 83 E1 00 88 */ lwz r31, 0x88(r1)
/* 8004D518 82 41 00 8C */ lwz r18, 0x8c(r1)
/* 8004D51C FF E0 08 90 */ fmr f31, f1
/* 8004D520 38 75 02 10 */ addi r3, r21, 0x210
/* 8004D524 4B FF E3 51 */ bl get__Q213dPa_control_c7level_cFUl
/* 8004D528 7C 74 1B 78 */ mr r20, r3
/* 8004D52C 7E E3 BB 78 */ mr r3, r23
/* 8004D530 4B FF E6 41 */ bl getRM_ID__13dPa_control_cFUs
/* 8004D534 80 8D 89 20 */ lwz r4, mEmitterMng__13dPa_control_c(r13)
/* 8004D538 80 84 00 1C */ lwz r4, 0x1c(r4)
/* 8004D53C 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
/* 8004D540 7C 64 00 2E */ lwzx r3, r4, r0
/* 8004D544 7E E4 BB 78 */ mr r4, r23
/* 8004D548 48 22 6A 85 */ bl getResUserWork__18JPAResourceManagerCFUs
/* 8004D54C 7C 73 1B 78 */ mr r19, r3
/* 8004D550 28 14 00 00 */ cmplwi r20, 0
/* 8004D554 41 82 00 B8 */ beq lbl_8004D60C
/* 8004D558 56 E3 04 3E */ clrlwi r3, r23, 0x10
/* 8004D55C A0 14 00 04 */ lhz r0, 4(r20)
/* 8004D560 7C 03 00 40 */ cmplw r3, r0
/* 8004D564 40 82 00 9C */ bne lbl_8004D600
/* 8004D568 7E 83 A3 78 */ mr r3, r20
/* 8004D56C 4B FF DF 99 */ bl onActive__Q313dPa_control_c7level_c9emitter_cFv
/* 8004D570 82 34 00 08 */ lwz r17, 8(r20)
/* 8004D574 80 11 00 F4 */ lwz r0, 0xf4(r17)
/* 8004D578 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8004D57C 90 11 00 F4 */ stw r0, 0xf4(r17)
/* 8004D580 80 14 00 0C */ lwz r0, 0xc(r20)
/* 8004D584 28 00 00 00 */ cmplwi r0, 0
/* 8004D588 40 82 00 38 */ bne lbl_8004D5C0
/* 8004D58C C0 58 00 08 */ lfs f2, 8(r24)
/* 8004D590 C0 38 00 04 */ lfs f1, 4(r24)
/* 8004D594 C0 18 00 00 */ lfs f0, 0(r24)
/* 8004D598 D0 11 00 A4 */ stfs f0, 0xa4(r17)
/* 8004D59C D0 31 00 A8 */ stfs f1, 0xa8(r17)
/* 8004D5A0 D0 51 00 AC */ stfs f2, 0xac(r17)
/* 8004D5A4 28 1A 00 00 */ cmplwi r26, 0
/* 8004D5A8 41 82 00 18 */ beq lbl_8004D5C0
/* 8004D5AC A8 7A 00 00 */ lha r3, 0(r26)
/* 8004D5B0 A8 9A 00 02 */ lha r4, 2(r26)
/* 8004D5B4 A8 BA 00 04 */ lha r5, 4(r26)
/* 8004D5B8 38 D1 00 68 */ addi r6, r17, 0x68
/* 8004D5BC 48 23 31 79 */ bl JPAGetXYZRotateMtx__FsssPA4_f
lbl_8004D5C0:
/* 8004D5C0 80 11 00 F4 */ lwz r0, 0xf4(r17)
/* 8004D5C4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8004D5C8 41 82 00 10 */ beq lbl_8004D5D8
/* 8004D5CC 80 11 00 F4 */ lwz r0, 0xf4(r17)
/* 8004D5D0 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8004D5D4 90 11 00 F4 */ stw r0, 0xf4(r17)
lbl_8004D5D8:
/* 8004D5D8 FC 20 F8 90 */ fmr f1, f31
/* 8004D5DC 7E 23 8B 78 */ mr r3, r17
/* 8004D5E0 7F 24 CB 78 */ mr r4, r25
/* 8004D5E4 7E 65 9B 78 */ mr r5, r19
/* 8004D5E8 7F 06 C3 78 */ mr r6, r24
/* 8004D5EC 7F C7 F3 78 */ mr r7, r30
/* 8004D5F0 7F E8 FB 78 */ mr r8, r31
/* 8004D5F4 4B FF FC 85 */ bl dPa_kankyocolor_set__FfP14JPABaseEmitterPC12dKy_tevstr_cUlPC4cXyzPC8_GXColorPC8_GXColor
/* 8004D5F8 80 74 00 00 */ lwz r3, 0(r20)
/* 8004D5FC 48 00 00 88 */ b lbl_8004D684
lbl_8004D600:
/* 8004D600 38 75 02 10 */ addi r3, r21, 0x210
/* 8004D604 7E 84 A3 78 */ mr r4, r20
/* 8004D608 4B FF E4 6D */ bl cutTable__Q213dPa_control_c7level_cFPQ313dPa_control_c7level_c9emitter_c
lbl_8004D60C:
/* 8004D60C 28 1D 00 00 */ cmplwi r29, 0
/* 8004D610 41 82 00 18 */ beq lbl_8004D628
/* 8004D614 7F A3 EB 78 */ mr r3, r29
/* 8004D618 81 9D 00 00 */ lwz r12, 0(r29)
/* 8004D61C 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 8004D620 7D 89 03 A6 */ mtctr r12
/* 8004D624 4E 80 04 21 */ bctrl
lbl_8004D628:
/* 8004D628 93 A1 00 08 */ stw r29, 8(r1)
/* 8004D62C 92 21 00 0C */ stw r17, 0xc(r1)
/* 8004D630 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8004D634 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8004D638 92 41 00 18 */ stw r18, 0x18(r1)
/* 8004D63C 7E A3 AB 78 */ mr r3, r21
/* 8004D640 7E C4 B3 78 */ mr r4, r22
/* 8004D644 7E E5 BB 78 */ mr r5, r23
/* 8004D648 7F 06 C3 78 */ mr r6, r24
/* 8004D64C 7F 27 CB 78 */ mr r7, r25
/* 8004D650 7F 48 D3 78 */ mr r8, r26
/* 8004D654 7F 69 DB 78 */ mr r9, r27
/* 8004D658 7F 8A E3 78 */ mr r10, r28
/* 8004D65C FC 20 F8 90 */ fmr f1, f31
/* 8004D660 4B FF F4 31 */ bl set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf
/* 8004D664 7C 65 1B 79 */ or. r5, r3, r3
/* 8004D668 40 82 00 0C */ bne lbl_8004D674
/* 8004D66C 38 60 00 00 */ li r3, 0
/* 8004D670 48 00 00 14 */ b lbl_8004D684
lbl_8004D674:
/* 8004D674 38 75 02 10 */ addi r3, r21, 0x210
/* 8004D678 7E E4 BB 78 */ mr r4, r23
/* 8004D67C 7F A6 EB 78 */ mr r6, r29
/* 8004D680 4B FF E2 CD */ bl entry__Q213dPa_control_c7level_cFUsP14JPABaseEmitterP18dPa_levelEcallBack
lbl_8004D684:
/* 8004D684 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */
/* 8004D688 CB E1 00 60 */ lfd f31, 0x60(r1)
/* 8004D68C 39 61 00 60 */ addi r11, r1, 0x60
/* 8004D690 48 31 4B 69 */ bl _restgpr_17
/* 8004D694 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8004D698 7C 08 03 A6 */ mtlr r0
/* 8004D69C 38 21 00 70 */ addi r1, r1, 0x70
/* 8004D6A0 4E 80 00 20 */ blr
-54
View File
@@ -1,54 +0,0 @@
lbl_8004D6A4:
/* 8004D6A4 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8004D6A8 7C 08 02 A6 */ mflr r0
/* 8004D6AC 90 01 00 64 */ stw r0, 0x64(r1)
/* 8004D6B0 39 61 00 60 */ addi r11, r1, 0x60
/* 8004D6B4 48 31 4B 0D */ bl _savegpr_22
/* 8004D6B8 7C 76 1B 78 */ mr r22, r3
/* 8004D6BC 7C 97 23 78 */ mr r23, r4
/* 8004D6C0 7C B8 2B 78 */ mr r24, r5
/* 8004D6C4 7C F9 3B 78 */ mr r25, r7
/* 8004D6C8 7D 1A 43 78 */ mr r26, r8
/* 8004D6CC 7D 3B 4B 78 */ mr r27, r9
/* 8004D6D0 7D 5C 53 78 */ mr r28, r10
/* 8004D6D4 80 81 00 68 */ lwz r4, 0x68(r1)
/* 8004D6D8 83 A1 00 6C */ lwz r29, 0x6c(r1)
/* 8004D6DC 8B C1 00 73 */ lbz r30, 0x73(r1)
/* 8004D6E0 83 E1 00 74 */ lwz r31, 0x74(r1)
/* 8004D6E4 7C C3 33 78 */ mr r3, r6
/* 8004D6E8 38 A1 00 28 */ addi r5, r1, 0x28
/* 8004D6EC 38 C1 00 24 */ addi r6, r1, 0x24
/* 8004D6F0 38 E1 00 20 */ addi r7, r1, 0x20
/* 8004D6F4 39 01 00 2C */ addi r8, r1, 0x2c
/* 8004D6F8 4B FF F8 99 */ bl getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf
/* 8004D6FC 2C 03 00 00 */ cmpwi r3, 0
/* 8004D700 41 82 00 54 */ beq lbl_8004D754
/* 8004D704 88 01 00 20 */ lbz r0, 0x20(r1)
/* 8004D708 90 01 00 08 */ stw r0, 8(r1)
/* 8004D70C 93 A1 00 0C */ stw r29, 0xc(r1)
/* 8004D710 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8004D714 38 01 00 28 */ addi r0, r1, 0x28
/* 8004D718 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004D71C 38 01 00 24 */ addi r0, r1, 0x24
/* 8004D720 90 01 00 18 */ stw r0, 0x18(r1)
/* 8004D724 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8004D728 7E C3 B3 78 */ mr r3, r22
/* 8004D72C 7E E4 BB 78 */ mr r4, r23
/* 8004D730 38 A0 00 00 */ li r5, 0
/* 8004D734 7F 06 C3 78 */ mr r6, r24
/* 8004D738 7F 27 CB 78 */ mr r7, r25
/* 8004D73C 7F 48 D3 78 */ mr r8, r26
/* 8004D740 7F 69 DB 78 */ mr r9, r27
/* 8004D744 7F 8A E3 78 */ mr r10, r28
/* 8004D748 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8004D74C 4B FF FD 81 */ bl set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf
/* 8004D750 48 00 00 08 */ b lbl_8004D758
lbl_8004D754:
/* 8004D754 38 60 00 00 */ li r3, 0
lbl_8004D758:
/* 8004D758 39 61 00 60 */ addi r11, r1, 0x60
/* 8004D75C 48 31 4A B1 */ bl _restgpr_22
/* 8004D760 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8004D764 7C 08 03 A6 */ mtlr r0
/* 8004D768 38 21 00 60 */ addi r1, r1, 0x60
/* 8004D76C 4E 80 00 20 */ blr
-119
View File
@@ -1,119 +0,0 @@
lbl_8004D7C4:
/* 8004D7C4 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8004D7C8 7C 08 02 A6 */ mflr r0
/* 8004D7CC 90 01 00 74 */ stw r0, 0x74(r1)
/* 8004D7D0 39 61 00 70 */ addi r11, r1, 0x70
/* 8004D7D4 48 31 49 E1 */ bl _savegpr_19
/* 8004D7D8 7C 7E 1B 78 */ mr r30, r3
/* 8004D7DC 7C 9C 23 78 */ mr r28, r4
/* 8004D7E0 7C BF 2B 78 */ mr r31, r5
/* 8004D7E4 7C D3 33 78 */ mr r19, r6
/* 8004D7E8 7C F4 3B 78 */ mr r20, r7
/* 8004D7EC 7D 15 43 78 */ mr r21, r8
/* 8004D7F0 7D 3B 4B 78 */ mr r27, r9
/* 8004D7F4 7D 56 53 78 */ mr r22, r10
/* 8004D7F8 82 E1 00 78 */ lwz r23, 0x78(r1)
/* 8004D7FC 83 01 00 7C */ lwz r24, 0x7c(r1)
/* 8004D800 8B 21 00 83 */ lbz r25, 0x83(r1)
/* 8004D804 83 41 00 84 */ lwz r26, 0x84(r1)
/* 8004D808 7E 63 9B 78 */ mr r3, r19
/* 8004D80C 38 80 00 00 */ li r4, 0
/* 8004D810 38 A1 00 28 */ addi r5, r1, 0x28
/* 8004D814 38 C1 00 24 */ addi r6, r1, 0x24
/* 8004D818 38 E1 00 20 */ addi r7, r1, 0x20
/* 8004D81C 39 01 00 2C */ addi r8, r1, 0x2c
/* 8004D820 4B FF F7 71 */ bl getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf
/* 8004D824 2C 03 00 00 */ cmpwi r3, 0
/* 8004D828 40 82 00 0C */ bne lbl_8004D834
/* 8004D82C 38 60 00 00 */ li r3, 0
/* 8004D830 48 00 01 40 */ b lbl_8004D970
lbl_8004D834:
/* 8004D834 7E 63 9B 78 */ mr r3, r19
/* 8004D838 48 15 DA 59 */ bl dKy_pol_efftype_get__FPC13cBgS_PolyInfo
/* 8004D83C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8004D840 28 00 00 06 */ cmplwi r0, 6
/* 8004D844 41 80 00 0C */ blt lbl_8004D850
/* 8004D848 38 60 00 00 */ li r3, 0
/* 8004D84C 48 00 01 24 */ b lbl_8004D970
lbl_8004D850:
/* 8004D850 54 64 15 BA */ rlwinm r4, r3, 2, 0x16, 0x1d
/* 8004D854 3C 60 80 3B */ lis r3, effectIDTable@ha /* 0x803A8314@ha */
/* 8004D858 38 03 83 14 */ addi r0, r3, effectIDTable@l /* 0x803A8314@l */
/* 8004D85C 7C 60 22 14 */ add r3, r0, r4
/* 8004D860 57 7B 08 3C */ slwi r27, r27, 1
/* 8004D864 7C C3 DA 2E */ lhzx r6, r3, r27
/* 8004D868 88 01 00 20 */ lbz r0, 0x20(r1)
/* 8004D86C 90 01 00 08 */ stw r0, 8(r1)
/* 8004D870 93 01 00 0C */ stw r24, 0xc(r1)
/* 8004D874 93 21 00 10 */ stw r25, 0x10(r1)
/* 8004D878 38 01 00 28 */ addi r0, r1, 0x28
/* 8004D87C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004D880 38 01 00 24 */ addi r0, r1, 0x24
/* 8004D884 90 01 00 18 */ stw r0, 0x18(r1)
/* 8004D888 93 41 00 1C */ stw r26, 0x1c(r1)
/* 8004D88C 7F C3 F3 78 */ mr r3, r30
/* 8004D890 7F 84 E3 78 */ mr r4, r28
/* 8004D894 38 A0 00 00 */ li r5, 0
/* 8004D898 7E 87 A3 78 */ mr r7, r20
/* 8004D89C 7E A8 AB 78 */ mr r8, r21
/* 8004D8A0 7E C9 B3 78 */ mr r9, r22
/* 8004D8A4 7E EA BB 78 */ mr r10, r23
/* 8004D8A8 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8004D8AC 4B FF FC 21 */ bl set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf
/* 8004D8B0 7C 7C 1B 78 */ mr r28, r3
/* 8004D8B4 7E 63 9B 78 */ mr r3, r19
/* 8004D8B8 48 15 DA F1 */ bl dKy_pol_efftype2_get__FPC13cBgS_PolyInfo
/* 8004D8BC 7C 7D 1B 78 */ mr r29, r3
/* 8004D8C0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8004D8C4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8004D8C8 38 63 0F 38 */ addi r3, r3, 0xf38
/* 8004D8CC 7E 64 9B 78 */ mr r4, r19
/* 8004D8D0 48 02 75 81 */ bl GetPolyAtt0__4dBgSFRC13cBgS_PolyInfo
/* 8004D8D4 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 8004D8D8 28 00 00 06 */ cmplwi r0, 6
/* 8004D8DC 40 80 00 90 */ bge lbl_8004D96C
/* 8004D8E0 2C 03 00 01 */ cmpwi r3, 1
/* 8004D8E4 40 82 00 0C */ bne lbl_8004D8F0
/* 8004D8E8 2C 03 00 03 */ cmpwi r3, 3
/* 8004D8EC 41 82 00 80 */ beq lbl_8004D96C
lbl_8004D8F0:
/* 8004D8F0 7E 63 9B 78 */ mr r3, r19
/* 8004D8F4 38 80 00 01 */ li r4, 1
/* 8004D8F8 38 A1 00 28 */ addi r5, r1, 0x28
/* 8004D8FC 38 C1 00 24 */ addi r6, r1, 0x24
/* 8004D900 38 E1 00 20 */ addi r7, r1, 0x20
/* 8004D904 39 01 00 2C */ addi r8, r1, 0x2c
/* 8004D908 4B FF F6 89 */ bl getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf
/* 8004D90C 80 9F 00 00 */ lwz r4, 0(r31)
/* 8004D910 88 01 00 20 */ lbz r0, 0x20(r1)
/* 8004D914 90 01 00 08 */ stw r0, 8(r1)
/* 8004D918 93 01 00 0C */ stw r24, 0xc(r1)
/* 8004D91C 93 21 00 10 */ stw r25, 0x10(r1)
/* 8004D920 38 01 00 28 */ addi r0, r1, 0x28
/* 8004D924 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004D928 38 01 00 24 */ addi r0, r1, 0x24
/* 8004D92C 90 01 00 18 */ stw r0, 0x18(r1)
/* 8004D930 93 41 00 1C */ stw r26, 0x1c(r1)
/* 8004D934 7F C3 F3 78 */ mr r3, r30
/* 8004D938 38 A0 00 00 */ li r5, 0
/* 8004D93C 57 A7 15 BA */ rlwinm r7, r29, 2, 0x16, 0x1d
/* 8004D940 3C C0 80 3B */ lis r6, effectIDTable@ha /* 0x803A8314@ha */
/* 8004D944 38 06 83 14 */ addi r0, r6, effectIDTable@l /* 0x803A8314@l */
/* 8004D948 7C C0 3A 14 */ add r6, r0, r7
/* 8004D94C 7C C6 DA 2E */ lhzx r6, r6, r27
/* 8004D950 7E 87 A3 78 */ mr r7, r20
/* 8004D954 7E A8 AB 78 */ mr r8, r21
/* 8004D958 7E C9 B3 78 */ mr r9, r22
/* 8004D95C 7E EA BB 78 */ mr r10, r23
/* 8004D960 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8004D964 4B FF FB 69 */ bl set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf
/* 8004D968 90 7F 00 00 */ stw r3, 0(r31)
lbl_8004D96C:
/* 8004D96C 7F 83 E3 78 */ mr r3, r28
lbl_8004D970:
/* 8004D970 39 61 00 70 */ addi r11, r1, 0x70
/* 8004D974 48 31 48 8D */ bl _restgpr_19
/* 8004D978 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8004D97C 7C 08 03 A6 */ mtlr r0
/* 8004D980 38 21 00 70 */ addi r1, r1, 0x70
/* 8004D984 4E 80 00 20 */ blr
@@ -1,16 +0,0 @@
lbl_8004AD58:
/* 8004AD58 80 8D 89 18 */ lwz r4, mModel__18dPa_modelEcallBack(r13)
/* 8004AD5C 28 04 00 00 */ cmplwi r4, 0
/* 8004AD60 41 82 00 28 */ beq lbl_8004AD88
/* 8004AD64 28 03 00 00 */ cmplwi r3, 0
/* 8004AD68 41 82 00 20 */ beq lbl_8004AD88
/* 8004AD6C 80 63 00 C0 */ lwz r3, 0xc0(r3)
/* 8004AD70 3C 03 00 01 */ addis r0, r3, 1
/* 8004AD74 28 00 FF FF */ cmplwi r0, 0xffff
/* 8004AD78 41 82 00 10 */ beq lbl_8004AD88
/* 8004AD7C 1C 03 03 94 */ mulli r0, r3, 0x394
/* 8004AD80 7C 64 02 14 */ add r3, r4, r0
/* 8004AD84 4E 80 00 20 */ blr
lbl_8004AD88:
/* 8004AD88 38 60 00 00 */ li r3, 0
/* 8004AD8C 4E 80 00 20 */ blr
@@ -1,59 +0,0 @@
lbl_8004CF90:
/* 8004CF90 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004CF94 7C 08 02 A6 */ mflr r0
/* 8004CF98 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004CF9C 39 61 00 20 */ addi r11, r1, 0x20
/* 8004CFA0 48 31 52 31 */ bl _savegpr_26
/* 8004CFA4 7C 7A 1B 78 */ mr r26, r3
/* 8004CFA8 7C 9B 23 78 */ mr r27, r4
/* 8004CFAC 7C BC 2B 78 */ mr r28, r5
/* 8004CFB0 7C DD 33 78 */ mr r29, r6
/* 8004CFB4 7C FE 3B 78 */ mr r30, r7
/* 8004CFB8 7D 1F 43 78 */ mr r31, r8
/* 8004CFBC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8004CFC0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8004CFC4 38 63 0F 38 */ addi r3, r3, 0xf38
/* 8004CFC8 7F 44 D3 78 */ mr r4, r26
/* 8004CFCC 48 02 76 95 */ bl ChkPolySafe__4cBgSFRC13cBgS_PolyInfo
/* 8004CFD0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004CFD4 40 82 00 0C */ bne lbl_8004CFE0
/* 8004CFD8 38 60 00 00 */ li r3, 0
/* 8004CFDC 48 00 00 74 */ b lbl_8004D050
lbl_8004CFE0:
/* 8004CFE0 2C 1B 00 00 */ cmpwi r27, 0
/* 8004CFE4 40 82 00 38 */ bne lbl_8004D01C
/* 8004CFE8 7F 43 D3 78 */ mr r3, r26
/* 8004CFEC 7F 84 E3 78 */ mr r4, r28
/* 8004CFF0 48 15 E6 79 */ bl dKy_pol_eff_prim_get__FPC13cBgS_PolyInfoP8_GXColor
/* 8004CFF4 7F 43 D3 78 */ mr r3, r26
/* 8004CFF8 7F A4 EB 78 */ mr r4, r29
/* 8004CFFC 48 15 E7 D5 */ bl dKy_pol_eff_env_get__FPC13cBgS_PolyInfoP8_GXColor
/* 8004D000 7F 43 D3 78 */ mr r3, r26
/* 8004D004 48 15 EC 0D */ bl dKy_pol_eff_alpha_get__FPC13cBgS_PolyInfo
/* 8004D008 98 7E 00 00 */ stb r3, 0(r30)
/* 8004D00C 7F 43 D3 78 */ mr r3, r26
/* 8004D010 48 15 ED 3D */ bl dKy_pol_eff_ratio_get__FPC13cBgS_PolyInfo
/* 8004D014 D0 3F 00 00 */ stfs f1, 0(r31)
/* 8004D018 48 00 00 34 */ b lbl_8004D04C
lbl_8004D01C:
/* 8004D01C 7F 43 D3 78 */ mr r3, r26
/* 8004D020 7F 84 E3 78 */ mr r4, r28
/* 8004D024 48 15 E9 19 */ bl dKy_pol_eff2_prim_get__FPC13cBgS_PolyInfoP8_GXColor
/* 8004D028 7F 43 D3 78 */ mr r3, r26
/* 8004D02C 7F A4 EB 78 */ mr r4, r29
/* 8004D030 48 15 EA 75 */ bl dKy_pol_eff2_env_get__FPC13cBgS_PolyInfoP8_GXColor
/* 8004D034 7F 43 D3 78 */ mr r3, r26
/* 8004D038 48 15 EE 71 */ bl dKy_pol_eff2_alpha_get__FPC13cBgS_PolyInfo
/* 8004D03C 98 7E 00 00 */ stb r3, 0(r30)
/* 8004D040 7F 43 D3 78 */ mr r3, r26
/* 8004D044 48 15 EF A1 */ bl dKy_pol_eff2_ratio_get__FPC13cBgS_PolyInfo
/* 8004D048 D0 3F 00 00 */ stfs f1, 0(r31)
lbl_8004D04C:
/* 8004D04C 38 60 00 01 */ li r3, 1
lbl_8004D050:
/* 8004D050 39 61 00 20 */ addi r11, r1, 0x20
/* 8004D054 48 31 51 C9 */ bl _restgpr_26
/* 8004D058 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004D05C 7C 08 03 A6 */ mtlr r0
/* 8004D060 38 21 00 20 */ addi r1, r1, 0x20
/* 8004D064 4E 80 00 20 */ blr
@@ -1,16 +0,0 @@
lbl_8004AD90:
/* 8004AD90 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004AD94 7C 08 02 A6 */ mflr r0
/* 8004AD98 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004AD9C 4B FF FF BD */ bl getModel__18dPa_modelEcallBackFP14JPABaseEmitter
/* 8004ADA0 28 03 00 00 */ cmplwi r3, 0
/* 8004ADA4 41 82 00 0C */ beq lbl_8004ADB0
/* 8004ADA8 88 63 03 90 */ lbz r3, 0x390(r3)
/* 8004ADAC 48 00 00 08 */ b lbl_8004ADB4
lbl_8004ADB0:
/* 8004ADB0 38 60 00 00 */ li r3, 0
lbl_8004ADB4:
/* 8004ADB4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004ADB8 7C 08 03 A6 */ mtlr r0
/* 8004ADBC 38 21 00 10 */ addi r1, r1, 0x10
/* 8004ADC0 4E 80 00 20 */ blr
@@ -1,19 +0,0 @@
lbl_8004D23C:
/* 8004D23C 38 A3 00 1C */ addi r5, r3, 0x1c
/* 8004D240 88 03 00 19 */ lbz r0, 0x19(r3)
/* 8004D244 54 83 04 3E */ clrlwi r3, r4, 0x10
/* 8004D248 7C 09 03 A6 */ mtctr r0
/* 8004D24C 2C 00 00 00 */ cmpwi r0, 0
/* 8004D250 40 81 00 20 */ ble lbl_8004D270
lbl_8004D254:
/* 8004D254 A0 05 00 08 */ lhz r0, 8(r5)
/* 8004D258 7C 03 00 40 */ cmplw r3, r0
/* 8004D25C 40 82 00 0C */ bne lbl_8004D268
/* 8004D260 7C A3 2B 78 */ mr r3, r5
/* 8004D264 4E 80 00 20 */ blr
lbl_8004D268:
/* 8004D268 38 A5 00 14 */ addi r5, r5, 0x14
/* 8004D26C 42 00 FF E8 */ bdnz lbl_8004D254
lbl_8004D270:
/* 8004D270 38 60 00 00 */ li r3, 0
/* 8004D274 4E 80 00 20 */ blr
@@ -1,37 +0,0 @@
lbl_80049B30:
/* 80049B30 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80049B34 7C 08 02 A6 */ mflr r0
/* 80049B38 90 01 00 24 */ stw r0, 0x24(r1)
/* 80049B3C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80049B40 7C 7F 1B 78 */ mr r31, r3
/* 80049B44 38 60 00 00 */ li r3, 0
/* 80049B48 38 80 00 01 */ li r4, 1
/* 80049B4C 38 A0 00 00 */ li r5, 0
/* 80049B50 38 C0 00 01 */ li r6, 1
/* 80049B54 38 E0 00 FE */ li r7, 0xfe
/* 80049B58 39 00 00 02 */ li r8, 2
/* 80049B5C 39 20 00 01 */ li r9, 1
/* 80049B60 48 31 40 0D */ bl GXSetChanCtrl
/* 80049B64 38 60 00 02 */ li r3, 2
/* 80049B68 38 80 00 00 */ li r4, 0
/* 80049B6C 38 A0 00 00 */ li r5, 0
/* 80049B70 38 C0 00 01 */ li r6, 1
/* 80049B74 38 E0 00 FE */ li r7, 0xfe
/* 80049B78 39 00 00 02 */ li r8, 2
/* 80049B7C 39 20 00 01 */ li r9, 1
/* 80049B80 48 31 3F ED */ bl GXSetChanCtrl
/* 80049B84 80 1F 00 00 */ lwz r0, 0(r31)
/* 80049B88 90 01 00 0C */ stw r0, 0xc(r1)
/* 80049B8C 38 60 00 04 */ li r3, 4
/* 80049B90 38 81 00 0C */ addi r4, r1, 0xc
/* 80049B94 48 31 3D CD */ bl GXSetChanAmbColor
/* 80049B98 80 0D 80 88 */ lwz r0, g_whiteColor(r13)
/* 80049B9C 90 01 00 08 */ stw r0, 8(r1)
/* 80049BA0 38 60 00 04 */ li r3, 4
/* 80049BA4 38 81 00 08 */ addi r4, r1, 8
/* 80049BA8 48 31 3E A1 */ bl GXSetChanMatColor
/* 80049BAC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80049BB0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80049BB4 7C 08 03 A6 */ mtlr r0
/* 80049BB8 38 21 00 20 */ addi r1, r1, 0x20
/* 80049BBC 4E 80 00 20 */ blr
@@ -1,40 +0,0 @@
lbl_8004D128:
/* 8004D128 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004D12C 7C 08 02 A6 */ mflr r0
/* 8004D130 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004D134 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004D138 7C 7F 1B 78 */ mr r31, r3
/* 8004D13C 7C 87 23 78 */ mr r7, r4
/* 8004D140 7C A6 2B 78 */ mr r6, r5
/* 8004D144 88 03 00 19 */ lbz r0, 0x19(r3)
/* 8004D148 28 00 00 19 */ cmplwi r0, 0x19
/* 8004D14C 41 80 00 20 */ blt lbl_8004D16C
/* 8004D150 3C 60 80 38 */ lis r3, d_particle_d_particle__stringBase0@ha /* 0x8037A12C@ha */
/* 8004D154 38 63 A1 2C */ addi r3, r3, d_particle_d_particle__stringBase0@l /* 0x8037A12C@l */
/* 8004D158 38 63 00 23 */ addi r3, r3, 0x23
/* 8004D15C 4C C6 31 82 */ crclr 6
/* 8004D160 4B FB 99 5D */ bl OSReport
/* 8004D164 38 60 00 00 */ li r3, 0
/* 8004D168 48 00 00 3C */ b lbl_8004D1A4
lbl_8004D16C:
/* 8004D16C 1C 60 00 14 */ mulli r3, r0, 0x14
/* 8004D170 38 63 00 1C */ addi r3, r3, 0x1c
/* 8004D174 7C 7F 1A 14 */ add r3, r31, r3
/* 8004D178 80 8D 89 20 */ lwz r4, mEmitterMng__13dPa_control_c(r13)
/* 8004D17C 7C E5 3B 78 */ mr r5, r7
/* 8004D180 4B FF DE 19 */ bl create__19dPa_simpleEcallBackFP17JPAEmitterManagerUsUc
/* 8004D184 28 03 00 00 */ cmplwi r3, 0
/* 8004D188 40 82 00 0C */ bne lbl_8004D194
/* 8004D18C 38 60 00 00 */ li r3, 0
/* 8004D190 48 00 00 14 */ b lbl_8004D1A4
lbl_8004D194:
/* 8004D194 88 7F 00 19 */ lbz r3, 0x19(r31)
/* 8004D198 38 03 00 01 */ addi r0, r3, 1
/* 8004D19C 98 1F 00 19 */ stb r0, 0x19(r31)
/* 8004D1A0 38 60 00 01 */ li r3, 1
lbl_8004D1A4:
/* 8004D1A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004D1A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004D1AC 7C 08 03 A6 */ mtlr r0
/* 8004D1B0 38 21 00 10 */ addi r1, r1, 0x10
/* 8004D1B4 4E 80 00 20 */ blr
@@ -1,50 +0,0 @@
lbl_8004BDFC:
/* 8004BDFC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004BE00 7C 08 02 A6 */ mflr r0
/* 8004BE04 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004BE08 39 61 00 20 */ addi r11, r1, 0x20
/* 8004BE0C 48 31 63 D1 */ bl _savegpr_29
/* 8004BE10 7C 7D 1B 78 */ mr r29, r3
/* 8004BE14 7C 9E 23 78 */ mr r30, r4
/* 8004BE18 7C BF 2B 78 */ mr r31, r5
/* 8004BE1C 54 83 06 3E */ clrlwi r3, r4, 0x18
/* 8004BE20 28 03 00 FF */ cmplwi r3, 0xff
/* 8004BE24 41 82 00 10 */ beq lbl_8004BE34
/* 8004BE28 88 1D 00 18 */ lbz r0, 0x18(r29)
/* 8004BE2C 7C 03 00 40 */ cmplw r3, r0
/* 8004BE30 40 82 00 0C */ bne lbl_8004BE3C
lbl_8004BE34:
/* 8004BE34 38 60 00 00 */ li r3, 0
/* 8004BE38 48 00 00 60 */ b lbl_8004BE98
lbl_8004BE3C:
/* 8004BE3C 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 8004BE40 28 03 00 00 */ cmplwi r3, 0
/* 8004BE44 41 82 00 14 */ beq lbl_8004BE58
/* 8004BE48 38 80 00 00 */ li r4, 0
/* 8004BE4C 48 28 26 B5 */ bl free__7JKRHeapFPvP7JKRHeap
/* 8004BE50 38 00 00 00 */ li r0, 0
/* 8004BE54 90 1D 00 10 */ stw r0, 0x10(r29)
lbl_8004BE58:
/* 8004BE58 9B DD 00 18 */ stb r30, 0x18(r29)
/* 8004BE5C 3C 60 80 42 */ lis r3, jpcName@ha /* 0x804248AC@ha */
/* 8004BE60 38 63 48 AC */ addi r3, r3, jpcName@l /* 0x804248AC@l */
/* 8004BE64 3C 80 80 38 */ lis r4, d_particle_d_particle__stringBase0@ha /* 0x8037A12C@ha */
/* 8004BE68 38 84 A1 2C */ addi r4, r4, d_particle_d_particle__stringBase0@l /* 0x8037A12C@l */
/* 8004BE6C 38 84 00 06 */ addi r4, r4, 6
/* 8004BE70 57 C5 06 3E */ clrlwi r5, r30, 0x18
/* 8004BE74 4C C6 31 82 */ crclr 6
/* 8004BE78 48 31 A6 65 */ bl sprintf
/* 8004BE7C 3C 60 80 42 */ lis r3, jpcName@ha /* 0x804248AC@ha */
/* 8004BE80 38 63 48 AC */ addi r3, r3, jpcName@l /* 0x804248AC@l */
/* 8004BE84 38 80 00 00 */ li r4, 0
/* 8004BE88 80 BD 00 08 */ lwz r5, 8(r29)
/* 8004BE8C 4B FC A5 09 */ bl create__21mDoDvdThd_toMainRam_cFPCcUcP7JKRHeap
/* 8004BE90 90 7F 00 00 */ stw r3, 0(r31)
/* 8004BE94 38 60 00 01 */ li r3, 1
lbl_8004BE98:
/* 8004BE98 39 61 00 20 */ addi r11, r1, 0x20
/* 8004BE9C 48 31 63 8D */ bl _restgpr_29
/* 8004BEA0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004BEA4 7C 08 03 A6 */ mtlr r0
/* 8004BEA8 38 21 00 20 */ addi r1, r1, 0x20
/* 8004BEAC 4E 80 00 20 */ blr
@@ -1,42 +0,0 @@
lbl_8004BF3C:
/* 8004BF3C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004BF40 7C 08 02 A6 */ mflr r0
/* 8004BF44 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004BF48 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004BF4C 93 C1 00 08 */ stw r30, 8(r1)
/* 8004BF50 7C 7E 1B 78 */ mr r30, r3
/* 8004BF54 7C 9F 23 78 */ mr r31, r4
/* 8004BF58 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8004BF5C 28 00 00 00 */ cmplwi r0, 0
/* 8004BF60 40 82 00 0C */ bne lbl_8004BF6C
/* 8004BF64 38 60 00 00 */ li r3, 0
/* 8004BF68 48 00 00 54 */ b lbl_8004BFBC
lbl_8004BF6C:
/* 8004BF6C 80 6D 89 20 */ lwz r3, mEmitterMng__13dPa_control_c(r13)
/* 8004BF70 38 80 00 01 */ li r4, 1
/* 8004BF74 48 23 23 E1 */ bl clearResourceManager__17JPAEmitterManagerFUc
/* 8004BF78 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8004BF7C 4B FC 32 11 */ bl mDoExt_destroySolidHeap__FP12JKRSolidHeap
/* 8004BF80 38 00 00 00 */ li r0, 0
/* 8004BF84 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8004BF88 90 1E 00 14 */ stw r0, 0x14(r30)
/* 8004BF8C 88 1E 00 1A */ lbz r0, 0x1a(r30)
/* 8004BF90 98 1E 00 19 */ stb r0, 0x19(r30)
/* 8004BF94 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 8004BF98 41 82 00 20 */ beq lbl_8004BFB8
/* 8004BF9C 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 8004BFA0 38 80 00 00 */ li r4, 0
/* 8004BFA4 48 28 25 5D */ bl free__7JKRHeapFPvP7JKRHeap
/* 8004BFA8 38 00 00 00 */ li r0, 0
/* 8004BFAC 90 1E 00 10 */ stw r0, 0x10(r30)
/* 8004BFB0 38 00 00 FF */ li r0, 0xff
/* 8004BFB4 98 1E 00 18 */ stb r0, 0x18(r30)
lbl_8004BFB8:
/* 8004BFB8 38 60 00 01 */ li r3, 1
lbl_8004BFBC:
/* 8004BFBC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004BFC0 83 C1 00 08 */ lwz r30, 8(r1)
/* 8004BFC4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004BFC8 7C 08 03 A6 */ mtlr r0
/* 8004BFCC 38 21 00 10 */ addi r1, r1, 0x10
/* 8004BFD0 4E 80 00 20 */ blr
@@ -1,35 +0,0 @@
lbl_8004BFD4:
/* 8004BFD4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004BFD8 7C 08 02 A6 */ mflr r0
/* 8004BFDC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004BFE0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004BFE4 93 C1 00 08 */ stw r30, 8(r1)
/* 8004BFE8 7C 7E 1B 78 */ mr r30, r3
/* 8004BFEC 7C 9F 23 78 */ mr r31, r4
/* 8004BFF0 38 7E 02 10 */ addi r3, r30, 0x210
/* 8004BFF4 4B FF F8 15 */ bl cleanup__Q213dPa_control_c7level_cFv
/* 8004BFF8 7F C3 F3 78 */ mr r3, r30
/* 8004BFFC 7F E4 FB 78 */ mr r4, r31
/* 8004C000 4B FF FF 3D */ bl removeRoomScene__13dPa_control_cFb
/* 8004C004 38 A0 00 00 */ li r5, 0
/* 8004C008 38 60 00 00 */ li r3, 0
/* 8004C00C 7C 64 1B 78 */ mr r4, r3
/* 8004C010 48 00 00 14 */ b lbl_8004C024
lbl_8004C014:
/* 8004C014 38 03 00 20 */ addi r0, r3, 0x20
/* 8004C018 7C 9E 01 2E */ stwx r4, r30, r0
/* 8004C01C 38 A5 00 01 */ addi r5, r5, 1
/* 8004C020 38 63 00 14 */ addi r3, r3, 0x14
lbl_8004C024:
/* 8004C024 88 1E 00 1A */ lbz r0, 0x1a(r30)
/* 8004C028 7C 05 00 00 */ cmpw r5, r0
/* 8004C02C 41 80 FF E8 */ blt lbl_8004C014
/* 8004C030 80 6D 89 20 */ lwz r3, mEmitterMng__13dPa_control_c(r13)
/* 8004C034 48 23 21 ED */ bl forceDeleteAllEmitter__17JPAEmitterManagerFv
/* 8004C038 4B FF EB 8D */ bl remove__18dPa_modelEcallBackFv
/* 8004C03C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004C040 83 C1 00 08 */ lwz r30, 8(r1)
/* 8004C044 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004C048 7C 08 03 A6 */ mtlr r0
/* 8004C04C 38 21 00 10 */ addi r1, r1, 0x10
/* 8004C050 4E 80 00 20 */ blr
@@ -1,17 +0,0 @@
lbl_8004ABC4:
/* 8004ABC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004ABC8 7C 08 02 A6 */ mflr r0
/* 8004ABCC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004ABD0 80 6D 89 18 */ lwz r3, mModel__18dPa_modelEcallBack(r13)
/* 8004ABD4 28 03 00 00 */ cmplwi r3, 0
/* 8004ABD8 41 82 00 18 */ beq lbl_8004ABF0
/* 8004ABDC 3C 80 80 05 */ lis r4, __dt__Q218dPa_modelEcallBack7model_cFv@ha /* 0x8004AB88@ha */
/* 8004ABE0 38 84 AB 88 */ addi r4, r4, __dt__Q218dPa_modelEcallBack7model_cFv@l /* 0x8004AB88@l */
/* 8004ABE4 48 31 70 89 */ bl __destroy_new_array
/* 8004ABE8 38 00 00 00 */ li r0, 0
/* 8004ABEC 90 0D 89 18 */ stw r0, mModel__18dPa_modelEcallBack(r13)
lbl_8004ABF0:
/* 8004ABF0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004ABF4 7C 08 03 A6 */ mtlr r0
/* 8004ABF8 38 21 00 10 */ addi r1, r1, 0x10
/* 8004ABFC 4E 80 00 20 */ blr
@@ -1,14 +0,0 @@
lbl_8004AC90:
/* 8004AC90 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004AC94 7C 08 02 A6 */ mflr r0
/* 8004AC98 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004AC9C 48 00 00 BD */ bl getModel__18dPa_modelEcallBackFP14JPABaseEmitter
/* 8004ACA0 28 03 00 00 */ cmplwi r3, 0
/* 8004ACA4 41 82 00 0C */ beq lbl_8004ACB0
/* 8004ACA8 38 00 00 00 */ li r0, 0
/* 8004ACAC 90 03 00 00 */ stw r0, 0(r3)
lbl_8004ACB0:
/* 8004ACB0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004ACB4 7C 08 03 A6 */ mtlr r0
/* 8004ACB8 38 21 00 10 */ addi r1, r1, 0x10
/* 8004ACBC 4E 80 00 20 */ blr
@@ -1,39 +0,0 @@
lbl_8004AC00:
/* 8004AC00 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004AC04 7C 08 02 A6 */ mflr r0
/* 8004AC08 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004AC0C 39 61 00 30 */ addi r11, r1, 0x30
/* 8004AC10 48 31 75 BD */ bl _savegpr_25
/* 8004AC14 7C 79 1B 78 */ mr r25, r3
/* 8004AC18 7C 9A 23 78 */ mr r26, r4
/* 8004AC1C 7C BB 2B 78 */ mr r27, r5
/* 8004AC20 7C DC 33 78 */ mr r28, r6
/* 8004AC24 7C FD 3B 78 */ mr r29, r7
/* 8004AC28 7D 1E 43 78 */ mr r30, r8
/* 8004AC2C 7D 3F 4B 78 */ mr r31, r9
/* 8004AC30 48 00 01 29 */ bl getModel__18dPa_modelEcallBackFP14JPABaseEmitter
/* 8004AC34 28 03 00 00 */ cmplwi r3, 0
/* 8004AC38 41 82 00 3C */ beq lbl_8004AC74
/* 8004AC3C 7F 44 D3 78 */ mr r4, r26
/* 8004AC40 7F 65 DB 78 */ mr r5, r27
/* 8004AC44 7F 86 E3 78 */ mr r6, r28
/* 8004AC48 7F A7 EB 78 */ mr r7, r29
/* 8004AC4C 7F C8 F3 78 */ mr r8, r30
/* 8004AC50 7F E9 FB 78 */ mr r9, r31
/* 8004AC54 4B FF F9 B5 */ bl set__Q218dPa_modelEcallBack7model_cFP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc
/* 8004AC58 38 0D 89 10 */ la r0, mEcallback__18dPa_modelEcallBack(r13) /* 80450E90-_SDA_BASE_ */
/* 8004AC5C 90 19 00 EC */ stw r0, 0xec(r25)
/* 8004AC60 80 19 00 F4 */ lwz r0, 0xf4(r25)
/* 8004AC64 60 00 00 40 */ ori r0, r0, 0x40
/* 8004AC68 90 19 00 F4 */ stw r0, 0xf4(r25)
/* 8004AC6C 38 60 00 01 */ li r3, 1
/* 8004AC70 48 00 00 08 */ b lbl_8004AC78
lbl_8004AC74:
/* 8004AC74 38 60 00 00 */ li r3, 0
lbl_8004AC78:
/* 8004AC78 39 61 00 30 */ addi r11, r1, 0x30
/* 8004AC7C 48 31 75 9D */ bl _restgpr_25
/* 8004AC80 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004AC84 7C 08 03 A6 */ mtlr r0
/* 8004AC88 38 21 00 30 */ addi r1, r1, 0x30
/* 8004AC8C 4E 80 00 20 */ blr
@@ -1,4 +0,0 @@
lbl_8004F6B8:
/* 8004F6B8 90 83 00 10 */ stw r4, 0x10(r3)
/* 8004F6BC 90 A3 00 14 */ stw r5, 0x14(r3)
/* 8004F6C0 4E 80 00 20 */ blr
@@ -1,36 +0,0 @@
lbl_8004D1B8:
/* 8004D1B8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004D1BC 7C 08 02 A6 */ mflr r0
/* 8004D1C0 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004D1C4 DB E1 00 28 */ stfd f31, 0x28(r1)
/* 8004D1C8 39 61 00 28 */ addi r11, r1, 0x28
/* 8004D1CC 48 31 50 05 */ bl _savegpr_26
/* 8004D1D0 7C BA 2B 78 */ mr r26, r5
/* 8004D1D4 7C DB 33 78 */ mr r27, r6
/* 8004D1D8 7C FC 3B 78 */ mr r28, r7
/* 8004D1DC 7D 1D 43 78 */ mr r29, r8
/* 8004D1E0 7D 3E 4B 78 */ mr r30, r9
/* 8004D1E4 7D 5F 53 78 */ mr r31, r10
/* 8004D1E8 FF E0 08 90 */ fmr f31, f1
/* 8004D1EC 48 00 00 51 */ bl getSimple__13dPa_control_cFUs
/* 8004D1F0 28 03 00 00 */ cmplwi r3, 0
/* 8004D1F4 40 82 00 0C */ bne lbl_8004D200
/* 8004D1F8 38 60 00 00 */ li r3, 0
/* 8004D1FC 48 00 00 24 */ b lbl_8004D220
lbl_8004D200:
/* 8004D200 7F 44 D3 78 */ mr r4, r26
/* 8004D204 7F 65 DB 78 */ mr r5, r27
/* 8004D208 7F 86 E3 78 */ mr r6, r28
/* 8004D20C 7F A7 EB 78 */ mr r7, r29
/* 8004D210 7F C8 F3 78 */ mr r8, r30
/* 8004D214 7F E9 FB 78 */ mr r9, r31
/* 8004D218 FC 20 F8 90 */ fmr f1, f31
/* 8004D21C 4B FF DF 4D */ bl set__19dPa_simpleEcallBackFPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif
lbl_8004D220:
/* 8004D220 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 8004D224 39 61 00 28 */ addi r11, r1, 0x28
/* 8004D228 48 31 4F F5 */ bl _restgpr_26
/* 8004D22C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004D230 7C 08 03 A6 */ mtlr r0
/* 8004D234 38 21 00 30 */ addi r1, r1, 0x30
/* 8004D238 4E 80 00 20 */ blr
@@ -1,24 +0,0 @@
lbl_8004D770:
/* 8004D770 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004D774 7C 08 02 A6 */ mflr r0
/* 8004D778 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004D77C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004D780 38 63 02 10 */ addi r3, r3, 0x210
/* 8004D784 4B FF E0 F1 */ bl get__Q213dPa_control_c7level_cFUl
/* 8004D788 7C 7F 1B 79 */ or. r31, r3, r3
/* 8004D78C 41 82 00 20 */ beq lbl_8004D7AC
/* 8004D790 4B FF DD 75 */ bl onActive__Q313dPa_control_c7level_c9emitter_cFv
/* 8004D794 80 7F 00 08 */ lwz r3, 8(r31)
/* 8004D798 80 03 00 F4 */ lwz r0, 0xf4(r3)
/* 8004D79C 60 00 00 01 */ ori r0, r0, 1
/* 8004D7A0 90 03 00 F4 */ stw r0, 0xf4(r3)
/* 8004D7A4 80 7F 00 00 */ lwz r3, 0(r31)
/* 8004D7A8 48 00 00 08 */ b lbl_8004D7B0
lbl_8004D7AC:
/* 8004D7AC 38 60 00 00 */ li r3, 0
lbl_8004D7B0:
/* 8004D7B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004D7B4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004D7B8 7C 08 03 A6 */ mtlr r0
/* 8004D7BC 38 21 00 10 */ addi r1, r1, 0x10
/* 8004D7C0 4E 80 00 20 */ blr
@@ -1,109 +0,0 @@
lbl_8004A608:
/* 8004A608 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004A60C 7C 08 02 A6 */ mflr r0
/* 8004A610 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004A614 39 61 00 30 */ addi r11, r1, 0x30
/* 8004A618 48 31 7B AD */ bl _savegpr_23
/* 8004A61C 7C 7A 1B 78 */ mr r26, r3
/* 8004A620 7C BB 2B 78 */ mr r27, r5
/* 8004A624 7C DC 33 78 */ mr r28, r6
/* 8004A628 7C FD 3B 78 */ mr r29, r7
/* 8004A62C 7D 1E 43 78 */ mr r30, r8
/* 8004A630 7D 3F 4B 78 */ mr r31, r9
/* 8004A634 80 03 00 00 */ lwz r0, 0(r3)
/* 8004A638 28 00 00 00 */ cmplwi r0, 0
/* 8004A63C 41 82 00 0C */ beq lbl_8004A648
/* 8004A640 38 60 00 00 */ li r3, 0
/* 8004A644 48 00 01 50 */ b lbl_8004A794
lbl_8004A648:
/* 8004A648 90 9A 00 00 */ stw r4, 0(r26)
/* 8004A64C 38 7A 00 08 */ addi r3, r26, 8
/* 8004A650 7F 64 DB 78 */ mr r4, r27
/* 8004A654 48 2D B0 71 */ bl __as__12J3DLightInfoFRC12J3DLightInfo
/* 8004A658 3A FA 00 7C */ addi r23, r26, 0x7c
/* 8004A65C 3B 1B 00 74 */ addi r24, r27, 0x74
/* 8004A660 3B 3A 03 34 */ addi r25, r26, 0x334
lbl_8004A664:
/* 8004A664 7E E3 BB 78 */ mr r3, r23
/* 8004A668 7F 04 C3 78 */ mr r4, r24
/* 8004A66C 48 2D B0 59 */ bl __as__12J3DLightInfoFRC12J3DLightInfo
/* 8004A670 3A F7 00 74 */ addi r23, r23, 0x74
/* 8004A674 7C 17 C8 40 */ cmplw r23, r25
/* 8004A678 3B 18 00 74 */ addi r24, r24, 0x74
/* 8004A67C 41 80 FF E8 */ blt lbl_8004A664
/* 8004A680 C0 1B 03 2C */ lfs f0, 0x32c(r27)
/* 8004A684 D0 1A 03 34 */ stfs f0, 0x334(r26)
/* 8004A688 C0 1B 03 30 */ lfs f0, 0x330(r27)
/* 8004A68C D0 1A 03 38 */ stfs f0, 0x338(r26)
/* 8004A690 C0 1B 03 34 */ lfs f0, 0x334(r27)
/* 8004A694 D0 1A 03 3C */ stfs f0, 0x33c(r26)
/* 8004A698 C0 1B 03 38 */ lfs f0, 0x338(r27)
/* 8004A69C D0 1A 03 40 */ stfs f0, 0x340(r26)
/* 8004A6A0 C0 1B 03 3C */ lfs f0, 0x33c(r27)
/* 8004A6A4 D0 1A 03 44 */ stfs f0, 0x344(r26)
/* 8004A6A8 C0 1B 03 40 */ lfs f0, 0x340(r27)
/* 8004A6AC D0 1A 03 48 */ stfs f0, 0x348(r26)
/* 8004A6B0 C0 1B 03 44 */ lfs f0, 0x344(r27)
/* 8004A6B4 D0 1A 03 4C */ stfs f0, 0x34c(r26)
/* 8004A6B8 80 7B 03 48 */ lwz r3, 0x348(r27)
/* 8004A6BC 80 1B 03 4C */ lwz r0, 0x34c(r27)
/* 8004A6C0 90 7A 03 50 */ stw r3, 0x350(r26)
/* 8004A6C4 90 1A 03 54 */ stw r0, 0x354(r26)
/* 8004A6C8 80 7B 03 50 */ lwz r3, 0x350(r27)
/* 8004A6CC 80 1B 03 54 */ lwz r0, 0x354(r27)
/* 8004A6D0 90 7A 03 58 */ stw r3, 0x358(r26)
/* 8004A6D4 90 1A 03 5C */ stw r0, 0x35c(r26)
/* 8004A6D8 80 7B 03 58 */ lwz r3, 0x358(r27)
/* 8004A6DC 80 1B 03 5C */ lwz r0, 0x35c(r27)
/* 8004A6E0 90 7A 03 60 */ stw r3, 0x360(r26)
/* 8004A6E4 90 1A 03 64 */ stw r0, 0x364(r26)
/* 8004A6E8 80 1B 03 60 */ lwz r0, 0x360(r27)
/* 8004A6EC 90 1A 03 68 */ stw r0, 0x368(r26)
/* 8004A6F0 80 1B 03 64 */ lwz r0, 0x364(r27)
/* 8004A6F4 90 1A 03 6C */ stw r0, 0x36c(r26)
/* 8004A6F8 C0 1B 03 68 */ lfs f0, 0x368(r27)
/* 8004A6FC D0 1A 03 70 */ stfs f0, 0x370(r26)
/* 8004A700 C0 1B 03 6C */ lfs f0, 0x36c(r27)
/* 8004A704 D0 1A 03 74 */ stfs f0, 0x374(r26)
/* 8004A708 C0 1B 03 70 */ lfs f0, 0x370(r27)
/* 8004A70C D0 1A 03 78 */ stfs f0, 0x378(r26)
/* 8004A710 C0 1B 03 74 */ lfs f0, 0x374(r27)
/* 8004A714 D0 1A 03 7C */ stfs f0, 0x37c(r26)
/* 8004A718 A0 1B 03 78 */ lhz r0, 0x378(r27)
/* 8004A71C B0 1A 03 80 */ sth r0, 0x380(r26)
/* 8004A720 88 1B 03 7A */ lbz r0, 0x37a(r27)
/* 8004A724 98 1A 03 82 */ stb r0, 0x382(r26)
/* 8004A728 88 1B 03 7B */ lbz r0, 0x37b(r27)
/* 8004A72C 98 1A 03 83 */ stb r0, 0x383(r26)
/* 8004A730 88 1B 03 7C */ lbz r0, 0x37c(r27)
/* 8004A734 98 1A 03 84 */ stb r0, 0x384(r26)
/* 8004A738 88 1B 03 7D */ lbz r0, 0x37d(r27)
/* 8004A73C 98 1A 03 85 */ stb r0, 0x385(r26)
/* 8004A740 88 1B 03 7E */ lbz r0, 0x37e(r27)
/* 8004A744 98 1A 03 86 */ stb r0, 0x386(r26)
/* 8004A748 88 1B 03 7F */ lbz r0, 0x37f(r27)
/* 8004A74C 98 1A 03 87 */ stb r0, 0x387(r26)
/* 8004A750 88 1B 03 80 */ lbz r0, 0x380(r27)
/* 8004A754 98 1A 03 88 */ stb r0, 0x388(r26)
/* 8004A758 88 1B 03 81 */ lbz r0, 0x381(r27)
/* 8004A75C 98 1A 03 89 */ stb r0, 0x389(r26)
/* 8004A760 88 1B 03 82 */ lbz r0, 0x382(r27)
/* 8004A764 98 1A 03 8A */ stb r0, 0x38a(r26)
/* 8004A768 88 1B 03 83 */ lbz r0, 0x383(r27)
/* 8004A76C 98 1A 03 8B */ stb r0, 0x38b(r26)
/* 8004A770 88 1B 03 84 */ lbz r0, 0x384(r27)
/* 8004A774 98 1A 03 8C */ stb r0, 0x38c(r26)
/* 8004A778 88 1B 03 85 */ lbz r0, 0x385(r27)
/* 8004A77C 98 1A 03 8D */ stb r0, 0x38d(r26)
/* 8004A780 9B 9A 03 90 */ stb r28, 0x390(r26)
/* 8004A784 9B FA 03 91 */ stb r31, 0x391(r26)
/* 8004A788 93 BA 00 04 */ stw r29, 4(r26)
/* 8004A78C 9B DA 03 92 */ stb r30, 0x392(r26)
/* 8004A790 38 60 00 01 */ li r3, 1
lbl_8004A794:
/* 8004A794 39 61 00 30 */ addi r11, r1, 0x30
/* 8004A798 48 31 7A 79 */ bl _restgpr_23
/* 8004A79C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004A7A0 7C 08 03 A6 */ mtlr r0
/* 8004A7A4 38 21 00 30 */ addi r1, r1, 0x30
/* 8004A7A8 4E 80 00 20 */ blr
@@ -1,13 +0,0 @@
lbl_8004ACC0:
/* 8004ACC0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004ACC4 7C 08 02 A6 */ mflr r0
/* 8004ACC8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004ACCC 48 00 00 8D */ bl getModel__18dPa_modelEcallBackFP14JPABaseEmitter
/* 8004ACD0 28 03 00 00 */ cmplwi r3, 0
/* 8004ACD4 41 82 00 08 */ beq lbl_8004ACDC
/* 8004ACD8 4B FF FA D5 */ bl setup__Q218dPa_modelEcallBack7model_cFv
lbl_8004ACDC:
/* 8004ACDC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004ACE0 7C 08 03 A6 */ mtlr r0
/* 8004ACE4 38 21 00 10 */ addi r1, r1, 0x10
/* 8004ACE8 4E 80 00 20 */ blr
@@ -1,32 +0,0 @@
lbl_8004AAA8:
/* 8004AAA8 38 00 00 00 */ li r0, 0
/* 8004AAAC 90 04 00 EC */ stw r0, 0xec(r4)
/* 8004AAB0 80 AD 89 18 */ lwz r5, mModel__18dPa_modelEcallBack(r13)
/* 8004AAB4 28 05 00 00 */ cmplwi r5, 0
/* 8004AAB8 4D 82 00 20 */ beqlr
/* 8004AABC 88 CD 89 1C */ lbz r6, struct_80450E9C+0x0(r13)
/* 8004AAC0 7C C9 03 A6 */ mtctr r6
/* 8004AAC4 2C 06 00 00 */ cmpwi r6, 0
/* 8004AAC8 4C 81 00 20 */ blelr
lbl_8004AACC:
/* 8004AACC 88 6D 89 1D */ lbz r3, struct_80450E9C+0x1(r13)
/* 8004AAD0 7C 03 33 D6 */ divw r0, r3, r6
/* 8004AAD4 7C 00 31 D6 */ mullw r0, r0, r6
/* 8004AAD8 7C 00 18 50 */ subf r0, r0, r3
/* 8004AADC 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8004AAE0 98 0D 89 1D */ stb r0, struct_80450E9C+0x1(r13)
/* 8004AAE4 1C 03 03 94 */ mulli r0, r3, 0x394
/* 8004AAE8 7C 05 00 2E */ lwzx r0, r5, r0
/* 8004AAEC 28 00 00 00 */ cmplwi r0, 0
/* 8004AAF0 40 82 00 1C */ bne lbl_8004AB0C
/* 8004AAF4 38 03 00 01 */ addi r0, r3, 1
/* 8004AAF8 98 0D 89 1D */ stb r0, struct_80450E9C+0x1(r13)
/* 8004AAFC 90 64 00 C0 */ stw r3, 0xc0(r4)
/* 8004AB00 38 0D 89 14 */ la r0, mPcallback__18dPa_modelEcallBack(r13) /* 80450E94-_SDA_BASE_ */
/* 8004AB04 90 04 00 F0 */ stw r0, 0xf0(r4)
/* 8004AB08 4E 80 00 20 */ blr
lbl_8004AB0C:
/* 8004AB0C 38 03 00 01 */ addi r0, r3, 1
/* 8004AB10 98 0D 89 1D */ stb r0, struct_80450E9C+0x1(r13)
/* 8004AB14 42 00 FF B8 */ bdnz lbl_8004AACC
/* 8004AB18 4E 80 00 20 */ blr
@@ -1,6 +0,0 @@
lbl_8004979C:
/* 8004979C 38 00 00 02 */ li r0, 2
/* 800497A0 98 04 01 10 */ stb r0, 0x110(r4)
/* 800497A4 38 0D 89 30 */ la r0, mLight8PcallBack__13dPa_control_c(r13) /* 80450EB0-_SDA_BASE_ */
/* 800497A8 90 04 00 F0 */ stw r0, 0xf0(r4)
/* 800497AC 4E 80 00 20 */ blr
@@ -1,8 +0,0 @@
lbl_800497B0:
/* 800497B0 38 00 00 02 */ li r0, 2
/* 800497B4 98 04 01 10 */ stb r0, 0x110(r4)
/* 800497B8 38 0D 89 38 */ la r0, m_b_Light8PcallBack__13dPa_control_c(r13) /* 80450EB8-_SDA_BASE_ */
/* 800497BC 90 04 00 F0 */ stw r0, 0xf0(r4)
/* 800497C0 7C E0 07 74 */ extsb r0, r7
/* 800497C4 90 04 00 C0 */ stw r0, 0xc0(r4)
/* 800497C8 4E 80 00 20 */ blr
@@ -1,8 +0,0 @@
lbl_800497CC:
/* 800497CC 38 00 00 02 */ li r0, 2
/* 800497D0 98 04 01 10 */ stb r0, 0x110(r4)
/* 800497D4 38 0D 89 40 */ la r0, m_d_Light8PcallBack__13dPa_control_c(r13) /* 80450EC0-_SDA_BASE_ */
/* 800497D8 90 04 00 F0 */ stw r0, 0xf0(r4)
/* 800497DC 7C E0 07 74 */ extsb r0, r7
/* 800497E0 90 04 00 C0 */ stw r0, 0xc0(r4)
/* 800497E4 4E 80 00 20 */ blr
@@ -1,75 +0,0 @@
lbl_8004A108:
/* 8004A108 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8004A10C 7C 08 02 A6 */ mflr r0
/* 8004A110 90 01 00 44 */ stw r0, 0x44(r1)
/* 8004A114 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8004A118 7C 7F 1B 78 */ mr r31, r3
/* 8004A11C 48 31 1D B1 */ bl GXFlush
/* 8004A120 38 61 00 08 */ addi r3, r1, 8
/* 8004A124 48 2F C3 61 */ bl PSMTXIdentity
/* 8004A128 38 61 00 08 */ addi r3, r1, 8
/* 8004A12C 38 80 00 00 */ li r4, 0
/* 8004A130 48 31 61 1D */ bl GXLoadPosMtxImm
/* 8004A134 38 61 00 08 */ addi r3, r1, 8
/* 8004A138 38 80 00 00 */ li r4, 0
/* 8004A13C 48 31 61 61 */ bl GXLoadNrmMtxImm
/* 8004A140 48 31 1A 2D */ bl GXInvalidateVtxCache
/* 8004A144 38 60 00 00 */ li r3, 0
/* 8004A148 38 80 00 09 */ li r4, 9
/* 8004A14C 38 A0 00 01 */ li r5, 1
/* 8004A150 38 C0 00 04 */ li r6, 4
/* 8004A154 38 E0 00 00 */ li r7, 0
/* 8004A158 48 31 14 6D */ bl GXSetVtxAttrFmt
/* 8004A15C 38 60 00 00 */ li r3, 0
/* 8004A160 38 80 00 0A */ li r4, 0xa
/* 8004A164 38 A0 00 00 */ li r5, 0
/* 8004A168 38 C0 00 04 */ li r6, 4
/* 8004A16C 38 E0 00 00 */ li r7, 0
/* 8004A170 48 31 14 55 */ bl GXSetVtxAttrFmt
/* 8004A174 38 60 00 00 */ li r3, 0
/* 8004A178 38 80 00 0B */ li r4, 0xb
/* 8004A17C 38 A0 00 01 */ li r5, 1
/* 8004A180 38 C0 00 05 */ li r6, 5
/* 8004A184 38 E0 00 00 */ li r7, 0
/* 8004A188 48 31 14 3D */ bl GXSetVtxAttrFmt
/* 8004A18C 38 60 00 00 */ li r3, 0
/* 8004A190 38 80 00 0D */ li r4, 0xd
/* 8004A194 38 A0 00 01 */ li r5, 1
/* 8004A198 38 C0 00 04 */ li r6, 4
/* 8004A19C 38 E0 00 00 */ li r7, 0
/* 8004A1A0 48 31 14 25 */ bl GXSetVtxAttrFmt
/* 8004A1A4 48 31 13 E9 */ bl GXClearVtxDesc
/* 8004A1A8 38 60 00 09 */ li r3, 9
/* 8004A1AC 38 80 00 01 */ li r4, 1
/* 8004A1B0 48 31 0D 09 */ bl GXSetVtxDesc
/* 8004A1B4 38 60 00 0A */ li r3, 0xa
/* 8004A1B8 38 80 00 01 */ li r4, 1
/* 8004A1BC 48 31 0C FD */ bl GXSetVtxDesc
/* 8004A1C0 38 60 00 0B */ li r3, 0xb
/* 8004A1C4 38 80 00 01 */ li r4, 1
/* 8004A1C8 48 31 0C F1 */ bl GXSetVtxDesc
/* 8004A1CC 38 60 00 0D */ li r3, 0xd
/* 8004A1D0 38 80 00 01 */ li r4, 1
/* 8004A1D4 48 31 0C E5 */ bl GXSetVtxDesc
/* 8004A1D8 7F E3 FB 78 */ mr r3, r31
/* 8004A1DC 48 23 4D 65 */ bl getDrawCount__14JPABaseEmitterCFv
/* 8004A1E0 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8004A1E4 2C 00 00 02 */ cmpwi r0, 2
/* 8004A1E8 41 82 00 20 */ beq lbl_8004A208
/* 8004A1EC 40 80 00 24 */ bge lbl_8004A210
/* 8004A1F0 2C 00 00 01 */ cmpwi r0, 1
/* 8004A1F4 40 80 00 08 */ bge lbl_8004A1FC
/* 8004A1F8 48 00 00 18 */ b lbl_8004A210
lbl_8004A1FC:
/* 8004A1FC 7F E3 FB 78 */ mr r3, r31
/* 8004A200 4B FF FA 21 */ bl drawFirst_l8__FP14JPABaseEmitter
/* 8004A204 48 00 00 0C */ b lbl_8004A210
lbl_8004A208:
/* 8004A208 7F E3 FB 78 */ mr r3, r31
/* 8004A20C 4B FF FC 35 */ bl drawSecond_b_light8__FP14JPABaseEmitter
lbl_8004A210:
/* 8004A210 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8004A214 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8004A218 7C 08 03 A6 */ mtlr r0
/* 8004A21C 38 21 00 40 */ addi r1, r1, 0x40
/* 8004A220 4E 80 00 20 */ blr
@@ -1,75 +0,0 @@
lbl_8004A224:
/* 8004A224 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A228 7C 08 02 A6 */ mflr r0
/* 8004A22C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A230 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004A234 7C 7F 1B 78 */ mr r31, r3
/* 8004A238 48 31 1C 95 */ bl GXFlush
/* 8004A23C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8004A240 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 8004A244 38 80 00 00 */ li r4, 0
/* 8004A248 48 31 60 05 */ bl GXLoadPosMtxImm
/* 8004A24C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8004A250 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 8004A254 38 80 00 00 */ li r4, 0
/* 8004A258 48 31 60 45 */ bl GXLoadNrmMtxImm
/* 8004A25C 48 31 19 11 */ bl GXInvalidateVtxCache
/* 8004A260 38 60 00 00 */ li r3, 0
/* 8004A264 38 80 00 09 */ li r4, 9
/* 8004A268 38 A0 00 01 */ li r5, 1
/* 8004A26C 38 C0 00 04 */ li r6, 4
/* 8004A270 38 E0 00 00 */ li r7, 0
/* 8004A274 48 31 13 51 */ bl GXSetVtxAttrFmt
/* 8004A278 38 60 00 00 */ li r3, 0
/* 8004A27C 38 80 00 0A */ li r4, 0xa
/* 8004A280 38 A0 00 00 */ li r5, 0
/* 8004A284 38 C0 00 04 */ li r6, 4
/* 8004A288 38 E0 00 00 */ li r7, 0
/* 8004A28C 48 31 13 39 */ bl GXSetVtxAttrFmt
/* 8004A290 38 60 00 00 */ li r3, 0
/* 8004A294 38 80 00 0B */ li r4, 0xb
/* 8004A298 38 A0 00 01 */ li r5, 1
/* 8004A29C 38 C0 00 05 */ li r6, 5
/* 8004A2A0 38 E0 00 00 */ li r7, 0
/* 8004A2A4 48 31 13 21 */ bl GXSetVtxAttrFmt
/* 8004A2A8 38 60 00 00 */ li r3, 0
/* 8004A2AC 38 80 00 0D */ li r4, 0xd
/* 8004A2B0 38 A0 00 01 */ li r5, 1
/* 8004A2B4 38 C0 00 04 */ li r6, 4
/* 8004A2B8 38 E0 00 00 */ li r7, 0
/* 8004A2BC 48 31 13 09 */ bl GXSetVtxAttrFmt
/* 8004A2C0 48 31 12 CD */ bl GXClearVtxDesc
/* 8004A2C4 38 60 00 09 */ li r3, 9
/* 8004A2C8 38 80 00 01 */ li r4, 1
/* 8004A2CC 48 31 0B ED */ bl GXSetVtxDesc
/* 8004A2D0 38 60 00 0A */ li r3, 0xa
/* 8004A2D4 38 80 00 01 */ li r4, 1
/* 8004A2D8 48 31 0B E1 */ bl GXSetVtxDesc
/* 8004A2DC 38 60 00 0B */ li r3, 0xb
/* 8004A2E0 38 80 00 01 */ li r4, 1
/* 8004A2E4 48 31 0B D5 */ bl GXSetVtxDesc
/* 8004A2E8 38 60 00 0D */ li r3, 0xd
/* 8004A2EC 38 80 00 01 */ li r4, 1
/* 8004A2F0 48 31 0B C9 */ bl GXSetVtxDesc
/* 8004A2F4 7F E3 FB 78 */ mr r3, r31
/* 8004A2F8 48 23 4C 49 */ bl getDrawCount__14JPABaseEmitterCFv
/* 8004A2FC 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8004A300 2C 00 00 02 */ cmpwi r0, 2
/* 8004A304 41 82 00 20 */ beq lbl_8004A324
/* 8004A308 40 80 00 24 */ bge lbl_8004A32C
/* 8004A30C 2C 00 00 01 */ cmpwi r0, 1
/* 8004A310 40 80 00 08 */ bge lbl_8004A318
/* 8004A314 48 00 00 18 */ b lbl_8004A32C
lbl_8004A318:
/* 8004A318 7F E3 FB 78 */ mr r3, r31
/* 8004A31C 4B FF F9 05 */ bl drawFirst_l8__FP14JPABaseEmitter
/* 8004A320 48 00 00 0C */ b lbl_8004A32C
lbl_8004A324:
/* 8004A324 7F E3 FB 78 */ mr r3, r31
/* 8004A328 4B FF FB 19 */ bl drawSecond_b_light8__FP14JPABaseEmitter
lbl_8004A32C:
/* 8004A32C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004A330 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A334 7C 08 03 A6 */ mtlr r0
/* 8004A338 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A33C 4E 80 00 20 */ blr
@@ -1,75 +0,0 @@
lbl_80049FEC:
/* 80049FEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80049FF0 7C 08 02 A6 */ mflr r0
/* 80049FF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80049FF8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80049FFC 7C 7F 1B 78 */ mr r31, r3
/* 8004A000 48 31 1E CD */ bl GXFlush
/* 8004A004 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8004A008 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 8004A00C 38 80 00 00 */ li r4, 0
/* 8004A010 48 31 62 3D */ bl GXLoadPosMtxImm
/* 8004A014 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8004A018 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 8004A01C 38 80 00 00 */ li r4, 0
/* 8004A020 48 31 62 7D */ bl GXLoadNrmMtxImm
/* 8004A024 48 31 1B 49 */ bl GXInvalidateVtxCache
/* 8004A028 38 60 00 00 */ li r3, 0
/* 8004A02C 38 80 00 09 */ li r4, 9
/* 8004A030 38 A0 00 01 */ li r5, 1
/* 8004A034 38 C0 00 04 */ li r6, 4
/* 8004A038 38 E0 00 00 */ li r7, 0
/* 8004A03C 48 31 15 89 */ bl GXSetVtxAttrFmt
/* 8004A040 38 60 00 00 */ li r3, 0
/* 8004A044 38 80 00 0A */ li r4, 0xa
/* 8004A048 38 A0 00 00 */ li r5, 0
/* 8004A04C 38 C0 00 04 */ li r6, 4
/* 8004A050 38 E0 00 00 */ li r7, 0
/* 8004A054 48 31 15 71 */ bl GXSetVtxAttrFmt
/* 8004A058 38 60 00 00 */ li r3, 0
/* 8004A05C 38 80 00 0B */ li r4, 0xb
/* 8004A060 38 A0 00 01 */ li r5, 1
/* 8004A064 38 C0 00 05 */ li r6, 5
/* 8004A068 38 E0 00 00 */ li r7, 0
/* 8004A06C 48 31 15 59 */ bl GXSetVtxAttrFmt
/* 8004A070 38 60 00 00 */ li r3, 0
/* 8004A074 38 80 00 0D */ li r4, 0xd
/* 8004A078 38 A0 00 01 */ li r5, 1
/* 8004A07C 38 C0 00 04 */ li r6, 4
/* 8004A080 38 E0 00 00 */ li r7, 0
/* 8004A084 48 31 15 41 */ bl GXSetVtxAttrFmt
/* 8004A088 48 31 15 05 */ bl GXClearVtxDesc
/* 8004A08C 38 60 00 09 */ li r3, 9
/* 8004A090 38 80 00 01 */ li r4, 1
/* 8004A094 48 31 0E 25 */ bl GXSetVtxDesc
/* 8004A098 38 60 00 0A */ li r3, 0xa
/* 8004A09C 38 80 00 01 */ li r4, 1
/* 8004A0A0 48 31 0E 19 */ bl GXSetVtxDesc
/* 8004A0A4 38 60 00 0B */ li r3, 0xb
/* 8004A0A8 38 80 00 01 */ li r4, 1
/* 8004A0AC 48 31 0E 0D */ bl GXSetVtxDesc
/* 8004A0B0 38 60 00 0D */ li r3, 0xd
/* 8004A0B4 38 80 00 01 */ li r4, 1
/* 8004A0B8 48 31 0E 01 */ bl GXSetVtxDesc
/* 8004A0BC 7F E3 FB 78 */ mr r3, r31
/* 8004A0C0 48 23 4E 81 */ bl getDrawCount__14JPABaseEmitterCFv
/* 8004A0C4 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8004A0C8 2C 00 00 02 */ cmpwi r0, 2
/* 8004A0CC 41 82 00 20 */ beq lbl_8004A0EC
/* 8004A0D0 40 80 00 24 */ bge lbl_8004A0F4
/* 8004A0D4 2C 00 00 01 */ cmpwi r0, 1
/* 8004A0D8 40 80 00 08 */ bge lbl_8004A0E0
/* 8004A0DC 48 00 00 18 */ b lbl_8004A0F4
lbl_8004A0E0:
/* 8004A0E0 7F E3 FB 78 */ mr r3, r31
/* 8004A0E4 4B FF FA DD */ bl drawFirst__FP14JPABaseEmitter
/* 8004A0E8 48 00 00 0C */ b lbl_8004A0F4
lbl_8004A0EC:
/* 8004A0EC 7F E3 FB 78 */ mr r3, r31
/* 8004A0F0 4B FF FB 55 */ bl drawSecond_light8__FP14JPABaseEmitter
lbl_8004A0F4:
/* 8004A0F4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004A0F8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A0FC 7C 08 03 A6 */ mtlr r0
/* 8004A100 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A104 4E 80 00 20 */ blr
@@ -75,6 +75,10 @@ public:
int removeMatColorAnimator(J3DAnmColor* anm) {
return mMaterialTable.removeMatColorAnimator(anm);
}
void syncJ3DSys() {
syncJ3DSysFlags();
syncJ3DSysPointers();
}
private:
/* 0x04 */ void* mpRawData;
+6 -6
View File
@@ -163,7 +163,7 @@ public:
/* 8031730C */ virtual s32 countDLSize();
/* 80323544 */ virtual void setTexNo(u32, u16 const*);
/* 8000E0AC */ virtual void setTexNo(u32, u16);
/* 8000DF94 */ virtual u32 getTexNo(u32) const;
/* 8000DF94 */ virtual u16 getTexNo(u32) const;
/* 80323548 */ virtual void setTevOrder(u32, J3DTevOrder const*);
/* 8000E0BC */ virtual void setTevOrder(u32, J3DTevOrder);
/* 8000DFB8 */ virtual J3DTevOrder* getTevOrder(u32);
@@ -229,7 +229,7 @@ public:
/* 80317BB4 */ virtual s32 countDLSize();
/* 803229D0 */ virtual void setTexNo(u32, u16 const*);
/* 803229C0 */ virtual void setTexNo(u32, u16);
/* 803229E4 */ virtual u32 getTexNo(u32) const;
/* 803229E4 */ virtual u16 getTexNo(u32) const;
/* 80322A08 */ virtual void setTevOrder(u32, J3DTevOrder const*);
/* 803229F4 */ virtual void setTevOrder(u32, J3DTevOrder);
/* 80322A1C */ virtual J3DTevOrder* getTevOrder(u32);
@@ -296,7 +296,7 @@ public:
/* 80317BCC */ virtual s32 countDLSize();
/* 8032202C */ virtual void setTexNo(u32, u16 const*);
/* 8032201C */ virtual void setTexNo(u32, u16);
/* 80322040 */ virtual u32 getTexNo(u32) const;
/* 80322040 */ virtual u16 getTexNo(u32) const;
/* 80322064 */ virtual void setTevOrder(u32, J3DTevOrder const*);
/* 80322050 */ virtual void setTevOrder(u32, J3DTevOrder);
/* 80322078 */ virtual J3DTevOrder* getTevOrder(u32);
@@ -369,7 +369,7 @@ public:
/* 80317BC4 */ virtual s32 countDLSize();
/* 803223F0 */ virtual void setTexNo(u32, u16 const*);
/* 803223E0 */ virtual void setTexNo(u32, u16);
/* 80322404 */ virtual u32 getTexNo(u32) const;
/* 80322404 */ virtual u16 getTexNo(u32) const;
/* 80322428 */ virtual void setTevOrder(u32, J3DTevOrder const*);
/* 80322414 */ virtual void setTevOrder(u32, J3DTevOrder);
/* 8032243C */ virtual J3DTevOrder* getTevOrder(u32);
@@ -442,7 +442,7 @@ public:
/* 80317BD4 */ virtual s32 countDLSize();
/* 80321C60 */ virtual void setTexNo(u32, u16 const*);
/* 80321C50 */ virtual void setTexNo(u32, u16);
/* 80321C74 */ virtual u32 getTexNo(u32) const;
/* 80321C74 */ virtual u16 getTexNo(u32) const;
/* 80321C98 */ virtual void setTevOrder(u32, J3DTevOrder const*);
/* 80321C84 */ virtual void setTevOrder(u32, J3DTevOrder);
/* 80321CAC */ virtual J3DTevOrder* getTevOrder(u32);
@@ -515,7 +515,7 @@ public:
/* 80317BBC */ virtual s32 countDLSize();
/* 803227B4 */ virtual void setTexNo(u32, u16 const*);
/* 803227A4 */ virtual void setTexNo(u32, u16);
/* 803227C8 */ virtual u32 getTexNo(u32) const;
/* 803227C8 */ virtual u16 getTexNo(u32) const;
/* 803227EC */ virtual void setTevOrder(u32, J3DTevOrder const*);
/* 803227D8 */ virtual void setTevOrder(u32, J3DTevOrder);
/* 80322800 */ virtual J3DTevOrder* getTevOrder(u32);
+1 -1
View File
@@ -61,7 +61,7 @@ public:
}
}
J3DNBTScale* getNBTScale() const { return mTexGenBlock->getNBTScale(); }
u32 getTexNo(u32 idx) const { return mTevBlock->getTexNo(idx); }
u16 getTexNo(u32 idx) const { return mTevBlock->getTexNo(idx); }
GXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); }
GXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); }
J3DFog* getFog() { return mPEBlock->getFog(); }
+4
View File
@@ -24,6 +24,10 @@ public:
/* 80018C0C */ J3DLightObj() : mInfo(j3dDefaultLightInfo) {}
J3DLightInfo& getLightInfo() { return mInfo; }
J3DLightObj& operator=(J3DLightObj const& other) {
mInfo = other.mInfo;
return *this;
}
/* 0x00 */ J3DLightInfo mInfo;
/* 0x34 */ u8 field_0x34[64];
+11
View File
@@ -31,6 +31,12 @@ struct TVec3<s16> {
z = b.z;
return *this;
}
void set(s16 x_, s16 y_, s16 z_) {
x = x_;
y = y_;
z = z_;
}
};
inline void setTVec3f(const f32* vec_a, f32* vec_b) {
@@ -48,6 +54,11 @@ inline void setTVec3f(const f32* vec_a, f32* vec_b) {
};
}
// Until we figure out TVec3 ctors
inline void setTVec3f(const Vec& vec_a, Vec& vec_b) {
setTVec3f(&vec_a.x, &vec_b.x);
}
inline float fsqrt_step(float mag) {
f32 root = __frsqrte(mag);
return 0.5f * root * (3.0f - mag * (root * root));
+2
View File
@@ -89,7 +89,9 @@ public:
bool isEnvAnm() const { return !!(mpData->mClrFlg & 0x08); }
u8 getClrAnmType() const { return (mpData->mClrFlg >> 4) & 0x07; }
s16 getClrAnmMaxFrm() const { return mpData->mClrAnmFrmMax; }
void getPrmClr(GXColor* dst) { *dst = mpData->mClrPrm; }
void getPrmClr(s16 idx, GXColor* dst) { *dst = mpPrmClrAnmTbl[idx]; }
void getEnvClr(GXColor* dst) { *dst = mpData->mClrEnv; }
void getEnvClr(s16 idx, GXColor* dst) { *dst = mpEnvClrAnmTbl[idx]; }
bool isTexAnm() const { return !!(mpData->mTexFlg & 0x01); }
+26
View File
@@ -0,0 +1,26 @@
#ifndef JPADRAWINFO_H
#define JPADRAWINFO_H
#include "dolphin/types.h"
#include "dolphin/mtx/mtx.h"
class JPADrawInfo {
public:
JPADrawInfo(Mtx param_0, f32 fovY, f32 aspect) {
PSMTXCopy(param_0, mCamMtx);
C_MTXLightPerspective(mPrjMtx, fovY, aspect, 0.5f, -0.5f, 0.5f, 0.5f);
}
JPADrawInfo(Mtx param_0, f32 top, f32 bottom, f32 left, f32 right) {
PSMTXCopy(param_0, mCamMtx);
C_MTXLightOrtho(mPrjMtx, top, bottom, left, right, 0.5f, 0.5f, 0.5f, 0.5f);
}
Mtx mCamMtx;
Mtx mPrjMtx;
void getCamMtx(Mtx* dst) const { PSMTXCopy(mCamMtx, *dst); }
void getPrjMtx(Mtx* dst) const { PSMTXCopy(mPrjMtx, *dst); }
};
#endif
+26 -1
View File
@@ -34,7 +34,7 @@ struct JPADynamicsBlockData {
/* 0x6E */ s16 mMaxFrame;
/* 0x70 */ s16 mStartFrame;
/* 0x72 */ s16 mLifeTime;
/* 0x74 */ s16 mVolumeSize;
/* 0x74 */ u16 mVolumeSize;
/* 0x76 */ u16 mDivNumber;
/* 0x78 */ u8 mRateStep;
/* 0x7C */ u32 field_0x7c;
@@ -64,6 +64,31 @@ public:
u32 getVolumeType() const { return (mpData->mFlags >> 8) & 0x07; }
u16 getDivNumber() const { return mpData->mDivNumber; }
f32 getRateRndm() const { return mpData->mRateRndm; }
void getEmitterScl(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterScl.x, mpData->mEmitterScl.y, mpData->mEmitterScl.z);
}
void getEmitterTrs(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterTrs.x, mpData->mEmitterTrs.y, mpData->mEmitterTrs.z);
}
void getEmitterDir(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterDir.x, mpData->mEmitterDir.y, mpData->mEmitterDir.z);
}
void getEmitterRot(JGeometry::TVec3<s16>* vec) const {
vec->set(mpData->mEmitterRot.x, mpData->mEmitterRot.y, mpData->mEmitterRot.z);
}
s16 getMaxFrame() { return mpData->mMaxFrame; }
s16 getLifetime() { return mpData->mLifeTime; }
u16 getVolumeSize() { return mpData->mVolumeSize; }
f32 getRate() { return mpData->mRate; }
u8 getRateStep() { return mpData->mRateStep; }
f32 getVolumeSweep() { return mpData->mVolumeSweep; }
f32 getVolumeMinRad() { return mpData->mVolumeMinRad; }
f32 getInitVelOmni() { return mpData->mInitialVelOmni; }
f32 getInitVelAxis() { return mpData->mInitialVelAxis; }
f32 getInitVelDir() { return mpData->mInitialVelDir; }
f32 getInitVelDirSp() { return mpData->mSpread; }
f32 getInitVelRndm() { return mpData->mInitialVelRndm; }
f32 getAirRes() { return mpData->mAirResist; }
public:
/* 0x00 */ const JPADynamicsBlockData* mpData;
+214
View File
@@ -2,5 +2,219 @@
#define JPAEMITTER_H
#include "dolphin/types.h"
#include "dolphin/gx/GXEnum.h"
#include "dolphin/gx/GXStruct.h"
#include "dolphin/mtx/mtx.h"
#include "JSystem/JGeometry.h"
#include "JSystem/JParticle/JPAResource.h"
#include "JSystem/JParticle/JPAList.h"
#include "JSystem/JParticle/JPARandom.h"
#include "JSystem/JParticle/JPAMath.h"
#include "JSystem/JParticle/JPADynamicsBlock.h"
#include "JSystem/JSupport/JSUList.h"
struct JPABaseEmitter;
struct JPAResourceManager;
struct JPABaseEmitter;
struct JPAEmitterManager;
struct JPAParticleCallBack;
struct JPAEmitterWorkData {
/* 0x00 */ JPABaseEmitter* mpEmtr;
/* 0x04 */ JPAResource* mpRes;
/* 0x08 */ JPAResourceManager* mpResMgr;
/* 0x0C */ JPARandom mRndm;
/* 0x10 */ JGeometry::TVec3<f32> mVolumePos;
/* 0x1C */ JGeometry::TVec3<f32> mVelOmni;
/* 0x28 */ JGeometry::TVec3<f32> mVelAxis;
/* 0x34 */ f32 mVolumeSize;
/* 0x38 */ f32 mVolumeMinRad;
/* 0x3C */ f32 mVolumeSweep;
/* 0x40 */ s32 mEmitCount;
/* 0x44 */ s32 mVolumeEmitIdx;
/* 0x48 */ Mtx mDirectionMtx;
/* 0x78 */ Mtx mRotationMtx;
/* 0xA8 */ Mtx mGlobalRot;
/* 0xD8 */ Mtx mGlobalSR;
/* 0x108 */ JGeometry::TVec3<f32> mEmitterPos;
/* 0x114 */ JGeometry::TVec3<f32> mGlobalScl;
/* 0x120 */ JGeometry::TVec3<f32> mGlobalEmtrDir;
/* 0x12C */ JGeometry::TVec3<f32> mPublicScale;
/* 0x138 */ JGeometry::TVec3<f32> mGlobalPos;
/* 0x144 */ JGeometry::TVec2<f32> mGlobalPtclScl;
/* 0x14C */ JGeometry::TVec2<f32> mPivot;
/* 0x154 */ Mtx mYBBCamMtx;
/* 0x184 */ Mtx mPosCamMtx;
/* 0x1B4 */ Mtx mPrjMtx;
/* 0x1E4 */ JPAList<JPABaseParticle>* mpAlivePtcl;
/* 0x1E8 */ JPANode<JPABaseParticle>* mpCurNode;
/* 0x1EC */ u32 mVolumeAngleNum;
/* 0x1F0 */ u32 mVolumeAngleMax;
/* 0x1F4 */ u32 mVolumeX;
/* 0x1F8 */ u32 mDivNumber;
/* 0x1FC */ f32 mScaleAnm;
/* 0x200 */ u32 mDirType;
/* 0x204 */ u32 mRotType;
/* 0x208 */ u32 mPlaneType;
/* 0x20C */ u32 mDLType;
/* 0x210 */ u32 mPrjType;
/* 0x214 */ s16 mClrKeyFrame;
/* 0x216 */ u8 mDrawCount;
};
class JPAEmitterCallBack {
public:
/* 80050368 */ virtual void execute(JPABaseEmitter*);
/* 80050374 */ virtual void executeAfter(JPABaseEmitter*);
/* 8005036C */ virtual void draw(JPABaseEmitter*);
/* 80050370 */ virtual void drawAfter(JPABaseEmitter*);
/* 8027E6A4 */ ~JPAEmitterCallBack();
};
enum {
JPAEmtrStts_StopEmit = 0x01,
JPAEmtrStts_StopCalc = 0x02,
JPAEmtrStts_StopDraw = 0x04,
JPAEmtrStts_EnableDeleteEmitter = 0x08,
JPAEmtrStts_FirstEmit = 0x10,
JPAEmtrStts_RateStepEmit = 0x20,
JPAEmtrStts_Immortal = 0x40,
};
class JPABaseEmitter {
public:
/* 8027E5EC */ ~JPABaseEmitter();
/* 8027E64C */ JPABaseEmitter();
/* 8027E6EC */ void init(JPAEmitterManager*, JPAResource*);
/* 8027EDD4 */ bool processTillStartFrame();
/* 8027EE14 */ bool processTermination();
/* 8027EEB0 */ void calcEmitterGlobalPosition(JGeometry::TVec3<f32>*) const;
/* 8027EC60 */ void deleteAllParticle();
/* 8027EB60 */ JPABaseParticle* createChild(JPABaseParticle*);
/* 8027EA40 */ JPABaseParticle* createParticle();
/* 8027EF30 */ u32 getCurrentCreateNumber() const;
/* 8027EF40 */ u8 getDrawCount() const;
/* 8027EF50 */ bool loadTexture(u8, GXTexMapID);
void initStatus(u32 status) { mStatus = status; }
void setStatus(u32 status) { mStatus |= status; }
void clearStatus(u32 status) { mStatus &= ~status; }
u32 checkStatus(u32 status) { return (mStatus & status); }
bool checkFlag(u32 flag) { return !!(mpRes->getDyn()->getFlag() & flag); }
u8 getResourceManagerID() const { return mResMgrID; }
u8 getGroupID() const { return mGroupID; }
u8 getDrawTimes() const { return mDrawTimes; }
void setRate(f32 rate) { mRate = rate; }
void setEmitterCallBackPtr(JPAEmitterCallBack* ptr) { mpEmtrCallBack = ptr; }
void setGlobalRTMatrix(const Mtx m) { JPASetRMtxTVecfromMtx(m, mGlobalRot, &mGlobalTrs); }
void setGlobalTranslation(f32 x, f32 y, f32 z) { mGlobalTrs.set(x, y, z); }
void getLocalTranslation(JGeometry::TVec3<f32>& vec) { vec.set(mLocalTrs); }
void setGlobalRotation(const JGeometry::TVec3<s16>& rot) {
JPAGetXYZRotateMtx(rot.x, rot.y, rot.z, mGlobalRot);
}
void setGlobalAlpha(u8 alpha) { mGlobalPrmClr.a = alpha; }
u8 getGlobalAlpha() { return mGlobalPrmClr.a; }
void getGlobalPrmColor(GXColor& color) { color = mGlobalPrmClr; }
void setGlobalPrmColor(u8 r, u8 g, u8 b) { mGlobalPrmClr.r = r; mGlobalPrmClr.g = g; mGlobalPrmClr.b = b; }
void setGlobalEnvColor(u8 r, u8 g, u8 b) { mGlobalEnvClr.r = r; mGlobalEnvClr.g = g; mGlobalEnvClr.b = b; }
void setVolumeSize(u16 size) { mVolumeSize = size; }
void setLifeTime(s16 lifetime) { mLifeTime = lifetime; }
void setGlobalParticleScale(const JGeometry::TVec3<f32>& scale) {
mGlobalPScl.set(scale.x, scale.y);
}
void getGlobalParticleScale(JGeometry::TVec3<f32>& scale) {
scale.set(mGlobalPScl.x, mGlobalPScl.y, 1.0f);
}
void setGlobalScale(const JGeometry::TVec3<f32>& scale) {
mGlobalScl.set(scale);
mGlobalPScl.set(scale.x ,scale.y);
}
f32 get_r_f() { return mRndm.get_rndm_f(); }
f32 get_r_zp() { return mRndm.get_rndm_zp(); }
f32 get_r_zh() { return mRndm.get_rndm_zh(); }
s16 get_r_ss() { return mRndm.get_rndm_ss(); }
void stopCreateParticle() { setStatus(JPAEmtrStts_StopEmit); }
void playCreateParticle() { clearStatus(JPAEmtrStts_StopEmit); }
void becomeImmortalEmitter() { setStatus(JPAEmtrStts_Immortal); }
void becomeContinuousParticle() { mMaxFrame = 0; }
void becomeInvalidEmitter() {
stopCreateParticle();
mMaxFrame = 1;
}
void quitImmortalEmitter() { clearStatus(JPAEmtrStts_Immortal); }
void stopCalcEmitter() { setStatus(JPAEmtrStts_StopCalc); }
void playCalcEmitter() { clearStatus(JPAEmtrStts_StopCalc); }
void stopDrawParticle() { setStatus(JPAEmtrStts_StopDraw); }
void playDrawParticle() { clearStatus(JPAEmtrStts_StopDraw); }
u32 getUserWork() { return mpUserWork; }
void setUserWork(u32 userWork) { mpUserWork = userWork; }
u32 getParticleNumber() {
return mAlivePtclBase.getNum() + mAlivePtclChld.getNum();
}
bool isEnableDeleteEmitter() {
return checkStatus(JPAEmtrStts_EnableDeleteEmitter) && getParticleNumber() == 0;
}
void setDrawTimes(u8 drawTimes) { mDrawTimes = drawTimes; }
void setParticleCallBackPtr(JPAParticleCallBack* cb) { mpPtclCallBack = cb; }
JPAParticleCallBack* getParticleCallBackPtr() { return mpPtclCallBack; }
JPAEmitterCallBack* getEmitterCallBackPtr() const { return mpEmtrCallBack; }
public:
/* 0x00 */ JGeometry::TVec3<f32> mLocalScl;
/* 0x0C */ JGeometry::TVec3<f32> mLocalTrs;
/* 0x18 */ JGeometry::TVec3<f32> mLocalDir;
/* 0x24 */ s32 mMaxFrame;
/* 0x28 */ f32 mRate;
/* 0x2C */ f32 mVolumeSweep;
/* 0x30 */ f32 mVolumeMinRad;
/* 0x34 */ f32 mAwayFromCenterSpeed;
/* 0x38 */ f32 mAwayFromAxisSpeed;
/* 0x3C */ f32 mDirSpeed;
/* 0x40 */ f32 mSpread;
/* 0x44 */ f32 mRndmDirSpeed;
/* 0x48 */ f32 mAirResist;
/* 0x4C */ JGeometry::TVec3<s16> mLocalRot;
/* 0x52 */ u16 mLifeTime;
/* 0x54 */ u16 mVolumeSize;
/* 0x56 */ u8 mRateStep;
/* 0x58 */ JSULink<JPABaseEmitter> mLink;
/* 0x68 */ Mtx mGlobalRot;
/* 0x98 */ JGeometry::TVec3<f32> mGlobalScl;
/* 0xA4 */ JGeometry::TVec3<f32> mGlobalTrs;
/* 0xB0 */ JGeometry::TVec2<f32> mGlobalPScl;
/* 0xB8 */ GXColor mGlobalPrmClr;
/* 0xBC */ GXColor mGlobalEnvClr;
/* 0xC0 */ s32 mpUserWork;
/* 0xC4 */ JPARandom mRndm;
/* 0xC8 */ JPAList<JPABaseParticle> mAlivePtclBase;
/* 0xD4 */ JPAList<JPABaseParticle> mAlivePtclChld;
/* 0xE0 */ JPAList<JPABaseParticle>* mpPtclPool;
/* 0xE4 */ JPAEmitterManager* mpEmtrMgr;
/* 0xE8 */ JPAResource* mpRes;
/* 0xEC */ JPAEmitterCallBack* mpEmtrCallBack;
/* 0xF0 */ JPAParticleCallBack* mpPtclCallBack;
/* 0xF4 */ volatile u32 mStatus;
/* 0xF8 */ f32 mEmitCount;
/* 0xFC */ f32 mScaleOut;
/* 0x100 */ u32 mTick;
/* 0x104 */ s16 mWaitTime;
/* 0x106 */ s16 mRateStepTimer;
/* 0x108 */ GXColor mPrmClr;
/* 0x10C */ GXColor mEnvClr;
/* 0x110 */ u8 mDrawTimes;
/* 0x111 */ u8 mTexAnmIdx;
/* 0x112 */ u8 mGroupID;
/* 0x113 */ u8 mResMgrID;
};
enum {
JPAPtclStts_Invisible = 0x08,
};
#endif /* JPAEMITTER_H */
@@ -2,5 +2,44 @@
#define JPAEMITTERMANAGER_H
#include "dolphin/types.h"
#include "JSystem/JParticle/JPAList.h"
#include "JSystem/JParticle/JPADrawInfo.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JGeometry.h"
struct JPAEmitterCallBack;
struct JPAParticleCallBack;
struct JPABaseEmitter;
struct JPAResourceManager;
struct JPABaseParticle;
struct JKRHeap;
struct JPAEmitterWorkData;
class JPAEmitterManager {
public:
/* 8027DCA0 */ JPAEmitterManager(u32, u32, JKRHeap*, u8, u8);
/* 8027DEBC */ JPABaseEmitter* createSimpleEmitterID(JGeometry::TVec3<f32> const&, u16, u8, u8,
JPAEmitterCallBack*, JPAParticleCallBack*);
/* 8027DFA0 */ void calc(u8);
/* 8027E028 */ void draw(JPADrawInfo const*, u8);
/* 8027E220 */ void forceDeleteAllEmitter();
/* 8027E278 */ void forceDeleteGroupEmitter(u8);
/* 8027E2D8 */ void forceDeleteEmitter(JPABaseEmitter*);
/* 8027E344 */ void entryResourceManager(JPAResourceManager*, u8);
/* 8027E354 */ void clearResourceManager(u8);
/* 8027E3F4 */ void calcYBBCam();
JPAResourceManager* getResourceManager(u16 idx) { return mpResMgrAry[idx]; }
public:
/* 0x00 */ JSUList<JPABaseEmitter>* mpGrpEmtr;
/* 0x04 */ JSUList<JPABaseEmitter> mFreeEmtrList;
/* 0x10 */ JPAList<JPABaseParticle> mPtclPool;
/* 0x1C */ JPAResourceManager** mpResMgrAry;
/* 0x20 */ JPAEmitterWorkData* mpWorkData;
/* 0x24 */ u32 mEmtrMax;
/* 0x28 */ u32 mPtclMax;
/* 0x2C */ u8 mGrpMax;
/* 0x2D */ u8 mResMax;
};
#endif /* JPAEMITTERMANAGER_H */
+99
View File
@@ -0,0 +1,99 @@
#ifndef JPALIST_H
#define JPALIST_H
#include "dolphin/types.h"
template <class T>
struct JPANode {
JPANode() {
mpPrev = NULL;
mpNext = NULL;
}
~JPANode() {}
JPANode<T>* mpPrev;
JPANode<T>* mpNext;
T mData;
};
template <class T>
struct JPAList {
JPANode<T>* mpFirst;
JPANode<T>* mpLast;
u32 mNum;
JPAList() : mpFirst(NULL), mpLast(NULL), mNum() {}
JPANode<T>* getFirst() const { return mpFirst; }
JPANode<T>* getLast() const { return mpLast; }
u32 getNum() const { return mNum; }
void push_front(JPANode<T>* node) {
if (mpFirst != NULL) {
node->mpPrev = NULL;
node->mpNext = mpFirst;
mpFirst->mpPrev = node;
mpFirst = node;
} else {
mpLast = node;
mpFirst = node;
node->mpPrev = NULL;
node->mpNext = NULL;
}
mNum++;
}
void push_back(JPANode<T>* node) {
if (mpLast != NULL) {
node->mpPrev = mpLast;
node->mpNext = NULL;
mpLast->mpNext = node;
mpLast = node;
} else {
mpFirst = node;
mpLast = node;
node->mpPrev = NULL;
node->mpNext = NULL;
}
mNum++;
}
JPANode<T>* pop_front() {
JPANode<T>* ret = NULL;
if (mNum == 1) {
ret = mpFirst;
mpLast = NULL;
mpFirst = NULL;
mNum--;
} else if (mNum) {
ret = mpFirst;
ret->mpNext->mpPrev = NULL;
mpFirst = ret->mpNext;
mNum--;
}
return ret;
}
JPANode<T>* pop_back() {
JPANode<T>* ret = NULL;
if (mNum == 1) {
ret = mpLast;
mpLast = NULL;
mpFirst = NULL;
mNum--;
} else if (mNum) {
ret = mpLast;
ret->mpPrev->mpNext = NULL;
mpLast = ret->mpPrev;
mNum--;
}
return ret;
}
};
#endif
+17 -356
View File
@@ -1,351 +1,22 @@
#ifndef JPAPARTICLE_H
#define JPAPARTICLE_H
#include "dolphin/gx/GXEnum.h"
#include "dolphin/gx/GXStruct.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
#include "JSystem/JGeometry.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JParticle/JPADynamicsBlock.h"
#include "JSystem/JParticle/JPAResource.h"
#include "JSystem/JParticle/JPAMath.h"
#include "JSystem/JParticle/JPAList.h"
class JKRHeap;
class JPABaseEmitter;
class JPABaseParticle;
class JPADrawInfo;
class JPAEmitterCallBack;
class JPAEmitterManager;
class JPAParticleCallBack;
class JPAResource;
class JPAResourceManager;
class JPADrawInfo {
public:
JPADrawInfo(Mtx param_0, f32 fovY, f32 aspect) {
PSMTXCopy(param_0, mCamMtx);
C_MTXLightPerspective(mPrjMtx, fovY, aspect, 0.5f, -0.5f, 0.5f, 0.5f);
}
JPADrawInfo(Mtx param_0, f32 top, f32 bottom, f32 left, f32 right) {
PSMTXCopy(param_0, mCamMtx);
C_MTXLightOrtho(mPrjMtx, top, bottom, left, right, 0.5f, 0.5f, 0.5f, 0.5f);
}
Mtx mCamMtx;
Mtx mPrjMtx;
void getCamMtx(Mtx* dst) const { PSMTXCopy(mCamMtx, *dst); }
void getPrjMtx(Mtx* dst) const { PSMTXCopy(mPrjMtx, *dst); }
};
struct JPARandom {
public:
JPARandom() { mSeed = 0; }
void set_seed(u32 seed) { mSeed = seed; }
u32 get_rndm_u() { return mSeed = mSeed * 0x19660du + 0x3c6ef35fu; }
f32 get_rndm_f() {
union {
u32 u;
f32 f;
} a;
a.u = ((get_rndm_u() >> 9) | 0x3f800000);
return a.f - 1.0f;
}
f32 get_rndm_zp() {
f32 f = get_rndm_f();
return (f + f) - 1.0f;
}
f32 get_rndm_zh() {
f32 f = get_rndm_f();
return f - 0.5f;
}
s16 get_rndm_ss() { return (s16)(get_rndm_u() >> 16); }
public:
u32 mSeed;
};
template <class T>
struct JPANode {
JPANode() {
mpPrev = NULL;
mpNext = NULL;
}
~JPANode() {}
JPANode<T>* mpPrev;
JPANode<T>* mpNext;
T mData;
};
template <class T>
struct JPAList {
JPANode<T>* mpFirst;
JPANode<T>* mpLast;
u32 mNum;
JPAList() : mpFirst(NULL), mpLast(NULL), mNum() {}
JPANode<T>* getFirst() const { return mpFirst; }
JPANode<T>* getLast() const { return mpLast; }
u32 getNum() const { return mNum; }
void push_front(JPANode<T>* node) {
if (mpFirst != NULL) {
node->mpPrev = NULL;
node->mpNext = mpFirst;
mpFirst->mpPrev = node;
mpFirst = node;
} else {
mpLast = node;
mpFirst = node;
node->mpPrev = NULL;
node->mpNext = NULL;
}
mNum++;
}
void push_back(JPANode<T>* node) {
if (mpLast != NULL) {
node->mpPrev = mpLast;
node->mpNext = NULL;
mpLast->mpNext = node;
mpLast = node;
} else {
mpFirst = node;
mpLast = node;
node->mpPrev = NULL;
node->mpNext = NULL;
}
mNum++;
}
JPANode<T>* pop_front() {
JPANode<T>* ret = NULL;
if (mNum == 1) {
ret = mpFirst;
mpLast = NULL;
mpFirst = NULL;
mNum--;
} else if (mNum) {
ret = mpFirst;
ret->mpNext->mpPrev = NULL;
mpFirst = ret->mpNext;
mNum--;
}
return ret;
}
JPANode<T>* pop_back() {
JPANode<T>* ret = NULL;
if (mNum == 1) {
ret = mpLast;
mpLast = NULL;
mpFirst = NULL;
mNum--;
} else if (mNum) {
ret = mpLast;
ret->mpPrev->mpNext = NULL;
mpLast = ret->mpPrev;
mNum--;
}
return ret;
}
};
struct JPAEmitterWorkData {
/* 0x00 */ JPABaseEmitter* mpEmtr;
/* 0x04 */ JPAResource* mpRes;
/* 0x08 */ JPAResourceManager* mpResMgr;
/* 0x0C */ JPARandom mRndm;
/* 0x10 */ JGeometry::TVec3<f32> mVolumePos;
/* 0x1C */ JGeometry::TVec3<f32> mVelOmni;
/* 0x28 */ JGeometry::TVec3<f32> mVelAxis;
/* 0x34 */ f32 mVolumeSize;
/* 0x38 */ f32 mVolumeMinRad;
/* 0x3C */ f32 mVolumeSweep;
/* 0x40 */ s32 mEmitCount;
/* 0x44 */ s32 mVolumeEmitIdx;
/* 0x48 */ Mtx mDirectionMtx;
/* 0x78 */ Mtx mRotationMtx;
/* 0xA8 */ Mtx mGlobalRot;
/* 0xD8 */ Mtx mGlobalSR;
/* 0x108 */ JGeometry::TVec3<f32> mEmitterPos;
/* 0x114 */ JGeometry::TVec3<f32> mGlobalScl;
/* 0x120 */ JGeometry::TVec3<f32> mGlobalEmtrDir;
/* 0x12C */ JGeometry::TVec3<f32> mPublicScale;
/* 0x138 */ JGeometry::TVec3<f32> mGlobalPos;
/* 0x144 */ JGeometry::TVec2<f32> mGlobalPtclScl;
/* 0x14C */ JGeometry::TVec2<f32> mPivot;
/* 0x154 */ Mtx mYBBCamMtx;
/* 0x184 */ Mtx mPosCamMtx;
/* 0x1B4 */ Mtx mPrjMtx;
/* 0x1E4 */ JPAList<JPABaseParticle>* mpAlivePtcl;
/* 0x1E8 */ JPANode<JPABaseParticle>* mpCurNode;
/* 0x1EC */ u32 mVolumeAngleNum;
/* 0x1F0 */ u32 mVolumeAngleMax;
/* 0x1F4 */ u32 mVolumeX;
/* 0x1F8 */ u32 mDivNumber;
/* 0x1FC */ f32 mScaleAnm;
/* 0x200 */ u32 mDirType;
/* 0x204 */ u32 mRotType;
/* 0x208 */ u32 mPlaneType;
/* 0x20C */ u32 mDLType;
/* 0x210 */ u32 mPrjType;
/* 0x214 */ s16 mClrKeyFrame;
/* 0x216 */ u8 mDrawCount;
};
class JPAEmitterCallBack {
public:
/* 80050368 */ virtual void execute(JPABaseEmitter*);
/* 80050374 */ virtual void executeAfter(JPABaseEmitter*);
/* 8005036C */ virtual void draw(JPABaseEmitter*);
/* 80050370 */ virtual void drawAfter(JPABaseEmitter*);
/* 8027E6A4 */ ~JPAEmitterCallBack();
};
enum {
JPAEmtrStts_StopEmit = 0x01,
JPAEmtrStts_StopCalc = 0x02,
JPAEmtrStts_StopDraw = 0x04,
JPAEmtrStts_FirstEmit = 0x10,
JPAEmtrStts_RateStepEmit = 0x20,
JPAEmtrStts_Immortal = 0x40,
};
class JPABaseEmitter {
public:
/* 8027E5EC */ ~JPABaseEmitter();
/* 8027E64C */ JPABaseEmitter();
/* 8027E6EC */ void init(JPAEmitterManager*, JPAResource*);
/* 8027EDD4 */ bool processTillStartFrame();
/* 8027EE14 */ void processTermination();
/* 8027EEB0 */ void calcEmitterGlobalPosition(JGeometry::TVec3<f32>*) const;
/* 8027EC60 */ void deleteAllParticle();
/* 8027EB60 */ JPABaseParticle* createChild(JPABaseParticle*);
/* 8027EA40 */ JPABaseParticle* createParticle();
/* 8027EF30 */ u32 getCurrentCreateNumber() const;
/* 8027EF40 */ u8 getDrawCount() const;
/* 8027EF50 */ bool loadTexture(u8, GXTexMapID);
void setStatus(u32 status) { mStatus |= status; }
void clearStatus(u32 status) { mStatus &= ~status; }
bool checkStatus(u32 status) { return !!(mStatus & status); }
bool checkFlag(u32 flag) { return !!(mpRes->getDyn()->getFlag() & flag); }
u8 getResourceManagerID() const { return mResMgrID; }
u8 getGroupID() const { return mGroupID; }
u8 getDrawTimes() const { return mDrawTimes; }
void setRate(f32 rate) { mRate = rate; }
void setEmitterCallBackPtr(JPAEmitterCallBack* ptr) { mpEmtrCallBack = ptr; }
void setGlobalRTMatrix(const Mtx m) { JPASetRMtxTVecfromMtx(m, mGlobalRot, &mGlobalTrs); }
void setGlobalTranslation(f32 x, f32 y, f32 z) { mGlobalTrs.set(x, y, z); }
void setGlobalAlpha(u8 alpha) { mGlobalPrmClr.a = alpha; }
void setVolumeSize(u16 size) { mVolumeSize = size; }
void setLifeTime(s16 lifetime) { mLifeTime = lifetime; }
void setGlobalParticleScale(const JGeometry::TVec3<f32>& scale) {
mGlobalPScl.set(scale.x, scale.y);
}
// void setGlobalScale(const JGeometry::TVec3<f32>& scale) {
// mGlobalScl = scale;
// mGlobalPScl = scale;
// }
f32 get_r_f() { return mRndm.get_rndm_f(); }
f32 get_r_zp() { return mRndm.get_rndm_zp(); }
f32 get_r_zh() { return mRndm.get_rndm_zh(); }
s16 get_r_ss() { return mRndm.get_rndm_ss(); }
void stopCreateParticle() { setStatus(JPAEmtrStts_StopEmit); }
void becomeImmortalEmitter() { setStatus(JPAEmtrStts_Immortal); }
void becomeContinuousParticle() { mMaxFrame = 0; }
void becomeInvalidEmitter() {
stopCreateParticle();
mMaxFrame = 1;
}
void quitImmortalEmitter() { clearStatus(JPAEmtrStts_Immortal); }
void stopCalcEmitter() { setStatus(JPAEmtrStts_StopCalc); }
void playCalcEmitter() { clearStatus(JPAEmtrStts_StopCalc); }
void stopDrawParticle() { setStatus(JPAEmtrStts_StopDraw); }
void* getUserWork() { return mpUserWork; }
public:
/* 0x00 */ Vec mLocalScl;
/* 0x0C */ Vec mLocalTrs;
/* 0x18 */ Vec mLocalDir;
/* 0x24 */ s32 mMaxFrame;
/* 0x28 */ f32 mRate;
/* 0x2C */ f32 mVolumeSweep;
/* 0x30 */ f32 mVolumeMinRad;
/* 0x34 */ f32 mAwayFromCenterSpeed;
/* 0x38 */ f32 mAwayFromAxisSpeed;
/* 0x3C */ f32 mDirSpeed;
/* 0x40 */ f32 mSpread;
/* 0x44 */ f32 mRndmDirSpeed;
/* 0x48 */ f32 mAirResist;
/* 0x4C */ JGeometry::TVec3<s16> mLocalRot;
/* 0x52 */ u16 mLifeTime;
/* 0x54 */ u16 mVolumeSize;
/* 0x56 */ u8 mRateStep;
/* 0x58 */ JSULink<JPABaseEmitter> mLink;
/* 0x68 */ Mtx mGlobalRot;
/* 0x98 */ Vec mGlobalScl;
/* 0xA4 */ JGeometry::TVec3<f32> mGlobalTrs;
/* 0xB0 */ JGeometry::TVec2<f32> mGlobalPScl;
/* 0xB8 */ GXColor mGlobalPrmClr;
/* 0xBC */ GXColor mGlobalEnvClr;
/* 0xC0 */ void* mpUserWork;
/* 0xC4 */ JPARandom mRndm;
/* 0xC8 */ JPAList<JPABaseParticle> mAlivePtclBase;
/* 0xD4 */ JPAList<JPABaseParticle> mAlivePtclChld;
/* 0xE0 */ JPAList<JPABaseParticle>* mpPtclPool;
/* 0xE4 */ JPAEmitterManager* mpEmtrMgr;
/* 0xE8 */ JPAResource* mpRes;
/* 0xEC */ JPAEmitterCallBack* mpEmtrCallBack;
/* 0xF0 */ JPAParticleCallBack* mpPtclCallBack;
/* 0xF4 */ u32 mStatus;
/* 0xF8 */ f32 mEmitCount;
/* 0xFC */ f32 mScaleOut;
/* 0x100 */ u32 mTick;
/* 0x104 */ s16 mWaitTime;
/* 0x106 */ s16 mRateStepTimer;
/* 0x108 */ GXColor mPrmClr;
/* 0x10C */ GXColor mEnvClr;
/* 0x110 */ u8 mDrawTimes;
/* 0x111 */ u8 mTexAnmIdx;
/* 0x112 */ u8 mGroupID;
/* 0x113 */ u8 mResMgrID;
};
class JPAParticleCallBack {
public:
JPAParticleCallBack() {}
virtual ~JPAParticleCallBack();
virtual void execute(JPABaseEmitter*, JPABaseParticle*);
virtual void draw(JPABaseEmitter*, JPABaseParticle*);
};
enum {
JPAPtclStts_Invisible = 0x08,
};
struct JPAEmitterWorkData;
class JPABaseParticle {
public:
@@ -358,10 +29,18 @@ public:
/* 80280568 */ f32 getHeight(JPABaseEmitter const*) const;
int getAge() { return mAge; }
void setOffsetPosition(const JGeometry::TVec3<f32>& pos) { mOffsetPosition.set(pos); }
void setOffsetPosition(f32 x, f32 y, f32 z) { mOffsetPosition.set(x, y, z); }
void getOffsetPosition(JGeometry::TVec3<f32>& pos) { pos.set(mOffsetPosition); }
u16 getRotateAngle() const { return mRotateAngle; }
void getGlobalPosition(JGeometry::TVec3<f32>& pos) { pos.set(mPosition); }
f32 getParticleScaleX() const { return mParticleScaleX; }
f32 getParticleScaleY() const { return mParticleScaleY; }
void setStatus(u32 flag) { mStatus |= flag; }
void setInvisibleParticleFlag() { setStatus(8); }
void setDeleteParticleFlag() { setStatus(2); }
public:
/* 0x00 */ Vec mPosition;
/* 0x00 */ JGeometry::TVec3<f32> mPosition;
/* 0x0C */ Vec mLocalPosition;
/* 0x18 */ JGeometry::TVec3<f32> mOffsetPosition;
/* 0x24 */ Vec mVelocity;
@@ -389,30 +68,12 @@ public:
/* 0x96 */ u8 mPrmColorAlphaAnm;
};
class JPAEmitterManager {
class JPAParticleCallBack {
public:
/* 8027DCA0 */ JPAEmitterManager(u32, u32, JKRHeap*, u8, u8);
/* 8027DEBC */ JPABaseEmitter* createSimpleEmitterID(JGeometry::TVec3<f32> const&, u16, u8, u8,
JPAEmitterCallBack*, JPAParticleCallBack*);
/* 8027DFA0 */ void calc(u8);
/* 8027E028 */ void draw(JPADrawInfo const*, u8);
/* 8027E220 */ void forceDeleteAllEmitter();
/* 8027E278 */ void forceDeleteGroupEmitter(u8);
/* 8027E2D8 */ void forceDeleteEmitter(JPABaseEmitter*);
/* 8027E344 */ void entryResourceManager(JPAResourceManager*, u8);
/* 8027E354 */ void clearResourceManager(u8);
/* 8027E3F4 */ void calcYBBCam();
public:
/* 0x00 */ JSUList<JPABaseEmitter>* mpGrpEmtr;
/* 0x04 */ JSUList<JPABaseEmitter> mFreeEmtrList;
/* 0x10 */ JPAList<JPABaseParticle> mPtclPool;
/* 0x1C */ JPAResourceManager** mpResMgrAry;
/* 0x20 */ JPAEmitterWorkData* mpWorkData;
/* 0x24 */ u32 mEmtrMax;
/* 0x28 */ u32 mPtclMax;
/* 0x2C */ u8 mGrpMax;
/* 0x2D */ u8 mResMax;
JPAParticleCallBack() {}
virtual ~JPAParticleCallBack();
virtual void execute(JPABaseEmitter*, JPABaseParticle*);
virtual void draw(JPABaseEmitter*, JPABaseParticle*);
};
// not sure where this belongs
+38
View File
@@ -0,0 +1,38 @@
#ifndef JPARANDOM_H
#define JPARANDOM_H
#include "dolphin/types.h"
struct JPARandom {
public:
JPARandom() { mSeed = 0; }
void set_seed(u32 seed) { mSeed = seed; }
u32 get_rndm_u() { return mSeed = mSeed * 0x19660du + 0x3c6ef35fu; }
f32 get_rndm_f() {
union {
u32 u;
f32 f;
} a;
a.u = ((get_rndm_u() >> 9) | 0x3f800000);
return a.f - 1.0f;
}
f32 get_rndm_zp() {
f32 f = get_rndm_f();
return (f + f) - 1.0f;
}
f32 get_rndm_zh() {
f32 f = get_rndm_f();
return f - 0.5f;
}
s16 get_rndm_ss() { return (s16)(get_rndm_u() >> 16); }
public:
u32 mSeed;
};
#endif
+1
View File
@@ -793,6 +793,7 @@ public:
inline bool checkZoraWearFlg() const;
inline bool checkMagicArmorWearFlg() const;
inline static BOOL i_checkFirstMidnaDemo() { return i_dComIfGs_isEventBit(0xc10); }
static int checkNowWolfPowerUp() { return checkNowWolfEyeUp(); }
static daMidna_c* getMidnaActor() { return m_midnaActor; }
+23
View File
@@ -195,6 +195,10 @@ struct LightStatus {
class dKy_tevstr_c {
public:
// Supposedly exists but didn't work. Might be too big to inline.
// See dPa_modelEcallBack::model_c::set.
//inline dKy_tevstr_c& operator=(const dKy_tevstr_c& b);
/* 0x000 */ J3DLightObj mLightObj;
/* 0x074 */ J3DLightObj field_0x074[6];
/* 0x32C */ cXyz field_0x32c;
@@ -573,5 +577,24 @@ void dKy_set_bgcol_ratio(f32 ratio);
void dKy_set_fogcol_ratio(f32 ratio);
void dKy_set_vrboxcol_ratio(f32 ratio);
f32 dKy_get_parcent(f32 param_0, f32 param_1, f32 param_2);
void dKy_setLight_nowroom_grass(char param_0, f32 param_1);
void dKy_Global_amb_set(dKy_tevstr_c* i_tevstr);
u8 dKy_pol_eff_prim_get(cBgS_PolyInfo const* param_0, _GXColor* param_1);
void dKy_pol_eff_env_get(cBgS_PolyInfo const* param_0, _GXColor* param_1);
u8 dKy_pol_eff_alpha_get(cBgS_PolyInfo const* param_0);
f32 dKy_pol_eff_ratio_get(cBgS_PolyInfo const* param_0);
void dKy_pol_eff2_prim_get(cBgS_PolyInfo const* param_0, _GXColor* param_1);
void dKy_pol_eff2_env_get(cBgS_PolyInfo const* param_0, _GXColor* param_1);
u8 dKy_pol_eff2_alpha_get(cBgS_PolyInfo const* param_0);
f32 dKy_pol_eff2_ratio_get(cBgS_PolyInfo const* param_0);
u8 dKy_pol_efftype_get(cBgS_PolyInfo const* param_0);
u8 dKy_pol_efftype2_get(cBgS_PolyInfo const* param_0);
void dKy_ParticleColor_get_actor(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* param_2,
_GXColor* param_3, _GXColor* param_4, _GXColor* param_5,
f32 param_6);
void dKy_ParticleColor_get_bg(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* param_2,
_GXColor* param_3, _GXColor* param_4, _GXColor* param_5,
f32 param_6);
_GXColor dKy_light_influence_col(_GXColor* param_0, f32 param_1);
#endif /* D_KANKYO_D_KANKYO_H */
+1
View File
@@ -28,6 +28,7 @@ void dKyw_evt_wind_set(s16 angleX, s16 angleY);
void dKyw_custom_windpower(f32 pow);
void dKyw_evt_wind_set_go();
void dKyw_wether_proc();
void dKyw_get_AllWind_vec(cXyz* param_0, cXyz* param_1, f32* param_2);
class dKankyo_sun_Packet : public J3DPacket {
public:
+89 -28
View File
@@ -2,10 +2,12 @@
#define D_PARTICLE_D_PARTICLE_H
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
#include "d/kankyo/d_kankyo.h"
class J3DAnmTexPattern;
class J3DModel;
@@ -35,32 +37,37 @@ public:
private:
/* 0x04 */ f32 mRate;
/* 0x08 */ int mMaxCnt;
/* 0x0C */ cXyz* field_0xc;
/* 0x10 */ cXyz* field_0x10;
/* 0x14 */ cXyz* field_0x14;
/* 0x0C */ cXyz const* field_0xc;
/* 0x10 */ cXyz const* field_0x10;
/* 0x14 */ cXyz const* field_0x14;
};
class mDoDvdThd_toMainRam_c;
class cBgS_PolyInfo;
class JPAEmitterManager;
struct JPADrawInfo;
struct J3DAnmBase;
class dPa_simpleEcallBack : public JPAEmitterCallBack {
public:
/* 8004ADF4 */ dPa_simpleEcallBack();
/* 8004AF98 */ void create(JPAEmitterManager*, u16, u8);
/* 8004B064 */ void createEmitter(JPAEmitterManager*);
/* 8004B168 */ void set(cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&, _GXColor const&,
/* 8004AF98 */ JPABaseEmitter* create(JPAEmitterManager*, u16, u8);
/* 8004B064 */ JPABaseEmitter* createEmitter(JPAEmitterManager*);
/* 8004B168 */ u32 set(cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&, _GXColor const&,
int, f32);
/* 8004FC08 */ virtual ~dPa_simpleEcallBack();
/* 8004AE1C */ virtual void executeAfter(JPABaseEmitter*);
/* 8004AF94 */ virtual void draw(JPABaseEmitter*);
void removeEmitter() { mEmitter = NULL; }
u16 getID() const { return mID; }
/* 0x04 */ JPABaseEmitter* mEmitter;
/* 0x08 */ u16 mID;
/* 0x0A */ u8 field_0xa;
/* 0x0C */ s16 field_0xc;
/* 0x0C */ u16 field_0xe;
/* 0x10 */ void* mData;
}; // Size: 0x14
@@ -78,6 +85,9 @@ public:
void remove() { end(); }
JPABaseEmitter* getEmitter() { return mpEmitter; }
bool isEnd() {
return field_0x10 & 1;
}
/* 0x04 */ JPABaseEmitter* mpEmitter;
/* 0x08 */ const cXyz* field_0x8;
@@ -137,26 +147,41 @@ public:
class dPa_modelEcallBack : public dPa_levelEcallBack {
public:
struct model_c {
/* 8004A608 */ void set(J3DModelData*, dKy_tevstr_c const&, u8, void*, u8, u8);
/* 8004A608 */ bool set(J3DModelData*, dKy_tevstr_c const&, u8, void*, u8, u8);
/* 8004A7AC */ void setup();
/* 8004A88C */ void cleanup();
/* 8004A8DC */ void draw(f32 (*)[4]);
/* 8004AB88 */ ~model_c();
/* 8004FB90 */ model_c();
void reset() {
field_0x0 = 0;
}
u8 getRotAxis() { return mRotAxis; }
J3DModelData* getModelData() { return field_0x0; }
J3DModelData* field_0x0;
J3DAnmBase* field_0x4;
dKy_tevstr_c field_0x8;
u8 mRotAxis;
u8 field_0x391;
u8 field_0x392;
u8 field_0x393;
};
dPa_modelEcallBack() { mModel = NULL; }
/* 8004AB1C */ void create(u8);
/* 8004ABC4 */ void remove();
/* 8004AC00 */ static void setModel(JPABaseEmitter*, J3DModelData*, dKy_tevstr_c const&, u8,
/* 8004AB1C */ static void create(u8);
/* 8004ABC4 */ static void remove();
/* 8004AC00 */ static int setModel(JPABaseEmitter*, J3DModelData*, dKy_tevstr_c const&, u8,
void*, u8, u8);
/* 8004AC90 */ void resetModel(JPABaseEmitter*);
/* 8004ACC0 */ void setupModel(JPABaseEmitter*);
/* 8004ACEC */ void drawModel(JPABaseEmitter*, f32 (*)[4]);
/* 8004AD28 */ void cleanupModel(JPABaseEmitter*);
/* 8004AD58 */ void getModel(JPABaseEmitter*);
/* 8004AD90 */ void getRotAxis(JPABaseEmitter*);
/* 8004AC90 */ static void resetModel(JPABaseEmitter*);
/* 8004ACC0 */ static void setupModel(JPABaseEmitter*);
/* 8004ACEC */ static void drawModel(JPABaseEmitter*, f32 (*)[4]);
/* 8004AD28 */ static void cleanupModel(JPABaseEmitter*);
/* 8004AD58 */ static model_c* getModel(JPABaseEmitter*);
/* 8004AD90 */ static u8 getRotAxis(JPABaseEmitter*);
/* 80050378 */ virtual ~dPa_modelEcallBack();
/* 8004AA34 */ virtual void draw(JPABaseEmitter*);
@@ -169,11 +194,11 @@ public:
setModel(param_0, param_1, param_2, param_3, param_4, param_5);
}
// Should be dPa_modelEcallBack
static dPa_modelEcallBack* getEcallback() { return mEcallback; }
static dPa_modelEcallBack* mEcallback;
static u8 mPcallback[4];
static J3DModel* mModel;
static model_c* mModel;
};
class dPa_light8PcallBack : public JPAParticleCallBack {
@@ -262,6 +287,8 @@ public:
void offActive() { mStatus &= ~1; }
bool isActive() { return mStatus & 1; }
u16 getNameId() { return mNameId; }
dPa_levelEcallBack* getCallback() { return mCallback; }
private:
/* 0x00 */ u32 mId;
@@ -296,12 +323,12 @@ public:
}; // Size: 0x1008
/* 8004BACC */ dPa_control_c();
/* 8004BB70 */ static bool getRM_ID(u16);
/* 8004BB70 */ static u8 getRM_ID(u16);
/* 8004BB78 */ void createCommon(void const*);
/* 8004BCDC */ void createRoomScene();
/* 8004BDFC */ void readScene(u8, mDoDvdThd_toMainRam_c**);
/* 8004BDFC */ bool readScene(u8, mDoDvdThd_toMainRam_c**);
/* 8004BEB0 */ void createScene(void const*);
/* 8004BF3C */ void removeRoomScene(bool);
/* 8004BF3C */ bool removeRoomScene(bool);
/* 8004BFD4 */ void removeScene(bool);
/* 8004C054 */ void cleanup();
/* 8004C078 */ void calc3D();
@@ -317,21 +344,21 @@ public:
/* 8004D4CC */ u32 set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
_GXColor const*, cXyz const*, f32);
/* 8004CF90 */ void getPolyColor(cBgS_PolyInfo&, int, _GXColor*, _GXColor*, u8*, f32*);
/* 8004CF90 */ static s32 getPolyColor(cBgS_PolyInfo&, int, _GXColor*, _GXColor*, u8*, f32*);
/* 8004D6A4 */ u32 setPoly(u32, u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*,
csXyz const*, cXyz const*, int, dPa_levelEcallBack*, s8,
cXyz const*);
/* 8004D068 */ void setPoly(u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*, csXyz const*,
/* 8004D068 */ JPABaseEmitter* setPoly(u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*, csXyz const*,
cXyz const*, int, dPa_levelEcallBack*, s8, cXyz const*);
/* 8004D128 */ void newSimple(u16, u8, u32*);
/* 8004D1B8 */ void setSimple(u16, cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&,
/* 8004D128 */ bool newSimple(u16, u8, u32*);
/* 8004D1B8 */ u32 setSimple(u16, cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&,
_GXColor const&, int, f32);
/* 8004D23C */ void getSimple(u16);
/* 8004D770 */ void setStopContinue(u32);
/* 8004D23C */ dPa_simpleEcallBack* getSimple(u16);
/* 8004D770 */ u32 setStopContinue(u32);
/* 8004D7C4 */ u32 setSimpleFoot(u32, u32*, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*,
int, csXyz const*, cXyz const*, dPa_levelEcallBack*, s8,
cXyz const*);
/* 8004D988 */ void setCommonPoly(u32*, cBgS_PolyInfo*, cXyz const*, cXyz const*,
/* 8004D988 */ u16 setCommonPoly(u32*, cBgS_PolyInfo*, cXyz const*, cXyz const*,
dKy_tevstr_c const*, u32, u32, csXyz const*, cXyz const*, s8);
void forceOnEventMove(u32 param_0) { field_0x210.forceOnEventMove(param_0); }
@@ -386,6 +413,38 @@ public:
}
static JPAEmitterManager* getEmitterManager() { return mEmitterMng; }
static JPAParticleCallBack* getLight8PcallBack() {
return (JPAParticleCallBack*)mLight8PcallBack;
//return &mLight8PcallBack;
}
static JPAParticleCallBack* getGen_b_Light8PcallBack() {
return (JPAParticleCallBack*)m_b_Light8PcallBack;
//return &m_b_Light8PcallBack;
}
static JPAParticleCallBack* getGen_d_Light8PcallBack() {
return (JPAParticleCallBack*)m_d_Light8PcallBack;
//return &m_d_Light8PcallBack;
}
static dPa_gen_b_light8EcallBack* getGen_b_Light8EcallBack() {
return (dPa_gen_b_light8EcallBack*)m_b_Light8EcallBack;
//return &m_b_Light8EcallBack;
}
static dPa_gen_d_light8EcallBack* getGen_d_Light8EcallBack() {
return (dPa_gen_d_light8EcallBack*)m_d_Light8EcallBack;
//return &m_d_Light8PcallBack;
}
static dPa_light8EcallBack* getLight8EcallBack() {
return (dPa_light8EcallBack*)mLight8EcallBack;
//return &mLight8EcallBack;
}
static JPAParticleCallBack* getParticleTracePCB() {
return (JPAParticleCallBack*)mParticleTracePCB;
//return &mParticleTracePCB;
}
static JPAParticleCallBack* getFsenthPcallBack() {
return (JPAParticleCallBack*)mFsenthPcallBack;
//return &mFsenthPcallBack;
}
static u8 mTsubo[64];
static u8 mLifeBall[24];
@@ -411,6 +470,8 @@ private:
/* 0x014 */ JPAResourceManager* mSceneResMng;
/* 0x018 */ u8 field_0x18;
/* 0x019 */ u8 field_0x19;
/* 0x01A */ u8 field_0x1a;
/* 0x01B */ u8 field_0x1b;
/* 0x01C */ dPa_simpleEcallBack field_0x1c[25];
/* 0x210 */ level_c field_0x210;
};
+4 -3
View File
@@ -54,15 +54,16 @@ inline void C_VECAdd(register const Vec* a, register const Vec* b, register Vec*
inline f32 C_VECSquareMag(const Vec* v) {
register f32 x_y;
register f32 z;
register f32 res;
register const f32* src = &v->x;
asm {
psq_l x_y, 0(src), 0, 0
ps_mul x_y, x_y, x_y
lfs z, 8(src)
ps_madd z, z, z, x_y
ps_sum0 z, z, x_y, x_y
ps_madd res, z, z, x_y
ps_sum0 res, res, x_y, x_y
};
return z;
return res;
}
#ifdef __cplusplus
+1
View File
@@ -568,6 +568,7 @@ JKRSolidHeap* mDoExt_createSolidHeapToCurrent(u32 i_size, JKRHeap* i_parent, u32
JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(u32 i_size, u32 i_alignment);
JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(JKRHeap** o_heap, u32 i_size,
u32 i_alignment);
JKRSolidHeap* mDoExt_createSolidHeapFromSystem(u32 i_size, u32 i_alignment);
u32 mDoExt_adjustSolidHeapToSystem(JKRSolidHeap* i_heap);
JKRHeap* mDoExt_getCurrentHeap();
void mDoExt_removeMesgFont();
+2 -2
View File
@@ -64,8 +64,8 @@ int J3DDrawBuffer::entryMatSort(J3DMatPacket* pMatPacket) {
J3DTexture* texture = j3dSys.getTexture();
u32 hash;
u32 texNo = pMatPacket->getMaterial()->getTexNo(0);
if ((u16)texNo == 0xFFFF) {
u16 texNo = pMatPacket->getMaterial()->getTexNo(0);
if (texNo == 0xFFFF) {
hash = 0;
} else {
hash = ((u32)texture->getResTIMG(texNo) + texture->getResTIMG(texNo)->imageOffset) >> 5;
+5 -5
View File
@@ -2587,7 +2587,7 @@ asm void J3DTevBlock16::setTexNo(u32 param_0, u16 const* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 J3DTevBlock16::getTexNo(u32 param_0) const {
asm u16 J3DTevBlock16::getTexNo(u32 param_0) const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getTexNo__13J3DTevBlock16CFUl.s"
}
@@ -3640,7 +3640,7 @@ asm void J3DTevBlock4::setTexNo(u32 param_0, u16 const* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 J3DTevBlock4::getTexNo(u32 param_0) const {
asm u16 J3DTevBlock4::getTexNo(u32 param_0) const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getTexNo__12J3DTevBlock4CFUl.s"
}
@@ -4033,7 +4033,7 @@ asm void J3DTevBlock2::setTexNo(u32 param_0, u16 const* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 J3DTevBlock2::getTexNo(u32 param_0) const {
asm u16 J3DTevBlock2::getTexNo(u32 param_0) const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getTexNo__12J3DTevBlock2CFUl.s"
}
@@ -4426,7 +4426,7 @@ asm void J3DTevBlock1::setTexNo(u32 param_0, u16 const* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 J3DTevBlock1::getTexNo(u32 param_0) const {
asm u16 J3DTevBlock1::getTexNo(u32 param_0) const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getTexNo__12J3DTevBlock1CFUl.s"
}
@@ -4680,7 +4680,7 @@ asm void J3DTevBlockPatched::setTexNo(u32 param_0, u16 const* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 J3DTevBlockPatched::getTexNo(u32 param_0) const {
asm u16 J3DTevBlockPatched::getTexNo(u32 param_0) const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getTexNo__18J3DTevBlockPatchedCFUl.s"
}
+1
View File
@@ -5,6 +5,7 @@
#include "JSystem/JParticle/JPABaseShape.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "JSystem/JParticle/JPAResource.h"
#include "JSystem/JParticle/JPAResourceManager.h"
#include "dolphin/mtx/mtxvec.h"
+1
View File
@@ -5,6 +5,7 @@
#include "JSystem/JParticle/JPAChildShape.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "dol2asm.h"
#include "dolphin/gx/GX.h"
#include "dolphin/os/OS.h"
+1 -1
View File
@@ -5,7 +5,7 @@
#include "JSystem/JParticle/JPADynamicsBlock.h"
#include "JSystem/JMath/JMATrigonometric.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "dol2asm.h"
#include "dolphin/types.h"
+69 -66
View File
@@ -4,11 +4,12 @@
//
#include "JSystem/JParticle/JPAEmitter.h"
#include "JSystem/JParticle/JPAEmitterManager.h"
#include "JSystem/JParticle/JPADynamicsBlock.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAResource.h"
#include "JSystem/JParticle/JPAResourceManager.h"
#include "dol2asm.h"
#include "JSystem/JParticle/JPABaseShape.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
@@ -21,77 +22,66 @@
// Forward References:
//
extern "C" void __dt__18JPAEmitterCallBackFv();
extern "C" void init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource();
extern "C" void createParticle__14JPABaseEmitterFv();
extern "C" void createChild__14JPABaseEmitterFP15JPABaseParticle();
extern "C" void deleteAllParticle__14JPABaseEmitterFv();
extern "C" void processTillStartFrame__14JPABaseEmitterFv();
extern "C" void processTermination__14JPABaseEmitterFv();
extern "C" void func_8027EEB0();
extern "C" void getCurrentCreateNumber__14JPABaseEmitterCFv();
extern "C" void getDrawCount__14JPABaseEmitterCFv();
extern "C" void loadTexture__14JPABaseEmitterFUc11_GXTexMapID();
//
// External References:
//
extern "C" void init_p__15JPABaseParticleFP18JPAEmitterWorkData();
extern "C" void init_c__15JPABaseParticleFP18JPAEmitterWorkDataP15JPABaseParticle();
extern "C" void __dl__FPv();
extern "C" void load__10JUTTextureF11_GXTexMapID();
extern "C" extern void* __vt__18JPAEmitterCallBack[7];
//
// Declarations:
//
/* 8027E6A4-8027E6EC 278FE4 0048+00 0/0 14/14 16/16 .text __dt__18JPAEmitterCallBackFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JPAEmitterCallBack::~JPAEmitterCallBack() {
nofralloc
#include "asm/JSystem/JParticle/JPAEmitter/__dt__18JPAEmitterCallBackFv.s"
JPAEmitterCallBack::~JPAEmitterCallBack() {
}
#pragma pop
/* ############################################################################################## */
/* 80455370-80455374 003970 0004+00 1/1 0/0 0/0 .sdata2 @2440 */
SECTION_SDATA2 static f32 lit_2440 = 32.0f;
/* 80455374-80455378 003974 0004+00 1/1 0/0 0/0 .sdata2 @2441 */
SECTION_SDATA2 static u8 lit_2441[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80455378-8045537C 003978 0004+00 1/1 0/0 0/0 .sdata2 @2442 */
SECTION_SDATA2 static f32 lit_2442 = 0.5f;
/* 8045537C-80455380 00397C 0004+00 1/1 0/0 0/0 .sdata2 @2443 */
SECTION_SDATA2 static f32 lit_2443 = 3.0f;
/* 80455380-80455388 003980 0004+04 1/1 0/0 0/0 .sdata2 @2444 */
SECTION_SDATA2 static f32 lit_2444[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
/* 8027E6EC-8027EA40 27902C 0354+00 0/0 1/1 0/0 .text
* init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JPABaseEmitter::init(JPAEmitterManager* param_0, JPAResource* param_1) {
nofralloc
#include "asm/JSystem/JParticle/JPAEmitter/init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource.s"
void JPABaseEmitter::init(JPAEmitterManager* param_0, JPAResource* param_1) {
mpEmtrMgr = param_0;
mpRes = param_1;
mpRes->getDyn()->getEmitterScl(&mLocalScl);
mpRes->getDyn()->getEmitterTrs(&mLocalTrs);
mpRes->getDyn()->getEmitterDir(&mLocalDir);
mLocalDir.normalize();
mpRes->getDyn()->getEmitterRot(&mLocalRot);
mMaxFrame = mpRes->getDyn()->getMaxFrame();
mLifeTime = mpRes->getDyn()->getLifetime();
mVolumeSize = mpRes->getDyn()->getVolumeSize();
mRate = mpRes->getDyn()->getRate();
mRateStep = mpRes->getDyn()->getRateStep();
mVolumeSweep = mpRes->getDyn()->getVolumeSweep();
mVolumeMinRad = mpRes->getDyn()->getVolumeMinRad();
mAwayFromCenterSpeed = mpRes->getDyn()->getInitVelOmni();
mAwayFromAxisSpeed = mpRes->getDyn()->getInitVelAxis();
mDirSpeed = mpRes->getDyn()->getInitVelDir();
mSpread = mpRes->getDyn()->getInitVelDirSp();
mRndmDirSpeed = mpRes->getDyn()->getInitVelRndm();
mAirResist = mpRes->getDyn()->getAirRes();
mRndm.set_seed(mpEmtrMgr->mpWorkData->mRndm.get_rndm_u());
PSMTXIdentity(mGlobalRot);
mGlobalScl.set(1.0f, 1.0f, 1.0f);
mGlobalTrs.zero();
mGlobalPScl.set(1.0f, 1.0f);
mGlobalEnvClr.a = 0xff;
mGlobalEnvClr.b = 0xff;
mGlobalEnvClr.g = 0xff;
mGlobalEnvClr.r = 0xff;
mGlobalPrmClr.a = 0xff;
mGlobalPrmClr.b = 0xff;
mGlobalPrmClr.g = 0xff;
mGlobalPrmClr.r = 0xff;
param_1->getBsp()->getPrmClr(&mPrmClr);
param_1->getBsp()->getEnvClr(&mEnvClr);
mpUserWork = NULL;
mScaleOut = 1.0f;
mEmitCount = 0.0f;
initStatus(0x30);
mDrawTimes = 1;
mTick = 0;
mWaitTime = 0;
mRateStepTimer = 0;
mTexAnmIdx = 0;
}
#pragma pop
/* 8027EA40-8027EB60 279380 0120+00 0/0 3/3 0/0 .text createParticle__14JPABaseEmitterFv
*/
@@ -143,14 +133,27 @@ bool JPABaseEmitter::processTillStartFrame() {
}
/* 8027EE14-8027EEB0 279754 009C+00 0/0 1/1 0/0 .text processTermination__14JPABaseEmitterFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JPABaseEmitter::processTermination() {
nofralloc
#include "asm/JSystem/JParticle/JPAEmitter/processTermination__14JPABaseEmitterFv.s"
bool JPABaseEmitter::processTermination() {
if (checkStatus(0x100)) {
return true;
}
if (mMaxFrame == 0) {
return false;
}
if (mMaxFrame < 0) {
setStatus(8);
return getParticleNumber() == 0;
}
if (mTick >= mMaxFrame) {
setStatus(8);
if (checkStatus(0x40)) {
return 0;
}
return getParticleNumber() == 0;
}
return false;
}
#pragma pop
/* 8027EEB0-8027EF30 2797F0 0080+00 0/0 1/1 0/0 .text
* calcEmitterGlobalPosition__14JPABaseEmitterCFPQ29JGeometry8TVec3<f> */
@@ -161,7 +164,7 @@ void JPABaseEmitter::calcEmitterGlobalPosition(JGeometry::TVec3<f32>* dst) const
mtx[0][3] = mGlobalTrs.x;
mtx[1][3] = mGlobalTrs.y;
mtx[2][3] = mGlobalTrs.z;
PSMTXMultVec(mtx, &mLocalTrs, *dst);
PSMTXMultVec(mtx, mLocalTrs, *dst);
}
/* 8027EF30-8027EF40 279870 0010+00 0/0 1/1 0/0 .text getCurrentCreateNumber__14JPABaseEmitterCFv
+1 -1
View File
@@ -5,7 +5,7 @@
#include "JSystem/JParticle/JPAEmitterManager.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "JSystem/JParticle/JPAResourceManager.h"
#include "dol2asm.h"
#include "dolphin/gx/GX.h"
+1
View File
@@ -7,6 +7,7 @@
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAResource.h"
#include "JSystem/JParticle/JPAResourceManager.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "dol2asm.h"
#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
+1
View File
@@ -6,6 +6,7 @@
#include "JSystem/JParticle/JPAExtraShape.h"
#include "JSystem/JMath/JMATrigonometric.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "JSystem/JParticle/JPAResource.h"
#include "JSystem/JParticle/JPAResourceManager.h"
#include "dol2asm.h"
+2
View File
@@ -4,6 +4,8 @@
//
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "JSystem/JParticle/JPAEmitterManager.h"
#include "dolphin/mtx/mtxvec.h"
#include "dol2asm.h"
#include "dolphin/types.h"
+2 -1
View File
@@ -7,6 +7,7 @@
#include "JSystem/JParticle/JPABaseShape.h"
#include "JSystem/JParticle/JPAMath.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "dol2asm.h"
#include "dolphin/gx/GX.h"
#include "dolphin/mtx/mtx.h"
@@ -762,7 +763,7 @@ void JPAResource::calcWorkData_d(JPAEmitterWorkData* work) {
JPAGetXYZRotateMtx(work->mpEmtr->mLocalRot.x * 0xB6, work->mpEmtr->mLocalRot.y * 0xB6,
work->mpEmtr->mLocalRot.z * 0xB6, mtx);
PSMTXConcat(work->mpEmtr->mGlobalRot, mtx, work->mGlobalRot);
PSMTXMultVecSR(work->mGlobalRot, &work->mpEmtr->mLocalDir, work->mGlobalEmtrDir);
PSMTXMultVecSR(work->mGlobalRot, (Vec*)&work->mpEmtr->mLocalDir, (Vec*)&work->mGlobalEmtrDir);
}
/* 80276A8C-80276A90 2713CC 0004+00 0/0 3/0 0/0 .text
+8 -8
View File
@@ -1211,7 +1211,7 @@ SECTION_SDATA2 static f64 lit_4964 = 4503599627370496.0 /* cast u32 to float */;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_light_influence_col(_GXColor* param_0, f32 param_1) {
asm _GXColor dKy_light_influence_col(_GXColor* param_0, f32 param_1) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_light_influence_col__FP8_GXColorf.s"
}
@@ -4778,7 +4778,7 @@ SECTION_DEAD static char const* const stringBase_80394ECD = "D_MN05A";
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_pol_efftype_get(cBgS_PolyInfo const* param_0) {
asm u8 dKy_pol_efftype_get(cBgS_PolyInfo const* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_pol_efftype_get__FPC13cBgS_PolyInfo.s"
}
@@ -4788,7 +4788,7 @@ asm void dKy_pol_efftype_get(cBgS_PolyInfo const* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_pol_efftype2_get(cBgS_PolyInfo const* param_0) {
asm u8 dKy_pol_efftype2_get(cBgS_PolyInfo const* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_pol_efftype2_get__FPC13cBgS_PolyInfo.s"
}
@@ -4852,7 +4852,7 @@ u8 dKy_pol_argument_get(cBgS_PolyInfo const* p_poly) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_pol_eff_prim_get(cBgS_PolyInfo const* param_0, _GXColor* param_1) {
asm u8 dKy_pol_eff_prim_get(cBgS_PolyInfo const* param_0, _GXColor* param_1) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_pol_eff_prim_get__FPC13cBgS_PolyInfoP8_GXColor.s"
}
@@ -4922,7 +4922,7 @@ asm void dKy_pol_eff2_env_get(cBgS_PolyInfo const* param_0, _GXColor* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_pol_eff_alpha_get(cBgS_PolyInfo const* param_0) {
asm u8 dKy_pol_eff_alpha_get(cBgS_PolyInfo const* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_pol_eff_alpha_get__FPC13cBgS_PolyInfo.s"
}
@@ -4932,7 +4932,7 @@ asm void dKy_pol_eff_alpha_get(cBgS_PolyInfo const* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_pol_eff_ratio_get(cBgS_PolyInfo const* param_0) {
asm f32 dKy_pol_eff_ratio_get(cBgS_PolyInfo const* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_pol_eff_ratio_get__FPC13cBgS_PolyInfo.s"
}
@@ -4943,7 +4943,7 @@ asm void dKy_pol_eff_ratio_get(cBgS_PolyInfo const* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_pol_eff2_alpha_get(cBgS_PolyInfo const* param_0) {
asm u8 dKy_pol_eff2_alpha_get(cBgS_PolyInfo const* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_pol_eff2_alpha_get__FPC13cBgS_PolyInfo.s"
}
@@ -4954,7 +4954,7 @@ asm void dKy_pol_eff2_alpha_get(cBgS_PolyInfo const* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_pol_eff2_ratio_get(cBgS_PolyInfo const* param_0) {
asm f32 dKy_pol_eff2_ratio_get(cBgS_PolyInfo const* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_pol_eff2_ratio_get__FPC13cBgS_PolyInfo.s"
}
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1658,7 +1658,7 @@ bool J3DTevBlock::getTevStage(u32 param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 J3DTevBlock::getTexNo(u32 param_0) const {
asm u16 J3DTevBlock::getTexNo(u32 param_0) const {
nofralloc
#include "asm/m_Do/m_Do_ext/getTexNo__11J3DTevBlockCFUl.s"
}

Some files were not shown because too many files have changed in this diff Show More