Make repo semi-ready for dtk

This commit is contained in:
SwareJonge 2024-06-24 16:55:25 +02:00
parent a58b212372
commit 4e123604cf
528 changed files with 42228 additions and 281 deletions

3
.gitignore vendored
View File

@ -2,6 +2,7 @@ __pycache__
.vs
.vscode
build
devkitppc
expected
out
*.bin
@ -17,4 +18,6 @@ out
build.ninja
build_opts.yml
.ninja_log
.ninja_deps
objdiff.json
ctx.c

View File

@ -163,6 +163,9 @@ INCDIR = "include"
# Tools directory
TOOLS = "tools"
# Compiler directory
COMPILERS = os.path.join(TOOLS, "GC")
# Main config directory
MAIN_CONFIG = "config"
@ -205,16 +208,16 @@ PROGRESS = f"{PYTHON} {PPCDIS}/progress.py"
SYMBOLSCRIPT = f"{PYTHON} {PPCDIS}/symbols.py"
# Codewarrior
SDK_CW = os.path.join(TOOLS, "1.2.5")
SDK_CW = os.path.join(COMPILERS, "1.2.5")
SDK_CC = os.path.join(SDK_CW, "mwcceppc.exe")
SDK_PACTHED_CW = os.path.join(TOOLS, "1.2.5n")
SDK_PACTHED_CW = os.path.join(COMPILERS, "1.2.5n")
SDK_PACTHED_CC = os.path.join(SDK_PACTHED_CW, "mwcceppc.exe")
JSYSTEM_O0_MW = os.path.join(TOOLS, "3.0a5.2")
JSYSTEM_O0_MW = os.path.join(COMPILERS, "3.0a5.2")
JSYSTEM_O0_CC = os.path.join(JSYSTEM_O0_MW, "mwcceppc.exe")
CODEWARRIOR = os.path.join(TOOLS, "2.6")
CODEWARRIOR = os.path.join(COMPILERS, "2.6")
CC = os.path.join(CODEWARRIOR, "mwcceppc.exe")
LD = os.path.join(CODEWARRIOR, "mwldeppc.exe")
@ -352,6 +355,7 @@ CFLAGS = [
"-use_lmw_stmw on",
"-common on",
"-inline auto",
"-multibyte",
MWCC_DEFINES
]
@ -396,7 +400,6 @@ MSL_C_DEBUG = [
MSL_C = [
"-O4,p",
"-inline auto, deferred",
"-common off",
"-enum int",
"-rostr",
"-str pool",

View File

@ -0,0 +1 @@
db87a9ec1a34275efc45d965dcdcb1a9eb131885 build/MarioClub_us/main.dol

View File

@ -0,0 +1,6 @@
object: orig/MarioClub_us/main.dol
hash: db87a9ec1a34275efc45d965dcdcb1a9eb131885
#map: orig/MarioClub_us/debugInfoM.MAP
symbols: config/MarioClub_us/symbols.txt
splits: config/MarioClub_us/splits.txt
mw_comment_version: 8

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
# doesn't work yet!
object: orig/Release_eu/main.dol
hash: f3bf225dd81cd9eb094fa9f8415f95f6bbcb9d10
symbols: config/Release_eu/symbols.txt
splits: config/Release_eu/splits.txt
mw_comment_version: 8

View File

@ -54,10 +54,10 @@ import common as c
####################
# Check CW was added
assert os.path.exists("tools/2.6/mwcceppc.exe") and \
os.path.exists("tools/1.2.5n/mwcceppc.exe") and \
os.path.exists("tools/1.2.5/mwcceppc.exe") and \
os.path.exists("tools/2.6/mwldeppc.exe"), \
assert os.path.exists("tools/GC/2.6/mwcceppc.exe") and \
os.path.exists("tools/GC/1.2.5n/mwcceppc.exe") and \
os.path.exists("tools/GC/1.2.5/mwcceppc.exe") and \
os.path.exists("tools/GC/2.6/mwldeppc.exe"), \
"Error: Codewarrior compiler(s) not found!"
# Check binaries were added
@ -623,8 +623,12 @@ class CSource(Source):
self.iconv_path = f"$builddir/iconv/{path}"
# Find generated includes
with open(path, encoding="utf-8") as f:
gen_includes = GeneratedInclude.find(ctx, path, f.read())
try:
with open(path, encoding="utf-8") as f:
gen_includes = GeneratedInclude.find(ctx, path, f.read())
except:
with open(path, encoding="shift-jis") as f:
gen_includes = GeneratedInclude.find(ctx, path, f.read())
self.s_path = f"$builddir/{path}.s"
super().__init__(True, path, f"$builddir/{path}.o", gen_includes)

1417
configure_dtk.py Normal file

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,7 @@
class JASVoiceBank;
class JAUDisposer_ {
public:
virtual ~JAUDisposer_();
};
class JAUSectionHeap;

View File

@ -225,7 +225,7 @@ struct JKRTask : public JKRThread
OSMessageQueue *mTaskMsgQueue; // _94
static JSUList<JKRTask> sTaskList;
static u8 sEndMesgQueue[32]; // Unused
static OSMessageQueue sEndMesgQueue; // Unused
};
/** @unused */

View File

@ -100,7 +100,7 @@ namespace ReadPrintMessage
void readBmg(void *bmgPtr);
extern int mNum[0xF]; // 0x803fbf34, TODO: make this a struct ig
extern int mNum[10]; // 0x803fbf34, TODO: make this a struct ig
extern char *mStr[5]; // 0x803fbf70
extern Inf *mInfoPtr; // 0x80416350
extern Block *mDataPtr; // 0x80416354

View File

@ -2,8 +2,44 @@
#define MOVIEAPP_H
#include "Osako/GameApp.h"
#include "Shiraiwa/JugemMain.h"
class GeographyObj;
class TJugemVoidRod;
class TJugemHeadHear;
class MVActor
{
public:
MVActor();
~MVActor() {}
virtual void setCurViewNo(u32) = 0;
virtual void calc() = 0;
virtual void update() = 0;
virtual void viewCalc(u32) = 0;
JSULink<MVActor> mLink;
};
class MovieJugemActor : public MVActor
{
public:
MovieJugemActor();
static void loadModelData(GeographyObj *);
virtual void setCurViewNo(u32);
virtual void calc();
virtual void update();
virtual void viewCalc(u32);
void endDemo();
bool isDemoEnd();
private:
TJugem *mJugem;
TJugemVoidRod *mVoidRod;
TJugemRodItem* mRodItem;
TJugemHeadHear *mHear;
int mCalcCnt;
}; // Size: 0x28
class MovieApp : public GameApp
{ // Autogenerated
@ -12,45 +48,26 @@ public:
static MovieApp *create(); // 0x801d79c4
static void call(); // 0x801d7a98
MovieApp(void *); // 0x801d7abc
virtual ~MovieApp(); // 0x801d7b44
virtual void draw(); // 0x801d7ba4
virtual void calc(); // 0x801d7c08
virtual void reset(); // 0x801d7e18
void isEnd(); // 0x801d7d9c
void loadOpeningData(); // 0x801d7e64
void doRunning(); // 0x801d7e88
void doEnding(); // 0x801d8004
// Vtable
virtual ~MovieApp(); // 08
virtual void draw(); // 0C
virtual void calc(); // 10
virtual void reset(); // 14
static MovieApp *getMovieApp() { return sMovieApp; }
private:
static MovieApp *sMovieApp; // 0x80416840
static void *mspHeapBuffer; // 0x80416844
};
class MVActor
{
public:
MVActor();
//~MVActor();
virtual void setCurViewNo(u32) = 0;
virtual void calc() = 0;
virtual void update() = 0;
virtual void viewCalc(u32) = 0;
};
class MovieJugemActor : public MVActor
{
public:
void loadModelData(GeographyObj *);
MovieJugemActor();
virtual void setCurViewNo(u32);
virtual void calc();
virtual void update();
virtual void viewCalc(u32);
void endDemo();
bool isDemoEnd();
};
private:
MovieJugemActor *mActor;
}; // Size: 0x2c
#define MOVIE_GetHeap() \
MovieApp::getMovieApp()->getHeap()

