SSBM Decomp
Loading...
Searching...
No Matches
__gx.h File Reference

Go to the source code of this file.

Data Structures

struct  __GXFifoObj
struct  __GXData_struct
struct  __GXVerifyData

Macros

#define GX_WRITE_U8(ub)
#define GX_WRITE_U16(us)
#define GX_WRITE_U32(ui)
#define GX_WRITE_F32(f)
#define VERIF_XF_REG(addr, value)
#define VERIF_XF_REG_alt(addr, value)
#define VERIF_RAS_REG(value)
#define GX_WRITE_XF_REG(addr, value)
#define GX_WRITE_XF_REG_2(addr, value)
#define GX_WRITE_XF_REG_F(addr, value)
#define GX_WRITE_RAS_REG(value)
#define GX_WRITE_SOME_REG2(a, b, c, addr)
#define GX_WRITE_SOME_REG3(a, b, c, addr)
#define GX_WRITE_SOME_REG4(a, b, c, addr)
#define GET_REG_FIELD(reg, size, shift)
#define SET_REG_FIELD(line, reg, size, shift, val)
#define CHECK_GXBEGIN(line, name)
#define __GX_WARN(id)
#define __GX_WARNF(id, ...)
#define __GX_WARN2(level, id)
#define __GX_WARN2F(level, id, ...)

Enumerations

