update some actors to use sizeof for mSize, endian swap J2DScreen related structs, add 64bit endian swapping

game appears to be hanging on fully initing some processes, so while there isnt an immediate crash, nothing seems to be happening
This commit is contained in:
CraftyBoss
2026-03-01 04:24:38 -08:00
committed by PJB3005
parent 5832f70384
commit 3e4b9bf59b
30 changed files with 364 additions and 282 deletions
+25 -25
View File
@@ -136,38 +136,38 @@ public:
u8 newDither(int) const;
u8 getMaterialMode(int idx) const {
return field_0x4[field_0x8[idx]].field_0x0;
return mpMaterialInitData[mpMaterialID[idx]].field_0x0;
}
u8 getMaterialAlphaCalc(int idx) const {
return field_0x4[field_0x8[idx]].field_0x6;
return mpMaterialInitData[mpMaterialID[idx]].field_0x6;
}
private:
/* 0x00 */ u16 field_0x0;
/* 0x00 */ u16 mMaterialNum;
/* 0x02 */ u16 field_0x2;
/* 0x04 */ J2DMaterialInitData* field_0x4;
/* 0x08 */ u16* field_0x8;
/* 0x0C */ J2DIndInitData* field_0xc;
/* 0x10 */ GXColor* field_0x10;
/* 0x14 */ u8* field_0x14;
/* 0x18 */ J2DColorChanInfo* field_0x18;
/* 0x1C */ u8* field_0x1c;
/* 0x20 */ J2DTexCoordInfo* field_0x20;
/* 0x24 */ J2DTexMtxInfo* field_0x24;
/* 0x28 */ u16* field_0x28;
/* 0x2C */ u16* field_0x2c;
/* 0x30 */ BE(GXCullMode)* field_0x30;
/* 0x34 */ J2DTevOrderInfo* field_0x34;
/* 0x38 */ BE(GXColorS10)* field_0x38;
/* 0x3C */ GXColor* field_0x3c;
/* 0x40 */ u8* field_0x40;
/* 0x44 */ J2DTevStageInfo* field_0x44;
/* 0x48 */ J2DTevSwapModeInfo* field_0x48;
/* 0x4C */ J2DTevSwapModeTableInfo* field_0x4c;
/* 0x50 */ J2DAlphaCompInfo* field_0x50;
/* 0x54 */ J2DBlendInfo* field_0x54;
/* 0x58 */ u8* field_0x58;
/* 0x04 */ J2DMaterialInitData* mpMaterialInitData;
/* 0x08 */ BE(u16)* mpMaterialID;
/* 0x0C */ J2DIndInitData* mpIndInitData;
/* 0x10 */ GXColor* mpMatColor;
/* 0x14 */ u8* mpColorChanNum;
/* 0x18 */ J2DColorChanInfo* mpColorChanInfo;
/* 0x1C */ u8* mpTexGenNum;
/* 0x20 */ J2DTexCoordInfo* mpTexCoordInfo;
/* 0x24 */ J2DTexMtxInfo* mpTexMtxInfo;
/* 0x28 */ BE(u16)* mpTexNo;
/* 0x2C */ BE(u16)* mpFontNo;
/* 0x30 */ BE(GXCullMode)* mpCullMode;
/* 0x34 */ J2DTevOrderInfo* mpTevOrderInfo;
/* 0x38 */ BE(GXColorS10)* mpTevColor;
/* 0x3C */ GXColor* mpTevKColor;
/* 0x40 */ u8* mpTevStageNum;
/* 0x44 */ J2DTevStageInfo* mpTevStageInfo;
/* 0x48 */ J2DTevSwapModeInfo* mpTevSwapModeInfo;
/* 0x4C */ J2DTevSwapModeTableInfo* mpTevSwapModeTableInfo;
/* 0x50 */ J2DAlphaCompInfo* mpAlphaCompInfo;
/* 0x54 */ J2DBlendInfo* mpBlendInfo;
/* 0x58 */ u8* mpDither;
};
#endif /* J2DMATERIALFACTORY_H */
+3 -2
View File
@@ -5,6 +5,7 @@
#include "JSystem/JSupport/JSUList.h"
#include <dolphin/gx.h>
#include <dolphin/mtx.h>
#include "dusk/endian.h"
class J2DAnmBase;
class J2DAnmColor;
@@ -40,8 +41,8 @@ enum J2DBasePosition {
*
*/
struct J2DPaneHeader {
/* 0x0 */ u32 mKind;
/* 0x4 */ u32 mSize;
/* 0x0 */ BE(u32) mKind;
/* 0x4 */ BE(u32) mSize;
};
/**
+9 -8
View File
@@ -4,6 +4,7 @@
#include "JSystem/J2DGraph/J2DPane.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "JSystem/JUtility/TColor.h"
#include "dusk/endian.h"
class J2DMaterial;
class JUTPalette;
@@ -31,8 +32,8 @@ enum J2DBinding {
*
*/
struct J2DPicHeader {
/* 0x0 */ u32 mTag;
/* 0x4 */ u32 mSize;
/* 0x0 */ BE(u32) mTag;
/* 0x4 */ BE(u32) mSize;
};
/**
@@ -40,12 +41,12 @@ struct J2DPicHeader {
*
*/
struct J2DScrnBlockPictureParameter {
/* 0x00 */ u16 field_0x0;
/* 0x02 */ u16 mMaterialNum;
/* 0x04 */ u16 field_0x4;
/* 0x06 */ u16 field_0x6;
/* 0x08 */ u16 field_0x8[4];
/* 0x10 */ JGeometry::TVec2<s16> field_0x10[4];
/* 0x00 */ BE(u16) field_0x0;
/* 0x02 */ BE(u16) mMaterialNum;
/* 0x04 */ BE(u16) field_0x4;
/* 0x06 */ BE(u16) field_0x6;
/* 0x08 */ BE(u16) field_0x8[4];
/* 0x10 */ JGeometry::TVec2<BE(s16)> field_0x10[4];
/* 0x20 */ u32 mCornerColor[4];
}; // Size: 0x30
+11 -10
View File
@@ -4,6 +4,7 @@
#include "JSystem/J2DGraph/J2DManage.h"
#include "JSystem/J2DGraph/J2DPane.h"
#include "JSystem/JUtility/TColor.h"
#include "dusk/endian.h"
class J2DMaterial;
class JUTNameTab;
@@ -13,10 +14,10 @@ class JUTNameTab;
*
*/
struct J2DScrnHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ u32 mType;
/* 0x08 */ u32 mFileSize;
/* 0x0C */ u32 mBlockNum;
/* 0x00 */ BE(u32) mTag;
/* 0x04 */ BE(u32) mType;
/* 0x08 */ BE(u32) mFileSize;
/* 0x0C */ BE(u32) mBlockNum;
/* 0x10 */ u8 padding[0x10];
};
@@ -25,10 +26,10 @@ struct J2DScrnHeader {
*
*/
struct J2DScrnInfoHeader {
/* 0x0 */ u32 mTag;
/* 0x4 */ u32 mSize;
/* 0x8 */ u16 mWidth;
/* 0xA */ u16 mHeight;
/* 0x0 */ BE(u32) mTag;
/* 0x4 */ BE(u32) mSize;
/* 0x8 */ BE(u16) mWidth;
/* 0xA */ BE(u16) mHeight;
/* 0xC */ u32 mColor;
};
@@ -37,8 +38,8 @@ struct J2DScrnInfoHeader {
*
*/
struct J2DScrnBlockHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ s32 mSize;
/* 0x00 */ BE(u32) mTag;
/* 0x04 */ BE(s32) mSize;
};
/**
+7 -6
View File
@@ -4,17 +4,18 @@
#include <dolphin/gx.h>
#include <dolphin/mtx.h>
#include "global.h"
#include "dusk/endian.h"
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTextureSRTInfo {
/* 0x00 */ f32 mScaleX;
/* 0x04 */ f32 mScaleY;
/* 0x08 */ f32 mRotationDeg;
/* 0x0C */ f32 mTranslationX;
/* 0x10 */ f32 mTranslationY;
/* 0x00 */ BE(f32) mScaleX;
/* 0x04 */ BE(f32) mScaleY;
/* 0x08 */ BE(f32) mRotationDeg;
/* 0x0C */ BE(f32) mTranslationX;
/* 0x10 */ BE(f32) mTranslationY;
}; // Size: 0x14
/**
@@ -31,7 +32,7 @@ struct J2DTexMtxInfo {
/* 0x01 */ u8 mTexMtxDCC;
/* 0x02 */ u8 field_0x2; // padding ?
/* 0x03 */ u8 field_0x3; // padding ?
/* 0x04 */ Vec mCenter;
/* 0x04 */ BE(Vec) mCenter;
/* 0x10 */ J2DTextureSRTInfo mTexSRTInfo;
GXTexMtxType getTexMtxType() const { return (GXTexMtxType)mTexMtxType; }
+12 -11
View File
@@ -3,6 +3,7 @@
#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DPane.h"
#include "dusk/endian.h"
class J2DMaterial;
class JUTFont;
@@ -24,8 +25,8 @@ enum J2DTextBoxHBinding {
*
*/
struct J2DTbxBlockHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ s32 mSize;
/* 0x00 */ BE(u32) mTag;
/* 0x04 */ BE(s32) mSize;
};
/**
@@ -33,17 +34,17 @@ struct J2DTbxBlockHeader {
*
*/
struct J2DTextBoxInfo {
/* 0x00 */ u16 field_0x0;
/* 0x02 */ u16 field_0x2;
/* 0x04 */ u16 mMaterialNum;
/* 0x06 */ s16 mCharSpace;
/* 0x08 */ s16 mLineSpace;
/* 0x0A */ u16 mFontSizeX;
/* 0x0C */ u16 mFontSizeY;
/* 0x00 */ BE(u16) field_0x0;
/* 0x02 */ BE(u16) field_0x2;
/* 0x04 */ BE(u16) mMaterialNum;
/* 0x06 */ BE(s16) mCharSpace;
/* 0x08 */ BE(s16) mLineSpace;
/* 0x0A */ BE(u16) mFontSizeX;
/* 0x0C */ BE(u16) mFontSizeY;
/* 0x0E */ u8 mHBind;
/* 0x0F */ u8 mVBind;
/* 0x10 */ u32 mCharColor;
/* 0x14 */ u32 mGradColor;
/* 0x10 */ BE(u32) mCharColor;
/* 0x14 */ BE(u32) mGradColor;
/* 0x18 */ u8 mConnected;
/* 0x19 */ char field_0x19[3];
/* 0x1C */ u16 field_0x1c;