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))