View File

@ -7,17 +7,17 @@
class GameApp
{
public:
GameApp(u32, const char *, void *);
GameApp(u32 heapSize, const char *appName, void *heapMem);
virtual ~GameApp();
virtual void draw() { return; };
virtual void calc() { return; };
virtual void reset() { return; };
virtual void draw() {};
virtual void calc() {};
virtual void reset() {};
JKRHeap *getHeap() { return mHeap; }
protected:
JKRHeap *mHeap;
void *mSequenceHeap; // this is null for next to every App, except for MovieApp
JKRHeap *mHeap; // 4
void *mHeapMem; // 8
};
#endif

View File

@ -25,7 +25,7 @@ public:
virtual void setAnmProc() = 0;
virtual void frameProc() = 0;
bool tstFlgAnmStop() const { mFlags & 1; }
bool tstFlgAnmStop() const { return mFlags & 1; }
u8 mFlags; // 4
u8 mMaxAnmNo; // 5

View File

@ -105,36 +105,36 @@ public:
void setAllCheckKartHitFlag() { mKartHitFlags = 0xffffffff; }
// Vtable
virtual ~GeographyObj() {} // 0x801b48cc, TODO?
virtual void loadmodel(J3DModelData *modelData); // 0x801b4c28, TODO
virtual void loadAnimation() {} // 0x801b4c74 // 0x801b4c74
virtual ShadowModel::ShadowKind getShadowKind() const { return ShadowModel::cShadowKind_Geo; }; // 0x801b4c78
virtual void createModel(JKRSolidHeap *heap, u32) {} // 0x801b4c80, TODO
virtual void configAnimationMode() {} // 0x801b4ce8
virtual void createShadowModel(JKRSolidHeap *heap, u32); // 0x8022ab60
virtual void initByKind() {} // 0x801b4cec
virtual void reset() { resetObject(); } // 0x801d76ac
virtual void calc() = 0; // 0x0
virtual void update(); // 0x80229684
virtual void viewCalc(u32); // 0x802296d4
virtual void simpleDraw(u32); // 0x8022addc
virtual void setCurrentViewNo(u32); // 0x80229700
virtual u32 getMotorType() const { return 1; } // 0x801b4cf0, probably an Enum
virtual u32 getSoundID() const; // 0x8022a308, probably a define
virtual const char *getBmdFileName() { return nullptr; } // 0x801c59a8
virtual const char *getShadowBmdFileName() { return nullptr; } // 0x801b4cf8
virtual u32 getJ3DModelDataTevStageNum() const { return 0x20000; } // 0x801b4d00
virtual void createColModel(J3DModelData *); // 0x8022ab5c
virtual void createBoundsSphere(J3DModelData *); // 0x8022a498
virtual void *getAnmTbl() { return nullptr; } // 0x801b4d08
virtual u32 getSizeAnmTbl() { return 0; } // 0x801b4d10
virtual GeoObjSupervisor *getSupervisor() { return nullptr; } // 0x801b4d18
virtual void getItemThrowDirPow(JGeometry::TVec3f *, f32 *, const ItemObj &); // 0x8022af8c
virtual void getKartThrowDirPow(JGeometry::TVec3f *, f32 *, int); // 0x8022af90
virtual void makeSharedDL() {} // 0x801b4d20, TODO
virtual void doKartColCallBack(int); // 0x8022ace8
virtual void initClassCreateNum(); // 0x801b4d5c
virtual void setModelMatrixAndScale(); // 0x802297e0
virtual ~GeographyObj() {} // 8, TODO?
virtual void loadmodel(J3DModelData *modelData); // C, TODO
virtual void loadAnimation() {} // 10 // 0x801b4c74
virtual ShadowModel::ShadowKind getShadowKind() const { return ShadowModel::cShadowKind_Geo; }; // 14
virtual void createModel(JKRSolidHeap *heap, u32) {} // 18, TODO
virtual void configAnimationMode() {} // 1C
virtual void createShadowModel(JKRSolidHeap *heap, u32); // 20
virtual void initByKind() {} // 24
virtual void reset() { resetObject(); } // 28
virtual void calc() = 0; // 2C
virtual void update(); // 30
virtual void viewCalc(u32); // 34
virtual void simpleDraw(u32); // 38
virtual void setCurrentViewNo(u32); // 3C
virtual u32 getMotorType() const { return 1; } // 40, probably an Enum
virtual u32 getSoundID() const; // 44, probably a define
virtual const char *getBmdFileName() { return nullptr; } // 48
virtual const char *getShadowBmdFileName() { return nullptr; } // 4C
virtual u32 getJ3DModelDataTevStageNum() const { return 0x20000; } // 50
virtual void createColModel(J3DModelData *); // 54
virtual void createBoundsSphere(J3DModelData *); // 58
virtual void *getAnmTbl() { return nullptr; } // 5C
virtual u32 getSizeAnmTbl() { return 0; } // 60
virtual GeoObjSupervisor *getSupervisor() { return nullptr; } // 64
virtual void getItemThrowDirPow(JGeometry::TVec3f *, f32 *, const ItemObj &); // 68
virtual void getKartThrowDirPow(JGeometry::TVec3f *, f32 *, int); // 6C
virtual void makeSharedDL() {} // 70, TODO
virtual void doKartColCallBack(int); // 74
virtual void initClassCreateNum(); // 78
virtual void setModelMatrixAndScale(); // 7C
protected:
JGeometry::TVec3f mPos; // 04
JGeometry::TPos3f mRotMtx; // 10
@ -156,4 +156,12 @@ protected:
u8 _134[0x14c - 0x134]; //
}; // Size: 0x14c
class TMapObjHioNode : public GeographyObj
{
public:
TMapObjHioNode(u32 id) : GeographyObj(id) {}
TMapObjHioNode(const CrsData::SObject &rObj) : GeographyObj(rObj) {}
virtual ~TMapObjHioNode();
};
#endif

