SSBM Decomp
Loading...
Searching...
No Matches
__gx.h
Go to the documentation of this file.
1#ifndef __DOLPHIN___GX_H_
2#define __DOLPHIN___GX_H_
3
6#include <dolphin/types.h>
7
8#define GX_WRITE_U8(ub) GXWGFifo.u8 = (u8) (ub)
9
10#define GX_WRITE_U16(us) GXWGFifo.u16 = (u16) (us)
11
12#define GX_WRITE_U32(ui) GXWGFifo.u32 = (u32) (ui)
13
14#define GX_WRITE_F32(f) GXWGFifo.f32 = (f32) (f);
15
16#if DEBUG
17#define VERIF_XF_REG(addr, value) \
18 do { \
19 s32 regAddr = (addr); \
20 if (regAddr >= 0 && regAddr < 0x50) { \
21 __gxVerif->xfRegs[regAddr] = (value); \
22 __gxVerif->xfRegsDirty[regAddr] = 1; \
23 } \
24 } while (0)
25#define VERIF_XF_REG_alt(addr, value) \
26 do { \
27 s32 xfAddr = (addr); \
28 if (xfAddr >= 0 && xfAddr < 0x50) { \
29 __gxVerif->xfRegs[xfAddr] = (value); \
30 __gxVerif->xfRegsDirty[xfAddr] = 1; \
31 } \
32 } while (0)
33#define VERIF_RAS_REG(value) \
34 (__gxVerif->rasRegs[((value) & 0xFF000000) >> 24] = value)
35#define VERIF_MTXLIGHT(addr, data) \
36 do { \
37 s32 xfAddr; \
38 if (addr < 0x400U) { \
39 __gxVerif->xfMtx[addr] = data; \
40 __gxVerif->xfMtxDirty[addr] = 1; \
41 } else if (addr < 0x500U) { \
42 xfAddr = addr - 0x400; \
43 __gxVerif->xfNrm[xfAddr] = data; \
44 __gxVerif->xfNrmDirty[xfAddr] = 1; \
45 } else if (addr < 0x600U) { \
46 xfAddr = addr - 0x500; \
47 __gxVerif->xfDMtx[xfAddr] = data; \
48 __gxVerif->xfDMtxDirty[xfAddr] = 1; \
49 } else if (addr < 0x680U) { \
50 xfAddr = addr - 0x600; \
51 __gxVerif->xfLight[xfAddr] = data; \
52 __gxVerif->xfLightDirty[xfAddr] = 1; \
53 } else { \
54 xfAddr = addr - 0x1000; \
55 if ((xfAddr >= 0) && (xfAddr < 0x50)) { \
56 __gxVerif->xfRegs[xfAddr] = data; \
57 __gxVerif->xfRegsDirty[xfAddr] = 1; \
58 } \
59 } \
60 } while (0)
61#else
62#define VERIF_XF_REG(addr, value) ((void) 0)
63#define VERIF_XF_REG_alt(addr, value) ((void) 0)
64#define VERIF_RAS_REG(value) ((void) 0)
65#endif
66
67#define GX_WRITE_XF_REG(addr, value) \
68 do { \
69 GX_WRITE_U8(0x10); \
70 GX_WRITE_U32(0x1000 + (addr)); \
71 GX_WRITE_U32(value); \
72 VERIF_XF_REG(addr, value); \
73 } while (0)
74
75#if DEBUG
76#define GX_WRITE_XF_REG_2(addr, value) \
77 do { \
78 u32 xfData = (value); \
79 &xfData; \
80 GX_WRITE_U32(value); \
81 VERIF_XF_REG_alt(addr, xfData); \
82 } while (0)
83#define GX_WRITE_XF_REG_F(addr, value) \
84 do { \
85 f32 xfData = (value); \
86 GX_WRITE_F32(value); \
87 VERIF_XF_REG_alt(addr, *(u32*) &xfData); \
88 } while (0)
89#else
90#define GX_WRITE_XF_REG_2(addr, value) \
91 do { \
92 GX_WRITE_U32(value); \
93 } while (0)
94#define GX_WRITE_XF_REG_F(addr, value) \
95 do { \
96 GX_WRITE_F32(value); \
97 } while (0)
98#endif
99
100#define GX_WRITE_RAS_REG(value) \
101 do { \
102 GX_WRITE_U8(0x61); \
103 GX_WRITE_U32(value); \
104 VERIF_RAS_REG(value); \
105 } while (0)
106
107#define GX_WRITE_SOME_REG2(a, b, c, addr) \
108 do { \
109 long regAddr; \
110 GX_WRITE_U8(a); \
111 GX_WRITE_U8(b); \
112 GX_WRITE_U32(c); \
113 regAddr = addr; \
114 if (regAddr >= 0 && regAddr < 4) { \
115 gx->indexBase[regAddr] = c; \
116 } \
117 } while (0)
118#define GX_WRITE_SOME_REG3(a, b, c, addr) \
119 do { \
120 long regAddr; \
121 GX_WRITE_U8(a); \
122 GX_WRITE_U8(b); \
123 GX_WRITE_U32(c); \
124 regAddr = addr; \
125 if (regAddr >= 0 && regAddr < 4) { \
126 gx->indexStride[regAddr] = c; \
127 } \
128 } while (0)
129#define GX_WRITE_SOME_REG4(a, b, c, addr) \
130 do { \
131 long regAddr; \
132 GX_WRITE_U8(a); \
133 GX_WRITE_U8(b); \
134 GX_WRITE_U32(c); \
135 regAddr = addr; \
136 } while (0)
137
138#define GET_REG_FIELD(reg, size, shift) \
139 ((int) ((reg) >> (shift)) & ((1 << (size)) - 1))
140
141#define SET_REG_FIELD(line, reg, size, shift, val) \
142 do { \
143 ASSERTMSGLINE(line, ((u32) (val) & ~((1 << (size)) - 1)) == 0, \
144 "GX Internal: Register field out of range"); \
145 (reg) = ((u32) (reg) & ~(((1 << (size)) - 1) << (shift))) | \
146 ((u32) (val) << (shift)); \
147 } while (0)
148
149#define CHECK_GXBEGIN(line, name) \
150 ASSERTMSGLINE(line, !__GXinBegin, \
151 "'" name "' is not allowed between GXBegin/GXEnd")
152
153/* GXAttr.c */
154
155void __GXSetVCD(void);
156void __GXSetVAT(void);
157
158/* GXBump.c */
159
160void __GXUpdateBPMask(void);
161void __GXFlushTextureState(void);
162
163/* GXFifo.c */
164
165// GXFifoObj private data
178
179void __GXSaveCPUFifoAux(struct __GXFifoObj* realFifo);
180void __GXFifoInit(void);
181void __GXInsaneWatermark(void);
182void __GXCleanGPFifo(void);
183
184/* GXGeometry.c */
185
186void __GXSetDirtyState(void);
187void __GXSendFlushPrim(void);
188void __GXSetGenMode(void);
189
190/* GXInit.c */
191
193 // total size: 0x4F4
194 unsigned short unk; // offset 0x0, size 0x2
195 unsigned short bpSent; // offset 0x2, size 0x2
196 unsigned short vNum; // offset 0x4, size 0x2
197 unsigned short vLim; // offset 0x6, size 0x2
198 unsigned long cpEnable; // offset 0x8, size 0x4
199 unsigned long cpStatus; // offset 0xC, size 0x4
200 unsigned long cpClr; // offset 0x10, size 0x4
201 unsigned long vcdLo; // offset 0x14, size 0x4
202 unsigned long vcdHi; // offset 0x18, size 0x4
203 unsigned long vatA[8]; // offset 0x1C, size 0x20
204 unsigned long vatB[8]; // offset 0x3C, size 0x20
205 unsigned long vatC[8]; // offset 0x5C, size 0x20
206 unsigned long lpSize; // offset 0x7C, size 0x4
207 unsigned long matIdxA; // offset 0x80, size 0x4
208 unsigned long matIdxB; // offset 0x84, size 0x4
209 unsigned long indexBase[4]; // offset 0x88, size 0x10
210 unsigned long indexStride[4]; // offset 0x98, size 0x10
211 unsigned long ambColor[2]; // offset 0xA8, size 0x8
212 unsigned long matColor[2]; // offset 0xB0, size 0x8
213 unsigned long suTs0[8]; // offset 0xB8, size 0x20
214 unsigned long suTs1[8]; // offset 0xD8, size 0x20
215 unsigned long suScis0; // offset 0xF8, size 0x4
216 unsigned long suScis1; // offset 0xFC, size 0x4
217 unsigned long tref[8]; // offset 0x100, size 0x20
218 unsigned long iref; // offset 0x120, size 0x4
219 unsigned long bpMask; // offset 0x124, size 0x4
220 unsigned long IndTexScale0; // offset 0x128, size 0x4
221 unsigned long IndTexScale1; // offset 0x12C, size 0x4
222 unsigned long tevc[16]; // offset 0x130, size 0x40
223 unsigned long teva[16]; // offset 0x170, size 0x40
224 unsigned long tevKsel[8]; // offset 0x1B0, size 0x20
225 unsigned long cmode0; // offset 0x1D0, size 0x4
226 unsigned long cmode1; // offset 0x1D4, size 0x4
227 unsigned long zmode; // offset 0x1D8, size 0x4
228 unsigned long peCtrl; // offset 0x1DC, size 0x4
229 unsigned long cpDispSrc; // offset 0x1E0, size 0x4
230 unsigned long cpDispSize; // offset 0x1E4, size 0x4
231 unsigned long cpDispStride; // offset 0x1E8, size 0x4
232 unsigned long cpDisp; // offset 0x1EC, size 0x4
233 unsigned long cpTexSrc; // offset 0x1F0, size 0x4
234 unsigned long cpTexSize; // offset 0x1F4, size 0x4
235 unsigned long cpTexStride; // offset 0x1F8, size 0x4
236 unsigned long cpTex; // offset 0x1FC, size 0x4
237 unsigned char cpTexZ; // offset 0x200, size 0x1
238 unsigned long genMode; // offset 0x204, size 0x4
239 GXTexRegion TexRegions[8]; // offset 0x208, size 0x80
240 GXTexRegion TexRegionsCI[4]; // offset 0x288, size 0x40
241 unsigned long nextTexRgn; // offset 0x2C8, size 0x4
242 unsigned long nextTexRgnCI; // offset 0x2CC, size 0x4
243 GXTlutRegion TlutRegions[20]; // offset 0x2D0, size 0x140
244 GXTexRegion* (*texRegionCallback)(GXTexObj*,
245 GXTexMapID); // offset 0x410, size 0x4
246 GXTlutRegion* (*tlutRegionCallback)(
247 unsigned long); // offset 0x414, size 0x4
248 GXAttrType nrmType; // offset 0x418, size 0x4
249 unsigned char hasNrms; // offset 0x41C, size 0x1
250 unsigned char hasBiNrms; // offset 0x41D, size 0x1
251 unsigned long projType; // offset 0x420, size 0x4
252 float projMtx[6]; // offset 0x424, size 0x18
253 float vpLeft; // offset 0x43C, size 0x4
254 float vpTop; // offset 0x440, size 0x4
255 float vpWd; // offset 0x444, size 0x4
256 float vpHt; // offset 0x448, size 0x4
257 float vpNearz; // offset 0x44C, size 0x4
258 float vpFarz; // offset 0x450, size 0x4
259 unsigned char fgRange; // offset 0x454, size 0x1
260 float fgSideX; // offset 0x458, size 0x4
261 unsigned long tImage0[8]; // offset 0x45C, size 0x20
262 unsigned long tMode0[8]; // offset 0x47C, size 0x20
263 unsigned long texmapId[16]; // offset 0x49C, size 0x40
264 unsigned long tcsManEnab; // offset 0x4DC, size 0x4
265 GXPerf0 perf0; // offset 0x4E0, size 0x4
266 GXPerf1 perf1; // offset 0x4E4, size 0x4
267 unsigned long perfSel; // offset 0x4E8, size 0x4
268 unsigned char inDispList; // offset 0x4EC, size 0x1
269 unsigned char dlSaveContext; // offset 0x4ED, size 0x1
270 unsigned char dirtyVAT; // offset 0x4EE, size 0x1
271 unsigned long dirtyState; // offset 0x4F0, size 0x4
272}; // size = 0x4F4
273
274extern struct __GXData_struct* gx;
275extern u16* __memReg;
276extern u16* __peReg;
277extern u16* __cpReg;
278extern u32* __piReg;
279#if DEBUG
280extern GXBool __GXinBegin;
281#endif
282
283static void __GXInitGX(void);
284
285/* GXMisc.c */
286
287void __GXBypass(u32 reg);
289void __GXPEInit(void);
290
291/* GXSave.c */
292
293void __GXShadowDispList(void* list, u32 nbytes);
294void __GXShadowIndexState(u32 idx_reg, u32 reg_data);
296
297/* GXStubs.c */
298
299void __GXSetRange(float nearz, float fgSideX);
300
301/* GXTexture.c */
302
303void __GetImageTileCount(GXTexFmt fmt, u16 wd, u16 ht, u32* rowTiles,
304 u32* colTiles, u32* cmpTiles);
305void __GXSetSUTexRegs(void);
306void __GXGetSUTexSize(GXTexCoordID coord, u16* width, u16* height);
307void __GXSetTmemConfig(u32 arg0);
308
309/* GXTransform.c */
310
311void __GXSetMatrixIndex(GXAttr matIdxAttr);
312
313/* GXVerifRAS.c */
314
315void __GXVerifySU(void);
316void __GXVerifyBUMP(void);
317void __GXVerifyTEX(void);
318void __GXVerifyTEV(void);
319void __GXVerifyPE(void);
320
321/* GXVerif.c */
322
323typedef enum {
438} GXWarnID;
439
440#define __GX_WARN(id) \
441 (__gxVerif->cb(GX_WARN_SEVERE, (id), __gxvWarnings[(id)]))
442#define __GX_WARNF(id, ...) \
443 do { \
444 sprintf(__gxvDummyStr, __gxvWarnings[(id)], __VA_ARGS__); \
445 __gxVerif->cb(GX_WARN_SEVERE, (id), __gxvDummyStr); \
446 } while (0)
447
448#define __GX_WARN2(level, id) (__gxVerif->cb(level, (id), __gxvWarnings[(id)]))
449#define __GX_WARN2F(level, id, ...) \
450 do { \
451 sprintf(__gxvDummyStr, __gxvWarnings[(id)], __VA_ARGS__); \
452 __gxVerif->cb(level, (id), __gxvDummyStr); \
453 } while (0)
454
456 // total size: 0x13F8
457 GXVerifyCallback cb; // offset 0x0, size 0x4
458 GXWarningLevel verifyLevel; // offset 0x4, size 0x4
459 u32 xfRegs[80]; // offset 0x8, size 0x140
460 u32 xfMtx[256]; // offset 0x148, size 0x400
461 u32 xfNrm[96]; // offset 0x548, size 0x180
462 u32 xfDMtx[256]; // offset 0x6C8, size 0x400
463 u32 xfLight[128]; // offset 0xAC8, size 0x200
464 u32 rasRegs[256]; // offset 0xCC8, size 0x400
465 u8 xfRegsDirty[80]; // offset 0x10C8, size 0x50
466 u8 xfMtxDirty[256]; // offset 0x1118, size 0x100
467 u8 xfNrmDirty[96]; // offset 0x1218, size 0x60
468 u8 xfDMtxDirty[256]; // offset 0x1278, size 0x100
469 u8 xfLightDirty[128]; // offset 0x1378, size 0x80
470};
471
472extern struct __GXVerifyData* __gxVerif;
473extern char* __gxvWarnings[113];
474extern char __gxvDummyStr[256];
475
479
480/* GXVerifXF.c */
481
482void __GXVerifyXF(void);
483
484#endif
GXAttrType
Definition GXEnum.h:115
GXPerf0
Definition GXEnum.h:729
GXTexFmt
Definition GXEnum.h:125
GXTexMapID
Definition GXEnum.h:185
GXAttr
Definition GXEnum.h:84
GXTexCoordID
Definition GXEnum.h:199
GXVtxFmt
Definition GXEnum.h:72
GXPerf1
Definition GXEnum.h:771
u8 GXBool
Definition GXEnum.h:6
GXWarningLevel
Definition GXVerify.h:4
void(* GXVerifyCallback)(GXWarningLevel level, u32 id, char *msg)
Definition GXVerify.h:11
void __GXVerifyState(GXVtxFmt vtxfmt)
void __GXVerifySU(void)
void __GXSetRange(float nearz, float fgSideX)
Definition GXStubs.c:4
void __GXSetSUTexRegs(void)
Definition GXTexture.c:1194
void __GXFifoInit(void)
Definition GXFifo.c:431
void __GXPEInit(void)
Definition GXMisc.c:365
void __GXSetTmemConfig(u32 arg0)
Definition GXTexture.c:1253
static void __GXInitGX(void)
Definition GXInit.c:225
u16 * __peReg
Definition GXInit.c:14
void __GXCleanGPFifo(void)
Definition GXFifo.c:482
u16 __GXReadPEReg(u32 reg)
u16 * __cpReg
Definition GXInit.c:15
void __GXBypass(u32 reg)
void __GXShadowDispList(void *list, u32 nbytes)
void __GXVerifyCP(GXVtxFmt fmt)
void __GXSetVCD(void)
Definition GXAttr.c:171
void __GXSetGenMode(void)
Definition GXGeometry.c:161
void __GXVerifyBUMP(void)
void __GXSaveCPUFifoAux(struct __GXFifoObj *realFifo)
Definition GXFifo.c:273
void __GXInsaneWatermark(void)
Definition GXFifo.c:473
u16 * __memReg
Definition GXInit.c:13
void __GXVerifyXF(void)
void __GetImageTileCount(GXTexFmt fmt, u16 wd, u16 ht, u32 *rowTiles, u32 *colTiles, u32 *cmpTiles)
char __gxvDummyStr[256]
void __GXVerifyPE(void)
void __GXSendFlushPrim(void)
Definition GXGeometry.c:50
GXWarnID
Definition __gx.h:323
@ GXWARN_INV_NUM_REG_TEX
Definition __gx.h:425
@ GXWARN_INV_NUM_ANY_TEX
Definition __gx.h:424
@ GXWARN_VAL_SMALL
Definition __gx.h:418
@ GXWARN_RND_CLR_INDX
Definition __gx.h:355
@ GXWARN_MAX
Definition __gx.h:437
@ GXWARN_TEX_CONFIG
Definition __gx.h:343
@ GXWARN_BM_INV_MTX_NDX
Definition __gx.h:404
@ GXWARN_DIAG_LOD
Definition __gx.h:351
@ GXWARN_INV_CLR_TEX
Definition __gx.h:428
@ GXWARN_INV_TEX_SRC
Definition __gx.h:402
@ GXWARN_INDIRECT_MTX
Definition __gx.h:333
@ GXWARN_TEX_CLAMP
Definition __gx.h:347
@ GXWARN_BUMP_ACCUMULATION
Definition __gx.h:337
@ GXWARN_NRM_XF3_CP1
Definition __gx.h:392
@ GXWARN_TLUT_CONFIG
Definition __gx.h:345
@ GXWARN_TEX_SRC_NNRM
Definition __gx.h:397
@ GXWARN_SCISSOR_RECT_LEFT
Definition __gx.h:326
@ GXWARN_CLR_XFN_SUM
Definition __gx.h:423
@ GXWARN_TEV_LAST_A
Definition __gx.h:367
@ GXWARN_TEX_SRC_NCLR1
Definition __gx.h:399
@ GXWARN_MTX1_UNINIT
Definition __gx.h:420
@ GXWARN_VAL_INFINITY
Definition __gx.h:416
@ GXWARN_IND_DIR_BOTH
Definition __gx.h:342
@ GXWARN_CLR_XF2_CPN1
Definition __gx.h:385
@ GXWARN_BUMP_CMD
Definition __gx.h:331
@ GXWARN_TEX_ANISO
Definition __gx.h:352
@ GXWARN_SAMPLE_VALUE
Definition __gx.h:330
@ GXWARN_TEX_SRC_NTEX
Definition __gx.h:401
@ GXWARN_BM_INV_TEX
Definition __gx.h:405
@ GXWARN_TEX_XFN_CPM
Definition __gx.h:395
@ GXWARN_TEX_SRC_NPOS
Definition __gx.h:396
@ GXWARN_DITHER_MODE
Definition __gx.h:372
@ GXWARN_Z_BEFORE_T_A
Definition __gx.h:370
@ GXWARN_BUMP_ALPHA_EN
Definition __gx.h:338
@ GXWARN_CLR_AMB_UNINIT
Definition __gx.h:412
@ GXWARN_IND_TEX_NO_SCALE
Definition __gx.h:335
@ GXWARN_TEX_SRC_NCLR0
Definition __gx.h:398
@ GXWARN_ZTEX_INVALID
Definition __gx.h:365
@ GXWARN_MIN_LOD
Definition __gx.h:349
@ GXWARN_TEX_SIZE_INIT
Definition __gx.h:325
@ GXWARN_NRM_XF3_CP0
Definition __gx.h:393
@ GXWARN_INV_COLOR_TG_COMB
Definition __gx.h:379
@ GXWARN_INV_NUM_CLR_TEX
Definition __gx.h:427
@ GXWARN_INV_TG_ORDER
Definition __gx.h:403
@ GXWARN_XF_CTRL_INIT
Definition __gx.h:378
@ GXWARN_IND_DIR_MASK
Definition __gx.h:339
@ GXWARN_MAX_LOD
Definition __gx.h:350
@ GXWARN_INV_TEX_NUM
Definition __gx.h:408
@ GXWARN_CLR_XF0_CP1
Definition __gx.h:382
@ GXWARN_NRM_XF0_CP1
Definition __gx.h:388
@ GXWARN_NRM_XF1_CP0
Definition __gx.h:390
@ GXWARN_ADDR_UNINIT
Definition __gx.h:435
@ GXWARN_TEV_CLR_CLAMP
Definition __gx.h:362
@ GXWARN_CLR_MAT_UNINIT
Definition __gx.h:411
@ GXWARN_CLR_INV_SPEC
Definition __gx.h:413
@ GXWARN_SCISSOR_RECT_BOT
Definition __gx.h:329
@ GXWARN_TEV_LAST_CLR
Definition __gx.h:366
@ GXWARN_BM_NO_NBT
Definition __gx.h:407
@ GXWARN_INV_NUM_COLORS
Definition __gx.h:380
@ GXWARN_TEV_INV_TEX_COORD
Definition __gx.h:341
@ GXWARN_TEX_MIN_FILT
Definition __gx.h:348
@ GXWARN_TEV_NULL_TEX
Definition __gx.h:358
@ GXWARN_VAL_LARGE
Definition __gx.h:419
@ GXWARN_TEX_FIELD
Definition __gx.h:353
@ GXWARN_TEV_INV_CHAN
Definition __gx.h:357
@ GXWARN_MULTISAMP0
Definition __gx.h:373
@ GXWARN_TEX_POW2
Definition __gx.h:346
@ GXWARN_CLR_NO_NRM
Definition __gx.h:414
@ GXWARN_ZTEX_OFFSET
Definition __gx.h:364
@ GXWARN_CLR_ADDR_UNINIT
Definition __gx.h:410
@ GXWARN_GM_UNINIT
Definition __gx.h:421
@ GXWARN_TEX_XFN_SUM
Definition __gx.h:422
@ GXWARN_BM_INV_LIT_POS
Definition __gx.h:406
@ GXWARN_VTX_NO_GEOM
Definition __gx.h:381
@ GXWARN_DUP_CLR_TEX
Definition __gx.h:429
@ GXWARN_TEV_LAST_A_WRAP
Definition __gx.h:369
@ GXWARN_CLR_XF1_CP2
Definition __gx.h:384
@ GXWARN_CLR_INV_MTX_VAL
Definition __gx.h:433
@ GXWARN_INVALID_INDIRECT
Definition __gx.h:332
@ GXWARN_TEV_A_CLAMP
Definition __gx.h:363
@ GXWARN_CLR_INV_MTX_NDX
Definition __gx.h:415
@ GXWARN_TEV_TEX_REF
Definition __gx.h:340
@ GXWARN_VAL_NAN
Definition __gx.h:417
@ GXWARN_TEV_DIRTY_REG
Definition __gx.h:360
@ GXWARN_INV_IVS_NRM
Definition __gx.h:394
@ GXWARN_TEX_MPEG
Definition __gx.h:354
@ GXWARN_IND_TEX_NO_INIT
Definition __gx.h:334
@ GXWARN_BLEND_LOGICOP
Definition __gx.h:371
@ GXWARN_TEV_NULL_TEX_A
Definition __gx.h:359
@ GXWARN_SCISSOR_RECT_RIGHT
Definition __gx.h:328
@ GXWARN_INV_TG_SRC
Definition __gx.h:409
@ GXWARN_LIT_INV_REG
Definition __gx.h:432
@ GXWARN_TEX_INV_MTX_VAL
Definition __gx.h:431
@ GXWARN_INVALID_VTX_FMT
Definition __gx.h:324
@ GXWARN_INV_MTX_VAL
Definition __gx.h:434
@ GXWARN_IND_TEX_BUMP
Definition __gx.h:336
@ GXWARN_INVALID_TG_TYPE
Definition __gx.h:376
@ GXWARN_TEV_DIRTY_REG_A
Definition __gx.h:361
@ GXWARN_TEV_LAST_CLR_WRAP
Definition __gx.h:368
@ GXWARN_CLR_XF1_CP0
Definition __gx.h:383
@ GXWARN_NRM_XF1_CP3
Definition __gx.h:391
@ GXWARN_MULTISAMP1
Definition __gx.h:374
@ GXWARN_BM_INV_MTX_VAL
Definition __gx.h:430
@ GXWARN_INV_IVS_CLR
Definition __gx.h:387
@ GXWARN_REG_UNINIT
Definition __gx.h:436
@ GXWARN_INV_NUM_BM_TEX
Definition __gx.h:426
@ GXWARN_TEX_BASE
Definition __gx.h:344
@ GXWARN_NRM_XF0_CP3
Definition __gx.h:389
@ GXWARN_TEV_ENV
Definition __gx.h:356
@ GXWARN_CLR_XF2_CPN2
Definition __gx.h:386
@ GXWARN_SAMP_ORDER
Definition __gx.h:375
@ GXWARN_SCISSOR_RECT_TOP
Definition __gx.h:327
@ GXWARN_XF_CTRL_UNINIT
Definition __gx.h:377
@ GXWARN_TEX_SRC_NNBT
Definition __gx.h:400
char * __gxvWarnings[113]
void __GXShadowIndexState(u32 idx_reg, u32 reg_data)
void __GXUpdateBPMask(void)
Definition GXBump.c:324
void __GXSetDirtyState(void)
Definition GXGeometry.c:8
void __GXVerifyTEV(void)
void __GXFlushTextureState(void)
Definition GXBump.c:374
void __GXGetSUTexSize(GXTexCoordID coord, u16 *width, u16 *height)
Definition GXTexture.c:1247
void __GXSetVAT(void)
Definition GXAttr.c:430
struct __GXVerifyData * __gxVerif
void __GXSetMatrixIndex(GXAttr matIdxAttr)
Definition GXTransform.c:544
void __GXVerifyGlobal(void)
u32 * __piReg
Definition GXInit.c:16
void __GXPrintShadowState(void)
void __GXVerifyTEX(void)
struct __GXData_struct * gx
Definition GXInit.c:11
signed int s32
Definition types.h:12
unsigned int u32
Definition types.h:13
unsigned short int u16
Definition types.h:7
unsigned char u8
Definition types.h:5
Definition GXStruct.h:35
Definition GXStruct.h:43
Definition GXStruct.h:51
Definition __gx.h:192
unsigned long teva[16]
Definition __gx.h:223
unsigned long indexBase[4]
Definition __gx.h:209
unsigned long cpTexStride
Definition __gx.h:235
unsigned char cpTexZ
Definition __gx.h:237
unsigned long indexStride[4]
Definition __gx.h:210
unsigned char dirtyVAT
Definition __gx.h:270
unsigned long tevc[16]
Definition __gx.h:222
unsigned long cmode0
Definition __gx.h:225
unsigned long vatB[8]
Definition __gx.h:204
unsigned long suScis1
Definition __gx.h:216
unsigned long bpMask
Definition __gx.h:219
GXTexRegion TexRegions[8]
Definition __gx.h:239
unsigned long matIdxB
Definition __gx.h:208
unsigned long cpDisp
Definition __gx.h:232
float vpWd
Definition __gx.h:255
unsigned long zmode
Definition __gx.h:227
unsigned long genMode
Definition __gx.h:238
unsigned long cpClr
Definition __gx.h:200
unsigned long matIdxA
Definition __gx.h:207
float vpFarz
Definition __gx.h:258
unsigned char hasNrms
Definition __gx.h:249
float projMtx[6]
Definition __gx.h:252
unsigned long cpEnable
Definition __gx.h:198
unsigned long cpStatus
Definition __gx.h:199
float vpHt
Definition __gx.h:256
unsigned long vatC[8]
Definition __gx.h:205
unsigned short bpSent
Definition __gx.h:195
unsigned long tref[8]
Definition __gx.h:217
unsigned long peCtrl
Definition __gx.h:228
unsigned long projType
Definition __gx.h:251
unsigned long lpSize
Definition __gx.h:206
GXPerf1 perf1
Definition __gx.h:266
float vpLeft
Definition __gx.h:253
unsigned char fgRange
Definition __gx.h:259
unsigned short vNum
Definition __gx.h:196
unsigned char dlSaveContext
Definition __gx.h:269
unsigned long matColor[2]
Definition __gx.h:212
unsigned char hasBiNrms
Definition __gx.h:250
unsigned long perfSel
Definition __gx.h:267
GXAttrType nrmType
Definition __gx.h:248
unsigned long tMode0[8]
Definition __gx.h:262
unsigned long cpTexSrc
Definition __gx.h:233
unsigned char inDispList
Definition __gx.h:268
GXTlutRegion TlutRegions[20]
Definition __gx.h:243
unsigned long suTs0[8]
Definition __gx.h:213
unsigned long cpTex
Definition __gx.h:236
unsigned long suTs1[8]
Definition __gx.h:214
unsigned long cmode1
Definition __gx.h:226
float fgSideX
Definition __gx.h:260
unsigned long cpDispSize
Definition __gx.h:230
unsigned long cpTexSize
Definition __gx.h:234
unsigned long iref
Definition __gx.h:218
unsigned short unk
Definition __gx.h:194
unsigned long dirtyState
Definition __gx.h:271
unsigned long vcdHi
Definition __gx.h:202
unsigned long tevKsel[8]
Definition __gx.h:224
unsigned long IndTexScale0
Definition __gx.h:220
GXTexRegion TexRegionsCI[4]
Definition __gx.h:240
unsigned long vcdLo
Definition __gx.h:201
unsigned long vatA[8]
Definition __gx.h:203
unsigned long tImage0[8]
Definition __gx.h:261
unsigned long cpDispStride
Definition __gx.h:231
unsigned long nextTexRgnCI
Definition __gx.h:242
float vpTop
Definition __gx.h:254
unsigned long tcsManEnab
Definition __gx.h:264
GXPerf0 perf0
Definition __gx.h:265
unsigned long nextTexRgn
Definition __gx.h:241
float vpNearz
Definition __gx.h:257
unsigned long IndTexScale1
Definition __gx.h:221
unsigned long suScis0
Definition __gx.h:215
unsigned long ambColor[2]
Definition __gx.h:211
unsigned long texmapId[16]
Definition __gx.h:263
unsigned long cpDispSrc
Definition __gx.h:229
unsigned short vLim
Definition __gx.h:197
Definition __gx.h:166
u32 size
Definition __gx.h:169
u8 bind_cpu
Definition __gx.h:175
u8 bind_gp
Definition __gx.h:176
u8 * base
Definition __gx.h:167
u32 hiWatermark
Definition __gx.h:170
u8 * top
Definition __gx.h:168
void * rdPtr
Definition __gx.h:172
s32 count
Definition __gx.h:174
u32 loWatermark
Definition __gx.h:171
void * wrPtr
Definition __gx.h:173
Definition __gx.h:455
u8 xfMtxDirty[256]
Definition __gx.h:466
u32 xfMtx[256]
Definition __gx.h:460
GXVerifyCallback cb
Definition __gx.h:457
u8 xfDMtxDirty[256]
Definition __gx.h:468
u8 xfRegsDirty[80]
Definition __gx.h:465
u32 xfRegs[80]
Definition __gx.h:459
u32 xfLight[128]
Definition __gx.h:463
u32 xfDMtx[256]
Definition __gx.h:462
u32 xfNrm[96]
Definition __gx.h:461
u8 xfNrmDirty[96]
Definition __gx.h:467
GXWarningLevel verifyLevel
Definition __gx.h:458
u8 xfLightDirty[128]
Definition __gx.h:469
u32 rasRegs[256]
Definition __gx.h:464