mirror of
https://github.com/emu-russia/pureikyubu.git
synced 2025-04-02 10:42:15 -04:00
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
107 lines
3.2 KiB
C
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;
|