enum  GXWarnID {
  GXWARN_INVALID_VTX_FMT = 0 ,
  GXWARN_TEX_SIZE_INIT = 1 ,
  GXWARN_SCISSOR_RECT_LEFT = 2 ,
  GXWARN_SCISSOR_RECT_TOP = 3 ,
  GXWARN_SCISSOR_RECT_RIGHT = 4 ,
  GXWARN_SCISSOR_RECT_BOT = 5 ,
  GXWARN_SAMPLE_VALUE = 6 ,
  GXWARN_BUMP_CMD = 7 ,
  GXWARN_INVALID_INDIRECT = 8 ,
  GXWARN_INDIRECT_MTX = 9 ,
  GXWARN_IND_TEX_NO_INIT = 10 ,
  GXWARN_IND_TEX_NO_SCALE = 11 ,
  GXWARN_IND_TEX_BUMP = 12 ,
  GXWARN_BUMP_ACCUMULATION = 13 ,
  GXWARN_BUMP_ALPHA_EN = 14 ,
  GXWARN_IND_DIR_MASK = 15 ,
  GXWARN_TEV_TEX_REF = 16 ,
  GXWARN_TEV_INV_TEX_COORD = 17 ,
  GXWARN_IND_DIR_BOTH = 18 ,
  GXWARN_TEX_CONFIG = 19 ,
  GXWARN_TEX_BASE = 20 ,
  GXWARN_TLUT_CONFIG = 21 ,
  GXWARN_TEX_POW2 = 22 ,
  GXWARN_TEX_CLAMP = 23 ,
  GXWARN_TEX_MIN_FILT = 24 ,
  GXWARN_MIN_LOD = 25 ,
  GXWARN_MAX_LOD = 26 ,
  GXWARN_DIAG_LOD = 27 ,
  GXWARN_TEX_ANISO = 28 ,
  GXWARN_TEX_FIELD = 29 ,
  GXWARN_TEX_MPEG = 30 ,
  GXWARN_RND_CLR_INDX = 31 ,
  GXWARN_TEV_ENV = 32 ,
  GXWARN_TEV_INV_CHAN = 33 ,
  GXWARN_TEV_NULL_TEX = 34 ,
  GXWARN_TEV_NULL_TEX_A = 35 ,
  GXWARN_TEV_DIRTY_REG = 36 ,
  GXWARN_TEV_DIRTY_REG_A = 37 ,
  GXWARN_TEV_CLR_CLAMP = 38 ,
  GXWARN_TEV_A_CLAMP = 39 ,
  GXWARN_ZTEX_OFFSET = 40 ,
  GXWARN_ZTEX_INVALID = 41 ,
  GXWARN_TEV_LAST_CLR = 42 ,
  GXWARN_TEV_LAST_A = 43 ,
  GXWARN_TEV_LAST_CLR_WRAP = 44 ,
  GXWARN_TEV_LAST_A_WRAP = 45 ,
  GXWARN_Z_BEFORE_T_A = 46 ,
  GXWARN_BLEND_LOGICOP = 47 ,
  GXWARN_DITHER_MODE = 48 ,
  GXWARN_MULTISAMP0 = 49 ,
  GXWARN_MULTISAMP1 = 50 ,
  GXWARN_SAMP_ORDER = 51 ,
  GXWARN_INVALID_TG_TYPE = 52 ,
  GXWARN_XF_CTRL_UNINIT = 53 ,
  GXWARN_XF_CTRL_INIT = 54 ,
  GXWARN_INV_COLOR_TG_COMB = 55 ,
  GXWARN_INV_NUM_COLORS = 56 ,
  GXWARN_VTX_NO_GEOM = 57 ,
  GXWARN_CLR_XF0_CP1 = 58 ,
  GXWARN_CLR_XF1_CP0 = 59 ,
  GXWARN_CLR_XF1_CP2 = 60 ,
  GXWARN_CLR_XF2_CPN1 = 61 ,
  GXWARN_CLR_XF2_CPN2 = 62 ,
  GXWARN_INV_IVS_CLR = 63 ,
  GXWARN_NRM_XF0_CP1 = 64 ,
  GXWARN_NRM_XF0_CP3 = 65 ,
  GXWARN_NRM_XF1_CP0 = 66 ,
  GXWARN_NRM_XF1_CP3 = 67 ,
  GXWARN_NRM_XF3_CP1 = 68 ,
  GXWARN_NRM_XF3_CP0 = 69 ,
  GXWARN_INV_IVS_NRM = 70 ,
  GXWARN_TEX_XFN_CPM = 71 ,
  GXWARN_TEX_SRC_NPOS = 72 ,
  GXWARN_TEX_SRC_NNRM = 73 ,
  GXWARN_TEX_SRC_NCLR0 = 74 ,
  GXWARN_TEX_SRC_NCLR1 = 75 ,
  GXWARN_TEX_SRC_NNBT = 76 ,
  GXWARN_TEX_SRC_NTEX = 77 ,
  GXWARN_INV_TEX_SRC = 78 ,
  GXWARN_INV_TG_ORDER = 79 ,
  GXWARN_BM_INV_MTX_NDX = 80 ,
  GXWARN_BM_INV_TEX = 81 ,
  GXWARN_BM_INV_LIT_POS = 82 ,
  GXWARN_BM_NO_NBT = 83 ,
  GXWARN_INV_TEX_NUM = 84 ,
  GXWARN_INV_TG_SRC = 85 ,
  GXWARN_CLR_ADDR_UNINIT = 86 ,
  GXWARN_CLR_MAT_UNINIT = 87 ,
  GXWARN_CLR_AMB_UNINIT = 88 ,
  GXWARN_CLR_INV_SPEC = 89 ,
  GXWARN_CLR_NO_NRM = 90 ,
  GXWARN_CLR_INV_MTX_NDX = 91 ,
  GXWARN_VAL_INFINITY = 92 ,
  GXWARN_VAL_NAN = 93 ,
  GXWARN_VAL_SMALL = 94 ,
  GXWARN_VAL_LARGE = 95 ,
  GXWARN_MTX1_UNINIT = 96 ,
  GXWARN_GM_UNINIT = 97 ,
  GXWARN_TEX_XFN_SUM = 98 ,
  GXWARN_CLR_XFN_SUM = 99 ,
  GXWARN_INV_NUM_ANY_TEX = 100 ,
  GXWARN_INV_NUM_REG_TEX = 101 ,
  GXWARN_INV_NUM_BM_TEX = 102 ,
  GXWARN_INV_NUM_CLR_TEX = 103 ,
  GXWARN_INV_CLR_TEX = 104 ,
  GXWARN_DUP_CLR_TEX = 105 ,
  GXWARN_BM_INV_MTX_VAL = 106 ,
  GXWARN_TEX_INV_MTX_VAL = 107 ,
  GXWARN_LIT_INV_REG = 108 ,
  GXWARN_CLR_INV_MTX_VAL = 109 ,
  GXWARN_INV_MTX_VAL = 110 ,
  GXWARN_ADDR_UNINIT = 111 ,
  GXWARN_REG_UNINIT = 112 ,
  GXWARN_MAX = 113
}

