1#ifndef RVL_SDK_GX_HARDWARE_XF_H 
    2#define RVL_SDK_GX_HARDWARE_XF_H 
    3#include <revolution/GX/GXTypes.h> 
   21    GX_XF_REG_ERROR = 0x1000,
 
   22    GX_XF_REG_DIAGNOSTICS = 0x1001,
 
   23    GX_XF_REG_STATE0 = 0x1002,
 
   24    GX_XF_REG_STATE1 = 0x1003,
 
   25    GX_XF_REG_CLOCK = 0x1004,
 
   26    GX_XF_REG_CLIPDISABLE = 0x1005,
 
   27    GX_XF_REG_PERF0 = 0x1006,
 
   28    GX_XF_REG_PERF1 = 0x1007,
 
   29    GX_XF_REG_INVERTEXSPEC = 0x1008,
 
   30    GX_XF_REG_NUMCOLORS = 0x1009,
 
   31    GX_XF_REG_AMBIENT0 = 0x100A,
 
   32    GX_XF_REG_AMBIENT1 = 0x100B,
 
   33    GX_XF_REG_MATERIAL0 = 0x100C,
 
   34    GX_XF_REG_MATERIAL1 = 0x100D,
 
   35    GX_XF_REG_COLOR0CNTRL = 0x100E,
 
   36    GX_XF_REG_COLOR1CNTRL = 0x100F,
 
   37    GX_XF_REG_ALPHA0CNTRL = 0x1010,
 
   38    GX_XF_REG_ALPHA1CNTRL = 0x1011,
 
   39    GX_XF_REG_DUALTEXTRAN = 0x1012,
 
   40    GX_XF_REG_MATRIXINDEX0 = 0x1018,
 
   41    GX_XF_REG_MATRIXINDEX1 = 0x1019,
 
   42    GX_XF_REG_SCALEX = 0x101A,
 
   43    GX_XF_REG_SCALEY = 0x101B,
 
   44    GX_XF_REG_SCALEZ = 0x101C,
 
   45    GX_XF_REG_OFFSETX = 0x101D,
 
   46    GX_XF_REG_OFFSETY = 0x101E,
 
   47    GX_XF_REG_OFFSETZ = 0x101F,
 
   48    GX_XF_REG_PROJECTIONA = 0x1020,
 
   49    GX_XF_REG_PROJECTIONB = 0x1021,
 
   50    GX_XF_REG_PROJECTIONC = 0x1022,
 
   51    GX_XF_REG_PROJECTIOND = 0x1023,
 
   52    GX_XF_REG_PROJECTIONE = 0x1024,
 
   53    GX_XF_REG_PROJECTIONF = 0x1025,
 
   54    GX_XF_REG_PROJECTORTHO = 0x1026,
 
   55    GX_XF_REG_NUMTEX = 0x103F,
 
   56    GX_XF_REG_TEX0 = 0x1040,
 
   57    GX_XF_REG_TEX1 = 0x1041,
 
   58    GX_XF_REG_TEX2 = 0x1042,
 
   59    GX_XF_REG_TEX3 = 0x1043,
 
   60    GX_XF_REG_TEX4 = 0x1044,
 
   61    GX_XF_REG_TEX5 = 0x1045,
 
   62    GX_XF_REG_TEX6 = 0x1046,
 
   63    GX_XF_REG_TEX7 = 0x1047,
 
   64    GX_XF_REG_DUALTEX0 = 0x1050,
 
   65    GX_XF_REG_DUALTEX1 = 0x1051,
 
   66    GX_XF_REG_DUALTEX2 = 0x1052,
 
   67    GX_XF_REG_DUALTEX3 = 0x1053,
 
   68    GX_XF_REG_DUALTEX4 = 0x1054,
 
   69    GX_XF_REG_DUALTEX5 = 0x1055,
 
   70    GX_XF_REG_DUALTEX6 = 0x1056,
 
   71    GX_XF_REG_DUALTEX7 = 0x1057,
 
   78         #define GX_XF_CLIPDISABLE_DETECT_B 31
 
   79         #define GX_XF_CLIPDISABLE_DETECT_E 31
 
   80         #define GX_XF_CLIPDISABLE_DETECT_SZ 1
 
   82         #define GX_XF_CLIPDISABLE_DETECT_MASK (((1 << 1) - 1) << 31 - 31)
 
   83         #define GX_XF_CLIPDISABLE_DETECT_LMASK ((1 << 1) - 1) 
   84         #define GX_XF_CLIPDISABLE_DETECT_SHIFT 0
 
   86         #define GX_XF_GET_CLIPDISABLE_DETECT(reg) GX_BITGET((reg), 31, 1)
 
   87         #define GX_XF_SET_CLIPDISABLE_DETECT(reg, x) ((reg) = GX_BITSET((reg), 31, 1, x)) 
   90         #define GX_XF_CLIPDISABLE_REJECT_B 30
 
   91         #define GX_XF_CLIPDISABLE_REJECT_E 30
 
   92         #define GX_XF_CLIPDISABLE_REJECT_SZ 1
 
   94         #define GX_XF_CLIPDISABLE_REJECT_MASK (((1 << 1) - 1) << 31 - 30)
 
   95         #define GX_XF_CLIPDISABLE_REJECT_LMASK ((1 << 1) - 1) 
   96         #define GX_XF_CLIPDISABLE_REJECT_SHIFT 1
 
   98         #define GX_XF_GET_CLIPDISABLE_REJECT(reg) GX_BITGET((reg), 30, 1)
 
   99         #define GX_XF_SET_CLIPDISABLE_REJECT(reg, x) ((reg) = GX_BITSET((reg), 30, 1, x)) 
  102         #define GX_XF_CLIPDISABLE_ACCEL_B 29
 
  103         #define GX_XF_CLIPDISABLE_ACCEL_E 29
 
  104         #define GX_XF_CLIPDISABLE_ACCEL_SZ 1
 
  106         #define GX_XF_CLIPDISABLE_ACCEL_MASK (((1 << 1) - 1) << 31 - 29)
 
  107         #define GX_XF_CLIPDISABLE_ACCEL_LMASK ((1 << 1) - 1) 
  108         #define GX_XF_CLIPDISABLE_ACCEL_SHIFT 2
 
  110         #define GX_XF_GET_CLIPDISABLE_ACCEL(reg) GX_BITGET((reg), 29, 1)
 
  111         #define GX_XF_SET_CLIPDISABLE_ACCEL(reg, x) ((reg) = GX_BITSET((reg), 29, 1, x)) 
  118         #define GX_XF_PERF1_TARGET_B 25
 
  119         #define GX_XF_PERF1_TARGET_E 31
 
  120         #define GX_XF_PERF1_TARGET_SZ 7
 
  122         #define GX_XF_PERF1_TARGET_MASK (((1 << 7) - 1) << 31 - 31)
 
  123         #define GX_XF_PERF1_TARGET_LMASK ((1 << 7) - 1) 
  124         #define GX_XF_PERF1_TARGET_SHIFT 0
 
  126         #define GX_XF_GET_PERF1_TARGET(reg) GX_BITGET((reg), 25, 7)
 
  127         #define GX_XF_SET_PERF1_TARGET(reg, x) ((reg) = GX_BITSET((reg), 25, 7, x)) 
  134         #define GX_XF_INVERTEXSPEC_CLR_B 30
 
  135         #define GX_XF_INVERTEXSPEC_CLR_E 31
 
  136         #define GX_XF_INVERTEXSPEC_CLR_SZ 2
 
  138         #define GX_XF_INVERTEXSPEC_CLR_MASK (((1 << 2) - 1) << 31 - 31)
 
  139         #define GX_XF_INVERTEXSPEC_CLR_LMASK ((1 << 2) - 1) 
  140         #define GX_XF_INVERTEXSPEC_CLR_SHIFT 0
 
  142         #define GX_XF_GET_INVERTEXSPEC_CLR(reg) GX_BITGET((reg), 30, 2)
 
  143         #define GX_XF_SET_INVERTEXSPEC_CLR(reg, x) ((reg) = GX_BITSET((reg), 30, 2, x)) 
  146         #define GX_XF_INVERTEXSPEC_NRM_B 28
 
  147         #define GX_XF_INVERTEXSPEC_NRM_E 29
 
  148         #define GX_XF_INVERTEXSPEC_NRM_SZ 2
 
  150         #define GX_XF_INVERTEXSPEC_NRM_MASK (((1 << 2) - 1) << 31 - 29)
 
  151         #define GX_XF_INVERTEXSPEC_NRM_LMASK ((1 << 2) - 1) 
  152         #define GX_XF_INVERTEXSPEC_NRM_SHIFT 2
 
  154         #define GX_XF_GET_INVERTEXSPEC_NRM(reg) GX_BITGET((reg), 28, 2)
 
  155         #define GX_XF_SET_INVERTEXSPEC_NRM(reg, x) ((reg) = GX_BITSET((reg), 28, 2, x)) 
  158         #define GX_XF_INVERTEXSPEC_TXC_B 24
 
  159         #define GX_XF_INVERTEXSPEC_TXC_E 27
 
  160         #define GX_XF_INVERTEXSPEC_TXC_SZ 4
 
  162         #define GX_XF_INVERTEXSPEC_TXC_MASK (((1 << 4) - 1) << 31 - 27)
 
  163         #define GX_XF_INVERTEXSPEC_TXC_LMASK ((1 << 4) - 1) 
  164         #define GX_XF_INVERTEXSPEC_TXC_SHIFT 4
 
  166         #define GX_XF_GET_INVERTEXSPEC_TXC(reg) GX_BITGET((reg), 24, 4)
 
  167         #define GX_XF_SET_INVERTEXSPEC_TXC(reg, x) ((reg) = GX_BITSET((reg), 24, 4, x)) 
  174         #define GX_XF_COLOR0CNTRL_MATSRC_B 31
 
  175         #define GX_XF_COLOR0CNTRL_MATSRC_E 31
 
  176         #define GX_XF_COLOR0CNTRL_MATSRC_SZ 1
 
  178         #define GX_XF_COLOR0CNTRL_MATSRC_MASK (((1 << 1) - 1) << 31 - 31)
 
  179         #define GX_XF_COLOR0CNTRL_MATSRC_LMASK ((1 << 1) - 1) 
  180         #define GX_XF_COLOR0CNTRL_MATSRC_SHIFT 0
 
  182         #define GX_XF_GET_COLOR0CNTRL_MATSRC(reg) GX_BITGET((reg), 31, 1)
 
  183         #define GX_XF_SET_COLOR0CNTRL_MATSRC(reg, x) ((reg) = GX_BITSET((reg), 31, 1, x)) 
  186         #define GX_XF_COLOR0CNTRL_LIGHT_B 30
 
  187         #define GX_XF_COLOR0CNTRL_LIGHT_E 30
 
  188         #define GX_XF_COLOR0CNTRL_LIGHT_SZ 1
 
  190         #define GX_XF_COLOR0CNTRL_LIGHT_MASK (((1 << 1) - 1) << 31 - 30)
 
  191         #define GX_XF_COLOR0CNTRL_LIGHT_LMASK ((1 << 1) - 1) 
  192         #define GX_XF_COLOR0CNTRL_LIGHT_SHIFT 1
 
  194         #define GX_XF_GET_COLOR0CNTRL_LIGHT(reg) GX_BITGET((reg), 30, 1)
 
  195         #define GX_XF_SET_COLOR0CNTRL_LIGHT(reg, x) ((reg) = GX_BITSET((reg), 30, 1, x)) 
  198         #define GX_XF_COLOR0CNTRL_LMASKLO_B 26
 
  199         #define GX_XF_COLOR0CNTRL_LMASKLO_E 29
 
  200         #define GX_XF_COLOR0CNTRL_LMASKLO_SZ 4
 
  202         #define GX_XF_COLOR0CNTRL_LMASKLO_MASK (((1 << 4) - 1) << 31 - 29)
 
  203         #define GX_XF_COLOR0CNTRL_LMASKLO_LMASK ((1 << 4) - 1) 
  204         #define GX_XF_COLOR0CNTRL_LMASKLO_SHIFT 2
 
  206         #define GX_XF_GET_COLOR0CNTRL_LMASKLO(reg) GX_BITGET((reg), 26, 4)
 
  207         #define GX_XF_SET_COLOR0CNTRL_LMASKLO(reg, x) ((reg) = GX_BITSET((reg), 26, 4, x)) 
  210         #define GX_XF_COLOR0CNTRL_AMBSRC_B 25
 
  211         #define GX_XF_COLOR0CNTRL_AMBSRC_E 25
 
  212         #define GX_XF_COLOR0CNTRL_AMBSRC_SZ 1
 
  214         #define GX_XF_COLOR0CNTRL_AMBSRC_MASK (((1 << 1) - 1) << 31 - 25)
 
  215         #define GX_XF_COLOR0CNTRL_AMBSRC_LMASK ((1 << 1) - 1) 
  216         #define GX_XF_COLOR0CNTRL_AMBSRC_SHIFT 6
 
  218         #define GX_XF_GET_COLOR0CNTRL_AMBSRC(reg) GX_BITGET((reg), 25, 1)
 
  219         #define GX_XF_SET_COLOR0CNTRL_AMBSRC(reg, x) ((reg) = GX_BITSET((reg), 25, 1, x)) 
  222         #define GX_XF_COLOR0CNTRL_DIFFUSEATTN_B 23
 
  223         #define GX_XF_COLOR0CNTRL_DIFFUSEATTN_E 24
 
  224         #define GX_XF_COLOR0CNTRL_DIFFUSEATTN_SZ 2
 
  226         #define GX_XF_COLOR0CNTRL_DIFFUSEATTN_MASK (((1 << 2) - 1) << 31 - 24)
 
  227         #define GX_XF_COLOR0CNTRL_DIFFUSEATTN_LMASK ((1 << 2) - 1) 
  228         #define GX_XF_COLOR0CNTRL_DIFFUSEATTN_SHIFT 7
 
  230         #define GX_XF_GET_COLOR0CNTRL_DIFFUSEATTN(reg) GX_BITGET((reg), 23, 2)
 
  231         #define GX_XF_SET_COLOR0CNTRL_DIFFUSEATTN(reg, x) ((reg) = GX_BITSET((reg), 23, 2, x)) 
  234         #define GX_XF_COLOR0CNTRL_ATTNENABLE_B 22
 
  235         #define GX_XF_COLOR0CNTRL_ATTNENABLE_E 22
 
  236         #define GX_XF_COLOR0CNTRL_ATTNENABLE_SZ 1
 
  238         #define GX_XF_COLOR0CNTRL_ATTNENABLE_MASK (((1 << 1) - 1) << 31 - 22)
 
  239         #define GX_XF_COLOR0CNTRL_ATTNENABLE_LMASK ((1 << 1) - 1) 
  240         #define GX_XF_COLOR0CNTRL_ATTNENABLE_SHIFT 9
 
  242         #define GX_XF_GET_COLOR0CNTRL_ATTNENABLE(reg) GX_BITGET((reg), 22, 1)
 
  243         #define GX_XF_SET_COLOR0CNTRL_ATTNENABLE(reg, x) ((reg) = GX_BITSET((reg), 22, 1, x)) 
  246         #define GX_XF_COLOR0CNTRL_ATTNSELECT_B 21
 
  247         #define GX_XF_COLOR0CNTRL_ATTNSELECT_E 21
 
  248         #define GX_XF_COLOR0CNTRL_ATTNSELECT_SZ 1
 
  250         #define GX_XF_COLOR0CNTRL_ATTNSELECT_MASK (((1 << 1) - 1) << 31 - 21)
 
  251         #define GX_XF_COLOR0CNTRL_ATTNSELECT_LMASK ((1 << 1) - 1) 
  252         #define GX_XF_COLOR0CNTRL_ATTNSELECT_SHIFT 10
 
  254         #define GX_XF_GET_COLOR0CNTRL_ATTNSELECT(reg) GX_BITGET((reg), 21, 1)
 
  255         #define GX_XF_SET_COLOR0CNTRL_ATTNSELECT(reg, x) ((reg) = GX_BITSET((reg), 21, 1, x)) 
  258         #define GX_XF_COLOR0CNTRL_LMASKHI_B 17
 
  259         #define GX_XF_COLOR0CNTRL_LMASKHI_E 20
 
  260         #define GX_XF_COLOR0CNTRL_LMASKHI_SZ 4
 
  262         #define GX_XF_COLOR0CNTRL_LMASKHI_MASK (((1 << 4) - 1) << 31 - 20)
 
  263         #define GX_XF_COLOR0CNTRL_LMASKHI_LMASK ((1 << 4) - 1) 
  264         #define GX_XF_COLOR0CNTRL_LMASKHI_SHIFT 11
 
  266         #define GX_XF_GET_COLOR0CNTRL_LMASKHI(reg) GX_BITGET((reg), 17, 4)
 
  267         #define GX_XF_SET_COLOR0CNTRL_LMASKHI(reg, x) ((reg) = GX_BITSET((reg), 17, 4, x)) 
  274         #define GX_XF_MATRIXINDEX0_GEOM_B 26
 
  275         #define GX_XF_MATRIXINDEX0_GEOM_E 31
 
  276         #define GX_XF_MATRIXINDEX0_GEOM_SZ 6
 
  278         #define GX_XF_MATRIXINDEX0_GEOM_MASK (((1 << 6) - 1) << 31 - 31)
 
  279         #define GX_XF_MATRIXINDEX0_GEOM_LMASK ((1 << 6) - 1) 
  280         #define GX_XF_MATRIXINDEX0_GEOM_SHIFT 0
 
  282         #define GX_XF_GET_MATRIXINDEX0_GEOM(reg) GX_BITGET((reg), 26, 6)
 
  283         #define GX_XF_SET_MATRIXINDEX0_GEOM(reg, x) ((reg) = GX_BITSET((reg), 26, 6, x)) 
  286         #define GX_XF_MATRIXINDEX0_TEX0_B 20
 
  287         #define GX_XF_MATRIXINDEX0_TEX0_E 25
 
  288         #define GX_XF_MATRIXINDEX0_TEX0_SZ 6
 
  290         #define GX_XF_MATRIXINDEX0_TEX0_MASK (((1 << 6) - 1) << 31 - 25)
 
  291         #define GX_XF_MATRIXINDEX0_TEX0_LMASK ((1 << 6) - 1) 
  292         #define GX_XF_MATRIXINDEX0_TEX0_SHIFT 6
 
  294         #define GX_XF_GET_MATRIXINDEX0_TEX0(reg) GX_BITGET((reg), 20, 6)
 
  295         #define GX_XF_SET_MATRIXINDEX0_TEX0(reg, x) ((reg) = GX_BITSET((reg), 20, 6, x)) 
  298         #define GX_XF_MATRIXINDEX0_TEX1_B 14
 
  299         #define GX_XF_MATRIXINDEX0_TEX1_E 19
 
  300         #define GX_XF_MATRIXINDEX0_TEX1_SZ 6
 
  302         #define GX_XF_MATRIXINDEX0_TEX1_MASK (((1 << 6) - 1) << 31 - 19)
 
  303         #define GX_XF_MATRIXINDEX0_TEX1_LMASK ((1 << 6) - 1) 
  304         #define GX_XF_MATRIXINDEX0_TEX1_SHIFT 12
 
  306         #define GX_XF_GET_MATRIXINDEX0_TEX1(reg) GX_BITGET((reg), 14, 6)
 
  307         #define GX_XF_SET_MATRIXINDEX0_TEX1(reg, x) ((reg) = GX_BITSET((reg), 14, 6, x)) 
  310         #define GX_XF_MATRIXINDEX0_TEX2_B 8
 
  311         #define GX_XF_MATRIXINDEX0_TEX2_E 13
 
  312         #define GX_XF_MATRIXINDEX0_TEX2_SZ 6
 
  314         #define GX_XF_MATRIXINDEX0_TEX2_MASK (((1 << 6) - 1) << 31 - 13)
 
  315         #define GX_XF_MATRIXINDEX0_TEX2_LMASK ((1 << 6) - 1) 
  316         #define GX_XF_MATRIXINDEX0_TEX2_SHIFT 18
 
  318         #define GX_XF_GET_MATRIXINDEX0_TEX2(reg) GX_BITGET((reg), 8, 6)
 
  319         #define GX_XF_SET_MATRIXINDEX0_TEX2(reg, x) ((reg) = GX_BITSET((reg), 8, 6, x)) 
  322         #define GX_XF_MATRIXINDEX0_TEX3_B 2
 
  323         #define GX_XF_MATRIXINDEX0_TEX3_E 7
 
  324         #define GX_XF_MATRIXINDEX0_TEX3_SZ 6
 
  326         #define GX_XF_MATRIXINDEX0_TEX3_MASK (((1 << 6) - 1) << 31 - 7)
 
  327         #define GX_XF_MATRIXINDEX0_TEX3_LMASK ((1 << 6) - 1) 
  328         #define GX_XF_MATRIXINDEX0_TEX3_SHIFT 24
 
  330         #define GX_XF_GET_MATRIXINDEX0_TEX3(reg) GX_BITGET((reg), 2, 6)
 
  331         #define GX_XF_SET_MATRIXINDEX0_TEX3(reg, x) ((reg) = GX_BITSET((reg), 2, 6, x)) 
  338         #define GX_XF_MATRIXINDEX1_TEX4_B 26
 
  339         #define GX_XF_MATRIXINDEX1_TEX4_E 31
 
  340         #define GX_XF_MATRIXINDEX1_TEX4_SZ 6
 
  342         #define GX_XF_MATRIXINDEX1_TEX4_MASK (((1 << 6) - 1) << 31 - 31)
 
  343         #define GX_XF_MATRIXINDEX1_TEX4_LMASK ((1 << 6) - 1) 
  344         #define GX_XF_MATRIXINDEX1_TEX4_SHIFT 0
 
  346         #define GX_XF_GET_MATRIXINDEX1_TEX4(reg) GX_BITGET((reg), 26, 6)
 
  347         #define GX_XF_SET_MATRIXINDEX1_TEX4(reg, x) ((reg) = GX_BITSET((reg), 26, 6, x)) 
  350         #define GX_XF_MATRIXINDEX1_TEX5_B 20
 
  351         #define GX_XF_MATRIXINDEX1_TEX5_E 25
 
  352         #define GX_XF_MATRIXINDEX1_TEX5_SZ 6
 
  354         #define GX_XF_MATRIXINDEX1_TEX5_MASK (((1 << 6) - 1) << 31 - 25)
 
  355         #define GX_XF_MATRIXINDEX1_TEX5_LMASK ((1 << 6) - 1) 
  356         #define GX_XF_MATRIXINDEX1_TEX5_SHIFT 6
 
  358         #define GX_XF_GET_MATRIXINDEX1_TEX5(reg) GX_BITGET((reg), 20, 6)
 
  359         #define GX_XF_SET_MATRIXINDEX1_TEX5(reg, x) ((reg) = GX_BITSET((reg), 20, 6, x)) 
  362         #define GX_XF_MATRIXINDEX1_TEX6_B 14
 
  363         #define GX_XF_MATRIXINDEX1_TEX6_E 19
 
  364         #define GX_XF_MATRIXINDEX1_TEX6_SZ 6
 
  366         #define GX_XF_MATRIXINDEX1_TEX6_MASK (((1 << 6) - 1) << 31 - 19)
 
  367         #define GX_XF_MATRIXINDEX1_TEX6_LMASK ((1 << 6) - 1) 
  368         #define GX_XF_MATRIXINDEX1_TEX6_SHIFT 12
 
  370         #define GX_XF_GET_MATRIXINDEX1_TEX6(reg) GX_BITGET((reg), 14, 6)
 
  371         #define GX_XF_SET_MATRIXINDEX1_TEX6(reg, x) ((reg) = GX_BITSET((reg), 14, 6, x)) 
  374         #define GX_XF_MATRIXINDEX1_TEX7_B 8
 
  375         #define GX_XF_MATRIXINDEX1_TEX7_E 13
 
  376         #define GX_XF_MATRIXINDEX1_TEX7_SZ 6
 
  378         #define GX_XF_MATRIXINDEX1_TEX7_MASK (((1 << 6) - 1) << 31 - 13)
 
  379         #define GX_XF_MATRIXINDEX1_TEX7_LMASK ((1 << 6) - 1) 
  380         #define GX_XF_MATRIXINDEX1_TEX7_SHIFT 18
 
  382         #define GX_XF_GET_MATRIXINDEX1_TEX7(reg) GX_BITGET((reg), 8, 6)
 
  383         #define GX_XF_SET_MATRIXINDEX1_TEX7(reg, x) ((reg) = GX_BITSET((reg), 8, 6, x)) 
  390         #define GX_XF_TEX_PROJTYPE_B 30
 
  391         #define GX_XF_TEX_PROJTYPE_E 30
 
  392         #define GX_XF_TEX_PROJTYPE_SZ 1
 
  394         #define GX_XF_TEX_PROJTYPE_MASK (((1 << 1) - 1) << 31 - 30)
 
  395         #define GX_XF_TEX_PROJTYPE_LMASK ((1 << 1) - 1) 
  396         #define GX_XF_TEX_PROJTYPE_SHIFT 1
 
  398         #define GX_XF_GET_TEX_PROJTYPE(reg) GX_BITGET((reg), 30, 1)
 
  399         #define GX_XF_SET_TEX_PROJTYPE(reg, x) ((reg) = GX_BITSET((reg), 30, 1, x)) 
  402         #define GX_XF_TEX_INPUTFORM_B 29
 
  403         #define GX_XF_TEX_INPUTFORM_E 29
 
  404         #define GX_XF_TEX_INPUTFORM_SZ 1
 
  406         #define GX_XF_TEX_INPUTFORM_MASK (((1 << 1) - 1) << 31 - 29)
 
  407         #define GX_XF_TEX_INPUTFORM_LMASK ((1 << 1) - 1) 
  408         #define GX_XF_TEX_INPUTFORM_SHIFT 2
 
  410         #define GX_XF_GET_TEX_INPUTFORM(reg) GX_BITGET((reg), 29, 1)
 
  411         #define GX_XF_SET_TEX_INPUTFORM(reg, x) ((reg) = GX_BITSET((reg), 29, 1, x)) 
  414         #define GX_XF_TEX_TEXGENTYPE_B 25
 
  415         #define GX_XF_TEX_TEXGENTYPE_E 27
 
  416         #define GX_XF_TEX_TEXGENTYPE_SZ 3
 
  418         #define GX_XF_TEX_TEXGENTYPE_MASK (((1 << 3) - 1) << 31 - 27)
 
  419         #define GX_XF_TEX_TEXGENTYPE_LMASK ((1 << 3) - 1) 
  420         #define GX_XF_TEX_TEXGENTYPE_SHIFT 4
 
  422         #define GX_XF_GET_TEX_TEXGENTYPE(reg) GX_BITGET((reg), 25, 3)
 
  423         #define GX_XF_SET_TEX_TEXGENTYPE(reg, x) ((reg) = GX_BITSET((reg), 25, 3, x)) 
  426         #define GX_XF_TEX_SRCROW_B 20
 
  427         #define GX_XF_TEX_SRCROW_E 24
 
  428         #define GX_XF_TEX_SRCROW_SZ 5
 
  430         #define GX_XF_TEX_SRCROW_MASK (((1 << 5) - 1) << 31 - 24)
 
  431         #define GX_XF_TEX_SRCROW_LMASK ((1 << 5) - 1) 
  432         #define GX_XF_TEX_SRCROW_SHIFT 7
 
  434         #define GX_XF_GET_TEX_SRCROW(reg) GX_BITGET((reg), 20, 5)
 
  435         #define GX_XF_SET_TEX_SRCROW(reg, x) ((reg) = GX_BITSET((reg), 20, 5, x)) 
  438         #define GX_XF_TEX_BUMPSRCTEX_B 17
 
  439         #define GX_XF_TEX_BUMPSRCTEX_E 19
 
  440         #define GX_XF_TEX_BUMPSRCTEX_SZ 3
 
  442         #define GX_XF_TEX_BUMPSRCTEX_MASK (((1 << 3) - 1) << 31 - 19)
 
  443         #define GX_XF_TEX_BUMPSRCTEX_LMASK ((1 << 3) - 1) 
  444         #define GX_XF_TEX_BUMPSRCTEX_SHIFT 12
 
  446         #define GX_XF_GET_TEX_BUMPSRCTEX(reg) GX_BITGET((reg), 17, 3)
 
  447         #define GX_XF_SET_TEX_BUMPSRCTEX(reg, x) ((reg) = GX_BITSET((reg), 17, 3, x)) 
  450         #define GX_XF_TEX_BUMPSRCLIGHT_B 14
 
  451         #define GX_XF_TEX_BUMPSRCLIGHT_E 16
 
  452         #define GX_XF_TEX_BUMPSRCLIGHT_SZ 3
 
  454         #define GX_XF_TEX_BUMPSRCLIGHT_MASK (((1 << 3) - 1) << 31 - 16)
 
  455         #define GX_XF_TEX_BUMPSRCLIGHT_LMASK ((1 << 3) - 1) 
  456         #define GX_XF_TEX_BUMPSRCLIGHT_SHIFT 15
 
  458         #define GX_XF_GET_TEX_BUMPSRCLIGHT(reg) GX_BITGET((reg), 14, 3)
 
  459         #define GX_XF_SET_TEX_BUMPSRCLIGHT(reg, x) ((reg) = GX_BITSET((reg), 14, 3, x)) 
  466         #define GX_XF_DUALTEX_BASEROW_B 26
 
  467         #define GX_XF_DUALTEX_BASEROW_E 31
 
  468         #define GX_XF_DUALTEX_BASEROW_SZ 6
 
  470         #define GX_XF_DUALTEX_BASEROW_MASK (((1 << 6) - 1) << 31 - 31)
 
  471         #define GX_XF_DUALTEX_BASEROW_LMASK ((1 << 6) - 1) 
  472         #define GX_XF_DUALTEX_BASEROW_SHIFT 0
 
  474         #define GX_XF_GET_DUALTEX_BASEROW(reg) GX_BITGET((reg), 26, 6)
 
  475         #define GX_XF_SET_DUALTEX_BASEROW(reg, x) ((reg) = GX_BITSET((reg), 26, 6, x)) 
  478         #define GX_XF_DUALTEX_NORMALIZE_B 23
 
  479         #define GX_XF_DUALTEX_NORMALIZE_E 23
 
  480         #define GX_XF_DUALTEX_NORMALIZE_SZ 1
 
  482         #define GX_XF_DUALTEX_NORMALIZE_MASK (((1 << 1) - 1) << 31 - 23)
 
  483         #define GX_XF_DUALTEX_NORMALIZE_LMASK ((1 << 1) - 1) 
  484         #define GX_XF_DUALTEX_NORMALIZE_SHIFT 8
 
  486         #define GX_XF_GET_DUALTEX_NORMALIZE(reg) GX_BITGET((reg), 23, 1)
 
  487         #define GX_XF_SET_DUALTEX_NORMALIZE(reg, x) ((reg) = GX_BITSET((reg), 23, 1, x))