View File

@ -0,0 +1,41 @@
#ifndef ANMPLAYER_H
#define ANMPLAYER_H
#include "Osako/ResMgr.h"
#include "Sato/AnmController.h"
class TAnmInfo
{
public:
const char *mBckName; // 0
AnmControlTrans *mTransAnm; // 4
J3DMtxCalc *mCalcAnm; // 8
int mAnmCnt; // C
bool mHasBlendColor; // 10
}; // Size: 0x14
class TAnmPlayer
{
public:
TAnmPlayer(); // 0x80297d2c
virtual ~TAnmPlayer(); // 0x80297d50
static void resetAnimations(TAnmInfo *, u8); // 0x80297d98
static void loadAnimations(TAnmInfo *, u8, J3DModelData *, ResMgr::ArchiveId); // 0x80297dd0
static void registAnimations(AnmController *, ExModel *, TAnmInfo *, u8); // 0x80297f14
void init(AnmController *, TAnmInfo *, u8); // 0x80298090
void reset(); // 0x802980bc
void update(); // 0x80298248
void firstEndCheck(u8); // 0x80298604
void isCurAnmReachEnd(); // 0x802986c0
void checkFrameEnd(); // 0x8029878c
void isFitBlendFrame(); // 0x802988e4
void isGoArroundLoop(); // 0x80298ab0
int _4;
int _8;
u8 _c;
u8 _d;
u16 _e;
u8 _10;
}; // Size: 0x14
#endif // ANMPLAYER_H

