pureikyubu/Docs/RE/GXPrivate.h
ogamespec c21147ccff Cumulative changes all around project, regarding Stage 1
Docs: New TODO moved to EMU, old renamed to old_todo
Docs: Old coding style is deprecated (old_style.txt)
Docs: Removed mention about CubeDocumented and fixed old emails
RE: boot.s, proved first asm line (lis instruction parameter)
RE: Added PAL and NTSC Boot and IPL IDA files
RE: Some work on NTSC IPL (identified many lib calls, including OS, GX)
RE: Added EXI Bootrom descrambler by segher
RE: GXInit
RE: Internal GX lib structures (GXPrivate.h)
RE: More details on lomem (OS versions)
RE: OSInit and OS.c
RE: OSAlloc (heap allocator)
RE: Very first code of Metrowerk runtime (__start.c)
Docs: Added copy of http://gcdev.narod.ru
Source\Utils: Command processor (Cmd.c)
Source\Utils: File wrapper
Source\Utils: Gekko disasm cleaned up and ported to plain C
Source\Utils: Double-linked lists
Source\Utils: Ported old Profiler code
Source\Utils: String utils
2015-09-04 19:45:10 +03:00

107 lines
3.2 KiB
C

//
// Private GX library data
//
struct __GXData
{
vNumNot +0x00
u16 bpSentNot; // +0x02
vNum +0x04
vLim +0x06
cpEnable +0x08
cpStatus +0x0c
cpClr +0x10
vcdLo +0x14
vcdHi +0x18
u32 vatA[8]; // +0x1c
u32 vatB[8]; // +0x3c
u32 vatC[8]; // +0x5c
u32 lpSize; // +0x7c
matIdxA +0x80
matIdxB +0x84
indexBase +0x88
indexStride +0x98
ambColor +0xa8
matColor +0xb0
u32 suTs0[8]; // +0xb8
u32 suTs1[8]; // +0xd8
u32 suScis0; // +0xf8
u32 suScis1; // +0xfc
u32 tref[8]; // +0x100
u32 iref; // +0x120
u32 bpMask; // +0x124
IndTexScale0 +0x128
IndTexScale1 +0x12c
u32 tevc[16]; // +0x130
u32 teva[16]; // +0x170
u32 tevKsel[8]; // +0x1b0
u32 cmode0; // +0x1d0
u32 cmode1; // +0x1d4
u32 zmode; // +0x1d8
peCtrl +0x1dc
cpDispSrc +0x1e0
cpDispSize +0x1e4
cpDispStride +0x1e8
cpDisp +0x1ec
cpTexSrc +0x1f0
cpTexSize +0x1f4
cpTexStride +0x1f8
u32 cpTex; // +0x1fc
cpTexZ +0x200
u32 genMode; // +0x204
GXTexRegion TexRegions[8]; // +0x208
GXTexRegion TexRegionsCI[4]; // +0x288
u32 nextTexRgn; // +0x2c8
u32 nextTexRgnCI; // +0x2cc
GXTlutRegion TlutRegions[16+4]; // +0x2d0
texRegionCallback +0x410
tlutRegionCallback +0x414
nrmType +0x418
hasNrms +0x41c
hasBiNrms +0x41d
projType +0x420
projMtx +0x424
vpLeft +0x43c
vpTop +0x440
vpWd +0x444
vpHt +0x448
vpNearz +0x44c
vpFarz +0x450
fgRange +0x454
fgSideX +0x458
tImage0 +0x45c
tMode0 +0x47c
u32 texmapId[16]; // +0x49c
u32 tcsManEnab; // +0x4dc
u32 tevTcEnab; // +0x4e0
perf0 +0x4e4
perf1 +0x4e8
u32 perfSel; // +0x4ec
BOOL inDispList; // +0x4f0
BOOL dlSaveContext; // +0x4f1
BOOL dirtyVAT; // +0x4f2
u32 dirtyState; // +0x4f4
} gxData;
static __GXData gx;
//
// Verify state
//
struct __GXVerifyData
{
cb +0x00
verifyLevel +0x04
u32 xfRegs[0x5]; // +0x08
xfMtx +0x148
xfNrm +0x548
xfDMtx +0x6c8
xfLight +0xac8
u32 rasRegs[0x100]; // +0xcc8
BOOL xfRegsDirty[0x50]; // +0x10c8
xfMtxDirty +0x1118
xfNrmDirty +0x1218
xfDMtxDirty +0x1278
xfLightDirty +0x1378
} __gxVerif;