1 #ifndef __GX_REGDEF_H__ 2 #define __GX_REGDEF_H__ 3 4 #include <gctypes.h> 5 6 #define STRUCT_REGDEF_SIZE 1440 7 8 struct __gx_regdef 9 { 10 u16 cpSRreg; 11 u16 cpCRreg; 12 u16 cpCLreg; 13 u16 xfFlush; 14 u16 xfFlushExp; 15 u16 xfFlushSafe; 16 u32 gxFifoInited; 17 u32 vcdClear; 18 u32 VATTable; 19 u32 mtxIdxLo; 20 u32 mtxIdxHi; 21 u32 texCoordManually; 22 u32 vcdLo; 23 u32 vcdHi; 24 u32 vcdNrms; 25 u32 dirtyState; 26 u32 perf0Mode; 27 u32 perf1Mode; 28 u32 cpPerfMode; 29 u32 VAT0reg[8]; 30 u32 VAT1reg[8]; 31 u32 VAT2reg[8]; 32 u32 texMapSize[8]; 33 u32 texMapWrap[8]; 34 u32 sciTLcorner; 35 u32 sciBRcorner; 36 u32 lpWidth; 37 u32 genMode; 38 u32 suSsize[8]; 39 u32 suTsize[8]; 40 u32 tevTexMap[16]; 41 u32 tevColorEnv[16]; 42 u32 tevAlphaEnv[16]; 43 u32 tevSwapModeTable[8]; 44 u32 tevRasOrder[11]; 45 u32 tevTexCoordEnable; 46 u32 tevIndMask; 47 u32 texCoordGen[8]; 48 u32 texCoordGen2[8]; 49 u32 dispCopyCntrl; 50 u32 dispCopyDst; 51 u32 dispCopyTL; 52 u32 dispCopyWH; 53 u32 texCopyCntrl; 54 u32 texCopyDst; 55 u32 texCopyTL; 56 u32 texCopyWH; 57 u32 peZMode; 58 u32 peCMode0; 59 u32 peCMode1; 60 u32 peCntrl; 61 u32 chnAmbColor[2]; 62 u32 chnMatColor[2]; 63 u32 chnCntrl[4]; 64 GXTexRegion texRegion[24]; 65 GXTlutRegion tlutRegion[20]; 66 u8 saveDLctx; 67 u8 gxFifoUnlinked; 68 u8 texCopyZTex; 69 u8 _pad; 70 } __attribute__((packed)); 71 72 struct __gxfifo { 73 vu32 buf_start; 74 vu32 buf_end; 75 vu32 size; 76 vu32 hi_mark; 77 vu32 lo_mark; 78 vu32 rd_ptr; 79 vu32 wt_ptr; 80 vu32 rdwt_dst; 81 vu8 fifo_wrap; 82 vu8 cpufifo_ready; 83 vu8 gpfifo_ready; 84 u8 _pad[93]; 85 } __attribute__((packed)); 86 87 struct __gx_litobj 88 { 89 u32 _pad[3]; 90 u32 col; 91 f32 a0; 92 f32 a1; 93 f32 a2; 94 f32 k0; 95 f32 k1; 96 f32 k2; 97 f32 px; 98 f32 py; 99 f32 pz; 100 f32 nx; 101 f32 ny; 102 f32 nz; 103 } __attribute__((packed)); 104 105 struct __gx_texobj 106 { 107 u32 tex_filt; 108 u32 tex_lod; 109 u32 tex_size; 110 u32 tex_maddr; 111 u32 usr_data; 112 u32 tex_fmt; 113 u32 tex_tlut; 114 u16 tex_tile_cnt; 115 u8 tex_tile_type; 116 u8 tex_flag; 117 } __attribute__((packed)); 118 119 struct __gx_tlutobj 120 { 121 u32 tlut_fmt; 122 u32 tlut_maddr; 123 u16 tlut_nentries; 124 u8 _pad[2]; 125 } __attribute__((packed)); 126 127 struct __gx_texregion 128 { 129 u32 tmem_even; 130 u32 tmem_odd; 131 u16 size_even; 132 u16 size_odd; 133 u8 ismipmap; 134 u8 iscached; 135 u8 _pad[2]; 136 } __attribute__((packed)); 137 138 struct __gx_tlutregion 139 { 140 u32 tmem_addr_conf; 141 u32 tmem_addr_base; 142 u32 tlut_maddr; 143 u16 tlut_nentries; 144 u8 _pad[2]; 145 } __attribute__((packed)); 146 147 #endif 148