View File

@ -3,34 +3,31 @@
#include "Sato/GeographyObj.h"
#include "Sato/StateObserver.h"
#include "Shiraiwa/JugemRodSignal.h"
// perhaps this could go in it's own file
// Inherited from GeographyObj, StateObserver and TAnmPlayer?
// Todo: GeographyObj -> TMapObjHioNode
class TJugem : GeographyObj, StateObserver
#include "Shiraiwa/JugemRodItem.h"
#include "Shiraiwa/AnmPlayer.h"
class TJugem : public TMapObjHioNode, public StateObserver
{
public:
TJugem();
void signalGo()
{
_0x250 = true;
mIsAbleStart = true;
setState(0);
};
bool isAbleStart(); /* {
return true;
}*/
bool isCallThree()
{
return !mJugemRod ? false : mJugemRod->isCallThree();
}
bool isAbleStart(); /* { return mIsAbleStart; }*/
bool isCallThree() { return !mJugemRod ? false : mJugemRod->isCallThree(); }
const JGeometry::TVec3f &getPosition() const { return mPos; }
int getSignalState();
u8 _0x158[0x250 - 0x158];
bool _0x250;
u8 _0x251[0x26c - 0x251];
TJugemRodSignal *mJugemRod;
};
u8 _0x158[0x250 - 0x158]; //
bool mIsAbleStart; // 250
u8 _0x251[0x26c - 0x251]; //
TJugemRodSignal *mJugemRod; // 270
u8 _274[0x27c - 0x274]; //
}; // Size: 0x27c
#endif