Functions

void __GXSetVCD (void)
void __GXSetVAT (void)
void __GXUpdateBPMask (void)
void __GXFlushTextureState (void)
void __GXSaveCPUFifoAux (struct __GXFifoObj *realFifo)
void __GXFifoInit (void)
void __GXInsaneWatermark (void)
void __GXCleanGPFifo (void)
void __GXSetDirtyState (void)
void __GXSendFlushPrim (void)
void __GXSetGenMode (void)
static void __GXInitGX (void)
void __GXBypass (u32 reg)
u16 __GXReadPEReg (u32 reg)
void __GXPEInit (void)
void __GXShadowDispList (void *list, u32 nbytes)
void __GXShadowIndexState (u32 idx_reg, u32 reg_data)
void __GXPrintShadowState (void)
void __GXSetRange (float nearz, float fgSideX)
void __GetImageTileCount (GXTexFmt fmt, u16 wd, u16 ht, u32 *rowTiles, u32 *colTiles, u32 *cmpTiles)
void __GXSetSUTexRegs (void)
void __GXGetSUTexSize (GXTexCoordID coord, u16 *width, u16 *height)
void __GXSetTmemConfig (u32 arg0)
void __GXSetMatrixIndex (GXAttr matIdxAttr)
void __GXVerifySU (void)
void __GXVerifyBUMP (void)
void __GXVerifyTEX (void)
void __GXVerifyTEV (void)
void __GXVerifyPE (void)
void __GXVerifyGlobal (void)
void __GXVerifyCP (GXVtxFmt fmt)
void __GXVerifyState (GXVtxFmt vtxfmt)
void __GXVerifyXF (void)

Variables

struct __GXData_structgx
u16__memReg
u16__peReg
u16__cpReg
u32__piReg
struct __GXVerifyData__gxVerif
char * __gxvWarnings [113]
char __gxvDummyStr [256]

Macro Definition Documentation

◆ GX_WRITE_U8

#define GX_WRITE_U8 ( ub)
Value:
GXWGFifo.u8 = (u8) (ub)
#define GXWGFifo
Definition GXVert.h:28
unsigned char u8
Definition types.h:5

◆ GX_WRITE_U16

#define GX_WRITE_U16 ( us)
Value:
GXWGFifo.u16 = (u16) (us)
unsigned short int u16
Definition types.h:7

◆ GX_WRITE_U32

#define GX_WRITE_U32 ( ui)
Value:
GXWGFifo.u32 = (u32) (ui)
unsigned int u32
Definition types.h:13

◆ GX_WRITE_F32

#define GX_WRITE_F32 ( f)
Value:
GXWGFifo.f32 = (f32) (f);
float f32
Definition types.h:18

◆ VERIF_XF_REG

#define VERIF_XF_REG ( addr,
value )
Value:
((void) 0)

◆ VERIF_XF_REG_alt

#define VERIF_XF_REG_alt ( addr,
value )
Value:
((void) 0)

◆ VERIF_RAS_REG

#define VERIF_RAS_REG ( value)
Value:
((void) 0)

◆ GX_WRITE_XF_REG

#define GX_WRITE_XF_REG ( addr,
value )
Value:
do { \
GX_WRITE_U8(0x10); \
GX_WRITE_U32(0x1000 + (addr)); \
GX_WRITE_U32(value); \
VERIF_XF_REG(addr, value); \
} while (0)

◆ GX_WRITE_XF_REG_2

#define GX_WRITE_XF_REG_2 ( addr,
value )
Value:
do { \
GX_WRITE_U32(value); \
} while (0)

◆ GX_WRITE_XF_REG_F

#define GX_WRITE_XF_REG_F ( addr,
value )
Value:
do { \
GX_WRITE_F32(value); \
} while (0)

◆ GX_WRITE_RAS_REG

