Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
962e9c4
Start adding templated object creation functions for Geography Object…
MB60893 May 22, 2026
ed9bbf8
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 May 22, 2026
d39cd19
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 May 24, 2026
d9b2601
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 May 26, 2026
d69a5c1
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Jun 16, 2026
7bf7e18
GeoObjMgr - Add GeoStartLine
MB60893 Jul 22, 2026
8f86808
GeoObjMgr - Add GeoMarioFlower1
MB60893 Jul 22, 2026
ab5cced
Rename CrsData's `pathID` property to `mPathID` - discovered that `TM…
MB60893 Jul 22, 2026
de20132
GeoObjMgr - Implement majority of TMapObjDonkyRock.
MB60893 Jul 22, 2026
e8645af
GeoObjMgr - Implement TMapObjDonkyRockGen.
MB60893 Jul 22, 2026
0663448
GeoObjMgr - Implement TMapObjDonkyTree.
MB60893 Jul 22, 2026
ad23fef
Fix Coord3D function return types based on additional context from Ma…
MB60893 Jul 22, 2026
b7e6822
GeoObjMgr - Implement majority of TMapObjDossun.
MB60893 Jul 22, 2026
64afde7
GeoObjMgr - Add TMapObjWanwan, TMapObjWanwanChain and TMapObjWanwanPile.
MB60893 Jul 22, 2026
d896522
Add class accessors to Course.h for `mDirX`, `mDirY` and `mDirZ`. Not…
MB60893 Jul 22, 2026
6dcff51
Implement Coord3DUtil.
MB60893 Jul 22, 2026
fe401d2
GeoObjMgr - Implement majority of MapObjSkyShip.
MB60893 Jul 22, 2026
d472968
Update TKartThrower's class definition with `sObject` parameter - req…
MB60893 Jul 22, 2026
8a7576f
GeoObjMgr - Implement MapObjGeyser.
MB60893 Jul 22, 2026
ae4afc3
Implement SmallAnimalGen - used as a base for a few other functions r…
MB60893 Jul 22, 2026
ca10acd
GeoObjMgr - Implement majority of TMapObjSnowRock.
MB60893 Jul 22, 2026
0b1b57c
GeoObjMgr - Implement TestRollObj.
MB60893 Jul 22, 2026
5eb6b59
GeoObjMgr - Implement majority of TestString.
MB60893 Jul 23, 2026
09a9266
GeoObjMgr - Implement TMapObjFountain.
MB60893 Jul 23, 2026
5147860
GeoObjMgr - Implement majority of TMapObjHeyho.
MB60893 Jul 23, 2026
0ac2fe7
GeoObjMgr - Implement MapObjWluArrow.
MB60893 Jul 23, 2026
80cc766
GeoObjMgr - Implement TMapObjSnowMan.
MB60893 Jul 23, 2026
a9c6698
GeoObjMgr - Add TMapObjIceBlock.
MB60893 Jul 23, 2026
6492904
GeoObjMgr - Implement TMapObjNoMove.
MB60893 Jul 23, 2026
89d23fd
GeoObjMgr - Implement TMapObjSun.
MB60893 Jul 23, 2026
9988897
GeoObjMgr - Implement TMapObjBubble.
MB60893 Jul 23, 2026
46027b5
Set proper Update JPEffectMgr::createEmtCameraClip() function signatu…
MB60893 Jul 23, 2026
4a3e5b1
GeoObjMgr - Implement TMapObjPeachTree.
MB60893 Jul 23, 2026
bf6d73e
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Jul 25, 2026
0a7008d
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Jul 29, 2026
0f0037d
Minor fixes for some MapObj Headers and a few minor code fixes.
MB60893 Jul 30, 2026
e327114
GeoObjMgr - Implement TMapObjNossie.
MB60893 Jul 30, 2026
6e130e8
GeoObjMgr - Implement TMapObjDemoObj.
MB60893 Jul 30, 2026
7064b45
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Aug 2, 2026
305c4c0
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Aug 3, 2026
f5c073a
GeoObjMgr - Implement majority of TMapObjPoihana.
MB60893 Aug 4, 2026
007b64e
GeoObjMgr - Implement TMapObjWall.
MB60893 Aug 4, 2026
3748f13
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Aug 5, 2026
3d0e8d3
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Aug 5, 2026
569ccf2
GeoObjMgr - Implement TMapObjYoshiHeli.
MB60893 Aug 6, 2026
8ac9991
GeoObjMgr - Implement TMapObjKpGear.
MB60893 Aug 7, 2026
4bf3e8d
GeoObjMgr - Implement TMapObjVentilator.
MB60893 Aug 9, 2026
9c971a5
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Aug 9, 2026
34720dd
GeoObjMgr - Implement majority of TMapObjAntLion.
MB60893 Aug 9, 2026
2bb8ada
GeoObjMgr - Implement majority of TMapObjSanbo.
MB60893 Aug 9, 2026
3348836
GeoObjMgr - Implement TMapObjPakkun.
MB60893 Aug 14, 2026
63d213e
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Aug 14, 2026
f29a30c
Implement MapObjDesun.
MB60893 Aug 15, 2026
a05ef5d
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Aug 19, 2026
fcf3e27
GeoObjMgr - Implement TMapObjSandPillar.
MB60893 Aug 19, 2026
f57b54e
GeoObjMgr - Implement TMapObjFerriswheel.
MB60893 Aug 23, 2026
3e0e5a8
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Sep 2, 2026
ba32315
Update Coord3DUtil class member names.
MB60893 Sep 13, 2026
8a14042
GeoObjMgr - Implement TMapObjMoveItemBox.
MB60893 Sep 13, 2026
0218289
Implement unused functions in Coord3DUtil.
MB60893 Sep 14, 2026
f5adf35
GeoObjMgr - Implement majority of Coord3D.
MB60893 Sep 14, 2026
f7f5cd8
Add missing inline/unused function for GeoCar.
MB60893 Sep 14, 2026
16b6708
Implement missing inline/unused functions for MapObjBubble.
MB60893 Sep 14, 2026
e628968
Implement missing unused/inline functions for MapObjDemoObj.
MB60893 Sep 14, 2026
3c36500
Fix order of unused/inline functions for MapObjDonkyRock.
MB60893 Sep 14, 2026
d061cd4
Fix weak function references for MapObjDonkyRockGen.
MB60893 Sep 14, 2026
63ea2f1
Fix order of unused/inline functions for MapObjDonkyTree.
MB60893 Sep 14, 2026
7642e04
Implement missing unused/inline functions for MapObjDossun and fix or…
MB60893 Sep 14, 2026
63af7df
Fix MapObjBubble Header
MB60893 Sep 14, 2026
9126110
Implement missing unused/inline functions for MapObjHeyho.
MB60893 Sep 14, 2026
a80e956
Fix missing unused/inline functions for MapObjNoMove and fix ordering.
MB60893 Sep 15, 2026
033093e
Fix ordering of unused/inline functions for MapObjNossie.
MB60893 Sep 15, 2026
0cd823b
Implement missing unused/inline functions for MapObjPoihana and fix o…
MB60893 Sep 15, 2026
d5540f5
Implement missing unused/inline functions for MapObjSkyShip, fix orde…
MB60893 Sep 15, 2026
c9efe2a
Implement missing unused/inline functions for MapObjSnowRock and fix …
MB60893 Sep 15, 2026
788a0b2
Implement missing unused/inline functions for SmallAnimalGen and fix …
MB60893 Sep 15, 2026
4926ad8
Implement missing unused/inline functions for TestString and fix orde…
MB60893 Sep 15, 2026
63ef7eb
Implement missing unused/inline functions for MapObjGeyser and fix or…
MB60893 Sep 15, 2026
4e8d09b
GeoObjMgr - Implement TMapObjMare.
MB60893 Sep 15, 2026
c236570
GeoObjMgr - Implement TMapObjMonte, and fix class visibililty of MapO…
MB60893 Sep 16, 2026
153fef9
Fix `MapObjMoveItemBox` class members (moved base class members to `M…
MB60893 Sep 28, 2026
0a1f315
Fix `MapObjMare` and `MapObjMonte` - missing class members identified…
MB60893 Sep 28, 2026
e7aed0c
Merge branch 'doldecomp:main' into GeoObjMgr-Templates
MB60893 Oct 6, 2026
d10691d
GeoObjMgr - Implement majority of TMapObjAwardItemBox. Note there are…
MB60893 Oct 6, 2026
a5d5518
GeoObjMgr - Implement TMapObjFireObj, TMapObjFireBar, and TMapObjKpFire.
MB60893 Oct 11, 2026
4a41ff3
Fix `TQuat4::setRotate` (credit to @SwareJonge for the fix!)
MB60893 Oct 11, 2026
5c8f065
GeoObjMgr - Implement MapObjHanabi.
MB60893 Oct 11, 2026
b2b2432
GeoObjMgr - Implement TMapObjMeteor.
MB60893 Oct 19, 2026
6a85b0b
GeoObjMgr - Implement TMapObjJetCoaster.
MB60893 Oct 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions include/JSystem/JGeometry/Quat.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,10 @@ namespace JGeometry {

void setRotate(const TVec3f& pVec, f32 pAngle)
{
this->xyz().scale(sinf(pAngle * 0.5f), pVec);
this->w = cosf(pAngle * 0.5f);
const f32 s = sinf(pAngle * 0.5f);
this->xyz().scale(s, pVec);
const f32 c = cosf(pAngle * 0.5f);
this->w = c;
}

void setRotate(const TVec3f& from, const TVec3f& to)
Expand Down
4 changes: 4 additions & 0 deletions include/Kaneshige/Course/Course.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,10 @@ class Course

f32 getGroundThickness() const { return sGndThickness; }

JGeometry::TVec3f *getDirZ() { return &mDirZ; };
JGeometry::TVec3f *getDirY() { return &mDirY; };
JGeometry::TVec3f *getDirX() { return &mDirX; };

private: // add all documented stuff from Ghidra
static u16 sDrawAreaModel;
static bool sForceDebugFogSetting;
Expand Down
2 changes: 1 addition & 1 deletion include/Kaneshige/Course/CrsData.h
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ class CrsData
JGeometry::TVec3<s16> zNorm; // 18
JGeometry::TVec3<s16> yNorm; // 1e
u16 objID;
u16 pathID; // 26
u16 mPathID; // 26
u16 _28; //
u16 pointIdx; // 2a
struct {
Expand Down
5 changes: 2 additions & 3 deletions include/Kaneshige/Objects/GeoStartLine.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@

#include "Sato/GeographyObj.h"

class GeoStartLine : public GeographyObj
{
// Global
class GeoStartLine : public GeographyObj {
public:
GeoStartLine(); // 0x801b4860
virtual ~GeoStartLine() {} // 0x801b4bd0
virtual void reset(); // 0x801b49c8
Expand Down
7 changes: 6 additions & 1 deletion include/Kaneshige/RaceMgr.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef RACEMGR_H
#define RACEMGR_H

#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JUtility/TColor.h"
#include "Kaneshige/Blurscreen.h"
#include "Kaneshige/KartInfo.h"
Expand Down Expand Up @@ -229,6 +230,10 @@ class RaceMgr : public JKRDisposer
return mBestTotalTimes[recID];
}

JKRArchive *getAwardArc() {
return (JKRArchive *)mAwardArc;
}

public:
RaceDirector *mRaceDirector;
RaceDrawer *mRaceDrawer;
Expand All @@ -252,7 +257,7 @@ class RaceMgr : public JKRDisposer
KartLoader *mKartLoader[8];
Award2D *mAward2D;
StaffRoll2D *mStaffRoll2D;
void *mAwardArc;
void *mAwardArc; // Should this be declared a JKRArchive...?
RaceTime mBestLapTime;
RaceTime mBestTotalTimes[5];
s16 mEvents;
Expand Down
7 changes: 5 additions & 2 deletions include/Sato/GeographyObj.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class GeographyObj

void setItemColReaction(u8 p1, u8 p2) { mReaction.setFlg(p1, p2); }

bool IsPathMove() const { return mObjData->pathID != 0xffff; }
bool IsPathMove() const { return mObjData->mPathID != 0xffff; }

template<class T>
static T *New(const CrsData::SObject &object) { return new T(object); }
Expand Down Expand Up @@ -149,13 +149,16 @@ class GeographyObj
void clrAllCheckKartHitFlag() { mCheckKartHitFlags = 0; }
void clrAllIsHitKartFlg() { mIsHitKartFlags = 0; }

void setObjFlagCheckItemHitting() { mGeoObjFlag |= 2; }
void setCheckKartHitFlag(int kartId) { mCheckKartHitFlags |= (1 << kartId); }
void setObjFlagCheckGeoHitting() { mGeoObjFlag |= 1; }
void setObjFlagCheckItemHitting() { mGeoObjFlag |= 2; }
void setObjFlagSimpleDraw() { mObjFlag |= 1; }
void setObjFlagMainResource() { mObjFlag |= 2; }
void setObjFlagNorm() { mObjFlag |= 4; }
void setObjFlagShadow() { mObjFlag |= 8; }
void setObjFlagNoCollision() { mObjFlag |= 0x80; }
void setObjFlagLODBias() { mObjFlag |= 0x100; }
void setObjFlagAwardCup() { mObjFlag |= 0x400; }
void setObjFlagHidding() { mGeoObjFlag |= 0x20; }

void setAllCheckKartHitFlag() { mCheckKartHitFlags = 0xffffffff; }
Expand Down
8 changes: 7 additions & 1 deletion include/Sato/GeographyObjMgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class GeographyObjManager : JKRDisposer
ExGeographyObj *search_boundSp(const JGeometry::TVec3f &pos, f32);

GeographyObj *createSubObj(u32 id);
GeographyObj *createGenSubObj(u32 id);
GeographyObj *createPrevDrawSubObj(u32 id);

f32 getKartHitDepthNormalObj(int kart_index) const { return mKartHitDepth[kart_index]; }
Expand All @@ -68,6 +69,8 @@ class GeographyObjManager : JKRDisposer
return &mKartHitRefVec[myNum];
}

void getKartCollidePosRadius(JGeometry::TVec3f &, f32 &, int);

static GeographyObjManager *gMgr;

u8 _18[0x10]; // 18
Expand All @@ -78,7 +81,10 @@ class GeographyObjManager : JKRDisposer
bool mKartHitItemBox[8]; // 348
u8 _350[0xAC]; // 350
TJugem *mJugem[4]; // 3FC
u8 _40C[0x491 - 0x40C]; // 40C
u8 _40C[0x410 - 0x40C]; // 40C
JGeometry::TVec3f mKartCollidePos[8]; // 410
f32 mKartCollideRadius[8]; // 470
u8 _490; // 490
bool mIsBalloonBattle; // 491
bool mIsBombBattle; // 492
bool mIsRobberyBattle; // 493
Expand Down
1 change: 1 addition & 0 deletions include/Sato/ItemObj.h
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ class ItemObj
void setTransfer1() { mTransferFlags |= 1; }
void clrTransferPartner() { mTransferFlags &= ~0x200; }
void setTransferPartner() { mTransferFlags |= 0x200; }
bool tstTransfer2() { return mTransferFlags & 0x2; }

// Inline/Unused
void combMtxOn();
Expand Down
2 changes: 1 addition & 1 deletion include/Sato/JPEffectMgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class JPEffectMgr
void create_forMenu(); // 0x8023038c
JPABaseEmitter *createEmt(u16, const JGeometry::TVec3f &); // 0x8023050c
JPABaseEmitter *createEmt(const char *, const JGeometry::TVec3f &); // 0x80230544
void createEmtCameraClip(const char *, const JGeometry::TVec3f &); // 0x80230590
JPABaseEmitter *createEmtCameraClip(const char *, const JGeometry::TVec3f &); // 0x80230590
JPABaseEmitter *createEmt2D(const char *, const JGeometry::TVec3f &); // 0x80230600
JPABaseEmitter *createEmt(const char *, const JGeometry::TVec3f &, Mtx); // 0x8023064c
void createEmtThunder(const char *, const JGeometry::TVec3f &); // 0x802306c0
Expand Down
1 change: 1 addition & 0 deletions include/Sato/Objects/GeoRFlower.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class GeoRFlower : public GeographyObj { // Autogenerated


class GeoMarioFlower1 : public GeographyObj {
public:
GeoMarioFlower1(const CrsData::SObject &);
~GeoMarioFlower1() {}
void reset();
Expand Down
17 changes: 16 additions & 1 deletion include/Sato/StringObj.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,21 @@ class StringNodeManager {
_3c = val;
}


void link_set_30(u32 num, bool val) {
#line 112
JUT_MINMAX_ASSERT(0, num, mStrNodeList.getNumLinks());
mStrNodeList.getNth(num)->getObject()->_30 = val;
}

void setNodeLength(u32 num, f32 val) {
#line 202
JUT_MINMAX_ASSERT(0, num, mStrNodeList.getNumLinks());
mStrNodeList.getNth(num)->getObject()->_34 = val;
}



// VTBL: 0x0
JSUList<StringNode> mStrNodeList; // 0x4
f32 _10;
Expand All @@ -108,7 +123,7 @@ class StringNodeManager {
f32 _1c;
f32 _20; // Scaling multiplier of some sort.
f32 _24; // Something related to distance calculations...?
Vec _28;
JGeometry::TVec3f _28;
StringNode *_34;
GameAudio::ObjectSoundMgr *mObjSoundMgr; // 0x38
u32 _3c;
Expand Down
43 changes: 25 additions & 18 deletions include/Shiraiwa/Coord3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ class TFreeMove {
void setTargetPos(const JGeometry::TVec3f &, f32, f32);
void setTargetOffset(const JGeometry::TVec3f &, f32, f32);
void setTargetOffsetUniform(const JGeometry::TVec3f &, int);
void update();
void checkReachTarget();
void velUpdate(JGeometry::TVec3f &, f32, f32);
bool update();
bool checkReachTarget();
bool velUpdate(JGeometry::TVec3f &, f32, f32);
void TPathMove(const CrsData::SObject *);

// Inline/Unused
Expand All @@ -35,8 +35,12 @@ class TFreeMove {
_18 = false;
}

void setUnknown24(f32 value) {
_24 = value;
}

private:
JGeometry::TVec3f mTagret;
JGeometry::TVec3f mTarget;
JGeometry::TVec3f *mpPos;
JGeometry::TVec3f *mpVel;
bool _18;
Expand All @@ -49,30 +53,33 @@ class TPathMove {
public:
TPathMove(const CrsData::SObject *);
virtual ~TPathMove() {}
void update();
u8 update();
void init(JGeometry::TVec3f *, JGeometry::TVec3f *);
void reset();
void setTargetNode();
void setTargetNode(u16, f32, f32);
void getNodePosition(JGeometry::TVec3f *, u16);
void getNextNode();
u16 getNextNode();
void updatePos();
void checkReachTarget();
bool checkReachTarget();

// Inline/Unused
void setTargetNode(f32, f32);
void setTargetNode(u16);
void getNodeDir(u16, JGeometry::TVec3f *);

protected:
const CrsData::SObject *mpObj; // 04
s16 _8; //
JGeometry::TVec3f *mpPos; // 0c
JGeometry::TVec3f *mpVel; // 10
f32 _14;
f32 _18;
bool _1c;
PLACEHOLDER_BYTES(0x1d, 0x24);
public:
const CrsData::SObject *mpObj; // 0x4
u16 _8; // 0x8
s8 _a; // 0xa
JGeometry::TVec3f *mpPos; // 0xc
JGeometry::TVec3f *mpVel; // 0x10
f32 _14; // 0x14
f32 _18; // 0x18
bool _1c; // 0x1c
bool _1d; // 0x1d + 2 bytes padding
f32 _20; // 0x20
//PLACEHOLDER_BYTES(0x1d, 0x24);
}; // Size: 0x24

class TFreeRotate {
Expand All @@ -81,7 +88,7 @@ class TFreeRotate {
virtual ~TFreeRotate() {}
void init(JGeometry::TPos3f *);
void setTargetVec(const JGeometry::TVec3f &, const JGeometry::TVec3f &, f32, f32, f32);
void setTargetVec(const JGeometry::TVec3f &, f32, f32, f32, u8);
void setTargetVec(const JGeometry::TVec3f &, f32, f32, f32, unsigned char);
void setTargetQuat(const JGeometry::TQuat4f &, f32, f32, f32);
bool update();
void angleUpdate();
Expand Down Expand Up @@ -109,5 +116,5 @@ class TFreeRotate {
f32 mTarget;
bool _3c;
};

#endif // COORD3D_H
Loading
Loading