From 0a103f01baa3abb4e7892355b2f93cbb306abd29 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Fri, 11 Aug 2023 05:04:50 +0300 Subject: [PATCH] JPAEmitter OK, work on d_particle (#1874) * JPAEmitter OK + header reorganization * libelf: silence repeated relocation warning * Work on d_particle --- .../JPAEmitter/__dt__18JPAEmitterCallBackFv.s | 20 - ...itterFP17JPAEmitterManagerP11JPAResource.s | 217 --- .../processTermination__14JPABaseEmitterFv.s | 45 - .../__ct__19dPa_simpleEcallBackFv.s | 11 - .../__ct__Q218dPa_modelEcallBack7model_cFv.s | 28 - ...t__Q313dPa_control_c7level_c9emitter_cFv.s | 4 - .../d_particle/__dt__16dPa_simpleData_cFv.s | 17 - .../__dt__Q218dPa_modelEcallBack7model_cFv.s | 17 - ...__18dPa_modelEcallBackFP14JPABaseEmitter.s | 14 - .../cleanup__19dPa_followEcallBackFv.s | 12 - ...leanup__Q218dPa_modelEcallBack7model_cFv.s | 23 - ...p__Q313dPa_control_c7level_c9emitter_cFv.s | 59 - .../createCommon__13dPa_control_cFPCv.s | 95 - .../createRoomScene__13dPa_control_cFv.s | 77 - .../createScene__13dPa_control_cFPCv.s | 40 - .../create__18dPa_modelEcallBackFUc.s | 28 - ...simpleEcallBackFP17JPAEmitterManagerUsUc.s | 36 - .../d_particle/dPa_group_id_change__FPUlPUc.s | 100 - .../dPa_setWindPower__FP15JPABaseParticle.s | 46 - ...__18dPa_modelEcallBackFP14JPABaseEmitter.s | 10 - ..._19dPa_light8EcallBackFP14JPABaseEmitter.s | 9 - ..._gen_b_light8EcallBackFP14JPABaseEmitter.s | 9 - ..._gen_d_light8EcallBackFP14JPABaseEmitter.s | 9 - .../drawFirst__FP14JPABaseEmitter.s | 25 - .../drawFirst_l8__FP14JPABaseEmitter.s | 10 - ...Pa_modelEcallBackFP14JPABaseEmitterPA4_f.s | 17 - .../drawSecond_b_light8__FP14JPABaseEmitter.s | 110 -- ...__18dPa_modelEcallBackFP14JPABaseEmitter.s | 33 - ..._19dPa_light8EcallBackFP14JPABaseEmitter.s | 10 - ...1dPa_setColorEcallBackFP14JPABaseEmitter.s | 13 - ...dPa_selectTexEcallBackFP14JPABaseEmitter.s | 13 - ..._gen_b_light8EcallBackFP14JPABaseEmitter.s | 10 - ..._gen_d_light8EcallBackFP14JPABaseEmitter.s | 10 - ...aw__Q218dPa_modelEcallBack7model_cFPA4_f.s | 94 - ..._19dPa_simpleEcallBackFP14JPABaseEmitter.s | 102 - ...ck_cFP14JPABaseEmitterP15JPABaseParticle.s | 32 - ...BackFP14JPABaseEmitterP15JPABaseParticle.s | 10 - ..._19dPa_followEcallBackFP14JPABaseEmitter.s | 66 - ...ck_cFP14JPABaseEmitterP15JPABaseParticle.s | 18 - asm/d/particle/d_particle/func_8004D068.s | 51 - asm/d/particle/d_particle/func_8004D4CC.s | 126 -- asm/d/particle/d_particle/func_8004D6A4.s | 54 - asm/d/particle/d_particle/func_8004D7C4.s | 119 -- ...__18dPa_modelEcallBackFP14JPABaseEmitter.s | 16 - ...3cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf.s | 59 - ...__18dPa_modelEcallBackFP14JPABaseEmitter.s | 16 - .../getSimple__13dPa_control_cFUs.s | 19 - .../initiate_b_Lighting8__FR8_GXColor.s | 37 - .../newSimple__13dPa_control_cFUsUcPUl.s | 40 - ...Pa_control_cFUcPP21mDoDvdThd_toMainRam_c.s | 50 - .../removeRoomScene__13dPa_control_cFb.s | 42 - .../removeScene__13dPa_control_cFb.s | 35 - .../remove__18dPa_modelEcallBackFv.s | 17 - ...__18dPa_modelEcallBackFP14JPABaseEmitter.s | 14 - ...rP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s | 39 - ..._22dPa_hermiteEcallBack_cFPC4cXyzPC4cXyz.s | 4 - ...12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif.s | 36 - .../setStopContinue__13dPa_control_cFUl.s | 24 - ...FP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s | 109 -- ...__18dPa_modelEcallBackFP14JPABaseEmitter.s | 13 - ...lBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s | 32 - ...lBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s | 6 - ...lBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s | 8 - ...lBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s | 8 - ...en_b_light8EcallBack__FP14JPABaseEmitter.s | 75 - ...en_d_light8EcallBack__FP14JPABaseEmitter.s | 75 - ...atic_light8EcallBack__FP14JPABaseEmitter.s | 75 - .../JSystem/J3DGraphAnimator/J3DModelData.h | 4 + include/JSystem/J3DGraphBase/J3DMatBlock.h | 12 +- include/JSystem/J3DGraphBase/J3DMaterial.h | 2 +- include/JSystem/J3DGraphBase/J3DStruct.h | 4 + include/JSystem/JGeometry.h | 11 + include/JSystem/JParticle/JPABaseShape.h | 2 + include/JSystem/JParticle/JPADrawInfo.h | 26 + include/JSystem/JParticle/JPADynamicsBlock.h | 27 +- include/JSystem/JParticle/JPAEmitter.h | 214 ++ include/JSystem/JParticle/JPAEmitterManager.h | 39 + include/JSystem/JParticle/JPAList.h | 99 + include/JSystem/JParticle/JPAParticle.h | 373 +--- include/JSystem/JParticle/JPARandom.h | 38 + include/d/a/d_a_player.h | 1 + include/d/kankyo/d_kankyo.h | 23 + include/d/kankyo/d_kankyo_wether.h | 1 + include/d/particle/d_particle.h | 117 +- include/dolphin/mtx/vec.h | 7 +- include/m_Do/m_Do_ext.h | 1 + libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp | 4 +- libs/JSystem/J3DGraphBase/J3DMatBlock.cpp | 10 +- libs/JSystem/JParticle/JPABaseShape.cpp | 1 + libs/JSystem/JParticle/JPAChildShape.cpp | 1 + libs/JSystem/JParticle/JPADynamicsBlock.cpp | 2 +- libs/JSystem/JParticle/JPAEmitter.cpp | 135 +- libs/JSystem/JParticle/JPAEmitterManager.cpp | 2 +- libs/JSystem/JParticle/JPAExTexShape.cpp | 1 + libs/JSystem/JParticle/JPAExtraShape.cpp | 1 + libs/JSystem/JParticle/JPAParticle.cpp | 2 + libs/JSystem/JParticle/JPAResource.cpp | 3 +- src/d/kankyo/d_kankyo.cpp | 16 +- src/d/particle/d_particle.cpp | 1736 ++++++++++++----- src/m_Do/m_Do_ext.cpp | 2 +- tools/libelf/object.py | 2 + 101 files changed, 1918 insertions(+), 3699 deletions(-) delete mode 100644 asm/JSystem/JParticle/JPAEmitter/__dt__18JPAEmitterCallBackFv.s delete mode 100644 asm/JSystem/JParticle/JPAEmitter/init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource.s delete mode 100644 asm/JSystem/JParticle/JPAEmitter/processTermination__14JPABaseEmitterFv.s delete mode 100644 asm/d/particle/d_particle/__ct__19dPa_simpleEcallBackFv.s delete mode 100644 asm/d/particle/d_particle/__ct__Q218dPa_modelEcallBack7model_cFv.s delete mode 100644 asm/d/particle/d_particle/__ct__Q313dPa_control_c7level_c9emitter_cFv.s delete mode 100644 asm/d/particle/d_particle/__dt__16dPa_simpleData_cFv.s delete mode 100644 asm/d/particle/d_particle/__dt__Q218dPa_modelEcallBack7model_cFv.s delete mode 100644 asm/d/particle/d_particle/cleanupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/cleanup__19dPa_followEcallBackFv.s delete mode 100644 asm/d/particle/d_particle/cleanup__Q218dPa_modelEcallBack7model_cFv.s delete mode 100644 asm/d/particle/d_particle/cleanup__Q313dPa_control_c7level_c9emitter_cFv.s delete mode 100644 asm/d/particle/d_particle/createCommon__13dPa_control_cFPCv.s delete mode 100644 asm/d/particle/d_particle/createRoomScene__13dPa_control_cFv.s delete mode 100644 asm/d/particle/d_particle/createScene__13dPa_control_cFPCv.s delete mode 100644 asm/d/particle/d_particle/create__18dPa_modelEcallBackFUc.s delete mode 100644 asm/d/particle/d_particle/create__19dPa_simpleEcallBackFP17JPAEmitterManagerUsUc.s delete mode 100644 asm/d/particle/d_particle/dPa_group_id_change__FPUlPUc.s delete mode 100644 asm/d/particle/d_particle/dPa_setWindPower__FP15JPABaseParticle.s delete mode 100644 asm/d/particle/d_particle/drawAfter__18dPa_modelEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/drawAfter__19dPa_light8EcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/drawAfter__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/drawAfter__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/drawFirst__FP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/drawFirst_l8__FP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/drawModel__18dPa_modelEcallBackFP14JPABaseEmitterPA4_f.s delete mode 100644 asm/d/particle/d_particle/drawSecond_b_light8__FP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/draw__18dPa_modelEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/draw__19dPa_light8EcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/draw__21dPa_setColorEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/draw__22dPa_selectTexEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/draw__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/draw__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/draw__Q218dPa_modelEcallBack7model_cFPA4_f.s delete mode 100644 asm/d/particle/d_particle/executeAfter__19dPa_simpleEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/execute__17dPa_wbPcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s delete mode 100644 asm/d/particle/d_particle/execute__17dPa_windPcallBackFP14JPABaseEmitterP15JPABaseParticle.s delete mode 100644 asm/d/particle/d_particle/execute__19dPa_followEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/execute__28dPa_particleTracePcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s delete mode 100644 asm/d/particle/d_particle/func_8004D068.s delete mode 100644 asm/d/particle/d_particle/func_8004D4CC.s delete mode 100644 asm/d/particle/d_particle/func_8004D6A4.s delete mode 100644 asm/d/particle/d_particle/func_8004D7C4.s delete mode 100644 asm/d/particle/d_particle/getModel__18dPa_modelEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf.s delete mode 100644 asm/d/particle/d_particle/getRotAxis__18dPa_modelEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/getSimple__13dPa_control_cFUs.s delete mode 100644 asm/d/particle/d_particle/initiate_b_Lighting8__FR8_GXColor.s delete mode 100644 asm/d/particle/d_particle/newSimple__13dPa_control_cFUsUcPUl.s delete mode 100644 asm/d/particle/d_particle/readScene__13dPa_control_cFUcPP21mDoDvdThd_toMainRam_c.s delete mode 100644 asm/d/particle/d_particle/removeRoomScene__13dPa_control_cFb.s delete mode 100644 asm/d/particle/d_particle/removeScene__13dPa_control_cFb.s delete mode 100644 asm/d/particle/d_particle/remove__18dPa_modelEcallBackFv.s delete mode 100644 asm/d/particle/d_particle/resetModel__18dPa_modelEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/setModel__18dPa_modelEcallBackFP14JPABaseEmitterP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s delete mode 100644 asm/d/particle/d_particle/setOldPosP__22dPa_hermiteEcallBack_cFPC4cXyzPC4cXyz.s delete mode 100644 asm/d/particle/d_particle/setSimple__13dPa_control_cFUsPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif.s delete mode 100644 asm/d/particle/d_particle/setStopContinue__13dPa_control_cFUl.s delete mode 100644 asm/d/particle/d_particle/set__Q218dPa_modelEcallBack7model_cFP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s delete mode 100644 asm/d/particle/d_particle/setupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/setup__18dPa_modelEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s delete mode 100644 asm/d/particle/d_particle/setup__19dPa_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s delete mode 100644 asm/d/particle/d_particle/setup__25dPa_gen_b_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s delete mode 100644 asm/d/particle/d_particle/setup__25dPa_gen_d_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s delete mode 100644 asm/d/particle/d_particle/static_gen_b_light8EcallBack__FP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/static_gen_d_light8EcallBack__FP14JPABaseEmitter.s delete mode 100644 asm/d/particle/d_particle/static_light8EcallBack__FP14JPABaseEmitter.s create mode 100644 include/JSystem/JParticle/JPADrawInfo.h create mode 100644 include/JSystem/JParticle/JPAList.h create mode 100644 include/JSystem/JParticle/JPARandom.h diff --git a/asm/JSystem/JParticle/JPAEmitter/__dt__18JPAEmitterCallBackFv.s b/asm/JSystem/JParticle/JPAEmitter/__dt__18JPAEmitterCallBackFv.s deleted file mode 100644 index 8b6b5be422..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/__dt__18JPAEmitterCallBackFv.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JParticle/JPAEmitter/init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource.s b/asm/JSystem/JParticle/JPAEmitter/init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource.s deleted file mode 100644 index 572a9b0545..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JParticle/JPAEmitter/processTermination__14JPABaseEmitterFv.s b/asm/JSystem/JParticle/JPAEmitter/processTermination__14JPABaseEmitterFv.s deleted file mode 100644 index 4fa4df47c2..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/processTermination__14JPABaseEmitterFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/__ct__19dPa_simpleEcallBackFv.s b/asm/d/particle/d_particle/__ct__19dPa_simpleEcallBackFv.s deleted file mode 100644 index e9f90b6a23..0000000000 --- a/asm/d/particle/d_particle/__ct__19dPa_simpleEcallBackFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/__ct__Q218dPa_modelEcallBack7model_cFv.s b/asm/d/particle/d_particle/__ct__Q218dPa_modelEcallBack7model_cFv.s deleted file mode 100644 index a7cfd5ae9e..0000000000 --- a/asm/d/particle/d_particle/__ct__Q218dPa_modelEcallBack7model_cFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/__ct__Q313dPa_control_c7level_c9emitter_cFv.s b/asm/d/particle/d_particle/__ct__Q313dPa_control_c7level_c9emitter_cFv.s deleted file mode 100644 index ae0250a0dc..0000000000 --- a/asm/d/particle/d_particle/__ct__Q313dPa_control_c7level_c9emitter_cFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/__dt__16dPa_simpleData_cFv.s b/asm/d/particle/d_particle/__dt__16dPa_simpleData_cFv.s deleted file mode 100644 index b9f53c47bd..0000000000 --- a/asm/d/particle/d_particle/__dt__16dPa_simpleData_cFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/__dt__Q218dPa_modelEcallBack7model_cFv.s b/asm/d/particle/d_particle/__dt__Q218dPa_modelEcallBack7model_cFv.s deleted file mode 100644 index 52f1b692ec..0000000000 --- a/asm/d/particle/d_particle/__dt__Q218dPa_modelEcallBack7model_cFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/cleanupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/cleanupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 6b7e36ae28..0000000000 --- a/asm/d/particle/d_particle/cleanupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/cleanup__19dPa_followEcallBackFv.s b/asm/d/particle/d_particle/cleanup__19dPa_followEcallBackFv.s deleted file mode 100644 index 7bdd7212b1..0000000000 --- a/asm/d/particle/d_particle/cleanup__19dPa_followEcallBackFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/cleanup__Q218dPa_modelEcallBack7model_cFv.s b/asm/d/particle/d_particle/cleanup__Q218dPa_modelEcallBack7model_cFv.s deleted file mode 100644 index ef938f17fa..0000000000 --- a/asm/d/particle/d_particle/cleanup__Q218dPa_modelEcallBack7model_cFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/cleanup__Q313dPa_control_c7level_c9emitter_cFv.s b/asm/d/particle/d_particle/cleanup__Q313dPa_control_c7level_c9emitter_cFv.s deleted file mode 100644 index a0033864b8..0000000000 --- a/asm/d/particle/d_particle/cleanup__Q313dPa_control_c7level_c9emitter_cFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/createCommon__13dPa_control_cFPCv.s b/asm/d/particle/d_particle/createCommon__13dPa_control_cFPCv.s deleted file mode 100644 index 9a5cbdebb3..0000000000 --- a/asm/d/particle/d_particle/createCommon__13dPa_control_cFPCv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/createRoomScene__13dPa_control_cFv.s b/asm/d/particle/d_particle/createRoomScene__13dPa_control_cFv.s deleted file mode 100644 index 1b0aea57e7..0000000000 --- a/asm/d/particle/d_particle/createRoomScene__13dPa_control_cFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/createScene__13dPa_control_cFPCv.s b/asm/d/particle/d_particle/createScene__13dPa_control_cFPCv.s deleted file mode 100644 index e890a5d06b..0000000000 --- a/asm/d/particle/d_particle/createScene__13dPa_control_cFPCv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/create__18dPa_modelEcallBackFUc.s b/asm/d/particle/d_particle/create__18dPa_modelEcallBackFUc.s deleted file mode 100644 index 2739b1d116..0000000000 --- a/asm/d/particle/d_particle/create__18dPa_modelEcallBackFUc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/create__19dPa_simpleEcallBackFP17JPAEmitterManagerUsUc.s b/asm/d/particle/d_particle/create__19dPa_simpleEcallBackFP17JPAEmitterManagerUsUc.s deleted file mode 100644 index cbcf981386..0000000000 --- a/asm/d/particle/d_particle/create__19dPa_simpleEcallBackFP17JPAEmitterManagerUsUc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/dPa_group_id_change__FPUlPUc.s b/asm/d/particle/d_particle/dPa_group_id_change__FPUlPUc.s deleted file mode 100644 index b769c26785..0000000000 --- a/asm/d/particle/d_particle/dPa_group_id_change__FPUlPUc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/dPa_setWindPower__FP15JPABaseParticle.s b/asm/d/particle/d_particle/dPa_setWindPower__FP15JPABaseParticle.s deleted file mode 100644 index c736263505..0000000000 --- a/asm/d/particle/d_particle/dPa_setWindPower__FP15JPABaseParticle.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/drawAfter__18dPa_modelEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/drawAfter__18dPa_modelEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 8ec1ab02c6..0000000000 --- a/asm/d/particle/d_particle/drawAfter__18dPa_modelEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/drawAfter__19dPa_light8EcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/drawAfter__19dPa_light8EcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 6574fd83ca..0000000000 --- a/asm/d/particle/d_particle/drawAfter__19dPa_light8EcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/drawAfter__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/drawAfter__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s deleted file mode 100644 index a12da1d830..0000000000 --- a/asm/d/particle/d_particle/drawAfter__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/drawAfter__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/drawAfter__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 0110003867..0000000000 --- a/asm/d/particle/d_particle/drawAfter__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/drawFirst__FP14JPABaseEmitter.s b/asm/d/particle/d_particle/drawFirst__FP14JPABaseEmitter.s deleted file mode 100644 index ef3b4284d0..0000000000 --- a/asm/d/particle/d_particle/drawFirst__FP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/drawFirst_l8__FP14JPABaseEmitter.s b/asm/d/particle/d_particle/drawFirst_l8__FP14JPABaseEmitter.s deleted file mode 100644 index b7202f2aff..0000000000 --- a/asm/d/particle/d_particle/drawFirst_l8__FP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/drawModel__18dPa_modelEcallBackFP14JPABaseEmitterPA4_f.s b/asm/d/particle/d_particle/drawModel__18dPa_modelEcallBackFP14JPABaseEmitterPA4_f.s deleted file mode 100644 index c10d914e98..0000000000 --- a/asm/d/particle/d_particle/drawModel__18dPa_modelEcallBackFP14JPABaseEmitterPA4_f.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/drawSecond_b_light8__FP14JPABaseEmitter.s b/asm/d/particle/d_particle/drawSecond_b_light8__FP14JPABaseEmitter.s deleted file mode 100644 index d20c4a9867..0000000000 --- a/asm/d/particle/d_particle/drawSecond_b_light8__FP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/draw__18dPa_modelEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/draw__18dPa_modelEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index cf4d9c8e74..0000000000 --- a/asm/d/particle/d_particle/draw__18dPa_modelEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/draw__19dPa_light8EcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/draw__19dPa_light8EcallBackFP14JPABaseEmitter.s deleted file mode 100644 index eaf7a0297e..0000000000 --- a/asm/d/particle/d_particle/draw__19dPa_light8EcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/draw__21dPa_setColorEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/draw__21dPa_setColorEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 2066cbffb1..0000000000 --- a/asm/d/particle/d_particle/draw__21dPa_setColorEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/draw__22dPa_selectTexEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/draw__22dPa_selectTexEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 5596cbed71..0000000000 --- a/asm/d/particle/d_particle/draw__22dPa_selectTexEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/draw__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/draw__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s deleted file mode 100644 index aefc512ecc..0000000000 --- a/asm/d/particle/d_particle/draw__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/draw__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/draw__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 55e5433c98..0000000000 --- a/asm/d/particle/d_particle/draw__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/draw__Q218dPa_modelEcallBack7model_cFPA4_f.s b/asm/d/particle/d_particle/draw__Q218dPa_modelEcallBack7model_cFPA4_f.s deleted file mode 100644 index baba500937..0000000000 --- a/asm/d/particle/d_particle/draw__Q218dPa_modelEcallBack7model_cFPA4_f.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/executeAfter__19dPa_simpleEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/executeAfter__19dPa_simpleEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 641dac195d..0000000000 --- a/asm/d/particle/d_particle/executeAfter__19dPa_simpleEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/execute__17dPa_wbPcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s b/asm/d/particle/d_particle/execute__17dPa_wbPcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s deleted file mode 100644 index 37325b2880..0000000000 --- a/asm/d/particle/d_particle/execute__17dPa_wbPcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/execute__17dPa_windPcallBackFP14JPABaseEmitterP15JPABaseParticle.s b/asm/d/particle/d_particle/execute__17dPa_windPcallBackFP14JPABaseEmitterP15JPABaseParticle.s deleted file mode 100644 index cc4bc0b258..0000000000 --- a/asm/d/particle/d_particle/execute__17dPa_windPcallBackFP14JPABaseEmitterP15JPABaseParticle.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/execute__19dPa_followEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/execute__19dPa_followEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 6e773e7860..0000000000 --- a/asm/d/particle/d_particle/execute__19dPa_followEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/execute__28dPa_particleTracePcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s b/asm/d/particle/d_particle/execute__28dPa_particleTracePcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s deleted file mode 100644 index b01597d009..0000000000 --- a/asm/d/particle/d_particle/execute__28dPa_particleTracePcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/func_8004D068.s b/asm/d/particle/d_particle/func_8004D068.s deleted file mode 100644 index 087b809639..0000000000 --- a/asm/d/particle/d_particle/func_8004D068.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/func_8004D4CC.s b/asm/d/particle/d_particle/func_8004D4CC.s deleted file mode 100644 index 83aff1639a..0000000000 --- a/asm/d/particle/d_particle/func_8004D4CC.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/func_8004D6A4.s b/asm/d/particle/d_particle/func_8004D6A4.s deleted file mode 100644 index 19d8e563ac..0000000000 --- a/asm/d/particle/d_particle/func_8004D6A4.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/func_8004D7C4.s b/asm/d/particle/d_particle/func_8004D7C4.s deleted file mode 100644 index b435856964..0000000000 --- a/asm/d/particle/d_particle/func_8004D7C4.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/getModel__18dPa_modelEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/getModel__18dPa_modelEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 8c425b59e4..0000000000 --- a/asm/d/particle/d_particle/getModel__18dPa_modelEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf.s b/asm/d/particle/d_particle/getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf.s deleted file mode 100644 index 0a8c750448..0000000000 --- a/asm/d/particle/d_particle/getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/getRotAxis__18dPa_modelEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/getRotAxis__18dPa_modelEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index a0788c9afb..0000000000 --- a/asm/d/particle/d_particle/getRotAxis__18dPa_modelEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/getSimple__13dPa_control_cFUs.s b/asm/d/particle/d_particle/getSimple__13dPa_control_cFUs.s deleted file mode 100644 index 8e6cc76dcc..0000000000 --- a/asm/d/particle/d_particle/getSimple__13dPa_control_cFUs.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/initiate_b_Lighting8__FR8_GXColor.s b/asm/d/particle/d_particle/initiate_b_Lighting8__FR8_GXColor.s deleted file mode 100644 index ac1e987b44..0000000000 --- a/asm/d/particle/d_particle/initiate_b_Lighting8__FR8_GXColor.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/newSimple__13dPa_control_cFUsUcPUl.s b/asm/d/particle/d_particle/newSimple__13dPa_control_cFUsUcPUl.s deleted file mode 100644 index 25730da7c5..0000000000 --- a/asm/d/particle/d_particle/newSimple__13dPa_control_cFUsUcPUl.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/readScene__13dPa_control_cFUcPP21mDoDvdThd_toMainRam_c.s b/asm/d/particle/d_particle/readScene__13dPa_control_cFUcPP21mDoDvdThd_toMainRam_c.s deleted file mode 100644 index 020fd7ace5..0000000000 --- a/asm/d/particle/d_particle/readScene__13dPa_control_cFUcPP21mDoDvdThd_toMainRam_c.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/removeRoomScene__13dPa_control_cFb.s b/asm/d/particle/d_particle/removeRoomScene__13dPa_control_cFb.s deleted file mode 100644 index 70857ed10f..0000000000 --- a/asm/d/particle/d_particle/removeRoomScene__13dPa_control_cFb.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/removeScene__13dPa_control_cFb.s b/asm/d/particle/d_particle/removeScene__13dPa_control_cFb.s deleted file mode 100644 index ddd1702351..0000000000 --- a/asm/d/particle/d_particle/removeScene__13dPa_control_cFb.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/remove__18dPa_modelEcallBackFv.s b/asm/d/particle/d_particle/remove__18dPa_modelEcallBackFv.s deleted file mode 100644 index b24aea0e87..0000000000 --- a/asm/d/particle/d_particle/remove__18dPa_modelEcallBackFv.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/resetModel__18dPa_modelEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/resetModel__18dPa_modelEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index 29983ebf10..0000000000 --- a/asm/d/particle/d_particle/resetModel__18dPa_modelEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setModel__18dPa_modelEcallBackFP14JPABaseEmitterP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s b/asm/d/particle/d_particle/setModel__18dPa_modelEcallBackFP14JPABaseEmitterP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s deleted file mode 100644 index d66c7f4b98..0000000000 --- a/asm/d/particle/d_particle/setModel__18dPa_modelEcallBackFP14JPABaseEmitterP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setOldPosP__22dPa_hermiteEcallBack_cFPC4cXyzPC4cXyz.s b/asm/d/particle/d_particle/setOldPosP__22dPa_hermiteEcallBack_cFPC4cXyzPC4cXyz.s deleted file mode 100644 index 38adfa4d8e..0000000000 --- a/asm/d/particle/d_particle/setOldPosP__22dPa_hermiteEcallBack_cFPC4cXyzPC4cXyz.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setSimple__13dPa_control_cFUsPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif.s b/asm/d/particle/d_particle/setSimple__13dPa_control_cFUsPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif.s deleted file mode 100644 index 1676ef11e7..0000000000 --- a/asm/d/particle/d_particle/setSimple__13dPa_control_cFUsPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setStopContinue__13dPa_control_cFUl.s b/asm/d/particle/d_particle/setStopContinue__13dPa_control_cFUl.s deleted file mode 100644 index 2bf155cd3a..0000000000 --- a/asm/d/particle/d_particle/setStopContinue__13dPa_control_cFUl.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/set__Q218dPa_modelEcallBack7model_cFP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s b/asm/d/particle/d_particle/set__Q218dPa_modelEcallBack7model_cFP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s deleted file mode 100644 index 6e1f010e1c..0000000000 --- a/asm/d/particle/d_particle/set__Q218dPa_modelEcallBack7model_cFP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s b/asm/d/particle/d_particle/setupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s deleted file mode 100644 index bbfb29eca5..0000000000 --- a/asm/d/particle/d_particle/setupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setup__18dPa_modelEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s b/asm/d/particle/d_particle/setup__18dPa_modelEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s deleted file mode 100644 index 2e46d35072..0000000000 --- a/asm/d/particle/d_particle/setup__18dPa_modelEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setup__19dPa_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s b/asm/d/particle/d_particle/setup__19dPa_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s deleted file mode 100644 index 9b365a887c..0000000000 --- a/asm/d/particle/d_particle/setup__19dPa_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setup__25dPa_gen_b_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s b/asm/d/particle/d_particle/setup__25dPa_gen_b_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s deleted file mode 100644 index 0ac95b07d2..0000000000 --- a/asm/d/particle/d_particle/setup__25dPa_gen_b_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/setup__25dPa_gen_d_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s b/asm/d/particle/d_particle/setup__25dPa_gen_d_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s deleted file mode 100644 index 5498fca6c8..0000000000 --- a/asm/d/particle/d_particle/setup__25dPa_gen_d_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/static_gen_b_light8EcallBack__FP14JPABaseEmitter.s b/asm/d/particle/d_particle/static_gen_b_light8EcallBack__FP14JPABaseEmitter.s deleted file mode 100644 index 03e93c97f3..0000000000 --- a/asm/d/particle/d_particle/static_gen_b_light8EcallBack__FP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/static_gen_d_light8EcallBack__FP14JPABaseEmitter.s b/asm/d/particle/d_particle/static_gen_d_light8EcallBack__FP14JPABaseEmitter.s deleted file mode 100644 index f5fe7732cf..0000000000 --- a/asm/d/particle/d_particle/static_gen_d_light8EcallBack__FP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/asm/d/particle/d_particle/static_light8EcallBack__FP14JPABaseEmitter.s b/asm/d/particle/d_particle/static_light8EcallBack__FP14JPABaseEmitter.s deleted file mode 100644 index c94c52eb01..0000000000 --- a/asm/d/particle/d_particle/static_light8EcallBack__FP14JPABaseEmitter.s +++ /dev/null @@ -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 diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h index ca2d8ee971..098380252b 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModelData.h +++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h @@ -75,6 +75,10 @@ public: int removeMatColorAnimator(J3DAnmColor* anm) { return mMaterialTable.removeMatColorAnimator(anm); } + void syncJ3DSys() { + syncJ3DSysFlags(); + syncJ3DSysPointers(); + } private: /* 0x04 */ void* mpRawData; diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h index d86ade35cc..b1cd53886e 100644 --- a/include/JSystem/J3DGraphBase/J3DMatBlock.h +++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h @@ -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); diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h index d55c532e2e..2dfc8decd1 100644 --- a/include/JSystem/J3DGraphBase/J3DMaterial.h +++ b/include/JSystem/J3DGraphBase/J3DMaterial.h @@ -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(); } diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h index 5fa9a87af1..236504cd4c 100644 --- a/include/JSystem/J3DGraphBase/J3DStruct.h +++ b/include/JSystem/J3DGraphBase/J3DStruct.h @@ -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]; diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index c9fb14ecab..310c2c940c 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -31,6 +31,12 @@ struct TVec3 { 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)); diff --git a/include/JSystem/JParticle/JPABaseShape.h b/include/JSystem/JParticle/JPABaseShape.h index c8b6b48537..cd6044ff80 100644 --- a/include/JSystem/JParticle/JPABaseShape.h +++ b/include/JSystem/JParticle/JPABaseShape.h @@ -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); } diff --git a/include/JSystem/JParticle/JPADrawInfo.h b/include/JSystem/JParticle/JPADrawInfo.h new file mode 100644 index 0000000000..8c5ef92d39 --- /dev/null +++ b/include/JSystem/JParticle/JPADrawInfo.h @@ -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 \ No newline at end of file diff --git a/include/JSystem/JParticle/JPADynamicsBlock.h b/include/JSystem/JParticle/JPADynamicsBlock.h index 9519972e5f..c3fc89fb31 100644 --- a/include/JSystem/JParticle/JPADynamicsBlock.h +++ b/include/JSystem/JParticle/JPADynamicsBlock.h @@ -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* vec) const { + vec->set(mpData->mEmitterScl.x, mpData->mEmitterScl.y, mpData->mEmitterScl.z); + } + void getEmitterTrs(JGeometry::TVec3* vec) const { + vec->set(mpData->mEmitterTrs.x, mpData->mEmitterTrs.y, mpData->mEmitterTrs.z); + } + void getEmitterDir(JGeometry::TVec3* vec) const { + vec->set(mpData->mEmitterDir.x, mpData->mEmitterDir.y, mpData->mEmitterDir.z); + } + void getEmitterRot(JGeometry::TVec3* 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; diff --git a/include/JSystem/JParticle/JPAEmitter.h b/include/JSystem/JParticle/JPAEmitter.h index 3562c8c200..f0c014c9e3 100644 --- a/include/JSystem/JParticle/JPAEmitter.h +++ b/include/JSystem/JParticle/JPAEmitter.h @@ -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 mVolumePos; + /* 0x1C */ JGeometry::TVec3 mVelOmni; + /* 0x28 */ JGeometry::TVec3 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 mEmitterPos; + /* 0x114 */ JGeometry::TVec3 mGlobalScl; + /* 0x120 */ JGeometry::TVec3 mGlobalEmtrDir; + /* 0x12C */ JGeometry::TVec3 mPublicScale; + /* 0x138 */ JGeometry::TVec3 mGlobalPos; + /* 0x144 */ JGeometry::TVec2 mGlobalPtclScl; + /* 0x14C */ JGeometry::TVec2 mPivot; + /* 0x154 */ Mtx mYBBCamMtx; + /* 0x184 */ Mtx mPosCamMtx; + /* 0x1B4 */ Mtx mPrjMtx; + /* 0x1E4 */ JPAList* mpAlivePtcl; + /* 0x1E8 */ JPANode* 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*) 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& vec) { vec.set(mLocalTrs); } + void setGlobalRotation(const JGeometry::TVec3& 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& scale) { + mGlobalPScl.set(scale.x, scale.y); + } + void getGlobalParticleScale(JGeometry::TVec3& scale) { + scale.set(mGlobalPScl.x, mGlobalPScl.y, 1.0f); + } + void setGlobalScale(const JGeometry::TVec3& 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 mLocalScl; + /* 0x0C */ JGeometry::TVec3 mLocalTrs; + /* 0x18 */ JGeometry::TVec3 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 mLocalRot; + /* 0x52 */ u16 mLifeTime; + /* 0x54 */ u16 mVolumeSize; + /* 0x56 */ u8 mRateStep; + /* 0x58 */ JSULink mLink; + /* 0x68 */ Mtx mGlobalRot; + /* 0x98 */ JGeometry::TVec3 mGlobalScl; + /* 0xA4 */ JGeometry::TVec3 mGlobalTrs; + /* 0xB0 */ JGeometry::TVec2 mGlobalPScl; + /* 0xB8 */ GXColor mGlobalPrmClr; + /* 0xBC */ GXColor mGlobalEnvClr; + /* 0xC0 */ s32 mpUserWork; + /* 0xC4 */ JPARandom mRndm; + /* 0xC8 */ JPAList mAlivePtclBase; + /* 0xD4 */ JPAList mAlivePtclChld; + /* 0xE0 */ JPAList* 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 */ diff --git a/include/JSystem/JParticle/JPAEmitterManager.h b/include/JSystem/JParticle/JPAEmitterManager.h index a1e14f581b..71c606d803 100644 --- a/include/JSystem/JParticle/JPAEmitterManager.h +++ b/include/JSystem/JParticle/JPAEmitterManager.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 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* mpGrpEmtr; + /* 0x04 */ JSUList mFreeEmtrList; + /* 0x10 */ JPAList mPtclPool; + /* 0x1C */ JPAResourceManager** mpResMgrAry; + /* 0x20 */ JPAEmitterWorkData* mpWorkData; + /* 0x24 */ u32 mEmtrMax; + /* 0x28 */ u32 mPtclMax; + /* 0x2C */ u8 mGrpMax; + /* 0x2D */ u8 mResMax; +}; #endif /* JPAEMITTERMANAGER_H */ diff --git a/include/JSystem/JParticle/JPAList.h b/include/JSystem/JParticle/JPAList.h new file mode 100644 index 0000000000..4c2f134674 --- /dev/null +++ b/include/JSystem/JParticle/JPAList.h @@ -0,0 +1,99 @@ +#ifndef JPALIST_H +#define JPALIST_H + +#include "dolphin/types.h" + +template +struct JPANode { + JPANode() { + mpPrev = NULL; + mpNext = NULL; + } + ~JPANode() {} + JPANode* mpPrev; + JPANode* mpNext; + T mData; +}; + +template +struct JPAList { + JPANode* mpFirst; + JPANode* mpLast; + u32 mNum; + + JPAList() : mpFirst(NULL), mpLast(NULL), mNum() {} + + JPANode* getFirst() const { return mpFirst; } + JPANode* getLast() const { return mpLast; } + u32 getNum() const { return mNum; } + + void push_front(JPANode* 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* 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* pop_front() { + JPANode* 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* pop_back() { + JPANode* 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 \ No newline at end of file diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h index c43cc89a51..5fb3a659e3 100644 --- a/include/JSystem/JParticle/JPAParticle.h +++ b/include/JSystem/JParticle/JPAParticle.h @@ -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 -struct JPANode { - JPANode() { - mpPrev = NULL; - mpNext = NULL; - } - ~JPANode() {} - JPANode* mpPrev; - JPANode* mpNext; - T mData; -}; - -template -struct JPAList { - JPANode* mpFirst; - JPANode* mpLast; - u32 mNum; - - JPAList() : mpFirst(NULL), mpLast(NULL), mNum() {} - - JPANode* getFirst() const { return mpFirst; } - JPANode* getLast() const { return mpLast; } - u32 getNum() const { return mNum; } - - void push_front(JPANode* 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* 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* pop_front() { - JPANode* 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* pop_back() { - JPANode* 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 mVolumePos; - /* 0x1C */ JGeometry::TVec3 mVelOmni; - /* 0x28 */ JGeometry::TVec3 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 mEmitterPos; - /* 0x114 */ JGeometry::TVec3 mGlobalScl; - /* 0x120 */ JGeometry::TVec3 mGlobalEmtrDir; - /* 0x12C */ JGeometry::TVec3 mPublicScale; - /* 0x138 */ JGeometry::TVec3 mGlobalPos; - /* 0x144 */ JGeometry::TVec2 mGlobalPtclScl; - /* 0x14C */ JGeometry::TVec2 mPivot; - /* 0x154 */ Mtx mYBBCamMtx; - /* 0x184 */ Mtx mPosCamMtx; - /* 0x1B4 */ Mtx mPrjMtx; - /* 0x1E4 */ JPAList* mpAlivePtcl; - /* 0x1E8 */ JPANode* 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*) 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& scale) { - mGlobalPScl.set(scale.x, scale.y); - } - - // void setGlobalScale(const JGeometry::TVec3& 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 mLocalRot; - /* 0x52 */ u16 mLifeTime; - /* 0x54 */ u16 mVolumeSize; - /* 0x56 */ u8 mRateStep; - /* 0x58 */ JSULink mLink; - /* 0x68 */ Mtx mGlobalRot; - /* 0x98 */ Vec mGlobalScl; - /* 0xA4 */ JGeometry::TVec3 mGlobalTrs; - /* 0xB0 */ JGeometry::TVec2 mGlobalPScl; - /* 0xB8 */ GXColor mGlobalPrmClr; - /* 0xBC */ GXColor mGlobalEnvClr; - /* 0xC0 */ void* mpUserWork; - /* 0xC4 */ JPARandom mRndm; - /* 0xC8 */ JPAList mAlivePtclBase; - /* 0xD4 */ JPAList mAlivePtclChld; - /* 0xE0 */ JPAList* 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& pos) { mOffsetPosition.set(pos); } + void setOffsetPosition(f32 x, f32 y, f32 z) { mOffsetPosition.set(x, y, z); } void getOffsetPosition(JGeometry::TVec3& pos) { pos.set(mOffsetPosition); } + u16 getRotateAngle() const { return mRotateAngle; } + void getGlobalPosition(JGeometry::TVec3& 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 mPosition; /* 0x0C */ Vec mLocalPosition; /* 0x18 */ JGeometry::TVec3 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 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* mpGrpEmtr; - /* 0x04 */ JSUList mFreeEmtrList; - /* 0x10 */ JPAList 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 diff --git a/include/JSystem/JParticle/JPARandom.h b/include/JSystem/JParticle/JPARandom.h new file mode 100644 index 0000000000..71e95d5bf3 --- /dev/null +++ b/include/JSystem/JParticle/JPARandom.h @@ -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 \ No newline at end of file diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index b26f8172f6..a0cf6b3b8f 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -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; } diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index b124930d04..794cd2aa74 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -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 */ diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h index 901df927a7..e9d86083be 100644 --- a/include/d/kankyo/d_kankyo_wether.h +++ b/include/d/kankyo/d_kankyo_wether.h @@ -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: diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h index 0214eba663..ebb15b46df 100644 --- a/include/d/particle/d_particle.h +++ b/include/d/particle/d_particle.h @@ -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; }; diff --git a/include/dolphin/mtx/vec.h b/include/dolphin/mtx/vec.h index 9f78769cc6..89fa986b82 100644 --- a/include/dolphin/mtx/vec.h +++ b/include/dolphin/mtx/vec.h @@ -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 diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 51c4d8baab..3f84d6d982 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -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(); diff --git a/libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp b/libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp index fdb3a0cdb6..cb57426d74 100644 --- a/libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp +++ b/libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp @@ -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; diff --git a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp index aadfb6de37..05d97f0b5e 100644 --- a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp @@ -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" } diff --git a/libs/JSystem/JParticle/JPABaseShape.cpp b/libs/JSystem/JParticle/JPABaseShape.cpp index e782f0c12c..0a6ddaa1a1 100644 --- a/libs/JSystem/JParticle/JPABaseShape.cpp +++ b/libs/JSystem/JParticle/JPABaseShape.cpp @@ -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" diff --git a/libs/JSystem/JParticle/JPAChildShape.cpp b/libs/JSystem/JParticle/JPAChildShape.cpp index 1b3e183cf9..60d6205861 100644 --- a/libs/JSystem/JParticle/JPAChildShape.cpp +++ b/libs/JSystem/JParticle/JPAChildShape.cpp @@ -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" diff --git a/libs/JSystem/JParticle/JPADynamicsBlock.cpp b/libs/JSystem/JParticle/JPADynamicsBlock.cpp index f3b57e5801..cd058cfc51 100644 --- a/libs/JSystem/JParticle/JPADynamicsBlock.cpp +++ b/libs/JSystem/JParticle/JPADynamicsBlock.cpp @@ -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" diff --git a/libs/JSystem/JParticle/JPAEmitter.cpp b/libs/JSystem/JParticle/JPAEmitter.cpp index 719ca1a2ae..2b399b3502 100644 --- a/libs/JSystem/JParticle/JPAEmitter.cpp +++ b/libs/JSystem/JParticle/JPAEmitter.cpp @@ -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 */ @@ -161,7 +164,7 @@ void JPABaseEmitter::calcEmitterGlobalPosition(JGeometry::TVec3* 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 diff --git a/libs/JSystem/JParticle/JPAEmitterManager.cpp b/libs/JSystem/JParticle/JPAEmitterManager.cpp index 6737e63da2..a3d626078d 100644 --- a/libs/JSystem/JParticle/JPAEmitterManager.cpp +++ b/libs/JSystem/JParticle/JPAEmitterManager.cpp @@ -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" diff --git a/libs/JSystem/JParticle/JPAExTexShape.cpp b/libs/JSystem/JParticle/JPAExTexShape.cpp index 8371457d58..0449372833 100644 --- a/libs/JSystem/JParticle/JPAExTexShape.cpp +++ b/libs/JSystem/JParticle/JPAExTexShape.cpp @@ -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" diff --git a/libs/JSystem/JParticle/JPAExtraShape.cpp b/libs/JSystem/JParticle/JPAExtraShape.cpp index 9f22d5d868..efd1fe46ee 100644 --- a/libs/JSystem/JParticle/JPAExtraShape.cpp +++ b/libs/JSystem/JParticle/JPAExtraShape.cpp @@ -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" diff --git a/libs/JSystem/JParticle/JPAParticle.cpp b/libs/JSystem/JParticle/JPAParticle.cpp index ced16917af..12a63f1348 100644 --- a/libs/JSystem/JParticle/JPAParticle.cpp +++ b/libs/JSystem/JParticle/JPAParticle.cpp @@ -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" diff --git a/libs/JSystem/JParticle/JPAResource.cpp b/libs/JSystem/JParticle/JPAResource.cpp index d0c07c415e..0095b04450 100644 --- a/libs/JSystem/JParticle/JPAResource.cpp +++ b/libs/JSystem/JParticle/JPAResource.cpp @@ -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 diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index eac47ead7e..584945e6ca 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -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" } diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index a08ef77036..780def8709 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -4,13 +4,23 @@ // #include "d/particle/d_particle.h" +#include "d/particle/d_particle_name.h" #include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/JKernel/JKRSolidHeap.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h" +#include "JSystem/JParticle/JPAEmitterManager.h" +#include "JSystem/JParticle/JPAResourceManager.h" +#include "SSystem/SComponent/c_math.h" #include "MSL_C/stdio.h" #include "d/com/d_com_inf_game.h" +#include "d/a/d_a_player.h" #include "dol2asm.h" #include "dolphin/os/OS.h" #include "dolphin/types.h" #include "m_Do/m_Do_lib.h" +#include "m_Do/m_Do_graphic.h" +#include "f_op/f_op_actor_mng.h" // // Forward References: @@ -183,6 +193,9 @@ extern "C" u8 m_d_Light8PcallBack__13dPa_control_c[4]; extern "C" u8 mParticleTracePCB__13dPa_control_c[4 + 4 /* padding */]; extern "C" u8 mStatus__13dPa_control_c; +static void initiateLighting8(_GXColor& param_0, s16 param_1); +static void drawSecond_light8(JPABaseEmitter* param_0); + // // External References: // @@ -345,23 +358,23 @@ SECTION_DATA static u8 l_lifeBallColor[12] = { }; /* 803A8314-803A832C 005434 0018+00 1/1 0/0 0/0 .data effectIDTable$5499 */ -SECTION_DATA static u8 effectIDTable[24] = { - 0x00, 0xE6, 0x00, 0xE7, 0x01, 0x43, 0x01, 0x46, 0x01, 0xAF, 0x01, 0xB8, - 0x88, 0x1B, 0x88, 0x1E, 0x88, 0x1C, 0x88, 0x1F, 0x86, 0xAE, 0x86, 0xAF, +SECTION_DATA static u16 effectIDTable[6][2] = { + {0xE6, 0xE7}, {0x143, 0x146}, {0x1AF, 0x1B8}, + {0x881B, 0x881E}, {0x881C, 0x881F}, {0x86AE, 0x86AF}, }; /* 803A832C-803A835C 00544C 0030+00 1/1 0/0 0/0 .data ringID$5531 */ -SECTION_DATA static u8 ringID[48] = { - 0x00, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x46, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x01, 0xAF, 0x01, 0xB0, 0x01, 0xB1, 0xFF, 0xFF, 0x88, 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x88, 0x1F, 0x88, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0xAF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +SECTION_DATA static u16 ringID[6][4] = { + {0x00E7, 0xFFFF, 0xFFFF, 0xFFFF}, {0x0146, 0xFFFF, 0xFFFF, 0xFFFF}, + {0x01AF, 0x01B0, 0x01B1, 0xFFFF}, {0x881E, 0xFFFF, 0xFFFF, 0xFFFF}, + {0x881F, 0x8820, 0xFFFF, 0xFFFF}, {0x86AF, 0xFFFF, 0xFFFF, 0xFFFF}, }; /* 803A835C-803A838C 00547C 0030+00 1/1 0/0 0/0 .data normalID$5532 */ -SECTION_DATA static u8 normalID[48] = { - 0x00, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x43, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x01, 0xB8, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0xBB, 0x88, 0x1B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x88, 0x1C, 0x88, 0x1D, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0xAE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +SECTION_DATA static u16 normalID[6][4] = { + {0x00E6, 0xFFFF, 0xFFFF, 0xFFFF}, {0x0143, 0xFFFF, 0xFFFF, 0xFFFF}, + {0x01B8, 0x01B9, 0x01BA, 0x01BB}, {0x881B, 0xFFFF, 0xFFFF, 0xFFFF}, + {0x881C, 0x881D, 0xFFFF, 0xFFFF}, {0x86AE, 0xFFFF, 0xFFFF, 0xFFFF}, }; /* 803A838C-803A83A0 0054AC 0014+00 1/2 0/0 0/0 .data __vt__28dPa_particleTracePcallBack_c */ @@ -581,14 +594,27 @@ dPa_followEcallBack::dPa_followEcallBack(u8 param_0, u8 param_1) { /* 800495BC-800496B0 043EFC 00F4+00 1/0 0/0 0/0 .text * execute__19dPa_followEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_followEcallBack::execute(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/execute__19dPa_followEcallBackFP14JPABaseEmitter.s" +void dPa_followEcallBack::execute(JPABaseEmitter* param_0) { + if ((field_0x12 == 0) && ((field_0x10 & 2) == 0)) { + param_0->setGlobalTranslation(field_0x8->x, field_0x8->y, field_0x8->z); + if (field_0xc != NULL) { + JGeometry::TVec3 aTStack_24; + aTStack_24.x = field_0xc->x; + aTStack_24.y = field_0xc->y; + aTStack_24.z = field_0xc->z; + param_0->setGlobalRotation(aTStack_24); + } + } + + if (param_0->isEnableDeleteEmitter()) { + end(); + } + if (isEnd()) { + s16 globalAlpha = param_0->getGlobalAlpha() & 0xff; + cLib_chaseS(&globalAlpha, 1, 4); + param_0->setGlobalAlpha(globalAlpha); + } } -#pragma pop /* 800496B0-800496B4 043FF0 0004+00 1/0 0/0 0/0 .text * draw__19dPa_followEcallBackFP14JPABaseEmitter */ @@ -635,13 +661,16 @@ dPa_modelEcallBack* dPa_modelEcallBack::mEcallback; u8 dPa_modelEcallBack::mPcallback[4]; /* 80450E98-80450E9C 000398 0004+00 5/5 0/0 0/0 .sbss mModel__18dPa_modelEcallBack */ -J3DModel* dPa_modelEcallBack::mModel; +dPa_modelEcallBack::model_c* dPa_modelEcallBack::mModel; /* 80450E9C-80450EA0 -00001 0004+00 3/3 0/0 0/0 .sbss None */ /* 80450E9C 0001+00 data_80450E9C None */ /* 80450E9D 0001+00 data_80450E9D None */ /* 80450E9E 0002+00 data_80450E9E None */ -static u8 struct_80450E9C[4]; +static u8 struct_80450E9C; +static u8 struct_80450E9D; +static s8 struct_80450E9E; +static u8 struct_80450E9F; /* 80450EA0-80450EA4 0003A0 0004+00 14/14 1/1 0/0 .sbss mEmitterMng__13dPa_control_c */ JPAEmitterManager* dPa_control_c::mEmitterMng; @@ -660,18 +689,16 @@ u8 dPa_control_c::mLight8EcallBack[4]; /* 80450EB0-80450EB4 0003B0 0004+00 2/2 0/0 0/0 .sbss mLight8PcallBack__13dPa_control_c */ u8 dPa_control_c::mLight8PcallBack[4]; +//JPAParticleCallBack dPa_control_c::mLight8PcallBack; /* 8004979C-800497B0 0440DC 0014+00 1/0 0/0 0/0 .text * setup__19dPa_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_light8EcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, +// +void dPa_light8EcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, csXyz const* param_2, s8 param_3) { - nofralloc -#include "asm/d/particle/d_particle/setup__19dPa_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s" + param_0->setDrawTimes(2); + param_0->setParticleCallBackPtr(dPa_control_c::getLight8PcallBack()); } -#pragma pop /* ############################################################################################## */ /* 80450EB4-80450EB8 0003B4 0004+00 3/3 0/0 0/0 .sbss m_b_Light8EcallBack__13dPa_control_c */ @@ -679,18 +706,16 @@ u8 dPa_control_c::m_b_Light8EcallBack[4]; /* 80450EB8-80450EBC 0003B8 0004+00 2/2 0/0 0/0 .sbss m_b_Light8PcallBack__13dPa_control_c */ u8 dPa_control_c::m_b_Light8PcallBack[4]; +//JPAParticleCallBack dPa_control_c::m_b_Light8PcallBack; /* 800497B0-800497CC 0440F0 001C+00 1/0 0/0 0/0 .text * setup__25dPa_gen_b_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_gen_b_light8EcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, +void dPa_gen_b_light8EcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, csXyz const* param_2, s8 param_3) { - nofralloc -#include "asm/d/particle/d_particle/setup__25dPa_gen_b_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s" + param_0->setDrawTimes(2); + param_0->setParticleCallBackPtr(dPa_control_c::getGen_b_Light8PcallBack()); + param_0->setUserWork(param_3); } -#pragma pop /* ############################################################################################## */ /* 80450EBC-80450EC0 0003BC 0004+00 3/3 0/0 0/0 .sbss m_d_Light8EcallBack__13dPa_control_c */ @@ -701,25 +726,64 @@ u8 dPa_control_c::m_d_Light8PcallBack[4]; /* 800497CC-800497E8 04410C 001C+00 1/0 0/0 0/0 .text * setup__25dPa_gen_d_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_gen_d_light8EcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, +void dPa_gen_d_light8EcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, csXyz const* param_2, s8 param_3) { - nofralloc -#include "asm/d/particle/d_particle/setup__25dPa_gen_d_light8EcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s" + param_0->setDrawTimes(2); + param_0->setParticleCallBackPtr(dPa_control_c::getGen_d_Light8PcallBack()); + param_0->setUserWork(param_3); } -#pragma pop /* 800497E8-80049934 044128 014C+00 3/3 0/0 0/0 .text dPa_group_id_change__FPUlPUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dPa_group_id_change(u32* param_0, u8* param_1) { - nofralloc -#include "asm/d/particle/d_particle/dPa_group_id_change__FPUlPUc.s" +static void dPa_group_id_change(u32* param_0, u8* param_1) { + if (*param_1 >= 15) { + return; + } + + if (*param_0 & 1) { + param_1[0] = 0; + } else if (*param_0 & 2) { + param_1[0] = 1; + } else if (*param_0 & 4) { + param_1[0] = 2; + } else if (*param_0 & 8) { + param_1[0] = 3; + } else if (*param_0 & 0x4000) { + param_1[0] = 4; + } else if (*param_0 & 0x8000) { + param_1[0] = 5; + } + + if (*param_0 & 0x10) { + switch(*param_1) { + case 0: + *param_1 = 8; + break; + case 1: + *param_1 = 9; + break; + case 2: + *param_1 = 10; + break; + case 3: + *param_1 = 11; + break; + case 4: + *param_1 = 6; + break; + case 5: + *param_1 = 7; + break; + } + } + + if (*param_0 & 0x80) { + *param_1 = 13; + } else if (*param_0 & 0x1000) { + *param_1 = 12; + } else if (*param_0 & 0x2000) { + *param_1 = 14; + } } -#pragma pop /* ############################################################################################## */ /* 80451F40-80451F44 000540 0004+00 2/2 0/0 0/0 .sdata2 @3880 */ @@ -732,6 +796,44 @@ SECTION_SDATA2 static f32 lit_3881 = 4.0f; SECTION_SDATA2 static f64 lit_3883 = 4503601774854144.0 /* cast s32 to float */; /* 80049934-80049B30 044274 01FC+00 1/1 0/0 0/0 .text initiateLighting8__FR8_GXColors */ +// Matches with literals +#ifdef NONMATCHING +static void initiateLighting8(_GXColor& param_0, s16 param_1) { + GXSetChanCtrl(GX_COLOR0, true, GX_SRC_REG, GX_SRC_VTX, 0xfe, GX_DF_CLAMP, GX_AF_SPOT); + GXSetChanCtrl(GX_ALPHA0, false, GX_SRC_REG, GX_SRC_VTX, 0xfe, GX_DF_CLAMP, GX_AF_SPOT); + s32 r,g,b; + GXColor color0; + color0.r = r = (param_1 << 1) & 0x3e; + color0.g = g = (param_1 >> 4) & 0x3e; + color0.b = b = (param_1 >> 9) & 0x3e; + if (daPy_py_c::checkNowWolfPowerUp()) { + f32 fVar2; + f32 fVar1 = (g_env_light.mTerrainAmbienceBG0.r / 255.0f); + fVar2 = r + 0x10; + color0.r = fVar2 * (4.0f * (fVar1)); + + fVar2 = (g_env_light.mTerrainAmbienceBG0.g / 255.0f); + fVar1 = g + 0x10; + color0.g = fVar1 * (4.0f * (fVar2)); + + fVar1 = b + 0x10; + fVar2 = (g_env_light.mTerrainAmbienceBG0.b / 255.0f); + color0.b = fVar1 * (4.0f * (fVar2)); + } + + if (color0.r == 0x3e) { + color0.r = param_0.r; + } + if (color0.g == 0x3e) { + color0.g = param_0.g; + } + if (color0.b == 0x3e) { + color0.b = param_0.b; + } + GXSetChanAmbColor(GX_COLOR0A0, color0); + GXSetChanMatColor(GX_COLOR0A0, g_whiteColor); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -740,37 +842,29 @@ static asm void initiateLighting8(_GXColor& param_0, s16 param_1) { #include "asm/d/particle/d_particle/initiateLighting8__FR8_GXColors.s" } #pragma pop +#endif /* 80049B30-80049BC0 044470 0090+00 1/1 0/0 0/0 .text initiate_b_Lighting8__FR8_GXColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void initiate_b_Lighting8(_GXColor& param_0) { - nofralloc -#include "asm/d/particle/d_particle/initiate_b_Lighting8__FR8_GXColor.s" +static void initiate_b_Lighting8(_GXColor& param_0) { + GXSetChanCtrl(GX_COLOR0, true, GX_SRC_REG, GX_SRC_VTX, 0xfe, GX_DF_CLAMP, GX_AF_SPOT); + GXSetChanCtrl(GX_ALPHA0, false, GX_SRC_REG, GX_SRC_VTX, 0xfe, GX_DF_CLAMP, GX_AF_SPOT); + GXSetChanAmbColor(GX_COLOR0A0, param_0); + GXSetChanMatColor(GX_COLOR0A0, g_whiteColor); } -#pragma pop /* 80049BC0-80049C20 044500 0060+00 1/1 0/0 0/0 .text drawFirst__FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void drawFirst(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/drawFirst__FP14JPABaseEmitter.s" +static void drawFirst(JPABaseEmitter* param_0) { + GXSetColorUpdate(false); + GXSetAlphaCompare(GX_GEQUAL, param_0->getGlobalAlpha(), GX_AOP_OR, GX_GEQUAL, param_0->getGlobalAlpha()); + GXSetZMode(true, GX_LEQUAL, true); + GXSetZCompLoc(false); } -#pragma pop /* 80049C20-80049C44 044560 0024+00 2/2 0/0 0/0 .text drawFirst_l8__FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void drawFirst_l8(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/drawFirst_l8__FP14JPABaseEmitter.s" +static void drawFirst_l8(JPABaseEmitter* param_0) { + GXSetColorUpdate(false); } -#pragma pop /* ############################################################################################## */ /* 80451F50-80451F54 000550 0004+00 9/9 0/0 0/0 .sdata2 @3964 */ @@ -782,6 +876,40 @@ SECTION_SDATA2 static u8 lit_3964[4] = { }; /* 80049C44-80049E40 044584 01FC+00 1/1 0/0 0/0 .text drawSecond_light8__FP14JPABaseEmitter */ +// Matches with literals +#ifdef NONMATCHING +static void drawSecond_light8(JPABaseEmitter* param_0) { + s16 sVar1 = (param_0->mGlobalPrmClr.r); + s16 sVar2 = (sVar1 << 8); + s16 sVar3 = sVar2 + param_0->mGlobalPrmClr.g; + dKy_setLight_nowroom_grass(dComIfGp_roomControl_getStayNo(), 0.0f); + GXSetColorUpdate(1); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetZMode(true, GX_LEQUAL, false); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_SET); + GXSetNumChans(1); + GXColor local_14; + local_14.r = g_env_light.mTerrainAmbienceBG0.r; + local_14.g = g_env_light.mTerrainAmbienceBG0.g; + local_14.b = g_env_light.mTerrainAmbienceBG0.b; + local_14.a = g_env_light.mTerrainAmbienceBG0.a; + initiateLighting8(local_14, sVar3); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, false, 0x7d); + GXSetNumTevStages(2); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, true, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_TEXA, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -790,113 +918,170 @@ static asm void drawSecond_light8(JPABaseEmitter* param_0) { #include "asm/d/particle/d_particle/drawSecond_light8__FP14JPABaseEmitter.s" } #pragma pop +#endif /* 80049E40-80049FEC 044780 01AC+00 2/2 0/0 0/0 .text drawSecond_b_light8__FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void drawSecond_b_light8(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/drawSecond_b_light8__FP14JPABaseEmitter.s" +static void drawSecond_b_light8(JPABaseEmitter* param_0) { + dScnKy_env_light_c* envLight = i_dKy_getEnvlight(); + dKy_setLight_nowroom(dComIfGp_roomControl_getStayNo()); + GXSetColorUpdate(true); + GXSetNumChans(1); + GXColor local_18; + if (param_0->getUserWork() == 0) { + local_18.r = envLight->mActorAmbience.r; + local_18.g = envLight->mActorAmbience.g; + local_18.b = envLight->mActorAmbience.b; + local_18.a = envLight->mActorAmbience.a; + } else { + local_18.r = envLight->mTerrainAmbienceBG0.r;; + local_18.g = envLight->mTerrainAmbienceBG0.g;; + local_18.b = envLight->mTerrainAmbienceBG0.b;; + local_18.a = envLight->mTerrainAmbienceBG0.a;; + } + initiate_b_Lighting8(local_18); + GXSetNumTevStages(2); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_C1, GX_CC_C0, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_CPREV, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, true, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_TEXA, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV); } -#pragma pop /* 80049FEC-8004A108 04492C 011C+00 1/1 0/0 0/0 .text static_light8EcallBack__FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void static_light8EcallBack(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/static_light8EcallBack__FP14JPABaseEmitter.s" +static void static_light8EcallBack(JPABaseEmitter* param_0) { + GXFlush(); + GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); + GXLoadNrmMtxImm(j3dSys.getViewMtx(), 0); + GXInvalidateVtxCache(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_CLR_RGB, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_F32, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + + switch (param_0->getDrawCount()) { + case 1: + drawFirst(param_0); + break; + case 2: + drawSecond_light8(param_0); + break; + } } -#pragma pop /* 8004A108-8004A224 044A48 011C+00 1/1 0/0 0/0 .text * static_gen_b_light8EcallBack__FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void static_gen_b_light8EcallBack(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/static_gen_b_light8EcallBack__FP14JPABaseEmitter.s" +static void static_gen_b_light8EcallBack(JPABaseEmitter* param_0) { + GXFlush(); + Mtx identity; + PSMTXIdentity(identity); + GXLoadPosMtxImm(identity, 0); + GXLoadNrmMtxImm(identity, 0); + GXInvalidateVtxCache(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_CLR_RGB, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_F32, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + + switch (param_0->getDrawCount()) { + case 1: + drawFirst_l8(param_0); + break; + case 2: + drawSecond_b_light8(param_0); + break; + } } -#pragma pop /* 8004A224-8004A340 044B64 011C+00 1/1 0/0 0/0 .text * static_gen_d_light8EcallBack__FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void static_gen_d_light8EcallBack(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/static_gen_d_light8EcallBack__FP14JPABaseEmitter.s" +static void static_gen_d_light8EcallBack(JPABaseEmitter* param_0) { + GXFlush(); + GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); + GXLoadNrmMtxImm(j3dSys.getViewMtx(), 0); + GXInvalidateVtxCache(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_CLR_RGB, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_F32, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + + switch (param_0->getDrawCount()) { + case 1: + drawFirst_l8(param_0); + break; + case 2: + drawSecond_b_light8(param_0); + break; + } } -#pragma pop /* 8004A340-8004A364 044C80 0024+00 1/0 0/0 0/0 .text * draw__19dPa_light8EcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_light8EcallBack::draw(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/draw__19dPa_light8EcallBackFP14JPABaseEmitter.s" +void dPa_light8EcallBack::draw(JPABaseEmitter* param_0) { + static_light8EcallBack(param_0); } -#pragma pop /* 8004A364-8004A388 044CA4 0024+00 1/0 0/0 0/0 .text * draw__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_gen_b_light8EcallBack::draw(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/draw__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s" +void dPa_gen_b_light8EcallBack::draw(JPABaseEmitter* param_0) { + static_gen_b_light8EcallBack(param_0); } -#pragma pop /* 8004A388-8004A3AC 044CC8 0024+00 1/0 0/0 0/0 .text * draw__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_gen_d_light8EcallBack::draw(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/draw__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s" +void dPa_gen_d_light8EcallBack::draw(JPABaseEmitter* param_0) { + static_gen_d_light8EcallBack(param_0); } -#pragma pop - -/* ############################################################################################## */ -/* 80451F54-80451F58 000554 0004+00 1/1 0/0 0/0 .sdata2 @4048 */ -SECTION_SDATA2 static f32 lit_4048 = 13.0f / 20.0f; - -/* 80451F58-80451F5C 000558 0004+00 1/1 0/0 0/0 .sdata2 @4049 */ -SECTION_SDATA2 static f32 lit_4049 = 9.0f; /* 8004A3AC-8004A460 044CEC 00B4+00 2/2 0/0 0/0 .text dPa_setWindPower__FP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dPa_setWindPower(JPABaseParticle* param_0) { - nofralloc -#include "asm/d/particle/d_particle/dPa_setWindPower__FP15JPABaseParticle.s" +static void dPa_setWindPower(JPABaseParticle* param_0) { + f32 local_58; + JGeometry::TVec3 aTStack_18; + JGeometry::TVec3 aTStack_24; + JGeometry::TVec3 aTStack_30; + cXyz cStack_3c; + param_0->getOffsetPosition(aTStack_24); + dKyw_get_AllWind_vec((cXyz*)&aTStack_24, &cStack_3c, &local_58); + cStack_3c.y = 0.65f; + JGeometry::TVec3 aTStack_48; + JGeometry::setTVec3f(cStack_3c * (9.0f * local_58), *(Vec*)&aTStack_48); + aTStack_24 += aTStack_48; + param_0->setOffsetPosition(aTStack_24); } -#pragma pop /* ############################################################################################## */ /* 8037A108-8037A114 006768 000C+00 1/1 0/0 0/0 .rodata @4065 */ -SECTION_RODATA static u8 const lit_4065[12] = { - 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, +SECTION_RODATA static Vec const lit_4065 = { + 1.0f, 1.0f, 1.0f, }; COMPILER_STRIP_GATE(0x8037A108, &lit_4065); /* 80451F5C-80451F60 00055C 0004+00 3/3 0/0 0/0 .sdata2 @4090 */ -SECTION_SDATA2 static f32 lit_4090 = -0.0054931640625f; +SECTION_SDATA2 static f32 lit_4090 = -90.0f / 16384.0f; /* 80451F60-80451F68 000560 0004+04 3/3 0/0 0/0 .sdata2 @4091 */ SECTION_SDATA2 static f32 lit_4091[1 + 1 /* padding */] = { - 0.01745329238474369f, + M_PI / 180.0f, /* padding */ 0.0f, }; @@ -906,6 +1091,49 @@ SECTION_SDATA2 static f64 lit_4093 = 4503599627370496.0 /* cast u32 to float */; /* 8004A460-8004A608 044DA0 01A8+00 1/0 0/0 0/0 .text * draw__18dPa_modelPcallBackFP14JPABaseEmitterP15JPABaseParticle */ +// Matches with literals +#ifdef NONMATCHING +void dPa_modelPcallBack::draw(JPABaseEmitter* param_0, JPABaseParticle* param_1) { + Mtx local_74; + Mtx local_44; + PSMTXIdentity(local_74); + PSMTXIdentity(local_44); + f32 f31 = -90.0f / 16384.0f * param_1->getRotateAngle(); + if (f31) { + switch(dPa_modelEcallBack::getRotAxis(param_0)) { + case 0: + PSMTXRotRad(local_44, 0x79, DEG_TO_RAD(f31)); + break; + case 1: + PSMTXRotRad(local_44, 0x78, DEG_TO_RAD(f31)); + break; + case 2: + PSMTXRotRad(local_44, 0x7a, DEG_TO_RAD(f31)); + break; + case 3: + Vec vec = {1.0f, 1.0f, 1.0f}; + PSMTXRotAxisRad(local_44, &vec, DEG_TO_RAD(f31)); + break; + } + + PSMTXConcat(local_74, local_44, local_74); + } + JGeometry::TVec3 local_cc; + param_1->getGlobalPosition(local_cc); + local_74[0][3] = local_cc.x; + local_74[1][3] = local_cc.y; + local_74[2][3] = local_cc.z; + JGeometry::TVec3 local_fc; + param_0->getGlobalParticleScale(local_fc); + local_fc.x *= param_1->getParticleScaleX(); + local_fc.y *= param_1->getParticleScaleY(); + Mtx auStack_c0; + PSMTXScale(auStack_c0, local_fc.x, local_fc.y, local_fc.x); + PSMTXConcat(local_74, auStack_c0, local_74); + dPa_modelEcallBack::drawModel(param_0, local_74); + param_1->setInvisibleParticleFlag(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -914,20 +1142,90 @@ asm void dPa_modelPcallBack::draw(JPABaseEmitter* param_0, JPABaseParticle* para #include "asm/d/particle/d_particle/draw__18dPa_modelPcallBackFP14JPABaseEmitterP15JPABaseParticle.s" } #pragma pop +#endif /* 8004A608-8004A7AC 044F48 01A4+00 1/1 0/0 0/0 .text * set__Q218dPa_modelEcallBack7model_cFP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::model_c::set(J3DModelData* param_0, dKy_tevstr_c const& param_1, - u8 param_2, void* param_3, u8 param_4, u8 param_5) { - nofralloc -#include "asm/d/particle/d_particle/set__Q218dPa_modelEcallBack7model_cFP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s" +bool dPa_modelEcallBack::model_c::set(J3DModelData* param_0, dKy_tevstr_c const& param_1, + u8 rotAxis, void* param_3, u8 param_4, u8 param_5) { + if (field_0x0 != NULL) { + return false; + } + + field_0x0 = param_0; + field_0x8.mLightObj = param_1.mLightObj; + + // Supposedly dKy_tevstr_c::operator= but it's too big to inline + J3DLightObj* end; + J3DLightObj* src; + J3DLightObj* dst; + dst = (J3DLightObj*)field_0x8.field_0x074; + src = (J3DLightObj*)param_1.field_0x074; + end = field_0x8.field_0x074 + 6; + do { + *dst = *src; + dst++; + src++; + } while (dst < end); + field_0x8.field_0x32c = param_1.field_0x32c; + field_0x8.mLightPosWorld = param_1.mLightPosWorld; + field_0x8.field_0x344 = param_1.field_0x344; + typedef struct Arr{ + int field_0x0[2]; + }; + *(Arr*)&field_0x8.mColorC0 = *(Arr*)¶m_1.mColorC0; + *(Arr*)&field_0x8.mColorK0 = *(Arr*)¶m_1.mColorK0; + *(Arr*)&field_0x8.mFogColor = *(Arr*)¶m_1.mFogColor; + *(int*)&field_0x8.field_0x360 = *(int*)¶m_1.field_0x360; + *(int*)&field_0x8.field_0x364 = *(int*)¶m_1.field_0x364; + + field_0x8.mFogStartZ = param_1.mFogStartZ; + field_0x8.mFogEndZ = param_1.mFogEndZ; + field_0x8.mColpatBlend = param_1.mColpatBlend; + field_0x8.field_0x374 = param_1.field_0x374; + field_0x8.field_0x378 = param_1.field_0x378; + field_0x8.field_0x37a = param_1.field_0x37a; + field_0x8.mInitTimer = param_1.mInitTimer; + field_0x8.mEnvrIdxCurr = param_1.mEnvrIdxCurr; + field_0x8.mEnvrIdxPrev = param_1.mEnvrIdxPrev; + field_0x8.mColpatCurr = param_1.mColpatCurr; + field_0x8.mColpatPrev = param_1.mColpatPrev; + field_0x8.mRoomNo = param_1.mRoomNo; + field_0x8.mEnvrIdxOverride = param_1.mEnvrIdxOverride; + field_0x8.mLightMode = param_1.mLightMode; + field_0x8.mInitType = param_1.mInitType; + field_0x8.field_0x384 = param_1.field_0x384; + field_0x8.field_0x385 = param_1.field_0x385; + mRotAxis = rotAxis; + field_0x391 = param_5; + field_0x4 = (J3DAnmBase*)param_3; + field_0x392 = param_4; + + return true; } -#pragma pop /* 8004A7AC-8004A88C 0450EC 00E0+00 1/1 0/0 0/0 .text setup__Q218dPa_modelEcallBack7model_cFv */ +// Matches with literals +#ifdef NONMATCHING +void dPa_modelEcallBack::model_c::setup() { + if (field_0x4 != NULL) { + if (field_0x392 == 0) { + J3DAnmTexPattern* pattern = (J3DAnmTexPattern*)field_0x4; + pattern->searchUpdateMaterialID(field_0x0); + pattern->setFrame(field_0x391); + field_0x0->entryTexNoAnimator(pattern); + } else { + J3DAnmTevRegKey* tevRegKey = (J3DAnmTevRegKey*)field_0x4; + tevRegKey->searchUpdateMaterialID(field_0x0); + tevRegKey->setFrame(field_0x391); + field_0x0->entryTevRegAnimator(tevRegKey); + } + } + + field_0x0->syncJ3DSys(); + J3DShape::resetVcdVatCache(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -936,195 +1234,211 @@ asm void dPa_modelEcallBack::model_c::setup() { #include "asm/d/particle/d_particle/setup__Q218dPa_modelEcallBack7model_cFv.s" } #pragma pop +#endif /* 8004A88C-8004A8DC 0451CC 0050+00 1/1 0/0 0/0 .text cleanup__Q218dPa_modelEcallBack7model_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::model_c::cleanup() { - nofralloc -#include "asm/d/particle/d_particle/cleanup__Q218dPa_modelEcallBack7model_cFv.s" +void dPa_modelEcallBack::model_c::cleanup() { + if (field_0x4 == NULL) { + return; + } + + if (field_0x392 == 0) { + field_0x0->removeTexNoAnimator((J3DAnmTexPattern*)field_0x4); + } else { + field_0x0->removeTevRegAnimator((J3DAnmTevRegKey*)field_0x4); + } } -#pragma pop /* 8004A8DC-8004AA34 04521C 0158+00 1/1 0/0 0/0 .text draw__Q218dPa_modelEcallBack7model_cFPA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::model_c::draw(f32 (*param_0)[4]) { - nofralloc -#include "asm/d/particle/d_particle/draw__Q218dPa_modelEcallBack7model_cFPA4_f.s" +void dPa_modelEcallBack::model_c::draw(f32 (*param_0)[4]) { + J3DJoint* joint = field_0x0->getJointNodePointer(0); + for (J3DMaterial* material = joint->getMesh(); material != NULL; material = material->getNext()) + { + material->loadSharedDL(); + material->getShape()->loadPreDrawSetting(); + if (material->getMaterialAnm() != NULL) { + material->getMaterialAnm()->calc(material); + } + material->calc(param_0); + u16 texNo = material->getTevBlock()->getTexNo(0); + field_0x0->getTexture()->loadGX(texNo, GX_TEXMAP0); + dKy_setLight_again(); + dKy_Global_amb_set(&field_0x8); + dKy_GxFog_tevstr_set(&field_0x8); + Mtx auStack_48; + PSMTXConcat(j3dSys.getViewMtx(), param_0, auStack_48); + GXLoadPosMtxImm(auStack_48, 0); + GXLoadNrmMtxImm(auStack_48, 0); + material->getShape()->simpleDrawCache(); + } } -#pragma pop /* 8004AA34-8004AAA8 045374 0074+00 1/0 0/0 0/0 .text draw__18dPa_modelEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::draw(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/draw__18dPa_modelEcallBackFP14JPABaseEmitter.s" +void dPa_modelEcallBack::draw(JPABaseEmitter* param_0) { + if (param_0->isEnableDeleteEmitter()) { + param_0->quitImmortalEmitter(); + param_0->setEmitterCallBackPtr(NULL); + param_0->setParticleCallBackPtr(NULL); + resetModel(param_0); + } else { + setupModel(param_0); + } } -#pragma pop /* 8004AAA8-8004AB1C 0453E8 0074+00 1/0 0/0 0/0 .text * setup__18dPa_modelEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, +void dPa_modelEcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, csXyz const* param_2, s8 param_3) { - nofralloc -#include "asm/d/particle/d_particle/setup__18dPa_modelEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s" + param_0->setEmitterCallBackPtr(NULL); + if (mModel != NULL) { + int sVar1 = struct_80450E9C; + for (int i = 0; i < sVar1; i++) { + int x = struct_80450E9D / sVar1; + struct_80450E9D -= (x) * sVar1; + if (mModel[struct_80450E9D].getModelData() == NULL) { + param_0->setUserWork(struct_80450E9D++); + param_0->setParticleCallBackPtr((JPAParticleCallBack*)&mPcallback[0]); + return; + } + struct_80450E9D++; + } + } } -#pragma pop /* 8004AB1C-8004AB88 04545C 006C+00 1/1 0/0 0/0 .text create__18dPa_modelEcallBackFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::create(u8 param_0) { - nofralloc -#include "asm/d/particle/d_particle/create__18dPa_modelEcallBackFUc.s" +void dPa_modelEcallBack::create(u8 param_0) { + mModel = new model_c[param_0]; + struct_80450E9C = param_0; + struct_80450E9D = 0; } -#pragma pop /* 8004AB88-8004ABC4 0454C8 003C+00 2/2 0/0 0/0 .text __dt__Q218dPa_modelEcallBack7model_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dPa_modelEcallBack::model_c::~model_c() { - nofralloc -#include "asm/d/particle/d_particle/__dt__Q218dPa_modelEcallBack7model_cFv.s" +dPa_modelEcallBack::model_c::~model_c() { } -#pragma pop /* 8004ABC4-8004AC00 045504 003C+00 1/1 0/0 0/0 .text remove__18dPa_modelEcallBackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::remove() { - nofralloc -#include "asm/d/particle/d_particle/remove__18dPa_modelEcallBackFv.s" +void dPa_modelEcallBack::remove() { + if (mModel != NULL) { + delete [] mModel; + mModel = NULL; + } } -#pragma pop /* 8004AC00-8004AC90 045540 0090+00 0/0 1/1 11/11 .text * setModel__18dPa_modelEcallBackFP14JPABaseEmitterP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::setModel(JPABaseEmitter* param_0, J3DModelData* param_1, +int dPa_modelEcallBack::setModel(JPABaseEmitter* param_0, J3DModelData* param_1, dKy_tevstr_c const& param_2, u8 param_3, void* param_4, u8 param_5, u8 param_6) { - nofralloc -#include "asm/d/particle/d_particle/setModel__18dPa_modelEcallBackFP14JPABaseEmitterP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc.s" + model_c* pModel = getModel(param_0); + if (pModel != NULL) { + pModel->set(param_1, param_2, param_3, param_4, param_5, param_6); + param_0->setEmitterCallBackPtr((JPAEmitterCallBack*)&mEcallback); + param_0->becomeImmortalEmitter(); + return 1; + } + return 0; } -#pragma pop /* 8004AC90-8004ACC0 0455D0 0030+00 1/1 0/0 0/0 .text * resetModel__18dPa_modelEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::resetModel(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/resetModel__18dPa_modelEcallBackFP14JPABaseEmitter.s" +void dPa_modelEcallBack::resetModel(JPABaseEmitter* param_0) { + model_c* pModel = getModel(param_0); + if (pModel) { + pModel->reset(); + } } -#pragma pop /* 8004ACC0-8004ACEC 045600 002C+00 1/1 0/0 0/0 .text * setupModel__18dPa_modelEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::setupModel(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/setupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s" +void dPa_modelEcallBack::setupModel(JPABaseEmitter* param_0) { + model_c* pModel = getModel(param_0); + if (pModel) { + pModel->setup(); + } } -#pragma pop /* 8004ACEC-8004AD28 04562C 003C+00 1/1 0/0 0/0 .text * drawModel__18dPa_modelEcallBackFP14JPABaseEmitterPA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::drawModel(JPABaseEmitter* param_0, f32 (*param_1)[4]) { - nofralloc -#include "asm/d/particle/d_particle/drawModel__18dPa_modelEcallBackFP14JPABaseEmitterPA4_f.s" +void dPa_modelEcallBack::drawModel(JPABaseEmitter* param_0, f32 (*param_1)[4]) { + model_c* pModel = getModel(param_0); + if (pModel) { + pModel->draw(param_1); + } } -#pragma pop /* 8004AD28-8004AD58 045668 0030+00 1/1 0/0 0/0 .text * cleanupModel__18dPa_modelEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::cleanupModel(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/cleanupModel__18dPa_modelEcallBackFP14JPABaseEmitter.s" +void dPa_modelEcallBack::cleanupModel(JPABaseEmitter* param_0) { + model_c* pModel = getModel(param_0); + if (pModel) { + pModel->cleanup(); + } + dPa_cleanupGX(); } -#pragma pop /* 8004AD58-8004AD90 045698 0038+00 6/6 0/0 0/0 .text * getModel__18dPa_modelEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::getModel(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/getModel__18dPa_modelEcallBackFP14JPABaseEmitter.s" +dPa_modelEcallBack::model_c* dPa_modelEcallBack::getModel(JPABaseEmitter* param_0) { + if (mModel != NULL && param_0 != NULL && param_0->getUserWork() != 0xffffffff) { + return mModel + param_0->getUserWork(); + } + return NULL; } -#pragma pop /* 8004AD90-8004ADC4 0456D0 0034+00 1/1 0/0 0/0 .text * getRotAxis__18dPa_modelEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::getRotAxis(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/getRotAxis__18dPa_modelEcallBackFP14JPABaseEmitter.s" +u8 dPa_modelEcallBack::getRotAxis(JPABaseEmitter* param_0) { + model_c* pModel = getModel(param_0); + if (pModel) { + return pModel->getRotAxis(); + } + return 0; } -#pragma pop /* 8004ADC4-8004ADF4 045704 0030+00 1/0 0/0 0/0 .text * draw__22dPa_selectTexEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_selectTexEcallBack::draw(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/draw__22dPa_selectTexEcallBackFP14JPABaseEmitter.s" +void dPa_selectTexEcallBack::draw(JPABaseEmitter* param_0) { + param_0->loadTexture(field_0x4, GX_TEXMAP0); } -#pragma pop /* 8004ADF4-8004AE1C 045734 0028+00 1/1 0/0 0/0 .text __ct__19dPa_simpleEcallBackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dPa_simpleEcallBack::dPa_simpleEcallBack() { - nofralloc -#include "asm/d/particle/d_particle/__ct__19dPa_simpleEcallBackFv.s" +dPa_simpleEcallBack::dPa_simpleEcallBack() { + mEmitter = NULL; + field_0xc = 0; } -#pragma pop - -/* ############################################################################################## */ -/* 80451F70-80451F74 000570 0004+00 1/1 0/0 0/0 .sdata2 @4391 */ -SECTION_SDATA2 static f32 lit_4391 = 200.0f; /* 8004AE1C-8004AF94 04575C 0178+00 1/0 0/0 0/0 .text * executeAfter__19dPa_simpleEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_simpleEcallBack::executeAfter(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/executeAfter__19dPa_simpleEcallBackFP14JPABaseEmitter.s" +void dPa_simpleEcallBack::executeAfter(JPABaseEmitter* param_0) { + int currentCreateNumber = param_0->getCurrentCreateNumber(); + if (currentCreateNumber <= 0) { + field_0xc = 0; + } else { + u8* pfVar3 = (u8*)mData; + param_0->playCreateParticle(); + for (; field_0xc != 0; field_0xc--) { + Vec local_3c; + if ((int)mDoLib_clipper::clip(j3dSys.getViewMtx(), *(Vec*)pfVar3, 200.0f) == 0) { + JGeometry::TVec3 aTStack_30; + param_0->getLocalTranslation(aTStack_30); + param_0->setGlobalTranslation(((f32*)pfVar3)[0], ((f32*)pfVar3)[1] + aTStack_30.y, ((f32*)pfVar3)[2]); + param_0->setGlobalPrmColor(pfVar3[0xc], pfVar3[0xd], pfVar3[0xe]); + param_0->setGlobalAlpha(pfVar3[0xf]); + param_0->setGlobalEnvColor(pfVar3[0x10], pfVar3[0x11], pfVar3[0x12]); + for (int i = 0; i < currentCreateNumber; i++) { + JPABaseParticle* particle = (JPABaseParticle*)param_0->createParticle(); + if (particle == NULL) + break; + particle->setOffsetPosition(((f32*)pfVar3)[0], ((f32*)pfVar3)[1] + aTStack_30.y, ((f32*)pfVar3)[2]); + } + } + pfVar3 += 0x14; + } + } + param_0->stopCreateParticle(); } -#pragma pop /* 8004AF94-8004AF98 0458D4 0004+00 1/0 0/0 0/0 .text * draw__19dPa_simpleEcallBackFP14JPABaseEmitter */ @@ -1134,24 +1448,18 @@ void dPa_simpleEcallBack::draw(JPABaseEmitter* param_0) { /* 8004AF98-8004B024 0458D8 008C+00 1/1 0/0 1/1 .text * create__19dPa_simpleEcallBackFP17JPAEmitterManagerUsUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_simpleEcallBack::create(JPAEmitterManager* param_0, u16 param_1, u8 param_2) { - nofralloc -#include "asm/d/particle/d_particle/create__19dPa_simpleEcallBackFP17JPAEmitterManagerUsUc.s" +JPABaseEmitter* dPa_simpleEcallBack::create(JPAEmitterManager* param_0, u16 id, u8 param_2) { + mEmitter = NULL; + field_0xa = param_2; + mID = id; + field_0xe = 0x20; + mData = new dPa_simpleData_c[field_0xe]; + createEmitter(param_0); + return mEmitter; } -#pragma pop /* 8004B024-8004B060 045964 003C+00 1/1 0/0 0/0 .text __dt__16dPa_simpleData_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dPa_simpleData_c::~dPa_simpleData_c() { - nofralloc -#include "asm/d/particle/d_particle/__dt__16dPa_simpleData_cFv.s" -} -#pragma pop +dPa_simpleData_c::~dPa_simpleData_c() {} /* 8004B060-8004B064 0459A0 0004+00 1/1 0/0 0/0 .text __ct__16dPa_simpleData_cFv */ dPa_simpleData_c::dPa_simpleData_c() { @@ -1169,18 +1477,43 @@ static u8 lit_4054[12]; #pragma pop /* 80424728-80424734 051448 000C+00 1/1 0/0 0/0 .bss pos$4424 */ -static u8 pos[12]; +static JGeometry::TVec3 pos; /* 8004B064-8004B168 0459A4 0104+00 2/2 0/0 0/0 .text * createEmitter__19dPa_simpleEcallBackFP17JPAEmitterManager */ +// Matches with literals +#ifdef NONMATCHING +JPABaseEmitter* dPa_simpleEcallBack::createEmitter(JPAEmitterManager* param_0) { + JPAResourceManager* this_00 = param_0->getResourceManager(dPa_control_c::getRM_ID(mID)); + u32 uVar1 = this_00->getResUserWork(mID); + if (mEmitter == NULL) { + if (struct_80450E9E == 0) { + pos.set(0.0f, 0.0f, 0.0f); + struct_80450E9E = 1; + } + mEmitter = param_0->createSimpleEmitterID(pos, mID, field_0xa, dPa_control_c::getRM_ID(mID), NULL, NULL); + if (mEmitter == NULL) { + return NULL; + } + if ((uVar1 & 0x100) != 0) { + mEmitter->setParticleCallBackPtr(dPa_control_c::getFsenthPcallBack()); + } + mEmitter->setEmitterCallBackPtr(this); + mEmitter->becomeContinuousParticle(); + mEmitter->stopCreateParticle(); + } + return mEmitter; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dPa_simpleEcallBack::createEmitter(JPAEmitterManager* param_0) { +asm JPABaseEmitter* dPa_simpleEcallBack::createEmitter(JPAEmitterManager* param_0) { nofralloc #include "asm/d/particle/d_particle/createEmitter__19dPa_simpleEcallBackFP17JPAEmitterManager.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80451F74-80451F78 000574 0004+00 1/1 0/0 0/0 .sdata2 @4473 */ @@ -1206,7 +1539,7 @@ SECTION_SDATA2 static f32 lit_4519 = 1.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dPa_simpleEcallBack::set(cXyz const* param_0, dKy_tevstr_c const* param_1, u8 param_2, +asm u32 dPa_simpleEcallBack::set(cXyz const* param_0, dKy_tevstr_c const* param_1, u8 param_2, _GXColor const& param_3, _GXColor const& param_4, int param_5, f32 param_6) { nofralloc @@ -1216,14 +1549,9 @@ asm void dPa_simpleEcallBack::set(cXyz const* param_0, dKy_tevstr_c const* param /* 8004B4E0-8004B504 045E20 0024+00 1/0 0/0 0/0 .text * execute__17dPa_windPcallBackFP14JPABaseEmitterP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_windPcallBack::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/d/particle/d_particle/execute__17dPa_windPcallBackFP14JPABaseEmitterP15JPABaseParticle.s" +void dPa_windPcallBack::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) { + dPa_setWindPower(param_1); } -#pragma pop /* 8004B504-8004B544 045E44 0040+00 3/3 0/0 0/0 .text * onActive__Q313dPa_control_c7level_c9emitter_cFv */ @@ -1260,24 +1588,25 @@ u8 dPa_control_c::mParticleTracePCB[4 + 4 /* padding */]; /* 8004B5AC-8004B688 045EEC 00DC+00 1/1 0/0 0/0 .text * cleanup__Q313dPa_control_c7level_c9emitter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::level_c::emitter_c::cleanup() { - nofralloc -#include "asm/d/particle/d_particle/cleanup__Q313dPa_control_c7level_c9emitter_cFv.s" -} -#pragma pop -/* void dPa_control_c::level_c::emitter_c::cleanup() { - JPAEmitterCallBack* callback = mEmitter->getEmitterCallBackPtr(); - + JPAEmitterCallBack* pdVar1 = mEmitter->getEmitterCallBackPtr(); if (mCallback != NULL) { mCallback->cleanup(); } - - -} */ + if (pdVar1 != dPa_control_c::getGen_b_Light8EcallBack() && + pdVar1 != dPa_control_c::getGen_d_Light8EcallBack() && + pdVar1 != dPa_control_c::getLight8EcallBack()) { + mEmitter->setEmitterCallBackPtr(NULL); + JPAParticleCallBack* cb = mEmitter->getParticleCallBackPtr(); + if (cb == (JPAParticleCallBack*)JPTracePCB4 || + cb == dPa_control_c::getParticleTracePCB()) { + mEmitter->setParticleCallBackPtr(NULL); + } + } + mEmitter->becomeInvalidEmitter(); + mEmitter->quitImmortalEmitter(); + mId = 0; +} /* 8004B688-8004B6F8 045FC8 0070+00 1/1 0/0 0/0 .text __ct__Q213dPa_control_c7level_cFv */ @@ -1597,45 +1926,57 @@ dPa_control_c::dPa_control_c() { } /* 8004BB70-8004BB78 0464B0 0008+00 4/4 0/0 0/0 .text getRM_ID__13dPa_control_cFUs */ -bool dPa_control_c::getRM_ID(u16 param_0) { - return param_0 & 0x8000; +u8 dPa_control_c::getRM_ID(u16 param_0) { + return (param_0 >> 15) & 1; } -/* ############################################################################################## */ -/* 8037A12C-8037A12C 00678C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037A12C = "dummy"; -#pragma pop - /* 8004BB78-8004BCDC 0464B8 0164+00 0/0 1/1 0/0 .text createCommon__13dPa_control_cFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::createCommon(void const* param_0) { - nofralloc -#include "asm/d/particle/d_particle/createCommon__13dPa_control_cFPCv.s" +void dPa_control_c::createCommon(void const* param_0) { + mHeap = mDoExt_createSolidHeapFromSystem(0, 0); + mCommonResMng = new (mHeap, 0) JPAResourceManager(param_0, mHeap); + ResTIMG* pRVar3 = mDoGph_gInf_c::getFrameBufferTimg(); + mCommonResMng->swapTexture(pRVar3, "dummy"); + mEmitterMng = new (mHeap, 0) JPAEmitterManager(3000, 250, *(JKRHeap**)this, 0x13, 2); + mEmitterMng->entryResourceManager(mCommonResMng, 0); + JKRHeap* prevHeap = mDoExt_setCurrentHeap(mHeap); + for (u16 i = 0; i < 5; i++) { + u16 uVar1 = dPa_name::j_o_id[i]; + if (mCommonResMng->checkUserIndexDuplication(uVar1)) { + u32 local_30 = mCommonResMng->getResUserWork(uVar1); + u8 local_38 = 0; + dPa_group_id_change(&local_30, &local_38); + newSimple(uVar1, local_38, &local_30); + } + } + field_0x1a = field_0x19; + mDoExt_setCurrentHeap(prevHeap); + mDoExt_adjustSolidHeap(mHeap); } -#pragma pop /* 8004BCDC-8004BDFC 04661C 0120+00 1/1 0/0 0/0 .text createRoomScene__13dPa_control_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::createRoomScene() { - nofralloc -#include "asm/d/particle/d_particle/createRoomScene__13dPa_control_cFv.s" +void dPa_control_c::createRoomScene() { + m_sceneHeap = mDoExt_createSolidHeapFromGame(0, 0); + mSceneResMng = new (m_sceneHeap, 0) JPAResourceManager(m_sceneRes, m_sceneHeap); + ResTIMG* pRVar3 = mDoGph_gInf_c::getFrameBufferTimg(); + mSceneResMng->swapTexture(pRVar3, "dummy"); + mEmitterMng->entryResourceManager(mSceneResMng, 1); + JKRHeap* prevHeap = mDoExt_setCurrentHeap(m_sceneHeap); + for (u16 i = 0; i < 14; i++) { + u16 uVar1 = dPa_name::s_o_id[i]; + if (mSceneResMng->checkUserIndexDuplication(uVar1)) { + u32 local_30 = mSceneResMng->getResUserWork(uVar1); + u8 local_38 = 0; + dPa_group_id_change(&local_30, &local_38); + newSimple(uVar1, local_38, &local_30); + } + } + mDoExt_setCurrentHeap(prevHeap); + mDoExt_adjustSolidHeap(m_sceneHeap); } -#pragma pop /* ############################################################################################## */ -/* 8037A12C-8037A12C 00678C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037A132 = "/res/Particle/Pscene%03d.jpc"; -#pragma pop /* 804248A0-804248AC 0515C0 000C+00 0/1 0/0 0/0 .bss @4742 */ #pragma push @@ -1644,49 +1985,71 @@ static u8 lit_4742[12]; #pragma pop /* 804248AC-804248D0 0515CC 0020+04 1/1 0/0 0/0 .bss jpcName$4821 */ -static u8 jpcName[32 + 4 /* padding */]; +static char jpcName[32 + 4 /* padding */]; /* 8004BDFC-8004BEB0 04673C 00B4+00 0/0 1/1 0/0 .text * readScene__13dPa_control_cFUcPP21mDoDvdThd_toMainRam_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::readScene(u8 param_0, mDoDvdThd_toMainRam_c** param_1) { - nofralloc -#include "asm/d/particle/d_particle/readScene__13dPa_control_cFUcPP21mDoDvdThd_toMainRam_c.s" +bool dPa_control_c::readScene(u8 param_0, mDoDvdThd_toMainRam_c** param_1) { + if (param_0 == 0xff || param_0 == field_0x18) { + return 0; + } + + if (m_sceneRes) { + JKRHeap::free(m_sceneRes, NULL); + m_sceneRes = NULL; + } + field_0x18 = param_0; + sprintf(jpcName, "/res/Particle/Pscene%03d.jpc", param_0); + *param_1 = mDoDvdThd_toMainRam_c::create(jpcName, 0, m_resHeap); + return 1; } -#pragma pop /* 8004BEB0-8004BF3C 0467F0 008C+00 0/0 1/1 0/0 .text createScene__13dPa_control_cFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::createScene(void const* param_0) { - nofralloc -#include "asm/d/particle/d_particle/createScene__13dPa_control_cFPCv.s" +void dPa_control_c::createScene(void const* param_0) { + for (int i = 0; i < field_0x1a; i++) { + field_0x1c[i].createEmitter(mEmitterMng); + } + if (param_0 != NULL) { + m_sceneRes = (void*)param_0; + } + if (m_sceneRes != NULL) { + createRoomScene(); + } + dPa_modelEcallBack::create(0x80); } -#pragma pop /* 8004BF3C-8004BFD4 04687C 0098+00 1/1 0/0 0/0 .text removeRoomScene__13dPa_control_cFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::removeRoomScene(bool param_0) { - nofralloc -#include "asm/d/particle/d_particle/removeRoomScene__13dPa_control_cFb.s" +bool dPa_control_c::removeRoomScene(bool param_0) { + if (m_sceneHeap == NULL) { + return false; + } + + mEmitterMng->clearResourceManager(true); + mDoExt_destroySolidHeap(m_sceneHeap); + m_sceneHeap = NULL; + mSceneResMng = NULL; + field_0x19 = field_0x1a; + if (param_0) { + JKRHeap::free(m_sceneRes, NULL); + m_sceneRes = NULL; + field_0x18 = 0xff; + } + + return true; } -#pragma pop /* 8004BFD4-8004C054 046914 0080+00 0/0 1/1 0/0 .text removeScene__13dPa_control_cFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::removeScene(bool param_0) { - nofralloc -#include "asm/d/particle/d_particle/removeScene__13dPa_control_cFb.s" +void dPa_control_c::removeScene(bool param_0) { + field_0x210.cleanup(); + removeRoomScene(param_0); + for (int i = 0; i < field_0x1a; i++) { + field_0x1c[i].removeEmitter(); + } + + mEmitterMng->forceDeleteAllEmitter(); + dPa_modelEcallBack::remove(); } -#pragma pop /* 8004C054-8004C078 046994 0024+00 0/0 2/2 0/0 .text cleanup__13dPa_control_cFv */ void dPa_control_c::cleanup() { @@ -1756,11 +2119,9 @@ asm void dPa_control_c::setHitMark(u16 param_0, fopAc_ac_c* param_1, cXyz const* /* ############################################################################################## */ /* 80451F90-80451F94 000590 0004+00 1/1 0/0 0/0 .sdata2 particleID$5076 */ -SECTION_SDATA2 static u8 particleID[4] = { - 0x01, - 0xB3, - 0x01, - 0xB2, +SECTION_SDATA2 static u16 particleID[2] = { + 0x01B3, + 0x01B2, }; /* 80451F94-80451F98 000594 0004+00 1/1 0/0 0/0 .sdata2 @5140 */ @@ -1785,6 +2146,35 @@ SECTION_SDATA2 static u8 lit_5145[8] = { /* 8004C838-8004CA90 047178 0258+00 0/0 2/2 3/3 .text * setWaterRipple__13dPa_control_cFPUlR13cBgS_PolyInfoPC4cXyzfPC12dKy_tevstr_cPC4cXyzSc */ +// Matches with literals +#ifdef NONMATCHING +void dPa_control_c::setWaterRipple(u32* param_0, cBgS_PolyInfo& param_1, cXyz const* param_2, + f32 param_3, dKy_tevstr_c const* param_4, + cXyz const* param_5, s8 param_6) { + f32 rate = 0.05f + 0.15f * (0.01f * param_3); + if (rate > 1.0f) { + rate = 1.0f; + } + csXyz local_50; + cM3dGPla acStack_48; + if (dComIfG_Bgsp().GetTriPla(param_1, &acStack_48)) { + f32 uVar5 = acStack_48.mNormal.absXZ(); + local_50.x = cM_atan2s(uVar5, acStack_48.mNormal.y); + local_50.y = acStack_48.mNormal.atan2sX_Z(); + local_50.z = 0; + } + + for (int i = 0; i < 2; i++, param_0++) { + *param_0 = dComIfGp_particle_setPolyColor( + *param_0, particleID[i], param_1, param_2, param_4, + &local_50, param_5, 0, 0, param_6, 0); + JPABaseEmitter* emitter = getEmitter(*param_0); + if (emitter != NULL) { + emitter->setRate(rate); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1795,6 +2185,7 @@ asm void dPa_control_c::setWaterRipple(u32* param_0, cBgS_PolyInfo& param_1, cXy #include "asm/d/particle/d_particle/setWaterRipple__13dPa_control_cFPUlR13cBgS_PolyInfoPC4cXyzfPC12dKy_tevstr_cPC4cXyzSc.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80451FB8-80451FBC 0005B8 0004+00 1/1 0/0 0/0 .sdata2 @5189 */ @@ -1812,6 +2203,130 @@ SECTION_SDATA2 static u32 lit_5199 = 0xFFFFFFFF; /* 8004CA90-8004CF90 0473D0 0500+00 3/3 20/20 418/418 .text * set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf */ +// Matches with literals +#ifdef NONMATCHING +JPABaseEmitter* dPa_control_c::set(u8 param_0, u16 param_1, cXyz const* param_2, + dKy_tevstr_c const* param_3, csXyz const* param_4, cXyz const* param_5, + u8 param_6, dPa_levelEcallBack* param_7, s8 param_8, + _GXColor const* param_9, _GXColor const* param_10, cXyz const* param_11, + f32 param_12) { + u8 local_e0 = getRM_ID(param_1); + JPAResourceManager* local_a8 = mEmitterMng->getResourceManager(local_e0); + if (local_a8 == NULL) { + return NULL; + } + + u32 local_ac = local_a8->getResUserWork(param_1); + if (param_3 != NULL && param_3->mInitType != 0x7c) { + return NULL; + } + + dPa_group_id_change(&local_ac, ¶m_0); + JGeometry::TVec3 aTStack_78; + aTStack_78.set(param_2->x, param_2->y, param_2->z); + JPABaseEmitter* this_00 = mEmitterMng->createSimpleEmitterID( + aTStack_78, param_1, param_0, + local_e0, NULL, NULL); + + if (this_00 == NULL) { + return NULL; + } + + if (param_4 != NULL) { + JGeometry::TVec3 aTStack_a4; + aTStack_a4.x = param_4->x; + aTStack_a4.y = param_4->y; + aTStack_a4.z = param_4->z; + this_00->setGlobalRotation(aTStack_a4); + } + if (param_5 != NULL) { + JGeometry::TVec3 aTStack_84; + aTStack_84.x = param_5->x; + aTStack_84.y = param_5->y; + aTStack_84.z = param_5->z; + this_00->setGlobalScale(aTStack_84); + } + + this_00->setGlobalAlpha(param_6); + if (param_7 != NULL) { + this_00->setEmitterCallBackPtr(param_7); + param_7->setup(this_00, param_2, param_4, param_8); + } + if ((local_ac & 0x100) != 0) { + this_00->setParticleCallBackPtr(getFsenthPcallBack()); + } + if ((local_ac & 0x800) != 0) { + this_00->setEmitterCallBackPtr(getGen_d_Light8EcallBack()); + if ((local_ac & 0x20) != 0) { + getGen_d_Light8EcallBack()->setup(this_00, param_2, param_4, 0); + } else { + getGen_d_Light8EcallBack()->setup(this_00, param_2, param_4, 1); + } + } else { + if ((local_ac & 0x400) != 0) { + this_00->setEmitterCallBackPtr(getGen_b_Light8EcallBack()); + if ((local_ac & 0x20) != 0) { + getGen_b_Light8EcallBack()->setup(this_00, param_2, param_4, 0); + } else { + getGen_b_Light8EcallBack()->setup(this_00, param_2, param_4, 1); + } + } else { + if ((local_ac & 0xef0000) >> 0x10 < 100) { + param_12 = ((local_ac & 0xef0000) >> 0x10) / 99.0f; + } + if ((local_ac & 0x20) != 0) { + GXColor local_b0; + GXColor local_b4; + GXColor local_b8 = {0xff, 0xff, 0xff, 0xff}; + GXColor local_bc = {0xff, 0xff, 0xff, 0xff}; + if (param_10 != NULL) { + local_b8 = *param_10; + } + if (param_9 != NULL) { + local_bc = *param_9; + } + dKy_ParticleColor_get_actor((cXyz*)param_2, (dKy_tevstr_c*)param_3, &local_b0, + &local_b4, &local_b8, &local_bc, param_12); + this_00->setGlobalEnvColor(local_b0.r, local_b0.g, local_b0.b); + this_00->setGlobalPrmColor(local_b4.r, local_b4.g, local_b4.b); + } else { + if ((local_ac & 0x40) != 0) { + GXColor local_c0; + GXColor local_c4; + GXColor local_c8 = {0xff, 0xff, 0xff, 0xff}; + GXColor local_cc = {0xff, 0xff, 0xff, 0xff}; + if (param_10 != NULL) { + local_c8 = *param_10; + } + if (param_9 != NULL) { + local_cc = *param_9; + } + dKy_ParticleColor_get_bg((cXyz*)param_2, (dKy_tevstr_c*)param_3, &local_c0, + &local_c4, &local_c8, &local_cc, param_12); + param_12 = g_env_light.mPaletteTerrainLightEffect + (1.0f - g_env_light.mPaletteTerrainLightEffect) * param_12; + local_c0 = dKy_light_influence_col(&local_c0, param_12); + local_c4 = dKy_light_influence_col(&local_c4, param_12); + this_00->setGlobalEnvColor(local_c0.r, local_c0.g, local_c0.b); + this_00->setGlobalPrmColor(local_c4.r, local_c4.g, local_c4.b); + } else { + if (param_9 != NULL) { + this_00->setGlobalPrmColor(param_9->r, param_9->g, param_9->b); + } + if (param_10 != NULL) { + this_00->setGlobalEnvColor(param_10->r, param_10->g, param_10->b); + } + } + } + } + } + if (param_11 != NULL) { + JGeometry::TVec3 aTStack_9c; + aTStack_9c.set(param_11->x, param_11->y, param_11->z); + this_00->setGlobalParticleScale(aTStack_9c); + } + return this_00; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1824,79 +2339,88 @@ asm JPABaseEmitter* dPa_control_c::set(u8 param_0, u16 param_1, cXyz const* para #include "asm/d/particle/d_particle/func_8004CA90.s" } #pragma pop +#endif /* 8004CF90-8004D068 0478D0 00D8+00 4/4 1/1 0/0 .text * getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::getPolyColor(cBgS_PolyInfo& param_0, int param_1, _GXColor* param_2, +s32 dPa_control_c::getPolyColor(cBgS_PolyInfo& param_0, int param_1, _GXColor* param_2, _GXColor* param_3, u8* param_4, f32* param_5) { - nofralloc -#include "asm/d/particle/d_particle/getPolyColor__13dPa_control_cFR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf.s" + if (!dComIfG_Bgsp().ChkPolySafe(param_0)) { + return 0; + } + + if (param_1 == NULL) { + dKy_pol_eff_prim_get(¶m_0, param_2); + dKy_pol_eff_env_get(¶m_0, param_3); + *param_4 = dKy_pol_eff_alpha_get(¶m_0); + *param_5 = dKy_pol_eff_ratio_get(¶m_0); + } else { + dKy_pol_eff2_prim_get(¶m_0, param_2); + dKy_pol_eff2_env_get(¶m_0, param_3); + *param_4 = dKy_pol_eff2_alpha_get(¶m_0); + *param_5 = dKy_pol_eff2_ratio_get(¶m_0); + } + + return 1; } -#pragma pop /* 8004D068-8004D128 0479A8 00C0+00 0/0 1/1 17/17 .text * setPoly__13dPa_control_cFUsR13cBgS_PolyInfoPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyziP18dPa_levelEcallBackScPC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::setPoly(u16 param_0, cBgS_PolyInfo& param_1, cXyz const* param_2, +JPABaseEmitter* dPa_control_c::setPoly(u16 param_0, cBgS_PolyInfo& param_1, cXyz const* param_2, dKy_tevstr_c const* param_3, csXyz const* param_4, cXyz const* param_5, int param_6, dPa_levelEcallBack* param_7, s8 param_8, cXyz const* param_9) { - nofralloc -#include "asm/d/particle/d_particle/func_8004D068.s" -} -#pragma pop + u8 local_18; + float local_c; + GXColor a_Stack_10; + GXColor a_Stack_14; -/* ############################################################################################## */ -/* 8037A12C-8037A12C 00678C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037A14F = - "" - "\x1B" - "[43;30m1エミッター登録数オーバー!!\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8037A177 = ""; -#pragma pop + if (getPolyColor(param_1, param_6, &a_Stack_10, + &a_Stack_14, &local_18, &local_c)) { + return setNormal(param_0, param_2, param_3, param_4, param_5, local_18, + param_7, param_8, &a_Stack_10, &a_Stack_14, param_9, local_c); + } + return NULL; +} /* 8004D128-8004D1B8 047A68 0090+00 2/2 0/0 0/0 .text newSimple__13dPa_control_cFUsUcPUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::newSimple(u16 param_0, u8 param_1, u32* param_2) { - nofralloc -#include "asm/d/particle/d_particle/newSimple__13dPa_control_cFUsUcPUl.s" +bool dPa_control_c::newSimple(u16 param_0, u8 param_1, u32* param_2) { + if (field_0x19 >= 0x19) { + OSReport("\x1B[43;30m1エミッター登録数オーバー!!\n"); + return false; + } + if (field_0x1c[field_0x19].create(mEmitterMng, param_0, param_1) == 0) { + return false;; + } + field_0x19++; + return true; } -#pragma pop /* 8004D1B8-8004D23C 047AF8 0084+00 0/0 0/0 9/9 .text * setSimple__13dPa_control_cFUsPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::setSimple(u16 param_0, cXyz const* param_1, dKy_tevstr_c const* param_2, +u32 dPa_control_c::setSimple(u16 param_0, cXyz const* param_1, dKy_tevstr_c const* param_2, u8 param_3, _GXColor const& param_4, _GXColor const& param_5, int param_6, f32 param_7) { - nofralloc -#include "asm/d/particle/d_particle/setSimple__13dPa_control_cFUsPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif.s" + dPa_simpleEcallBack* cb = getSimple(param_0); + if (cb == NULL) { + return 0; + } + + return cb->set(param_1, param_2, param_3, param_4, param_5, param_6, param_7); } -#pragma pop /* 8004D23C-8004D278 047B7C 003C+00 1/1 0/0 0/0 .text getSimple__13dPa_control_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::getSimple(u16 param_0) { - nofralloc -#include "asm/d/particle/d_particle/getSimple__13dPa_control_cFUs.s" +dPa_simpleEcallBack* dPa_control_c::getSimple(u16 param_0) { + dPa_simpleEcallBack* arr = field_0x1c; + for (int i = 0; i < field_0x19; i++, arr++) { + if (param_0 == arr->getID()) { + return arr; + } + } + return NULL; } -#pragma pop /* ############################################################################################## */ /* 80451FC8-80451FCC 0005C8 0004+00 1/1 0/0 0/0 .sdata2 @5374 */ @@ -1913,6 +2437,54 @@ SECTION_SDATA2 static u32 lit_5384 = 0xFFFFFFFF; /* 8004D278-8004D4CC 047BB8 0254+00 1/1 0/0 0/0 .text * dPa_kankyocolor_set__FfP14JPABaseEmitterPC12dKy_tevstr_cUlPC4cXyzPC8_GXColorPC8_GXColor */ +// Matches with literals +#ifdef NONMATCHING +static void dPa_kankyocolor_set(f32 param_0, JPABaseEmitter* param_1, + dKy_tevstr_c const* param_2, u32 param_3, cXyz const* param_4, + _GXColor const* param_5, _GXColor const* param_6) { + f32 fVar1 = param_0; + if ((param_3 & 0xef0000) >> 0x10 < 100) { + fVar1 = ((param_3 & 0xef0000) >> 0x10) / 99.0f; + } + + if ((param_3 & 0x20) != 0) { + GXColor local_60; + GXColor local_64; + GXColor local_68 = {0xff, 0xff, 0xff, 0xff}; + GXColor local_6c = {0xff, 0xff, 0xff, 0xff}; + if (param_6 != NULL) { + local_68 = *param_6; + } + if (param_5 != NULL) { + local_6c = *param_5; + } + dKy_ParticleColor_get_actor((cXyz*)param_4, (dKy_tevstr_c*)param_2, &local_60, &local_64, + &local_68, &local_6c, fVar1); + param_1->setGlobalEnvColor(local_60.r, local_60.g, local_60.b); + param_1->setGlobalPrmColor(local_64.r, local_64.g, local_64.b); + } else if ((param_3 & 0x40) != 0) { + GXColor local_70; + GXColor local_74; + GXColor local_78 = {0xff, 0xff, 0xff, 0xff}; + GXColor local_7c = {0xff, 0xff, 0xff, 0xff}; + if (param_6 != NULL) { + local_78 = *param_6; + } + if (param_5 != NULL) { + local_7c = *param_5; + } + dKy_ParticleColor_get_bg((cXyz*)param_4, (dKy_tevstr_c*)param_2, &local_70, &local_74, + &local_78, &local_7c, fVar1); + fVar1 = g_env_light.mPaletteTerrainLightEffect + (1.0f - g_env_light.mPaletteTerrainLightEffect) * fVar1; + local_70 = dKy_light_influence_col(&local_70, fVar1); + //_GXColor::operator_ = (&local_70, (_GXColor*)&local_80); + local_74 = dKy_light_influence_col(&local_74, fVar1); + //_GXColor::operator_ = (&local_74, (_GXColor*)&local_84); + param_1->setGlobalEnvColor(local_70.r, local_70.g, local_70.b); + param_1->setGlobalPrmColor(local_74.r, local_74.g, local_74.b); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1923,72 +2495,204 @@ static asm void dPa_kankyocolor_set(f32 param_0, JPABaseEmitter* param_1, #include "asm/d/particle/d_particle/dPa_kankyocolor_set__FfP14JPABaseEmitterPC12dKy_tevstr_cUlPC4cXyzPC8_GXColorPC8_GXColor.s" } #pragma pop +#endif /* 8004D4CC-8004D6A4 047E0C 01D8+00 3/3 11/11 364/364 .text * set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dPa_control_c::set(u32 param_0, u8 param_1, u16 param_2, cXyz const* param_3, +u32 dPa_control_c::set(u32 param_0, u8 param_1, u16 param_2, cXyz const* param_3, dKy_tevstr_c const* param_4, csXyz const* param_5, cXyz const* param_6, u8 param_7, dPa_levelEcallBack* param_8, s8 param_9, _GXColor const* param_10, _GXColor const* param_11, cXyz const* param_12, f32 param_13) { - nofralloc -#include "asm/d/particle/d_particle/func_8004D4CC.s" + level_c::emitter_c* this_00 = field_0x210.get(param_0); + u8 uVar7 = getRM_ID(param_2); + JPAResourceManager* this_01 = mEmitterMng->getResourceManager(uVar7); + u32 uVar3 = this_01->getResUserWork(param_2); + if (this_00 != NULL) { + if (param_2 == this_00->getNameId()) { + this_00->onActive(); + JPABaseEmitter* pJVar4 = this_00->getEmitter(); + pJVar4->playCalcEmitter(); + if (this_00->getCallback() == 0) { + pJVar4->setGlobalTranslation(param_3->x, param_3->y, param_3->z); + if (param_5 != NULL) { + JGeometry::TVec3 aTStack_64; + aTStack_64.x = param_5->x; + aTStack_64.y = param_5->y; + aTStack_64.z = param_5->z; + pJVar4->setGlobalRotation(aTStack_64); + } + } + if (pJVar4->checkStatus(JPAEmtrStts_StopEmit)) { + pJVar4->playCreateParticle(); + } + dPa_kankyocolor_set(param_13, pJVar4, param_4, uVar3, param_3, param_10, param_11); + return this_00->getId(); + } + field_0x210.cutTable(this_00); + } + if (param_8 != NULL) { + param_8->cleanup(); + } + JPABaseEmitter* pJVar5 = set(param_1, param_2, param_3, param_4, param_5, param_6, param_7, + param_8, param_9, param_10, param_11, param_12, param_13); + if (pJVar5 == NULL) { + return 0; + } + + return field_0x210.entry(param_2, pJVar5, param_8); } -#pragma pop /* 8004D6A4-8004D770 047FE4 00CC+00 1/1 3/3 10/10 .text * setPoly__13dPa_control_cFUlUsR13cBgS_PolyInfoPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyziP18dPa_levelEcallBackScPC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dPa_control_c::setPoly(u32 param_0, u16 param_1, cBgS_PolyInfo& param_2, +u32 dPa_control_c::setPoly(u32 param_0, u16 param_1, cBgS_PolyInfo& param_2, cXyz const* param_3, dKy_tevstr_c const* param_4, csXyz const* param_5, cXyz const* param_6, int param_7, dPa_levelEcallBack* param_8, s8 param_9, cXyz const* param_10) { - nofralloc -#include "asm/d/particle/d_particle/func_8004D6A4.s" + f32 local_8; + GXColor local_10; + GXColor local_c; + u8 local_4; + if (getPolyColor(param_2, param_7, &local_10, + &local_c, &local_4, (f32*)&local_8)) { + return setNormal(param_0, param_1, param_3, param_4, param_5, param_6, + local_4, param_8, param_9, &local_10, &local_c, param_10, + local_8); + } + + return 0; } -#pragma pop /* 8004D770-8004D7C4 0480B0 0054+00 0/0 1/1 0/0 .text setStopContinue__13dPa_control_cFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_control_c::setStopContinue(u32 param_0) { - nofralloc -#include "asm/d/particle/d_particle/setStopContinue__13dPa_control_cFUl.s" +u32 dPa_control_c::setStopContinue(u32 param_0) { + level_c::emitter_c* emitter = field_0x210.get(param_0); + if (emitter != NULL) { + emitter->onActive(); + emitter->getEmitter()->stopCreateParticle(); + return emitter->getId(); + } + return 0; } -#pragma pop /* 8004D7C4-8004D988 048104 01C4+00 0/0 1/1 0/0 .text * setSimpleFoot__13dPa_control_cFUlPUlR13cBgS_PolyInfoPC4cXyzPC12dKy_tevstr_ciPC5csXyzPC4cXyzP18dPa_levelEcallBackScPC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dPa_control_c::setSimpleFoot(u32 param_0, u32* param_1, cBgS_PolyInfo& param_2, +u32 dPa_control_c::setSimpleFoot(u32 param_0, u32* param_1, cBgS_PolyInfo& param_2, cXyz const* param_3, dKy_tevstr_c const* param_4, int param_5, csXyz const* param_6, cXyz const* param_7, dPa_levelEcallBack* param_8, s8 param_9, cXyz const* param_10) { - nofralloc -#include "asm/d/particle/d_particle/func_8004D7C4.s" + f32 local_44; + u8 local_50; + GXColor a_Stack_48; + GXColor a_Stack_4c; + if (getPolyColor(param_2, 0, &a_Stack_48, &a_Stack_4c, &local_50, + &local_44) == 0) + { + return 0; + } + + u8 effType = dKy_pol_efftype_get(¶m_2); + if (effType >= 6) { + return 0; + } + u32 rv = setNormal(param_0, effectIDTable[effType][param_5], + param_3, param_4, param_6, param_7, local_50, param_8, param_9, &a_Stack_48, + &a_Stack_4c, param_10, local_44); + u8 effType2 = dKy_pol_efftype2_get(¶m_2); + int polyAtt = dComIfG_Bgsp().GetPolyAtt0(param_2); + if (effType2 < 6 && (polyAtt != 1 || polyAtt != 3)) { + getPolyColor(param_2, 1, &a_Stack_48, &a_Stack_4c, + &local_50, &local_44); + *param_1 = setNormal(*param_1, effectIDTable[effType2][param_5], + param_3, param_4, param_6, param_7, local_50, param_8, param_9, &a_Stack_48, + &a_Stack_4c, param_10, local_44); + } + return rv; } -#pragma pop /* 8004D988-8004DC28 0482C8 02A0+00 0/0 1/1 0/0 .text * setCommonPoly__13dPa_control_cFPUlP13cBgS_PolyInfoPC4cXyzPC4cXyzPC12dKy_tevstr_cUlUlPC5csXyzPC4cXyzSc */ +// Small regalloc +#ifdef NONMATCHING +u16 dPa_control_c::setCommonPoly(u32* param_0, cBgS_PolyInfo* param_1, cXyz const* param_2, + cXyz const* param_3, dKy_tevstr_c const* param_4, u32 param_5, + u32 param_6, csXyz const* param_7, cXyz const* param_8, + s8 param_9) { + f32 local_30; + GXColor a_Stack_34; + GXColor a_Stack_38; + u8 local_4c; + u16 uVar5 = 0; + if (dComIfG_Bgsp().ChkPolySafe(*param_1) == 0) { + return 0; + } + + int local_44 = dComIfG_Bgsp().GetPolyAtt0(*param_1); + for (int i = 0; i < 2; i++) { + if (getPolyColor(*param_1, i, &a_Stack_34, &a_Stack_38, &local_4c, &local_30) == 0) { + return 0xffff; + } + u8 bVar3; + if ((param_6 & 0x80000000) != 0) { + if (i == 1 && dKy_camera_water_in_status_check() && (local_44 == 1 || local_44 == 3)) { + bVar3 = 5; + } else { + bVar3 = 6; + } + } else { + if (i == 0) { + bVar3 = dKy_pol_efftype_get(param_1); + } else if (local_44 == 1 || local_44 == 3) { + bVar3 = 6; + } else { + bVar3 = dKy_pol_efftype2_get(param_1); + } + } + + if (bVar3 >= 6 || (param_6 & (1 << bVar3)) != 0 || + (bVar3 == 2 && (param_6 & 0x10000) != 0 && i == 1)) + { + uVar5 |= (0xff << (i << 3)); + } else { + uVar5 |= bVar3 << (i << 3); + u16* puVar7; + const cXyz* local_40; + if (bVar3 == 2 && ((param_6 & 0x10000) != 0)) { + puVar7 = ringID[bVar3]; + local_40 = param_2; + } else { + if ((param_5 & (1 << bVar3)) != 0) { + puVar7 = ringID[bVar3]; + local_40 = param_3; + } else { + puVar7 = normalID[bVar3]; + local_40 = param_3; + } + } + u32* ptr = param_0 + 4*i; + for (int j = 0; j < 4; j++, ptr++, puVar7++) { + if (puVar7[0] == 0xffff) { + break; + } + ptr[0] = setNormal(ptr[0], puVar7[0], local_40, param_4, param_7, param_8, + local_4c, NULL, param_9, &a_Stack_34, &a_Stack_38, NULL, local_30); + dComIfGp_particle_levelEmitterOnEventMove(ptr[0]); + } + } + } + + return uVar5; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dPa_control_c::setCommonPoly(u32* param_0, cBgS_PolyInfo* param_1, cXyz const* param_2, +asm u16 dPa_control_c::setCommonPoly(u32* param_0, cBgS_PolyInfo* param_1, cXyz const* param_2, cXyz const* param_3, dKy_tevstr_c const* param_4, u32 param_5, u32 param_6, csXyz const* param_7, cXyz const* param_8, s8 param_9) { @@ -1996,20 +2700,34 @@ asm void dPa_control_c::setCommonPoly(u32* param_0, cBgS_PolyInfo* param_1, cXyz #include "asm/d/particle/d_particle/func_8004D988.s" } #pragma pop +#endif /* 8004DC28-8004DCA0 048568 0078+00 1/0 0/0 0/0 .text * execute__17dPa_wbPcallBack_cFP14JPABaseEmitterP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_wbPcallBack_c::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/d/particle/d_particle/execute__17dPa_wbPcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s" +void dPa_wbPcallBack_c::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) { + JGeometry::TVec3 local_18; + param_1->getGlobalPosition(local_18); + cXyz cStack_24(local_18.x, local_18.y, local_18.z); + if (fopAcM_wt_c::waterCheck(&cStack_24) && cStack_24.y > fopAcM_wt_c::getWaterY()) { + param_1->setInvisibleParticleFlag(); + param_1->setDeleteParticleFlag(); + } } -#pragma pop /* 8004DCA0-8004DD0C 0485E0 006C+00 1/0 0/0 0/0 .text * execute__19dPa_fsenthPcallBackFP14JPABaseEmitterP15JPABaseParticle */ +// Matches with literals +#ifdef NONMATCHING +void dPa_fsenthPcallBack::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) { + if (g_env_light.field_0xf3d == 1 && g_env_light.field_0xf40 > 0.0f) { + param_0->setGlobalAlpha(255.0f * g_env_light.field_0xf40); + param_0->playDrawParticle(); + } else { + param_0->setGlobalAlpha(0); + param_0->stopDrawParticle(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2018,6 +2736,7 @@ asm void dPa_fsenthPcallBack::execute(JPABaseEmitter* param_0, JPABaseParticle* #include "asm/d/particle/d_particle/execute__19dPa_fsenthPcallBackFP14JPABaseEmitterP15JPABaseParticle.s" } #pragma pop +#endif /* 8004DD0C-8004DD10 04864C 0004+00 1/0 0/0 0/0 .text * draw__19dPa_fsenthPcallBackFP14JPABaseEmitterP15JPABaseParticle */ @@ -2114,14 +2833,10 @@ asm void dPa_gen_d_light8PcallBack::draw(JPABaseEmitter* param_0, JPABaseParticl /* 8004F6B8-8004F6C4 049FF8 000C+00 0/0 2/2 3/3 .text * setOldPosP__22dPa_hermiteEcallBack_cFPC4cXyzPC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_hermiteEcallBack_c::setOldPosP(cXyz const* param_0, cXyz const* param_1) { - nofralloc -#include "asm/d/particle/d_particle/setOldPosP__22dPa_hermiteEcallBack_cFPC4cXyzPC4cXyz.s" +void dPa_hermiteEcallBack_c::setOldPosP(cXyz const* param_0, cXyz const* param_1) { + field_0x10 = param_0; + field_0x14 = param_1; } -#pragma pop /* ############################################################################################## */ /* 80451FF4-80451FF8 0005F4 0004+00 1/1 0/0 0/0 .sdata2 @6846 */ @@ -2140,6 +2855,15 @@ asm void dPa_hermiteEcallBack_c::executeAfter(JPABaseEmitter* param_0) { /* 8004FABC-8004FAD4 04A3FC 0018+00 1/0 0/0 0/0 .text * setup__22dPa_hermiteEcallBack_cFP14JPABaseEmitterPC4cXyzPC5csXyzSc */ +// Matches with literals +#ifdef NONMATCHING +void dPa_hermiteEcallBack_c::setup(JPABaseEmitter* param_0, cXyz const* param_1, + csXyz const* param_2, s8 param_3) { + field_0xc = param_1; + mRate = 1.0f; + mMaxCnt = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2149,19 +2873,28 @@ asm void dPa_hermiteEcallBack_c::setup(JPABaseEmitter* param_0, cXyz const* para #include "asm/d/particle/d_particle/setup__22dPa_hermiteEcallBack_cFP14JPABaseEmitterPC4cXyzPC5csXyzSc.s" } #pragma pop +#endif /* 8004FAD4-8004FB18 04A414 0044+00 1/0 0/0 0/0 .text * execute__28dPa_particleTracePcallBack_cFP14JPABaseEmitterP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_particleTracePcallBack_c::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/d/particle/d_particle/execute__28dPa_particleTracePcallBack_cFP14JPABaseEmitterP15JPABaseParticle.s" +void dPa_particleTracePcallBack_c::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) { + if (param_1->getAge() > 0) { + Vec* vec = (Vec*)param_0->getUserWork(); + JGeometry::TVec3 local_24; + param_1->getOffsetPosition(local_24); + local_24.x += vec->x; + local_24.y += vec->y; + local_24.z += vec->z; + param_1->setOffsetPosition(local_24); + } } -#pragma pop /* 8004FB18-8004FB8C 04A458 0074+00 1/0 0/0 0/0 .text __dt__18dPa_levelEcallBackFv */ +#ifdef NONMATCHING +dPa_levelEcallBack::~dPa_levelEcallBack() { + cleanup(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2171,6 +2904,7 @@ extern "C" asm void __dt__18dPa_levelEcallBackFv() { #include "asm/d/particle/d_particle/__dt__18dPa_levelEcallBackFv.s" } #pragma pop +#endif /* 8004FB8C-8004FB90 04A4CC 0004+00 8/0 0/0 0/0 .text cleanup__18dPa_levelEcallBackFv */ void dPa_levelEcallBack::cleanup() { @@ -2178,25 +2912,15 @@ void dPa_levelEcallBack::cleanup() { } /* 8004FB90-8004FBFC 04A4D0 006C+00 1/1 0/0 0/0 .text __ct__Q218dPa_modelEcallBack7model_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dPa_modelEcallBack::model_c::model_c() { - nofralloc -#include "asm/d/particle/d_particle/__ct__Q218dPa_modelEcallBack7model_cFv.s" +dPa_modelEcallBack::model_c::model_c() { + field_0x0 = NULL; } -#pragma pop /* 8004FBFC-8004FC08 04A53C 000C+00 1/1 0/0 0/0 .text __ct__Q313dPa_control_c7level_c9emitter_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dPa_control_c::level_c::emitter_c::emitter_c() { - nofralloc -#include "asm/d/particle/d_particle/__ct__Q313dPa_control_c7level_c9emitter_cFv.s" +dPa_control_c::level_c::emitter_c::emitter_c() { + mId = 0; } -#pragma pop /* 8004FC08-8004FC68 04A548 0060+00 2/1 0/0 0/0 .text __dt__19dPa_simpleEcallBackFv */ #pragma push @@ -2319,14 +3043,9 @@ void dPa_selectTexEcallBack::setup(JPABaseEmitter* param_0, cXyz const* param_1, /* 80050014-80050038 04A954 0024+00 1/0 0/0 0/0 .text * drawAfter__18dPa_modelEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_modelEcallBack::drawAfter(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/drawAfter__18dPa_modelEcallBackFP14JPABaseEmitter.s" +void dPa_modelEcallBack::drawAfter(JPABaseEmitter* param_0) { + cleanupModel(param_0); } -#pragma pop /* 80050038-80050098 04A978 0060+00 2/1 0/0 0/0 .text __dt__18dPa_modelPcallBackFv */ #pragma push @@ -2341,14 +3060,9 @@ extern "C" asm void __dt__18dPa_modelPcallBackFv() { /* 80050098-800500B8 04A9D8 0020+00 1/0 0/0 0/0 .text * drawAfter__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_gen_d_light8EcallBack::drawAfter(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/drawAfter__25dPa_gen_d_light8EcallBackFP14JPABaseEmitter.s" +void dPa_gen_d_light8EcallBack::drawAfter(JPABaseEmitter* param_0) { + dPa_cleanupGX(); } -#pragma pop /* 800500B8-8005013C 04A9F8 0084+00 2/1 0/0 0/0 .text __dt__25dPa_gen_b_light8EcallBackFv */ @@ -2364,14 +3078,9 @@ extern "C" asm void __dt__25dPa_gen_b_light8EcallBackFv() { /* 8005013C-8005015C 04AA7C 0020+00 1/0 0/0 0/0 .text * drawAfter__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_gen_b_light8EcallBack::drawAfter(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/drawAfter__25dPa_gen_b_light8EcallBackFP14JPABaseEmitter.s" +void dPa_gen_b_light8EcallBack::drawAfter(JPABaseEmitter* param_0) { + dPa_cleanupGX(); } -#pragma pop /* 8005015C-800501E0 04AA9C 0084+00 2/1 0/0 0/0 .text __dt__19dPa_light8EcallBackFv */ #pragma push @@ -2386,14 +3095,9 @@ extern "C" asm void __dt__19dPa_light8EcallBackFv() { /* 800501E0-80050200 04AB20 0020+00 1/0 0/0 0/0 .text * drawAfter__19dPa_light8EcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_light8EcallBack::drawAfter(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/drawAfter__19dPa_light8EcallBackFP14JPABaseEmitter.s" +void dPa_light8EcallBack::drawAfter(JPABaseEmitter* param_0) { + dPa_cleanupGX(); } -#pragma pop /* 80050200-80050284 04AB40 0084+00 1/0 0/0 0/0 .text __dt__19dPa_followEcallBackFv */ #pragma push @@ -2407,25 +3111,15 @@ extern "C" asm void __dt__19dPa_followEcallBackFv() { #pragma pop /* 80050284-800502B0 04ABC4 002C+00 1/0 0/0 0/0 .text cleanup__19dPa_followEcallBackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_followEcallBack::cleanup() { - nofralloc -#include "asm/d/particle/d_particle/cleanup__19dPa_followEcallBackFv.s" +void dPa_followEcallBack::cleanup() { + end(); } -#pragma pop /* 800502B0-800502E0 04ABF0 0030+00 1/0 0/0 0/0 .text * draw__21dPa_setColorEcallBackFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPa_setColorEcallBack::draw(JPABaseEmitter* param_0) { - nofralloc -#include "asm/d/particle/d_particle/draw__21dPa_setColorEcallBackFP14JPABaseEmitter.s" +void dPa_setColorEcallBack::draw(JPABaseEmitter* param_0) { + GXSetTevColor(GX_TEVREG1, mColor); } -#pragma pop /* 800502E0-800502E4 04AC20 0004+00 1/0 0/0 0/0 .text * setup__21dPa_setColorEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */ diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 28bb0bb673..612146125f 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -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" } diff --git a/tools/libelf/object.py b/tools/libelf/object.py index f0294432c7..d17fcb34ec 100644 --- a/tools/libelf/object.py +++ b/tools/libelf/object.py @@ -217,6 +217,8 @@ def load_object_from_file(path, name, file, skip_symbols = False, skip_relocatio relocation = R_PPC_REL14(type, symbol, modify, rela.r_offset, rela.r_addend) elif type == 109: relocation = R_PPC_EMB_SDA21(type, symbol, modify, rela.r_offset, rela.r_addend) + elif type == 24: + continue else: print("unsupported relocation type: 0x%02X \"%s\" (in '%s')" % (type, RELOCATION_NAMES[type], path), file = sys.stderr) continue