* Initial M3d Pass
* `m_bmdl` and `m_bline` left

---------

Co-authored-by: elijah-thomas774 <elijahthomas774@gmail.com>
Co-authored-by: Elijah Thomas <42302100+elijah-thomas774@users.noreply.github.com>
This commit is contained in:
robojumper
2024-09-12 22:36:34 +02:00
committed by GitHub
parent e2c4bb7be7
commit 1180e1f486
150 changed files with 5890 additions and 818 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ public:
public:
/* 80495fa0 */ FrmHeap(MEMiHeapHead *heapHead);
/* 80496060 */ static FrmHeap *create(void *block, size_t size, u16 attr);
/* 804962a0 */ void free(u32 flags);
/* 804962a0 */ void free(s32 flags);
/* 80496370 */ void recordState(u32 id); // non official for now
/* 80496380 */ void freeState(u32 id); // non official for now
};
+2 -2
View File
@@ -162,9 +162,9 @@ public:
} // namespace EGG
/* 80495a60 */ void *operator new(size_t, void *p);
/* 80495a70 */ void *operator new(size_t size, EGG::Heap *heap, int align);
/* 80495a70 */ void *operator new(size_t size, EGG::Heap *heap, int align = 4);
/* 80495a80 */ void *operator new(size_t size, EGG::Allocator *alloc);
/* 80495a90 */ void *operator new[](size_t size, int align);
/* 80495aa0 */ void *operator new[](size_t size, EGG::Heap *heap, int align);
/* 80495aa0 */ void *operator new[](size_t size, EGG::Heap *heap, int align = 4);
#endif
+3
View File
@@ -57,6 +57,9 @@ public:
}
};
template <class TVideo, class TDisplay, class TXfbManager, class TAudioManager, class TSceneManager, class TPerfView>
class TSystem : ConfigurationData {};
} // namespace EGG
#endif
+37
View File
@@ -0,0 +1,37 @@
#ifndef EGG_DRAWGX_H
#define EGG_DRAWGX_H
#include <common.h>
#include <egg/core/eggHeap.h>
#include <egg/gfx/eggTexture.h>
#include <egg/math/eggMatrix.h>
#include <rvl/GX.h>
namespace EGG {
class DrawGX {
public:
static void Initialize(Heap *);
static GXTexMapID GetTexMapDefault();
static void LoadTexture(const EGG::ResTIMG *, GXTexMapID);
// TODO MORE
/* static ?? s_DL */
static Matrix34f s_cameraMtx;
/* static ?? s_flag */
static GXColor BLACK;
static GXColor WHITE;
static GXColor GREEN;
static GXColor RED;
static GXColor BLUE;
};
} // namespace EGG
#endif
+28
View File
@@ -0,0 +1,28 @@
#ifndef EGG_FOG_H
#define EGG_FOG_H
#include <egg/prim/eggBinary.h>
#include <nw4r/types_nw4r.h>
namespace EGG {
// TODO: Add members
class FogManager : IBinary<FogManager> {
public:
FogManager(u16);
virtual ~FogManager();
virtual void SetBinaryInner(Bin &) override;
virtual void GetBinaryInner(Bin *) const override;
virtual size_t GetBinarySize() override;
virtual void SetBinaryInner(const Bin &, const Bin &, f32) override;
void Calc();
void CopyToG3D(nw4r::g3d::ScnRoot *) const;
/* 0x04 */ u8 mFlag;
/* 0x05 */ u8 TODO[0x10 - 0x05];
};
} // namespace EGG
#endif
+24
View File
@@ -0,0 +1,24 @@
#ifndef EGG_FRUSTUM_H
#define EGG_FRUSTUM_H
#include <common.h>
#include <nw4r/g3d/g3d_camera.h>
namespace EGG {
// TODO: Fill out more
class Frustum {
public:
enum CanvasMode {};
enum ProjectionType {};
u8 TODO_0x00[0x38];
// vt at 0x38
virtual ~Frustum();
virtual void SetProjectionGX() const;
virtual void CopyToG3D(nw4r::g3d::Camera) const;
};
} // namespace EGG
#endif
+30
View File
@@ -0,0 +1,30 @@
#ifndef EGG_GFXENGINE_H
#define EGG_GFXENGINE_H
#include <common.h>
#include <rvl/GX.h>
namespace EGG {
namespace GfxEngine {
struct Configuration {
/* 0x00 */ u16 efbWidth;
/* 0x02 */ u16 efbHeight;
/* 0x04 */ GXColor clearColor;
/* 0x08 */ u32 field_0x08;
/* 0x0C */ u16 field_0x0C;
/* 0x0E */ u16 field_0x0E;
/* 0x10 */ u32 bufferSize;
/* 0x14 */ u16 field_0x14;
/* 0x16 */ u16 field_0x16;
/* 0x18 */ u8 UNK_0x18[4];
Configuration();
virtual ~Configuration() {}
};
} // namespace GfxEngine
} // namespace EGG
#endif
+53
View File
@@ -0,0 +1,53 @@
#ifndef EGG_LIGHT_H
#define EGG_LIGHT_H
#include <egg/prim/eggBinary.h>
#include <nw4r/types_nw4r.h>
namespace EGG {
// TODO: Fill out more
class LightTexture {
public:
static void initialize(u16 textureSize, Heap *pHeap);
};
// TODO: Fill out more
class LightTextureManager : public IBinary<LightTextureManager> {
public:
virtual ~LightTextureManager();
virtual void SetBinaryInner(Bin &) override;
virtual void GetBinaryInner(Bin *) const override;
virtual size_t GetBinarySize() override;
virtual void SetBinaryInner(const Bin &, const Bin &, f32) override;
void drawAndCaptureTexture(f32, f32, f32, f32);
};
// TODO: Fill out more
class LightManager : public IBinary<LightManager> {
public:
// vt at 0x00
LightManager(u32, u32, u8);
virtual ~LightManager();
virtual void SetBinaryInner(Bin &) override;
virtual void GetBinaryInner(Bin *) const override;
virtual size_t GetBinarySize() override;
virtual void SetBinaryInner(const Bin &, const Bin &, f32) override;
virtual void Reset();
virtual void Calc(nw4r::g3d::ScnRoot *);
virtual void CalcView(const nw4r::math::MTX34 &, u8, nw4r::g3d::ScnRoot *);
virtual void DoneDraw();
LightTextureManager *GetTextureMgr() const {
return mTextureMgr;
}
u8 TODO_0x04[0x14 - 0x04];
LightTextureManager *mTextureMgr;
u8 TODO_0x18[0x28 - 0x18];
};
} // namespace EGG
#endif
+27
View File
@@ -0,0 +1,27 @@
#ifndef EGG_SCREEN_H
#define EGG_SCREEN_H
#include <common.h>
#include <egg/gfx/eggFrustum.h>
namespace EGG {
// TODO: Fill out more
class Screen : public Frustum {
public:
Screen();
Screen(f32, f32, f32, f32, Screen *, CanvasMode);
virtual ~Screen();
virtual void SetProjectionGX() const override;
virtual void CopyToG3D(nw4r::g3d::Camera) const override;
static void Initialize(const u16 *, const u16 *, Screen *);
static void SetTVModeDefault();
u8 TODO_0x3C[0x88 - 0x3C];
};
} // namespace EGG
#endif
+45
View File
@@ -0,0 +1,45 @@
#ifndef EGG_STATE_GX_H
#define EGG_STATE_GX_H
#include <common.h>
#include <rvl/GX.h>
namespace EGG {
class StateGX {
public:
static void initialize(u16, u16, GXColor, GXPixelFmt);
static void frameInit();
static void textureInit(); // Guess for 804b4810
static void resetGX();
static void resetVtx();
static void resetColorChannel();
static void resetIndirect();
static void resetTexture();
static void resetTexGen();
static void resetTev();
static void resetPE();
static void resetGXCache();
static void GXSetPixelFmt(GXPixelFmt pixelFmt, GXZFmt16 zFmt);
static void invalidateTexAllGX();
static bool GXSetColorUpdate(bool);
static bool GXSetAlphaUpdate(bool);
static bool GXSetDither();
static void GXCopyTex();
static bool GXSetDstAlpha();
// Unk func here
static void GXSetProjection(Mtx44, int);
static void GXSetProjectionv(const f32 *);
static void GXSetViewport(f32, f32, f32, f32, f32, f32);
static void GZSetScissor(u32, u32, u32, u32);
static void GZSetScissorBoxOffset(s32, s32);
};
} // namespace EGG
#endif
+11
View File
@@ -0,0 +1,11 @@
#ifndef EGG_TEXTURE_H
#define EGG_TEXTURE_H
namespace EGG {
// TODO: Implement Members
struct ResTIMG {};
} // namespace EGG
#endif
+1
View File
@@ -127,6 +127,7 @@ struct Vector3s {
s16 x, y, z;
public:
Vector3s() {}
Vector3s(s16 sx, s16 sy, s16 sz) {
x = sx;
y = sy;
+23
View File
@@ -0,0 +1,23 @@
#ifndef EGG_BINARY_H
#define EGG_BINARY_H
template <class T>
class IBinary {
public:
class Bin {};
virtual void SetBinaryInner(Bin &) = 0;
virtual void GetBinaryInner(Bin *) const = 0;
virtual size_t GetBinarySize() = 0;
virtual void SetBinaryInner(const Bin &, const Bin &, f32) = 0;
static const char *GetBinaryType();
int GetVersion();
void GetBinary(void *) const;
void SetBinary(const void *);
void SetBinaryBlend(const void *, const void *, f32);
};
#endif