View File

@ -0,0 +1,89 @@
#ifndef JUGEMRODSIGNAL_H
#define JUGEMRODSIGNAL_H
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JGeometry.h"
#include "JSystem/J3D/J3DModel.h"
#include "JSystem/J3D/J3DAnmTevRegKey.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "Sato/GeographyObj.h"
#include "Shiraiwa/AnmPlayer.h"
// probably inherited from TJugemMain
class TJugemRodItem : public GeographyObj
{
public:
TJugemRodItem(u32 id) : GeographyObj(id) {}
virtual ~TJugemRodItem() {}
virtual void setPosition(const JGeometry::TVec3f &rPos) { mPos.set(rPos); } // 80
virtual void setRMtx(const JGeometry::TPos3f &rMtx) { mRotMtx.set(rMtx); } // 84
virtual void show() { mGeoObjFlag &= ~0x20; } // 88
virtual void hide() { mGeoObjFlag |= ~0x20; } // 8C
virtual void hideAll() { hide(); } // 90
virtual void changeAnimation(int) {} // 94
};
class TJugemRodSignal
{ // Autogenerated
public:
// Global
TJugemRodSignal(); // 0x80293558
~TJugemRodSignal(); // 0x80293630
void reset(); // 0x80293710
void loadAnimation(); // 0x802937e4
void getShadowBmdFileName(); // 0x80293864
void getBmdFileName(); // 0x8029386c
void createModel(JKRSolidHeap *, u32); // 0x80293894
void createColModel(J3DModelData *); // 0x802939ec
void calc(); // 0x802939f0
void createEmitter(JPABaseEmitter **, long, const char *); // 0x80293bbc
void startCountDown(); // 0x80293c60
void show(u8); // 0x80293c74
void update(); // 0x80293cac
void isAcceptEffect(); // 0x80293e74
// Inline/Unused
void getJointPos(JGeometry::TVec3f *, long);
void updatePosition(JPABaseEmitter **, long);
// Inline
bool isCallThree() { return _188 == scSignalInterval - 1; }
static const char *scRedParticleName; // 0x80415160
static const char *scGreenParticleName; // 0x80415164
static J3DAnmTevRegKey **sJugemRodSignalBrkAnm; // 0x80416da8
static s16 sRandomWait; // 0x80416dac
static int sLeftJointNo; // 0x80416db0
static int sMiddleJointNo; // 0x80416db4
static int sRightJointNo; // 0x80416db8
static const u8 scSignalInterval; // 0x8041c7d8
static const u8 scRandomLength; // UNUSED
u8 _00[0x188];
u32 _188;
}; // class JugemRodSignal
class TJugemRodPukuPuku
{
public:
TJugemRodPukuPuku();
~TJugemRodPukuPuku();
void reset();
void loadAnimation();
void createModel(JKRSolidHeap *, u32);
void show(u8);
void update();
void calc();
void setPosition(const JGeometry::TVec3<float> &);
void setRMtx(const JGeometry::TPos3f &);
void setCurrentViewNo(u32);
void nodeCallBack(J3DJoint *, int);
// Inline/Unused
void getCurMatrix(Mtx);
// void scCutFrame;
// void sAnmInfos_Puku_Demo2;
// void sAnmInfos_Puku_Demo3;
// void sDemoAnmStateTable;
};
#endif