#define GX_WRITE_RAS_REG ( value)
Value:
do { \
GX_WRITE_U8(0x61); \
GX_WRITE_U32(value); \
VERIF_RAS_REG(value); \
} while (0)

◆ GX_WRITE_SOME_REG2

#define GX_WRITE_SOME_REG2 ( a,
b,
c,
addr )
Value:
do { \
long regAddr; \
GX_WRITE_U8(a); \
GX_WRITE_U8(b); \
GX_WRITE_U32(c); \
regAddr = addr; \
if (regAddr >= 0 && regAddr < 4) { \
gx->indexBase[regAddr] = c; \
} \
} while (0)
struct __GXData_struct * gx
Definition GXInit.c:11
int c
Definition tev.c:10
GXColorS10 a
Definition tev.c:9

◆ GX_WRITE_SOME_REG3

#define GX_WRITE_SOME_REG3 ( a,
b,
c,
addr )
Value:
do { \
long regAddr; \
GX_WRITE_U8(a); \
GX_WRITE_U8(b); \
GX_WRITE_U32(c); \
regAddr = addr; \
if (regAddr >= 0 && regAddr < 4) { \
gx->indexStride[regAddr] = c; \
} \
} while (0)

◆ GX_WRITE_SOME_REG4

#define GX_WRITE_SOME_REG4 ( a,
b,
c,
addr )
Value:
do { \
long regAddr; \
GX_WRITE_U8(a); \
GX_WRITE_U8(b); \
GX_WRITE_U32(c); \
regAddr = addr; \
} while (0)

◆ GET_REG_FIELD

#define GET_REG_FIELD ( reg,
size,
shift )
Value:
((int) ((reg) >> (shift)) & ((1 << (size)) - 1))
size_t size
Definition __os.h:98

◆ SET_REG_FIELD

#define SET_REG_FIELD ( line,
reg,
size,
shift,
val )
Value:
do { \
ASSERTMSGLINE(line, ((u32) (val) & ~((1 << (size)) - 1)) == 0, \
"GX Internal: Register field out of range"); \
(reg) = ((u32) (reg) & ~(((1 << (size)) - 1) << (shift))) | \
((u32) (val) << (shift)); \
} while (0)

◆ CHECK_GXBEGIN

#define CHECK_GXBEGIN ( line,
name )
Value:
ASSERTMSGLINE(line, !__GXinBegin, \
"'" name "' is not allowed between GXBegin/GXEnd")
#define ASSERTMSGLINE(line, cond, msg)
Definition macros.h:24

◆ __GX_WARN

#define __GX_WARN ( id)
Value:
@ GX_WARN_SEVERE
Definition GXVerify.h:6
char * __gxvWarnings[113]
struct __GXVerifyData * __gxVerif

◆ __GX_WARNF

#define __GX_WARNF ( id,
... )
Value:
do { \
sprintf(__gxvDummyStr, __gxvWarnings[(id)], __VA_ARGS__); \
} while (0)
char __gxvDummyStr[256]

◆ __GX_WARN2

#define __GX_WARN2 ( level,
id )
Value:
(__gxVerif->cb(level, (id), __gxvWarnings[(id)]))

◆ __GX_WARN2F

#define __GX_WARN2F ( level,
id,
... )
Value:
do { \
sprintf(__gxvDummyStr, __gxvWarnings[(id)], __VA_ARGS__); \
__gxVerif->cb(level, (id), __gxvDummyStr); \
} while (0)

Enumeration Type Documentation

◆ GXWarnID

