From 247754a11be4f1f61d03452506c3afd3cf9e6d44 Mon Sep 17 00:00:00 2001 From: PJB3005 Date: Sun, 1 Mar 2026 17:08:17 +0100 Subject: [PATCH] JParticle BE fixes --- include/JSystem/JParticle/JPABaseShape.h | 38 +++++++-------- include/JSystem/JParticle/JPAChildShape.h | 32 ++++++------ include/JSystem/JParticle/JPADynamicsBlock.h | 51 ++++++++++---------- include/JSystem/JParticle/JPAExTexShape.h | 8 +-- include/JSystem/JParticle/JPAExtraShape.h | 48 +++++++++--------- include/JSystem/JParticle/JPAFieldBlock.h | 22 ++++----- include/JSystem/JParticle/JPAKeyBlock.h | 4 +- include/JSystem/JParticle/JPAMath.h | 2 +- include/JSystem/JParticle/JPAResource.h | 3 +- src/JSystem/JParticle/JPAKeyBlock.cpp | 2 +- src/JSystem/JParticle/JPAMath.cpp | 2 +- src/JSystem/JParticle/JPAResourceLoader.cpp | 24 ++++----- 12 files changed, 119 insertions(+), 117 deletions(-) diff --git a/include/JSystem/JParticle/JPABaseShape.h b/include/JSystem/JParticle/JPABaseShape.h index 9bab6d815a..e54b65bd72 100644 --- a/include/JSystem/JParticle/JPABaseShape.h +++ b/include/JSystem/JParticle/JPABaseShape.h @@ -14,14 +14,14 @@ class JKRHeap; struct JPABaseShapeData { // Common header. /* 0x00 */ u8 mMagic[4]; - /* 0x04 */ u32 mSize; + /* 0x04 */ BE(u32) mSize; - /* 0x08 */ u32 mFlags; - /* 0x0C */ s16 mClrPrmAnmOffset; - /* 0x0E */ s16 mClrEnvAnmOffset; - /* 0x10 */ f32 mBaseSizeX; - /* 0x14 */ f32 mBaseSizeY; - /* 0x18 */ u16 mBlendModeCfg; + /* 0x08 */ BE(u32) mFlags; + /* 0x0C */ BE(s16) mClrPrmAnmOffset; + /* 0x0E */ BE(s16) mClrEnvAnmOffset; + /* 0x10 */ BE(f32) mBaseSizeX; + /* 0x14 */ BE(f32) mBaseSizeY; + /* 0x18 */ BE(u16) mBlendModeCfg; /* 0x1A */ u8 mAlphaCompareCfg; /* 0x1B */ u8 mAlphaRef0; /* 0x1C */ u8 mAlphaRef1; @@ -32,7 +32,7 @@ struct JPABaseShapeData { /* 0x21 */ u8 mClrFlg; /* 0x22 */ u8 prmAnmKeyNum; /* 0x23 */ u8 envAnmKeyNum; - /* 0x24 */ s16 mClrAnmFrmMax; + /* 0x24 */ BE(s16) mClrAnmFrmMax; /* 0x26 */ GXColor mClrPrm; /* 0x2A */ GXColor mClrEnv; /* 0x2E */ u8 mAnmRndm; @@ -114,16 +114,16 @@ public: s32 getTexLoopOfst(u8 param_1) const { return getTexLoopOfstMask() & param_1; } u8 getLoopOfstValue() const { return pBsd->mAnmRndm; } - f32 getIncTransX() const { return ((f32*)mpTexCrdMtxAnmTbl)[5]; } - f32 getInitTransX() const { return ((f32*)mpTexCrdMtxAnmTbl)[0]; } - f32 getIncTransY() const { return ((f32*)mpTexCrdMtxAnmTbl)[6]; } - f32 getInitTransY() const { return ((f32*)mpTexCrdMtxAnmTbl)[1]; } - f32 getIncScaleX() const { return ((f32*)mpTexCrdMtxAnmTbl)[7]; } - f32 getInitScaleX() const { return ((f32*)mpTexCrdMtxAnmTbl)[2]; } - f32 getIncScaleY() const { return ((f32*)mpTexCrdMtxAnmTbl)[8]; } - f32 getInitScaleY() const { return ((f32*)mpTexCrdMtxAnmTbl)[3]; } - f32 getIncRot() const { return ((f32*)mpTexCrdMtxAnmTbl)[9]; } - f32 getInitRot() const { return ((f32*)mpTexCrdMtxAnmTbl)[4]; } + f32 getIncTransX() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[5]; } + f32 getInitTransX() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[0]; } + f32 getIncTransY() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[6]; } + f32 getInitTransY() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[1]; } + f32 getIncScaleX() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[7]; } + f32 getInitScaleX() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[2]; } + f32 getIncScaleY() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[8]; } + f32 getInitScaleY() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[3]; } + f32 getIncRot() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[9]; } + f32 getInitRot() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[4]; } u8 getTexAnmKeyNum() const { return pBsd->texAnmKeyNum; } public: @@ -139,7 +139,7 @@ public: * */ struct JPAClrAnmKeyData { - /* 0x0 */ s16 index; + /* 0x0 */ BE(s16) index; /* 0x2 */ GXColor color; }; diff --git a/include/JSystem/JParticle/JPAChildShape.h b/include/JSystem/JParticle/JPAChildShape.h index ff22d2d69e..3a37f937e3 100644 --- a/include/JSystem/JParticle/JPAChildShape.h +++ b/include/JSystem/JParticle/JPAChildShape.h @@ -13,27 +13,27 @@ class JPABaseParticle; struct JPAChildShapeData { // Common header. /* 0x00 */ u8 mMagic[4]; - /* 0x04 */ u32 mSize; + /* 0x04 */ BE(u32) mSize; - /* 0x08 */ u32 mFlags; - /* 0x0C */ f32 mPosRndm; - /* 0x10 */ f32 mBaseVel; - /* 0x14 */ f32 mBaseVelRndm; - /* 0x18 */ f32 mVelInfRate; - /* 0x1C */ f32 mGravity; - /* 0x20 */ f32 mScaleX; - /* 0x24 */ f32 mScaleY; - /* 0x28 */ f32 mInheritScale; - /* 0x2C */ f32 mInheritAlpha; - /* 0x30 */ f32 mInheritRGB; + /* 0x08 */ BE(u32) mFlags; + /* 0x0C */ BE(f32) mPosRndm; + /* 0x10 */ BE(f32) mBaseVel; + /* 0x14 */ BE(f32) mBaseVelRndm; + /* 0x18 */ BE(f32) mVelInfRate; + /* 0x1C */ BE(f32) mGravity; + /* 0x20 */ BE(f32) mScaleX; + /* 0x24 */ BE(f32) mScaleY; + /* 0x28 */ BE(f32) mInheritScale; + /* 0x2C */ BE(f32) mInheritAlpha; + /* 0x30 */ BE(f32) mInheritRGB; /* 0x34 */ GXColor mPrmClr; /* 0x38 */ GXColor mEnvClr; - /* 0x3C */ f32 mTiming; - /* 0x40 */ s16 mLife; - /* 0x42 */ s16 mRate; + /* 0x3C */ BE(f32) mTiming; + /* 0x40 */ BE(s16) mLife; + /* 0x42 */ BE(s16) mRate; /* 0x44 */ u8 mStep; /* 0x45 */ u8 mTexIdx; - /* 0x46 */ s16 mRotSpeed; + /* 0x46 */ BE(s16) mRotSpeed; }; // Size: 0x48 /** diff --git a/include/JSystem/JParticle/JPADynamicsBlock.h b/include/JSystem/JParticle/JPADynamicsBlock.h index 5b89192498..60b35bde70 100644 --- a/include/JSystem/JParticle/JPADynamicsBlock.h +++ b/include/JSystem/JParticle/JPADynamicsBlock.h @@ -4,6 +4,7 @@ #include "JSystem/JGeometry.h" #include +#include "dusk/endian.h" struct JPAEmitterWorkData; @@ -14,32 +15,32 @@ struct JPAEmitterWorkData; struct JPADynamicsBlockData { // Common header. /* 0x00 */ u8 mMagic[4]; - /* 0x04 */ u32 mSize; + /* 0x04 */ BE(u32) mSize; - /* 0x08 */ u32 mFlags; - /* 0x0C */ u32 mResUserWork; - /* 0x10 */ JGeometry::TVec3 mEmitterScl; - /* 0x1C */ JGeometry::TVec3 mEmitterTrs; - /* 0x28 */ JGeometry::TVec3 mEmitterDir; - /* 0x34 */ f32 mInitialVelOmni; - /* 0x38 */ f32 mInitialVelAxis; - /* 0x3C */ f32 mInitialVelRndm; - /* 0x40 */ f32 mInitialVelDir; - /* 0x44 */ f32 mSpread; - /* 0x48 */ f32 mInitialVelRatio; - /* 0x4C */ f32 mRate; - /* 0x50 */ f32 mRateRndm; - /* 0x54 */ f32 mLifeTimeRndm; - /* 0x58 */ f32 mVolumeSweep; - /* 0x5C */ f32 mVolumeMinRad; - /* 0x60 */ f32 mAirResist; - /* 0x64 */ f32 mMoment; - /* 0x68 */ JGeometry::TVec3 mEmitterRot; - /* 0x6E */ s16 mMaxFrame; - /* 0x70 */ s16 mStartFrame; - /* 0x72 */ s16 mLifeTime; - /* 0x74 */ u16 mVolumeSize; - /* 0x76 */ u16 mDivNumber; + /* 0x08 */ BE(u32) mFlags; + /* 0x0C */ BE(u32) mResUserWork; + /* 0x10 */ JGeometry::TVec3 mEmitterScl; + /* 0x1C */ JGeometry::TVec3 mEmitterTrs; + /* 0x28 */ JGeometry::TVec3 mEmitterDir; + /* 0x34 */ BE(f32) mInitialVelOmni; + /* 0x38 */ BE(f32) mInitialVelAxis; + /* 0x3C */ BE(f32) mInitialVelRndm; + /* 0x40 */ BE(f32) mInitialVelDir; + /* 0x44 */ BE(f32) mSpread; + /* 0x48 */ BE(f32) mInitialVelRatio; + /* 0x4C */ BE(f32) mRate; + /* 0x50 */ BE(f32) mRateRndm; + /* 0x54 */ BE(f32) mLifeTimeRndm; + /* 0x58 */ BE(f32) mVolumeSweep; + /* 0x5C */ BE(f32) mVolumeMinRad; + /* 0x60 */ BE(f32) mAirResist; + /* 0x64 */ BE(f32) mMoment; + /* 0x68 */ JGeometry::TVec3 mEmitterRot; + /* 0x6E */ BE(s16) mMaxFrame; + /* 0x70 */ BE(s16) mStartFrame; + /* 0x72 */ BE(s16) mLifeTime; + /* 0x74 */ BE(u16) mVolumeSize; + /* 0x76 */ BE(u16) mDivNumber; /* 0x78 */ u8 mRateStep; }; // Size: 0x7C diff --git a/include/JSystem/JParticle/JPAExTexShape.h b/include/JSystem/JParticle/JPAExTexShape.h index 8a0c345c10..43959ecb18 100644 --- a/include/JSystem/JParticle/JPAExTexShape.h +++ b/include/JSystem/JParticle/JPAExTexShape.h @@ -12,10 +12,10 @@ struct JPAEmitterWorkData; struct JPAExTexShapeData { // Common header. /* 0x00 */ u8 mMagic[4]; - /* 0x04 */ u32 mSize; + /* 0x04 */ BE(u32) mSize; - /* 0x08 */ u32 mFlags; - /* 0x0C */ f32 mIndTexMtx[2][3]; + /* 0x08 */ BE(u32) mFlags; + /* 0x0C */ BE(f32) mIndTexMtx[2][3]; /* 0x24 */ s8 mExpScale; /* 0x25 */ s8 mIndTexIdx; /* 0x26 */ s8 mSecTexIdx; @@ -29,7 +29,7 @@ class JPAExTexShape { public: JPAExTexShape(u8 const*); - const f32* getIndTexMtx() const { return &mpData->mIndTexMtx[0][0]; } + const BE(f32)* getIndTexMtx() const { return &mpData->mIndTexMtx[0][0]; } s8 getExpScale() const { return mpData->mExpScale; } u8 getIndTexIdx() const { return mpData->mIndTexIdx; } u8 getSecTexIdx() const { return mpData->mSecTexIdx; } diff --git a/include/JSystem/JParticle/JPAExtraShape.h b/include/JSystem/JParticle/JPAExtraShape.h index 613413711c..10b9c026ce 100644 --- a/include/JSystem/JParticle/JPAExtraShape.h +++ b/include/JSystem/JParticle/JPAExtraShape.h @@ -13,31 +13,31 @@ class JPABaseParticle; struct JPAExtraShapeData { // Common header. /* 0x00 */ u8 mMagic[4]; - /* 0x04 */ u32 mSize; + /* 0x04 */ BE(u32) mSize; - /* 0x08 */ u32 mFlags; - /* 0x0C */ f32 mScaleInTiming; - /* 0x10 */ f32 mScaleOutTiming; - /* 0x14 */ f32 mScaleInValueX; - /* 0x18 */ f32 mScaleOutValueX; - /* 0x1C */ f32 mScaleInValueY; - /* 0x20 */ f32 mScaleOutValueY; - /* 0x24 */ f32 mScaleOutRandom; - /* 0x28 */ s16 mScaleAnmCycleX; - /* 0x2A */ s16 mScaleAnmCycleY; - /* 0x2C */ f32 mAlphaInTiming; - /* 0x30 */ f32 mAlphaOutTiming; - /* 0x34 */ f32 mAlphaInValue; - /* 0x38 */ f32 mAlphaBaseValue; - /* 0x3C */ f32 mAlphaOutValue; - /* 0x40 */ f32 mAlphaWaveFrequency; - /* 0x44 */ f32 mAlphaWaveRandom; - /* 0x48 */ f32 mAlphaWaveAmplitude; - /* 0x4C */ f32 mRotateAngle; - /* 0x50 */ f32 mRotateAngleRandom; - /* 0x54 */ f32 mRotateSpeed; - /* 0x58 */ f32 mRotateSpeedRandom; - /* 0x5C */ f32 mRotateDirection; + /* 0x08 */ BE(u32) mFlags; + /* 0x0C */ BE(f32) mScaleInTiming; + /* 0x10 */ BE(f32) mScaleOutTiming; + /* 0x14 */ BE(f32) mScaleInValueX; + /* 0x18 */ BE(f32) mScaleOutValueX; + /* 0x1C */ BE(f32) mScaleInValueY; + /* 0x20 */ BE(f32) mScaleOutValueY; + /* 0x24 */ BE(f32) mScaleOutRandom; + /* 0x28 */ BE(s16) mScaleAnmCycleX; + /* 0x2A */ BE(s16) mScaleAnmCycleY; + /* 0x2C */ BE(f32) mAlphaInTiming; + /* 0x30 */ BE(f32) mAlphaOutTiming; + /* 0x34 */ BE(f32) mAlphaInValue; + /* 0x38 */ BE(f32) mAlphaBaseValue; + /* 0x3C */ BE(f32) mAlphaOutValue; + /* 0x40 */ BE(f32) mAlphaWaveFrequency; + /* 0x44 */ BE(f32) mAlphaWaveRandom; + /* 0x48 */ BE(f32) mAlphaWaveAmplitude; + /* 0x4C */ BE(f32) mRotateAngle; + /* 0x50 */ BE(f32) mRotateAngleRandom; + /* 0x54 */ BE(f32) mRotateSpeed; + /* 0x58 */ BE(f32) mRotateSpeedRandom; + /* 0x5C */ BE(f32) mRotateDirection; }; // Size: 0x60 /** diff --git a/include/JSystem/JParticle/JPAFieldBlock.h b/include/JSystem/JParticle/JPAFieldBlock.h index a43488c781..ca123296aa 100644 --- a/include/JSystem/JParticle/JPAFieldBlock.h +++ b/include/JSystem/JParticle/JPAFieldBlock.h @@ -103,17 +103,17 @@ public: class JPAFieldBlockData { public: /* 0x00 */ u8 mMagic[4]; - /* 0x04 */ u32 mSize; - /* 0x08 */ u32 mFlags; - /* 0x0C */ JGeometry::TVec3 mPos; - /* 0x18 */ JGeometry::TVec3 mDir; - /* 0x24 */ f32 mMag; - /* 0x28 */ f32 mMagRndm; - /* 0x2C */ f32 mVal1; - /* 0x30 */ f32 mFadeInTime; - /* 0x34 */ f32 mFadeOutTime; - /* 0x38 */ f32 mEnTime; - /* 0x3C */ f32 mDisTime; + /* 0x04 */ BE(u32) mSize; + /* 0x08 */ BE(u32) mFlags; + /* 0x0C */ JGeometry::TVec3 mPos; + /* 0x18 */ JGeometry::TVec3 mDir; + /* 0x24 */ BE(f32) mMag; + /* 0x28 */ BE(f32) mMagRndm; + /* 0x2C */ BE(f32) mVal1; + /* 0x30 */ BE(f32) mFadeInTime; + /* 0x34 */ BE(f32) mFadeOutTime; + /* 0x38 */ BE(f32) mEnTime; + /* 0x3C */ BE(f32) mDisTime; /* 0x40 */ u8 mCycle; }; diff --git a/include/JSystem/JParticle/JPAKeyBlock.h b/include/JSystem/JParticle/JPAKeyBlock.h index 07c1f57171..0cfaa6f41a 100644 --- a/include/JSystem/JParticle/JPAKeyBlock.h +++ b/include/JSystem/JParticle/JPAKeyBlock.h @@ -14,10 +14,10 @@ struct JPAKeyBlock { u8 getID() const { return mDataStart[8]; } u8 getKeyNum() const { return mDataStart[9]; } BOOL isLoop() const { return mDataStart[11]; } - const f32* getKeyData() const { return field_0x4; } + const BE(f32)* getKeyData() const { return field_0x4; } const u8* mDataStart; - const f32* field_0x4; + const BE(f32)* field_0x4; }; diff --git a/include/JSystem/JParticle/JPAMath.h b/include/JSystem/JParticle/JPAMath.h index e48758c4d8..a1a28f75e5 100644 --- a/include/JSystem/JParticle/JPAMath.h +++ b/include/JSystem/JParticle/JPAMath.h @@ -9,7 +9,7 @@ void JPAGetYZRotateMtx(s16 angleY, s16 angleZ, f32 (*param_2)[4]); void JPAGetXYZRotateMtx(s16 x, s16 y, s16 z, Mtx dst); void JPASetRMtxTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], JGeometry::TVec3* param_2); -f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, f32 const* param_2); +f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, BE(f32) const* param_2); void JPASetRMtxSTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], JGeometry::TVec3* param_2, JGeometry::TVec3* param_3); diff --git a/include/JSystem/JParticle/JPAResource.h b/include/JSystem/JParticle/JPAResource.h index 0088c497c2..6acdd144a4 100644 --- a/include/JSystem/JParticle/JPAResource.h +++ b/include/JSystem/JParticle/JPAResource.h @@ -2,6 +2,7 @@ #define JPARESOURCE_H #include +#include "dusk/endian.h" class JKRHeap; struct JPAEmitterWorkData; @@ -64,7 +65,7 @@ public: /* 0x2C */ JPADynamicsBlock* pDyn; /* 0x30 */ JPAFieldBlock** ppFld; /* 0x34 */ JPAKeyBlock** ppKey; - /* 0x38 */ u16 const* mpTDB1; + /* 0x38 */ BE(u16) const* mpTDB1; /* 0x3C */ u16 mUsrIdx; /* 0x3E */ u8 fldNum; /* 0x3F */ u8 keyNum; diff --git a/src/JSystem/JParticle/JPAKeyBlock.cpp b/src/JSystem/JParticle/JPAKeyBlock.cpp index 82b7d81d56..035ede1d28 100644 --- a/src/JSystem/JParticle/JPAKeyBlock.cpp +++ b/src/JSystem/JParticle/JPAKeyBlock.cpp @@ -5,7 +5,7 @@ JPAKeyBlock::JPAKeyBlock(const u8* data) : mDataStart(data) - , field_0x4(reinterpret_cast(&data[0xC])) + , field_0x4(reinterpret_cast(&data[0xC])) { } diff --git a/src/JSystem/JParticle/JPAMath.cpp b/src/JSystem/JParticle/JPAMath.cpp index cd559572b5..93c4e00865 100644 --- a/src/JSystem/JParticle/JPAMath.cpp +++ b/src/JSystem/JParticle/JPAMath.cpp @@ -112,7 +112,7 @@ void JPASetRMtxSTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4], param_3->set(param_0[0][3], param_0[1][3], param_0[2][3]); } -f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, f32 const* param_2) { +f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, BE(f32) const* param_2) { if (param_0 < param_2[0]) { return param_2[1]; } diff --git a/src/JSystem/JParticle/JPAResourceLoader.cpp b/src/JSystem/JParticle/JPAResourceLoader.cpp index d0f3c8ebd4..17b156964d 100644 --- a/src/JSystem/JParticle/JPAResourceLoader.cpp +++ b/src/JSystem/JParticle/JPAResourceLoader.cpp @@ -18,7 +18,7 @@ static void dummy1() { } JPAResourceLoader::JPAResourceLoader(u8 const* data, JPAResourceManager* mgr) { - if (*(u32*)(data + 4) == '2-10') { + if (*(BE(u32)*)(data + 4) == '2-10') { load_jpc(data, mgr); } else { JUT_WARN(48, "JPA : wrong version file\n"); @@ -42,8 +42,8 @@ static void dummy2() { } struct JPAResourceHeader { - /* 0x0 */ u16 mUsrIdx; - /* 0x2 */ u16 mBlockNum; + /* 0x0 */ BE(u16) mUsrIdx; + /* 0x2 */ BE(u16) mBlockNum; /* 0x4 */ u8 mFieldBlockNum; /* 0x5 */ u8 mKeyBlockNum; /* 0x6 */ u8 mTDB1Num; @@ -51,14 +51,14 @@ struct JPAResourceHeader { void JPAResourceLoader::load_jpc(u8 const* data, JPAResourceManager* p_res_mgr) { JKRHeap* heap = p_res_mgr->mpHeap; - p_res_mgr->resMaxNum = *(u16*)(data + 8); - p_res_mgr->texMaxNum = *(u16*)(data + 0xA); + p_res_mgr->resMaxNum = *(BE(u16)*)(data + 8); + p_res_mgr->texMaxNum = *(BE(u16)*)(data + 0xA); p_res_mgr->pResAry = new (heap, 0) JPAResource*[p_res_mgr->resMaxNum]; p_res_mgr->pTexAry = new (heap, 0) JPATexture*[p_res_mgr->texMaxNum]; JUT_ASSERT(199, (p_res_mgr->pResAry != NULL) && (p_res_mgr->pTexAry != 0)); u32 offset = 0x10; - for (int i = 0; i < *(u16*)(data + 8); i++) { + for (int i = 0; i < *(BE(u16)*)(data + 8); i++) { JPAResourceHeader* header = (JPAResourceHeader*)(data + offset); JPAResource* p_res = new (heap, 0) JPAResource(); JUT_ASSERT(211, p_res != NULL); @@ -79,8 +79,8 @@ void JPAResourceLoader::load_jpc(u8 const* data, JPAResourceManager* p_res_mgr) u32 key_no = 0; for (int j = 0; j < header->mBlockNum; j++) { - u32 magic = *(u32*)(data + offset); - u32 size = *(u32*)(data + offset + 4); + u32 magic = *(BE(u32)*)(data + offset); + u32 size = *(BE(u32)*)(data + offset + 4); switch (magic) { case 'FLD1': p_res->ppFld[fld_no] = new (heap, 0) JPAFieldBlock(data + offset, heap); @@ -113,7 +113,7 @@ void JPAResourceLoader::load_jpc(u8 const* data, JPAResourceManager* p_res_mgr) JUT_ASSERT(270, p_res->pEts != NULL); break; case 'TDB1': - p_res->mpTDB1 = (const u16*)(data + offset + 8); + p_res->mpTDB1 = (const BE(u16)*)(data + offset + 8); break; default: JUT_WARN(275, "JPA : wrong type block in jpc file %d %x\n", header->mBlockNum, offset); @@ -126,9 +126,9 @@ void JPAResourceLoader::load_jpc(u8 const* data, JPAResourceManager* p_res_mgr) p_res_mgr->registRes(p_res); } - offset = *(u32*)(data + 0xC); - for (int i = 0; i < *(u16*)(data + 0xA); i++) { - u32 size = *(u32*)(data + offset + 4); + offset = *(BE(u32)*)(data + 0xC); + for (int i = 0; i < *(BE(u16)*)(data + 0xA); i++) { + u32 size = *(BE(u32)*)(data + offset + 4); JPATexture* p_tex = new (heap, 0) JPATexture(data + offset); JUT_ASSERT(298, p_tex != NULL); p_res_mgr->registTex(p_tex);