2402 lines
50 KiB
C
2402 lines
50 KiB
C
typedef signed char s8;
|
|
typedef signed short int s16;
|
|
typedef signed long s32;
|
|
typedef signed long long int s64;
|
|
typedef unsigned char u8;
|
|
typedef unsigned short int u16;
|
|
typedef unsigned long u32;
|
|
typedef unsigned long long int u64;
|
|
|
|
typedef volatile u8 vu8;
|
|
typedef volatile u16 vu16;
|
|
typedef volatile u32 vu32;
|
|
typedef volatile u64 vu64;
|
|
|
|
typedef volatile s8 vs8;
|
|
typedef volatile s16 vs16;
|
|
typedef volatile s32 vs32;
|
|
typedef volatile s64 vs64;
|
|
|
|
typedef float f32;
|
|
typedef double f64;
|
|
|
|
typedef volatile f32 vf32;
|
|
typedef volatile f64 vf64;
|
|
typedef int BOOL;
|
|
#define FALSE 0
|
|
#define TRUE 1
|
|
|
|
#define NULL ((void *)0)
|
|
#define nullptr NULL
|
|
|
|
typedef enum _GXCITexFmt {
|
|
GX_TF_C4 = 0x8,
|
|
GX_TF_C8 = 0x9,
|
|
GX_TF_C14X2 = 0xa,
|
|
} GXCITexFmt;
|
|
|
|
typedef enum _GXTexWrapMode {
|
|
GX_CLAMP,
|
|
GX_REPEAT,
|
|
GX_MIRROR,
|
|
GX_MAX_TEXWRAPMODE,
|
|
} GXTexWrapMode;
|
|
|
|
typedef enum _GXTexFilter {
|
|
GX_NEAR,
|
|
GX_LINEAR,
|
|
GX_NEAR_MIP_NEAR,
|
|
GX_LIN_MIP_NEAR,
|
|
GX_NEAR_MIP_LIN,
|
|
GX_LIN_MIP_LIN,
|
|
} GXTexFilter;
|
|
|
|
typedef enum _GXAnisotropy {
|
|
GX_ANISO_1,
|
|
GX_ANISO_2,
|
|
GX_ANISO_4,
|
|
GX_MAX_ANISOTROPY,
|
|
} GXAnisotropy;
|
|
|
|
typedef enum _GXTexMapID {
|
|
GX_TEXMAP0,
|
|
GX_TEXMAP1,
|
|
GX_TEXMAP2,
|
|
GX_TEXMAP3,
|
|
GX_TEXMAP4,
|
|
GX_TEXMAP5,
|
|
GX_TEXMAP6,
|
|
GX_TEXMAP7,
|
|
GX_MAX_TEXMAP,
|
|
GX_TEXMAP_NULL = 0xFF,
|
|
GX_TEX_DISABLE = 0x100,
|
|
} GXTexMapID;
|
|
|
|
typedef enum _GXTexCoordID {
|
|
GX_TEXCOORD0,
|
|
GX_TEXCOORD1,
|
|
GX_TEXCOORD2,
|
|
GX_TEXCOORD3,
|
|
GX_TEXCOORD4,
|
|
GX_TEXCOORD5,
|
|
GX_TEXCOORD6,
|
|
GX_TEXCOORD7,
|
|
GX_MAX_TEXCOORD,
|
|
GX_TEXCOORD_NULL = 0xFF,
|
|
} GXTexCoordID;
|
|
|
|
typedef enum _GXTevStageID {
|
|
GX_TEVSTAGE0,
|
|
GX_TEVSTAGE1,
|
|
GX_TEVSTAGE2,
|
|
GX_TEVSTAGE3,
|
|
GX_TEVSTAGE4,
|
|
GX_TEVSTAGE5,
|
|
GX_TEVSTAGE6,
|
|
GX_TEVSTAGE7,
|
|
GX_TEVSTAGE8,
|
|
GX_TEVSTAGE9,
|
|
GX_TEVSTAGE10,
|
|
GX_TEVSTAGE11,
|
|
GX_TEVSTAGE12,
|
|
GX_TEVSTAGE13,
|
|
GX_TEVSTAGE14,
|
|
GX_TEVSTAGE15,
|
|
GX_MAX_TEVSTAGE,
|
|
} GXTevStageID;
|
|
|
|
typedef enum _GXTevMode {
|
|
GX_MODULATE,
|
|
GX_DECAL,
|
|
GX_BLEND,
|
|
GX_REPLACE,
|
|
GX_PASSCLR,
|
|
} GXTevMode;
|
|
|
|
typedef enum _GXTexMtxType {
|
|
GX_MTX3x4,
|
|
GX_MTX2x4,
|
|
} GXTexMtxType;
|
|
|
|
typedef enum _GXTexGenType {
|
|
GX_TG_MTX3x4,
|
|
GX_TG_MTX2x4,
|
|
GX_TG_BUMP0,
|
|
GX_TG_BUMP1,
|
|
GX_TG_BUMP2,
|
|
GX_TG_BUMP3,
|
|
GX_TG_BUMP4,
|
|
GX_TG_BUMP5,
|
|
GX_TG_BUMP6,
|
|
GX_TG_BUMP7,
|
|
GX_TG_SRTG,
|
|
} GXTexGenType;
|
|
|
|
typedef enum _GXPosNrmMtx {
|
|
GX_PNMTX0 = 0,
|
|
GX_PNMTX1 = 3,
|
|
GX_PNMTX2 = 6,
|
|
GX_PNMTX3 = 9,
|
|
GX_PNMTX4 = 12,
|
|
GX_PNMTX5 = 15,
|
|
GX_PNMTX6 = 18,
|
|
GX_PNMTX7 = 21,
|
|
GX_PNMTX8 = 24,
|
|
GX_PNMTX9 = 27,
|
|
} GXPosNrmMtx;
|
|
|
|
typedef enum _GXTexMtx {
|
|
GX_TEXMTX0 = 30,
|
|
GX_TEXMTX1 = 33,
|
|
GX_TEXMTX2 = 36,
|
|
GX_TEXMTX3 = 39,
|
|
GX_TEXMTX4 = 42,
|
|
GX_TEXMTX5 = 45,
|
|
GX_TEXMTX6 = 48,
|
|
GX_TEXMTX7 = 51,
|
|
GX_TEXMTX8 = 54,
|
|
GX_TEXMTX9 = 57,
|
|
GX_IDENTITY = 60,
|
|
} GXTexMtx;
|
|
|
|
typedef enum _GXChannelID {
|
|
GX_COLOR0,
|
|
GX_COLOR1,
|
|
GX_ALPHA0,
|
|
GX_ALPHA1,
|
|
GX_COLOR0A0,
|
|
GX_COLOR1A1,
|
|
GX_COLOR_ZERO,
|
|
GX_ALPHA_BUMP,
|
|
GX_ALPHA_BUMPN,
|
|
GX_COLOR_NULL = 0xFF,
|
|
} GXChannelID;
|
|
|
|
typedef enum _GXTexGenSrc {
|
|
GX_TG_POS,
|
|
GX_TG_NRM,
|
|
GX_TG_BINRM,
|
|
GX_TG_TANGENT,
|
|
GX_TG_TEX0,
|
|
GX_TG_TEX1,
|
|
GX_TG_TEX2,
|
|
GX_TG_TEX3,
|
|
GX_TG_TEX4,
|
|
GX_TG_TEX5,
|
|
GX_TG_TEX6,
|
|
GX_TG_TEX7,
|
|
GX_TG_TEXCOORD0,
|
|
GX_TG_TEXCOORD1,
|
|
GX_TG_TEXCOORD2,
|
|
GX_TG_TEXCOORD3,
|
|
GX_TG_TEXCOORD4,
|
|
GX_TG_TEXCOORD5,
|
|
GX_TG_TEXCOORD6,
|
|
GX_TG_COLOR0,
|
|
GX_TG_COLOR1,
|
|
GX_MAX_TEXGENSRC,
|
|
} GXTexGenSrc;
|
|
|
|
typedef enum _GXBlendMode {
|
|
GX_BM_NONE,
|
|
GX_BM_BLEND,
|
|
GX_BM_LOGIC,
|
|
GX_BM_SUBTRACT,
|
|
GX_MAX_BLENDMODE,
|
|
} GXBlendMode;
|
|
|
|
typedef enum _GXBlendFactor {
|
|
GX_BL_ZERO,
|
|
GX_BL_ONE,
|
|
GX_BL_SRCCLR,
|
|
GX_BL_INVSRCCLR,
|
|
GX_BL_SRCALPHA,
|
|
GX_BL_INVSRCALPHA,
|
|
GX_BL_DSTALPHA,
|
|
GX_BL_INVDSTALPHA,
|
|
GX_BL_DSTCLR = GX_BL_SRCCLR,
|
|
GX_BL_INVDSTCLR = GX_BL_INVSRCCLR,
|
|
} GXBlendFactor;
|
|
|
|
#define GX_FALSE ((GXBool)0)
|
|
#define GX_TRUE ((GXBool)1)
|
|
|
|
#define GX_ENABLE ((GXBool)1)
|
|
#define GX_DISABLE ((GXBool)0)
|
|
|
|
typedef enum _GXProjectionType {
|
|
GX_PERSPECTIVE,
|
|
GX_ORTHOGRAPHIC,
|
|
} GXProjectionType;
|
|
|
|
typedef enum _GXCompare {
|
|
GX_NEVER,
|
|
GX_LESS,
|
|
GX_EQUAL,
|
|
GX_LEQUAL,
|
|
GX_GREATER,
|
|
GX_NEQUAL,
|
|
GX_GEQUAL,
|
|
GX_ALWAYS,
|
|
} GXCompare;
|
|
|
|
typedef enum _GXAlphaOp {
|
|
GX_AOP_AND,
|
|
GX_AOP_OR,
|
|
GX_AOP_XOR,
|
|
GX_AOP_XNOR,
|
|
GX_MAX_ALPHAOP,
|
|
} GXAlphaOp;
|
|
|
|
typedef enum _GXZFmt16 {
|
|
GX_ZC_LINEAR,
|
|
GX_ZC_NEAR,
|
|
GX_ZC_MID,
|
|
GX_ZC_FAR,
|
|
} GXZFmt16;
|
|
|
|
typedef enum _GXGamma {
|
|
GX_GM_1_0,
|
|
GX_GM_1_7,
|
|
GX_GM_2_2,
|
|
} GXGamma;
|
|
|
|
typedef enum _GXPixelFmt {
|
|
GX_PF_RGB8_Z24,
|
|
GX_PF_RGBA6_Z24,
|
|
GX_PF_RGB565_Z16,
|
|
GX_PF_Z24,
|
|
GX_PF_Y8,
|
|
GX_PF_U8,
|
|
GX_PF_V8,
|
|
GX_PF_YUV420,
|
|
} GXPixelFmt;
|
|
|
|
typedef enum _GXPrimitive {
|
|
GX_QUADS = 0x80,
|
|
GX_TRIANGLES = 0x90,
|
|
GX_TRIANGLESTRIP = 0x98,
|
|
GX_TRIANGLEFAN = 0xA0,
|
|
GX_LINES = 0xA8,
|
|
GX_LINESTRIP = 0xB0,
|
|
GX_POINTS = 0xB8,
|
|
} GXPrimitive;
|
|
|
|
typedef enum _GXVtxFmt {
|
|
GX_VTXFMT0,
|
|
GX_VTXFMT1,
|
|
GX_VTXFMT2,
|
|
GX_VTXFMT3,
|
|
GX_VTXFMT4,
|
|
GX_VTXFMT5,
|
|
GX_VTXFMT6,
|
|
GX_VTXFMT7,
|
|
GX_MAX_VTXFMT,
|
|
} GXVtxFmt;
|
|
|
|
typedef enum _GXAttr {
|
|
GX_VA_PNMTXIDX,
|
|
GX_VA_TEX0MTXIDX,
|
|
GX_VA_TEX1MTXIDX,
|
|
GX_VA_TEX2MTXIDX,
|
|
GX_VA_TEX3MTXIDX,
|
|
GX_VA_TEX4MTXIDX,
|
|
GX_VA_TEX5MTXIDX,
|
|
GX_VA_TEX6MTXIDX,
|
|
GX_VA_TEX7MTXIDX,
|
|
GX_VA_POS,
|
|
GX_VA_NRM,
|
|
GX_VA_CLR0,
|
|
GX_VA_CLR1,
|
|
GX_VA_TEX0,
|
|
GX_VA_TEX1,
|
|
GX_VA_TEX2,
|
|
GX_VA_TEX3,
|
|
GX_VA_TEX4,
|
|
GX_VA_TEX5,
|
|
GX_VA_TEX6,
|
|
GX_VA_TEX7,
|
|
GX_POS_MTX_ARRAY,
|
|
GX_NRM_MTX_ARRAY,
|
|
GX_TEX_MTX_ARRAY,
|
|
GX_LIGHT_ARRAY,
|
|
GX_VA_NBT,
|
|
GX_VA_MAX_ATTR,
|
|
GX_VA_NULL = 0xFF,
|
|
} GXAttr;
|
|
|
|
#define GX_MAX_VTXDESCLIST_SZ (GX_VA_MAX_ATTR + 1)
|
|
|
|
typedef enum _GXAttrType {
|
|
GX_NONE,
|
|
GX_DIRECT,
|
|
GX_INDEX8,
|
|
GX_INDEX16,
|
|
} GXAttrType;
|
|
|
|
#define _GX_TF_CTF 0x20
|
|
#define _GX_TF_ZTF 0x10
|
|
|
|
typedef enum _GXTexFmt {
|
|
GX_TF_I4 = 0x0,
|
|
GX_TF_I8 = 0x1,
|
|
GX_TF_IA4 = 0x2,
|
|
GX_TF_IA8 = 0x3,
|
|
GX_TF_RGB565 = 0x4,
|
|
GX_TF_RGB5A3 = 0x5,
|
|
GX_TF_RGBA8 = 0x6,
|
|
GX_TF_CMPR = 0xE,
|
|
|
|
GX_CTF_R4 = 0x0 ,
|
|
GX_CTF_RA4 = 0x2 ,
|
|
GX_CTF_RA8 = 0x3 ,
|
|
GX_CTF_YUVA8 = 0x6 ,
|
|
GX_CTF_A8 = 0x7 ,
|
|
GX_CTF_R8 = 0x8 ,
|
|
GX_CTF_G8 = 0x9 ,
|
|
GX_CTF_B8 = 0xA ,
|
|
GX_CTF_RG8 = 0xB ,
|
|
GX_CTF_GB8 = 0xC ,
|
|
|
|
GX_TF_Z8 = 0x1 ,
|
|
GX_TF_Z16 = 0x3 ,
|
|
GX_TF_Z24X8 = 0x6 ,
|
|
|
|
GX_CTF_Z4 = 0x0 ,
|
|
GX_CTF_Z8M = 0x9 ,
|
|
GX_CTF_Z8L = 0xA,
|
|
GX_CTF_Z16L = 0xC,
|
|
|
|
GX_TF_A8 = GX_CTF_A8,
|
|
} GXTexFmt;
|
|
|
|
typedef enum _GXCITexFmt {
|
|
GX_TF_C4 = 0x8,
|
|
GX_TF_C8 = 0x9,
|
|
GX_TF_C14X2 = 0xa,
|
|
} GXCITexFmt;
|
|
|
|
typedef enum _GXTexWrapMode {
|
|
GX_CLAMP,
|
|
GX_REPEAT,
|
|
GX_MIRROR,
|
|
GX_MAX_TEXWRAPMODE,
|
|
} GXTexWrapMode;
|
|
|
|
typedef enum _GXTexFilter {
|
|
GX_NEAR,
|
|
GX_LINEAR,
|
|
GX_NEAR_MIP_NEAR,
|
|
GX_LIN_MIP_NEAR,
|
|
GX_NEAR_MIP_LIN,
|
|
GX_LIN_MIP_LIN,
|
|
} GXTexFilter;
|
|
|
|
typedef enum _GXAnisotropy {
|
|
GX_ANISO_1,
|
|
GX_ANISO_2,
|
|
GX_ANISO_4,
|
|
GX_MAX_ANISOTROPY,
|
|
} GXAnisotropy;
|
|
|
|
typedef enum _GXTexMapID {
|
|
GX_TEXMAP0,
|
|
GX_TEXMAP1,
|
|
GX_TEXMAP2,
|
|
GX_TEXMAP3,
|
|
GX_TEXMAP4,
|
|
GX_TEXMAP5,
|
|
GX_TEXMAP6,
|
|
GX_TEXMAP7,
|
|
GX_MAX_TEXMAP,
|
|
GX_TEXMAP_NULL = 0xFF,
|
|
GX_TEX_DISABLE = 0x100,
|
|
} GXTexMapID;
|
|
|
|
typedef enum _GXTexCoordID {
|
|
GX_TEXCOORD0,
|
|
GX_TEXCOORD1,
|
|
GX_TEXCOORD2,
|
|
GX_TEXCOORD3,
|
|
GX_TEXCOORD4,
|
|
GX_TEXCOORD5,
|
|
GX_TEXCOORD6,
|
|
GX_TEXCOORD7,
|
|
GX_MAX_TEXCOORD,
|
|
GX_TEXCOORD_NULL = 0xFF,
|
|
} GXTexCoordID;
|
|
|
|
typedef enum _GXTevStageID {
|
|
GX_TEVSTAGE0,
|
|
GX_TEVSTAGE1,
|
|
GX_TEVSTAGE2,
|
|
GX_TEVSTAGE3,
|
|
GX_TEVSTAGE4,
|
|
GX_TEVSTAGE5,
|
|
GX_TEVSTAGE6,
|
|
GX_TEVSTAGE7,
|
|
GX_TEVSTAGE8,
|
|
GX_TEVSTAGE9,
|
|
GX_TEVSTAGE10,
|
|
GX_TEVSTAGE11,
|
|
GX_TEVSTAGE12,
|
|
GX_TEVSTAGE13,
|
|
GX_TEVSTAGE14,
|
|
GX_TEVSTAGE15,
|
|
GX_MAX_TEVSTAGE,
|
|
} GXTevStageID;
|
|
|
|
typedef enum _GXTevMode {
|
|
GX_MODULATE,
|
|
GX_DECAL,
|
|
GX_BLEND,
|
|
GX_REPLACE,
|
|
GX_PASSCLR,
|
|
} GXTevMode;
|
|
|
|
typedef enum _GXTexMtxType {
|
|
GX_MTX3x4,
|
|
GX_MTX2x4,
|
|
} GXTexMtxType;
|
|
|
|
typedef enum _GXTexGenType {
|
|
GX_TG_MTX3x4,
|
|
GX_TG_MTX2x4,
|
|
GX_TG_BUMP0,
|
|
GX_TG_BUMP1,
|
|
GX_TG_BUMP2,
|
|
GX_TG_BUMP3,
|
|
GX_TG_BUMP4,
|
|
GX_TG_BUMP5,
|
|
GX_TG_BUMP6,
|
|
GX_TG_BUMP7,
|
|
GX_TG_SRTG,
|
|
} GXTexGenType;
|
|
|
|
typedef enum _GXPosNrmMtx {
|
|
GX_PNMTX0 = 0,
|
|
GX_PNMTX1 = 3,
|
|
GX_PNMTX2 = 6,
|
|
GX_PNMTX3 = 9,
|
|
GX_PNMTX4 = 12,
|
|
GX_PNMTX5 = 15,
|
|
GX_PNMTX6 = 18,
|
|
GX_PNMTX7 = 21,
|
|
GX_PNMTX8 = 24,
|
|
GX_PNMTX9 = 27,
|
|
} GXPosNrmMtx;
|
|
|
|
typedef enum _GXTexMtx {
|
|
GX_TEXMTX0 = 30,
|
|
GX_TEXMTX1 = 33,
|
|
GX_TEXMTX2 = 36,
|
|
GX_TEXMTX3 = 39,
|
|
GX_TEXMTX4 = 42,
|
|
GX_TEXMTX5 = 45,
|
|
GX_TEXMTX6 = 48,
|
|
GX_TEXMTX7 = 51,
|
|
GX_TEXMTX8 = 54,
|
|
GX_TEXMTX9 = 57,
|
|
GX_IDENTITY = 60,
|
|
} GXTexMtx;
|
|
|
|
typedef enum _GXChannelID {
|
|
GX_COLOR0,
|
|
GX_COLOR1,
|
|
GX_ALPHA0,
|
|
GX_ALPHA1,
|
|
GX_COLOR0A0,
|
|
GX_COLOR1A1,
|
|
GX_COLOR_ZERO,
|
|
GX_ALPHA_BUMP,
|
|
GX_ALPHA_BUMPN,
|
|
GX_COLOR_NULL = 0xFF,
|
|
} GXChannelID;
|
|
|
|
typedef enum _GXTexGenSrc {
|
|
GX_TG_POS,
|
|
GX_TG_NRM,
|
|
GX_TG_BINRM,
|
|
GX_TG_TANGENT,
|
|
GX_TG_TEX0,
|
|
GX_TG_TEX1,
|
|
GX_TG_TEX2,
|
|
GX_TG_TEX3,
|
|
GX_TG_TEX4,
|
|
GX_TG_TEX5,
|
|
GX_TG_TEX6,
|
|
GX_TG_TEX7,
|
|
GX_TG_TEXCOORD0,
|
|
GX_TG_TEXCOORD1,
|
|
GX_TG_TEXCOORD2,
|
|
GX_TG_TEXCOORD3,
|
|
GX_TG_TEXCOORD4,
|
|
GX_TG_TEXCOORD5,
|
|
GX_TG_TEXCOORD6,
|
|
GX_TG_COLOR0,
|
|
GX_TG_COLOR1,
|
|
GX_MAX_TEXGENSRC,
|
|
} GXTexGenSrc;
|
|
|
|
typedef enum _GXBlendMode {
|
|
GX_BM_NONE,
|
|
GX_BM_BLEND,
|
|
GX_BM_LOGIC,
|
|
GX_BM_SUBTRACT,
|
|
GX_MAX_BLENDMODE,
|
|
} GXBlendMode;
|
|
|
|
typedef enum _GXBlendFactor {
|
|
GX_BL_ZERO,
|
|
GX_BL_ONE,
|
|
GX_BL_SRCCLR,
|
|
GX_BL_INVSRCCLR,
|
|
GX_BL_SRCALPHA,
|
|
GX_BL_INVSRCALPHA,
|
|
GX_BL_DSTALPHA,
|
|
GX_BL_INVDSTALPHA,
|
|
GX_BL_DSTCLR = GX_BL_SRCCLR,
|
|
GX_BL_INVDSTCLR = GX_BL_INVSRCCLR,
|
|
} GXBlendFactor;
|
|
|
|
typedef enum _GXLogicOp {
|
|
GX_LO_CLEAR,
|
|
GX_LO_AND,
|
|
GX_LO_REVAND,
|
|
GX_LO_COPY,
|
|
GX_LO_INVAND,
|
|
GX_LO_NOOP,
|
|
GX_LO_XOR,
|
|
GX_LO_OR,
|
|
GX_LO_NOR,
|
|
GX_LO_EQUIV,
|
|
GX_LO_INV,
|
|
GX_LO_REVOR,
|
|
GX_LO_INVCOPY,
|
|
GX_LO_INVOR,
|
|
GX_LO_NAND,
|
|
GX_LO_SET,
|
|
} GXLogicOp;
|
|
|
|
typedef enum _GXCompCnt {
|
|
GX_POS_XY = 0,
|
|
GX_POS_XYZ = 1,
|
|
GX_NRM_XYZ = 0,
|
|
GX_NRM_NBT = 1,
|
|
GX_NRM_NBT3 = 2,
|
|
GX_CLR_RGB = 0,
|
|
GX_CLR_RGBA = 1,
|
|
GX_TEX_S = 0,
|
|
GX_TEX_ST = 1,
|
|
} GXCompCnt;
|
|
|
|
typedef enum _GXCompType {
|
|
GX_U8 = 0,
|
|
GX_S8 = 1,
|
|
GX_U16 = 2,
|
|
GX_S16 = 3,
|
|
GX_F32 = 4,
|
|
GX_RGB565 = 0,
|
|
GX_RGB8 = 1,
|
|
GX_RGBX8 = 2,
|
|
GX_RGBA4 = 3,
|
|
GX_RGBA6 = 4,
|
|
GX_RGBA8 = 5,
|
|
} GXCompType;
|
|
|
|
typedef enum _GXPTTexMtx {
|
|
GX_PTTEXMTX0 = 64,
|
|
GX_PTTEXMTX1 = 67,
|
|
GX_PTTEXMTX2 = 70,
|
|
GX_PTTEXMTX3 = 73,
|
|
GX_PTTEXMTX4 = 76,
|
|
GX_PTTEXMTX5 = 79,
|
|
GX_PTTEXMTX6 = 82,
|
|
GX_PTTEXMTX7 = 85,
|
|
GX_PTTEXMTX8 = 88,
|
|
GX_PTTEXMTX9 = 91,
|
|
GX_PTTEXMTX10 = 94,
|
|
GX_PTTEXMTX11 = 97,
|
|
GX_PTTEXMTX12 = 100,
|
|
GX_PTTEXMTX13 = 103,
|
|
GX_PTTEXMTX14 = 106,
|
|
GX_PTTEXMTX15 = 109,
|
|
GX_PTTEXMTX16 = 112,
|
|
GX_PTTEXMTX17 = 115,
|
|
GX_PTTEXMTX18 = 118,
|
|
GX_PTTEXMTX19 = 121,
|
|
GX_PTIDENTITY = 125,
|
|
} GXPTTexMtx;
|
|
|
|
typedef enum _GXTevRegID {
|
|
GX_TEVPREV,
|
|
GX_TEVREG0,
|
|
GX_TEVREG1,
|
|
GX_TEVREG2,
|
|
GX_MAX_TEVREG,
|
|
} GXTevRegID;
|
|
|
|
typedef enum _GXDiffuseFn {
|
|
GX_DF_NONE,
|
|
GX_DF_SIGN,
|
|
GX_DF_CLAMP,
|
|
} GXDiffuseFn;
|
|
|
|
typedef enum _GXColorSrc {
|
|
GX_SRC_REG,
|
|
GX_SRC_VTX,
|
|
} GXColorSrc;
|
|
|
|
typedef enum _GXAttnFn {
|
|
GX_AF_SPEC,
|
|
GX_AF_SPOT,
|
|
GX_AF_NONE,
|
|
} GXAttnFn;
|
|
|
|
typedef enum _GXLightID {
|
|
GX_LIGHT0 = 0x001,
|
|
GX_LIGHT1 = 0x002,
|
|
GX_LIGHT2 = 0x004,
|
|
GX_LIGHT3 = 0x008,
|
|
GX_LIGHT4 = 0x010,
|
|
GX_LIGHT5 = 0x020,
|
|
GX_LIGHT6 = 0x040,
|
|
GX_LIGHT7 = 0x080,
|
|
GX_MAX_LIGHT = 0x100,
|
|
GX_LIGHT_NULL = 0,
|
|
} GXLightID;
|
|
|
|
typedef enum _GXTexOffset {
|
|
GX_TO_ZERO,
|
|
GX_TO_SIXTEENTH,
|
|
GX_TO_EIGHTH,
|
|
GX_TO_FOURTH,
|
|
GX_TO_HALF,
|
|
GX_TO_ONE,
|
|
GX_MAX_TEXOFFSET,
|
|
} GXTexOffset;
|
|
|
|
typedef enum _GXSpotFn {
|
|
GX_SP_OFF,
|
|
GX_SP_FLAT,
|
|
GX_SP_COS,
|
|
GX_SP_COS2,
|
|
GX_SP_SHARP,
|
|
GX_SP_RING1,
|
|
GX_SP_RING2,
|
|
} GXSpotFn;
|
|
|
|
typedef enum _GXDistAttnFn {
|
|
GX_DA_OFF,
|
|
GX_DA_GENTLE,
|
|
GX_DA_MEDIUM,
|
|
GX_DA_STEEP,
|
|
} GXDistAttnFn;
|
|
|
|
typedef enum _GXCullMode {
|
|
GX_CULL_NONE,
|
|
GX_CULL_FRONT,
|
|
GX_CULL_BACK,
|
|
GX_CULL_ALL,
|
|
} GXCullMode;
|
|
|
|
typedef enum _GXTevSwapSel {
|
|
GX_TEV_SWAP0 = 0,
|
|
GX_TEV_SWAP1,
|
|
GX_TEV_SWAP2,
|
|
GX_TEV_SWAP3,
|
|
GX_MAX_TEVSWAP,
|
|
} GXTevSwapSel;
|
|
|
|
typedef enum _GXTevColorChan {
|
|
GX_CH_RED = 0,
|
|
GX_CH_GREEN,
|
|
GX_CH_BLUE,
|
|
GX_CH_ALPHA,
|
|
} GXTevColorChan;
|
|
|
|
typedef enum _GXFogType {
|
|
GX_FOG_NONE = 0,
|
|
GX_FOG_PERSP_LIN = 2,
|
|
GX_FOG_PERSP_EXP = 4,
|
|
GX_FOG_PERSP_EXP2 = 5,
|
|
GX_FOG_PERSP_REVEXP = 6,
|
|
GX_FOG_PERSP_REVEXP2 = 7,
|
|
GX_FOG_ORTHO_LIN = 10,
|
|
GX_FOG_ORTHO_EXP = 12,
|
|
GX_FOG_ORTHO_EXP2 = 13,
|
|
GX_FOG_ORTHO_REVEXP = 14,
|
|
GX_FOG_ORTHO_REVEXP2 = 15,
|
|
GX_FOG_LIN = GX_FOG_PERSP_LIN,
|
|
GX_FOG_EXP = GX_FOG_PERSP_EXP,
|
|
GX_FOG_EXP2 = GX_FOG_PERSP_EXP2,
|
|
GX_FOG_REVEXP = GX_FOG_PERSP_REVEXP,
|
|
GX_FOG_REVEXP2 = GX_FOG_PERSP_REVEXP2,
|
|
} GXFogType;
|
|
|
|
typedef enum _GXTevColorArg {
|
|
GX_CC_CPREV,
|
|
GX_CC_APREV,
|
|
GX_CC_C0,
|
|
GX_CC_A0,
|
|
GX_CC_C1,
|
|
GX_CC_A1,
|
|
GX_CC_C2,
|
|
GX_CC_A2,
|
|
GX_CC_TEXC,
|
|
GX_CC_TEXA,
|
|
GX_CC_RASC,
|
|
GX_CC_RASA,
|
|
GX_CC_ONE,
|
|
GX_CC_HALF,
|
|
GX_CC_KONST,
|
|
GX_CC_ZERO,
|
|
} GXTevColorArg;
|
|
|
|
typedef enum _GXTevAlphaArg {
|
|
GX_CA_APREV,
|
|
GX_CA_A0,
|
|
GX_CA_A1,
|
|
GX_CA_A2,
|
|
GX_CA_TEXA,
|
|
GX_CA_RASA,
|
|
GX_CA_KONST,
|
|
GX_CA_ZERO,
|
|
} GXTevAlphaArg;
|
|
|
|
typedef enum _GXTevOp {
|
|
GX_TEV_ADD = 0,
|
|
GX_TEV_SUB = 1,
|
|
GX_TEV_COMP_R8_GT = 8,
|
|
GX_TEV_COMP_R8_EQ = 9,
|
|
GX_TEV_COMP_GR16_GT = 10,
|
|
GX_TEV_COMP_GR16_EQ = 11,
|
|
GX_TEV_COMP_BGR24_GT = 12,
|
|
GX_TEV_COMP_BGR24_EQ = 13,
|
|
GX_TEV_COMP_RGB8_GT = 14,
|
|
GX_TEV_COMP_RGB8_EQ = 15,
|
|
GX_TEV_COMP_A8_GT = GX_TEV_COMP_RGB8_GT,
|
|
GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ,
|
|
} GXTevOp;
|
|
|
|
typedef enum _GXTevBias {
|
|
GX_TB_ZERO,
|
|
GX_TB_ADDHALF,
|
|
GX_TB_SUBHALF,
|
|
GX_MAX_TEVBIAS,
|
|
} GXTevBias;
|
|
|
|
typedef enum _GXTevScale {
|
|
GX_CS_SCALE_1,
|
|
GX_CS_SCALE_2,
|
|
GX_CS_SCALE_4,
|
|
GX_CS_DIVIDE_2,
|
|
GX_MAX_TEVSCALE,
|
|
} GXTevScale;
|
|
|
|
typedef enum _GXTevKColorSel {
|
|
GX_TEV_KCSEL_8_8 = 0x00,
|
|
GX_TEV_KCSEL_7_8 = 0x01,
|
|
GX_TEV_KCSEL_6_8 = 0x02,
|
|
GX_TEV_KCSEL_5_8 = 0x03,
|
|
GX_TEV_KCSEL_4_8 = 0x04,
|
|
GX_TEV_KCSEL_3_8 = 0x05,
|
|
GX_TEV_KCSEL_2_8 = 0x06,
|
|
GX_TEV_KCSEL_1_8 = 0x07,
|
|
GX_TEV_KCSEL_1 = GX_TEV_KCSEL_8_8,
|
|
GX_TEV_KCSEL_3_4 = GX_TEV_KCSEL_6_8,
|
|
GX_TEV_KCSEL_1_2 = GX_TEV_KCSEL_4_8,
|
|
GX_TEV_KCSEL_1_4 = GX_TEV_KCSEL_2_8,
|
|
GX_TEV_KCSEL_K0 = 0x0C,
|
|
GX_TEV_KCSEL_K1 = 0x0D,
|
|
GX_TEV_KCSEL_K2 = 0x0E,
|
|
GX_TEV_KCSEL_K3 = 0x0F,
|
|
GX_TEV_KCSEL_K0_R = 0x10,
|
|
GX_TEV_KCSEL_K1_R = 0x11,
|
|
GX_TEV_KCSEL_K2_R = 0x12,
|
|
GX_TEV_KCSEL_K3_R = 0x13,
|
|
GX_TEV_KCSEL_K0_G = 0x14,
|
|
GX_TEV_KCSEL_K1_G = 0x15,
|
|
GX_TEV_KCSEL_K2_G = 0x16,
|
|
GX_TEV_KCSEL_K3_G = 0x17,
|
|
GX_TEV_KCSEL_K0_B = 0x18,
|
|
GX_TEV_KCSEL_K1_B = 0x19,
|
|
GX_TEV_KCSEL_K2_B = 0x1A,
|
|
GX_TEV_KCSEL_K3_B = 0x1B,
|
|
GX_TEV_KCSEL_K0_A = 0x1C,
|
|
GX_TEV_KCSEL_K1_A = 0x1D,
|
|
GX_TEV_KCSEL_K2_A = 0x1E,
|
|
GX_TEV_KCSEL_K3_A = 0x1F,
|
|
} GXTevKColorSel;
|
|
|
|
typedef enum _GXTevKAlphaSel {
|
|
GX_TEV_KASEL_8_8 = 0x00,
|
|
GX_TEV_KASEL_7_8 = 0x01,
|
|
GX_TEV_KASEL_6_8 = 0x02,
|
|
GX_TEV_KASEL_5_8 = 0x03,
|
|
GX_TEV_KASEL_4_8 = 0x04,
|
|
GX_TEV_KASEL_3_8 = 0x05,
|
|
GX_TEV_KASEL_2_8 = 0x06,
|
|
GX_TEV_KASEL_1_8 = 0x07,
|
|
GX_TEV_KASEL_1 = GX_TEV_KASEL_8_8,
|
|
GX_TEV_KASEL_3_4 = GX_TEV_KASEL_6_8,
|
|
GX_TEV_KASEL_1_2 = GX_TEV_KASEL_4_8,
|
|
GX_TEV_KASEL_1_4 = GX_TEV_KASEL_2_8,
|
|
GX_TEV_KASEL_K0_R = 0x10,
|
|
GX_TEV_KASEL_K1_R = 0x11,
|
|
GX_TEV_KASEL_K2_R = 0x12,
|
|
GX_TEV_KASEL_K3_R = 0x13,
|
|
GX_TEV_KASEL_K0_G = 0x14,
|
|
GX_TEV_KASEL_K1_G = 0x15,
|
|
GX_TEV_KASEL_K2_G = 0x16,
|
|
GX_TEV_KASEL_K3_G = 0x17,
|
|
GX_TEV_KASEL_K0_B = 0x18,
|
|
GX_TEV_KASEL_K1_B = 0x19,
|
|
GX_TEV_KASEL_K2_B = 0x1A,
|
|
GX_TEV_KASEL_K3_B = 0x1B,
|
|
GX_TEV_KASEL_K0_A = 0x1C,
|
|
GX_TEV_KASEL_K1_A = 0x1D,
|
|
GX_TEV_KASEL_K2_A = 0x1E,
|
|
GX_TEV_KASEL_K3_A = 0x1F,
|
|
} GXTevKAlphaSel;
|
|
|
|
typedef enum _GXTevKColorID {
|
|
GX_KCOLOR0 = 0,
|
|
GX_KCOLOR1,
|
|
GX_KCOLOR2,
|
|
GX_KCOLOR3,
|
|
GX_MAX_KCOLOR,
|
|
} GXTevKColorID;
|
|
|
|
typedef enum _GXZTexOp {
|
|
GX_ZT_DISABLE,
|
|
GX_ZT_ADD,
|
|
GX_ZT_REPLACE,
|
|
GX_MAX_ZTEXOP,
|
|
} GXZTexOp;
|
|
|
|
typedef enum _GXIndTexFormat {
|
|
GX_ITF_8,
|
|
GX_ITF_5,
|
|
GX_ITF_4,
|
|
GX_ITF_3,
|
|
GX_MAX_ITFORMAT,
|
|
} GXIndTexFormat;
|
|
|
|
typedef enum _GXIndTexBiasSel {
|
|
GX_ITB_NONE,
|
|
GX_ITB_S,
|
|
GX_ITB_T,
|
|
GX_ITB_ST,
|
|
GX_ITB_U,
|
|
GX_ITB_SU,
|
|
GX_ITB_TU,
|
|
GX_ITB_STU,
|
|
GX_MAX_ITBIAS,
|
|
} GXIndTexBiasSel;
|
|
|
|
typedef enum _GXIndTexAlphaSel {
|
|
GX_ITBA_OFF,
|
|
GX_ITBA_S,
|
|
GX_ITBA_T,
|
|
GX_ITBA_U,
|
|
GX_MAX_ITBALPHA,
|
|
} GXIndTexAlphaSel;
|
|
|
|
typedef enum _GXIndTexMtxID {
|
|
GX_ITM_OFF,
|
|
GX_ITM_0,
|
|
GX_ITM_1,
|
|
GX_ITM_2,
|
|
GX_ITM_S0 = 5,
|
|
GX_ITM_S1,
|
|
GX_ITM_S2,
|
|
GX_ITM_T0 = 9,
|
|
GX_ITM_T1,
|
|
GX_ITM_T2,
|
|
} GXIndTexMtxID;
|
|
|
|
typedef enum _GXIndTexWrap {
|
|
GX_ITW_OFF,
|
|
GX_ITW_256,
|
|
GX_ITW_128,
|
|
GX_ITW_64,
|
|
GX_ITW_32,
|
|
GX_ITW_16,
|
|
GX_ITW_0,
|
|
GX_MAX_ITWRAP,
|
|
} GXIndTexWrap;
|
|
|
|
typedef enum _GXIndTexStageID {
|
|
GX_INDTEXSTAGE0,
|
|
GX_INDTEXSTAGE1,
|
|
GX_INDTEXSTAGE2,
|
|
GX_INDTEXSTAGE3,
|
|
GX_MAX_INDTEXSTAGE,
|
|
} GXIndTexStageID;
|
|
|
|
typedef enum _GXIndTexScale {
|
|
GX_ITS_1,
|
|
GX_ITS_2,
|
|
GX_ITS_4,
|
|
GX_ITS_8,
|
|
GX_ITS_16,
|
|
GX_ITS_32,
|
|
GX_ITS_64,
|
|
GX_ITS_128,
|
|
GX_ITS_256,
|
|
GX_MAX_ITSCALE,
|
|
} GXIndTexScale;
|
|
|
|
typedef enum _GXClipMode {
|
|
GX_CLIP_ENABLE = 0,
|
|
GX_CLIP_DISABLE = 1,
|
|
} GXClipMode;
|
|
|
|
typedef enum _GXTlut {
|
|
GX_TLUT0 = 0,
|
|
GX_TLUT1 = 1,
|
|
GX_TLUT2 = 2,
|
|
GX_TLUT3 = 3,
|
|
GX_TLUT4 = 4,
|
|
GX_TLUT5 = 5,
|
|
GX_TLUT6 = 6,
|
|
GX_TLUT7 = 7,
|
|
GX_TLUT8 = 8,
|
|
GX_TLUT9 = 9,
|
|
GX_TLUT10 = 10,
|
|
GX_TLUT11 = 11,
|
|
GX_TLUT12 = 12,
|
|
GX_TLUT13 = 13,
|
|
GX_TLUT14 = 14,
|
|
GX_TLUT15 = 15,
|
|
GX_BIGTLUT0 = 16,
|
|
GX_BIGTLUT1 = 17,
|
|
GX_BIGTLUT2 = 18,
|
|
GX_BIGTLUT3 = 19,
|
|
} GXTlut;
|
|
|
|
typedef enum _GXTlutFmt {
|
|
GX_TL_IA8,
|
|
GX_TL_RGB565,
|
|
GX_TL_RGB5A3,
|
|
GX_MAX_TLUTFMT,
|
|
} GXTlutFmt;
|
|
|
|
typedef enum _GXMiscToken {
|
|
GX_MT_NULL = 0,
|
|
GX_MT_XF_FLUSH = 1,
|
|
GX_MT_DL_SAVE_CONTEXT = 2,
|
|
GX_MT_ABORT_WAIT_COPYOUT = 3,
|
|
} GXMiscToken;
|
|
|
|
typedef enum _GXTexCacheSize {
|
|
GX_TEXCACHE_32K,
|
|
GX_TEXCACHE_128K,
|
|
GX_TEXCACHE_512K,
|
|
GX_TEXCACHE_NONE
|
|
} GXTexCacheSize;
|
|
|
|
typedef enum _GXPerf0 {
|
|
GX_PERF0_VERTICES,
|
|
GX_PERF0_CLIP_VTX,
|
|
GX_PERF0_CLIP_CLKS,
|
|
GX_PERF0_XF_WAIT_IN,
|
|
GX_PERF0_XF_WAIT_OUT,
|
|
GX_PERF0_XF_XFRM_CLKS,
|
|
GX_PERF0_XF_LIT_CLKS,
|
|
GX_PERF0_XF_BOT_CLKS,
|
|
GX_PERF0_XF_REGLD_CLKS,
|
|
GX_PERF0_XF_REGRD_CLKS,
|
|
GX_PERF0_CLIP_RATIO,
|
|
|
|
GX_PERF0_TRIANGLES,
|
|
GX_PERF0_TRIANGLES_CULLED,
|
|
GX_PERF0_TRIANGLES_PASSED,
|
|
GX_PERF0_TRIANGLES_SCISSORED,
|
|
GX_PERF0_TRIANGLES_0TEX,
|
|
GX_PERF0_TRIANGLES_1TEX,
|
|
GX_PERF0_TRIANGLES_2TEX,
|
|
GX_PERF0_TRIANGLES_3TEX,
|
|
GX_PERF0_TRIANGLES_4TEX,
|
|
GX_PERF0_TRIANGLES_5TEX,
|
|
GX_PERF0_TRIANGLES_6TEX,
|
|
GX_PERF0_TRIANGLES_7TEX,
|
|
GX_PERF0_TRIANGLES_8TEX,
|
|
GX_PERF0_TRIANGLES_0CLR,
|
|
GX_PERF0_TRIANGLES_1CLR,
|
|
GX_PERF0_TRIANGLES_2CLR,
|
|
|
|
GX_PERF0_QUAD_0CVG,
|
|
GX_PERF0_QUAD_NON0CVG,
|
|
GX_PERF0_QUAD_1CVG,
|
|
GX_PERF0_QUAD_2CVG,
|
|
GX_PERF0_QUAD_3CVG,
|
|
GX_PERF0_QUAD_4CVG,
|
|
GX_PERF0_AVG_QUAD_CNT,
|
|
|
|
GX_PERF0_CLOCKS,
|
|
GX_PERF0_NONE
|
|
|
|
} GXPerf0;
|
|
|
|
typedef enum _GXPerf1 {
|
|
GX_PERF1_TEXELS,
|
|
GX_PERF1_TX_IDLE,
|
|
GX_PERF1_TX_REGS,
|
|
GX_PERF1_TX_MEMSTALL,
|
|
GX_PERF1_TC_CHECK1_2,
|
|
GX_PERF1_TC_CHECK3_4,
|
|
GX_PERF1_TC_CHECK5_6,
|
|
GX_PERF1_TC_CHECK7_8,
|
|
GX_PERF1_TC_MISS,
|
|
|
|
GX_PERF1_VC_ELEMQ_FULL,
|
|
GX_PERF1_VC_MISSQ_FULL,
|
|
GX_PERF1_VC_MEMREQ_FULL,
|
|
GX_PERF1_VC_STATUS7,
|
|
GX_PERF1_VC_MISSREP_FULL,
|
|
GX_PERF1_VC_STREAMBUF_LOW,
|
|
GX_PERF1_VC_ALL_STALLS,
|
|
GX_PERF1_VERTICES,
|
|
|
|
GX_PERF1_FIFO_REQ,
|
|
GX_PERF1_CALL_REQ,
|
|
GX_PERF1_VC_MISS_REQ,
|
|
GX_PERF1_CP_ALL_REQ,
|
|
|
|
GX_PERF1_CLOCKS,
|
|
GX_PERF1_NONE
|
|
|
|
} GXPerf1;
|
|
|
|
typedef enum _GXVCachePerf {
|
|
GX_VC_POS,
|
|
GX_VC_NRM,
|
|
GX_VC_CLR0,
|
|
GX_VC_CLR1,
|
|
GX_VC_TEX0,
|
|
GX_VC_TEX1,
|
|
GX_VC_TEX2,
|
|
GX_VC_TEX3,
|
|
GX_VC_TEX4,
|
|
GX_VC_TEX5,
|
|
GX_VC_TEX6,
|
|
GX_VC_TEX7,
|
|
GX_VC_ALL = 0xf
|
|
|
|
} GXVCachePerf;
|
|
|
|
typedef enum _GXFBClamp {
|
|
GX_CLAMP_NONE = 0,
|
|
GX_CLAMP_TOP = 1,
|
|
GX_CLAMP_BOTTOM = 2,
|
|
} GXFBClamp;
|
|
|
|
typedef enum _GXCopyMode {
|
|
GX_COPY_PROGRESSIVE = 0,
|
|
GX_COPY_INTLC_EVEN = 2,
|
|
GX_COPY_INTLC_ODD = 3,
|
|
} GXCopyMode;
|
|
|
|
typedef enum _GXAlphaReadMode {
|
|
GX_READ_00 = 0,
|
|
GX_READ_FF = 1,
|
|
GX_READ_NONE = 2,
|
|
|
|
} _GXAlphaReadMode;
|
|
|
|
typedef enum _GXLogicOp {
|
|
GX_LO_CLEAR,
|
|
GX_LO_AND,
|
|
GX_LO_REVAND,
|
|
GX_LO_COPY,
|
|
GX_LO_INVAND,
|
|
GX_LO_NOOP,
|
|
GX_LO_XOR,
|
|
GX_LO_OR,
|
|
GX_LO_NOR,
|
|
GX_LO_EQUIV,
|
|
GX_LO_INV,
|
|
GX_LO_REVOR,
|
|
GX_LO_INVCOPY,
|
|
GX_LO_INVOR,
|
|
GX_LO_NAND,
|
|
GX_LO_SET,
|
|
} GXLogicOp;
|
|
|
|
typedef enum _GXCompCnt {
|
|
GX_POS_XY = 0,
|
|
GX_POS_XYZ = 1,
|
|
GX_NRM_XYZ = 0,
|
|
GX_NRM_NBT = 1,
|
|
GX_NRM_NBT3 = 2,
|
|
GX_CLR_RGB = 0,
|
|
GX_CLR_RGBA = 1,
|
|
GX_TEX_S = 0,
|
|
GX_TEX_ST = 1,
|
|
} GXCompCnt;
|
|
|
|
typedef enum _GXCompType {
|
|
GX_U8 = 0,
|
|
GX_S8 = 1,
|
|
GX_U16 = 2,
|
|
GX_S16 = 3,
|
|
GX_F32 = 4,
|
|
GX_RGB565 = 0,
|
|
GX_RGB8 = 1,
|
|
GX_RGBX8 = 2,
|
|
GX_RGBA4 = 3,
|
|
GX_RGBA6 = 4,
|
|
GX_RGBA8 = 5,
|
|
} GXCompType;
|
|
|
|
typedef enum _GXPTTexMtx {
|
|
GX_PTTEXMTX0 = 64,
|
|
GX_PTTEXMTX1 = 67,
|
|
GX_PTTEXMTX2 = 70,
|
|
GX_PTTEXMTX3 = 73,
|
|
GX_PTTEXMTX4 = 76,
|
|
GX_PTTEXMTX5 = 79,
|
|
GX_PTTEXMTX6 = 82,
|
|
GX_PTTEXMTX7 = 85,
|
|
GX_PTTEXMTX8 = 88,
|
|
GX_PTTEXMTX9 = 91,
|
|
GX_PTTEXMTX10 = 94,
|
|
GX_PTTEXMTX11 = 97,
|
|
GX_PTTEXMTX12 = 100,
|
|
GX_PTTEXMTX13 = 103,
|
|
GX_PTTEXMTX14 = 106,
|
|
GX_PTTEXMTX15 = 109,
|
|
GX_PTTEXMTX16 = 112,
|
|
GX_PTTEXMTX17 = 115,
|
|
GX_PTTEXMTX18 = 118,
|
|
GX_PTTEXMTX19 = 121,
|
|
GX_PTIDENTITY = 125,
|
|
} GXPTTexMtx;
|
|
|
|
typedef struct _GXColor {
|
|
u8 r;
|
|
u8 g;
|
|
u8 b;
|
|
u8 a;
|
|
} GXColor;
|
|
|
|
typedef struct _GXTexObj {
|
|
u32 dummy[8];
|
|
} GXTexObj;
|
|
|
|
typedef struct _GXTlutObj {
|
|
u32 dummy[3];
|
|
} GXTlutObj;
|
|
|
|
typedef struct _GXLightObj {
|
|
u32 dummy[16];
|
|
} GXLightObj;
|
|
|
|
typedef struct _GXVtxDescList {
|
|
GXAttr attr;
|
|
GXAttrType type;
|
|
} GXVtxDescList;
|
|
|
|
typedef struct _GXColorS10 {
|
|
s16 r;
|
|
s16 g;
|
|
s16 b;
|
|
s16 a;
|
|
} GXColorS10;
|
|
|
|
typedef struct _GXTexRegion {
|
|
u32 dummy[4];
|
|
} GXTexRegion;
|
|
|
|
typedef struct _GXTlutRegion {
|
|
u32 dummy[4];
|
|
} GXTlutRegion;
|
|
|
|
typedef struct _GXVtxAttrFmtList {
|
|
// total size: 0x10
|
|
GXAttr attr; // offset 0x0, size 0x4
|
|
GXCompCnt cnt; // offset 0x4, size 0x4
|
|
GXCompType type; // offset 0x8, size 0x4
|
|
u8 frac; // offset 0xC, size 0x1
|
|
} GXVtxAttrFmtList;
|
|
|
|
typedef enum _GXTevRegID {
|
|
GX_TEVPREV,
|
|
GX_TEVREG0,
|
|
GX_TEVREG1,
|
|
GX_TEVREG2,
|
|
GX_MAX_TEVREG,
|
|
} GXTevRegID;
|
|
|
|
typedef enum _GXDiffuseFn {
|
|
GX_DF_NONE,
|
|
GX_DF_SIGN,
|
|
GX_DF_CLAMP,
|
|
} GXDiffuseFn;
|
|
|
|
typedef enum _GXColorSrc {
|
|
GX_SRC_REG,
|
|
GX_SRC_VTX,
|
|
} GXColorSrc;
|
|
|
|
typedef enum _GXAttnFn {
|
|
GX_AF_SPEC,
|
|
GX_AF_SPOT,
|
|
GX_AF_NONE,
|
|
} GXAttnFn;
|
|
|
|
typedef enum _GXLightID {
|
|
GX_LIGHT0 = 0x001,
|
|
GX_LIGHT1 = 0x002,
|
|
GX_LIGHT2 = 0x004,
|
|
GX_LIGHT3 = 0x008,
|
|
GX_LIGHT4 = 0x010,
|
|
GX_LIGHT5 = 0x020,
|
|
GX_LIGHT6 = 0x040,
|
|
GX_LIGHT7 = 0x080,
|
|
GX_MAX_LIGHT = 0x100,
|
|
GX_LIGHT_NULL = 0,
|
|
} GXLightID;
|
|
|
|
typedef enum _GXTexOffset {
|
|
GX_TO_ZERO,
|
|
GX_TO_SIXTEENTH,
|
|
GX_TO_EIGHTH,
|
|
GX_TO_FOURTH,
|
|
GX_TO_HALF,
|
|
GX_TO_ONE,
|
|
GX_MAX_TEXOFFSET,
|
|
} GXTexOffset;
|
|
|
|
typedef enum _GXSpotFn {
|
|
GX_SP_OFF,
|
|
GX_SP_FLAT,
|
|
GX_SP_COS,
|
|
GX_SP_COS2,
|
|
GX_SP_SHARP,
|
|
GX_SP_RING1,
|
|
GX_SP_RING2,
|
|
} GXSpotFn;
|
|
|
|
typedef enum _GXDistAttnFn {
|
|
GX_DA_OFF,
|
|
GX_DA_GENTLE,
|
|
GX_DA_MEDIUM,
|
|
GX_DA_STEEP,
|
|
} GXDistAttnFn;
|
|
|
|
typedef enum _GXCullMode {
|
|
GX_CULL_NONE,
|
|
GX_CULL_FRONT,
|
|
GX_CULL_BACK,
|
|
GX_CULL_ALL,
|
|
} GXCullMode;
|
|
|
|
typedef enum _GXTevSwapSel {
|
|
GX_TEV_SWAP0 = 0,
|
|
GX_TEV_SWAP1,
|
|
GX_TEV_SWAP2,
|
|
GX_TEV_SWAP3,
|
|
GX_MAX_TEVSWAP,
|
|
} GXTevSwapSel;
|
|
|
|
typedef enum _GXTevColorChan {
|
|
GX_CH_RED = 0,
|
|
GX_CH_GREEN,
|
|
GX_CH_BLUE,
|
|
GX_CH_ALPHA,
|
|
} GXTevColorChan;
|
|
|
|
typedef enum _GXFogType {
|
|
GX_FOG_NONE = 0,
|
|
GX_FOG_PERSP_LIN = 2,
|
|
GX_FOG_PERSP_EXP = 4,
|
|
GX_FOG_PERSP_EXP2 = 5,
|
|
GX_FOG_PERSP_REVEXP = 6,
|
|
GX_FOG_PERSP_REVEXP2 = 7,
|
|
GX_FOG_ORTHO_LIN = 10,
|
|
GX_FOG_ORTHO_EXP = 12,
|
|
GX_FOG_ORTHO_EXP2 = 13,
|
|
GX_FOG_ORTHO_REVEXP = 14,
|
|
GX_FOG_ORTHO_REVEXP2 = 15,
|
|
GX_FOG_LIN = GX_FOG_PERSP_LIN,
|
|
GX_FOG_EXP = GX_FOG_PERSP_EXP,
|
|
GX_FOG_EXP2 = GX_FOG_PERSP_EXP2,
|
|
GX_FOG_REVEXP = GX_FOG_PERSP_REVEXP,
|
|
GX_FOG_REVEXP2 = GX_FOG_PERSP_REVEXP2,
|
|
} GXFogType;
|
|
|
|
typedef enum _GXTevColorArg {
|
|
GX_CC_CPREV,
|
|
GX_CC_APREV,
|
|
GX_CC_C0,
|
|
GX_CC_A0,
|
|
GX_CC_C1,
|
|
GX_CC_A1,
|
|
GX_CC_C2,
|
|
GX_CC_A2,
|
|
GX_CC_TEXC,
|
|
GX_CC_TEXA,
|
|
GX_CC_RASC,
|
|
GX_CC_RASA,
|
|
GX_CC_ONE,
|
|
GX_CC_HALF,
|
|
GX_CC_KONST,
|
|
GX_CC_ZERO,
|
|
} GXTevColorArg;
|
|
|
|
typedef enum _GXTevAlphaArg {
|
|
GX_CA_APREV,
|
|
GX_CA_A0,
|
|
GX_CA_A1,
|
|
GX_CA_A2,
|
|
GX_CA_TEXA,
|
|
GX_CA_RASA,
|
|
GX_CA_KONST,
|
|
GX_CA_ZERO,
|
|
} GXTevAlphaArg;
|
|
|
|
typedef enum _GXTevOp {
|
|
GX_TEV_ADD = 0,
|
|
GX_TEV_SUB = 1,
|
|
GX_TEV_COMP_R8_GT = 8,
|
|
GX_TEV_COMP_R8_EQ = 9,
|
|
GX_TEV_COMP_GR16_GT = 10,
|
|
GX_TEV_COMP_GR16_EQ = 11,
|
|
GX_TEV_COMP_BGR24_GT = 12,
|
|
GX_TEV_COMP_BGR24_EQ = 13,
|
|
GX_TEV_COMP_RGB8_GT = 14,
|
|
GX_TEV_COMP_RGB8_EQ = 15,
|
|
GX_TEV_COMP_A8_GT = GX_TEV_COMP_RGB8_GT,
|
|
GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ,
|
|
} GXTevOp;
|
|
|
|
typedef enum _GXTevBias {
|
|
GX_TB_ZERO,
|
|
GX_TB_ADDHALF,
|
|
GX_TB_SUBHALF,
|
|
GX_MAX_TEVBIAS,
|
|
} GXTevBias;
|
|
|
|
typedef enum _GXTevScale {
|
|
GX_CS_SCALE_1,
|
|
GX_CS_SCALE_2,
|
|
GX_CS_SCALE_4,
|
|
GX_CS_DIVIDE_2,
|
|
GX_MAX_TEVSCALE,
|
|
} GXTevScale;
|
|
|
|
typedef enum _GXTevKColorSel {
|
|
GX_TEV_KCSEL_8_8 = 0x00,
|
|
GX_TEV_KCSEL_7_8 = 0x01,
|
|
GX_TEV_KCSEL_6_8 = 0x02,
|
|
GX_TEV_KCSEL_5_8 = 0x03,
|
|
GX_TEV_KCSEL_4_8 = 0x04,
|
|
GX_TEV_KCSEL_3_8 = 0x05,
|
|
GX_TEV_KCSEL_2_8 = 0x06,
|
|
GX_TEV_KCSEL_1_8 = 0x07,
|
|
GX_TEV_KCSEL_1 = GX_TEV_KCSEL_8_8,
|
|
GX_TEV_KCSEL_3_4 = GX_TEV_KCSEL_6_8,
|
|
GX_TEV_KCSEL_1_2 = GX_TEV_KCSEL_4_8,
|
|
GX_TEV_KCSEL_1_4 = GX_TEV_KCSEL_2_8,
|
|
GX_TEV_KCSEL_K0 = 0x0C,
|
|
GX_TEV_KCSEL_K1 = 0x0D,
|
|
GX_TEV_KCSEL_K2 = 0x0E,
|
|
GX_TEV_KCSEL_K3 = 0x0F,
|
|
GX_TEV_KCSEL_K0_R = 0x10,
|
|
GX_TEV_KCSEL_K1_R = 0x11,
|
|
GX_TEV_KCSEL_K2_R = 0x12,
|
|
GX_TEV_KCSEL_K3_R = 0x13,
|
|
GX_TEV_KCSEL_K0_G = 0x14,
|
|
GX_TEV_KCSEL_K1_G = 0x15,
|
|
GX_TEV_KCSEL_K2_G = 0x16,
|
|
GX_TEV_KCSEL_K3_G = 0x17,
|
|
GX_TEV_KCSEL_K0_B = 0x18,
|
|
GX_TEV_KCSEL_K1_B = 0x19,
|
|
GX_TEV_KCSEL_K2_B = 0x1A,
|
|
GX_TEV_KCSEL_K3_B = 0x1B,
|
|
GX_TEV_KCSEL_K0_A = 0x1C,
|
|
GX_TEV_KCSEL_K1_A = 0x1D,
|
|
GX_TEV_KCSEL_K2_A = 0x1E,
|
|
GX_TEV_KCSEL_K3_A = 0x1F,
|
|
} GXTevKColorSel;
|
|
|
|
typedef enum _GXTevKAlphaSel {
|
|
GX_TEV_KASEL_8_8 = 0x00,
|
|
GX_TEV_KASEL_7_8 = 0x01,
|
|
GX_TEV_KASEL_6_8 = 0x02,
|
|
GX_TEV_KASEL_5_8 = 0x03,
|
|
GX_TEV_KASEL_4_8 = 0x04,
|
|
GX_TEV_KASEL_3_8 = 0x05,
|
|
GX_TEV_KASEL_2_8 = 0x06,
|
|
GX_TEV_KASEL_1_8 = 0x07,
|
|
GX_TEV_KASEL_1 = GX_TEV_KASEL_8_8,
|
|
GX_TEV_KASEL_3_4 = GX_TEV_KASEL_6_8,
|
|
GX_TEV_KASEL_1_2 = GX_TEV_KASEL_4_8,
|
|
GX_TEV_KASEL_1_4 = GX_TEV_KASEL_2_8,
|
|
GX_TEV_KASEL_K0_R = 0x10,
|
|
GX_TEV_KASEL_K1_R = 0x11,
|
|
GX_TEV_KASEL_K2_R = 0x12,
|
|
GX_TEV_KASEL_K3_R = 0x13,
|
|
GX_TEV_KASEL_K0_G = 0x14,
|
|
GX_TEV_KASEL_K1_G = 0x15,
|
|
GX_TEV_KASEL_K2_G = 0x16,
|
|
GX_TEV_KASEL_K3_G = 0x17,
|
|
GX_TEV_KASEL_K0_B = 0x18,
|
|
GX_TEV_KASEL_K1_B = 0x19,
|
|
GX_TEV_KASEL_K2_B = 0x1A,
|
|
GX_TEV_KASEL_K3_B = 0x1B,
|
|
GX_TEV_KASEL_K0_A = 0x1C,
|
|
GX_TEV_KASEL_K1_A = 0x1D,
|
|
GX_TEV_KASEL_K2_A = 0x1E,
|
|
GX_TEV_KASEL_K3_A = 0x1F,
|
|
} GXTevKAlphaSel;
|
|
|
|
typedef enum _GXTevKColorID {
|
|
GX_KCOLOR0 = 0,
|
|
GX_KCOLOR1,
|
|
GX_KCOLOR2,
|
|
GX_KCOLOR3,
|
|
GX_MAX_KCOLOR,
|
|
} GXTevKColorID;
|
|
|
|
typedef enum _GXZTexOp {
|
|
GX_ZT_DISABLE,
|
|
GX_ZT_ADD,
|
|
GX_ZT_REPLACE,
|
|
GX_MAX_ZTEXOP,
|
|
} GXZTexOp;
|
|
|
|
typedef enum _GXIndTexFormat {
|
|
GX_ITF_8,
|
|
GX_ITF_5,
|
|
GX_ITF_4,
|
|
GX_ITF_3,
|
|
GX_MAX_ITFORMAT,
|
|
} GXIndTexFormat;
|
|
|
|
typedef enum _GXIndTexBiasSel {
|
|
GX_ITB_NONE,
|
|
GX_ITB_S,
|
|
GX_ITB_T,
|
|
GX_ITB_ST,
|
|
GX_ITB_U,
|
|
GX_ITB_SU,
|
|
GX_ITB_TU,
|
|
GX_ITB_STU,
|
|
GX_MAX_ITBIAS,
|
|
} GXIndTexBiasSel;
|
|
|
|
typedef enum _GXIndTexAlphaSel {
|
|
GX_ITBA_OFF,
|
|
GX_ITBA_S,
|
|
GX_ITBA_T,
|
|
GX_ITBA_U,
|
|
GX_MAX_ITBALPHA,
|
|
} GXIndTexAlphaSel;
|
|
|
|
typedef enum _GXIndTexMtxID {
|
|
GX_ITM_OFF,
|
|
GX_ITM_0,
|
|
GX_ITM_1,
|
|
GX_ITM_2,
|
|
GX_ITM_S0 = 5,
|
|
GX_ITM_S1,
|
|
GX_ITM_S2,
|
|
GX_ITM_T0 = 9,
|
|
GX_ITM_T1,
|
|
GX_ITM_T2,
|
|
} GXIndTexMtxID;
|
|
|
|
typedef enum _GXIndTexWrap {
|
|
GX_ITW_OFF,
|
|
GX_ITW_256,
|
|
GX_ITW_128,
|
|
GX_ITW_64,
|
|
GX_ITW_32,
|
|
GX_ITW_16,
|
|
GX_ITW_0,
|
|
GX_MAX_ITWRAP,
|
|
} GXIndTexWrap;
|
|
|
|
typedef enum _GXIndTexStageID {
|
|
GX_INDTEXSTAGE0,
|
|
GX_INDTEXSTAGE1,
|
|
GX_INDTEXSTAGE2,
|
|
GX_INDTEXSTAGE3,
|
|
GX_MAX_INDTEXSTAGE,
|
|
} GXIndTexStageID;
|
|
|
|
typedef enum _GXIndTexScale {
|
|
GX_ITS_1,
|
|
GX_ITS_2,
|
|
GX_ITS_4,
|
|
GX_ITS_8,
|
|
GX_ITS_16,
|
|
GX_ITS_32,
|
|
GX_ITS_64,
|
|
GX_ITS_128,
|
|
GX_ITS_256,
|
|
GX_MAX_ITSCALE,
|
|
} GXIndTexScale;
|
|
|
|
typedef enum _GXClipMode {
|
|
GX_CLIP_ENABLE = 0,
|
|
GX_CLIP_DISABLE = 1,
|
|
} GXClipMode;
|
|
|
|
typedef enum _GXTlut {
|
|
GX_TLUT0 = 0,
|
|
GX_TLUT1 = 1,
|
|
GX_TLUT2 = 2,
|
|
GX_TLUT3 = 3,
|
|
GX_TLUT4 = 4,
|
|
GX_TLUT5 = 5,
|
|
GX_TLUT6 = 6,
|
|
GX_TLUT7 = 7,
|
|
GX_TLUT8 = 8,
|
|
GX_TLUT9 = 9,
|
|
GX_TLUT10 = 10,
|
|
GX_TLUT11 = 11,
|
|
GX_TLUT12 = 12,
|
|
GX_TLUT13 = 13,
|
|
GX_TLUT14 = 14,
|
|
GX_TLUT15 = 15,
|
|
GX_BIGTLUT0 = 16,
|
|
GX_BIGTLUT1 = 17,
|
|
GX_BIGTLUT2 = 18,
|
|
GX_BIGTLUT3 = 19,
|
|
} GXTlut;
|
|
|
|
typedef enum _GXTlutFmt {
|
|
GX_TL_IA8,
|
|
GX_TL_RGB565,
|
|
GX_TL_RGB5A3,
|
|
GX_MAX_TLUTFMT,
|
|
} GXTlutFmt;
|
|
|
|
typedef enum _GXMiscToken {
|
|
GX_MT_NULL = 0,
|
|
GX_MT_XF_FLUSH = 1,
|
|
GX_MT_DL_SAVE_CONTEXT = 2,
|
|
GX_MT_ABORT_WAIT_COPYOUT = 3,
|
|
} GXMiscToken;
|
|
|
|
typedef enum _GXTexCacheSize {
|
|
GX_TEXCACHE_32K,
|
|
GX_TEXCACHE_128K,
|
|
GX_TEXCACHE_512K,
|
|
GX_TEXCACHE_NONE
|
|
} GXTexCacheSize;
|
|
|
|
typedef enum _GXPerf0 {
|
|
GX_PERF0_VERTICES,
|
|
GX_PERF0_CLIP_VTX,
|
|
GX_PERF0_CLIP_CLKS,
|
|
GX_PERF0_XF_WAIT_IN,
|
|
GX_PERF0_XF_WAIT_OUT,
|
|
GX_PERF0_XF_XFRM_CLKS,
|
|
GX_PERF0_XF_LIT_CLKS,
|
|
GX_PERF0_XF_BOT_CLKS,
|
|
GX_PERF0_XF_REGLD_CLKS,
|
|
GX_PERF0_XF_REGRD_CLKS,
|
|
GX_PERF0_CLIP_RATIO,
|
|
|
|
GX_PERF0_TRIANGLES,
|
|
GX_PERF0_TRIANGLES_CULLED,
|
|
GX_PERF0_TRIANGLES_PASSED,
|
|
GX_PERF0_TRIANGLES_SCISSORED,
|
|
GX_PERF0_TRIANGLES_0TEX,
|
|
GX_PERF0_TRIANGLES_1TEX,
|
|
GX_PERF0_TRIANGLES_2TEX,
|
|
GX_PERF0_TRIANGLES_3TEX,
|
|
GX_PERF0_TRIANGLES_4TEX,
|
|
GX_PERF0_TRIANGLES_5TEX,
|
|
GX_PERF0_TRIANGLES_6TEX,
|
|
GX_PERF0_TRIANGLES_7TEX,
|
|
GX_PERF0_TRIANGLES_8TEX,
|
|
GX_PERF0_TRIANGLES_0CLR,
|
|
GX_PERF0_TRIANGLES_1CLR,
|
|
GX_PERF0_TRIANGLES_2CLR,
|
|
|
|
GX_PERF0_QUAD_0CVG,
|
|
GX_PERF0_QUAD_NON0CVG,
|
|
GX_PERF0_QUAD_1CVG,
|
|
GX_PERF0_QUAD_2CVG,
|
|
GX_PERF0_QUAD_3CVG,
|
|
GX_PERF0_QUAD_4CVG,
|
|
GX_PERF0_AVG_QUAD_CNT,
|
|
|
|
GX_PERF0_CLOCKS,
|
|
GX_PERF0_NONE
|
|
|
|
} GXPerf0;
|
|
|
|
typedef enum _GXPerf1 {
|
|
GX_PERF1_TEXELS,
|
|
GX_PERF1_TX_IDLE,
|
|
GX_PERF1_TX_REGS,
|
|
GX_PERF1_TX_MEMSTALL,
|
|
GX_PERF1_TC_CHECK1_2,
|
|
GX_PERF1_TC_CHECK3_4,
|
|
GX_PERF1_TC_CHECK5_6,
|
|
GX_PERF1_TC_CHECK7_8,
|
|
GX_PERF1_TC_MISS,
|
|
|
|
GX_PERF1_VC_ELEMQ_FULL,
|
|
GX_PERF1_VC_MISSQ_FULL,
|
|
GX_PERF1_VC_MEMREQ_FULL,
|
|
GX_PERF1_VC_STATUS7,
|
|
GX_PERF1_VC_MISSREP_FULL,
|
|
GX_PERF1_VC_STREAMBUF_LOW,
|
|
GX_PERF1_VC_ALL_STALLS,
|
|
GX_PERF1_VERTICES,
|
|
|
|
GX_PERF1_FIFO_REQ,
|
|
GX_PERF1_CALL_REQ,
|
|
GX_PERF1_VC_MISS_REQ,
|
|
GX_PERF1_CP_ALL_REQ,
|
|
|
|
GX_PERF1_CLOCKS,
|
|
GX_PERF1_NONE
|
|
|
|
} GXPerf1;
|
|
|
|
typedef enum _GXVCachePerf {
|
|
GX_VC_POS,
|
|
GX_VC_NRM,
|
|
GX_VC_CLR0,
|
|
GX_VC_CLR1,
|
|
GX_VC_TEX0,
|
|
GX_VC_TEX1,
|
|
GX_VC_TEX2,
|
|
GX_VC_TEX3,
|
|
GX_VC_TEX4,
|
|
GX_VC_TEX5,
|
|
GX_VC_TEX6,
|
|
GX_VC_TEX7,
|
|
GX_VC_ALL = 0xf
|
|
|
|
} GXVCachePerf;
|
|
|
|
typedef enum _GXFBClamp {
|
|
GX_CLAMP_NONE = 0,
|
|
GX_CLAMP_TOP = 1,
|
|
GX_CLAMP_BOTTOM = 2,
|
|
} GXFBClamp;
|
|
|
|
typedef enum _GXCopyMode {
|
|
GX_COPY_PROGRESSIVE = 0,
|
|
GX_COPY_INTLC_EVEN = 2,
|
|
GX_COPY_INTLC_ODD = 3,
|
|
} GXCopyMode;
|
|
|
|
typedef enum _GXAlphaReadMode {
|
|
GX_READ_00 = 0,
|
|
GX_READ_FF = 1,
|
|
GX_READ_NONE = 2,
|
|
|
|
} _GXAlphaReadMode;
|
|
|
|
#define ANIM_BMP_RGBA8 0
|
|
#define ANIM_BMP_RGB5A3 1
|
|
#define ANIM_BMP_RGB5A3_DUPE 2
|
|
#define ANIM_BMP_C8 3
|
|
#define ANIM_BMP_C4 4
|
|
#define ANIM_BMP_IA8 5
|
|
#define ANIM_BMP_IA4 6
|
|
#define ANIM_BMP_I8 7
|
|
#define ANIM_BMP_I4 8
|
|
#define ANIM_BMP_A8 9
|
|
#define ANIM_BMP_CMPR 10
|
|
|
|
#define ANIM_BMP_FMTMASK 0xF
|
|
#define ANIM_BMP_ALLOC 0x8000
|
|
#define ANIM_BMP_NUM_MASK 0x7FFF
|
|
|
|
#define ANIM_LAYER_FLIPX 0x1
|
|
#define ANIM_LAYER_FLIPY 0x2
|
|
|
|
typedef struct anim_frame_data {
|
|
s16 pat;
|
|
s16 time;
|
|
s16 shiftX;
|
|
s16 shiftY;
|
|
s16 flip;
|
|
s16 pad;
|
|
} AnimFrameData;
|
|
|
|
typedef struct anim_bank_data {
|
|
s16 timeNum;
|
|
s16 unk;
|
|
AnimFrameData *frame;
|
|
} AnimBankData;
|
|
|
|
typedef struct anim_layer_data {
|
|
u8 alpha;
|
|
u8 flip;
|
|
s16 bmpNo;
|
|
s16 startX;
|
|
s16 startY;
|
|
s16 sizeX;
|
|
s16 sizeY;
|
|
s16 shiftX;
|
|
s16 shiftY;
|
|
s16 vtx[8];
|
|
} AnimLayerData;
|
|
|
|
typedef struct anim_pat_data {
|
|
s16 layerNum;
|
|
s16 centerX;
|
|
s16 centerY;
|
|
s16 sizeX;
|
|
s16 sizeY;
|
|
AnimLayerData *layer;
|
|
} AnimPatData;
|
|
|
|
typedef struct anim_bmp_data {
|
|
u8 pixSize;
|
|
u8 dataFmt;
|
|
s16 palNum;
|
|
s16 sizeX;
|
|
s16 sizeY;
|
|
u32 dataSize;
|
|
void *palData;
|
|
void *data;
|
|
} AnimBmpData;
|
|
|
|
typedef struct anim_data {
|
|
s16 bankNum;
|
|
s16 patNum;
|
|
s16 bmpNum;
|
|
s16 useNum;
|
|
AnimBankData *bank;
|
|
AnimPatData *pat;
|
|
AnimBmpData *bmp;
|
|
} AnimData;
|
|
|
|
typedef struct {
|
|
f32 x, y, z;
|
|
} Vec, *VecPtr, Point3d, *Point3dPtr;
|
|
|
|
typedef struct {
|
|
s16 x;
|
|
s16 y;
|
|
s16 z;
|
|
} S16Vec, *S16VecPtr;
|
|
|
|
typedef struct {
|
|
f32 x, y, z, w;
|
|
} Quaternion, *QuaternionPtr, Qtrn, *QtrnPtr;
|
|
|
|
typedef f32 Mtx[3][4];
|
|
|
|
typedef f32 (*MtxPtr)[4];
|
|
|
|
typedef f32 ROMtx[4][3];
|
|
|
|
typedef f32 (*ROMtxPtr)[3];
|
|
|
|
typedef f32 Mtx44[4][4];
|
|
|
|
typedef f32 (*Mtx44Ptr)[4];
|
|
|
|
#define HUSPR_MAX 384
|
|
#define HUSPR_GRP_MAX 256
|
|
|
|
#define HUSPR_NONE -1
|
|
#define HUSPR_GRP_NONE -1
|
|
|
|
#define HUSPR_ATTR_NOANIM 0x1
|
|
#define HUSPR_ATTR_LOOP 0x2
|
|
#define HUSPR_ATTR_DISPOFF 0x4
|
|
#define HUSPR_ATTR_LINEAR 0x8
|
|
#define HUSPR_ATTR_FUNC 0x10
|
|
#define HUSPR_ATTR_NOPAUSE 0x20
|
|
#define HUSPR_ATTR_REVERSE 0x40
|
|
#define HUSPR_ATTR_ADDCOL 0x80
|
|
#define HUSPR_ATTR_INVCOL 0x100
|
|
|
|
typedef void (*HuSprFunc)(struct hu_sprite *);
|
|
|
|
typedef struct hu_sprite {
|
|
u8 r;
|
|
u8 g;
|
|
u8 b;
|
|
u8 draw_no;
|
|
s16 frame;
|
|
s16 bank;
|
|
s16 attr;
|
|
s16 dirty_flag;
|
|
s16 prio;
|
|
float time;
|
|
float x;
|
|
float y;
|
|
float z_rot;
|
|
float scale_x;
|
|
float scale_y;
|
|
float speed;
|
|
float a;
|
|
GXTexWrapMode wrap_s;
|
|
GXTexWrapMode wrap_t;
|
|
s16 tex_scale_x;
|
|
s16 tex_scale_y;
|
|
Mtx *group_mtx;
|
|
union {
|
|
AnimData *data;
|
|
HuSprFunc func;
|
|
};
|
|
AnimPatData *pat_data;
|
|
AnimFrameData *frame_data;
|
|
s16 work[4];
|
|
AnimData *bg;
|
|
u16 bg_bank;
|
|
s16 scissor_x;
|
|
s16 scissor_y;
|
|
s16 scissor_w;
|
|
s16 scissor_h;
|
|
} HuSprite;
|
|
|
|
typedef struct hu_spr_grp {
|
|
s16 capacity;
|
|
float x;
|
|
float y;
|
|
float z_rot;
|
|
float scale_x;
|
|
float scale_y;
|
|
float center_x;
|
|
float center_y;
|
|
s16 *members;
|
|
Mtx mtx;
|
|
} HuSprGrp;
|
|
|
|
extern HuSprite HuSprData[HUSPR_MAX];
|
|
extern HuSprGrp HuSprGrpData[HUSPR_GRP_MAX];
|
|
|
|
#define HuSprAnimReadFile(data_id) \
|
|
(HuSprAnimRead( \
|
|
HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA)))
|
|
|
|
void HuSprInit(void);
|
|
void HuSprClose(void);
|
|
void HuSprExec(s16 draw_no);
|
|
void HuSprBegin(void);
|
|
HuSprite *HuSprCall(void);
|
|
void HuSprFinish(void);
|
|
void HuSprPauseSet(BOOL value);
|
|
AnimData *HuSprAnimRead(void *data);
|
|
void HuSprAnimLock(AnimData *anim);
|
|
s16 HuSprCreate(AnimData *anim, s16 prio, s16 bank);
|
|
s16 HuSprFuncCreate(HuSprFunc func, s16 prio);
|
|
s16 HuSprGrpCreate(s16 capacity);
|
|
s16 HuSprGrpCopy(s16 group);
|
|
void HuSprGrpMemberSet(s16 group, s16 member, s16 sprite);
|
|
void HuSprGrpMemberKill(s16 group, s16 member);
|
|
void HuSprGrpKill(s16 group);
|
|
void HuSprKill(s16 sprite);
|
|
void HuSprAnimKill(AnimData *anim);
|
|
void HuSprAttrSet(s16 group, s16 member, s32 attr);
|
|
void HuSprAttrReset(s16 group, s16 member, s32 attr);
|
|
void HuSprPosSet(s16 group, s16 member, float x, float y);
|
|
void HuSprZRotSet(s16 group, s16 member, float z_rot);
|
|
void HuSprScaleSet(s16 group, s16 member, float x, float y);
|
|
void HuSprTPLvlSet(s16 group, s16 member, float tp_lvl);
|
|
void HuSprColorSet(s16 group, s16 member, u8 r, u8 g, u8 b);
|
|
void HuSprSpeedSet(s16 group, s16 member, float speed);
|
|
void HuSprBankSet(s16 group, s16 member, s16 bank);
|
|
void HuSprGrpPosSet(s16 group, float x, float y);
|
|
void HuSprGrpCenterSet(s16 group, float x, float y);
|
|
void HuSprGrpZRotSet(s16 group, float z_rot);
|
|
void HuSprGrpScaleSet(s16 group, float x, float y);
|
|
void HuSprGrpTPLvlSet(s16 group, float tp_lvl);
|
|
void HuSprGrpDrawNoSet(s16 group, s32 draw_no);
|
|
void HuSprDrawNoSet(s16 group, s16 member, s32 draw_no);
|
|
void HuSprPriSet(s16 group, s16 member, s16 prio);
|
|
void HuSprGrpScissorSet(s16 group, s16 x, s16 y, s16 w, s16 h);
|
|
void HuSprScissorSet(s16 group, s16 member, s16 x, s16 y, s16 w, s16 h);
|
|
AnimData *HuSprAnimMake(s16 sizeX, s16 sizeY, s16 dataFmt);
|
|
void HuSprBGSet(s16 group, s16 member, AnimData *bg, s16 bg_bank);
|
|
void HuSprSprBGSet(s16 sprite, AnimData *bg, s16 bg_bank);
|
|
void AnimDebug(AnimData *anim);
|
|
|
|
void HuSprDispInit(void);
|
|
void HuSprDisp(HuSprite *sprite);
|
|
void HuSprTexLoad(AnimData *anim, s16 bmp, s16 slot, GXTexWrapMode wrap_s,
|
|
GXTexWrapMode wrap_t, GXTexFilter filter);
|
|
void HuSprExecLayerSet(s16 draw_no, s16 layer);
|
|
|
|
#define MEMORY_DEFAULT_NUM 0x10000000
|
|
|
|
typedef enum {
|
|
HEAP_SYSTEM,
|
|
HEAP_MUSIC,
|
|
HEAP_DATA,
|
|
HEAP_DVD,
|
|
HEAP_MISC,
|
|
HEAP_MAX
|
|
} HeapID;
|
|
|
|
void HuMemInitAll(void);
|
|
void *HuMemInit(void *ptr, s32 size);
|
|
void HuMemDCFlushAll();
|
|
void HuMemDCFlush(HeapID heap);
|
|
void *HuMemDirectMalloc(HeapID heap, s32 size);
|
|
void *HuMemDirectMallocNum(HeapID heap, s32 size, u32 num);
|
|
void HuMemDirectFree(void *ptr);
|
|
void HuMemDirectFreeNum(HeapID heap, u32 num);
|
|
s32 HuMemUsedMallocSizeGet(HeapID heap);
|
|
s32 HuMemUsedMallocBlockGet(HeapID heap);
|
|
u32 HuMemHeapSizeGet(HeapID heap);
|
|
void *HuMemHeapPtrGet(HeapID heap);
|
|
|
|
void *HuMemHeapInit(void *ptr, s32 size);
|
|
void *HuMemMemoryAlloc(void *heap_ptr, s32 size, u32 retaddr);
|
|
void *HuMemMemoryAllocNum(void *heap_ptr, s32 size, u32 num, u32 retaddr);
|
|
void HuMemMemoryFree(void *ptr, u32 retaddr);
|
|
void HuMemMemoryFreeNum(void *heap_ptr, u32 num, u32 retaddr);
|
|
s32 HuMemUsedMemorySizeGet(void *heap_ptr);
|
|
s32 HuMemUsedMemoryBlockGet(void *heap_ptr);
|
|
s32 HuMemMemorySizeGet(void *ptr);
|
|
s32 HuMemMemoryAllocSizeGet(s32 size);
|
|
void HuMemHeapDump(void *heap_ptr, s16 status);
|
|
|
|
#define DVD_MIN_TRANSFER_SIZE 32
|
|
|
|
#define DVD_STATE_FATAL_ERROR -1
|
|
#define DVD_STATE_END 0
|
|
#define DVD_STATE_BUSY 1
|
|
#define DVD_STATE_WAITING 2
|
|
#define DVD_STATE_COVER_CLOSED 3
|
|
#define DVD_STATE_NO_DISK 4
|
|
#define DVD_STATE_COVER_OPEN 5
|
|
#define DVD_STATE_WRONG_DISK 6
|
|
#define DVD_STATE_MOTOR_STOPPED 7
|
|
#define DVD_STATE_PAUSING 8
|
|
#define DVD_STATE_IGNORED 9
|
|
#define DVD_STATE_CANCELED 10
|
|
#define DVD_STATE_RETRY 11
|
|
|
|
#define DVD_FILEINFO_READY 0
|
|
#define DVD_FILEINFO_BUSY 1
|
|
|
|
#define DVD_RESULT_GOOD 0
|
|
#define DVD_RESULT_FATAL_ERROR -1
|
|
#define DVD_RESULT_IGNORED -2
|
|
#define DVD_RESULT_CANCELED -3
|
|
|
|
#define DVD_AIS_SUCCESS 0x0
|
|
|
|
typedef struct DVDDiskID {
|
|
char gameName[4];
|
|
char company[2];
|
|
u8 diskNumber;
|
|
u8 gameVersion;
|
|
u8 streaming;
|
|
u8 streamingBufSize; // 0 = default
|
|
u8 padding[22]; // 0's are stored
|
|
} DVDDiskID;
|
|
|
|
typedef struct DVDCommandBlock DVDCommandBlock;
|
|
|
|
typedef void (*DVDCBCallback)(s32 result, DVDCommandBlock *block);
|
|
|
|
struct DVDCommandBlock {
|
|
DVDCommandBlock *next;
|
|
DVDCommandBlock *prev;
|
|
u32 command;
|
|
s32 state;
|
|
u32 offset;
|
|
u32 length;
|
|
void *addr;
|
|
u32 currTransferSize;
|
|
u32 transferredSize;
|
|
DVDDiskID *id;
|
|
DVDCBCallback callback;
|
|
void *userData;
|
|
};
|
|
|
|
typedef struct DVDFileInfo DVDFileInfo;
|
|
|
|
typedef void (*DVDCallback)(s32 result, DVDFileInfo *fileInfo);
|
|
|
|
struct DVDFileInfo {
|
|
DVDCommandBlock cb;
|
|
u32 startAddr;
|
|
u32 length;
|
|
DVDCallback callback;
|
|
};
|
|
|
|
typedef struct {
|
|
u32 entryNum;
|
|
u32 location;
|
|
u32 next;
|
|
} DVDDir;
|
|
|
|
typedef struct {
|
|
u32 entryNum;
|
|
BOOL isDir;
|
|
char *name;
|
|
} DVDDirEntry;
|
|
|
|
void DVDInit();
|
|
BOOL DVDClose(DVDFileInfo *f);
|
|
BOOL DVDSetAutoFatalMessaging(BOOL);
|
|
void DVDReset();
|
|
s32 DVDCancel(DVDCommandBlock *block);
|
|
BOOL DVDOpen(char *fileName, DVDFileInfo *fileInfo);
|
|
BOOL DVDFastOpen(s32 entrynum, DVDFileInfo *fileInfo);
|
|
s32 DVDGetCommandBlockStatus(const DVDCommandBlock *block);
|
|
BOOL DVDCancelAsync(DVDCommandBlock *block, DVDCBCallback callback);
|
|
s32 DVDCancel(DVDCommandBlock *block);
|
|
BOOL DVDCancelAllAsync(DVDCBCallback callback);
|
|
s32 DVDCancelAll(void);
|
|
BOOL DVDPrepareStreamAsync(DVDFileInfo *fInfo, u32 length, u32 offset,
|
|
DVDCallback callback);
|
|
s32 DVDPrepareStream(DVDFileInfo *fInfo, u32 length, u32 offset);
|
|
|
|
BOOL DVDCancelStreamAsync(DVDCommandBlock *block, DVDCBCallback callback);
|
|
s32 DVDCancelStream(DVDCommandBlock *block);
|
|
|
|
BOOL DVDStopStreamAtEndAsync(DVDCommandBlock *block, DVDCBCallback callback);
|
|
s32 DVDStopStreamAtEnd(DVDCommandBlock *block);
|
|
|
|
BOOL DVDGetStreamErrorStatusAsync(DVDCommandBlock *block,
|
|
DVDCBCallback callback);
|
|
s32 DVDGetStreamErrorStatus(DVDCommandBlock *block);
|
|
|
|
BOOL DVDGetStreamPlayAddrAsync(DVDCommandBlock *block, DVDCBCallback callback);
|
|
s32 DVDGetStreamPlayAddr(DVDCommandBlock *block);
|
|
|
|
s32 DVDGetDriveStatus();
|
|
|
|
s32 DVDConvertPathToEntrynum(char *pathPtr);
|
|
|
|
BOOL DVDReadAsyncPrio(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset,
|
|
DVDCallback callback, s32 prio);
|
|
|
|
BOOL DVDReadPrio(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset,
|
|
s32 prio);
|
|
|
|
#define DVDReadAsync(fileInfo, addr, length, offset, callback) \
|
|
DVDReadAsyncPrio((fileInfo), (addr), (length), (offset), (callback), 2)
|
|
#define DVDRead(fileInfo, addr, length, offset) \
|
|
DVDReadPrio((fileInfo), (addr), (length), (offset), 2)
|
|
|
|
#define DVDSeekAsync(fileInfo, offset, callback) \
|
|
DVDSeekAsyncPrio((fileInfo), (offset), (callback), 2)
|
|
|
|
#define DATA_DECODE_NONE 0
|
|
#define DATA_DECODE_LZ 1
|
|
#define DATA_DECODE_SLIDE 2
|
|
#define DATA_DECODE_FSLIDE_ALT 3
|
|
#define DATA_DECODE_FSLIDE 4
|
|
#define DATA_DECODE_RLE 5
|
|
|
|
#define DATA_NUM_LISTEND -1
|
|
|
|
typedef struct data_read_stat {
|
|
s32 dir_id;
|
|
void *dir;
|
|
void *file;
|
|
u32 raw_len;
|
|
u32 comp_type;
|
|
BOOL used;
|
|
s32 num;
|
|
u32 status;
|
|
DVDFileInfo file_info;
|
|
} DataReadStat;
|
|
|
|
void HuDataInit(void);
|
|
int HuDataReadChk(s32 data_num);
|
|
DataReadStat *HuDataGetStatus(void *dir_ptr);
|
|
void *HuDataGetDirPtr(s32 data_num);
|
|
DataReadStat *HuDataDirRead(s32 data_num);
|
|
DataReadStat *HuDataDirReadNum(s32 data_num, s32 num);
|
|
DataReadStat *HuDataDirSet(void *dir_ptr, s32 data_num);
|
|
void HuDataDirReadAsyncCallBack(s32 result, DVDFileInfo *fileInfo);
|
|
s32 HuDataDirReadAsync(s32 data_num);
|
|
s32 HuDataDirReadNumAsync(s32 data_num, s32 num);
|
|
BOOL HuDataGetAsyncStat(s32 status);
|
|
void *HuDataRead(s32 data_num);
|
|
void *HuDataReadNum(s32 data_num, s32 num);
|
|
void *HuDataSelHeapRead(s32 data_num, HeapID heap);
|
|
void *HuDataSelHeapReadNum(s32 data_num, s32 num, HeapID heap);
|
|
void **HuDataReadMulti(s32 *data_ids);
|
|
s32 HuDataGetSize(s32 data_num);
|
|
void HuDataClose(void *ptr);
|
|
void HuDataCloseMulti(void **ptrs);
|
|
void HuDataDirClose(s32 data_id);
|
|
void HuDataDirCloseNum(s32 num);
|
|
void *HuDataReadNumHeapShortForce(s32 data_id, s32 num, HeapID heap);
|
|
|
|
void HuDecodeData(void *src, void *dst, u32 size, int decode_type);
|
|
|
|
extern u32 DirDataSize;
|
|
|
|
typedef struct {
|
|
/* 0x00 */ u8 color;
|
|
/* 0x01 */ u8 fade;
|
|
/* 0x02 */ s16 x;
|
|
/* 0x04 */ s16 y;
|
|
/* 0x06 */ s16 character;
|
|
} WinChar; // Size 8
|
|
|
|
typedef struct {
|
|
/* 0x00 */ u8 stat;
|
|
/* 0x02 */ s16 x;
|
|
/* 0x04 */ s16 y;
|
|
} WinChoice; // Size 6
|
|
|
|
typedef struct {
|
|
/* 0x000 */ u8 stat;
|
|
/* 0x001 */ u8 active_pad;
|
|
/* 0x002 */ u8 player_disable;
|
|
/* 0x003 */ u8 color_key;
|
|
/* 0x004 */ s16 group;
|
|
/* 0x006 */ s16 sprite_id[30];
|
|
/* 0x042 */ s16 speed;
|
|
/* 0x044 */ s16 mess_time;
|
|
/* 0x046 */ s16 advance_sprite;
|
|
/* 0x048 */ s16 prio;
|
|
/* 0x04C */ u32 attr;
|
|
/* 0x050 */ AnimData *frame;
|
|
/* 0x054 */ s16 mess_rect_x;
|
|
/* 0x056 */ s16 mess_rect_w;
|
|
/* 0x058 */ s16 mess_rect_y;
|
|
/* 0x05A */ s16 mess_rect_h;
|
|
/* 0x05C */ s16 mess_x;
|
|
/* 0x05E */ s16 mess_y;
|
|
/* 0x060 */ s16 mess_color;
|
|
/* 0x062 */ s16 mess_shadow_color;
|
|
/* 0x064 */ s16 spacing_x;
|
|
/* 0x066 */ s16 spacing_y;
|
|
/* 0x068 */ s16 w;
|
|
/* 0x06A */ s16 h;
|
|
/* 0x06C */ float pos_x;
|
|
/* 0x070 */ float pos_y;
|
|
/* 0x074 */ float scale_x;
|
|
/* 0x078 */ float scale_y;
|
|
/* 0x07C */ float z_rot;
|
|
/* 0x080 */ s16 num_chars;
|
|
/* 0x082 */ s16 max_chars;
|
|
/* 0x084 */ WinChar *char_data;
|
|
/* 0x088 */ s16 mess_stackptr;
|
|
/* 0x08C */ s32 unk8C;
|
|
/* 0x090 */ u8 *mess;
|
|
/* 0x094 */ u8 *mess_stack[8];
|
|
/* 0x0B4 */ u8 *insert_mess[8];
|
|
/* 0x0D4 */ s16 num_choices;
|
|
/* 0x0D6 */ s16 choice;
|
|
/* 0x0D8 */ s16 cursor_sprite;
|
|
/* 0x0DA */ u8 choice_disable[16];
|
|
/* 0x0EA */ WinChoice choice_data[16];
|
|
/* 0x14A */ s16 scissor_x;
|
|
/* 0x14C */ s16 scissor_y;
|
|
/* 0x14E */ s16 scissor_w;
|
|
/* 0x150 */ s16 scissor_h;
|
|
/* 0x152 */ s16 tab_w;
|
|
/* 0x154 */ s16 push_key;
|
|
/* 0x156 */ s16 key_down;
|
|
/* 0x158 */ s16 key_auto;
|
|
/* 0x160 */ u8 mess_pal[10][3];
|
|
} WindowData; // Size 0x180
|
|
|
|
extern WindowData winData[32];
|
|
extern void *messDataPtr;
|
|
|
|
void HuWindowInit(void);
|
|
void HuWinInit(s32 mess_data_no);
|
|
s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame);
|
|
void HuWinKill(s16 window);
|
|
void HuWinAllKill(void);
|
|
void HuWinHomeClear(s16 window);
|
|
void HuWinKeyWaitEntry(s16 window);
|
|
u32 HuWinActivePadGet(WindowData *window);
|
|
u32 HuWinActiveKeyGetX(WindowData *window);
|
|
void HuWinPosSet(s16 window, float x, float y);
|
|
void HuWinScaleSet(s16 window, float x, float y);
|
|
void HuWinZRotSet(s16 window, float z_rot);
|
|
void HuWinCenterPosSet(s16 window, float x, float y);
|
|
void HuWinDrawNoSet(s16 window, s16 draw_no);
|
|
void HuWinScissorSet(s16 window, s16 x, s16 y, s16 w, s16 h);
|
|
void HuWinPriSet(s16 window, s16 prio);
|
|
void HuWinAttrSet(s16 window, u32 attr);
|
|
void HuWinAttrReset(s16 window, u32 attr);
|
|
s16 HuWinStatGet(s16 window);
|
|
void HuWinMesColSet(s16 window, u8 color);
|
|
void HuWinMesPalSet(s16 window, u8 index, u8 r, u8 g, u8 b);
|
|
void HuWinBGTPLvlSet(s16 window, float tp_level);
|
|
void HuWinBGColSet(s16 window, GXColor *bg_color);
|
|
void HuWinMesSpeedSet(s16 window, s16 speed);
|
|
void HuWinMesRead(s32 mess_data_no);
|
|
void HuWinMesSet(s16 window, u32 mess);
|
|
void HuWinInsertMesSet(s16 window, u32 mess, s16 index);
|
|
s16 HuWinChoiceGet(s16 window, s16 start_choice);
|
|
s16 HuWinChoiceNumGet(s16 window);
|
|
void HuWinChoiceDisable(s16 window, s16 choice);
|
|
s16 HuWinChoiceNowGet(s16 window);
|
|
void HuWinMesWait(s16 window);
|
|
s16 HuWinAnimSet(s16 window, AnimData *anim, s16 bank, float x, float y);
|
|
s16 HuWinSprSet(s16 window, s16 sprite, float x, float y);
|
|
void HuWinSprPosSet(s16 window, s16 index, float x, float y);
|
|
void HuWinSprPriSet(s16 window, s16 index, s16 prio);
|
|
s16 HuWinSprIDGet(s16 window, s16 index);
|
|
void HuWinSprKill(s16 window, s16 index);
|
|
void HuWinDispOff(s16 window);
|
|
void HuWinDispOn(s16 window);
|
|
void HuWinComKeyWait(s32 player_1, s32 player_2, s32 player_3, s32 player_4,
|
|
s16 delay);
|
|
void HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4);
|
|
void _HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4,
|
|
s16 delay);
|
|
void HuWinComKeyGet(s16 window, u32 *data);
|
|
void HuWinComKeyReset(void);
|
|
void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...);
|
|
void HuWinInsertMesSizeGet(u32 mess, s16 index);
|
|
void HuWinMesSizeCancelCRSet(s32 cancel_cr);
|
|
void HuWinMesMaxSizeBetGet(float *size, u32 start, u32 end);
|
|
s16 HuWinKeyWaitNumGet(u32 mess);
|
|
void HuWinPushKeySet(s16 window, s16 push_key);
|
|
void HuWinDisablePlayerSet(s16 window, u8 player);
|
|
void HuWinDisablePlayerReset(s16 window, u8 player);
|
|
s16 HuWinExCreate(float x, float y, s16 w, s16 h, s16 portrait);
|
|
s16 HuWinExCreateStyled(float x, float y, s16 w, s16 h, s16 portrait,
|
|
s16 frame);
|
|
void HuWinExAnimIn(s16 window);
|
|
void HuWinExAnimOut(s16 window);
|
|
void HuWinExCleanup(s16 window);
|
|
void HuWinExAnimPopIn(s16 window, s16 portrait);
|
|
void *MessData_MesPtrGet(void *data, u32 index);
|
|
|
|
extern void *messDataPtr;
|
|
|
|
typedef void (*omObjFunc)(struct om_obj_data *);
|
|
|
|
typedef struct om_obj_data {
|
|
/* 0x00 */ u16 stat;
|
|
/* 0x02 */ s16 next_idx_alloc;
|
|
/* 0x04 */ s16 prio;
|
|
/* 0x06 */ s16 prev;
|
|
/* 0x08 */ s16 next;
|
|
/* 0x0A */ s16 next_idx;
|
|
/* 0x0C */ s16 group;
|
|
/* 0x0E */ u16 group_idx;
|
|
/* 0x10 */ u32 unk10;
|
|
/* 0x14 */ omObjFunc func;
|
|
/* 0x18 */ Vec trans;
|
|
/* 0x24 */ Vec rot;
|
|
/* 0x30 */ Vec scale;
|
|
/* 0x3C */ u16 mdlcnt;
|
|
/* 0x40 */ s16 *model;
|
|
/* 0x44 */ u16 mtncnt;
|
|
/* 0x48 */ s16 *motion;
|
|
/* 0x4C */ u32 work[4];
|
|
/* 0x5C */ void *data;
|
|
} omObjData;
|
|
|
|
|
|
typedef struct hu_snd_grp_data {
|
|
/* 0x00 */ s16 ovl;
|
|
/* 0x02 */ s16 grpset;
|
|
/* 0x04 */ s32 auxANo;
|
|
/* 0x08 */ s32 auxBNo;
|
|
/* 0x0C */ s8 auxAVol;
|
|
/* 0x0D */ s8 auxBVol;
|
|
} HuSndGrpData;
|
|
|
|
void HuAudInit(void);
|
|
s32 HuAudStreamPlay(void);
|
|
void HuAudStreamVolSet(s16 vol);
|
|
void HuAudStreamPauseOn(void);
|
|
void HuAudStreamPauseOff(void);
|
|
void HuAudStreamFadeOut(void);
|
|
void HuAudAllStop(void);
|
|
void HuAudFadeOut(s32 arg0);
|
|
s32 HuAudFXPlay(s32 arg0);
|
|
s32 HuAudFXPlayVol(s32 arg0, s16 arg1);
|
|
s32 HuAudFXPlayVolPan(s32 arg0, s16 arg1, s16 arg2);
|
|
void HuAudFXStop(s32 arg0);
|
|
void HuAudFXAllStop(void);
|
|
void HuAudFXFadeOut(s32 arg0, s32 arg1);
|
|
void HuAudFXPanning(s32 arg0, s16 arg1);
|
|
void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3);
|
|
void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6);
|
|
void HuAudFXListnerUpdate(Vec *arg0, Vec *arg1);
|
|
s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1);
|
|
void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1);
|
|
void HuAudFXListnerKill(void);
|
|
void HuAudFXPauseAll(s32 arg0);
|
|
s32 HuAudFXStatusGet(s32 arg0);
|
|
s32 HuAudFXPitchSet(s32 arg0, s16 arg1);
|
|
s32 HuAudFXVolSet(s32 arg0, s16 arg1);
|
|
s32 HuAudSeqPlay(s16 arg0);
|
|
void HuAudSeqStop(s32 arg0);
|
|
void HuAudSeqFadeOut(s32 arg0, s32 arg1);
|
|
void HuAudSeqAllFadeOut(s32 arg0);
|
|
void HuAudSeqAllStop(void);
|
|
void HuAudSeqPauseAll(s32 arg0);
|
|
void HuAudSeqPause(s32 arg0, s32 arg1, s32 arg2);
|
|
s32 HuAudSeqMidiCtrlGet(s32 arg0, s8 arg1, s8 arg2);
|
|
s32 HuAudSStreamPlay(s16 arg0);
|
|
void HuAudSStreamStop(s32 arg0);
|
|
void HuAudSStreamFadeOut(s32 arg0, s32 arg1);
|
|
void HuAudSStreamAllFadeOut(s32 arg0);
|
|
void HuAudSStreamAllStop(void);
|
|
s32 HuAudSStreamStatGet(s32 arg0);
|
|
void HuAudDllSndGrpSet(u16 ovl);
|
|
void HuAudSndGrpSetSet(s16 arg0);
|
|
void HuAudSndGrpSet(s16 arg0);
|
|
void HuAudSndCommonGrpSet(s16 arg0, s32 arg1);
|
|
void HuAudAUXSet(s32 arg0, s32 arg1);
|
|
void HuAudAUXVolSet(s8 arg0, s8 arg1);
|
|
void HuAudVoiceInit(s16 ovl);
|
|
s32 HuAudPlayerVoicePlay(s16 arg0, s16 arg1);
|
|
s32 HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2);
|
|
void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1);
|
|
s32 HuAudCharVoicePlay(s16 arg0, s16 arg1);
|
|
s32 HuAudCharVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2);
|
|
void HuAudCharVoicePlayEntry(s16 arg0, s16 arg1);
|
|
|
|
extern float Snd3DBackSurDisOffset;
|
|
extern float Snd3DFrontSurDisOffset;
|
|
extern float Snd3DStartDisOffset;
|
|
extern float Snd3DSpeedOffset;
|
|
extern float Snd3DDistOffset;
|
|
extern s32 musicOffF;
|
|
extern u8 fadeStat;
|
|
|
|
extern HuSndGrpData HuSndGrpTbl[];
|
|
|
|
void GWInit(void);
|
|
void GWGameStatReset(void);
|
|
s32 GWMessSpeedGet(void);
|
|
s32 GWMessDelayGet(void);
|
|
void GWMGRecordSet(int index, s32 value);
|
|
s32 GWMGRecordGet(int index);
|
|
void GWCharColorGet(int character, GXColor *color);
|
|
void GWBoardPlayCountSet(int board, u8 value);
|
|
void GWBoardPlayCountAdd(int board, u8 value);
|
|
u8 GWBoardPlayCountGet(int board);
|
|
void GWBoardMaxStarsSet(int board, int value);
|
|
u16 GWBoardMaxStarsGet(int board);
|
|
void GWBoardMaxCoinsSet(int board, int value);
|
|
u16 GWBoardMaxCoinsGet(int board);
|
|
int GWBoardWinCountInc(int character, int board);
|
|
int GWBoardWinCountGet(int character, int board);
|
|
void GWBoardWinCountSet(int character, int board, int value);
|
|
int GWMGAvailGet(int id);
|
|
int GWMGAvailSet(int id);
|
|
int GWMGCustomGet(int id);
|
|
int GWMGCustomSet(int id);
|
|
int GWMGCustomReset(int id);
|
|
s16 GWCoinsGet(int player);
|
|
void GWCoinsSet(int player, s16 value);
|
|
void GWCoinsAdd(int player, s16 amount);
|
|
void GWStarsSet(int player, s16 value);
|
|
void GWStarsAdd(int player, s16 amount);
|
|
s32 GWStarsGet(int player);
|
|
void GWTotalStarsSet(s16 value);
|
|
void GWTotalStarsAdd(s16 amount);
|
|
u16 GWTotalStarsGet(void);
|