enum GXWarnID
Enumerator
GXWARN_INVALID_VTX_FMT 
GXWARN_TEX_SIZE_INIT 
GXWARN_SCISSOR_RECT_LEFT 
GXWARN_SCISSOR_RECT_TOP 
GXWARN_SCISSOR_RECT_RIGHT 
GXWARN_SCISSOR_RECT_BOT 
GXWARN_SAMPLE_VALUE 
GXWARN_BUMP_CMD 
GXWARN_INVALID_INDIRECT 
GXWARN_INDIRECT_MTX 
GXWARN_IND_TEX_NO_INIT 
GXWARN_IND_TEX_NO_SCALE 
GXWARN_IND_TEX_BUMP 
GXWARN_BUMP_ACCUMULATION 
GXWARN_BUMP_ALPHA_EN 
GXWARN_IND_DIR_MASK 
GXWARN_TEV_TEX_REF 
GXWARN_TEV_INV_TEX_COORD 
GXWARN_IND_DIR_BOTH 
GXWARN_TEX_CONFIG 
GXWARN_TEX_BASE 
GXWARN_TLUT_CONFIG 
GXWARN_TEX_POW2 
GXWARN_TEX_CLAMP 
GXWARN_TEX_MIN_FILT 
GXWARN_MIN_LOD 
GXWARN_MAX_LOD 
GXWARN_DIAG_LOD 
GXWARN_TEX_ANISO 
GXWARN_TEX_FIELD 
GXWARN_TEX_MPEG 
GXWARN_RND_CLR_INDX 
GXWARN_TEV_ENV 
GXWARN_TEV_INV_CHAN 
GXWARN_TEV_NULL_TEX 
GXWARN_TEV_NULL_TEX_A 
GXWARN_TEV_DIRTY_REG 
GXWARN_TEV_DIRTY_REG_A 
GXWARN_TEV_CLR_CLAMP 
GXWARN_TEV_A_CLAMP 
GXWARN_ZTEX_OFFSET 
GXWARN_ZTEX_INVALID 
GXWARN_TEV_LAST_CLR 
GXWARN_TEV_LAST_A 
GXWARN_TEV_LAST_CLR_WRAP 
GXWARN_TEV_LAST_A_WRAP 
GXWARN_Z_BEFORE_T_A 
GXWARN_BLEND_LOGICOP 
GXWARN_DITHER_MODE 
GXWARN_MULTISAMP0 
GXWARN_MULTISAMP1 
GXWARN_SAMP_ORDER 
GXWARN_INVALID_TG_TYPE 
GXWARN_XF_CTRL_UNINIT 
GXWARN_XF_CTRL_INIT 
GXWARN_INV_COLOR_TG_COMB 
GXWARN_INV_NUM_COLORS 
GXWARN_VTX_NO_GEOM 
GXWARN_CLR_XF0_CP1 
GXWARN_CLR_XF1_CP0 
GXWARN_CLR_XF1_CP2 
GXWARN_CLR_XF2_CPN1 
GXWARN_CLR_XF2_CPN2 
GXWARN_INV_IVS_CLR 
GXWARN_NRM_XF0_CP1 
GXWARN_NRM_XF0_CP3 
GXWARN_NRM_XF1_CP0 
GXWARN_NRM_XF1_CP3 
GXWARN_NRM_XF3_CP1 
GXWARN_NRM_XF3_CP0 
GXWARN_INV_IVS_NRM 
GXWARN_TEX_XFN_CPM 
GXWARN_TEX_SRC_NPOS 
GXWARN_TEX_SRC_NNRM 
GXWARN_TEX_SRC_NCLR0 
GXWARN_TEX_SRC_NCLR1 
GXWARN_TEX_SRC_NNBT 
GXWARN_TEX_SRC_NTEX 
GXWARN_INV_TEX_SRC 
GXWARN_INV_TG_ORDER 
GXWARN_BM_INV_MTX_NDX 
GXWARN_BM_INV_TEX 
GXWARN_BM_INV_LIT_POS 
GXWARN_BM_NO_NBT 
GXWARN_INV_TEX_NUM 
GXWARN_INV_TG_SRC 
GXWARN_CLR_ADDR_UNINIT 
GXWARN_CLR_MAT_UNINIT 
GXWARN_CLR_AMB_UNINIT 
GXWARN_CLR_INV_SPEC 
GXWARN_CLR_NO_NRM 
GXWARN_CLR_INV_MTX_NDX 
GXWARN_VAL_INFINITY 
GXWARN_VAL_NAN 
GXWARN_VAL_SMALL 
GXWARN_VAL_LARGE 
GXWARN_MTX1_UNINIT 
GXWARN_GM_UNINIT 
GXWARN_TEX_XFN_SUM 
GXWARN_CLR_XFN_SUM 
GXWARN_INV_NUM_ANY_TEX 
GXWARN_INV_NUM_REG_TEX 
GXWARN_INV_NUM_BM_TEX 
GXWARN_INV_NUM_CLR_TEX 
GXWARN_INV_CLR_TEX 
GXWARN_DUP_CLR_TEX 
GXWARN_BM_INV_MTX_VAL 
GXWARN_TEX_INV_MTX_VAL 
GXWARN_LIT_INV_REG 
GXWARN_CLR_INV_MTX_VAL 
GXWARN_INV_MTX_VAL 
GXWARN_ADDR_UNINIT 
GXWARN_REG_UNINIT 
GXWARN_MAX 