View File

@ -1,72 +0,0 @@
#ifndef JUGEMRODSIGNAL_H
#define JUGEMRODSIGNAL_H
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JGeometry.h"
// probably inherited from TJugemMain
class TJugemRodSignal
{ // Autogenerated
public:
// Global
TJugemRodSignal(); // 0x80293558
~TJugemRodSignal(); // 0x80293630
void reset(); // 0x80293710
void loadAnimation(); // 0x802937e4
void getShadowBmdFileName(); // 0x80293864
void getBmdFileName(); // 0x8029386c
void createModel(JKRSolidHeap *, u32); // 0x80293894
// void createColModel(J3DModelData *); // 0x802939ec
void calc(); // 0x802939f0
// void createEmitter(JPABaseEmitter **, long, const char *); // 0x80293bbc
void startCountDown(); // 0x80293c60
void show(u8); // 0x80293c74
void update(); // 0x80293cac
void isAcceptEffect(); // 0x80293e74
// void scRedParticleName; // 0x80415160
// void scGreenParticleName; // 0x80415164
static void *sJugemRodSignalBrkAnm; // 0x80416da8
// void sRandomWait; // 0x80416dac
// void sLeftJointNo; // 0x80416db0
// void sMiddleJointNo; // 0x80416db4
// void sRightJointNo; // 0x80416db8
static const u8 scSignalInterval; // 0x8041c7d8
// Inline
bool isCallThree() {
return _188 == scSignalInterval -1;
}
// Inline/Unused
// void getJointPos(JGeometry::TVec3<float> *, long);
// void updatePosition(JPABaseEmitter **, long);
// void scRandomLength;
u8 _00[0x188];
u32 _188;
}; // class JugemRodSignal
class TJugemRodPukuPuku
{
public:
TJugemRodPukuPuku();
~TJugemRodPukuPuku();
void reset();
void loadAnimation();
void createModel(JKRSolidHeap *, u32);
void show(u8);
void update();
void calc();
void setPosition(const JGeometry::TVec3<float> &);
// void setRMtx(const JGeometry::TPosition3<JGeometry::TMatrix34<JGeometry::SMatrix34C<float>>> &);
void setCurrentViewNo(u32);
// void nodeCallBack(J3DJoint *, int);
// void sAnmInfos_Puku_Demo2;
// void sAnmInfos_Puku_Demo3;
// void sDemoAnmStateTable;
// Inline/Unused
// void JugemRodPukuPuku::getCurMatrix(Mtx *);
// void JugemRodPukuPuku::scCutFrame;
};
#endif

View File

@ -10,13 +10,7 @@
#include "types.h"
class TMapObjHioNode : public GeographyObj
{
public:
virtual ~TMapObjHioNode();
};
class TMapObjAntLion : public TMapObjHioNode, StateObserver
class TMapObjAntLion : public TMapObjHioNode, public StateObserver
{
public:
// Global

View File

@ -31,5 +31,6 @@ namespace SiUtil
// void initGX(JUtility::TColor);
// void getWaterHeight(JGeometry::TVec3f &);
// void searchNearKartCylinder(const JGeometry::TVec3f &, f32, f32);
}; // namespace SiUtil
}; // namespace SiUtil
#endif // SIUTIL_H

14
include/mathHelper.h Normal file
View File

@ -0,0 +1,14 @@
#ifndef MATHHELPER_H
#define MATHHELPER_H
#include <dolphin/mtx.h>
inline void QuaternionReset(Quaternion *pDest)
{
const Quaternion q = {0.0f, 0.0f, 0.0f, 1.0f};
*pDest = q;
}
#endif

View File

@ -15,7 +15,7 @@ namespace JASDvd
if (sThread != 0)
{
#line 32
JUT_CRITICAL_WARNING_F("%s", "JASDvd::createThread が2回呼び出されました");
JUT_CRITICAL_WARNING_F("%s", "JASDvd::createThread が2回呼び出されました");
return false;
}
sThread = new (JASDram, 0) JASTaskThread(threadPriority, msgCount, stackSize);

Some files were not shown because too many files have changed in this diff Show More