#ifndef _DOLPHIN_GXVERIFY #define _DOLPHIN_GXVERIFY #include typedef enum { GX_WARN_NONE, GX_WARN_SEVERE, GX_WARN_MEDIUM, GX_WARN_ALL, } GXWarningLevel; #ifdef _DEBUG extern void GXSetVerifyLevel(GXWarningLevel level); #else #define GXSetVerifyLevel(level) ((void)0) #endif typedef void (*GXVerifyCallback)(GXWarningLevel level, u32 id, const char* msg); typedef struct __GXVerifyData { GXVerifyCallback cb; // offset 0x0, size 0x4 GXWarningLevel verifyLevel; // offset 0x4, size 0x4 u32 xfRegs[80]; // offset 0x8, size 0x140 u32 xfMtx[256]; // offset 0x148, size 0x400 u32 xfNrm[96]; // offset 0x548, size 0x180 u32 xfDMtx[256]; // offset 0x6C8, size 0x400 u32 xfLight[128]; // offset 0xAC8, size 0x200 u32 rasRegs[256]; // offset 0xCC8, size 0x400 u8 xfRegsDirty[80]; // offset 0x10C8, size 0x50 u8 xfMtxDirty[256]; // offset 0x1118, size 0x100 u8 xfNrmDirty[96]; // offset 0x1218, size 0x60 u8 xfDMtxDirty[256]; // offset 0x1278, size 0x100 u8 xfLightDirty[128]; // offset 0x1378, size 0x80 } GXVerifyData; #ifdef _DEBUG GXVerifyCallback GXSetVerifyCallback(GXVerifyCallback cb); #else #define GXSetVerifyCallback(cb) ((GXVerifyCallback)0) #endif #ifdef __cplusplus } #endif #endif // _DOLPHIN_GXVERIFY