Function Documentation

◆ __GXSetVCD()

void __GXSetVCD ( void )

◆ __GXSetVAT()

void __GXSetVAT ( void )

◆ __GXUpdateBPMask()

void __GXUpdateBPMask ( void )

◆ __GXFlushTextureState()

void __GXFlushTextureState ( void )

◆ __GXSaveCPUFifoAux()

void __GXSaveCPUFifoAux ( struct __GXFifoObj * realFifo)

◆ __GXFifoInit()

void __GXFifoInit ( void )

◆ __GXInsaneWatermark()

void __GXInsaneWatermark ( void )

◆ __GXCleanGPFifo()

void __GXCleanGPFifo ( void )

◆ __GXSetDirtyState()

void __GXSetDirtyState ( void )

◆ __GXSendFlushPrim()

void __GXSendFlushPrim ( void )

◆ __GXSetGenMode()

void __GXSetGenMode ( void )

◆ __GXInitGX()

void __GXInitGX ( void )
static

◆ __GXBypass()

void __GXBypass ( u32 reg)

◆ __GXReadPEReg()

u16 __GXReadPEReg ( u32 reg)

◆ __GXPEInit()

void __GXPEInit ( void )

◆ __GXShadowDispList()

void __GXShadowDispList ( void * list,
u32 nbytes )

◆ __GXShadowIndexState()

void __GXShadowIndexState ( u32 idx_reg,
u32 reg_data )

◆ __GXPrintShadowState()

void __GXPrintShadowState ( void )

◆ __GXSetRange()

void __GXSetRange ( float nearz,
float fgSideX )

◆ __GetImageTileCount()

void __GetImageTileCount ( GXTexFmt fmt,
u16 wd,
u16 ht,
u32 * rowTiles,
u32 * colTiles,
u32 * cmpTiles )

◆ __GXSetSUTexRegs()

void __GXSetSUTexRegs ( void )

◆ __GXGetSUTexSize()

void __GXGetSUTexSize ( GXTexCoordID coord,
u16 * width,
u16 * height )

◆ __GXSetTmemConfig()

void __GXSetTmemConfig ( u32 arg0)

◆ __GXSetMatrixIndex()

void __GXSetMatrixIndex ( GXAttr matIdxAttr)

◆ __GXVerifySU()

void __GXVerifySU ( void )

◆ __GXVerifyBUMP()

void __GXVerifyBUMP ( void )

◆ __GXVerifyTEX()

void __GXVerifyTEX ( void )

◆ __GXVerifyTEV()

void __GXVerifyTEV ( void )

◆ __GXVerifyPE()

void __GXVerifyPE ( void )

◆ __GXVerifyGlobal()

void __GXVerifyGlobal ( void )

◆ __GXVerifyCP()

void __GXVerifyCP ( GXVtxFmt fmt)

◆ __GXVerifyState()

void __GXVerifyState ( GXVtxFmt vtxfmt)

◆ __GXVerifyXF()

void __GXVerifyXF ( void )

Variable Documentation

◆ gx

struct __GXData_struct* gx
extern

◆ __memReg

u16* __memReg
extern

◆ __peReg

u16* __peReg
extern

◆ __cpReg

u16* __cpReg
extern

◆ __piReg

u32* __piReg
extern

◆ __gxVerif

struct __GXVerifyData* __gxVerif
extern

◆ __gxvWarnings

char* __gxvWarnings[113]
extern

◆ __gxvDummyStr

char __gxvDummyStr[256]
extern