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
+82 -82
View File
@@ -9,42 +9,42 @@
#include <dolphin/types.h>
J2DMaterialFactory::J2DMaterialFactory(J2DMaterialBlock const& param_0) {
field_0x0 = param_0.field_0x8;
field_0x4 = JSUConvertOffsetToPtr<J2DMaterialInitData>(&param_0, param_0.field_0xc);
field_0x8 = JSUConvertOffsetToPtr<u16>(&param_0, param_0.field_0x10);
mMaterialNum = param_0.field_0x8;
mpMaterialInitData = JSUConvertOffsetToPtr<J2DMaterialInitData>(&param_0, param_0.field_0xc);
mpMaterialID = JSUConvertOffsetToPtr<BE(u16)>(&param_0, param_0.field_0x10);
if (param_0.field_0x18 && param_0.field_0x18 - param_0.field_0x14 > 4) {
field_0xc = JSUConvertOffsetToPtr<J2DIndInitData>(&param_0, param_0.field_0x18);
mpIndInitData = JSUConvertOffsetToPtr<J2DIndInitData>(&param_0, param_0.field_0x18);
}
else {
field_0xc = NULL;
mpIndInitData = NULL;
}
field_0x30 = JSUConvertOffsetToPtr<BE(GXCullMode)>(&param_0, param_0.field_0x1c);
field_0x10 = JSUConvertOffsetToPtr<GXColor>(&param_0, param_0.field_0x20);
field_0x14 = JSUConvertOffsetToPtr<u8>(&param_0, param_0.field_0x24);
field_0x18 = JSUConvertOffsetToPtr<J2DColorChanInfo>(&param_0, param_0.field_0x28);
field_0x1c = JSUConvertOffsetToPtr<u8>(&param_0, param_0.field_0x2c);
field_0x20 = JSUConvertOffsetToPtr<J2DTexCoordInfo>(&param_0, param_0.field_0x30);
field_0x24 = JSUConvertOffsetToPtr<J2DTexMtxInfo>(&param_0, param_0.field_0x34);
field_0x28 = JSUConvertOffsetToPtr<u16>(&param_0, param_0.field_0x38);
field_0x2c = JSUConvertOffsetToPtr<u16>(&param_0, param_0.field_0x3c);
field_0x34 = JSUConvertOffsetToPtr<J2DTevOrderInfo>(&param_0, param_0.field_0x40);
field_0x38 = JSUConvertOffsetToPtr<BE(GXColorS10)>(&param_0, param_0.field_0x44);
field_0x3c = JSUConvertOffsetToPtr<GXColor>(&param_0, param_0.field_0x48);
field_0x40 = JSUConvertOffsetToPtr<u8>(&param_0, param_0.field_0x4c);
field_0x44 = JSUConvertOffsetToPtr<J2DTevStageInfo>(&param_0, param_0.field_0x50);
field_0x48 = JSUConvertOffsetToPtr<J2DTevSwapModeInfo>(&param_0, param_0.field_0x54);
field_0x4c = JSUConvertOffsetToPtr<J2DTevSwapModeTableInfo>(&param_0, param_0.field_0x58);
field_0x50 = JSUConvertOffsetToPtr<J2DAlphaCompInfo>(&param_0, param_0.field_0x5c);
field_0x54 = JSUConvertOffsetToPtr<J2DBlendInfo>(&param_0, param_0.field_0x60);
field_0x58 = JSUConvertOffsetToPtr<u8>(&param_0, param_0.field_0x64);
mpCullMode = JSUConvertOffsetToPtr<BE(GXCullMode)>(&param_0, param_0.field_0x1c);
mpMatColor = JSUConvertOffsetToPtr<GXColor>(&param_0, param_0.field_0x20);
mpColorChanNum = JSUConvertOffsetToPtr<u8>(&param_0, param_0.field_0x24);
mpColorChanInfo = JSUConvertOffsetToPtr<J2DColorChanInfo>(&param_0, param_0.field_0x28);
mpTexGenNum = JSUConvertOffsetToPtr<u8>(&param_0, param_0.field_0x2c);
mpTexCoordInfo = JSUConvertOffsetToPtr<J2DTexCoordInfo>(&param_0, param_0.field_0x30);
mpTexMtxInfo = JSUConvertOffsetToPtr<J2DTexMtxInfo>(&param_0, param_0.field_0x34);
mpTexNo = JSUConvertOffsetToPtr<BE(u16)>(&param_0, param_0.field_0x38);
mpFontNo = JSUConvertOffsetToPtr<BE(u16)>(&param_0, param_0.field_0x3c);
mpTevOrderInfo = JSUConvertOffsetToPtr<J2DTevOrderInfo>(&param_0, param_0.field_0x40);
mpTevColor = JSUConvertOffsetToPtr<BE(GXColorS10)>(&param_0, param_0.field_0x44);
mpTevKColor = JSUConvertOffsetToPtr<GXColor>(&param_0, param_0.field_0x48);
mpTevStageNum = JSUConvertOffsetToPtr<u8>(&param_0, param_0.field_0x4c);
mpTevStageInfo = JSUConvertOffsetToPtr<J2DTevStageInfo>(&param_0, param_0.field_0x50);
mpTevSwapModeInfo = JSUConvertOffsetToPtr<J2DTevSwapModeInfo>(&param_0, param_0.field_0x54);
mpTevSwapModeTableInfo = JSUConvertOffsetToPtr<J2DTevSwapModeTableInfo>(&param_0, param_0.field_0x58);
mpAlphaCompInfo = JSUConvertOffsetToPtr<J2DAlphaCompInfo>(&param_0, param_0.field_0x5c);
mpBlendInfo = JSUConvertOffsetToPtr<J2DBlendInfo>(&param_0, param_0.field_0x60);
mpDither = JSUConvertOffsetToPtr<u8>(&param_0, param_0.field_0x64);
}
u32 J2DMaterialFactory::countStages(int param_0) const {
J2DMaterialInitData* iVar5 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar5 = &mpMaterialInitData[mpMaterialID[param_0]];
u32 uVar4 = 0;
u32 uVar3 = 0;
if (iVar5->field_0x4 != 0xff) {
uVar3 = field_0x40[iVar5->field_0x4];
uVar3 = mpTevStageNum[iVar5->field_0x4];
}
for (int i = 0; i < 8; i++) {
if (iVar5->field_0x38[i] != 0xffff) {
@@ -121,11 +121,11 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
param_0->getTevBlock()->setTevOrder(i, newTevOrder(index, i));
}
for (u8 i = 0; i < local_370; i++) {
J2DMaterialInitData* local_38c = &field_0x4[field_0x8[index]];
J2DMaterialInitData* local_38c = &mpMaterialInitData[mpMaterialID[index]];
param_0->getTevBlock()->setTevStage(i, newTevStage(index, i));
if (local_38c->field_0xba[i] != 0xffff) {
param_0->getTevBlock()->getTevStage(i)->setTexSel(field_0x48[local_38c->field_0xba[i]].mTexSel);
param_0->getTevBlock()->getTevStage(i)->setRasSel(field_0x48[local_38c->field_0xba[i]].mRasSel);
param_0->getTevBlock()->getTevStage(i)->setTexSel(mpTevSwapModeInfo[local_38c->field_0xba[i]].mTexSel);
param_0->getTevBlock()->getTevStage(i)->setRasSel(mpTevSwapModeInfo[local_38c->field_0xba[i]].mRasSel);
}
}
for (u8 i = 0; i < 4; i++) {
@@ -151,14 +151,14 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
for (u8 i = 0; i < 8; i++) {
param_0->getTexGenBlock()->setTexMtx(i, newTexMtx(index, i));
}
J2DMaterialInitData* local_394 = &field_0x4[field_0x8[index]];
J2DMaterialInitData* local_394 = &mpMaterialInitData[mpMaterialID[index]];
for (u8 i = 0; i < local_370; i++) {
param_0->getTevBlock()->setTevKColorSel(i, local_394->field_0x52[i]);
}
for (u8 i = 0; i < local_370; i++) {
param_0->getTevBlock()->setTevKAlphaSel(i, local_394->field_0x62[i]);
}
if (field_0xc != NULL || local_378 != 0) {
if (mpIndInitData != NULL || local_378 != 0) {
u8 local_410 = newIndTexStageNum(index);
param_0->mIndBlock->setIndTexStageNum(local_410);
for (u8 i = 0; i < local_410; i++) {
@@ -183,52 +183,52 @@ JUtility::TColor J2DMaterialFactory::newMatColor(int param_0, int param_1) const
#else
JUtility::TColor local_20 = GXColor{0xff,0xff,0xff,0xff};
#endif
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x8[param_1] != 0xffff) {
return field_0x10[iVar2->field_0x8[param_1]];
return mpMatColor[iVar2->field_0x8[param_1]];
}
return local_20;
}
u8 J2DMaterialFactory::newColorChanNum(int param_0) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x2 != 0xff) {
return field_0x14[iVar2->field_0x2];
return mpColorChanNum[iVar2->field_0x2];
}
return 0;
}
J2DColorChan J2DMaterialFactory::newColorChan(int param_0, int param_1) const {
int r29 = 0;
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0xc[param_1] != 0xffff) {
return J2DColorChan(field_0x18[iVar2->field_0xc[param_1]]);
return J2DColorChan(mpColorChanInfo[iVar2->field_0xc[param_1]]);
}
return J2DColorChan();
}
u32 J2DMaterialFactory::newTexGenNum(int param_0) const {
int r30 = 0;
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x3 != 0xff) {
return field_0x1c[iVar2->field_0x3];
return mpTexGenNum[iVar2->field_0x3];
}
return 0;
}
J2DTexCoord J2DMaterialFactory::newTexCoord(int param_0, int param_1) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x14[param_1] != 0xffff) {
return J2DTexCoord(field_0x20[iVar2->field_0x14[param_1]]);
return J2DTexCoord(mpTexCoordInfo[iVar2->field_0x14[param_1]]);
}
return J2DTexCoord();
}
J2DTexMtx* J2DMaterialFactory::newTexMtx(int param_0, int param_1) const {
J2DTexMtx* rv = NULL;
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x24[param_1] != 0xffff) {
rv = new J2DTexMtx(field_0x24[iVar2->field_0x24[param_1]]);
rv = new J2DTexMtx(mpTexMtxInfo[iVar2->field_0x24[param_1]]);
rv->calc();
}
return rv;
@@ -236,33 +236,33 @@ J2DTexMtx* J2DMaterialFactory::newTexMtx(int param_0, int param_1) const {
u8 J2DMaterialFactory::newCullMode(int param_0) const {
int r30 = 0;
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x1 != 0xff) {
return field_0x30[iVar2->field_0x1];
return mpCullMode[iVar2->field_0x1];
}
return 0xff;
}
u16 J2DMaterialFactory::newTexNo(int param_0, int param_1) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x38[param_1] != 0xffff) {
return field_0x28[iVar2->field_0x38[param_1]];
return mpTexNo[iVar2->field_0x38[param_1]];
}
return 0x1FFFF;
}
u16 J2DMaterialFactory::newFontNo(int param_0) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x48 != 0xffff) {
return field_0x2c[iVar2->field_0x48];
return mpFontNo[iVar2->field_0x48];
}
return 0x1FFFF;
}
J2DTevOrder J2DMaterialFactory::newTevOrder(int param_0, int param_1) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x72[param_1] != 0xffff) {
return J2DTevOrder(field_0x34[iVar2->field_0x72[param_1]]);
return J2DTevOrder(mpTevOrderInfo[iVar2->field_0x72[param_1]]);
}
return J2DTevOrder();
}
@@ -270,10 +270,10 @@ J2DTevOrder J2DMaterialFactory::newTevOrder(int param_0, int param_1) const {
J2DGXColorS10 J2DMaterialFactory::newTevColor(int param_0, int param_1) const {
GXColorS10 color = {0, 0, 0, 0};
J2DGXColorS10 rv = color;
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x92[param_1] != 0xffff) {
return (GXColorS10) field_0x38[iVar2->field_0x92[param_1]];
return (GXColorS10) mpTevColor[iVar2->field_0x92[param_1]];
}
return rv;
@@ -281,42 +281,42 @@ J2DGXColorS10 J2DMaterialFactory::newTevColor(int param_0, int param_1) const {
JUtility::TColor J2DMaterialFactory::newTevKColor(int param_0, int param_1) const {
JUtility::TColor local_20 = COMPOUND_LITERAL(GXColor){0xFF, 0xFF, 0xFF, 0xFF};
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x4a[param_1] != 0xffff) {
return field_0x3c[iVar2->field_0x4a[param_1]];
return mpTevKColor[iVar2->field_0x4a[param_1]];
}
return local_20;
}
u8 J2DMaterialFactory::newTevStageNum(int param_0) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x4 != 0xff) {
return field_0x40[iVar2->field_0x4];
return mpTevStageNum[iVar2->field_0x4];
}
return 0xFF;
}
J2DTevStage J2DMaterialFactory::newTevStage(int param_0, int param_1) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x9a[param_1] != 0xffff) {
return J2DTevStage(field_0x44[iVar2->field_0x9a[param_1]]);
return J2DTevStage(mpTevStageInfo[iVar2->field_0x9a[param_1]]);
}
return J2DTevStage();
}
J2DTevSwapModeTable J2DMaterialFactory::newTevSwapModeTable(int param_0, int param_1) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0xda[param_1] != 0xffff) {
return J2DTevSwapModeTable(field_0x4c[iVar2->field_0xda[param_1]]);
return J2DTevSwapModeTable(mpTevSwapModeTableInfo[iVar2->field_0xda[param_1]]);
}
return J2DTevSwapModeTable(j2dDefaultTevSwapModeTable);
}
u8 J2DMaterialFactory::newIndTexStageNum(int param_0) const {
u8 r31 = 0;
if (field_0xc != NULL) {
if (field_0xc[param_0].field_0x0 == 1) {
return field_0xc[param_0].field_0x1;
if (mpIndInitData != NULL) {
if (mpIndInitData[param_0].field_0x0 == 1) {
return mpIndInitData[param_0].field_0x1;
}
}
return r31;
@@ -324,9 +324,9 @@ u8 J2DMaterialFactory::newIndTexStageNum(int param_0) const {
J2DIndTexOrder J2DMaterialFactory::newIndTexOrder(int param_0, int param_1) const {
J2DIndTexOrder rv;
if (field_0xc != NULL) {
if (field_0xc[param_0].field_0x0 == 1) {
return J2DIndTexOrder(field_0xc[param_0].field_0x4[param_1]);
if (mpIndInitData != NULL) {
if (mpIndInitData[param_0].field_0x0 == 1) {
return J2DIndTexOrder(mpIndInitData[param_0].field_0x4[param_1]);
}
}
return rv;
@@ -334,9 +334,9 @@ J2DIndTexOrder J2DMaterialFactory::newIndTexOrder(int param_0, int param_1) cons
J2DIndTexMtx J2DMaterialFactory::newIndTexMtx(int param_0, int param_1) const {
J2DIndTexMtx rv;
if (field_0xc != NULL) {
if (field_0xc[param_0].field_0x0 == 1) {
return J2DIndTexMtx(field_0xc[param_0].field_0xc[param_1]);
if (mpIndInitData != NULL) {
if (mpIndInitData[param_0].field_0x0 == 1) {
return J2DIndTexMtx(mpIndInitData[param_0].field_0xc[param_1]);
}
}
return rv;
@@ -344,9 +344,9 @@ J2DIndTexMtx J2DMaterialFactory::newIndTexMtx(int param_0, int param_1) const {
J2DIndTevStage J2DMaterialFactory::newIndTevStage(int param_0, int param_1) const {
J2DIndTevStage rv;
if (field_0xc != NULL) {
if (field_0xc[param_0].field_0x0 == 1) {
return J2DIndTevStage(field_0xc[param_0].field_0x68[param_1]);
if (mpIndInitData != NULL) {
if (mpIndInitData[param_0].field_0x0 == 1) {
return J2DIndTevStage(mpIndInitData[param_0].field_0x68[param_1]);
}
}
return rv;
@@ -354,34 +354,34 @@ J2DIndTevStage J2DMaterialFactory::newIndTevStage(int param_0, int param_1) cons
J2DIndTexCoordScale J2DMaterialFactory::newIndTexCoordScale(int param_0, int param_1) const {
J2DIndTexCoordScale rv;
if (field_0xc != NULL) {
if (field_0xc[param_0].field_0x0 == 1) {
return J2DIndTexCoordScale(field_0xc[param_0].field_0x60[param_1]);
if (mpIndInitData != NULL) {
if (mpIndInitData[param_0].field_0x0 == 1) {
return J2DIndTexCoordScale(mpIndInitData[param_0].field_0x60[param_1]);
}
}
return rv;
}
J2DAlphaComp J2DMaterialFactory::newAlphaComp(int param_0) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0xe2 != 0xffff) {
return J2DAlphaComp(field_0x50[iVar2->field_0xe2]);
return J2DAlphaComp(mpAlphaCompInfo[iVar2->field_0xe2]);
}
return J2DAlphaComp();
}
J2DBlend J2DMaterialFactory::newBlend(int param_0) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0xe4 != 0xffff) {
return J2DBlend(field_0x54[iVar2->field_0xe4]);
return J2DBlend(mpBlendInfo[iVar2->field_0xe4]);
}
return J2DBlend(j2dDefaultBlendInfo);
}
u8 J2DMaterialFactory::newDither(int param_0) const {
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
if (iVar2->field_0x5 != 0xff) {
return field_0x58[iVar2->field_0x5];
return mpDither[iVar2->field_0x5];
}
return 0;
}
+15 -15
View File
@@ -630,23 +630,23 @@ J2DPane* J2DPane::getParentPane() {
/* name unknown */
struct J2DPaneInfo {
/* 0x00 */ u32 mKind;
/* 0x04 */ u32 mSize;
/* 0x08 */ u16 field_0x8;
/* 0x0A */ u16 field_0xa;
/* 0x00 */ BE(u32) mKind;
/* 0x04 */ BE(u32) mSize;
/* 0x08 */ BE(u16) field_0x8;
/* 0x0A */ BE(u16) field_0xa;
/* 0x0B */ u8 mVisible;
/* 0x0C */ u8 mBasePosition;
/* 0x10 */ u64 mInfoTag;
/* 0x18 */ u64 mUserInfoTag;
/* 0x20 */ f32 mRotOffsetX;
/* 0x24 */ f32 mRotOffsetY;
/* 0x28 */ f32 mScaleX;
/* 0x2C */ f32 mScaleY;
/* 0x30 */ f32 mRotateX;
/* 0x34 */ f32 mRotateY;
/* 0x38 */ f32 mRotateZ;
/* 0x3C */ f32 mTranslateX;
/* 0x40 */ f32 mTranslateY;
/* 0x10 */ BE(u64) mInfoTag;
/* 0x18 */ BE(u64) mUserInfoTag;
/* 0x20 */ BE(f32) mRotOffsetX;
/* 0x24 */ BE(f32) mRotOffsetY;
/* 0x28 */ BE(f32) mScaleX;
/* 0x2C */ BE(f32) mScaleY;
/* 0x30 */ BE(f32) mRotateX;
/* 0x34 */ BE(f32) mRotateY;
/* 0x38 */ BE(f32) mRotateZ;
/* 0x3C */ BE(f32) mTranslateX;
/* 0x40 */ BE(f32) mTranslateY;
}; // Size: 0x48
void J2DPane::makePaneExStream(J2DPane* p_parent, JSURandomInputStream* p_stream) {
+2 -1
View File
@@ -45,7 +45,8 @@ J2DPicture::J2DPicture(J2DPane* p_pane, JSURandomInputStream* p_stream, J2DMater
u16 matNum = picInfo.field_0x4;
for (int i = 0; i < 4; i++) {
field_0x10a[i] = picInfo.field_0x10[i];
field_0x10a[i].x = picInfo.field_0x10[i].x;
field_0x10a[i].y = picInfo.field_0x10[i].y;
mCornerColor[i] = picInfo.mCornerColor[i];
}
+4 -3
View File
@@ -21,11 +21,11 @@ J2DPictureEx::J2DPictureEx(J2DPane* param_0, JSURandomInputStream* param_1, u32
field_0x194 = 0;
field_0x198 = 0;
s32 origPosition = param_1->getPosition();
u32 local_68[2];
BE(u32) local_68[2];
param_1->read(local_68, 8);
mKind = local_68[0];
s32 iVar2 = param_1->getPosition();
u32 auStack_70[2];
BE(u32) auStack_70[2];
param_1->peek(auStack_70, 8);
makePaneExStream(param_0, param_1);
param_1->seek(iVar2 + auStack_70[1], JSUStreamSeekFrom_SET);
@@ -36,7 +36,8 @@ J2DPictureEx::J2DPictureEx(J2DPane* param_0, JSURandomInputStream* param_1, u32
for (int i = 0; i < 4; i++) {
field_0x158[i] = aJStack_60.field_0x8[i];
field_0x10a[i] = aJStack_60.field_0x10[i];
field_0x10a[i].x = aJStack_60.field_0x10[i].x;
field_0x10a[i].y = aJStack_60.field_0x10[i].y;
mCornerColor[i] = JUtility::TColor(aJStack_60.mCornerColor[i]);
}
+2 -2
View File
@@ -368,9 +368,9 @@ bool J2DScreen::createMaterial(JSURandomInputStream* p_stream, u32 param_1, JKRA
char* ptr = (char*)sec_s;
u16 size = lastOffset;
while (ptr[size] != 0) {
size++;
size++;
}
size++;
size++;
u8* nametab = new u8[size];
if (nametab == NULL) {
+2 -2
View File
@@ -118,8 +118,8 @@ J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = {
{GX_TG_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0},
};
J2DTexMtxInfo const j2dDefaultTexMtxInfo = {1, 1, 255, 255, 0.5f, 0.5f,
0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f};
J2DTexMtxInfo const j2dDefaultTexMtxInfo = {1, 1, 255, 255, {0.5f, 0.5f,
0.0f}, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f};
J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo = {{0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, 1};
+8 -8
View File
@@ -24,17 +24,17 @@ J2DWindow::J2DWindow(J2DPane* param_0, JSURandomInputStream* param_1, JKRArchive
struct J2DWindowData {
u8 field_0x0[0x10];
u16 field_0x10[4];
BE(u16) field_0x10[4];
u8 field_0x18;
u8 field_0x19;
u16 field_0x1a;
u16 field_0x1c;
u16 field_0x1e;
u16 field_0x20;
u16 field_0x22;
u16 field_0x24;
BE(u16) field_0x1a;
BE(u16) field_0x1c;
BE(u16) field_0x1e;
BE(u16) field_0x20;
BE(u16) field_0x22;
BE(u16) field_0x24;
u8 field_0x26[0xa];
u32 field_0x30[4];
BE(u32) field_0x30[4];
};
J2DWindow::J2DWindow(J2DPane* param_0, JSURandomInputStream* param_1, J2DMaterial* param_2) :
+12 -11
View File
@@ -3,21 +3,22 @@
#include "JSystem/J2DGraph/J2DWindowEx.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "JSystem/JSupport/JSURandomInputStream.h"
#include "dusk/endian.h"
struct J2DWindowExDef {
u32 field_0x0[4];
u16 field_0x10[4];
BE(u32) field_0x0[4];
BE(u16) field_0x10[4];
u8 field_0x18;
u8 field_0x19;
u16 field_0x1A;
u16 field_0x1C;
u16 field_0x1E;
u16 field_0x20;
u16 field_0x22;
u16 field_0x24;
u16 field_0x26;
u16 field_0x28[4];
u32 field_0x30[4];
BE(u16) field_0x1A;
BE(u16) field_0x1C;
BE(u16) field_0x1E;
BE(u16) field_0x20;
BE(u16) field_0x22;
BE(u16) field_0x24;
BE(u16) field_0x26;
BE(u16) field_0x28[4];
BE(u32) field_0x30[4];
};
STATIC_ASSERT(sizeof(J2DWindowExDef) == 0x40);
+1
View File
@@ -25,6 +25,7 @@ char* JSUInputStream::read(char* str) {
setState(IOS_STATE_1);
return 0;
}
be_swap(sp8);
s32 len = readData(str, sp8);
str[len] = 0;
+1 -1
View File
@@ -584,7 +584,7 @@ actor_process_profile_definition g_profile_CSTAF = {
fpcPi_CURRENT_e, // mListPrio
PROC_CSTAF, // mProcName
&g_fpcLf_Method.base, // sub_method
0x00000B38, // mSize
sizeof(daCstaF_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
+1 -1
View File
@@ -1220,7 +1220,7 @@ actor_process_profile_definition g_profile_CSTATUE = {
fpcPi_CURRENT_e, // mListPrio
PROC_CSTATUE, // mProcName
&g_fpcLf_Method.base, // sub_method
0x00000B2C, // mSize
sizeof(daCstatue_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
+14 -14
View File
@@ -273,18 +273,18 @@ static actor_method_class daObjHBombkoya_METHODS = {
};
actor_process_profile_definition g_profile_Obj_HBombkoya = {
fpcLy_CURRENT_e, // mLayerID
3, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_HBombkoya, // mProcName
&g_fpcLf_Method.base, // sub_method
0x000007C0, // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
675, // mPriority
&daObjHBombkoya_METHODS, // sub_method
0x00040100, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
fpcLy_CURRENT_e, // mLayerID
3, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_HBombkoya, // mProcName
&g_fpcLf_Method.base, // sub_method
sizeof(daObjHBombkoya_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
675, // mPriority
&daObjHBombkoya_METHODS, // sub_method
0x00040100, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
+1 -1
View File
@@ -261,7 +261,7 @@ actor_process_profile_definition g_profile_Obj_Ice_l = {
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_Ice_l, // mProcName
&g_fpcLf_Method.base, // sub_method
0x00000640, // mSize
sizeof(daObjIce_l_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
+2 -2
View File
@@ -367,8 +367,8 @@ actor_process_profile_definition g_profile_Obj_MagLiftRot = {
3, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_MagLiftRot, // mProcName
&g_fpcLf_Method.base, // sub_method
0x00000634, // mSize
&g_fpcLf_Method.base, // sub_method
sizeof(daMagLiftRot_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
+2 -2
View File
@@ -231,8 +231,8 @@ actor_process_profile_definition g_profile_Obj_Tornado = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_Tornado, // mProcName
&g_fpcLf_Method.base, // sub_method
0x00000770, // mSize
&g_fpcLf_Method.base, // sub_method
sizeof(daObjTrnd_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
+2 -2
View File
@@ -388,8 +388,8 @@ actor_process_profile_definition g_profile_Obj_Wchain = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_Wchain, // mProcName
&g_fpcLf_Method.base, // sub_method
0x000007BC, // mSize
&g_fpcLf_Method.base, // sub_method
sizeof(daObjWchain_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
+1 -1
View File
@@ -110,7 +110,7 @@ actor_process_profile_definition2 g_profile_SCENE_EXIT = {
fpcPi_CURRENT_e, // mListPrio
PROC_SCENE_EXIT, // mProcName
&g_fpcLf_Method.base, // sub_method
0x0000059C, // mSize
sizeof(daScex_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
+18 -1
View File
@@ -1071,7 +1071,7 @@ void dEvDtStaff_c::specialProcDirector() {
dStage_MapEvent_dt_c* mapEvent = dEvt_control_c::searchMapEventData(data->unk);
if (mapEvent != NULL) {
if (mapEvent->type == dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA) {
data->unk2 = mapEvent->data.maptool.field_0x14;
data->unk2 = (s16)mapEvent->data.maptool.field_0x14;
} else {
data->unk2 = -1;
}
@@ -1553,11 +1553,28 @@ int dEvDtBase_c::init(char* i_data, int i_roomNo) {
}
if (getFDataNum() > 0) {
#if TARGET_PC
auto data = (f32*)(i_data + getFDataTop());
int num = getFDataNum();
for (int i = 0; i < num; i++)
be_swap(data[i]);
setFDataP(data);
#else
setFDataP((f32*)(i_data + getFDataTop()));
#endif
}
if (getIDataNum() > 0) {
#if TARGET_PC
// endian swap here
auto data = (int*)(i_data + getIDataTop());
int num = getIDataNum();
for (int i = 0; i < num; i++)
be_swap(data[i]);
setIDataP(data);
#else
setIDataP((int*)(i_data + getIDataTop()));
#endif
}
if (getSDataNum() > 0) {
+18 -2
View File
@@ -2,6 +2,7 @@
* f_pc_base.cpp
* Framework - Process Base
*/
#define PROCS_DUMP_NAMES 1
#include "f_pc/f_pc_base.h"
#include "SSystem/SComponent/c_malloc.h"
@@ -16,6 +17,21 @@
#include "Z2AudioLib/Z2AudioMgr.h"
#include <cstdio>
#if TARGET_PC
#include "d/d_procname.h"
static const char* getProcName(s16 id) {
for (auto procName : procNames) {
if (procName.id == id) {
return procName.name;
}
}
return nullptr;
}
#endif
BOOL fpcBs_Is_JustOfType(int i_typeA, int i_typeB) {
if (i_typeB == i_typeA) {
return TRUE;
@@ -119,8 +135,8 @@ base_process_class* fpcBs_Create(s16 i_profname, fpc_ProcID i_procID, void* i_ap
u32 size;
pprofile = (process_profile_definition*)fpcPf_Get(i_profname);
printf("[DIAG] fpcBs_Create: profname=%d profile=%p procSize=%d unkSize=%d\n",
i_profname, pprofile, pprofile->process_size, pprofile->unk_size); fflush(stdout);
printf("[DIAG] fpcBs_Create: pid=%d profname=%s (%d) profile=%p procSize=%d unkSize=%d\n",
i_procID, getProcName(i_profname), i_profname, pprofile, pprofile->process_size, pprofile->unk_size); fflush(stdout);
size = pprofile->process_size + pprofile->unk_size;
pprocess = (base_process_class*)cMl::memalignB(-4, size);