mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-15 05:40:55 -04:00
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:
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define JSUINPUTSTREAM_H
|
||||
|
||||
#include "JSystem/JSupport/JSUIosBase.h"
|
||||
#include "dusk/endian.h"
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jsupport
|
||||
@@ -17,31 +18,31 @@ public:
|
||||
/* vt[5] */ virtual u32 readData(void*, s32) = 0;
|
||||
|
||||
u32 readU32() {
|
||||
u32 val;
|
||||
BE<u32> val;
|
||||
this->read(&val, sizeof(val));
|
||||
return val;
|
||||
}
|
||||
|
||||
u32 read32b() {
|
||||
u32 val;
|
||||
BE<u32> val;
|
||||
this->read(&val, sizeof(val));
|
||||
return val;
|
||||
}
|
||||
|
||||
s32 readS32() {
|
||||
s32 val;
|
||||
BE<s32> val;
|
||||
this->read(&val, sizeof(val));
|
||||
return val;
|
||||
}
|
||||
|
||||
s16 readS16() {
|
||||
s16 val;
|
||||
BE<s16> val;
|
||||
this->read(&val, sizeof(val));
|
||||
return val;
|
||||
}
|
||||
|
||||
u16 readU16() {
|
||||
u16 val;
|
||||
BE<u16> val;
|
||||
this->read(&val, sizeof(val));
|
||||
return val;
|
||||
}
|
||||
@@ -59,18 +60,20 @@ public:
|
||||
}
|
||||
|
||||
u16 read16b() {
|
||||
u16 val;
|
||||
BE<u16> val;
|
||||
this->read(&val, sizeof(val));
|
||||
return val;
|
||||
}
|
||||
|
||||
JSUInputStream& operator>>(u32& dest) {
|
||||
read(&dest, 4);
|
||||
be_swap(dest);
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUInputStream& operator>>(u16& dest) {
|
||||
read(&dest, 2);
|
||||
be_swap(dest);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -81,6 +84,7 @@ public:
|
||||
|
||||
JSUInputStream& operator>>(s16& dest) {
|
||||
read(&dest, 2);
|
||||
be_swap(dest);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -98,7 +102,9 @@ public:
|
||||
}
|
||||
|
||||
s32 read(u32& param_0) {
|
||||
return read(¶m_0, 4);
|
||||
auto ret = read(¶m_0, 4);
|
||||
be_swap(param_0);
|
||||
return ret;
|
||||
}
|
||||
|
||||
// TODO: return value probably wrong
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
*
|
||||
*/
|
||||
struct ResNTAB {
|
||||
u16 mEntryNum;
|
||||
u16 mPad0;
|
||||
BE(u16) mEntryNum;
|
||||
BE(u16) mPad0;
|
||||
struct Entry {
|
||||
u16 mKeyCode;
|
||||
u16 mOffs;
|
||||
BE(u16) mKeyCode;
|
||||
BE(u16) mOffs;
|
||||
} mEntries[1];
|
||||
|
||||
inline const char* getName(u32 index) const {
|
||||
|
||||
+57
-56
@@ -3,24 +3,25 @@
|
||||
|
||||
#include "global.h"
|
||||
#include "f_pc/f_pc_base.h"
|
||||
#include "dusk/endian.h"
|
||||
|
||||
struct msg_class;
|
||||
|
||||
struct event_binary_data_header {
|
||||
/* 0x00 */ u32 eventTop; // offset to Event chunk
|
||||
/* 0x04 */ s32 eventNum;
|
||||
/* 0x08 */ u32 staffTop; // offset to Staff chunk
|
||||
/* 0x0C */ s32 staffNum;
|
||||
/* 0x10 */ u32 cutTop; // offset to Cut chunk
|
||||
/* 0x14 */ s32 cutNum;
|
||||
/* 0x18 */ u32 dataTop; // offset to Data chunk
|
||||
/* 0x1C */ s32 dataNum;
|
||||
/* 0x20 */ u32 fDataTop; // offset to FData chunk
|
||||
/* 0x24 */ s32 fDataNum;
|
||||
/* 0x28 */ u32 iDataTop; // offset to IData chunk
|
||||
/* 0x2C */ s32 iDataNum;
|
||||
/* 0x30 */ u32 sDataTop; // offset to SData chunk
|
||||
/* 0x34 */ s32 sDataNum;
|
||||
/* 0x00 */ BE(u32) eventTop; // offset to Event chunk
|
||||
/* 0x04 */ BE(s32) eventNum;
|
||||
/* 0x08 */ BE(u32) staffTop; // offset to Staff chunk
|
||||
/* 0x0C */ BE(s32) staffNum;
|
||||
/* 0x10 */ BE(u32) cutTop; // offset to Cut chunk
|
||||
/* 0x14 */ BE(s32) cutNum;
|
||||
/* 0x18 */ BE(u32) dataTop; // offset to Data chunk
|
||||
/* 0x1C */ BE(s32) dataNum;
|
||||
/* 0x20 */ BE(u32) fDataTop; // offset to FData chunk
|
||||
/* 0x24 */ BE(s32) fDataNum;
|
||||
/* 0x28 */ BE(u32) iDataTop; // offset to IData chunk
|
||||
/* 0x2C */ BE(s32) iDataNum;
|
||||
/* 0x30 */ BE(u32) sDataTop; // offset to SData chunk
|
||||
/* 0x34 */ BE(s32) sDataNum;
|
||||
/* 0x38 */ u8 unk[8];
|
||||
}; // Size: 0x40
|
||||
|
||||
@@ -45,11 +46,11 @@ public:
|
||||
char* getName() { return mName; }
|
||||
|
||||
/* 0x00 */ char mName[32];
|
||||
/* 0x20 */ u32 mIndex;
|
||||
/* 0x24 */ int mType;
|
||||
/* 0x28 */ int mDataIndex;
|
||||
/* 0x2C */ int mNumber;
|
||||
/* 0x30 */ int mNext;
|
||||
/* 0x20 */ BE(u32) mIndex;
|
||||
/* 0x24 */ BE(int) mType;
|
||||
/* 0x28 */ BE(int) mDataIndex;
|
||||
/* 0x2C */ BE(int) mNumber;
|
||||
/* 0x30 */ BE(int) mNext;
|
||||
/* 0x34 */ u8 field_0x34[12];
|
||||
}; // Size: 0x40
|
||||
|
||||
@@ -79,12 +80,12 @@ public:
|
||||
u32 getTagId() { return mTagID; }
|
||||
|
||||
/* 0x00 */ char mName[32];
|
||||
/* 0x20 */ u32 mTagID;
|
||||
/* 0x24 */ u32 mIndex;
|
||||
/* 0x28 */ int mFlags[3];
|
||||
/* 0x34 */ u32 mFlagId;
|
||||
/* 0x38 */ int mDataTop;
|
||||
/* 0x3C */ int mNext;
|
||||
/* 0x20 */ BE(u32) mTagID;
|
||||
/* 0x24 */ BE(u32) mIndex;
|
||||
/* 0x28 */ BE(int) mFlags[3];
|
||||
/* 0x34 */ BE(u32) mFlagId;
|
||||
/* 0x38 */ BE(int) mDataTop;
|
||||
/* 0x3C */ BE(int) mNext;
|
||||
/* 0x40 */ u8 field_0x40[0x10];
|
||||
}; // Size: 0x50
|
||||
|
||||
@@ -136,26 +137,26 @@ public:
|
||||
};
|
||||
|
||||
struct MessageData {
|
||||
s16 unk;
|
||||
BE(s16) unk;
|
||||
};
|
||||
|
||||
struct SoundData {
|
||||
s16 unk;
|
||||
s16 timer;
|
||||
BE(s16) unk;
|
||||
BE(s16) timer;
|
||||
};
|
||||
|
||||
struct TimerKeeperData {
|
||||
s32 timer;
|
||||
BE(s32) timer;
|
||||
};
|
||||
|
||||
struct DirectorData {
|
||||
s16 unk;
|
||||
s16 unk2;
|
||||
BE(s16) unk;
|
||||
BE(s16) unk2;
|
||||
};
|
||||
|
||||
struct EffectData {
|
||||
u8 pad[8];
|
||||
s32 unk;
|
||||
BE(s32) unk;
|
||||
};
|
||||
|
||||
void specialProc_WaitStart(int index);
|
||||
@@ -180,16 +181,16 @@ public:
|
||||
|
||||
// private:
|
||||
/* 0x00 */ char mName[8];
|
||||
/* 0x08 */ u8 mWork[0x18];
|
||||
/* 0x20 */ s32 mTagID;
|
||||
/* 0x24 */ u32 mIndex;
|
||||
/* 0x28 */ u32 mFlagID;
|
||||
/* 0x2C */ int mType;
|
||||
/* 0x30 */ int mStartCut;
|
||||
/* 0x34 */ s16 field_0x34;
|
||||
/* 0x36 */ s16 mWaitTimer;
|
||||
/* 0x38 */ int mCurrentCut;
|
||||
/* 0x3C */ s32 field_0x3c;
|
||||
/* 0x08 */ u8 mWork[0x18]; // PROBLEM: this buffer is now too small for StaffWork to fit in
|
||||
/* 0x20 */ BE(s32) mTagID;
|
||||
/* 0x24 */ BE(u32) mIndex;
|
||||
/* 0x28 */ BE(u32) mFlagID;
|
||||
/* 0x2C */ BE(int) mType;
|
||||
/* 0x30 */ BE(int) mStartCut;
|
||||
/* 0x34 */ BE(s16) field_0x34;
|
||||
/* 0x36 */ BE(s16) mWaitTimer;
|
||||
/* 0x38 */ BE(int) mCurrentCut;
|
||||
/* 0x3C */ BE(s32) field_0x3c;
|
||||
/* 0x40 */ bool field_0x40;
|
||||
/* 0x41 */ bool field_0x41;
|
||||
/* 0x42 */ u8 mData[0x50 - 0x42];
|
||||
@@ -223,21 +224,21 @@ public:
|
||||
int getPriority() { return mPriority; }
|
||||
|
||||
/* 0x00 */ char mName[32];
|
||||
/* 0x20 */ u32 mIndex;
|
||||
/* 0x24 */ int field_0x24;
|
||||
/* 0x28 */ int mPriority;
|
||||
/* 0x2C */ int mStaff[20];
|
||||
/* 0x7C */ int mNStaff;
|
||||
/* 0x80 */ int field_0x80;
|
||||
/* 0x84 */ int field_0x84;
|
||||
/* 0x88 */ int mFlags[3];
|
||||
/* 0x20 */ BE(u32) mIndex;
|
||||
/* 0x24 */ BE(int) field_0x24;
|
||||
/* 0x28 */ BE(int) mPriority;
|
||||
/* 0x2C */ BE(int) mStaff[20];
|
||||
/* 0x7C */ BE(int) mNStaff;
|
||||
/* 0x80 */ BE(int) field_0x80;
|
||||
/* 0x84 */ BE(int) field_0x84;
|
||||
/* 0x88 */ BE(int) mFlags[3];
|
||||
/* 0x94 */ bool mPlaySound;
|
||||
/* 0x96 */ s16 field_0x96;
|
||||
/* 0x98 */ f32 field_0x98;
|
||||
/* 0x9C */ f32 field_0x9c;
|
||||
/* 0xA0 */ f32 field_0xa0;
|
||||
/* 0xA4 */ int mEventState;
|
||||
/* 0xA8 */ int field_0xa8;
|
||||
/* 0x96 */ BE(s16) field_0x96;
|
||||
/* 0x98 */ BE(f32) field_0x98;
|
||||
/* 0x9C */ BE(f32) field_0x9c;
|
||||
/* 0xA0 */ BE(f32) field_0xa0;
|
||||
/* 0xA4 */ BE(int) mEventState;
|
||||
/* 0xA8 */ BE(int) field_0xa8;
|
||||
/* 0xAC */ u8 field_0xac[4];
|
||||
}; // Size: 0xB0
|
||||
|
||||
|
||||
@@ -361,6 +361,8 @@ inline s16 __OSf32tos16(__REGISTER f32 inF) {
|
||||
psq_st inF, 0(tmpPtr), 0x1, 5
|
||||
lha out, 0(tmpPtr)
|
||||
}
|
||||
#else
|
||||
return (s16)inF; // this is wrong i believe
|
||||
#endif
|
||||
// clang-format on
|
||||
|
||||
@@ -381,6 +383,8 @@ inline u8 __OSf32tou8(__REGISTER f32 inF) {
|
||||
psq_st inF, 0(tmpPtr), 0x1, 2
|
||||
lbz out, 0(tmpPtr)
|
||||
}
|
||||
#else
|
||||
return (u8)inF; // this is also wrong i believe
|
||||
#endif
|
||||
// clang-format on
|
||||
|
||||
|
||||
+31
-2
@@ -18,9 +18,11 @@
|
||||
#include <stdlib.h>
|
||||
#define BSWAP16(x) _byteswap_ushort(x)
|
||||
#define BSWAP32(x) _byteswap_ulong(x)
|
||||
#define BSWAP64(x) _byteswap_uint64(x)
|
||||
#else
|
||||
#define BSWAP16(x) __builtin_bswap16(x)
|
||||
#define BSWAP32(x) __builtin_bswap32(x)
|
||||
#define BSWAP64(x) __builtin_bswap64(x)
|
||||
#endif
|
||||
#else
|
||||
#define BSWAP16(x) (x)
|
||||
@@ -31,8 +33,9 @@
|
||||
inline u16 be16(u16 val) { return BSWAP16(val); }
|
||||
inline s16 be16s(s16 val) { return (s16)BSWAP16((u16)val); }
|
||||
inline u32 be32(u32 val) { return BSWAP32(val); }
|
||||
|
||||
inline s32 be32s(s32 val) { return (s32)BSWAP32((u32)val); }
|
||||
inline u64 be64(u64 val) { return BSWAP64(val); }
|
||||
inline s64 be64s(s64 val) { return (s64)BSWAP64((u64)val); }
|
||||
|
||||
#ifdef TARGET_PC
|
||||
// Helper wrappers so code below reads nicely:
|
||||
@@ -48,6 +51,12 @@ static inline u32 RES_U32(u32 v) {
|
||||
static inline s32 RES_S32(s32 v) {
|
||||
return be32s(v);
|
||||
}
|
||||
static inline u64 RES_U64(u64 v) {
|
||||
return be64(v);
|
||||
}
|
||||
static inline s64 RES_S64(s64 v) {
|
||||
return be64s(v);
|
||||
}
|
||||
static inline f32 RES_F32(f32 v) {
|
||||
return std::bit_cast<f32, s32>(RES_S32(std::bit_cast<s32, f32>(v)));
|
||||
}
|
||||
@@ -73,6 +82,16 @@ struct BE {
|
||||
inner = swap(from);
|
||||
}
|
||||
|
||||
T operator--(int dec) {
|
||||
inner -= dec;
|
||||
return swap(inner);
|
||||
}
|
||||
|
||||
T operator++(int inc) {
|
||||
inner += inc;
|
||||
return swap(inner);
|
||||
}
|
||||
|
||||
operator T() const {
|
||||
return swap(inner);
|
||||
}
|
||||
@@ -94,7 +113,6 @@ constexpr BE<TA>& operator op(BE<TA>& a, TB b) { \
|
||||
return a; \
|
||||
}
|
||||
|
||||
|
||||
BIN_ASSIGN_OP(&=);
|
||||
BIN_ASSIGN_OP(|=);
|
||||
BIN_ASSIGN_OP(+=);
|
||||
@@ -102,6 +120,7 @@ BIN_ASSIGN_OP(/=);
|
||||
|
||||
#undef BIN_ASSIGN_OP
|
||||
|
||||
|
||||
template<>
|
||||
inline u16 BE<u16>::swap(u16 val) {
|
||||
return RES_U16(val);
|
||||
@@ -122,6 +141,16 @@ inline s32 BE<s32>::swap(s32 val) {
|
||||
return RES_S32(val);
|
||||
}
|
||||
|
||||
template<>
|
||||
inline s64 BE<s64>::swap(s64 val) {
|
||||
return RES_S64(val);
|
||||
}
|
||||
|
||||
template<>
|
||||
inline u64 BE<u64>::swap(u64 val) {
|
||||
return RES_U64(val);
|
||||
}
|
||||
|
||||
template<>
|
||||
inline f32 BE<f32>::swap(f32 val) {
|
||||
return RES_F32(val);
|
||||
|
||||
@@ -9,42 +9,42 @@
|
||||
#include <dolphin/types.h>
|
||||
|
||||
J2DMaterialFactory::J2DMaterialFactory(J2DMaterialBlock const& param_0) {
|
||||
field_0x0 = param_0.field_0x8;
|
||||
field_0x4 = JSUConvertOffsetToPtr<J2DMaterialInitData>(¶m_0, param_0.field_0xc);
|
||||
field_0x8 = JSUConvertOffsetToPtr<u16>(¶m_0, param_0.field_0x10);
|
||||
mMaterialNum = param_0.field_0x8;
|
||||
mpMaterialInitData = JSUConvertOffsetToPtr<J2DMaterialInitData>(¶m_0, param_0.field_0xc);
|
||||
mpMaterialID = JSUConvertOffsetToPtr<BE(u16)>(¶m_0, param_0.field_0x10);
|
||||
if (param_0.field_0x18 && param_0.field_0x18 - param_0.field_0x14 > 4) {
|
||||
field_0xc = JSUConvertOffsetToPtr<J2DIndInitData>(¶m_0, param_0.field_0x18);
|
||||
mpIndInitData = JSUConvertOffsetToPtr<J2DIndInitData>(¶m_0, param_0.field_0x18);
|
||||
}
|
||||
else {
|
||||
field_0xc = NULL;
|
||||
mpIndInitData = NULL;
|
||||
}
|
||||
field_0x30 = JSUConvertOffsetToPtr<BE(GXCullMode)>(¶m_0, param_0.field_0x1c);
|
||||
field_0x10 = JSUConvertOffsetToPtr<GXColor>(¶m_0, param_0.field_0x20);
|
||||
field_0x14 = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x24);
|
||||
field_0x18 = JSUConvertOffsetToPtr<J2DColorChanInfo>(¶m_0, param_0.field_0x28);
|
||||
field_0x1c = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x2c);
|
||||
field_0x20 = JSUConvertOffsetToPtr<J2DTexCoordInfo>(¶m_0, param_0.field_0x30);
|
||||
field_0x24 = JSUConvertOffsetToPtr<J2DTexMtxInfo>(¶m_0, param_0.field_0x34);
|
||||
field_0x28 = JSUConvertOffsetToPtr<u16>(¶m_0, param_0.field_0x38);
|
||||
field_0x2c = JSUConvertOffsetToPtr<u16>(¶m_0, param_0.field_0x3c);
|
||||
field_0x34 = JSUConvertOffsetToPtr<J2DTevOrderInfo>(¶m_0, param_0.field_0x40);
|
||||
field_0x38 = JSUConvertOffsetToPtr<BE(GXColorS10)>(¶m_0, param_0.field_0x44);
|
||||
field_0x3c = JSUConvertOffsetToPtr<GXColor>(¶m_0, param_0.field_0x48);
|
||||
field_0x40 = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x4c);
|
||||
field_0x44 = JSUConvertOffsetToPtr<J2DTevStageInfo>(¶m_0, param_0.field_0x50);
|
||||
field_0x48 = JSUConvertOffsetToPtr<J2DTevSwapModeInfo>(¶m_0, param_0.field_0x54);
|
||||
field_0x4c = JSUConvertOffsetToPtr<J2DTevSwapModeTableInfo>(¶m_0, param_0.field_0x58);
|
||||
field_0x50 = JSUConvertOffsetToPtr<J2DAlphaCompInfo>(¶m_0, param_0.field_0x5c);
|
||||
field_0x54 = JSUConvertOffsetToPtr<J2DBlendInfo>(¶m_0, param_0.field_0x60);
|
||||
field_0x58 = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x64);
|
||||
mpCullMode = JSUConvertOffsetToPtr<BE(GXCullMode)>(¶m_0, param_0.field_0x1c);
|
||||
mpMatColor = JSUConvertOffsetToPtr<GXColor>(¶m_0, param_0.field_0x20);
|
||||
mpColorChanNum = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x24);
|
||||
mpColorChanInfo = JSUConvertOffsetToPtr<J2DColorChanInfo>(¶m_0, param_0.field_0x28);
|
||||
mpTexGenNum = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x2c);
|
||||
mpTexCoordInfo = JSUConvertOffsetToPtr<J2DTexCoordInfo>(¶m_0, param_0.field_0x30);
|
||||
mpTexMtxInfo = JSUConvertOffsetToPtr<J2DTexMtxInfo>(¶m_0, param_0.field_0x34);
|
||||
mpTexNo = JSUConvertOffsetToPtr<BE(u16)>(¶m_0, param_0.field_0x38);
|
||||
mpFontNo = JSUConvertOffsetToPtr<BE(u16)>(¶m_0, param_0.field_0x3c);
|
||||
mpTevOrderInfo = JSUConvertOffsetToPtr<J2DTevOrderInfo>(¶m_0, param_0.field_0x40);
|
||||
mpTevColor = JSUConvertOffsetToPtr<BE(GXColorS10)>(¶m_0, param_0.field_0x44);
|
||||
mpTevKColor = JSUConvertOffsetToPtr<GXColor>(¶m_0, param_0.field_0x48);
|
||||
mpTevStageNum = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x4c);
|
||||
mpTevStageInfo = JSUConvertOffsetToPtr<J2DTevStageInfo>(¶m_0, param_0.field_0x50);
|
||||
mpTevSwapModeInfo = JSUConvertOffsetToPtr<J2DTevSwapModeInfo>(¶m_0, param_0.field_0x54);
|
||||
mpTevSwapModeTableInfo = JSUConvertOffsetToPtr<J2DTevSwapModeTableInfo>(¶m_0, param_0.field_0x58);
|
||||
mpAlphaCompInfo = JSUConvertOffsetToPtr<J2DAlphaCompInfo>(¶m_0, param_0.field_0x5c);
|
||||
mpBlendInfo = JSUConvertOffsetToPtr<J2DBlendInfo>(¶m_0, param_0.field_0x60);
|
||||
mpDither = JSUConvertOffsetToPtr<u8>(¶m_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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
@@ -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]);
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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};
|
||||
|
||||
|
||||
@@ -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) :
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user