Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
GXFDLShortcut.h
Go to the documentation of this file.
1#ifndef GXFDLSHORTCUT_H
2#define GXFDLSHORTCUT_H
3
4#if __MWERKS__
5#define FAST_GPFLAGSET(line, regOrg, newFlag, regName) \
6do { \
7 ASSERTMSGLINE(line, ((u32)(newFlag) & ~((1 << (regName ## _SIZE)) - 1)) == 0, "GX Internal: Register field out of range"); \
8 (regOrg) = (u32) __rlwimi((int) (regOrg), \
9 (int) (newFlag), \
10 (regName ## _SHIFT), \
11 (32-(regName ## _SHIFT)-(regName ## _SIZE)), \
12 (31-(regName ## _SHIFT))); \
13} while (0)
14#else
15#define FAST_GPFLAGSET(line, regOrg, newFlag, regName)
16#endif
17
18#define CP_VCD_REG_HI_TEXALL_MASK ((1UL<<CP_VCD_REG_HI_TOTAL_SIZE)-1)
19#define CP_VCD_REG_HI_TEXALL_SHIFT CP_VCD_REG_HI_TEX0_SHIFT
20#define CP_VCD_REG_LO_COLALL_MASK (CP_VCD_REG_LO_COL0_MASK|CP_VCD_REG_LO_COL1_MASK)
21#define CP_VCD_REG_LO_COLALL_SHIFT CP_VCD_REG_LO_COL0_SHIFT
22
23#define TEV_REGISTERL_R8_SIZE TEV_KREGISTERL_R_SIZE
24#define TEV_REGISTERL_R8_SHIFT TEV_KREGISTERL_R_SHIFT
25#define TEV_REGISTERL_R8_MASK TEV_KREGISTERL_R_MASK
26#define SC_TEV_REGISTERL_SET_R8(line, tev_registerl, r8) \
27 FAST_GPFLAGSET(line, tev_registerl, r8, TEV_REGISTERL_R8)
28
29#define TEV_REGISTERL_A8_SIZE TEV_KREGISTERL_A_SIZE
30#define TEV_REGISTERL_A8_SHIFT TEV_KREGISTERL_A_SHIFT
31#define TEV_REGISTERL_A8_MASK TEV_KREGISTERL_A_MASK
32#define SC_TEV_REGISTERL_SET_A8(line, tev_registerl, a8) \
33 FAST_GPFLAGSET(line, tev_registerl, a8, TEV_REGISTERL_A8)
34
35#define TEV_REGISTERH_B8_SIZE TEV_KREGISTERH_B_SIZE
36#define TEV_REGISTERH_B8_SHIFT TEV_KREGISTERH_B_SHIFT
37#define TEV_REGISTERH_B8_MASK TEV_KREGISTERH_B_MASK
38#define SC_TEV_REGISTERH_SET_B8(line, tev_registerh, b8) \
39 FAST_GPFLAGSET(line, tev_registerh, b8, TEV_REGISTERH_B8)
40
41#define TEV_REGISTERH_G8_SIZE TEV_KREGISTERH_G_SIZE
42#define TEV_REGISTERH_G8_SHIFT TEV_KREGISTERH_G_SHIFT
43#define TEV_REGISTERH_G8_MASK TEV_KREGISTERH_G_MASK
44#define SC_TEV_REGISTERH_SET_G8(line, tev_registerh, g8) \
45 FAST_GPFLAGSET(line, tev_registerh, g8, TEV_REGISTERH_G8)
46
47#define TEV_REGISTERL_R8_SIZE TEV_KREGISTERL_R_SIZE
48#define TEV_REGISTERL_R8_SHIFT TEV_KREGISTERL_R_SHIFT
49#define TEV_REGISTERL_R8_MASK TEV_KREGISTERL_R_MASK
50#define SC_TEV_REGISTERL_SET_R8(line, tev_registerl, r8) \
51 FAST_GPFLAGSET(line, tev_registerl, r8, TEV_REGISTERL_R8)
52
53#define TEV_REGISTERL_A8_SIZE TEV_KREGISTERL_A_SIZE
54#define TEV_REGISTERL_A8_SHIFT TEV_KREGISTERL_A_SHIFT
55#define TEV_REGISTERL_A8_MASK TEV_KREGISTERL_A_MASK
56#define SC_TEV_REGISTERL_SET_A8(line, tev_registerl, a8) \
57 FAST_GPFLAGSET(line, tev_registerl, a8, TEV_REGISTERL_A8)
58
59#define TEV_REGISTERH_B8_SIZE TEV_KREGISTERH_B_SIZE
60#define TEV_REGISTERH_B8_SHIFT TEV_KREGISTERH_B_SHIFT
61#define TEV_REGISTERH_B8_MASK TEV_KREGISTERH_B_MASK
62#define SC_TEV_REGISTERH_SET_B8(line, tev_registerh, b8) \
63 FAST_GPFLAGSET(line, tev_registerh, b8, TEV_REGISTERH_B8)
64
65#define TEV_REGISTERH_G8_SIZE TEV_KREGISTERH_G_SIZE
66#define TEV_REGISTERH_G8_SHIFT TEV_KREGISTERH_G_SHIFT
67#define TEV_REGISTERH_G8_MASK TEV_KREGISTERH_G_MASK
68#define SC_TEV_REGISTERH_SET_G8(line, tev_registerh, g8) \
69 FAST_GPFLAGSET(line, tev_registerh, g8, TEV_REGISTERH_G8)
70
71#define XF_AMBIENT0_F_RGBA_SIZE \
72 ((XF_AMBIENT0_F_ALPHA_SIZE)+(XF_AMBIENT0_F_BLUE_SIZE)+ \
73 (XF_AMBIENT0_F_GREEN_SIZE)+(XF_AMBIENT0_F_RED_SIZE))
74#define XF_AMBIENT0_F_RGBA_SHIFT \
75 XF_AMBIENT0_F_ALPHA_SHIFT
76#define XF_AMBIENT0_F_RGBA_MASK \
77 ((XF_AMBIENT0_F_ALPHA_MASK)|(XF_AMBIENT0_F_BLUE_MASK)| \
78 (XF_AMBIENT0_F_GREEN_MASK)|(XF_AMBIENT0_F_RED_MASK))
79#define SC_XF_AMBIENT0_F_SET_RGBA(xf_ambient0_f, rgba) { \
80 xf_ambient0_f = (((unsigned long)(xf_ambient0_f)) & ~XF_AMBIENT0_F_RGBA_MASK) | (((unsigned long)(rgba)) << XF_AMBIENT0_F_RGBA_SHIFT);\
81}
82
83#define XF_AMBIENT0_F_ALPHA_SIZE 8
84#define XF_AMBIENT0_F_ALPHA_SHIFT 0
85#define XF_AMBIENT0_F_ALPHA_MASK 0x000000ff
86#define XF_AMBIENT0_F_GET_ALPHA(xf_ambient0_f) \
87 ((((unsigned long)(xf_ambient0_f)) & XF_AMBIENT0_F_ALPHA_MASK) >> XF_AMBIENT0_F_ALPHA_SHIFT)
88#define XF_AMBIENT0_F_SET_ALPHA(xf_ambient0_f, alpha) { \
89 xf_ambient0_f = (((unsigned long)(xf_ambient0_f)) & ~XF_AMBIENT0_F_ALPHA_MASK) | (((unsigned long)(alpha)) << XF_AMBIENT0_F_ALPHA_SHIFT);\
90}
91#define XF_AMBIENT0_F_BLUE_SIZE 8
92#define XF_AMBIENT0_F_BLUE_SHIFT 8
93#define XF_AMBIENT0_F_BLUE_MASK 0x0000ff00
94#define XF_AMBIENT0_F_GET_BLUE(xf_ambient0_f) \
95 ((((unsigned long)(xf_ambient0_f)) & XF_AMBIENT0_F_BLUE_MASK) >> XF_AMBIENT0_F_BLUE_SHIFT)
96#define XF_AMBIENT0_F_SET_BLUE(xf_ambient0_f, blue) { \
97 xf_ambient0_f = (((unsigned long)(xf_ambient0_f)) & ~XF_AMBIENT0_F_BLUE_MASK) | (((unsigned long)(blue)) << XF_AMBIENT0_F_BLUE_SHIFT);\
98}
99#define XF_AMBIENT0_F_GREEN_SIZE 8
100#define XF_AMBIENT0_F_GREEN_SHIFT 16
101#define XF_AMBIENT0_F_GREEN_MASK 0x00ff0000
102#define XF_AMBIENT0_F_GET_GREEN(xf_ambient0_f) \
103 ((((unsigned long)(xf_ambient0_f)) & XF_AMBIENT0_F_GREEN_MASK) >> XF_AMBIENT0_F_GREEN_SHIFT)
104#define XF_AMBIENT0_F_SET_GREEN(xf_ambient0_f, green) { \
105 xf_ambient0_f = (((unsigned long)(xf_ambient0_f)) & ~XF_AMBIENT0_F_GREEN_MASK) | (((unsigned long)(green)) << XF_AMBIENT0_F_GREEN_SHIFT);\
106}
107#define XF_AMBIENT0_F_RED_SIZE 8
108#define XF_AMBIENT0_F_RED_SHIFT 24
109#define XF_AMBIENT0_F_RED_MASK 0xff000000
110#define XF_AMBIENT0_F_GET_RED(xf_ambient0_f) \
111 ((((unsigned long)(xf_ambient0_f)) & XF_AMBIENT0_F_RED_MASK) >> XF_AMBIENT0_F_RED_SHIFT)
112#define XF_AMBIENT0_F_SET_RED(xf_ambient0_f, red) { \
113 xf_ambient0_f = (((unsigned long)(xf_ambient0_f)) & ~XF_AMBIENT0_F_RED_MASK) | (((unsigned long)(red)) << XF_AMBIENT0_F_RED_SHIFT);\
114}
115
116#define XF_AMBIENT0_F_RGB_SIZE \
117 ((XF_AMBIENT0_F_BLUE_SIZE)+(XF_AMBIENT0_F_GREEN_SIZE)+(XF_AMBIENT0_F_RED_SIZE))
118#define XF_AMBIENT0_F_RGB_SHIFT \
119 XF_AMBIENT0_F_BLUE_SHIFT
120#define XF_AMBIENT0_F_RGB_MASK \
121 ((XF_AMBIENT0_F_BLUE_MASK)|(XF_AMBIENT0_F_GREEN_MASK)|(XF_AMBIENT0_F_RED_MASK))
122
123#define SC_XF_AMBIENT0_F_SET_RGB(line, xf_ambient0_f, rgb) \
124 FAST_GPFLAGSET(line, xf_ambient0_f, rgb, XF_AMBIENT0_F_RGB)
125
126#define XF_AMBIENT1_F_RGBA_SIZE \
127 ((XF_AMBIENT1_F_ALPHA_SIZE)+(XF_AMBIENT1_F_BLUE_SIZE)+ \
128 (XF_AMBIENT1_F_GREEN_SIZE)+(XF_AMBIENT1_F_RED_SIZE))
129#define XF_AMBIENT1_F_RGBA_SHIFT \
130 XF_AMBIENT1_F_ALPHA_SHIFT
131#define XF_AMBIENT1_F_RGBA_MASK \
132 ((XF_AMBIENT1_F_ALPHA_MASK)|(XF_AMBIENT1_F_BLUE_MASK)| \
133 (XF_AMBIENT1_F_GREEN_MASK)|(XF_AMBIENT1_F_RED_MASK))
134#define SC_XF_AMBIENT1_F_SET_RGBA(xf_ambient1_f, rgba) { \
135 xf_ambient1_f = (((unsigned long)(xf_ambient1_f)) & ~XF_AMBIENT1_F_RGBA_MASK) | (((unsigned long)(rgba)) << XF_AMBIENT1_F_RGBA_SHIFT);\
136}
137
138#define XF_AMBIENT1_F_ALPHA_SIZE 8
139#define XF_AMBIENT1_F_ALPHA_SHIFT 0
140#define XF_AMBIENT1_F_ALPHA_MASK 0x000000ff
141#define XF_AMBIENT1_F_GET_ALPHA(xf_ambient1_f) \
142 ((((unsigned long)(xf_ambient1_f)) & XF_AMBIENT1_F_ALPHA_MASK) >> XF_AMBIENT1_F_ALPHA_SHIFT)
143#define XF_AMBIENT1_F_SET_ALPHA(xf_ambient1_f, alpha) { \
144 xf_ambient1_f = (((unsigned long)(xf_ambient1_f)) & ~XF_AMBIENT1_F_ALPHA_MASK) | (((unsigned long)(alpha)) << XF_AMBIENT1_F_ALPHA_SHIFT);\
145}
146#define XF_AMBIENT1_F_BLUE_SIZE 8
147#define XF_AMBIENT1_F_BLUE_SHIFT 8
148#define XF_AMBIENT1_F_BLUE_MASK 0x0000ff00
149#define XF_AMBIENT1_F_GET_BLUE(xf_ambient1_f) \
150 ((((unsigned long)(xf_ambient1_f)) & XF_AMBIENT1_F_BLUE_MASK) >> XF_AMBIENT1_F_BLUE_SHIFT)
151#define XF_AMBIENT1_F_SET_BLUE(xf_ambient1_f, blue) { \
152 xf_ambient1_f = (((unsigned long)(xf_ambient1_f)) & ~XF_AMBIENT1_F_BLUE_MASK) | (((unsigned long)(blue)) << XF_AMBIENT1_F_BLUE_SHIFT);\
153}
154#define XF_AMBIENT1_F_GREEN_SIZE 8
155#define XF_AMBIENT1_F_GREEN_SHIFT 16
156#define XF_AMBIENT1_F_GREEN_MASK 0x00ff0000
157#define XF_AMBIENT1_F_GET_GREEN(xf_ambient1_f) \
158 ((((unsigned long)(xf_ambient1_f)) & XF_AMBIENT1_F_GREEN_MASK) >> XF_AMBIENT1_F_GREEN_SHIFT)
159#define XF_AMBIENT1_F_SET_GREEN(xf_ambient1_f, green) { \
160 xf_ambient1_f = (((unsigned long)(xf_ambient1_f)) & ~XF_AMBIENT1_F_GREEN_MASK) | (((unsigned long)(green)) << XF_AMBIENT1_F_GREEN_SHIFT);\
161}
162#define XF_AMBIENT1_F_RED_SIZE 8
163#define XF_AMBIENT1_F_RED_SHIFT 24
164#define XF_AMBIENT1_F_RED_MASK 0xff000000
165#define XF_AMBIENT1_F_GET_RED(xf_ambient1_f) \
166 ((((unsigned long)(xf_ambient1_f)) & XF_AMBIENT1_F_RED_MASK) >> XF_AMBIENT1_F_RED_SHIFT)
167#define XF_AMBIENT1_F_SET_RED(xf_ambient1_f, red) { \
168 xf_ambient1_f = (((unsigned long)(xf_ambient1_f)) & ~XF_AMBIENT1_F_RED_MASK) | (((unsigned long)(red)) << XF_AMBIENT1_F_RED_SHIFT);\
169}
170
171#define XF_AMBIENT1_F_RGB_SIZE \
172 ((XF_AMBIENT1_F_BLUE_SIZE)+(XF_AMBIENT1_F_GREEN_SIZE)+(XF_AMBIENT1_F_RED_SIZE))
173#define XF_AMBIENT1_F_RGB_SHIFT \
174 XF_AMBIENT1_F_BLUE_SHIFT
175#define XF_AMBIENT1_F_RGB_MASK \
176 ((XF_AMBIENT1_F_BLUE_MASK)|(XF_AMBIENT1_F_GREEN_MASK)|(XF_AMBIENT1_F_RED_MASK))
177#define SC_XF_AMBIENT1_F_SET_RGB(line, xf_ambient1_f, rgb) \
178 FAST_GPFLAGSET(line, xf_ambient1_f, rgb, XF_AMBIENT1_F_RGB)
179
180#define XF_MATERIAL0_F_RGBA_SIZE \
181 ((XF_MATERIAL0_F_ALPHA_SIZE)+(XF_MATERIAL0_F_BLUE_SIZE)+ \
182 (XF_MATERIAL0_F_GREEN_SIZE)+(XF_MATERIAL0_F_RED_SIZE))
183#define XF_MATERIAL0_F_RGBA_SHIFT \
184 XF_MATERIAL0_F_ALPHA_SHIFT
185#define XF_MATERIAL0_F_RGBA_MASK \
186 ((XF_MATERIAL0_F_ALPHA_MASK)|(XF_MATERIAL0_F_BLUE_MASK)| \
187 (XF_MATERIAL0_F_GREEN_MASK)|(XF_MATERIAL0_F_RED_MASK))
188#define SC_XF_MATERIAL0_F_SET_RGBA(xf_material0_f, rgba) { \
189 xf_material0_f = (((unsigned long)(xf_material0_f)) & ~XF_MATERIAL0_F_RGBA_MASK) | (((unsigned long)(rgba)) << XF_MATERIAL0_F_RGBA_SHIFT);\
190}
191
192#define XF_MATERIAL0_F_RGBA_SIZE \
193 ((XF_MATERIAL0_F_ALPHA_SIZE)+(XF_MATERIAL0_F_BLUE_SIZE)+ \
194 (XF_MATERIAL0_F_GREEN_SIZE)+(XF_MATERIAL0_F_RED_SIZE))
195#define XF_MATERIAL0_F_RGBA_SHIFT \
196 XF_MATERIAL0_F_ALPHA_SHIFT
197#define XF_MATERIAL0_F_RGBA_MASK \
198 ((XF_MATERIAL0_F_ALPHA_MASK)|(XF_MATERIAL0_F_BLUE_MASK)| \
199 (XF_MATERIAL0_F_GREEN_MASK)|(XF_MATERIAL0_F_RED_MASK))
200
201#define XF_MATERIAL0_F_RGB_SIZE \
202 ((XF_MATERIAL0_F_BLUE_SIZE)+(XF_MATERIAL0_F_GREEN_SIZE)+(XF_MATERIAL0_F_RED_SIZE))
203#define XF_MATERIAL0_F_RGB_SHIFT \
204 XF_MATERIAL0_F_BLUE_SHIFT
205#define XF_MATERIAL0_F_RGB_MASK \
206 ((XF_MATERIAL0_F_BLUE_MASK)|(XF_MATERIAL0_F_GREEN_MASK)|(XF_MATERIAL0_F_RED_MASK))
207#define SC_XF_MATERIAL0_F_SET_RGB(line, xf_material0_f, rgb) \
208 FAST_GPFLAGSET(line, xf_material0_f, rgb, XF_MATERIAL0_F_RGB)
209
210#define XF_MATERIAL0_F_RGB_SIZE \
211 ((XF_MATERIAL0_F_BLUE_SIZE)+(XF_MATERIAL0_F_GREEN_SIZE)+(XF_MATERIAL0_F_RED_SIZE))
212#define XF_MATERIAL0_F_RGB_SHIFT \
213 XF_MATERIAL0_F_BLUE_SHIFT
214#define XF_MATERIAL0_F_RGB_MASK \
215 ((XF_MATERIAL0_F_BLUE_MASK)|(XF_MATERIAL0_F_GREEN_MASK)|(XF_MATERIAL0_F_RED_MASK))
216#define SC_XF_MATERIAL0_F_SET_RGB(line, xf_material0_f, rgb) \
217 FAST_GPFLAGSET(line, xf_material0_f, rgb, XF_MATERIAL0_F_RGB)
218
219#define XF_MATERIAL1_F_RGBA_SIZE \
220 ((XF_MATERIAL1_F_ALPHA_SIZE)+(XF_MATERIAL1_F_BLUE_SIZE)+ \
221 (XF_MATERIAL1_F_GREEN_SIZE)+(XF_MATERIAL1_F_RED_SIZE))
222#define XF_MATERIAL1_F_RGBA_SHIFT \
223 XF_MATERIAL1_F_ALPHA_SHIFT
224#define XF_MATERIAL1_F_RGBA_MASK \
225 ((XF_MATERIAL1_F_ALPHA_MASK)|(XF_MATERIAL1_F_BLUE_MASK)| \
226 (XF_MATERIAL1_F_GREEN_MASK)|(XF_MATERIAL1_F_RED_MASK))
227#define SC_XF_MATERIAL1_F_SET_RGBA(xf_material1_f, rgba) { \
228 xf_material1_f = (((unsigned long)(xf_material1_f)) & ~XF_MATERIAL1_F_RGBA_MASK) | (((unsigned long)(rgba)) << XF_MATERIAL1_F_RGBA_SHIFT);\
229}
230
231
232#define XF_MATERIAL1_F_RGB_SIZE \
233 ((XF_MATERIAL1_F_BLUE_SIZE)+(XF_MATERIAL1_F_GREEN_SIZE)+(XF_MATERIAL1_F_RED_SIZE))
234#define XF_MATERIAL1_F_RGB_SHIFT \
235 XF_MATERIAL1_F_BLUE_SHIFT
236#define XF_MATERIAL1_F_RGB_MASK \
237 ((XF_MATERIAL1_F_BLUE_MASK)|(XF_MATERIAL1_F_GREEN_MASK)|(XF_MATERIAL1_F_RED_MASK))
238#define SC_XF_MATERIAL1_F_SET_RGB(line, xf_material1_f, rgb) \
239 FAST_GPFLAGSET(line, xf_material1_f, rgb, XF_MATERIAL1_F_RGB)
240
241#define XF_COLOR0CNTRL_F_LIGHT0123_SIZE \
242 ((XF_COLOR0CNTRL_F_LIGHT0_SIZE)+(XF_COLOR0CNTRL_F_LIGHT1_SIZE)+ \
243 (XF_COLOR0CNTRL_F_LIGHT2_SIZE)+(XF_COLOR0CNTRL_F_LIGHT3_SIZE))
244#define XF_COLOR0CNTRL_F_LIGHT0123_SHIFT \
245 XF_COLOR0CNTRL_F_LIGHT0_SHIFT
246#define XF_COLOR0CNTRL_F_LIGHT0123_MASK \
247 ((XF_COLOR0CNTRL_F_LIGHT0_MASK)|(XF_COLOR0CNTRL_F_LIGHT1_MASK)| \
248 (XF_COLOR0CNTRL_F_LIGHT2_MASK)|(XF_COLOR0CNTRL_F_LIGHT3_MASK))
249#define SC_XF_COLOR0CNTRL_F_SET_LIGHT0123(line, xf_color0cntrl_f, light0123) \
250 FAST_GPFLAGSET(line, xf_color0cntrl_f, light0123, XF_COLOR0CNTRL_F_LIGHT0123)
251
252#define XF_COLOR0CNTRL_F_LIGHT4567_SIZE \
253 ((XF_COLOR0CNTRL_F_LIGHT4_SIZE)+(XF_COLOR0CNTRL_F_LIGHT5_SIZE)+ \
254 (XF_COLOR0CNTRL_F_LIGHT6_SIZE)+(XF_COLOR0CNTRL_F_LIGHT7_SIZE))
255#define XF_COLOR0CNTRL_F_LIGHT4567_SHIFT \
256 XF_COLOR0CNTRL_F_LIGHT4_SHIFT
257#define XF_COLOR0CNTRL_F_LIGHT4567_MASK \
258 ((XF_COLOR0CNTRL_F_LIGHT4_MASK)|(XF_COLOR0CNTRL_F_LIGHT5_MASK)| \
259 (XF_COLOR0CNTRL_F_LIGHT6_MASK)|(XF_COLOR0CNTRL_F_LIGHT7_MASK))
260#define SC_XF_COLOR0CNTRL_F_SET_LIGHT4567(line, xf_color0cntrl_f, light4567) \
261 FAST_GPFLAGSET(line, xf_color0cntrl_f, light4567, XF_COLOR0CNTRL_F_LIGHT4567)
262
263#endif // GXFDLSHORTCUT_H