rice: C version of upcoming NEON func
[mupen64plus-pandora.git] / source / gles2rice / src / CombinerTable.cpp
1 /*
2 Copyright (C) 2002 Rice1964
3
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
17
18 */
19
20 #include "GeneralCombiner.h"
21
22 //Attention
23 // If using CUR as an argument, use it as Arg2, not Arg1. I don't know why, 
24 // Geforce2 seems to be picky about this
25
26 // LERP and MULTIPLYADD are actually implemented in 2 stages in video chip
27 // they can only be used with SEL() before it, or use 1 stage only
28
29 // SEL(SPE) only is not good for alpha channel
30 // In fact, Specular color does not have alpha channel
31
32 // ADDSMOOTH does not work
33
34 // When using MOD with TEX and other, TEX must be the first argument, Arg1
35 // When MOD the DIF and FAC, using MOD(FAC,DIF) instead of MOD(DIF,FAC)
36
37 // Don't MOD(TEX,DIF) at Alpha channel, I don't know why this does not work
38 // probably there is not alpha blending for DIFFUSE at alpha channel
39
40 // Modifier COMPLEMENT and ALPHAREPLICATE only works as the first argument of the MOD operate
41 // Modifier ALPHAREPLICATE works
42 // Combined modifier of COMPLEMENT and ALPHAREPLICATE also works
43
44 #define MUX_T0  MUX_TEXEL0
45 #define MUX_T1  MUX_TEXEL1
46 #define MUX_DIF MUX_SHADE
47 #define MUX_COM MUX_COMBINED
48 #define MUX_CUR MUX_COMBINED
49 #define MUX_PRI MUX_PRIM
50
51 #define MUX_T0A     (MUX_TEXEL0|MUX_ALPHAREPLICATE)
52 #define MUX_T1A     (MUX_TEXEL1|MUX_ALPHAREPLICATE)
53 #define MUX_DIFA    (MUX_SHADE|MUX_ALPHAREPLICATE)
54 #define MUX_COMA    (MUX_COMBINED|MUX_ALPHAREPLICATE)
55 #define MUX_CURA    (MUX_COMBINED|MUX_ALPHAREPLICATE)
56 #define MUX_PRIA    (MUX_PRIM|MUX_ALPHAREPLICATE)
57 #define MUX_ENVA    (MUX_ENV|MUX_ALPHAREPLICATE)
58
59 #define MUX_T0C     (MUX_TEXEL0|MUX_COMPLEMENT)
60 #define MUX_T1C     (MUX_TEXEL1|MUX_COMPLEMENT)
61 #define MUX_DIFC    (MUX_SHADE|MUX_COMPLEMENT)
62 #define MUX_COMC    (MUX_COMBINED|MUX_COMPLEMENT)
63 #define MUX_CURC    (MUX_COMBINED|MUX_COMPLEMENT)
64 #define MUX_PRIC    (MUX_PRIM|MUX_COMPLEMENT)
65 #define MUX_ENVC    (MUX_ENV|MUX_COMPLEMENT)
66
67 #define MUX_T0AC    (MUX_TEXEL0|MUX_COMPLEMENT|MUX_ALPHAREPLICATE)
68 #define MUX_T1AC    (MUX_TEXEL1|MUX_COMPLEMENT|MUX_ALPHAREPLICATE)
69 #define MUX_DIFAC   (MUX_SHADE|MUX_COMPLEMENT|MUX_ALPHAREPLICATE)
70 #define MUX_COMAC   (MUX_COMBINED|MUX_COMPLEMENT|MUX_ALPHAREPLICATE)
71 #define MUX_CURAC   (MUX_COMBINED|MUX_COMPLEMENT|MUX_ALPHAREPLICATE)
72 #define MUX_PRIAC   (MUX_PRIM|MUX_COMPLEMENT|MUX_ALPHAREPLICATE)
73 #define MUX_ENVAC   (MUX_ENV|MUX_COMPLEMENT|MUX_ALPHAREPLICATE)
74
75 #define ONEARGS(op, arg1)   {CM_##op, MUX_##arg1}
76 #define TWOARGS(op, arg1,arg2)  {CM_##op, MUX_##arg1, MUX_##arg2}
77 #define TRIARGS(op, arg1,arg2,arg3) {CM_##op, MUX_##arg1, MUX_##arg2, MUX_##arg3}
78 #define SEL(arg1)       ONEARGS(REPLACE,arg1)
79 #define MOD(arg1,arg2)  TWOARGS(MODULATE,arg1,arg2)
80 #define ADD(arg1,arg2)  TWOARGS(ADD,arg1,arg2)
81 #define SUB(arg1,arg2)  TWOARGS(SUBTRACT,arg1,arg2)
82 #define ADDSMOOTH(arg1,arg2)    TWOARGS(ADDSMOOTH,arg1,arg2)
83 #define LERP(arg1,arg2,arg3)    TRIARGS(INTERPOLATE,arg1,arg2,arg3)
84 #define MULADD(arg1,arg2,arg3)  TRIARGS(MULTIPLYADD,arg1,arg2,arg3)
85 #define SKIP    SEL(CUR)
86
87 GeneralCombinerInfo twostages[]=
88 {
89 /*
90 Stage overflow
91 //Mux=0x00267e60350cf37f    Overflowed in THE LEGEND OF ZELDA
92 Color0: (TEXEL1 - PRIM) * ENV|A + TEXEL0
93 Color1: (PRIM - ENV) * COMBINED + ENV
94 Alpha0: (0 - 0) * 0 + TEXEL0
95 Alpha1: (COMBINED - 0) * PRIM + 0
96
97 //Simplied Mux=0x00267e60350cf37f   Overflowed in THE LEGEND OF ZELDA
98 Simplied DWORDs=03470604, 00060003, 07020706, 02000000
99 Color0: (TEXEL1 - SHADE) * ENV|A + TEXEL0
100 Color1: (SHADE - ENV) * COMBINED + ENV
101 Alpha0: (TEXEL0 - 0) * SHADE + 0
102 Alpha1: (0 - 0) * 0 + COMBINED
103 Simplfied type: CM_FMT_TYPE_NOT_CHECKED
104 Shade = PRIM in color channel
105 Shade = PRIM in alpha channel
106 */
107
108     {
109         {0x03470604, 0x00060003, 0x07020706, 0x02000000},   // Simplified mux
110             0, 0,       // 64bit Mux
111             2,  // number of stages
112             ENABLE_BOTH,
113             MUX_ENV,        // Constant color
114             0x00000005, 0x00000005, 0,  // Shade and specular color flags
115             {0x00000000, 0x00000000},   // constant color texture flags
116         {
117             {SUB(T1,DIF), SKIP,     1, true},   // Stage 0
118             {MULADD(CUR,ENVA,T0), MOD(T0,DIF),          0, true},   // Stage 1
119         }
120     },
121
122         /*
123         //Mux=0x002527ff1ffc9238    Overflowed in THE LEGEND OF ZELDA
124         Color0: (TEXEL1 - TEXEL0) * PRIM|A + TEXEL0
125         Color1: (0 - 0) * 0 + COMBINED
126         Alpha0: (TEXEL1 - TEXEL0) * PRIM + TEXEL0
127         Alpha1: (0 - 0) * 0 + COMBINED
128
129
130         //Simplied Mux=0x002527ff1ffc9238   Overflowed in THE LEGEND OF ZELDA
131         Simplied DWORDs=03460304, 03060304, 02000000, 02000000
132         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
133         Color1: (0 - 0) * 0 + COMBINED
134         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
135         Alpha1: (0 - 0) * 0 + COMBINED
136         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
137         Shade = PRIM in alpha channel
138
139         Generated combiners:
140
141         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
142         0:Color: Sel - TEXEL0, , 
143         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
144         0:Alpha: Sel - TEXEL0, , 
145         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
146
147         */
148
149
150     {
151         {0x03460304, 0x03060304, 0x02000000, 0x02000000},   // Simplified mux
152             0x002527FF, 0x1FFC9238,     // 64bit Mux
153             2,  // number of stages
154             ENABLE_BOTH,
155             MUX_PRIM,       // Constant color
156             0x00000000, 0, 0,   // Shade and specular color flags
157             {0x00000000, 0x00000000}, // constant color texture flags
158         {
159             {MOD(T1,PRIA), MOD(T1,PRI), 1, true},   // Stage 0
160             {ADD(T0,CUR), ADD(T0,CUR), 0, true},    // Stage 1
161         }
162     },
163
164     {
165         {0x03460304, 0x03060304, 0x02000000, 0x02000000},   // Simplified mux
166             0, 0,       // 64bit Mux
167             2,  // number of stages
168             ENABLE_BOTH,
169             0,      // Constant color
170             0x00000000, 0x00000005, 0,  // Shade and specular color flags
171             {0x00000000, 0x00000000}, // constant color texture flags
172         {
173             {MOD(T1,DIFA), MOD(T1,DIF), 1, true},   // Stage 0
174             {ADD(T0,CUR), ADD(T0,CUR), 0, true},    // Stage 1
175         }
176     },
177
178
179
180         /*
181         //Mux=0x00262a60150c937f    Overflowed in THE LEGEND OF ZELDA
182         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
183         Color1: (PRIM - ENV) * COMBINED + ENV
184         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
185         Alpha1: (COMBINED - 0) * PRIM + 0
186
187
188         //Simplied Mux=0x00262a60150c937f   Overflowed in THE LEGEND OF ZELDA
189         Simplied DWORDs=03460304, 03060304, 06020605, 00020005
190         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
191         Color1: (PRIM - SHADE) * COMBINED + SHADE
192         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
193         Alpha1: (PRIM - 0) * COMBINED + 0
194         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
195         Shade = ENV in color channel
196         Shade = ENV in alpha channel
197
198         Generated combiners:
199
200         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
201         0:Color: Sel - TEXEL0, , 
202         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
203         0:Alpha: Sel - TEXEL0, , 
204         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
205
206         */
207
208     {
209         {0x03460304, 0x03060304, 0x06020605, 0x00020005},   // Simplified mux
210             0x00262A60, 0x150C937F,     // 64bit Mux
211             2,  // number of stages
212             ENABLE_BOTH,
213             MUX_ENV,        // Constant color
214             0, 0, 0,    // Shade and specular color flags
215             {0x00000000, 0x00000000}, // constant color texture flags
216         {
217             {MOD(T1,ENVA), MOD(T1,ENV), 1, true},   // Stage 0
218             {ADD(T0,CUR), ADD(T0,CUR), 0, true},    // Stage 1
219         }
220     },
221
222     {
223         {0x03460304, 0x03060304, 0x06020605, 0x00020005},   // Simplified mux
224             0, 0,       // 64bit Mux
225             2,  // number of stages
226             ENABLE_BOTH,
227             0,      // Constant color
228             0x00000007, 0x00000007, 0,  // Shade and specular color flags
229             {0x00000000, 0x00000000}, // constant color texture flags
230         {
231             {MOD(T1,DIFA), MOD(T1,DIF), 1, true},   // Stage 0
232             {ADD(T0,CUR), ADD(T0,CUR), 0, true},    // Stage 1
233         }
234     },
235
236
237         /*
238         //Mux=0x00267e041ffcfdf8    Overflowed in THE LEGEND OF ZELDA
239         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
240         Color1: (COMBINED - 0) * SHADE + 0
241         Alpha0: (0 - 0) * 0 + 1
242         Alpha1: (0 - 0) * 0 + COMBINED
243
244
245         //Simplied Mux=0x00267e041ffcfdf8   Overflowed in THE LEGEND OF ZELDA
246         Simplied DWORDs=03460304, 01000000, 00020006, 02000000
247         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
248         Color1: (SHADE - 0) * COMBINED + 0
249         Alpha0: (0 - 0) * 0 + 1
250         Alpha1: (0 - 0) * 0 + COMBINED
251         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
252         Shade = ENV in alpha channel
253
254         Generated combiners:
255
256         Stages:2, Alpha:DISABLE_ALPHA, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
257         0:Color: Sel - TEXEL0, , 
258         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
259         0:Alpha: Sel - COMBINED, , 
260         1:Alpha: Sel - COMBINED, ,  -Tex1
261         */
262
263     {
264         {0x03460304, 0x01000000, 0x00020006, 0x02000000},   // Simplified mux
265             0x00267e04, 0x1ffcfdf8,     // 64bit Mux
266             2,  // number of stages
267             DISABLE_ALPHA,
268             MUX_ENV,        // Constant color
269             0x00000000, 0x00000000, 0,  // Shade and specular color flags
270             {0x00000000, 0x00000000}, // constant color texture flags
271         {
272             //{MOD(T1,DIFA), SKIP, 1, true},    // Stage 0
273             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
274             //{MULADD(T0,CUR,DIF), SKIP, 0, true},  // Stage 1
275             {LERP(T1,CUR,ENVA), SKIP, 1, true}, // Stage 1
276         }
277     },
278
279
280         /*
281         //Mux=0x00267e041f0cfdff    Overflowed in THE LEGEND OF ZELDA
282         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
283         Color1: (COMBINED - 0) * SHADE + 0
284         Alpha0: (0 - 0) * 0 + 1
285         Alpha1: (COMBINED - 0) * PRIM + 0
286
287
288         //Simplied Mux=0x00267e041f0cfdff   Overflowed in THE LEGEND OF ZELDA
289         Simplied DWORDs=03470304, 06000000, 00020006, 02000000
290         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
291         Color1: (SHADE - 0) * COMBINED + 0
292         Alpha0: (0 - 0) * 0 + SHADE
293         Alpha1: (0 - 0) * 0 + COMBINED
294         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
295         Shade = PRIM in alpha channel
296
297         Generated combiners:
298
299         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
300         0:Color: Sel - TEXEL0, , 
301         1:Color: BlFacA - TEXEL1, COMBINED,  -Tex1
302         0:Alpha: Sel - SHADE, , 
303         1:Alpha: Sel - COMBINED, ,  -Tex1
304
305
306
307         */
308
309     {
310         {0x03470304, 0x06000000, 0x00020006, 0x02000000},   // Simplified mux
311             0x00267E04, 0x1F0CFDFF,     // 64bit Mux
312             2,  // number of stages
313             ENABLE_BOTH,
314             MUX_ENV,        // Constant color
315             0x00000000, 0x00000005, 0,  // Shade and specular color flags
316             {0x00000000, 0x00000000}, // constant color texture flags
317         {
318             {MOD(T1,ENVA), SEL(DIFA), 1, true}, // Stage 0
319             {MULADD(T0,DIF,CUR), SKIP, 0, true},    // Stage 1
320         }
321     },
322
323
324
325         /*
326         //Mux=0x00117ffffffdfc38    Overflowed in MarioTennis
327         Color0: (TEXEL0 - 0) * TEXEL1 + PRIM
328         Color1: (0 - 0) * 0 + COMBINED
329         Alpha0: (0 - 0) * 0 + 1
330         Alpha1: (0 - 0) * 0 + COMBINED
331
332         //Simplied Mux=0x00117ffffffdfc38   Overflowed in MarioTennis
333         Simplied DWORDs=00030004, 01000000, 02010006, 02000000
334         Color0: (TEXEL1 - 0) * TEXEL0 + 0
335         Color1: (SHADE - 0) * 1 + COMBINED
336         Alpha0: (0 - 0) * 0 + 1
337         Alpha1: (0 - 0) * 0 + COMBINED
338         Simplfied type: CM_FMT_TYPE5_A_MOD_C_ADD_D
339         Shade = PRIM in color channel
340
341         Generated combiners:
342
343         Stages:2, Alpha:DISABLE_ALPHA, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
344         0:Color: Sel - TEXEL1, , 
345         1:Color: Mod - TEXEL0, COMBINED, 
346         0:Alpha: Sel - COMBINED, , 
347         1:Alpha: Sel - COMBINED, , 
348
349
350         */
351
352     {
353         {0x00030004, 0x01000000, 0x02010006, 0x02000000},   // Simplified mux
354             0x00117FFF, 0xFFFDFC38,     // 64bit Mux
355             2,  // number of stages
356             DISABLE_ALPHA,
357             0,      // Constant color
358             0x00000005, 0x00000000, 0,  // Shade and specular color flags
359             {0x00000000, 0x00000000}, // constant color texture flags
360         {
361             {SEL(T0), SKIP, 0, true},   // Stage 0
362             {MULADD(T1,CUR,DIF), SKIP, 1, true},    // Stage 1
363         }
364     },
365
366         /*
367         //Mux=0x00ffa1ffff0d923f    Overflowed in MarioTennis
368         Color0: (0 - 0) * 0 + PRIM
369         Color1: (0 - 0) * 0 + COMBINED
370         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
371         Alpha1: (COMBINED - 0) * PRIM + 0
372
373         //Simplied Mux=0x00ffa1ffff0d923f   Overflowed in MarioTennis
374         Simplied DWORDs=05000000, 03060304, 02000000, 00020005
375         Color0: (0 - 0) * 0 + PRIM
376         Color1: (0 - 0) * 0 + COMBINED
377         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
378         Alpha1: (PRIM - 0) * COMBINED + 0
379         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
380
381         Generated combiners:
382
383         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
384         0:Color: Sel - PRIM, , 
385         1:Color: Sel - COMBINED, ,  -Tex1
386         0:Alpha: Sel - TEXEL0, , 
387         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
388
389
390         */
391
392
393     {
394         {0x05000000, 0x03060304, 0x02000000, 0x00020005},   // Simplified mux
395             0, 0,       // 64bit Mux
396             2,  // number of stages
397             ENABLE_BOTH,
398             0,      // Constant color
399             0x00000000, 0x00000000, 0,  // Shade and specular color flags
400             {0x00000000, 0x00000000}, // constant color texture flags
401         {
402             {SEL(PRI), MOD(T0,PRIM), 0, true},  // Stage 0
403             {SKIP, TRIARGS(BLENDDIFFUSEALPHA,T1,CUR,DIFA), 1, true},    // Stage 1
404         }
405     },
406
407
408         /*
409         //Mux=0x00ffb9ffffebdbc0    Used in MarioTennis
410         Color0: (0 - 0) * 0 + 0
411         Color1: (0 - 0) * 0 + 0
412         Alpha0: (PRIM - ENV) * SHADE + ENV
413         Alpha1: (0 - COMBINED) * TEXEL1 + COMBINED
414
415         //Simplied Mux=0x00ffb9ffffebdbc0   Used in MarioTennis
416         Simplied DWORDs=00000000, 00060083, 02000000, 02000000
417         Color0: (0 - 0) * 0 + 0
418         Color1: (0 - 0) * 0 + COMBINED
419         Alpha0: (TEXEL0|C - 0) * SHADE + 0
420         Alpha1: (0 - 0) * 0 + COMBINED
421         Simplfied type: CM_FMT_TYPE2_A_ADD_D
422         Shade = 07060705 in alpha channel
423         Generated combiners:
424
425         */
426
427
428     {
429         {0x00000000, 0x00060083, 0x02000000, 0x02000000},   // Simplified mux
430             0, 0,       // 64bit Mux
431             2,  // number of stages
432             DISABLE_COLOR,
433             0,      // Constant color
434             0x00000000, 0x00000000, 0,  // Shade and specular color flags
435             {0x00000000, 0x00000000}, // constant color texture flags
436         {
437             {SKIP, MOD(T0,PRIM), 0, true},  // Stage 0
438             {SKIP, TRIARGS(BLENDDIFFUSEALPHA,T0,CUR,DIFA), 0, true},    // Stage 1
439         }
440     },
441
442         /*
443         //Mux=0x0030b2045ffefff8    Used in THE LEGEND OF ZELDA
444         Color0: (PRIM - ENV) * TEXEL0 + ENV
445         Color1: (COMBINED - 0) * SHADE + 0
446         Alpha0: (PRIM - 0) * TEXEL0 + 0
447         Alpha1: (0 - 0) * 0 + COMBINED
448
449         //Simplied Mux=0x0030b2045ffefff8   Used in THE LEGEND OF ZELDA
450         Simplied DWORDs=07030704, 04000000, 00020006, 00020003
451         Color0: (TEXEL1 - ENV) * TEXEL0 + ENV
452         Color1: (SHADE - 0) * COMBINED + 0
453         Alpha0: (0 - 0) * 0 + TEXEL1
454         Alpha1: (TEXEL0 - 0) * COMBINED + 0
455         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
456         Tex 1 = PRIM
457
458
459
460         Stages:2, Alpha:ENABLE_BOTH, Factor:MUX_ENV, Specular:MUX_0 Dif Color:0x0 Dif Alpha:0x0
461         0:Color: SELECTARG1 - TEXTURE, _, _
462         1:Color: LERP - TEXTURE, TFACTOR, CURRENT -Tex1
463         0:Alpha: SELECTARG1 - CURRENT, _, _
464         1:Alpha: SELECTARG1 - TEXTURE, _, _ -Tex1
465         */
466
467     {
468         {0x07030704, 0x04000000, 0x00020006, 0x00020003},   // Simplified mux
469             0, 0,       // 64bit Mux
470             2,  // number of stages
471             DISABLE_COLOR,
472             0,      // Constant color
473             0x00000000, 0x00000000, 0,  // Shade and specular color flags
474             {0x00000000, 0x00000005}, // constant color texture flags
475         {
476             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
477             {LERP(T1,ENV,CUR), MOD(T1,CUR), 1, true},   // Stage 1
478         }
479     },
480
481         /*
482         //Mux=0x0026a0041f1093ff    Overflowed in Perfect Dark
483         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
484         Color1: (COMBINED - 0) * SHADE + 0
485         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
486         Alpha1: (COMBINED - 0) * SHADE + 0
487
488         //Simplied Mux=0x0026a0041f1093ff   Overflowed in Perfect Dark
489         Simplied DWORDs=030E0304, 03060304, 00020006, 00020006
490         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
491         Color1: (SHADE - 0) * COMBINED + 0
492         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
493         Alpha1: (SHADE - 0) * COMBINED + 0
494         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
495
496         Generated combiners:
497
498         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
499         0:Color: Sel - TEXEL0, , 
500         1:Color: Lerp - TEXEL1, COMBINED, LODFRAC -Tex1
501         0:Alpha: Sel - TEXEL0, , 
502         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
503
504
505         */
506
507
508     {
509         {0x030E0304, 0x03060304, 0x00020006, 0x00020006},   // Simplified mux
510             0, 0,       // 64bit Mux
511             2,  // number of stages
512             ENABLE_BOTH,
513             0,      // Constant color
514             0x00000000, 0x00000000, 0,  // Shade and specular color flags
515             {0x00000000, 0x00000000}, // constant color texture flags
516         {
517             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
518             //{LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},    // Stage 1
519             {SKIP, SKIP, 0, false}, // Stage 1
520         }
521     },
522
523
524         /*
525         //Mux=0x0026a0041ffc93fc    Overflowed in Perfect Dark
526         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
527         Color1: (COMBINED - 0) * SHADE + 0
528         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
529         Alpha1: (0 - 0) * 0 + SHADE
530
531         //Simplied Mux=0x0026a0041ffc93fc   Overflowed in Perfect Dark
532         Simplied DWORDs=030E0304, 06000000, 00020006, 02000000
533         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
534         Color1: (SHADE - 0) * COMBINED + 0
535         Alpha0: (0 - 0) * 0 + SHADE
536         Alpha1: (0 - 0) * 0 + COMBINED
537         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
538
539         Generated combiners:
540
541         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
542         0:Color: Sel - TEXEL0, , 
543         1:Color: Lerp - TEXEL1, COMBINED, LODFRAC -Tex1
544         0:Alpha: Sel - SHADE, , 
545         1:Alpha: Sel - COMBINED, ,  -Tex1
546
547
548         */
549
550
551     {
552         {0x030E0304, 0x06000000, 0x00020006, 0x02000000},   // Simplified mux
553             0, 0,       // 64bit Mux
554             2,  // number of stages
555             ENABLE_BOTH,
556             0,      // Constant color
557             0x00000000, 0x00000000, 0,  // Shade and specular color flags
558             {0x00000000, 0x00000000}, // constant color texture flags
559         {
560             {MOD(T0,DIF), SEL(DIF), 0, true},   // Stage 0
561             //{LERP(T1,CUR,LODFRAC), SKIP, 1, true},    // Stage 1
562             {SKIP, SKIP, 0, false}, // Stage 1
563         }
564     },
565
566
567         /*
568         //Mux=0x002526041f1093ff    Overflowed in Perfect Dark
569         Color0: (TEXEL1 - TEXEL0) * PRIM|A + TEXEL0
570         Color1: (COMBINED - 0) * SHADE + 0
571         Alpha0: (TEXEL1 - TEXEL0) * PRIM + TEXEL0
572         Alpha1: (COMBINED - 0) * SHADE + 0
573
574         //Simplied Mux=0x002526041f1093ff   Overflowed in Perfect Dark
575         Simplied DWORDs=03450304, 03050304, 00020006, 00020006
576         Color0: (TEXEL1 - TEXEL0) * PRIM|A + TEXEL0
577         Color1: (SHADE - 0) * COMBINED + 0
578         Alpha0: (TEXEL1 - TEXEL0) * PRIM + TEXEL0
579         Alpha1: (SHADE - 0) * COMBINED + 0
580         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
581
582         Generated combiners:
583
584         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
585         0:Color: Sel - TEXEL0, , 
586         1:Color: BlFacA - TEXEL1, COMBINED,  -Tex1
587         0:Alpha: Sel - TEXEL0, , 
588         1:Alpha: BlFacA - TEXEL1, COMBINED,  -Tex1
589
590
591         */
592
593
594     {
595         {0x03450304, 0x03050304, 0x00020006, 0x00020006},   // Simplified mux
596             0, 0,       // 64bit Mux
597             2,  // number of stages
598             ENABLE_BOTH,
599             MUX_PRIM,       // Constant color
600             0x00000000, 0x00000000, 0,  // Shade and specular color flags
601             {0x00000000, 0x00000000}, // constant color texture flags
602         {
603             {MOD(T0,DIF), SEL(DIF), 0, true},   // Stage 0
604             {TRIARGS(BLENDDIFFUSEALPHA,T1,CUR,DIFA), SKIP, 1, true},    // Stage 1
605         }
606     },
607
608
609         /*
610         //Mux=0x0026a0041f1093fb    Overflowed in Perfect Dark
611         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
612         Color1: (COMBINED - 0) * SHADE + 0
613         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
614         Alpha1: (COMBINED - 0) * SHADE + PRIM
615
616         //Simplied Mux=0x0026a0041f1093fb   Overflowed in Perfect Dark
617         Simplied DWORDs=030E0304, 03060304, 00020006, 05020006
618         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
619         Color1: (SHADE - 0) * COMBINED + 0
620         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
621         Alpha1: (SHADE - 0) * COMBINED + PRIM
622         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
623
624         Generated combiners:
625
626         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
627         0:Color: Sel - TEXEL0, , 
628         1:Color: Lerp - TEXEL1, COMBINED, LODFRAC -Tex1
629         0:Alpha: Sel - TEXEL0, , 
630         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
631
632
633         */
634
635
636     {
637         {0x030E0304, 0x03060304, 0x00020006, 0x05020006},   // Simplified mux
638             0, 0,       // 64bit Mux
639             2,  // number of stages
640             ENABLE_BOTH,
641             MUX_PRIM,       // Constant color
642             0x00000000, 0x00000000, 0,  // Shade and specular color flags
643             {0x00000000, 0x00000000}, // constant color texture flags
644         {
645             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
646             {SKIP, ADD(CUR,PRI), 0, false}, // Stage 1
647         }
648     },
649
650
651
652         /*
653         //Mux=0x00272c041f1093ff    Overflowed in GOLDENEYE
654         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
655         Color1: (COMBINED - 0) * SHADE + 0
656         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
657         Alpha1: (COMBINED - 0) * SHADE + 0
658
659         //Simplied Mux=0x00272c041f1093ff   Overflowed in GOLDENEYE
660         Simplied DWORDs=030F0304, 00060004, 00020006, 02000000
661         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
662         Color1: (SHADE - 0) * COMBINED + 0
663         Alpha0: (TEXEL1 - 0) * SHADE + 0
664         Alpha1: (0 - 0) * 0 + COMBINED
665         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
666
667         Generated combiners:
668
669         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
670         0:Color: Sel - TEXEL0, , 
671         1:Color: Lerp - TEXEL1, COMBINED, PRIMLODFRAC -Tex1
672         0:Alpha: Sel - COMBINED, , 
673         1:Alpha: Mod - TEXEL1, SHADE,  -Tex1
674
675
676         */
677
678
679     {
680         {0x030F0304, 0x00060004, 0x00020006, 0x02000000},   // Simplified mux
681             0, 0,       // 64bit Mux
682             2,  // number of stages
683             ENABLE_BOTH,
684             MUX_PRIMLODFRAC,        // Constant color
685             0x00000000, 0x00000000, 0,  // Shade and specular color flags
686             {0x00000000, 0x00000000}, // constant color texture flags
687         {
688             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
689             {SKIP, MOD(T1,DIF), 1, true},   // Stage 1
690         }
691     },
692
693
694         /*
695         //Mux=0x0026a0041f1493ff    Overflowed in GOLDENEYE
696         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
697         Color1: (COMBINED - 0) * SHADE + 0
698         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
699         Alpha1: (COMBINED - 0) * ENV + 0
700
701         //Simplied Mux=0x0026a0041f1493ff   Overflowed in GOLDENEYE
702         Simplied DWORDs=00060003, 03060304, 02000000, 00020007
703         Color0: (TEXEL0 - 0) * SHADE + 0
704         Color1: (0 - 0) * 0 + COMBINED
705         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
706         Alpha1: (ENV - 0) * COMBINED + 0
707         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
708
709         Generated combiners:
710
711         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
712         0:Color: Mod - TEXEL0, SHADE, 
713         1:Color: Sel - COMBINED, ,  -Tex1
714         0:Alpha: Sel - TEXEL0, , 
715         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
716
717
718         */
719
720
721     {
722         {0x00060003, 0x03060304, 0x02000000, 0x00020007},   // Simplified mux
723             0x0026A004, 0x1F1493FF,     // 64bit Mux
724             2,  // number of stages
725             ENABLE_BOTH,
726             MUX_ENV,        // Constant color
727             0x00000000, 0x00000007, 0,  // Shade and specular color flags
728             {0x00000000, 0x00000000}, // constant color texture flags
729         {
730             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
731             {SKIP, SKIP, 1, true},  // Stage 1
732         }
733     },
734
735
736         /*
737         //Mux=0x0030fe045ffefdf8    Overflowed in Kirby64
738         Color0: (PRIM - ENV) * TEXEL0 + ENV
739         Color1: (COMBINED - 0) * SHADE + 0
740         Alpha0: (0 - 0) * 0 + 1
741         Alpha1: (0 - 0) * 0 + COMBINED
742
743         //Simplied Mux=0x0030fe045ffefdf8   Overflowed in Kirby64
744         Simplied DWORDs=07030704, 01000000, 00020006, 02000000
745         Color0: (TEXEL1 - ENV) * TEXEL0 + ENV
746         Color1: (SHADE - 0) * COMBINED + 0
747         Alpha0: (0 - 0) * 0 + 1
748         Alpha1: (0 - 0) * 0 + COMBINED
749         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
750         Tex 1 = PRIM
751
752         Generated combiners:
753
754         Stages:2, Alpha:DISABLE_ALPHA, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
755         0:Color: Sel - TEXEL0, , 
756         1:Color: Lerp - TEXEL1, ENV, COMBINED -Tex1
757         0:Alpha: Sel - COMBINED, , 
758         1:Alpha: Sel - COMBINED, ,  -Tex1
759
760
761         */
762
763
764     {
765         {0x07030704, 0x01000000, 0x00020006, 0x02000000},   // Simplified mux
766             0, 0,       // 64bit Mux
767             2,  // number of stages
768             DISABLE_ALPHA,
769             MUX_ENV,        // Constant color
770             0x00000000, 0x00000000, 0,  // Shade and specular color flags
771             {0x00000000, 0x00000005}, // constant color texture flags
772         {
773             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
774             {LERP(T1,ENV,CUR), SKIP, 1, true},  // Stage 1
775         }
776     },
777
778         /*
779         //Mux=0x00309e045ffefdf8    Overflowed in Kirby64
780         Color0: (PRIM - ENV) * TEXEL0 + ENV
781         Color1: (COMBINED - 0) * SHADE + 0
782         Alpha0: (TEXEL0 - 0) * 0 + 1
783         Alpha1: (0 - 0) * 0 + COMBINED
784
785         //Simplied Mux=0x00309e045ffefdf8   Overflowed in Kirby64
786         Simplied DWORDs=07030704, 01000000, 00020006, 02000000
787         Color0: (TEXEL1 - ENV) * TEXEL0 + ENV
788         Color1: (SHADE - 0) * COMBINED + 0
789         Alpha0: (0 - 0) * 0 + 1
790         Alpha1: (0 - 0) * 0 + COMBINED
791         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
792         Tex 1 = PRIM
793
794         Generated combiners:
795
796         Stages:2, Alpha:DISABLE_ALPHA, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
797         0:Color: Sel - TEXEL0, , 
798         1:Color: Lerp - TEXEL1, ENV, COMBINED -Tex1
799         0:Alpha: Sel - COMBINED, , 
800         1:Alpha: Sel - COMBINED, ,  -Tex1
801
802
803         */
804
805
806     {
807         {0x07030704, 0x01000000, 0x00020006, 0x02000000},   // Simplified mux
808             0, 0,       // 64bit Mux
809             2,  // number of stages
810             ENABLE_BOTH,
811             MUX_ENV,        // Constant color
812             0x00000000, 0x00000000, 0,  // Shade and specular color flags
813             {0x00000000, 0x00000005}, // constant color texture flags
814         {
815             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
816             {LERP(T1,ENV,CUR), SKIP, 1, true},  // Stage 1
817         }
818     },
819
820
821         /*
822         //Mux=0x0026a0041ffc93f8    Overflowed in ZELDA MAJORA'S MASK
823         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
824         Color1: (COMBINED - 0) * SHADE + 0
825         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
826         Alpha1: (0 - 0) * 0 + COMBINED
827
828         //Simplied Mux=0x0026a0041ffc93f8   Overflowed in ZELDA MAJORA'S MASK
829         Simplied DWORDs=030E0304, 03060304, 00020006, 02000000
830         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
831         Color1: (SHADE - 0) * COMBINED + 0
832         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
833         Alpha1: (0 - 0) * 0 + COMBINED
834         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
835
836         Generated combiners:
837
838         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
839         0:Color: Sel - TEXEL0, , 
840         1:Color: Lerp - TEXEL1, COMBINED, LODFRAC -Tex1
841         0:Alpha: Sel - TEXEL0, , 
842         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
843
844
845         */
846
847
848     {
849         {0x030E0304, 0x03060304, 0x00020006, 0x02000000},   // Simplified mux
850             0, 0,       // 64bit Mux
851             2,  // number of stages
852             ENABLE_BOTH,
853             MUX_LODFRAC,        // Constant color
854             0x00000000, 0x00000000, 0,  // Shade and specular color flags
855             {0x00000000, 0x00000000}, // constant color texture flags
856         {
857             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
858             {SKIP, LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
859         }
860     },
861
862
863         /*
864         //Mux=0x00209c03ff0f93ff    Overflowed in ZELDA MAJORA'S MASK
865         Color0: (TEXEL1 - 0) * TEXEL0 + 0
866         Color1: (COMBINED - 0) * PRIM + 0
867         Alpha0: (TEXEL0 - TEXEL0) * 1 + TEXEL0
868         Alpha1: (COMBINED - 0) * PRIM + 0
869
870         //Simplied Mux=0x00209c03ff0f93ff   Overflowed in ZELDA MAJORA'S MASK
871         Simplied DWORDs=00050004, 00050003, 00020003, 02000000
872         Color0: (TEXEL1 - 0) * PRIM + 0
873         Color1: (TEXEL0 - 0) * COMBINED + 0
874         Alpha0: (TEXEL0 - 0) * PRIM + 0
875         Alpha1: (0 - 0) * 0 + COMBINED
876         Simplfied type: CM_FMT_TYPE2_A_ADD_D
877
878         Generated combiners:
879
880         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
881         0:Color: Mod - TEXEL1, PRIM,  -Tex1
882         1:Color: Mod - TEXEL0, COMBINED, 
883         0:Alpha: Sel - COMBINED, ,  -Tex1
884         1:Alpha: Mod - TEXEL0, PRIM, 
885
886
887         */
888
889
890     {
891         {0x00050004, 0x00050003, 0x00020003, 0x02000000},   // Simplified mux
892             0, 0,       // 64bit Mux
893             2,  // number of stages
894             ENABLE_BOTH,
895             MUX_PRIM,       // Constant color
896             0x00000000, 0x00000000, 0,  // Shade and specular color flags
897             {0x00000000, 0x00000000}, // constant color texture flags
898         {
899             {MOD(T0,PRI), MOD(T0,PRI), 0, true},    // Stage 0
900             {MOD(T1,CUR), SKIP, 1, true},   // Stage 1
901         }
902     },
903
904
905         /*
906         //Mux=0x001229ffff17fe3f    Overflowed in Rayman 2
907         Color0: (TEXEL0 - 0) * SHADE + 0
908         Color1: (0 - 0) * 0 + COMBINED
909         Alpha0: (TEXEL1 - 0) * SHADE + 0
910         Alpha1: (COMBINED - 0) * ENV + 0
911
912         //Simplied Mux=0x001229ffff17fe3f   Overflowed in Rayman 2
913         Simplied DWORDs=00060003, 00060004, 02000000, 00020007
914         Color0: (TEXEL0 - 0) * SHADE + 0
915         Color1: (0 - 0) * 0 + COMBINED
916         Alpha0: (TEXEL1 - 0) * SHADE + 0
917         Alpha1: (ENV - 0) * COMBINED + 0
918         Simplfied type: CM_FMT_TYPE2_A_ADD_D
919
920         Generated combiners:
921
922         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
923         0:Color: Mod - TEXEL0, SHADE, 
924         1:Color: Sel - COMBINED, ,  -Tex1
925         0:Alpha: Sel - COMBINED, , 
926         1:Alpha: Mod - TEXEL1, SHADE,  -Tex1
927
928
929         */
930
931
932     {
933         {0x00060003, 0x00060004, 0x02000000, 0x00020007},   // Simplified mux
934             0, 0,       // 64bit Mux
935             2,  // number of stages
936             ENABLE_BOTH,
937             MUX_ENV,        // Constant color
938             0x00000000, 0x00000000, 0,  // Shade and specular color flags
939             {0x00000000, 0x00000000}, // constant color texture flags
940         {
941             {MOD(T0,DIF), MOD(DIF,ENV), 0, true},   // Stage 0
942             {SKIP, MOD(T1,CUR), 1, true},   // Stage 1
943         }
944     },
945
946
947         /*
948         //Mux=0x0030fe0254feff3e    Overflowed in Beetle Adventure Rac
949         Color0: (PRIM - ENV) * TEXEL0 + ENV
950         Color1: (COMBINED - SHADE) * TEXEL1 + SHADE
951         Alpha0: (0 - 0) * 0 + 0
952         Alpha1: (0 - 0) * 0 + 1
953
954         //Simplied Mux=0x0030fe0254feff3e   Overflowed in Beetle Adventure Rac
955         Simplied DWORDs=07030704, 01000000, 06030602, 02000000
956         Color0: (TEXEL1 - ENV) * TEXEL0 + ENV
957         Color1: (COMBINED - SHADE) * TEXEL0 + SHADE
958         Alpha0: (0 - 0) * 0 + 1
959         Alpha1: (0 - 0) * 0 + COMBINED
960         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
961         Tex 1 = PRIM
962
963         Generated combiners:
964
965         Stages:2, Alpha:DISABLE_ALPHA, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
966         0:Color: Sel - TEXEL0, , 
967         1:Color: Lerp - TEXEL1, ENV, COMBINED -Tex1
968         0:Alpha: Sel - COMBINED, , 
969         1:Alpha: Sel - COMBINED, ,  -Tex1
970
971
972         */
973
974
975     {
976         {0x07030704, 0x01000000, 0x06030602, 0x02000000},   // Simplified mux
977             0x0030FE02, 0x54FEFF3E,     // 64bit Mux
978             2,  // number of stages
979             DISABLE_ALPHA,
980             MUX_ENV,        // Constant color
981             0x00000000, 0x00000000, 0,  // Shade and specular color flags
982             {0x00000000, 0x00000000}, // constant color texture flags
983         {
984             {LERP(DIFA,ENV,T0), SKIP, 0, true}, // Stage 0
985             {LERP(CUR,DIF,T1), SKIP, 1, true},  // Stage 1
986         }
987     },
988
989         /*
990         //Mux=0x0015fe042ffd79fc    Overflowed in Beetle Adventure Rac
991         Color0: (TEXEL0 - TEXEL1) * SHADE|A + TEXEL1
992         Color1: (COMBINED - 0) * SHADE + 0
993         Alpha0: (0 - 0) * 0 + SHADE
994         Alpha1: (0 - 0) * 0 + SHADE
995
996         //Simplied Mux=0x0015fe042ffd79fc   Overflowed in Beetle Adventure Rac
997         Simplied DWORDs=04460403, 06000000, 00020006, 02000000
998         Color0: (TEXEL0 - TEXEL1) * SHADE|A + TEXEL1
999         Color1: (SHADE - 0) * COMBINED + 0
1000         Alpha0: (0 - 0) * 0 + SHADE
1001         Alpha1: (0 - 0) * 0 + COMBINED
1002         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1003
1004         Generated combiners:
1005
1006         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1007         0:Color: Sel - TEXEL0, , 
1008         1:Color: BlDifA - COMBINED, TEXEL1,  -Tex1
1009         0:Alpha: Sel - SHADE, , 
1010         1:Alpha: Sel - COMBINED, ,  -Tex1
1011
1012
1013         */
1014
1015
1016     {
1017         {0x04460403, 0x06000000, 0x00020006, 0x02000000},   // Simplified mux
1018             0x0015FE04, 0x2FFD79FC,     // 64bit Mux
1019             2,  // number of stages
1020             ENABLE_BOTH,
1021             0,      // Constant color
1022             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1023             {0x00000000, 0x00000000}, // constant color texture flags
1024         {
1025             {MOD(T0,DIFA), SEL(DIF), 0, true},  // Stage 0
1026             {LERP(CUR,T1,DIF), SKIP, 1, true},  // Stage 1
1027         }
1028     },
1029
1030         /*
1031         //Mux=0x0020fe0a14fcf938    Overflowed in Beetle Adventure Rac
1032         Color0: (TEXEL1 - TEXEL0) * TEXEL0 + TEXEL0
1033         Color1: (COMBINED - SHADE) * PRIM|A + SHADE
1034         Alpha0: (0 - 0) * 0 + SHADE
1035         Alpha1: (0 - 0) * 0 + COMBINED
1036
1037         //Simplied Mux=0x0020fe0a14fcf938   Overflowed in Beetle Adventure Rac
1038         Simplied DWORDs=03030304, 06000000, 06450602, 02000000
1039         Color0: (TEXEL1 - TEXEL0) * TEXEL0 + TEXEL0
1040         Color1: (COMBINED - SHADE) * PRIM|A + SHADE
1041         Alpha0: (0 - 0) * 0 + SHADE
1042         Alpha1: (0 - 0) * 0 + COMBINED
1043         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1044
1045         Generated combiners:
1046
1047         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1048         0:Color: Sel - TEXEL0, , 
1049         1:Color: Lerp - TEXEL1, COMBINED, COMBINED -Tex1
1050         0:Alpha: Sel - SHADE, , 
1051         1:Alpha: Sel - COMBINED, ,  -Tex1
1052
1053
1054         */
1055
1056
1057     {
1058         {0x03030304, 0x06000000, 0x06450602, 0x02000000},   // Simplified mux
1059             0x0020FE0A, 0x14FCF938,     // 64bit Mux
1060             2,  // number of stages
1061             ENABLE_BOTH,
1062             MUX_PRIM,       // Constant color
1063             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1064             {0x00000000, 0x00000000}, // constant color texture flags
1065         {
1066             {SEL(T0), SEL(DIF), 0, true},   // Stage 0
1067             {LERP(CUR,DIF,PRIA), SKIP, 0, true},    // Stage 1
1068         }
1069     },
1070
1071         /*
1072         //Mux=0x0017fe042ffd73f8    Overflowed in Beetle Adventure Rac
1073         Color0: (TEXEL0 - TEXEL1) * UNK + TEXEL1
1074         Color1: (COMBINED - 0) * SHADE + 0
1075         Alpha0: (0 - 0) * 0 + TEXEL0
1076         Alpha1: (0 - 0) * 0 + COMBINED
1077
1078         //Simplied Mux=0x0017fe042ffd73f8   Overflowed in Beetle Adventure Rac
1079         Simplied DWORDs=04100403, 03000000, 00020006, 02000000
1080         Color0: (TEXEL0 - TEXEL1) * UNK + TEXEL1
1081         Color1: (SHADE - 0) * COMBINED + 0
1082         Alpha0: (0 - 0) * 0 + TEXEL0
1083         Alpha1: (0 - 0) * 0 + COMBINED
1084         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1085
1086         Generated combiners:
1087
1088         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1089         0:Color: Sel - TEXEL0, , 
1090         1:Color: Lerp - COMBINED, TEXEL1, UNK -Tex1
1091         0:Alpha: Sel - TEXEL0, , 
1092         1:Alpha: Sel - COMBINED, ,  -Tex1
1093
1094
1095         */
1096
1097
1098     {
1099         {0x04100403, 0x03000000, 0x00020006, 0x02000000},   // Simplified mux
1100             0x0017FE04, 0x2FFD73F8,     // 64bit Mux
1101             2,  // number of stages
1102             ENABLE_BOTH,
1103             0,      // Constant color
1104             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1105             {0x00000000, 0x00000000}, // constant color texture flags
1106         {
1107             {SEL(T0), SEL(T0), 0, true},    // Stage 0
1108             {LERP(CUR,T1,DIF), SKIP, 1, true},  // Stage 1
1109         }
1110     },
1111
1112         /*
1113         //Mux=0x001218245531feff    Overflowed in CONKER BFD
1114         Color0: (TEXEL0 - ENV) * SHADE + PRIM
1115         Color1: (TEXEL0 - ENV) * SHADE + PRIM
1116         Alpha0: (TEXEL0 - 0) * SHADE + 0
1117         Alpha1: (TEXEL0 - 0) * SHADE + 0
1118
1119         //Simplied Mux=0x001218245531feff   Overflowed in CONKER BFD
1120         Simplied DWORDs=00060703, 00060003, 02010004, 02000000
1121         Color0: (TEXEL0 - ENV) * SHADE + 0
1122         Color1: (TEXEL1 - 0) * 1 + COMBINED
1123         Alpha0: (TEXEL0 - 0) * SHADE + 0
1124         Alpha1: (0 - 0) * 0 + COMBINED
1125         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1126         Tex 1 = PRIM
1127
1128         Generated combiners:
1129
1130         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1131         0:Color: Sub - TEXEL0, ENV, 
1132         1:Color: Mod - COMBINED, SHADE, 
1133         0:Alpha: Mod - TEXEL0, SHADE, 
1134         1:Alpha: Sel - COMBINED, , 
1135
1136
1137         */
1138
1139
1140     {
1141         {0x00060703, 0x00060003, 0x02010004, 0x02000000},   // Simplified mux
1142             0, 0,       // 64bit Mux
1143             2,  // number of stages
1144             ENABLE_BOTH,
1145             MUX_ENV,        // Constant color
1146             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1147             {0x00000000, 0x00000005}, // constant color texture flags
1148         {
1149             {SUB(T0,ENV), MOD(T0,DIF), 0, true},    // Stage 0
1150             {MULADD(CUR,DIF,T1), SKIP, 1, true},    // Stage 1
1151         }
1152     },
1153
1154         /*
1155         //Mux=0x00127e2455fdf2f9    Overflowed in CONKER BFD
1156         Color0: (TEXEL0 - ENV) * SHADE + PRIM
1157         Color1: (TEXEL0 - ENV) * SHADE + PRIM
1158         Alpha0: (0 - 0) * 0 + TEXEL0
1159         Alpha1: (0 - 0) * 0 + TEXEL0
1160
1161         //Simplied Mux=0x00127e2455fdf2f9   Overflowed in CONKER BFD
1162         Simplied DWORDs=00060703, 03000000, 02010004, 02000000
1163         Color0: (TEXEL0 - ENV) * SHADE + 0
1164         Color1: (TEXEL1 - 0) * 1 + COMBINED
1165         Alpha0: (0 - 0) * 0 + TEXEL0
1166         Alpha1: (0 - 0) * 0 + COMBINED
1167         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1168         Tex 1 = PRIM
1169
1170         Generated combiners:
1171
1172         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1173         0:Color: Sub - TEXEL0, ENV, 
1174         1:Color: Mod - COMBINED, SHADE, 
1175         0:Alpha: Sel - TEXEL0, , 
1176         1:Alpha: Sel - COMBINED, , 
1177
1178
1179         */
1180
1181
1182     {
1183         {0x00060703, 0x03000000, 0x02010004, 0x02000000},   // Simplified mux
1184             0, 0,       // 64bit Mux
1185             2,  // number of stages
1186             ENABLE_BOTH,
1187             MUX_ENV,        // Constant color
1188             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1189             {0x00000000, 0x00000005}, // constant color texture flags
1190         {
1191             {SUB(T0,ENV), SEL(T0), 0, true},    // Stage 0
1192             {MULADD(CUR,DIF,T1), SKIP, 1, true},    // Stage 1
1193         }
1194     },
1195
1196
1197         /*
1198         //Mux=0x0026a004151092ff    Overflowed in CONKER BFD
1199         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1200         Color1: (COMBINED - ENV) * SHADE + PRIM
1201         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
1202         Alpha1: (COMBINED - 0) * SHADE + 0
1203
1204         //Simplied Mux=0x0026a004151092ff   Overflowed in CONKER BFD
1205         Simplied DWORDs=00060703, 03060304, 02010005, 00020006
1206         Color0: (TEXEL0 - ENV) * SHADE + 0
1207         Color1: (PRIM - 0) * 1 + COMBINED
1208         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1209         Alpha1: (SHADE - 0) * COMBINED + 0
1210         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1211
1212         Generated combiners:
1213
1214         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1215         0:Color: Sub - TEXEL0, ENV, 
1216         1:Color: Mod - COMBINED, SHADE,  -Tex1
1217         0:Alpha: Sel - TEXEL0, , 
1218         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1219
1220
1221         */
1222
1223
1224     {
1225         {0x00060703, 0x03060304, 0x02010005, 0x00020006},   // Simplified mux
1226             0, 0,       // 64bit Mux
1227             2,  // number of stages
1228             ENABLE_BOTH,
1229             MUX_PRIM,       // Constant color
1230             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1231             {0x00000000, 0x00000000}, // constant color texture flags
1232         {
1233             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
1234             //{LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},    // Stage 1
1235             {ADD(CUR,PRI), SKIP, 0, false}, // Stage 1
1236         }
1237     },
1238
1239         /*
1240         //Mux=0x0026a00415fc92f8    Overflowed in CONKER BFD
1241         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1242         Color1: (COMBINED - ENV) * SHADE + PRIM
1243         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
1244         Alpha1: (0 - 0) * 0 + COMBINED
1245
1246         //Simplied Mux=0x0026a00415fc92f8   Overflowed in CONKER BFD
1247         Simplied DWORDs=00060703, 03060304, 02010005, 02000000
1248         Color0: (TEXEL0 - ENV) * SHADE + 0
1249         Color1: (PRIM - 0) * 1 + COMBINED
1250         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1251         Alpha1: (0 - 0) * 0 + COMBINED
1252         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1253
1254         Generated combiners:
1255
1256         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1257         0:Color: Sub - TEXEL0, ENV, 
1258         1:Color: Mod - COMBINED, SHADE,  -Tex1
1259         0:Alpha: Sel - TEXEL0, , 
1260         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1261
1262
1263         */
1264
1265
1266     {
1267         {0x00060703, 0x03060304, 0x02010005, 0x02000000},   // Simplified mux
1268             0, 0,       // 64bit Mux
1269             2,  // number of stages
1270             ENABLE_BOTH,
1271             MUX_LODFRAC,        // Constant color
1272             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1273             {0x00000000, 0x00000000}, // constant color texture flags
1274         {
1275             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
1276             {SKIP, LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
1277         }
1278
1279     },
1280
1281
1282         /*
1283         //Mux=0x001219ff5f15fe3f    Overflowed in CONKER BFD
1284         Color0: (TEXEL0 - ENV) * SHADE + PRIM
1285         Color1: (0 - 0) * 0 + COMBINED
1286         Alpha0: (TEXEL0 - 0) * SHADE + 0
1287         Alpha1: (COMBINED - 0) * ENV + 0
1288
1289         //Simplied Mux=0x001219ff5f15fe3f   Overflowed in CONKER BFD
1290         Simplied DWORDs=00060703, 00060003, 02010004, 00020007
1291         Color0: (TEXEL0 - ENV) * SHADE + 0
1292         Color1: (TEXEL1 - 0) * 1 + COMBINED
1293         Alpha0: (TEXEL0 - 0) * SHADE + 0
1294         Alpha1: (ENV - 0) * COMBINED + 0
1295         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1296         Tex 1 = PRIM
1297
1298         Generated combiners:
1299
1300         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1301         0:Color: Sub - TEXEL0, ENV, 
1302         1:Color: Mod - COMBINED, SHADE, 
1303         0:Alpha: Mod - TEXEL0, SHADE, 
1304         1:Alpha: Mod - ENV, COMBINED, 
1305
1306
1307         */
1308
1309
1310     {
1311         {0x00060703, 0x00060003, 0x02010004, 0x00020007},   // Simplified mux
1312             0, 0,       // 64bit Mux
1313             2,  // number of stages
1314             ENABLE_BOTH,
1315             MUX_ENV,        // Constant color
1316             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1317             {0x00000000, 0x00000005}, // constant color texture flags
1318         {
1319             {SUB(T0,ENV), MOD(T0,DIF), 0, true},    // Stage 0
1320             {MULADD(CUR,DIF,T1), MOD(CUR,ENV), 1, true},    // Stage 1
1321         }
1322     },
1323
1324
1325         /*
1326         //Mux=0x00ff9880f514feff    Overflowed in CONKER BFD
1327         Color0: (0 - 0) * 0 + TEXEL0
1328         Color1: (SHADE - ENV) * COMBINED + PRIM
1329         Alpha0: (TEXEL0 - 0) * SHADE + 0
1330         Alpha1: (COMBINED - 0) * ENV + 0
1331
1332         //Simplied Mux=0x00ff9880f514feff   Overflowed in CONKER BFD
1333         Simplied DWORDs=00030706, 00060003, 02010004, 00020007
1334         Color0: (SHADE - ENV) * TEXEL0 + 0
1335         Color1: (TEXEL1 - 0) * 1 + COMBINED
1336         Alpha0: (TEXEL0 - 0) * SHADE + 0
1337         Alpha1: (ENV - 0) * COMBINED + 0
1338         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1339         Shade = 00000706 in color channel
1340         Tex 1 = PRIM
1341
1342         Generated combiners:
1343
1344         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1345         0:Color: Sub - SHADE, ENV, 
1346         1:Color: Mod - COMBINED, TEXEL0, 
1347         0:Alpha: Mod - TEXEL0, SHADE, 
1348         1:Alpha: Mod - ENV, COMBINED, 
1349
1350
1351         */
1352
1353
1354     {
1355         {0x00030706, 0x00060003, 0x02010004, 0x00020007},   // Simplified mux
1356             0, 0,       // 64bit Mux
1357             2,  // number of stages
1358             ENABLE_BOTH,
1359             MUX_ENV,        // Constant color
1360             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1361             {0x00000000, 0x00000005}, // constant color texture flags
1362         {
1363             {SUB(T0,ENV), MOD(T0,DIF), 0, true},    // Stage 0
1364             {MULADD(CUR,DIF,T1), MOD(CUR,ENV), 1, true},    // Stage 1
1365         }
1366     },
1367
1368
1369
1370
1371         /*
1372         //Mux=0x0026a080151492ff    Overflowed in CONKER BFD
1373         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1374         Color1: (SHADE - ENV) * COMBINED + PRIM
1375         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
1376         Alpha1: (COMBINED - 0) * ENV + 0
1377
1378         //Simplied Mux=0x0026a080151492ff   Overflowed in CONKER BFD
1379         Simplied DWORDs=030E0304, 03060304, 05020706, 00020007
1380         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1381         Color1: (SHADE - ENV) * COMBINED + PRIM
1382         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1383         Alpha1: (ENV - 0) * COMBINED + 0
1384         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1385
1386         Generated combiners:
1387
1388         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1389         0:Color: Sel - TEXEL0, , 
1390         1:Color: Lerp - TEXEL1, COMBINED, LODFRAC -Tex1
1391         0:Alpha: Sel - TEXEL0, , 
1392         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1393
1394
1395         */
1396
1397
1398     {
1399         {0x030E0304, 0x03060304, 0x05020706, 0x00020007},   // Simplified mux
1400             0x0026A080, 0x151492FF,     // 64bit Mux
1401             2,  // number of stages
1402             ENABLE_BOTH,
1403             MUX_PRIM,       // Constant color
1404             0x00000706, 0x00000007, 0,  // Shade and specular color flags
1405             {0x00000000, 0x00000000}, // constant color texture flags
1406         {
1407             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
1408             //{LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},    // Stage 1
1409             {ADD(CUR,PRI), SKIP, 0, false}, // Stage 1
1410         }
1411     },
1412
1413         /*
1414         //Mux=0x0026a004151092ff    Overflowed in CONKER BFD
1415         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1416         Color1: (COMBINED - ENV) * SHADE + PRIM
1417         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
1418         Alpha1: (COMBINED - 0) * SHADE + 0
1419
1420
1421         //Simplied Mux=0x0026a004151092ff   Overflowed in CONKER BFD
1422         Simplied DWORDs=030E0304, 03060304, 05060702, 00020006
1423         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1424         Color1: (COMBINED - ENV) * SHADE + PRIM
1425         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1426         Alpha1: (SHADE - 0) * COMBINED + 0
1427         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
1428         */
1429
1430
1431     {
1432         {0x030E0304, 0x03060304, 0x05060702, 0x00020006},   // Simplified mux
1433             0x0026A004, 0x151092FF,     // 64bit Mux
1434             2,  // number of stages
1435             ENABLE_BOTH,
1436             MUX_LODFRAC,        // Constant color
1437             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1438             {0x00000000, 0x00000000}, // constant color texture flags
1439         {
1440             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
1441             //{LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},    // Stage 1
1442             {SKIP, LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
1443         }
1444     },
1445
1446         /*
1447         //Mux=0x00ff9880f514feff    Overflowed in CONKER BFD
1448         Color0: (0 - 0) * 0 + TEXEL0
1449         Color1: (SHADE - ENV) * COMBINED + PRIM
1450         Alpha0: (TEXEL0 - 0) * SHADE + 0
1451         Alpha1: (COMBINED - 0) * ENV + 0
1452
1453         //Simplied Mux=0x00ff9880f514feff   Overflowed in CONKER BFD
1454         Simplied DWORDs=00030706, 00060003, 02010004, 00020007
1455         Color0: (SHADE - ENV) * TEXEL0 + 0
1456         Color1: (TEXEL1 - 0) * 1 + COMBINED
1457         Alpha0: (TEXEL0 - 0) * SHADE + 0
1458         Alpha1: (ENV - 0) * COMBINED + 0
1459         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1460         Shade = 00000706 in color channel
1461         Tex 1 = PRIM
1462
1463         Generated combiners:
1464
1465         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1466         0:Color: Sub - SHADE, ENV, 
1467         1:Color: Mod - COMBINED, TEXEL0, 
1468         0:Alpha: Mod - TEXEL0, SHADE, 
1469         1:Alpha: Mod - ENV, COMBINED, 
1470
1471
1472         */
1473
1474
1475     {
1476         {0x00030706, 0x00060003, 0x02010004, 0x00020007}, // Simplified mux
1477             0x00FF9880, 0xF514FEFF,     // 64bit Mux
1478             2,  // number of stages
1479             ENABLE_BOTH,
1480             MUX_PRIM,       // Constant color
1481             0x00000706, 0x00070006, 0,  // Shade and specular color flags
1482             {0x00000000, 0x00000000}, // constant color texture flags
1483         {
1484             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
1485             {ADD(CUR,PRI), SKIP, 0, false}, // Stage 1
1486         }
1487     },
1488
1489         /*
1490         //Mux=0x00262a041f0c93ff    Overflowed in JET FORCE GEMINI
1491         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
1492         Color1: (COMBINED - 0) * SHADE + 0
1493         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
1494         Alpha1: (COMBINED - 0) * PRIM + 0
1495
1496         //Simplied Mux=0x00262a041f0c93ff   Overflowed in JET FORCE GEMINI
1497         Simplied DWORDs=03460304, 03060304, 00020006, 00020005
1498         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
1499         Color1: (SHADE - 0) * COMBINED + 0
1500         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1501         Alpha1: (PRIM - 0) * COMBINED + 0
1502         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1503         Shade = ENV in alpha channel
1504
1505         Generated combiners:
1506
1507         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1508         0:Color: Sel - TEXEL0, , 
1509         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
1510         0:Alpha: Sel - TEXEL0, , 
1511         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1512
1513
1514         */
1515
1516
1517     {
1518         {0x03460304, 0x03060304, 0x00020006, 0x00020005},   // Simplified mux
1519             0, 0,       // 64bit Mux
1520             2,  // number of stages
1521             ENABLE_BOTH,
1522             MUX_ENV,        // Constant color
1523             0x00000000, 0x00000007, 0,  // Shade and specular color flags
1524             {0x00000000, 0x00000000}, // constant color texture flags
1525         {
1526             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
1527             {LERP(T1,CUR,ENVA), LERP(T1,CUR,ENV), 1, true}, // Stage 1
1528         }
1529     },
1530
1531         /*
1532         //Mux=0x00262a6014fc9338    Overflowed in JET FORCE GEMINI
1533         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
1534         Color1: (PRIM - SHADE) * COMBINED + SHADE
1535         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
1536         Alpha1: (0 - 0) * 0 + COMBINED
1537
1538         //Simplied Mux=0x00262a6014fc9338   Overflowed in JET FORCE GEMINI
1539         Simplied DWORDs=03460304, 03060304, 06020605, 02000000
1540         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
1541         Color1: (PRIM - SHADE) * COMBINED + SHADE
1542         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1543         Alpha1: (0 - 0) * 0 + COMBINED
1544         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1545         Shade = ENV in alpha channel
1546
1547         Generated combiners:
1548
1549         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1550         0:Color: Sel - TEXEL0, , 
1551         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
1552         0:Alpha: Sel - TEXEL0, , 
1553         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1554
1555
1556         */
1557
1558
1559     {
1560         {0x03460304, 0x03060304, 0x06020605, 0x02000000},   // Simplified mux
1561             0, 0,       // 64bit Mux
1562             2,  // number of stages
1563             ENABLE_BOTH,
1564             MUX_ENV,        // Constant color
1565             0x00000000, 0x00000007, 0,  // Shade and specular color flags
1566             {0x00000000, 0x00000000}, // constant color texture flags
1567         {
1568             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
1569             {LERP(T1,CUR,ENVA), LERP(T1,CUR,ENV), 1, true}, // Stage 1
1570         }
1571     },
1572
1573
1574         /*
1575         //Mux=0x00127e2455fdf8fc    Overflowed in KILLER INSTINCT GOLD
1576         Color0: (TEXEL0 - ENV) * SHADE + PRIM
1577         Color1: (TEXEL0 - ENV) * SHADE + PRIM
1578         Alpha0: (0 - 0) * 0 + SHADE
1579         Alpha1: (0 - 0) * 0 + SHADE
1580
1581         //Simplied Mux=0x00127e2455fdf8fc   Overflowed in KILLER INSTINCT GOLD
1582         Simplied DWORDs=00060703, 06000000, 02010004, 02000000
1583         Color0: (TEXEL0 - ENV) * SHADE + 0
1584         Color1: (TEXEL1 - 0) * 1 + COMBINED
1585         Alpha0: (0 - 0) * 0 + SHADE
1586         Alpha1: (0 - 0) * 0 + COMBINED
1587         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1588         Tex 1 = PRIM
1589
1590         Generated combiners:
1591
1592         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1593         0:Color: Sub - TEXEL0, ENV, 
1594         1:Color: Mod - COMBINED, SHADE, 
1595         0:Alpha: Sel - SHADE, , 
1596         1:Alpha: Sel - COMBINED, , 
1597
1598
1599         */
1600
1601
1602     {
1603         {0x00060703, 0x06000000, 0x02010004, 0x02000000},   // Simplified mux
1604             0, 0,       // 64bit Mux
1605             2,  // number of stages
1606             ENABLE_BOTH,
1607             MUX_ENV,        // Constant color
1608             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1609             {0x00000000, 0x00000005}, // constant color texture flags
1610         {
1611             {SUB(T0,ENV), SEL(DIF), 0, true},   // Stage 0
1612             {MULADD(CUR,DIF,T1), SKIP, 1, true},    // Stage 1
1613         }
1614     },
1615
1616
1617         /*
1618         //Mux=0x00fffe6af5fcf438    Overflowed in KILLER INSTINCT GOLD
1619         Color0: (0 - 0) * 0 + TEXEL0
1620         Color1: (PRIM - ENV) * PRIM|A + COMBINED
1621         Alpha0: (0 - 0) * 0 + TEXEL1
1622         Alpha1: (0 - 0) * 0 + COMBINED
1623
1624         //Simplied Mux=0x00fffe6af5fcf438   Overflowed in KILLER INSTINCT GOLD
1625         Simplied DWORDs=00460706, 04000000, 02010003, 02000000
1626         Color0: (SHADE - ENV) * SHADE|A + 0
1627         Color1: (TEXEL0 - 0) * 1 + COMBINED
1628         Alpha0: (0 - 0) * 0 + TEXEL1
1629         Alpha1: (0 - 0) * 0 + COMBINED
1630         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1631         Shade = PRIM in color channel
1632         Shade = PRIM in alpha channel
1633
1634         Generated combiners:
1635
1636         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1637         0:Color: Sub - SHADE, ENV,  -Tex1
1638         1:Color: Mod - COMBINED, SHADE|A, 
1639         0:Alpha: Sel - TEXEL1, ,  -Tex1
1640         1:Alpha: Sel - COMBINED, , 
1641
1642
1643         */
1644
1645
1646     {
1647         {0x00460706, 0x04000000, 0x02010003, 0x02000000},   // Simplified mux
1648             0, 0,       // 64bit Mux
1649             2,  // number of stages
1650             ENABLE_BOTH,
1651             MUX_ENV,        // Constant color
1652             0x00000005, 0x00000005, 0,  // Shade and specular color flags
1653             {0x00000000, 0x00000000}, // constant color texture flags
1654         {
1655             {SUB(DIF,ENV), SEL(T1), 1, true},   // Stage 0
1656             {MULADD(CUR,DIFA,T0), SKIP, 0, true},   // Stage 1
1657         }
1658     },
1659
1660
1661         /*
1662         //Mux=0x00262a041f5893f8    Overflowed in THE LEGEND OF ZELDA
1663         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
1664         Color1: (COMBINED - 0) * SHADE + 0
1665         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
1666         Alpha1: (TEXEL1 - 0) * 1 + COMBINED
1667
1668         //Simplied Mux=0x00262a041f5893f8   Overflowed in THE LEGEND OF ZELDA
1669         Simplied DWORDs=03460304, 03060304, 00020006, 02010004
1670         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
1671         Color1: (SHADE - 0) * COMBINED + 0
1672         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1673         Alpha1: (TEXEL1 - 0) * 1 + COMBINED
1674         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1675         Shade = ENV in alpha channel
1676
1677         Generated combiners:
1678
1679         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1680         0:Color: Sel - TEXEL0, , 
1681         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
1682         0:Alpha: Sel - TEXEL0, , 
1683         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1684
1685
1686         */
1687
1688
1689     {
1690         {0x03460304, 0x03060304, 0x00020006, 0x02010004},   // Simplified mux
1691             0x00262A04, 0x1F5893F8,     // 64bit Mux
1692             2,  // number of stages
1693             ENABLE_BOTH,
1694             MUX_ENV,        // Constant color
1695             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1696             {0x00000000, 0x00000000}, // constant color texture flags
1697         {
1698             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
1699             {LERP(T1,CUR,ENVA), LERP(T1,CUR,ENV), 1, true}, // Stage 1
1700         }
1701     },
1702
1703
1704         /*
1705         //Mux=0x00272c60350ce37f    Overflowed in THE LEGEND OF ZELDA
1706         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
1707         Color1: (PRIM - ENV) * COMBINED + ENV
1708         Alpha0: (TEXEL1 - 1) * 1 + TEXEL0
1709         Alpha1: (COMBINED - 0) * PRIM + 0
1710
1711         //Simplied Mux=0x00272c60350ce37f   Overflowed in THE LEGEND OF ZELDA
1712         Simplied DWORDs=030F0604, 00060003, 07020706, 02000000
1713         Color0: (TEXEL1 - SHADE) * PRIMLODFRAC + TEXEL0
1714         Color1: (SHADE - ENV) * COMBINED + ENV
1715         Alpha0: (TEXEL0 - 0) * SHADE + 0
1716         Alpha1: (0 - 0) * 0 + COMBINED
1717         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
1718         Shade = PRIM in color channel
1719         Shade = PRIM in alpha channel
1720
1721         Generated combiners:
1722
1723         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1724         0:Color: Mod - TEXEL1, PRIMLODFRAC,  -Tex1
1725         1:Color: Add - COMBINED, TEXEL0, 
1726         0:Alpha: Sel - COMBINED, ,  -Tex1
1727         1:Alpha: Mod - TEXEL0, SHADE, 
1728
1729
1730         */
1731
1732
1733     {
1734         {0x030F0604, 0x00060003, 0x07020706, 0x02000000},   // Simplified mux
1735             0x00272C60, 0x350CE37F,     // 64bit Mux
1736             2,  // number of stages
1737             ENABLE_BOTH,
1738             MUX_ENV,        // Constant color
1739             0x00000005, 0x00000005, 0,  // Shade and specular color flags
1740             {0x00000000, 0x00000000}, // constant color texture flags
1741         {
1742             {MOD(T1,DIF), MOD(T1,DIF), 1, true},    // Stage 0
1743             {MULADD(DIF,T0,CUR), MOD(T0,CUR), 0, true}, // Stage 1
1744         }
1745     },
1746
1747
1748
1749         /*
1750         //Mux=0x0026a0041f1093ff    Overflowed in Perfect Dark
1751         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1752         Color1: (COMBINED - 0) * SHADE + 0
1753         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
1754         Alpha1: (COMBINED - 0) * SHADE + 0
1755
1756         //Simplied Mux=0x0026a0041f1093ff   Overflowed in Perfect Dark
1757         Simplied DWORDs=00060003, 03060304, 02000000, 00020006
1758         Color0: (TEXEL0 - 0) * SHADE + 0
1759         Color1: (0 - 0) * 0 + COMBINED
1760         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1761         Alpha1: (SHADE - 0) * COMBINED + 0
1762         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1763
1764         Generated combiners:
1765
1766         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1767         0:Color: Mod - TEXEL0, SHADE, 
1768         1:Color: Sel - COMBINED, ,  -Tex1
1769         0:Alpha: Sel - TEXEL0, , 
1770         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1771
1772
1773         */
1774
1775
1776     {
1777         {0x00060003, 0x03060304, 0x02000000, 0x00020006}, // Simplified mux
1778             0x0026A004, 0x1F1093FF,     // 64bit Mux
1779             2,  // number of stages
1780             ENABLE_BOTH,
1781             MUX_LODFRAC,        // Constant color
1782             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1783             {0x00000000, 0x00000000}, // constant color texture flags
1784         {
1785             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
1786             {SKIP, SKIP, 1, true},  // Stage 1
1787         }
1788     },
1789
1790
1791         /*
1792         //Mux=0x0026a08015fc937b    Overflowed in ROCKETROBOTONWHEELS
1793         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1794         Color1: (SHADE - ENV) * COMBINED + ENV
1795         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
1796         Alpha1: (0 - 0) * 0 + PRIM
1797
1798         //Simplied Mux=0x0026a08015fc937b   Overflowed in ROCKETROBOTONWHEELS
1799         Simplied DWORDs=030E0304, 06000000, 07020706, 02000000
1800         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1801         Color1: (SHADE - ENV) * COMBINED + ENV
1802         Alpha0: (0 - 0) * 0 + SHADE
1803         Alpha1: (0 - 0) * 0 + COMBINED
1804         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1805         Shade = PRIM in alpha channel
1806
1807         Generated combiners:
1808
1809         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1810         0:Color: Sel - TEXEL0, , 
1811         1:Color: Lerp - TEXEL1, COMBINED, LODFRAC -Tex1
1812         0:Alpha: Sel - SHADE, , 
1813         1:Alpha: Sel - COMBINED, ,  -Tex1
1814
1815
1816         */
1817
1818
1819     {
1820         {0x030E0304, 0x06000000, 0x07020706, 0x02000000}, // Simplified mux
1821             0x0026A080, 0x15FC937B,     // 64bit Mux
1822             2,  // number of stages
1823             ENABLE_BOTH,
1824             MUX_LODFRAC,        // Constant color
1825             0x00000000, 0x00000005, 0,  // Shade and specular color flags
1826             {0x00000000, 0x00000000}, // constant color texture flags
1827         {
1828             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
1829             {LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
1830         }
1831     },
1832
1833
1834         /*
1835         //Mux=0x0026a0801ffc93fb    Overflowed in ROCKETROBOTONWHEELS
1836         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1837         Color1: (SHADE - 0) * COMBINED + 0
1838         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
1839         Alpha1: (0 - 0) * 0 + PRIM
1840
1841         //Simplied Mux=0x0026a0801ffc93fb   Overflowed in ROCKETROBOTONWHEELS
1842         Simplied DWORDs=030E0304, 06000000, 00020006, 02000000
1843         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1844         Color1: (SHADE - 0) * COMBINED + 0
1845         Alpha0: (0 - 0) * 0 + SHADE
1846         Alpha1: (0 - 0) * 0 + COMBINED
1847         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1848         Shade = PRIM in alpha channel
1849
1850         Generated combiners:
1851
1852         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1853         0:Color: Sel - TEXEL0, , 
1854         1:Color: Lerp - TEXEL1, COMBINED, LODFRAC -Tex1
1855         0:Alpha: Sel - SHADE, , 
1856         1:Alpha: Sel - COMBINED, ,  -Tex1
1857
1858
1859         */
1860
1861
1862     {
1863         {0x030E0304, 0x06000000, 0x00020006, 0x02000000}, // Simplified mux
1864             0x0026A080, 0x1FFC93FB,     // 64bit Mux
1865             2,  // number of stages
1866             ENABLE_BOTH,
1867             MUX_LODFRAC,        // Constant color
1868             0x00000000, 0x00000005, 0,  // Shade and specular color flags
1869             {0x00000000, 0x00000000}, // constant color texture flags
1870         {
1871             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
1872             {LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
1873         }
1874     },
1875
1876
1877         /*
1878         //Mux=0x0025a8801f1493ff    Overflowed in ROCKETROBOTONWHEELS
1879         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
1880         Color1: (SHADE - 0) * COMBINED + 0
1881         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1882         Alpha1: (COMBINED - 0) * ENV + 0
1883
1884         //Simplied Mux=0x0025a8801f1493ff   Overflowed in ROCKETROBOTONWHEELS
1885         Simplied DWORDs=03460304, 03060304, 00020006, 00020007
1886         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
1887         Color1: (SHADE - 0) * COMBINED + 0
1888         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1889         Alpha1: (ENV - 0) * COMBINED + 0
1890         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1891
1892         Generated combiners:
1893
1894         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1895         0:Color: Sel - TEXEL0, , 
1896         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
1897         0:Alpha: Sel - TEXEL0, , 
1898         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1899
1900
1901         */
1902
1903
1904     {
1905         {0x03460304, 0x03060304, 0x00020006, 0x00020007},   // Simplified mux
1906             0, 0,       // 64bit Mux
1907             2,  // number of stages
1908             ENABLE_BOTH,
1909             MUX_ENV,        // Constant color
1910             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1911             {0x00000000, 0x00000000}, // constant color texture flags
1912         {
1913             {MOD(T0,DIF), MOD(T0,ENV), 0, true},    // Stage 0
1914             {LERP(T1,CUR,DIFA), LERP(T1,CUR,DIF), 1, true}, // Stage 1
1915         }
1916     },
1917
1918
1919         /*
1920         //Mux=0x0026a0801510937f    Overflowed in ROCKETROBOTONWHEELS
1921         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1922         Color1: (SHADE - ENV) * COMBINED + ENV
1923         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
1924         Alpha1: (COMBINED - 0) * SHADE + 0
1925
1926         //Simplied Mux=0x0026a0801510937f   Overflowed in ROCKETROBOTONWHEELS
1927         Simplied DWORDs=030E0304, 03060304, 07020706, 00020006
1928         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
1929         Color1: (SHADE - ENV) * COMBINED + ENV
1930         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
1931         Alpha1: (SHADE - 0) * COMBINED + 0
1932         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1933
1934         Generated combiners:
1935
1936         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1937         0:Color: Sel - TEXEL0, , 
1938         1:Color: Lerp - TEXEL1, COMBINED, LODFRAC -Tex1
1939         0:Alpha: Sel - TEXEL0, , 
1940         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
1941
1942
1943         */
1944
1945
1946     {
1947         {0x030E0304, 0x03060304, 0x07020706, 0x00020006},   // Simplified mux
1948             0, 0,       // 64bit Mux
1949             2,  // number of stages
1950             ENABLE_BOTH,
1951             MUX_LODFRAC,        // Constant color
1952             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1953             {0x00000000, 0x00000000}, // constant color texture flags
1954         {
1955             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
1956             {LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
1957         }
1958     },
1959
1960
1961         /*
1962         //Mux=0x004099ff5f0efe3f    Overflowed in ROCKETROBOTONWHEELS
1963         Color0: (SHADE - ENV) * TEXEL0 + ENV
1964         Color1: (0 - 0) * 0 + COMBINED
1965         Alpha0: (TEXEL0 - 0) * SHADE + 0
1966         Alpha1: (COMBINED - 0) * PRIM + 0
1967
1968         //Simplied Mux=0x004099ff5f0efe3f   Overflowed in ROCKETROBOTONWHEELS
1969         Simplied DWORDs=07030706, 00060003, 02000000, 00020004
1970         Color0: (SHADE - ENV) * TEXEL0 + ENV
1971         Color1: (0 - 0) * 0 + COMBINED
1972         Alpha0: (TEXEL0 - 0) * SHADE + 0
1973         Alpha1: (TEXEL1 - 0) * COMBINED + 0
1974         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
1975         Shade = 00000706 in color channel
1976         Tex 1 = PRIM
1977
1978         Generated combiners:
1979
1980         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
1981         0:Color: Lerp - SHADE, ENV, TEXEL0
1982         1:Color: Sel - COMBINED, ,  -Tex1
1983         0:Alpha: Mod - TEXEL0, SHADE, 
1984         1:Alpha: Mod - TEXEL1, COMBINED,  -Tex1
1985
1986
1987         */
1988
1989
1990     {
1991         {0x07030706, 0x00060003, 0x02000000, 0x00020004}, // Simplified mux
1992             0x004099FF, 0x5F0EFE3F,     // 64bit Mux
1993             2,  // number of stages
1994             ENABLE_BOTH,
1995             MUX_ENV,        // Constant color
1996             0x00000000, 0x00000000, 0,  // Shade and specular color flags
1997             {0x00000000, 0x00000005}, // constant color texture flags
1998         {
1999             {LERP(DIF,ENV,T0), MOD(T0,DIF), 0, true},   // Stage 0
2000             {SKIP, MOD(T1,CUR), 1, true},   // Stage 1
2001         }
2002     },
2003
2004
2005         /*
2006         //Mux=0x0025a8a01414933f    Overflowed in ROCKETROBOTONWHEELS
2007         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
2008         Color1: (ENV - SHADE) * COMBINED + SHADE
2009         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
2010         Alpha1: (COMBINED - 0) * ENV + 0
2011
2012         //Simplied Mux=0x0025a8a01414933f   Overflowed in ROCKETROBOTONWHEELS
2013         Simplied DWORDs=03460304, 03060304, 06020607, 00020007
2014         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
2015         Color1: (ENV - SHADE) * COMBINED + SHADE
2016         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
2017         Alpha1: (ENV - 0) * COMBINED + 0
2018         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2019
2020         Generated combiners:
2021
2022         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2023         0:Color: Sel - TEXEL0, , 
2024         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
2025         0:Alpha: Sel - TEXEL0, , 
2026         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
2027
2028
2029         */
2030
2031
2032     {
2033         {0x03460304, 0x03060304, 0x06020607, 0x00020007},   // Simplified mux
2034             0x0025A8A0, 0x1414933F,     // 64bit Mux
2035             2,  // number of stages
2036             ENABLE_BOTH,
2037             MUX_ENV,        // Constant color
2038             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2039             {0x00000000, 0x00000005}, // constant color texture flags
2040         {
2041             {LERP(ENV,DIF,T0), MOD(T0,ENV), 0, true},   // Stage 0
2042             {LERP(T1,CUR,DIFA), LERP(T1,CUR,DIF), 1, true}, // Stage 1
2043         }
2044     },
2045
2046
2047         /*
2048         //Mux=0x001298043f15ffff    Overflowed in BANJO TOOIE
2049         Color0: (TEXEL0 - PRIM) * ENV + PRIM
2050         Color1: (COMBINED - 0) * SHADE + 0
2051         Alpha0: (TEXEL0 - 0) * SHADE + 0
2052         Alpha1: (COMBINED - 0) * ENV + 0
2053
2054         //Simplied Mux=0x001298043f15ffff   Overflowed in BANJO TOOIE
2055         Simplied DWORDs=04070403, 00060003, 00020006, 00020007
2056         Color0: (TEXEL0 - TEXEL1) * ENV + TEXEL1
2057         Color1: (SHADE - 0) * COMBINED + 0
2058         Alpha0: (TEXEL0 - 0) * SHADE + 0
2059         Alpha1: (ENV - 0) * COMBINED + 0
2060         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2061         Tex 1 = PRIM
2062
2063         Generated combiners:
2064
2065         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2066         0:Color: Sel - TEXEL0, , 
2067         1:Color: Lerp - COMBINED, TEXEL1, ENV
2068         0:Alpha: Mod - TEXEL0, SHADE, 
2069         1:Alpha: Mod - ENV, COMBINED, 
2070
2071
2072         */
2073
2074
2075     {
2076         {0x04070403, 0x00060003, 0x00020006, 0x00020007}, // Simplified mux
2077             0x00129804, 0x3F15FFFF,     // 64bit Mux
2078             2,  // number of stages
2079             ENABLE_BOTH,
2080             MUX_ENV,        // Constant color
2081             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2082             {0x00000000, 0x00000005}, // constant color texture flags
2083         {
2084             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
2085             {LERP(CUR,T1,ENV), MOD(CUR,ENV), 1, true},  // Stage 1
2086         }
2087     },
2088
2089
2090         /*
2091         //Mux=0x0062fe043f15f9ff    Overflowed in BANJO TOOIE
2092         Color0: (1 - PRIM) * ENV + PRIM
2093         Color1: (COMBINED - 0) * SHADE + 0
2094         Alpha0: (0 - 0) * 0 + SHADE
2095         Alpha1: (COMBINED - 0) * ENV + 0
2096
2097         //Simplied Mux=0x0062fe043f15f9ff   Overflowed in BANJO TOOIE
2098         Simplied DWORDs=03070301, 06000000, 00020006, 02000000
2099         Color0: (1 - TEXEL0) * ENV + TEXEL0
2100         Color1: (SHADE - 0) * COMBINED + 0
2101         Alpha0: (0 - 0) * 0 + SHADE
2102         Alpha1: (0 - 0) * 0 + COMBINED
2103         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2104         Shade = 00070006 in alpha channel
2105         Tex 0 = PRIM
2106
2107         Generated combiners:
2108
2109         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2110         0:Color: AddSmooth - TEXEL0, ENV, 
2111         1:Color: Mod - SHADE, COMBINED, 
2112         0:Alpha: Sel - SHADE, , 
2113         1:Alpha: Sel - COMBINED, , 
2114
2115
2116         */
2117
2118
2119     {
2120         {0x03070301, 0x06000000, 0x00020006, 0x02000000}, // Simplified mux
2121             0x0062FE04, 0x3F15F9FF,     // 64bit Mux
2122             2,  // number of stages
2123             ENABLE_BOTH,
2124             MUX_ENV,        // Constant color
2125             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2126             {0x00000005, 0x00000000}, // constant color texture flags
2127         {
2128             {MULADD(T0C,ENV,T0), SEL(DIF), 0, true},    // Stage 0
2129             {MOD(CUR,DIF), SKIP, 0, true},  // Stage 1
2130         }
2131     },
2132
2133
2134         /*
2135         //Mux=0x0025266015fc9378    Overflowed in ZELDA MAJORA'S MASK
2136         Color0: (TEXEL1 - TEXEL0) * PRIM|A + TEXEL0
2137         Color1: (PRIM - ENV) * COMBINED + ENV
2138         Alpha0: (TEXEL1 - TEXEL0) * PRIM + TEXEL0
2139         Alpha1: (0 - 0) * 0 + COMBINED
2140
2141         //Simplied Mux=0x0025266015fc9378   Overflowed in ZELDA MAJORA'S MASK
2142         Simplied DWORDs=03460304, 03060304, 06020605, 02000000
2143         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
2144         Color1: (PRIM - SHADE) * COMBINED + SHADE
2145         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
2146         Alpha1: (0 - 0) * 0 + COMBINED
2147         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2148         Shade = ENV in color channel
2149         Shade = PRIM in alpha channel
2150
2151         Generated combiners:
2152
2153         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2154         0:Color: Sel - TEXEL0, , 
2155         1:Color: BlDifA - TEXEL1, COMBINED,  -Tex1
2156         0:Alpha: Sel - TEXEL0, , 
2157         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
2158
2159
2160         */
2161
2162
2163     {
2164         {0x03460304, 0x03060304, 0x06020605, 0x02000000}, // Simplified mux
2165             0, 0,       // 64bit Mux
2166             2,  // number of stages
2167             ENABLE_BOTH,
2168             MUX_PRIM,       // Constant color
2169             0x00000007, 0x00000005, 0,  // Shade and specular color flags
2170             {0x00000000, 0x00000000}, // constant color texture flags
2171         {
2172             {LERP(PRI,DIF,T0), SEL(T0), 0, true},   // Stage 0
2173             {LERP(T1,CUR,DIFA), SKIP, 1, true}, // Stage 1
2174         }
2175     },
2176
2177
2178         /*
2179         //Mux=0x0061a5ff1f10d23f    Overflowed in PAPER MARIO
2180         Color0: (1 - TEXEL0) * PRIM + TEXEL0
2181         Color1: (0 - 0) * 0 + COMBINED
2182         Alpha0: (TEXEL1 - ENV) * TEXEL1 + TEXEL0
2183         Alpha1: (COMBINED - 0) * SHADE + 0
2184
2185         //Simplied Mux=0x0061a5ff1f10d23f   Overflowed in PAPER MARIO
2186         Simplied DWORDs=03060301, 03040704, 02000000, 00020006
2187         Color0: (1 - TEXEL0) * SHADE + TEXEL0
2188         Color1: (0 - 0) * 0 + COMBINED
2189         Alpha0: (TEXEL1 - ENV) * TEXEL1 + TEXEL0
2190         Alpha1: (SHADE - 0) * COMBINED + 0
2191         Simplfied type: CM_FMT_TYPE_NOT_CHECKED
2192         Shade = PRIM in color channel
2193
2194         Generated combiners:
2195
2196         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2197         0:Color: AddSmooth - TEXEL0, SHADE, 
2198         1:Color: Sel - COMBINED, ,  -Tex1
2199         0:Alpha: Sel - TEXEL0, , 
2200         1:Alpha: Mod - COMBINED, TEXEL1,  -Tex1
2201
2202
2203         */
2204
2205
2206     {
2207         {0x03060301, 0x03040704, 0x02000000, 0x00020006}, // Simplified mux
2208             0x0061A5FF, 0x1F10D23F,     // 64bit Mux
2209             2,  // number of stages
2210             ENABLE_BOTH,
2211             MUX_ENV,        // Constant color
2212             0x00000005, 0x00000000, 0,  // Shade and specular color flags
2213             {0x00000000, 0x00000000}, // constant color texture flags
2214         {
2215             {MULADD(T0C,DIF,T0), MOD(T0,DIF), 0, true}, // Stage 0
2216             {SKIP, LERP(T1,ENV,CUR), 1, true},  // Stage 1
2217         }
2218     },
2219
2220
2221         /*
2222         //Mux=0x00322bff5f0e923f    Overflowed in PAPER MARIO
2223         Color0: (PRIM - ENV) * SHADE + ENV
2224         Color1: (0 - 0) * 0 + COMBINED
2225         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
2226         Alpha1: (COMBINED - 0) * PRIM + 0
2227
2228         //Simplied Mux=0x00322bff5f0e923f   Overflowed in PAPER MARIO
2229         Simplied DWORDs=06000000, 03070304, 02000000, 00020006
2230         Color0: (0 - 0) * 0 + SHADE
2231         Color1: (0 - 0) * 0 + COMBINED
2232         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
2233         Alpha1: (SHADE - 0) * COMBINED + 0
2234         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2235         Shade = 07060705 in color channel
2236         Shade = PRIM in alpha channel
2237
2238         Generated combiners:
2239
2240         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2241         0:Color: Sel - SHADE, , 
2242         1:Color: Sel - COMBINED, ,  -Tex1
2243         0:Alpha: Sel - TEXEL0, , 
2244         1:Alpha: BlFacA - TEXEL1, COMBINED,  -Tex1
2245
2246
2247         */
2248
2249
2250     {
2251         {0x06000000, 0x03070304, 0x02000000, 0x00020006}, // Simplified mux
2252             0x00322BFF, 0x5F0E923F,     // 64bit Mux
2253             23, // number of stages
2254             ENABLE_BOTH,
2255             MUX_ENV,        // Constant color
2256             0x07060705, 0x00000005, 0,  // Shade and specular color flags
2257             {0x00000000, 0x00000000}, // constant color texture flags
2258         {
2259             {SEL(DIF), MOD(T0,DIF), 0, true},   // Stage 0
2260             {SKIP, LERP(T1,CUR,ENV), 1, true},  // Stage 1
2261         }
2262     },
2263
2264
2265         /*
2266         //Mux=0x0010e5e0230b157f    Overflowed in PAPER MARIO
2267         Color0: (TEXEL0 - TEXEL1) * TEXEL0 + 1
2268         Color1: (0 - PRIM) * COMBINED + ENV
2269         Alpha0: (1 - TEXEL0) * TEXEL1 + TEXEL1
2270         Alpha1: (COMBINED - 0) * TEXEL1 + 0
2271
2272         //Simplied Mux=0x0010e5e0230b157f   Overflowed in PAPER MARIO
2273         Simplied DWORDs=00010600, 04830004, 02010007, 00020004
2274         Color0: (0 - SHADE) * 1 + 0
2275         Color1: (ENV - 0) * 1 + COMBINED
2276         Alpha0: (TEXEL1 - 0) * TEXEL0|C + TEXEL1
2277         Alpha1: (TEXEL1 - 0) * COMBINED + 0
2278         Simplfied type: CM_FMT_TYPE7_A_SUB_B_ADD_D
2279         Shade = PRIM in color channel
2280
2281         Generated combiners:
2282
2283         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2284         0:Color: Sub - 0, SHADE, 
2285         1:Color: Add - ENV, COMBINED,  -Tex1
2286         0:Alpha: Sel - TEXEL0, , 
2287         1:Alpha: MulAdd - TEXEL1, COMBINED|C, TEXEL1 -Tex1
2288
2289
2290         */
2291
2292
2293     {
2294         {0x00010600, 0x04830004, 0x02010007, 0x00020004}, // Simplified mux
2295             0x0010E5E0, 0x230B157F,     // 64bit Mux
2296             2,  // number of stages
2297             ENABLE_BOTH,
2298             MUX_ENV,        // Constant color
2299             0x00000005, 0x00000000, 0,  // Shade and specular color flags
2300             {0x00000000, 0x00000000}, // constant color texture flags
2301         {
2302             {MULADD(T0,DIF,ENV), SEL(T0), 0, true}, // Stage 0
2303             {SKIP, MULADD(CURC,T1,T1), 1, true},    // Stage 1
2304         }
2305     },
2306
2307
2308         /*
2309         //Mux=0x00117e045ffef3f8    Overflowed in RIDGE RACER 64
2310         Color0: (TEXEL0 - ENV) * TEXEL1 + ENV
2311         Color1: (COMBINED - 0) * SHADE + 0
2312         Alpha0: (0 - 0) * 0 + TEXEL0
2313         Alpha1: (0 - 0) * 0 + COMBINED
2314
2315         //Simplied Mux=0x00117e045ffef3f8   Overflowed in RIDGE RACER 64
2316         Simplied DWORDs=07040703, 03000000, 00020006, 02000000
2317         Color0: (TEXEL0 - ENV) * TEXEL1 + ENV
2318         Color1: (SHADE - 0) * COMBINED + 0
2319         Alpha0: (0 - 0) * 0 + TEXEL0
2320         Alpha1: (0 - 0) * 0 + COMBINED
2321         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2322
2323         Generated combiners:
2324
2325         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2326         0:Color: Sel - TEXEL0, , 
2327         1:Color: Lerp - COMBINED, ENV, TEXEL1 -Tex1
2328         0:Alpha: Sel - TEXEL0, , 
2329         1:Alpha: Sel - COMBINED, ,  -Tex1
2330
2331
2332         */
2333
2334
2335     {
2336         {0x07040703, 0x03000000, 0x00020006, 0x02000000}, // Simplified mux
2337             0, 0,       // 64bit Mux
2338             2,  // number of stages
2339             ENABLE_BOTH,
2340             MUX_ENV,        // Constant color
2341             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2342             {0x00000000, 0x00000000}, // constant color texture flags
2343         {
2344             {MOD(T1,DIF), SKIP, 1, true},   // Stage 0
2345             {LERP(T0,ENV,CUR), SEL(T0), 0, true},   // Stage 1
2346         }
2347     },
2348
2349
2350         /*
2351         //Mux=0x0040b467f0fffe3e    Overflowed in RIDGE RACER 64
2352         Color0: (SHADE - 0) * TEXEL0 + 0
2353         Color1: (PRIM - COMBINED) * COMBINED|A + COMBINED
2354         Alpha0: (PRIM - 0) * TEXEL1 + 0
2355         Alpha1: (0 - 0) * 0 + 1
2356
2357         //Simplied Mux=0x0040b467f0fffe3e   Overflowed in RIDGE RACER 64
2358         Simplied DWORDs=00060003, 00050004, 02420205, 01000000
2359         Color0: (TEXEL0 - 0) * SHADE + 0
2360         Color1: (PRIM - COMBINED) * COMBINED|A + COMBINED
2361         Alpha0: (TEXEL1 - 0) * PRIM + 0
2362         Alpha1: (0 - 0) * 0 + 1
2363         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2364
2365         Generated combiners:
2366
2367         Stages:2, Alpha:DISABLE_ALPHA, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2368         0:Color: Mod - TEXEL0, SHADE, 
2369         1:Color: BlCurA - PRIM, COMBINED,  -Tex1
2370         0:Alpha: Sel - COMBINED, , 
2371         1:Alpha: Mod - TEXEL1, PRIM,  -Tex1
2372
2373
2374         */
2375
2376
2377     {
2378         {0x00060003, 0x00050004, 0x02420205, 0x01000000}, // Simplified mux
2379             0, 0,       // 64bit Mux
2380             2,  // number of stages
2381             ENABLE_BOTH,
2382             MUX_PRIM,       // Constant color
2383             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2384             {0x00000000, 0x00000000}, // constant color texture flags
2385         {
2386             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
2387             //{LERP(PRI,CUR,CURA), MOD(T1,PRI), 1, true},   // Stage 1
2388             {SKIP, MOD(T1,PRI), 1, true},   // Stage 1
2389         }
2390     },
2391
2392
2393         /*
2394         //Mux=0x0022aa041f0c93ff    Overflowed in RIDGE RACER 64
2395         Color0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
2396         Color1: (COMBINED - 0) * SHADE + 0
2397         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
2398         Alpha1: (COMBINED - 0) * PRIM + 0
2399
2400         //Simplied Mux=0x0022aa041f0c93ff   Overflowed in RIDGE RACER 64
2401         Simplied DWORDs=03070304, 03070304, 00020006, 00020006
2402         Color0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
2403         Color1: (SHADE - 0) * COMBINED + 0
2404         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
2405         Alpha1: (SHADE - 0) * COMBINED + 0
2406         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2407         Shade = PRIM in alpha channel
2408
2409         Generated combiners:
2410
2411         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2412         0:Color: Sel - TEXEL0, , 
2413         1:Color: Lerp - TEXEL1, COMBINED, ENV -Tex1
2414         0:Alpha: Sel - TEXEL0, , 
2415         1:Alpha: BlFacA - TEXEL1, COMBINED,  -Tex1
2416
2417
2418         */
2419
2420
2421     {
2422         {0x03070304, 0x03070304, 0x00020006, 0x00020006}, // Simplified mux
2423             0, 0,       // 64bit Mux
2424             2,  // number of stages
2425             ENABLE_BOTH,
2426             MUX_ENV,        // Constant color
2427             0x00000000, 0x00000005, 0,  // Shade and specular color flags
2428             {0x00000000, 0x00000000}, // constant color texture flags
2429         {
2430             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
2431             {LERP(T1,CUR,ENV), LERP(T1,CUR,ENV), 1, true},  // Stage 1
2432         }
2433     },
2434
2435
2436         /*
2437         //Mux=0x0030fe045ffef3f8    Overflowed in RIDGE RACER 64
2438         Color0: (PRIM - ENV) * TEXEL0 + ENV
2439         Color1: (COMBINED - 0) * SHADE + 0
2440         Alpha0: (0 - 0) * 0 + TEXEL0
2441         Alpha1: (0 - 0) * 0 + COMBINED
2442
2443         //Simplied Mux=0x0030fe045ffef3f8   Overflowed in RIDGE RACER 64
2444         Simplied DWORDs=07030704, 03000000, 00020006, 02000000
2445         Color0: (TEXEL1 - ENV) * TEXEL0 + ENV
2446         Color1: (SHADE - 0) * COMBINED + 0
2447         Alpha0: (0 - 0) * 0 + TEXEL0
2448         Alpha1: (0 - 0) * 0 + COMBINED
2449         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2450         Tex 1 = PRIM
2451
2452         Generated combiners:
2453
2454         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2455         0:Color: Sel - TEXEL0, , 
2456         1:Color: Lerp - TEXEL1, ENV, COMBINED -Tex1
2457         0:Alpha: Sel - TEXEL0, , 
2458         1:Alpha: Sel - COMBINED, ,  -Tex1
2459
2460
2461         */
2462
2463
2464     {
2465         {0x07030704, 0x03000000, 0x00020006, 0x02000000}, // Simplified mux
2466             0x0030FE04, 0x5FFEF3F8,     // 64bit Mux
2467             2,  // number of stages
2468             ENABLE_BOTH,
2469             MUX_ENV,        // Constant color
2470             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2471             {0x00000000, 0x00000005}, // constant color texture flags
2472         {
2473             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
2474             {LERP(T1,ENV,CUR), SKIP, 1, true},  // Stage 1
2475         }
2476     },
2477
2478
2479         /*
2480         //Mux=0x00272c041ffc93f8    Overflowed in RIDGE RACER 64
2481         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
2482         Color1: (COMBINED - 0) * SHADE + 0
2483         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
2484         Alpha1: (0 - 0) * 0 + COMBINED
2485
2486         //Simplied Mux=0x00272c041ffc93f8   Overflowed in RIDGE RACER 64
2487         Simplied DWORDs=030F0304, 04000000, 00020006, 02000000
2488         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
2489         Color1: (SHADE - 0) * COMBINED + 0
2490         Alpha0: (0 - 0) * 0 + TEXEL1
2491         Alpha1: (0 - 0) * 0 + COMBINED
2492         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2493
2494         Generated combiners:
2495
2496         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2497         0:Color: Sel - TEXEL0, , 
2498         1:Color: Lerp - TEXEL1, COMBINED, PRIMLODFRAC -Tex1
2499         0:Alpha: Sel - COMBINED, , 
2500         1:Alpha: Sel - TEXEL1, ,  -Tex1
2501
2502
2503         */
2504
2505
2506     {
2507         {0x030F0304, 0x04000000, 0x00020006, 0x02000000}, // Simplified mux
2508             0, 0,       // 64bit Mux
2509             2,  // number of stages
2510             ENABLE_BOTH,
2511             MUX_PRIMLODFRAC,        // Constant color
2512             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2513             {0x00000000, 0x00000000}, // constant color texture flags
2514         {
2515             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
2516             {LERP(T1,CUR,PRIMLODFRAC), SEL(T1), 1, true},   // Stage 1
2517         }
2518     },
2519
2520
2521         /*
2522         //Mux=0x00272c6015fc9378    Overflowed in RIDGE RACER 64
2523         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
2524         Color1: (PRIM - ENV) * COMBINED + ENV
2525         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
2526         Alpha1: (0 - 0) * 0 + COMBINED
2527
2528         //Simplied Mux=0x00272c6015fc9378   Overflowed in RIDGE RACER 64
2529         Simplied DWORDs=030F0304, 04000000, 06020605, 02000000
2530         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
2531         Color1: (PRIM - SHADE) * COMBINED + SHADE
2532         Alpha0: (0 - 0) * 0 + TEXEL1
2533         Alpha1: (0 - 0) * 0 + COMBINED
2534         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2535         Shade = ENV in color channel
2536
2537         Generated combiners:
2538
2539         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2540         0:Color: Sel - TEXEL0, , 
2541         1:Color: Lerp - TEXEL1, COMBINED, PRIMLODFRAC -Tex1
2542         0:Alpha: Sel - COMBINED, , 
2543         1:Alpha: Sel - TEXEL1, ,  -Tex1
2544
2545
2546         */
2547
2548
2549     {
2550         {0x030F0304, 0x04000000, 0x06020605, 0x02000000}, // Simplified mux
2551             0x00272C60, 0x15FC9378,     // 64bit Mux
2552             2,  // number of stages
2553             ENABLE_BOTH,
2554             MUX_PRIMLODFRAC,        // Constant color
2555             0x00000705, 0x00000000, 0,  // Shade and specular color flags
2556             {0x00000000, 0x00000000}, // constant color texture flags
2557         {
2558             {MOD(DIF,T0), SKIP, 0, true},   // Stage 0
2559             {LERP(T1,CUR,PRIMLODFRAC), SEL(T1), 1, true},   // Stage 1
2560         }
2561     },
2562
2563
2564         /*
2565         //Mux=0x001516032f1125ff    Overflowed in CASTLEVANIA2
2566         Color0: (TEXEL0 - TEXEL1) * PRIM|A + TEXEL1
2567         Color1: (COMBINED - 0) * PRIM + 0
2568         Alpha0: (TEXEL0 - TEXEL1) * PRIM + TEXEL1
2569         Alpha1: (COMBINED - 0) * SHADE + 0
2570
2571         //Simplied Mux=0x001516032f1125ff   Overflowed in CASTLEVANIA2
2572         Simplied DWORDs=04460403, 04060403, 00020006, 00020006
2573         Color0: (TEXEL0 - TEXEL1) * SHADE|A + TEXEL1
2574         Color1: (SHADE - 0) * COMBINED + 0
2575         Alpha0: (TEXEL0 - TEXEL1) * SHADE + TEXEL1
2576         Alpha1: (SHADE - 0) * COMBINED + 0
2577         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2578         Shade = PRIM in color channel
2579         Shade = PRIM in alpha channel
2580
2581         Generated combiners:
2582
2583         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2584         0:Color: Sel - TEXEL0, , 
2585         1:Color: BlDifA - COMBINED, TEXEL1,  -Tex1
2586         0:Alpha: Sel - TEXEL0, , 
2587         1:Alpha: BlDifA - COMBINED, TEXEL1,  -Tex1
2588
2589
2590         */
2591
2592
2593     {
2594         {0x04460403, 0x04060403, 0x00020006, 0x00020006}, // Simplified mux
2595             0x00151603, 0x2F1125FF,     // 64bit Mux
2596             2,  // number of stages
2597             ENABLE_BOTH,
2598             MUX_PRIM,       // Constant color
2599             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2600             {0x00000000, 0x00000000}, // constant color texture flags
2601         {
2602             {MOD(T0,PRI), MOD(T0,DIF), 0, true},    // Stage 0
2603             {LERP(T0,T1,PRIA), LERP(T0,T1,PRI), 1, true},   // Stage 1
2604         }
2605     },
2606
2607
2608         /*
2609         //Mux=0x001516602515257f    Overflowed in CASTLEVANIA2
2610         Color0: (TEXEL0 - TEXEL1) * PRIM|A + TEXEL1
2611         Color1: (PRIM - ENV) * COMBINED + ENV
2612         Alpha0: (TEXEL0 - TEXEL1) * PRIM + TEXEL1
2613         Alpha1: (COMBINED - 0) * ENV + 0
2614
2615         //Simplied Mux=0x001516602515257f   Overflowed in CASTLEVANIA2
2616         Simplied DWORDs=04450403, 04050403, 06020605, 00020006
2617         Color0: (TEXEL0 - TEXEL1) * PRIM|A + TEXEL1
2618         Color1: (PRIM - SHADE) * COMBINED + SHADE
2619         Alpha0: (TEXEL0 - TEXEL1) * PRIM + TEXEL1
2620         Alpha1: (SHADE - 0) * COMBINED + 0
2621         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2622         Shade = ENV in color channel
2623         Shade = ENV in alpha channel
2624
2625         Generated combiners:
2626
2627         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2628         0:Color: Sel - TEXEL0, , 
2629         1:Color: BlFacA - COMBINED, TEXEL1,  -Tex1
2630         0:Alpha: Sel - TEXEL0, , 
2631         1:Alpha: BlFacA - COMBINED, TEXEL1,  -Tex1
2632
2633
2634         */
2635
2636
2637     {
2638         {0x04450403, 0x04050403, 0x06020605, 0x00020006}, // Simplified mux
2639             0x00151660, 0x2515257F,     // 64bit Mux
2640             2,  // number of stages
2641             ENABLE_BOTH,
2642             MUX_PRIM,       // Constant color
2643             0x00000007, 0x00000007, 0,  // Shade and specular color flags
2644             {0x00000000, 0x00000000}, // constant color texture flags
2645         {
2646             {LERP(PRI,DIF,T0), MOD(T0,DIF), 0, true},   // Stage 0
2647             {LERP(T0,T1,PRIA), LERP(T0,T1,PRI), 1, true},   // Stage 1
2648         }
2649     },
2650
2651
2652         /*
2653         //Mux=0x001516032f1525ff    Overflowed in CASTLEVANIA2
2654         Color0: (TEXEL0 - TEXEL1) * PRIM|A + TEXEL1
2655         Color1: (COMBINED - 0) * PRIM + 0
2656         Alpha0: (TEXEL0 - TEXEL1) * PRIM + TEXEL1
2657         Alpha1: (COMBINED - 0) * ENV + 0
2658
2659         //Simplied Mux=0x001516032f1525ff   Overflowed in CASTLEVANIA2
2660         Simplied DWORDs=04460403, 04060403, 00020006, 00020007
2661         Color0: (TEXEL0 - TEXEL1) * SHADE|A + TEXEL1
2662         Color1: (SHADE - 0) * COMBINED + 0
2663         Alpha0: (TEXEL0 - TEXEL1) * SHADE + TEXEL1
2664         Alpha1: (ENV - 0) * COMBINED + 0
2665         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2666         Shade = PRIM in color channel
2667         Shade = PRIM in alpha channel
2668
2669         Generated combiners:
2670
2671         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2672         0:Color: Sel - TEXEL0, , 
2673         1:Color: BlDifA - COMBINED, TEXEL1,  -Tex1
2674         0:Alpha: Sel - TEXEL0, , 
2675         1:Alpha: BlDifA - COMBINED, TEXEL1,  -Tex1
2676
2677
2678         */
2679
2680
2681     {
2682         {0x04460403, 0x04060403, 0x00020006, 0x00020007}, // Simplified mux
2683             0x00151603, 0x2F1525FF,     // 64bit Mux
2684             2,  // number of stages
2685             ENABLE_BOTH,
2686             MUX_ENV,        // Constant color
2687             0x00000005, 0x00000005, 0,  // Shade and specular color flags
2688             {0x00000000, 0x00000000}, // constant color texture flags
2689         {
2690             {MOD(T0,DIF), MOD(T0,ENV), 0, true},    // Stage 0
2691             {LERP(T0,T1,DIFA), LERP(T0,T1,DIF), 1, true},   // Stage 1
2692         }
2693     },
2694
2695
2696
2697         /*
2698         //Mux=0x00ffd5fffffcf238    Overflowed in CASTLEVANIA
2699         Color0: (0 - 0) * 0 + TEXEL0
2700         Color1: (0 - 0) * 0 + COMBINED
2701         Alpha0: (ENV - 0) * TEXEL1 + TEXEL0
2702         Alpha1: (0 - 0) * 0 + COMBINED
2703
2704         //Simplied Mux=0x00ffd5fffffcf238   Overflowed in CASTLEVANIA
2705         Simplied DWORDs=03000000, 00060004, 02000000, 02010003
2706         Color0: (0 - 0) * 0 + TEXEL0
2707         Color1: (0 - 0) * 0 + COMBINED
2708         Alpha0: (TEXEL1 - 0) * SHADE + 0
2709         Alpha1: (TEXEL0 - 0) * 1 + COMBINED
2710         Simplfied type: CM_FMT_TYPE5_A_MOD_C_ADD_D
2711         Shade = ENV in alpha channel
2712
2713         Generated combiners:
2714
2715         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2716         0:Color: Sel - TEXEL0, , 
2717         1:Color: Sel - COMBINED, ,  -Tex1
2718         0:Alpha: Sel - COMBINED, , 
2719         1:Alpha: Mod - TEXEL1, SHADE,  -Tex1
2720
2721
2722         */
2723
2724
2725     {
2726         {0x03000000, 0x00060004, 0x02000000, 0x02010003}, // Simplified mux
2727             0x00FFD5FF, 0xFFFCF238,     // 64bit Mux
2728             2,  // number of stages
2729             ENABLE_BOTH,
2730             MUX_ENV,        // Constant color
2731             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2732             {0x00000000, 0x00000000}, // constant color texture flags
2733         {
2734             {SKIP, MOD(T0,DIF), 1, true},   // Stage 0
2735             {SEL(T0), ADD(T0,CUR), 0, true},    // Stage 1
2736         }
2737     },
2738
2739
2740         /*
2741         //Mux=0x0026a0041f0c93ff    Overflowed in NEWTETRIS
2742         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
2743         Color1: (COMBINED - 0) * SHADE + 0
2744         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
2745         Alpha1: (COMBINED - 0) * PRIM + 0
2746
2747         //Simplied Mux=0x0026a0041f0c93ff   Overflowed in NEWTETRIS
2748         Simplied DWORDs=00060003, 03060304, 02000000, 00020005
2749         Color0: (TEXEL0 - 0) * SHADE + 0
2750         Color1: (0 - 0) * 0 + COMBINED
2751         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
2752         Alpha1: (PRIM - 0) * COMBINED + 0
2753         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2754
2755         Generated combiners:
2756
2757         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2758         0:Color: Mod - TEXEL0, SHADE, 
2759         1:Color: Sel - COMBINED, ,  -Tex1
2760         0:Alpha: Sel - TEXEL0, , 
2761         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
2762
2763
2764         */
2765
2766
2767     {
2768         {0x00060003, 0x03060304, 0x02000000, 0x00020005}, // Simplified mux
2769             0x0026A004, 0x1F0C93FF,     // 64bit Mux
2770             2,  // number of stages
2771             ENABLE_BOTH,
2772             MUX_LODFRAC,        // Constant color
2773             0x00000000, 0x00000005, 0,  // Shade and specular color flags
2774             {0x00000000, 0x00000000}, // constant color texture flags
2775         {
2776             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
2777             {LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
2778         }
2779     },
2780
2781         /*
2782         //Mux=0x0017166045fe7f78    Overflowed in DOUBUTSUNOMORI
2783         Color0: (TEXEL0 - SHADE) * PRIMLODFRAC + SHADE
2784         Color1: (PRIM - ENV) * COMBINED + ENV
2785         Alpha0: (TEXEL0 - 0) * PRIM + 0
2786         Alpha1: (0 - 0) * 0 + COMBINED
2787
2788         //Simplied Mux=0x0017166045fe7f78   Overflowed in DOUBUTSUNOMORI
2789         Simplied DWORDs=060F0603, 04000000, 07020704, 00020003
2790         Color0: (TEXEL0 - SHADE) * PRIMLODFRAC + SHADE
2791         Color1: (TEXEL1 - ENV) * COMBINED + ENV
2792         Alpha0: (0 - 0) * 0 + TEXEL1
2793         Alpha1: (TEXEL0 - 0) * COMBINED + 0
2794         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2795         Tex 1 = PRIM
2796
2797         Generated combiners:
2798
2799         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2800         0:Color: Lerp - TEXEL0, SHADE, PRIMLODFRAC
2801         1:Color: Lerp - TEXEL1, ENV, COMBINED -Tex1
2802         0:Alpha: Sel - COMBINED, , 
2803         1:Alpha: Sel - TEXEL1, ,  -Tex1
2804
2805
2806         */
2807
2808
2809     {
2810         {0x060F0603, 0x04000000, 0x07020704, 0x00020003}, // Simplified mux
2811             0x00171660, 0x45FE7F78,     // 64bit Mux
2812             2,  // number of stages
2813             ENABLE_BOTH,
2814             MUX_PRIMLODFRAC,        // Constant color
2815             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2816             {0x00000000, 0x00000005}, // constant color texture flags
2817         {
2818             {MOD(T1,DIF), SEL(T1), 1, true},    // Stage 0
2819             {LERP(T0,CUR,PRIMLODFRAC), MOD(T0,CUR), 0, true},   // Stage 1
2820         }
2821     },
2822
2823
2824         /*
2825         //Mux=0x003095ff5f1af43f    Overflowed in DOUBUTSUNOMORI
2826         Color0: (PRIM - ENV) * TEXEL0 + ENV
2827         Color1: (0 - 0) * 0 + COMBINED
2828         Alpha0: (TEXEL0 - 0) * TEXEL1 + TEXEL1
2829         Alpha1: (COMBINED - 0) * 1 + 0
2830
2831         //Simplied Mux=0x003095ff5f1af43f   Overflowed in DOUBUTSUNOMORI
2832         Simplied DWORDs=06030605, 00030004, 02000000, 02010004
2833         Color0: (PRIM - SHADE) * TEXEL0 + SHADE
2834         Color1: (0 - 0) * 0 + COMBINED
2835         Alpha0: (TEXEL1 - 0) * TEXEL0 + 0
2836         Alpha1: (TEXEL1 - 0) * 1 + COMBINED
2837         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2838         Shade = ENV in color channel
2839
2840         Generated combiners:
2841
2842         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2843         0:Color: Lerp - PRIM, SHADE, TEXEL0 -Tex1
2844         1:Color: Sel - COMBINED, , 
2845         0:Alpha: Sel - TEXEL1, ,  -Tex1
2846         1:Alpha: Mod - TEXEL0, COMBINED, 
2847
2848
2849         */
2850
2851
2852     {
2853         {0x06030605, 0x00030004, 0x02000000, 0x02010004}, // Simplified mux
2854             0x003095FF, 0x5F1AF43F,     // 64bit Mux
2855             2,  // number of stages
2856             ENABLE_BOTH,
2857             MUX_PRIM,       // Constant color
2858             0x00000007, 0x00000000, 0,  // Shade and specular color flags
2859             {0x00000000, 0x00000000}, // constant color texture flags
2860         {
2861             {LERP(PRI,DIF,T0), SEL(T0), 0, true},   // Stage 0
2862             {SKIP, MULADD(CUR,T1,T1), 1, true}, // Stage 1
2863         }
2864     },
2865
2866
2867         /*
2868         //Mux=0x003717fffffefe38    Overflowed in DOUBUTSUNOMORI
2869         Color0: (PRIM - 0) * PRIMLODFRAC + ENV
2870         Color1: (0 - 0) * 0 + COMBINED
2871         Alpha0: (TEXEL0 - 0) * PRIM + 0
2872         Alpha1: (0 - 0) * 0 + COMBINED
2873
2874         //Simplied Mux=0x003717fffffefe38   Overflowed in DOUBUTSUNOMORI
2875         Simplied DWORDs=000F0006, 00060003, 02010004, 02000000
2876         Color0: (SHADE - 0) * PRIMLODFRAC + 0
2877         Color1: (TEXEL1 - 0) * 1 + COMBINED
2878         Alpha0: (TEXEL0 - 0) * SHADE + 0
2879         Alpha1: (0 - 0) * 0 + COMBINED
2880         Simplfied type: CM_FMT_TYPE5_A_MOD_C_ADD_D
2881         Shade = PRIM in color channel
2882         Shade = PRIM in alpha channel
2883         Tex 1 = ENV
2884
2885         Generated combiners:
2886
2887         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2888         0:Color: Mod - SHADE, PRIMLODFRAC, 
2889         1:Color: Add - TEXEL1, COMBINED,  -Tex1
2890         0:Alpha: Mod - TEXEL0, SHADE, 
2891         1:Alpha: Sel - COMBINED, ,  -Tex1
2892
2893
2894         */
2895
2896     {
2897         {0x000F0006, 0x00060003, 0x02010004, 0x02000000}, // Simplified mux
2898             0x003717FF, 0xFFFEFE38,     // 64bit Mux
2899             2,  // number of stages
2900             ENABLE_BOTH,
2901             MUX_PRIMLODFRAC,        // Constant color
2902             0x00000005, 0x00000005, 0,  // Shade and specular color flags
2903             {0x00000000, 0x00000007}, // constant color texture flags
2904         {
2905             {MOD(DIF,PRIMLODFRAC), MOD(T0,DIF), 0, true},   // Stage 0
2906             {ADD(T1,CUR), SKIP, 1, true},   // Stage 1
2907         }
2908     },
2909
2910
2911         /*
2912         //Mux=0x00272a8013fc92f8    Overflowed in THE LEGEND OF ZELDA
2913         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
2914         Color1: (SHADE - PRIM) * COMBINED + PRIM
2915         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
2916         Alpha1: (0 - 0) * 0 + COMBINED
2917
2918         //Simplied Mux=0x00272a8013fc92f8   Overflowed in THE LEGEND OF ZELDA
2919         Simplied DWORDs=030F0304, 03060304, 05020506, 02000000
2920         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
2921         Color1: (SHADE - PRIM) * COMBINED + PRIM
2922         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
2923         Alpha1: (0 - 0) * 0 + COMBINED
2924         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2925         Shade = ENV in alpha channel
2926
2927         Generated combiners:
2928
2929         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2930         0:Color: Sel - TEXEL0, , 
2931         1:Color: Lerp - TEXEL1, COMBINED, PRIMLODFRAC -Tex1
2932         0:Alpha: Sel - TEXEL0, , 
2933         1:Alpha: BlDifA - TEXEL1, COMBINED,  -Tex1
2934
2935
2936         */
2937
2938
2939     {
2940         {0x030F0304, 0x03060304, 0x05020506, 0x02000000}, // Simplified mux
2941             0x00272A80, 0x13FC92F8,     // 64bit Mux
2942             2,  // number of stages
2943             ENABLE_BOTH,
2944             MUX_PRIM,       // Constant color
2945             0x00000000, 0x00000007, 0,  // Shade and specular color flags
2946             {0x00000000, 0x00000000}, // constant color texture flags
2947         {
2948             {LERP(DIF,PRI,T0), SEL(T0), 0, true},   // Stage 0
2949             {SKIP, LERP(T1,CUR,DIF), 1, true},  // Stage 1
2950         }
2951     },
2952
2953         /*
2954         //Mux=0x00127e60f5fffd78    Overflowed in THE LEGEND OF ZELDA
2955         Color0: (TEXEL0 - 0) * SHADE + 0
2956         Color1: (PRIM - ENV) * COMBINED + ENV
2957         Alpha0: (0 - 0) * 0 + 1
2958         Alpha1: (0 - 0) * 0 + COMBINED
2959
2960         //Simplied Mux=0x00127e60f5fffd78   Overflowed in THE LEGEND OF ZELDA
2961         Simplied DWORDs=00060003, 01000000, 07020704, 02000000
2962         Color0: (TEXEL0 - 0) * SHADE + 0
2963         Color1: (TEXEL1 - ENV) * COMBINED + ENV
2964         Alpha0: (0 - 0) * 0 + 1
2965         Alpha1: (0 - 0) * 0 + COMBINED
2966         Simplfied type: CM_FMT_TYPE6_A_LERP_B_C
2967         Tex 1 = PRIM
2968
2969         Generated combiners:
2970
2971         Stages:2, Alpha:DISABLE_ALPHA, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
2972         0:Color: Mod - TEXEL0, SHADE, 
2973         1:Color: Lerp - TEXEL1, ENV, COMBINED -Tex1
2974         0:Alpha: Sel - COMBINED, , 
2975         1:Alpha: Sel - COMBINED, ,  -Tex1
2976
2977
2978         */
2979
2980
2981     {
2982         {0x00060003, 0x01000000, 0x07020704, 0x02000000}, // Simplified mux
2983             0x00127E60, 0xF5FFFD78,     // 64bit Mux
2984             2,  // number of stages
2985             DISABLE_ALPHA,
2986             MUX_ENV,        // Constant color
2987             0x00000000, 0x00000000, 0,  // Shade and specular color flags
2988             {0x00000000, 0x00000005}, // constant color texture flags
2989         {
2990             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
2991             {LERP(T1,ENV,CUR), SKIP, 1, true},  // Stage 1
2992         }
2993     },
2994
2995
2996         /*
2997         //Mux=0x0020ac60350c937f    Overflowed in THE LEGEND OF ZELDA
2998         Color0: (TEXEL1 - PRIM) * TEXEL0 + TEXEL0
2999         Color1: (PRIM - ENV) * COMBINED + ENV
3000         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
3001         Alpha1: (COMBINED - 0) * PRIM + 0
3002
3003         //Simplied Mux=0x0020ac60350c937f   Overflowed in THE LEGEND OF ZELDA
3004         Simplied DWORDs=00038604, 00060004, 07020706, 02000000
3005         Color0: (TEXEL1 - SHADE|C) * TEXEL0 + 0
3006         Color1: (SHADE - ENV) * COMBINED + ENV
3007         Alpha0: (TEXEL1 - 0) * SHADE + 0
3008         Alpha1: (0 - 0) * 0 + COMBINED
3009         Simplfied type: CM_FMT_TYPE8_A_SUB_B_MOD_C
3010         Shade = PRIM in color channel
3011         Shade = PRIM in alpha channel
3012
3013         Generated combiners:
3014
3015         Stages:2, Alpha:ENABLE_BOTH, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
3016         0:Color: Sub - TEXEL1, SHADE|C,  -Tex1
3017         1:Color: Mod - COMBINED, TEXEL0, 
3018         0:Alpha: Mod - TEXEL1, SHADE,  -Tex1
3019         1:Alpha: Sel - COMBINED, , 
3020
3021
3022         */
3023
3024
3025     {
3026         {0x00038604, 0x00060004, 0x07020706, 0x02000000}, // Simplified mux
3027             0x0020AC60, 0x350C937F,     // 64bit Mux
3028             2,  // number of stages
3029             ENABLE_BOTH,
3030             MUX_ENV,        // Constant color
3031             0x00000005, 0x00000005, 0,  // Shade and specular color flags
3032             {0x00000000, 0x00000000}, // constant color texture flags
3033         {
3034             {LERP(DIF,ENV,T0), MOD(T0,DIF), 0, true},   // Stage 0
3035             {MOD(T1,CUR), MOD(T1,DIF), 1, true},    // Stage 1
3036         }
3037     },
3038
3039
3040         /*
3041         //Mux=0x00177e6035fcfd7e    Overflowed in THE LEGEND OF ZELDA
3042         Color0: (TEXEL0 - PRIM) * PRIMLODFRAC + TEXEL0
3043         Color1: (PRIM - ENV) * COMBINED + ENV
3044         Alpha0: (0 - 0) * 0 + 1
3045         Alpha1: (0 - 0) * 0 + 1
3046
3047         //Simplied Mux=0x00177e6035fcfd7e   Overflowed in THE LEGEND OF ZELDA
3048         Simplied DWORDs=030F0603, 01000000, 04020406, 02000000
3049         Color0: (TEXEL0 - SHADE) * PRIMLODFRAC + TEXEL0
3050         Color1: (SHADE - TEXEL1) * COMBINED + TEXEL1
3051         Alpha0: (0 - 0) * 0 + 1
3052         Alpha1: (0 - 0) * 0 + COMBINED
3053         Simplfied type: Color0
3054         Shade = PRIM in color channel
3055         Tex 1 = ENV
3056
3057         Generated combiners:
3058
3059         Stages:2, Alpha:DISABLE_ALPHA, Factor:0, Specular:0 Dif Color:0xCCCCCCCC Dif Alpha:0xCCCCCCCC
3060         0:Color: Lerp - TEXEL0, SHADE, PRIMLODFRAC
3061         1:Color: Lerp - SHADE, TEXEL1, COMBINED -Tex1
3062         0:Alpha: Sel - COMBINED, , 
3063         1:Alpha: Sel - COMBINED, ,  -Tex1
3064
3065
3066         */
3067
3068
3069     {
3070         {0x030F0603, 0x01000000, 0x04020406, 0x02000000}, // Simplified mux
3071             0x00177E60, 0x35FCFD7E,     // 64bit Mux
3072             2,  // number of stages
3073             DISABLE_ALPHA,
3074             MUX_PRIMLODFRAC,        // Constant color
3075             0x00000005, 0x00000000, 0,  // Shade and specular color flags
3076             {0x00000000, 0x00000007}, // constant color texture flags
3077         {
3078             {LERP(T0,DIF,PRIMLODFRAC), SKIP, 0, true},  // Stage 0
3079             {LERP(DIF,T1,CUR), SKIP, 0, true},  // Stage 1
3080         }
3081     },
3082
3083
3084         /*
3085         //Mux=0x00276c6035d8ed76    Overflowed in THE LEGEND OF ZELDA
3086         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
3087         Color1: (PRIM - ENV) * COMBINED + ENV
3088         Alpha0: (1 - 1) * 1 + 1
3089         Alpha1: (1 - 1) * 1 + 1
3090         //Simplied Mux=0x00276c6035d8ed76   Overflowed in THE LEGEND OF ZELDA
3091         Simplied DWORDs=030F0604, 01000000, 07020706, 02000000Color0: (TEXEL1 - SHADE) * PRIMLODFRAC + TEXEL0
3092         Color1: (SHADE - ENV) * COMBINED + ENV
3093         Alpha0: (0 - 0) * 0 + 1
3094         Alpha1: (0 - 0) * 0 + COMBINED
3095         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
3096         */
3097
3098
3099     {
3100         {0x030F0604, 0x01000000, 0x07020706, 0x02000000}, // Simplified mux
3101             0x00276C60, 0x35D8ED76,     // 64bit Mux
3102             2,  // number of stages
3103             DISABLE_ALPHA,
3104             MUX_PRIMLODFRAC,        // Constant color
3105             0x00000005, 0x00000000, 0,  // Shade and specular color flags
3106             {0x00000000, 0x00000000}, // constant color texture flags
3107         {
3108             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3109             {LERP(T1,CUR,PRIMLODFRAC), SKIP, 1, true},  // Stage 1
3110         }
3111     },
3112
3113         /*
3114         //Mux=0x00277e60150cf37f    Overflowed in THE LEGEND OF ZELDA
3115         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3116         Color1: (PRIM - ENV) * COMBINED + ENV
3117         Alpha0: (0 - 0) * 0 + TEXEL0
3118         Alpha1: (COMBINED - 0) * PRIM + 0
3119
3120         //Simplied Mux=0x00277e60150cf37f   Overflowed in THE LEGEND OF ZELDA
3121         Simplied DWORDs=030F0304, 00060003, 06020605, 02000000Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3122         Color1: (PRIM - SHADE) * COMBINED + SHADE
3123         Alpha0: (TEXEL0 - 0) * SHADE + 0
3124         Alpha1: (0 - 0) * 0 + COMBINED
3125         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3126         */
3127
3128
3129     {
3130         {0x030F0304, 0x00060003, 0x06020605, 0x02000000}, // Simplified mux
3131             0x00277E60, 0x150CF37F,     // 64bit Mux
3132             2,  // number of stages
3133             ENABLE_BOTH,
3134             MUX_PRIMLODFRAC,        // Constant color
3135             0x00000007, 0x00000005, 0,  // Shade and specular color flags
3136             {0x00000000, 0x00000000}, // constant color texture flags
3137         {
3138             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3139             {LERP(T1,CUR,PRIMLODFRAC), SKIP, 1, true},  // Stage 1
3140         }
3141     },
3142
3143         /*
3144         //Mux=0x001596a430fdfe38    Overflowed in Diddy Kong Racing
3145         Color0: (TEXEL0 - PRIM) * SHADE|A + PRIM
3146         Color1: (ENV - COMBINED) * SHADE + COMBINED
3147         Alpha0: (TEXEL0 - 0) * PRIM + 0
3148         Alpha1: (0 - 0) * 0 + COMBINED
3149
3150
3151         //Simplied Mux=0x001596a430fdfe38   Overflowed in Diddy Kong Racing
3152         Simplied DWORDs=04460403, 04000000, 02060207, 00020003Color0: (TEXEL0 - TEXEL1) * SHADE|A + TEXEL1
3153         Color1: (ENV - COMBINED) * SHADE + COMBINED
3154         Alpha0: (0 - 0) * 0 + TEXEL1
3155         Alpha1: (TEXEL0 - 0) * COMBINED + 0
3156         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3157         */
3158
3159
3160     {
3161         {0x04460403, 0x04000000, 0x02060207, 0x00020003}, // Simplified mux
3162             0x001596A4, 0x30FDFE38,     // 64bit Mux
3163             2,  // number of stages
3164             ENABLE_BOTH,
3165             MUX_PRIM,       // Constant color
3166             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3167             {0x00000000, 0x00000007}, // constant color texture flags
3168         {
3169             {LERP(T0,PRI,DIFA), MOD(T0,PRI), 0, true},  // Stage 0
3170             {LERP(T1,CUR,DIF), SKIP, 1, true},  // Stage 1
3171         }
3172     },
3173
3174         /*
3175         //Mux=0x001218acf00ffe3f    Overflowed in Diddy Kong Racing
3176         Color0: (TEXEL0 - 0) * SHADE + 0
3177         Color1: (ENV - COMBINED) * ENV|A + COMBINED
3178         Alpha0: (TEXEL0 - 0) * SHADE + 0
3179         Alpha1: (COMBINED - 0) * PRIM + 0
3180
3181
3182         //Simplied Mux=0x001218acf00ffe3f   Overflowed in Diddy Kong Racing
3183         Simplied DWORDs=00060003, 00060003, 02470207, 00020004Color0: (TEXEL0 - 0) * SHADE + 0
3184         Color1: (ENV - COMBINED) * ENV|A + COMBINED
3185         Alpha0: (TEXEL0 - 0) * SHADE + 0
3186         Alpha1: (TEXEL1 - 0) * COMBINED + 0
3187         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3188         */
3189
3190
3191     {
3192         {0x00060003, 0x00060003, 0x02470207, 0x00020004}, // Simplified mux
3193             0x001218AC, 0xF00FFE3F,     // 64bit Mux
3194             2,  // number of stages
3195             ENABLE_BOTH,
3196             MUX_ENV,        // Constant color
3197             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3198             {0x00000000, 0x00000005}, // constant color texture flags
3199         {
3200             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3201             {LERP(ENV,CUR,ENVA), MOD(T1,CUR), 1, true}, // Stage 1
3202         }
3203     },
3204
3205         /*
3206         //Mux=0x002266ac1010923f    Overflowed in Diddy Kong Racing
3207         Color0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
3208         Color1: (ENV - COMBINED) * ENV|A + COMBINED
3209         Alpha0: (1 - TEXEL0) * PRIM + TEXEL0
3210         Alpha1: (COMBINED - 0) * SHADE + 0
3211
3212
3213         //Simplied Mux=0x002266ac1010923f   Overflowed in Diddy Kong Racing
3214         Simplied DWORDs=03060304, 03050301, 02470207, 00020006Color0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
3215         Color1: (ENV - COMBINED) * ENV|A + COMBINED
3216         Alpha0: (1 - TEXEL0) * PRIM + TEXEL0
3217         Alpha1: (SHADE - 0) * COMBINED + 0
3218         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3219         */
3220
3221
3222     {
3223         {0x03060304, 0x03050301, 0x02470207, 0x00020006}, // Simplified mux
3224             0x002266AC, 0x1010923F,     // 64bit Mux
3225             2,  // number of stages
3226             ENABLE_BOTH,
3227             MUX_ENV,        // Constant color
3228             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3229             {0x00000000, 0x00000000}, // constant color texture flags
3230         {
3231             {LERP(ENV,T0,ENVA), MOD(T0,DIF), 0, true},  // Stage 0
3232             {LERP(T1,CUR,DIF), SKIP, 1, true},  // Stage 1
3233         }
3234     },
3235
3236         /*
3237         //Mux=0x0030fe045ffefbf8    Overflowed in F-ZERO X
3238         Color0: (PRIM - ENV) * TEXEL0 + ENV
3239         Color1: (COMBINED - 0) * SHADE + 0
3240         Alpha0: (0 - 0) * 0 + ENV
3241         Alpha1: (0 - 0) * 0 + COMBINED
3242
3243
3244         //Simplied Mux=0x0030fe045ffefbf8   Overflowed in F-ZERO X
3245         Simplied DWORDs=07030704, 06000000, 00020006, 02000000Color0: (TEXEL1 - ENV) * TEXEL0 + ENV
3246         Color1: (SHADE - 0) * COMBINED + 0
3247         Alpha0: (0 - 0) * 0 + SHADE
3248         Alpha1: (0 - 0) * 0 + COMBINED
3249         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3250         */
3251
3252
3253     {
3254         {0x07030704, 0x06000000, 0x00020006, 0x02000000}, // Simplified mux
3255             0x0030FE04, 0x5FFEFBF8,     // 64bit Mux
3256             2,  // number of stages
3257             ENABLE_BOTH,
3258             MUX_ENV,        // Constant color
3259             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3260             {0x00000000, 0x00000005}, // constant color texture flags
3261         {
3262             {MOD(T0,DIF), SEL(ENV), 0, true},   // Stage 0
3263             {LERP(T1,ENV,CUR), SKIP, 1, true},  // Stage 1
3264         }
3265     },
3266
3267         /*
3268         //Mux=0x0026a0801f0c93ff    Overflowed in ROCKETROBOTONWHEELS
3269         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
3270         Color1: (SHADE - 0) * COMBINED + 0
3271         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
3272         Alpha1: (COMBINED - 0) * PRIM + 0
3273
3274
3275         //Simplied Mux=0x0026a0801f0c93ff   Overflowed in ROCKETROBOTONWHEELS
3276         Simplied DWORDs=030E0304, 03060304, 00020006, 00020005Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
3277         Color1: (SHADE - 0) * COMBINED + 0
3278         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
3279         Alpha1: (PRIM - 0) * COMBINED + 0
3280         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3281         */
3282
3283
3284     {
3285         {0x030E0304, 0x03060304, 0x00020006, 0x00020005}, // Simplified mux
3286             0x0026A080, 0x1F0C93FF,     // 64bit Mux
3287             2,  // number of stages
3288             ENABLE_BOTH,
3289             MUX_LODFRAC,        // Constant color
3290             0x00000000, 0x00000005, 0,  // Shade and specular color flags
3291             {0x00000000, 0x00000000}, // constant color texture flags
3292         {
3293             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3294             {LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
3295         }
3296     },
3297
3298         /*
3299         //Mux=0x00272c60150c937f    Overflowed in POKEMON STADIUM
3300         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3301         Color1: (PRIM - ENV) * COMBINED + ENV
3302         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
3303         Alpha1: (COMBINED - 0) * PRIM + 0
3304
3305
3306         //Simplied Mux=0x00272c60150c937f   Overflowed in POKEMON STADIUM
3307         Simplied DWORDs=030F0304, 00060004, 06020605, 02000000Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3308         Color1: (PRIM - SHADE) * COMBINED + SHADE
3309         Alpha0: (TEXEL1 - 0) * SHADE + 0
3310         Alpha1: (0 - 0) * 0 + COMBINED
3311         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3312         */
3313
3314
3315     {
3316         {0x030F0304, 0x00060004, 0x06020605, 0x02000000}, // Simplified mux
3317             0x00272C60, 0x150C937F,     // 64bit Mux
3318             2,  // number of stages
3319             ENABLE_BOTH,
3320             MUX_PRIMLODFRAC,        // Constant color
3321             0x00000007, 0x00000005, 0,  // Shade and specular color flags
3322             {0x00000000, 0x00000000}, // constant color texture flags
3323         {
3324             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3325             {LERP(T1,CUR,PRIMLODFRAC), MOD(T1,DIF), 1, true},   // Stage 1
3326         }
3327     },
3328
3329         /*
3330         //Mux=0x00162a0325fe13f8    Overflowed in POKEMON STADIUM
3331         Color0: (TEXEL0 - TEXEL1) * ENV|A + SHADE
3332         Color1: (COMBINED - ENV) * PRIM + 0
3333         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
3334         Alpha1: (0 - 0) * 0 + COMBINED
3335
3336
3337         //Simplied Mux=0x00162a0325fe13f8   Overflowed in POKEMON STADIUM
3338         Simplied DWORDs=06460403, 03060304, 00050702, 02000000Color0: (TEXEL0 - TEXEL1) * SHADE|A + SHADE
3339         Color1: (COMBINED - ENV) * PRIM + 0
3340         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
3341         Alpha1: (0 - 0) * 0 + COMBINED
3342         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
3343         */
3344
3345
3346     {
3347         {0x06460403, 0x03060304, 0x00050702, 0x02000000}, // Simplified mux
3348             0x00162A03, 0x25FE13F8,     // 64bit Mux
3349             2,  // number of stages
3350             ENABLE_BOTH,
3351             MUX_ENV,        // Constant color
3352             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3353             {0x00000000, 0x00000000}, // constant color texture flags
3354         {
3355             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
3356             {LERP(CUR,T1,ENVA), LERP(T1,CUR,ENV), 1, true}, // Stage 1
3357         }
3358     },
3359
3360         /*
3361         //Mux=0x00167e03f5fe77f8    Overflowed in POKEMON STADIUM
3362         Color0: (TEXEL0 - 0) * ENV|A + SHADE
3363         Color1: (COMBINED - ENV) * PRIM + 0
3364         Alpha0: (0 - 0) * 0 + PRIM
3365         Alpha1: (0 - 0) * 0 + COMBINED
3366
3367
3368         //Simplied Mux=0x00167e03f5fe77f8   Overflowed in POKEMON STADIUM
3369         Simplied DWORDs=06470003, 04000000, 00040702, 02000000Color0: (TEXEL0 - 0) * ENV|A + SHADE
3370         Color1: (COMBINED - ENV) * TEXEL1 + 0
3371         Alpha0: (0 - 0) * 0 + TEXEL1
3372         Alpha1: (0 - 0) * 0 + COMBINED
3373         Simplfied type: CM_FMT_TYPE8_A_SUB_B_MOD_CGenerated combiners:
3374         */
3375
3376
3377     {
3378         {0x06470003, 0x04000000, 0x00040702, 0x02000000}, // Simplified mux
3379             0x00167E03, 0xF5FE77F8,     // 64bit Mux
3380             2,  // number of stages
3381             ENABLE_BOTH,
3382             MUX_ENV,        // Constant color
3383             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3384             {0x00000000, 0x00000005}, // constant color texture flags
3385         {
3386             {MULADD(T0,ENVA,DIF), SKIP, 0, true},   // Stage 0
3387             {MOD(CUR,T1), SEL(T1), 1, true},    // Stage 1
3388         }
3389     },
3390
3391         /*
3392         //Mux=0x002698801514feff    Overflowed in CONKER BFD
3393         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
3394         Color1: (SHADE - ENV) * COMBINED + PRIM
3395         Alpha0: (TEXEL0 - 0) * SHADE + 0
3396         Alpha1: (COMBINED - 0) * ENV + 0
3397
3398
3399         //Simplied Mux=0x002698801514feff   Overflowed in CONKER BFD
3400         Simplied DWORDs=00030706, 00060003, 02010004, 00020007Color0: (SHADE - ENV) * TEXEL0 + 0
3401         Color1: (TEXEL1 - 0) * 1 + COMBINED
3402         Alpha0: (TEXEL0 - 0) * SHADE + 0
3403         Alpha1: (ENV - 0) * COMBINED + 0
3404         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDShade = 00000706 in color channelGenerated combiners:
3405         */
3406
3407
3408     {
3409         {0x00030706, 0x00060003, 0x02010004, 0x00020007}, // Simplified mux
3410             0x00269880, 0x1514FEFF,     // 64bit Mux
3411             2,  // number of stages
3412             ENABLE_BOTH,
3413             MUX_LODFRAC,        // Constant color
3414             0x00000706, 0x00070006, 0,  // Shade and specular color flags
3415             {0x00000000, 0x00000000}, // constant color texture flags
3416         {
3417             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3418             {LERP(T1,CUR,LODFRAC), SKIP, 1, true},  // Stage 1
3419         }
3420     },
3421
3422         /*
3423         //Mux=0x00127e04f513f4ff    Overflowed in CONKER BFD
3424         Color0: (TEXEL0 - 0) * SHADE + 0
3425         Color1: (COMBINED - ENV) * SHADE + PRIM
3426         Alpha0: (0 - 0) * 0 + TEXEL1
3427         Alpha1: (COMBINED - 0) * SHADE + 0
3428
3429
3430         //Simplied Mux=0x00127e04f513f4ff   Overflowed in CONKER BFD
3431         Simplied DWORDs=00060003, 00060004, 05060702, 02000000Color0: (TEXEL0 - 0) * SHADE + 0
3432         Color1: (COMBINED - ENV) * SHADE + PRIM
3433         Alpha0: (TEXEL1 - 0) * SHADE + 0
3434         Alpha1: (0 - 0) * 0 + COMBINED
3435         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
3436         */
3437
3438
3439     {
3440         {0x00060003, 0x00060004, 0x05060702, 0x02000000}, // Simplified mux
3441             0x00127E04, 0xF513F4FF,     // 64bit Mux
3442             2,  // number of stages
3443             ENABLE_BOTH,
3444             MUX_PRIM,       // Constant color
3445             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3446             {0x00000000, 0x00000000}, // constant color texture flags
3447         {
3448             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3449             {MULADD(CUR,DIF,PRI), MOD(T1,DIF), 1, true},    // Stage 1
3450         }
3451     },
3452
3453         /*
3454         //Mux=0x00277e60350cf37f    Overflowed in THE MASK OF MUJURA
3455         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
3456         Color1: (PRIM - ENV) * COMBINED + ENV
3457         Alpha0: (0 - 0) * 0 + TEXEL0
3458         Alpha1: (COMBINED - 0) * PRIM + 0
3459
3460
3461         //Simplied Mux=0x00277e60350cf37f   Overflowed in THE MASK OF MUJURA
3462         Simplied DWORDs=030F0604, 00060003, 07020706, 02000000Color0: (TEXEL1 - SHADE) * PRIMLODFRAC + TEXEL0
3463         Color1: (SHADE - ENV) * COMBINED + ENV
3464         Alpha0: (TEXEL0 - 0) * SHADE + 0
3465         Alpha1: (0 - 0) * 0 + COMBINED
3466         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
3467         */
3468
3469
3470     {
3471         {0x030F0604, 0x00060003, 0x07020706, 0x02000000}, // Simplified mux
3472             0x00277E60, 0x350CF37F,     // 64bit Mux
3473             2,  // number of stages
3474             ENABLE_BOTH,
3475             MUX_PRIMLODFRAC,        // Constant color
3476             0x00000005, 0x00000005, 0,  // Shade and specular color flags
3477             {0x00000000, 0x00000000}, // constant color texture flags
3478         {
3479             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3480             {MULADD(T1,PRIMLODFRAC,CUR), SKIP, 1, true},    // Stage 1
3481         }
3482     },
3483
3484         /*
3485         //Mux=0x00272c041f0c93ff    Overflowed in THE MASK OF MUJURA
3486         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3487         Color1: (COMBINED - 0) * SHADE + 0
3488         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
3489         Alpha1: (COMBINED - 0) * PRIM + 0
3490
3491
3492         //Simplied Mux=0x00272c041f0c93ff   Overflowed in THE MASK OF MUJURA
3493         Simplied DWORDs=030F0304, 00060004, 00020006, 02000000Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3494         Color1: (SHADE - 0) * COMBINED + 0
3495         Alpha0: (TEXEL1 - 0) * SHADE + 0
3496         Alpha1: (0 - 0) * 0 + COMBINED
3497         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3498         */
3499
3500
3501     {
3502         {0x030F0304, 0x00060004, 0x00020006, 0x02000000}, // Simplified mux
3503             0x00272C04, 0x1F0C93FF,     // 64bit Mux
3504             2,  // number of stages
3505             ENABLE_BOTH,
3506             MUX_PRIMLODFRAC,        // Constant color
3507             0x00000000, 0x00000005, 0,  // Shade and specular color flags
3508             {0x00000000, 0x00000000}, // constant color texture flags
3509         {
3510             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3511             {LERP(T1,CUR,PRIMLODFRAC), MOD(T1,DIF), 1, true},   // Stage 1
3512         }
3513     },
3514
3515         /*
3516         //Mux=0x002714041f0cffff    Overflowed in THE MASK OF MUJURA
3517         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3518         Color1: (COMBINED - 0) * SHADE + 0
3519         Alpha0: (TEXEL0 - 0) * TEXEL1 + 0
3520         Alpha1: (COMBINED - 0) * PRIM + 0
3521
3522
3523         //Simplied Mux=0x002714041f0cffff   Overflowed in THE MASK OF MUJURA
3524         Simplied DWORDs=030F0304, 00060003, 00020006, 00020004Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3525         Color1: (SHADE - 0) * COMBINED + 0
3526         Alpha0: (TEXEL0 - 0) * SHADE + 0
3527         Alpha1: (TEXEL1 - 0) * COMBINED + 0
3528         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3529         */
3530
3531
3532     {
3533         {0x030F0304, 0x00060003, 0x00020006, 0x00020004}, // Simplified mux
3534             0x00271404, 0x1F0CFFFF,     // 64bit Mux
3535             2,  // number of stages
3536             ENABLE_BOTH,
3537             MUX_PRIMLODFRAC,        // Constant color
3538             0x00000000, 0x00000005, 0,  // Shade and specular color flags
3539             {0x00000000, 0x00000000}, // constant color texture flags
3540         {
3541             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3542             {LERP(T1,CUR,PRIMLODFRAC), MOD(T1,CUR), 1, true},   // Stage 1
3543         }
3544     },
3545
3546         /*
3547         //Mux=0x002722041f0cffff    Overflowed in THE MASK OF MUJURA
3548         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3549         Color1: (COMBINED - 0) * SHADE + 0
3550         Alpha0: (TEXEL1 - 0) * TEXEL0 + 0
3551         Alpha1: (COMBINED - 0) * PRIM + 0
3552
3553
3554         //Simplied Mux=0x002722041f0cffff   Overflowed in THE MASK OF MUJURA
3555         Simplied DWORDs=030F0304, 00060004, 00020006, 00020003Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3556         Color1: (SHADE - 0) * COMBINED + 0
3557         Alpha0: (TEXEL1 - 0) * SHADE + 0
3558         Alpha1: (TEXEL0 - 0) * COMBINED + 0
3559         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3560         */
3561
3562
3563     {
3564         {0x030F0304, 0x00060004, 0x00020006, 0x00020003}, // Simplified mux
3565             0x00272204, 0x1F0CFFFF,     // 64bit Mux
3566             2,  // number of stages
3567             ENABLE_BOTH,
3568             MUX_PRIMLODFRAC,        // Constant color
3569             0x00000000, 0x00000005, 0,  // Shade and specular color flags
3570             {0x00000000, 0x00000000}, // constant color texture flags
3571         {
3572             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3573             {LERP(T1,CUR,PRIMLODFRAC), MOD(T1,CUR), 1, true},   // Stage 1
3574         }
3575     },
3576
3577         /*
3578         //Mux=0x00272c603510f37f    Overflowed in THE MASK OF MUJURA
3579         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
3580         Color1: (PRIM - ENV) * COMBINED + ENV
3581         Alpha0: (TEXEL1 - 0) * 1 + TEXEL0
3582         Alpha1: (COMBINED - 0) * SHADE + 0
3583
3584
3585         //Simplied Mux=0x00272c603510f37f   Overflowed in THE MASK OF MUJURA
3586         Simplied DWORDs=030F0604, 04010003, 07020706, 00020006Color0: (TEXEL1 - SHADE) * PRIMLODFRAC + TEXEL0
3587         Color1: (SHADE - ENV) * COMBINED + ENV
3588         Alpha0: (TEXEL0 - 0) * 1 + TEXEL1
3589         Alpha1: (SHADE - 0) * COMBINED + 0
3590         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
3591         */
3592
3593
3594     {
3595         {0x030F0604, 0x04010003, 0x07020706, 0x00020006}, // Simplified mux
3596             0x00272C60, 0x3510F37F,     // 64bit Mux
3597             2,  // number of stages
3598             ENABLE_BOTH,
3599             MUX_PRIMLODFRAC,        // Constant color
3600             0x00000005, 0x00000000, 0,  // Shade and specular color flags
3601             {0x00000000, 0x00000000}, // constant color texture flags
3602         {
3603             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3604             {MULADD(T1,PRIMLODFRAC,CUR), MOD(T1,CUR), 1, true}, // Stage 1
3605         }
3606     },
3607
3608         /*
3609         //Mux=0x00209204ff0fffff    Overflowed in THE MASK OF MUJURA
3610         Color0: (TEXEL1 - 0) * TEXEL0 + 0
3611         Color1: (COMBINED - 0) * SHADE + 0
3612         Alpha0: (TEXEL0 - 0) * TEXEL0 + 0
3613         Alpha1: (COMBINED - 0) * PRIM + 0
3614
3615
3616         //Simplied Mux=0x00209204ff0fffff   Overflowed in THE MASK OF MUJURA
3617         Simplied DWORDs=00060004, 00030003, 00020003, 00020005Color0: (TEXEL1 - 0) * SHADE + 0
3618         Color1: (TEXEL0 - 0) * COMBINED + 0
3619         Alpha0: (TEXEL0 - 0) * TEXEL0 + 0
3620         Alpha1: (PRIM - 0) * COMBINED + 0
3621         Simplfied type: CM_FMT_TYPE2_A_ADD_DGenerated combiners:
3622         */
3623
3624
3625     {
3626         {0x00060004, 0x00030003, 0x00020003, 0x00020005}, // Simplified mux
3627             0x00209204, 0xFF0FFFFF,     // 64bit Mux
3628             2,  // number of stages
3629             ENABLE_BOTH,
3630             MUX_PRIM,       // Constant color
3631             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3632             {0x00000000, 0x00000000}, // constant color texture flags
3633         {
3634             {MOD(T0,DIF), MOD(T0,T0), 0, true}, // Stage 0
3635             {MOD(T1,CUR), MOD(PRI,CUR), 1, true},   // Stage 1
3636         }
3637     },
3638
3639         /*
3640         //Mux=0x002714031f0cffff    Overflowed in THE MASK OF MUJURA
3641         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3642         Color1: (COMBINED - 0) * PRIM + 0
3643         Alpha0: (TEXEL0 - 0) * TEXEL1 + 0
3644         Alpha1: (COMBINED - 0) * PRIM + 0
3645
3646
3647         //Simplied Mux=0x002714031f0cffff   Overflowed in THE MASK OF MUJURA
3648         Simplied DWORDs=030F0304, 00060003, 00020006, 00020004Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3649         Color1: (SHADE - 0) * COMBINED + 0
3650         Alpha0: (TEXEL0 - 0) * SHADE + 0
3651         Alpha1: (TEXEL1 - 0) * COMBINED + 0
3652         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3653         */
3654
3655
3656     {
3657         {0x030F0304, 0x00060003, 0x00020006, 0x00020004}, // Simplified mux
3658             0x00271403, 0x1F0CFFFF,     // 64bit Mux
3659             2,  // number of stages
3660             ENABLE_BOTH,
3661             MUX_PRIMLODFRAC,        // Constant color
3662             0x00000005, 0x00000005, 0,  // Shade and specular color flags
3663             {0x00000000, 0x00000000}, // constant color texture flags
3664         {
3665             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
3666             {LERP(T1,T0,PRIMLODFRAC), MOD(T1,CUR), 1, true},    // Stage 1
3667         }
3668     },
3669
3670         /*
3671         //Mux=0x00272c031f1093ff    Overflowed in THE MASK OF MUJURA
3672         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3673         Color1: (COMBINED - 0) * PRIM + 0
3674         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
3675         Alpha1: (COMBINED - 0) * SHADE + 0
3676
3677
3678         //Simplied Mux=0x00272c031f1093ff   Overflowed in THE MASK OF MUJURA
3679         Simplied DWORDs=030F0304, 00060004, 00020006, 02000000Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3680         Color1: (SHADE - 0) * COMBINED + 0
3681         Alpha0: (TEXEL1 - 0) * SHADE + 0
3682         Alpha1: (0 - 0) * 0 + COMBINED
3683         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3684         */
3685
3686
3687     {
3688         {0x030F0304, 0x00060004, 0x00020006, 0x02000000}, // Simplified mux
3689             0x00272C03, 0x1F1093FF,     // 64bit Mux
3690             2,  // number of stages
3691             ENABLE_BOTH,
3692             MUX_PRIMLODFRAC,        // Constant color
3693             0x00000005, 0x00000000, 0,  // Shade and specular color flags
3694             {0x00000000, 0x00000000}, // constant color texture flags
3695         {
3696             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3697             {LERP(T1,CUR,PRIMLODFRAC), MOD(T1,DIF), 1, true},   // Stage 1
3698         }
3699     },
3700
3701         /*
3702         //Mux=0x0012fe043ffe77f8    Overflowed in THE MASK OF MUJURA
3703         Color0: (TEXEL0 - PRIM) * ENV + SHADE
3704         Color1: (COMBINED - 0) * SHADE + 0
3705         Alpha0: (0 - 0) * 0 + PRIM
3706         Alpha1: (0 - 0) * 0 + COMBINED
3707
3708
3709         //Simplied Mux=0x0012fe043ffe77f8   Overflowed in THE MASK OF MUJURA
3710         Simplied DWORDs=06070403, 04000000, 00020006, 02000000Color0: (TEXEL0 - TEXEL1) * ENV + SHADE
3711         Color1: (SHADE - 0) * COMBINED + 0
3712         Alpha0: (0 - 0) * 0 + TEXEL1
3713         Alpha1: (0 - 0) * 0 + COMBINED
3714         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
3715         */
3716
3717
3718     {
3719         {0x06070403, 0x04000000, 0x00020006, 0x02000000}, // Simplified mux
3720             0x0012FE04, 0x3FFE77F8,     // 64bit Mux
3721             2,  // number of stages
3722             ENABLE_BOTH,
3723             MUX_ENV,        // Constant color
3724             0x00000000, 0x00000005, 0,  // Shade and specular color flags
3725             {0x00000000, 0x00000000}, // constant color texture flags
3726         {
3727             {MULADD(T0,ENV,DIF), SEL(DIF), 0, true},    // Stage 0
3728             {MOD(CUR,DIF), SKIP, 0, false}, // Stage 1
3729         }
3730     },
3731
3732         /*
3733         //Mux=0x0020fe05f3fff738    Overflowed in THE MASK OF MUJURA
3734         Color0: (TEXEL1 - 0) * TEXEL0 + 0
3735         Color1: (COMBINED - PRIM) * ENV + SHADE
3736         Alpha0: (0 - 0) * 0 + PRIM
3737         Alpha1: (0 - 0) * 0 + COMBINED
3738
3739
3740         //Simplied Mux=0x0020fe05f3fff738   Overflowed in THE MASK OF MUJURA
3741         Simplied DWORDs=00030004, 06000000, 06070502, 02000000Color0: (TEXEL1 - 0) * TEXEL0 + 0
3742         Color1: (COMBINED - PRIM) * ENV + SHADE
3743         Alpha0: (0 - 0) * 0 + SHADE
3744         Alpha1: (0 - 0) * 0 + COMBINED
3745         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
3746         */
3747
3748
3749     {
3750         {0x00030004, 0x06000000, 0x06070502, 0x02000000}, // Simplified mux
3751             0x0020FE05, 0xF3FFF738,     // 64bit Mux
3752             2,  // number of stages
3753             ENABLE_BOTH,
3754             MUX_ENV,        // Constant color
3755             0x00000000, 0x00000005, 0,  // Shade and specular color flags
3756             {0x00000000, 0x00000000}, // constant color texture flags
3757         {
3758             {MOD(T0,ENV), SEL(DIF), 0, true},   // Stage 0
3759             {MULADD(T1,CUR,DIF), SKIP, 1, true},    // Stage 1
3760         }
3761     },
3762
3763         /*
3764         //Mux=0x0012fe043f1677ff    Overflowed in THE MASK OF MUJURA
3765         Color0: (TEXEL0 - PRIM) * ENV + SHADE
3766         Color1: (COMBINED - 0) * SHADE + 0
3767         Alpha0: (0 - 0) * 0 + PRIM
3768         Alpha1: (COMBINED - 0) * ENV + 0
3769
3770
3771         //Simplied Mux=0x0012fe043f1677ff   Overflowed in THE MASK OF MUJURA
3772         Simplied DWORDs=06070403, 00070004, 00020006, 02000000Color0: (TEXEL0 - TEXEL1) * ENV + SHADE
3773         Color1: (SHADE - 0) * COMBINED + 0
3774         Alpha0: (TEXEL1 - 0) * ENV + 0
3775         Alpha1: (0 - 0) * 0 + COMBINED
3776         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
3777         */
3778
3779
3780     {
3781         {0x06070403, 0x00070004, 0x00020006, 0x02000000}, // Simplified mux
3782             0x0012FE04, 0x3F1677FF,     // 64bit Mux
3783             2,  // number of stages
3784             ENABLE_BOTH,
3785             MUX_ENV,        // Constant color
3786             0x00000000, 0x00000005, 0,  // Shade and specular color flags
3787             {0x00000000, 0x00000000}, // constant color texture flags
3788         {
3789             {MULADD(T0,ENV,DIF), MOD(DIF,ENV), 0, true},    // Stage 0
3790             {MOD(CUR,DIF), SKIP, 0, false}, // Stage 1
3791         }
3792     },
3793
3794         /*
3795         //Mux=0x0011fe04ff17f7ff    Overflowed in THE MASK OF MUJURA
3796         Color0: (TEXEL0 - 0) * PRIM + 0
3797         Color1: (COMBINED - 0) * SHADE + 0
3798         Alpha0: (0 - 0) * 0 + PRIM
3799         Alpha1: (COMBINED - 0) * ENV + 0
3800
3801
3802         //Simplied Mux=0x0011fe04ff17f7ff   Overflowed in THE MASK OF MUJURA
3803         Simplied DWORDs=00030006, 00070004, 00020004, 02000000Color0: (SHADE - 0) * TEXEL0 + 0
3804         Color1: (TEXEL1 - 0) * COMBINED + 0
3805         Alpha0: (TEXEL1 - 0) * ENV + 0
3806         Alpha1: (0 - 0) * 0 + COMBINED
3807         Simplfied type: CM_FMT_TYPE2_A_ADD_DGenerated combiners:
3808         */
3809
3810
3811     {
3812         {0x00030006, 0x00070004, 0x00020004, 0x02000000}, // Simplified mux
3813             0x0011FE04, 0xFF17F7FF,     // 64bit Mux
3814             2,  // number of stages
3815             ENABLE_BOTH,
3816             MUX_ENV,        // Constant color
3817             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3818             {0x00000000, 0x00000005}, // constant color texture flags
3819         {
3820             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3821             {MOD(T1,CUR), MOD(T1,DIF), 1, true},    // Stage 1
3822         }
3823     },
3824
3825         /*
3826         //Mux=0x00272c031f0c93ff    Overflowed in MULTI RACING
3827         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3828         Color1: (COMBINED - 0) * PRIM + 0
3829         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
3830         Alpha1: (COMBINED - 0) * PRIM + 0
3831
3832
3833         //Simplied Mux=0x00272c031f0c93ff   Overflowed in MULTI RACING
3834         Simplied DWORDs=030F0304, 00060004, 00020006, 02000000Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3835         Color1: (SHADE - 0) * COMBINED + 0
3836         Alpha0: (TEXEL1 - 0) * SHADE + 0
3837         Alpha1: (0 - 0) * 0 + COMBINED
3838         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3839         */
3840
3841
3842     {
3843         {0x030F0304, 0x00060004, 0x00020006, 0x02000000}, // Simplified mux
3844             0x00272C03, 0x1F0C93FF,     // 64bit Mux
3845             2,  // number of stages
3846             ENABLE_BOTH,
3847             MUX_PRIMLODFRAC,        // Constant color
3848             0x00000005, 0x00000005, 0,  // Shade and specular color flags
3849             {0x00000000, 0x00000000}, // constant color texture flags
3850         {
3851             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3852             {LERP(T1,CUR,PRIMLODFRAC), MOD(T1,DIF), 1, true},   // Stage 1
3853         }
3854     },
3855
3856         /*
3857         //Mux=0x00272c041f0c93ff    Overflowed in MULTI RACING
3858         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3859         Color1: (COMBINED - 0) * SHADE + 0
3860         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
3861         Alpha1: (COMBINED - 0) * PRIM + 0
3862
3863
3864         //Simplied Mux=0x00272c041f0c93ff   Overflowed in MULTI RACING
3865         Simplied DWORDs=030F0304, 00060004, 00020006, 02000000Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
3866         Color1: (SHADE - 0) * COMBINED + 0
3867         Alpha0: (TEXEL1 - 0) * SHADE + 0
3868         Alpha1: (0 - 0) * 0 + COMBINED
3869         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3870         */
3871
3872
3873     {
3874         {0x030F0304, 0x00060004, 0x00020006, 0x02000000}, // Simplified mux
3875             0x00272C04, 0x1F0C93FF,     // 64bit Mux
3876             2,  // number of stages
3877             ENABLE_BOTH,
3878             MUX_PRIMLODFRAC,        // Constant color
3879             0x00000000, 0x00000005, 0,  // Shade and specular color flags
3880             {0x00000000, 0x00000000}, // constant color texture flags
3881         {
3882             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3883             {LERP(T1,CUR,PRIMLODFRAC), MOD(T1,DIF), 1, true},   // Stage 1
3884         }
3885     },
3886
3887         /*
3888         //Mux=0x0030fe045ffef7f8    Overflowed in MULTI RACING
3889         Color0: (PRIM - ENV) * TEXEL0 + ENV
3890         Color1: (COMBINED - 0) * SHADE + 0
3891         Alpha0: (0 - 0) * 0 + PRIM
3892         Alpha1: (0 - 0) * 0 + COMBINED
3893
3894
3895         //Simplied Mux=0x0030fe045ffef7f8   Overflowed in MULTI RACING
3896         Simplied DWORDs=07030704, 04000000, 00020006, 02000000Color0: (TEXEL1 - ENV) * TEXEL0 + ENV
3897         Color1: (SHADE - 0) * COMBINED + 0
3898         Alpha0: (0 - 0) * 0 + TEXEL1
3899         Alpha1: (0 - 0) * 0 + COMBINED
3900         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3901         */
3902
3903
3904     {
3905         {0x07030704, 0x04000000, 0x00020006, 0x02000000}, // Simplified mux
3906             0x0030FE04, 0x5FFEF7F8,     // 64bit Mux
3907             2,  // number of stages
3908             ENABLE_BOTH,
3909             MUX_ENV,        // Constant color
3910             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3911             {0x00000000, 0x00000005}, // constant color texture flags
3912         {
3913             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
3914             {LERP(T1,ENV,CUR), SEL(T1), 1, true},   // Stage 1
3915         }
3916     },
3917
3918         /*
3919         //Mux=0x0026a08015fc93f8    Overflowed in Monaco Grand Prix
3920         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
3921         Color1: (SHADE - ENV) * COMBINED + 0
3922         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
3923         Alpha1: (0 - 0) * 0 + COMBINED
3924
3925
3926         //Simplied Mux=0x0026a08015fc93f8   Overflowed in Monaco Grand Prix
3927         Simplied DWORDs=030E0304, 03060304, 00020706, 02000000Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
3928         Color1: (SHADE - ENV) * COMBINED + 0
3929         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
3930         Alpha1: (0 - 0) * 0 + COMBINED
3931         Simplfied type: CM_FMT_TYPE8_A_SUB_B_MOD_CGenerated combiners:
3932         */
3933
3934
3935     {
3936         {0x030E0304, 0x03060304, 0x00020706, 0x02000000}, // Simplified mux
3937             0x0026A080, 0x15FC93F8,     // 64bit Mux
3938             2,  // number of stages
3939             ENABLE_BOTH,
3940             MUX_LODFRAC,        // Constant color
3941             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3942             {0x00000000, 0x00000000}, // constant color texture flags
3943         {
3944             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
3945             {LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
3946         }
3947     },
3948
3949         /*
3950         //Mux=0x0050fe043ffdf3f8    Overflowed in KING HILL 64
3951         Color0: (ENV - PRIM) * TEXEL0 + PRIM
3952         Color1: (COMBINED - 0) * SHADE + 0
3953         Alpha0: (0 - 0) * 0 + TEXEL0
3954         Alpha1: (0 - 0) * 0 + COMBINED
3955
3956
3957         //Simplied Mux=0x0050fe043ffdf3f8   Overflowed in KING HILL 64
3958         Simplied DWORDs=04030407, 03000000, 00020006, 02000000Color0: (ENV - TEXEL1) * TEXEL0 + TEXEL1
3959         Color1: (SHADE - 0) * COMBINED + 0
3960         Alpha0: (0 - 0) * 0 + TEXEL0
3961         Alpha1: (0 - 0) * 0 + COMBINED
3962         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
3963         */
3964
3965
3966     {
3967         {0x04030407, 0x03000000, 0x00020006, 0x02000000}, // Simplified mux
3968             0x0050FE04, 0x3FFDF3F8,     // 64bit Mux
3969             2,  // number of stages
3970             ENABLE_BOTH,
3971             MUX_PRIM,       // Constant color
3972             0x00000000, 0x00000000, 0,  // Shade and specular color flags
3973             {0x00000000, 0x00000007}, // constant color texture flags
3974         {
3975             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
3976             {LERP(T1,PRI,CUR), SKIP, 1, true},  // Stage 1
3977         }
3978     },
3979
3980         /*
3981         //Mux=0x00209a04ffcfffc8    Overflowed in HSV ADVENTURE RACING
3982         Color0: (TEXEL1 - 0) * TEXEL0 + 0
3983         Color1: (COMBINED - 0) * SHADE + 0
3984         Alpha0: (TEXEL0 - 0) * ENV + 0
3985         Alpha1: (1 - TEXEL0) * PRIM + COMBINED
3986
3987
3988         //Simplied Mux=0x00209a04ffcfffc8   Overflowed in HSV ADVENTURE RACING
3989         Simplied DWORDs=00060004, 00070003, 00020003, 02060083Color0: (TEXEL1 - 0) * SHADE + 0
3990         Color1: (TEXEL0 - 0) * COMBINED + 0
3991         Alpha0: (TEXEL0 - 0) * ENV + 0
3992         Alpha1: (TEXEL0|C - 0) * SHADE + COMBINED
3993         Simplfied type: CM_FMT_TYPE5_A_MOD_C_ADD_DGenerated combiners:
3994         */
3995
3996
3997     {
3998         {0x00060004, 0x00070003, 0x00020003, 0x02060083}, // Simplified mux
3999             0x00209A04, 0xFFCFFFC8,     // 64bit Mux
4000             2,  // number of stages
4001             ENABLE_BOTH,
4002             MUX_ENV,        // Constant color
4003             0x00000000, 0x00000005, 0,  // Shade and specular color flags
4004             {0x00000000, 0x00000000}, // constant color texture flags
4005         {
4006             {MOD(T0,DIF), MOD(T0,ENV), 0, true},    // Stage 0
4007             {MOD(T1,CUR), MULADD(T0C,DIF,CUR), 1, true},    // Stage 1
4008         }
4009     },
4010
4011         /*
4012         //Mux=0x00ffa1ffff12123f    Overflowed in HSV ADVENTURE RACING
4013         Color0: (0 - 0) * 0 + SHADE
4014         Color1: (0 - 0) * 0 + COMBINED
4015         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
4016         Alpha1: (COMBINED - 0) * SHADE + 0
4017
4018
4019         //Simplied Mux=0x00ffa1ffff12123f   Overflowed in HSV ADVENTURE RACING
4020         Simplied DWORDs=06000000, 03060304, 02000000, 00020006Color0: (0 - 0) * 0 + SHADE
4021         Color1: (0 - 0) * 0 + COMBINED
4022         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
4023         Alpha1: (SHADE - 0) * COMBINED + 0
4024         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4025         */
4026
4027
4028     {
4029         {0x06000000, 0x03060304, 0x02000000, 0x00020006}, // Simplified mux
4030             0x00FFA1FF, 0xFF12123F,     // 64bit Mux
4031             2,  // number of stages
4032             ENABLE_BOTH,
4033             MUX_ENV,        // Constant color
4034             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4035             {0x00000000, 0x00000000}, // constant color texture flags
4036         {
4037             {SEL(DIF), SEL(T0), 0, true},   // Stage 0
4038             {SKIP, LERP(T1,T0,DIF), 1, true},   // Stage 1
4039         }
4040     },
4041
4042         /*
4043         //Mux=0x0020980a14fcff38    Overflowed in HSV ADVENTURE RACING
4044         Color0: (TEXEL1 - TEXEL0) * TEXEL0 + TEXEL0
4045         Color1: (COMBINED - SHADE) * PRIM|A + SHADE
4046         Alpha0: (TEXEL0 - 0) * SHADE + 0
4047         Alpha1: (0 - 0) * 0 + COMBINED
4048
4049
4050         //Simplied Mux=0x0020980a14fcff38   Overflowed in HSV ADVENTURE RACING
4051         Simplied DWORDs=03030304, 00060003, 06450602, 02000000Color0: (TEXEL1 - TEXEL0) * TEXEL0 + TEXEL0
4052         Color1: (COMBINED - SHADE) * PRIM|A + SHADE
4053         Alpha0: (TEXEL0 - 0) * SHADE + 0
4054         Alpha1: (0 - 0) * 0 + COMBINED
4055         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4056         */
4057
4058
4059     {
4060         {0x03030304, 0x00060003, 0x06450602, 0x02000000}, // Simplified mux
4061             0x0020980A, 0x14FCFF38,     // 64bit Mux
4062             2,  // number of stages
4063             ENABLE_BOTH,
4064             MUX_PRIM,       // Constant color
4065             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4066             {0x00000000, 0x00000000}, // constant color texture flags
4067         {
4068             {MULADD(T0,PRIA,DIF), MOD(T0,DIF), 0, true},    // Stage 0
4069             {LERP(T1,T0,CUR), SKIP, 1, true},   // Stage 1
4070         }
4071     },
4072
4073         /*
4074         //Mux=0x00247ec0f2fffebe    Overflowed in HSV ADVENTURE RACING
4075         Color0: (TEXEL1 - 0) * TEXEL0|A + 0
4076         Color1: (1 - TEXEL1) * COMBINED + TEXEL1
4077         Alpha0: (0 - 0) * 0 + 0
4078         Alpha1: (0 - 0) * 0 + 1
4079
4080
4081         //Simplied Mux=0x00247ec0f2fffebe   Overflowed in HSV ADVENTURE RACING
4082         Simplied DWORDs=00430004, 01000000, 03020301, 02000000Color0: (TEXEL1 - 0) * TEXEL0|A + 0
4083         Color1: (1 - TEXEL0) * COMBINED + TEXEL0
4084         Alpha0: (0 - 0) * 0 + 1
4085         Alpha1: (0 - 0) * 0 + COMBINED
4086         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4087         */
4088
4089
4090     {
4091         {0x00430004, 0x01000000, 0x03020301, 0x02000000}, // Simplified mux
4092             0x00247EC0, 0xF2FFFEBE,     // 64bit Mux
4093             2,  // number of stages
4094             DISABLE_ALPHA,
4095             0,      // Constant color
4096             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4097             {0x00000000, 0x00000000}, // constant color texture flags
4098         {
4099             {SEL(T0), SKIP, 0, true},   // Stage 0
4100             {MULADD(T1C,CUR,T1), SKIP, 1, true},    // Stage 1
4101         }
4102     },
4103
4104         /*
4105         //Mux=0x0020fe0411fd7ebe    Overflowed in HSV ADVENTURE RACING
4106         Color0: (TEXEL1 - TEXEL0) * TEXEL0 + TEXEL1
4107         Color1: (COMBINED - TEXEL0) * SHADE + TEXEL1
4108         Alpha0: (0 - 0) * 0 + 0
4109         Alpha1: (0 - 0) * 0 + 1
4110
4111
4112         //Simplied Mux=0x0020fe0411fd7ebe   Overflowed in HSV ADVENTURE RACING
4113         Simplied DWORDs=04030304, 01000000, 03060302, 02000000Color0: (TEXEL1 - TEXEL0) * TEXEL0 + TEXEL1
4114         Color1: (COMBINED - TEXEL0) * SHADE + TEXEL0
4115         Alpha0: (0 - 0) * 0 + 1
4116         Alpha1: (0 - 0) * 0 + COMBINED
4117         Simplfied type: Color0Generated combiners:
4118         */
4119
4120
4121     {
4122         {0x04030304, 0x01000000, 0x03060302, 0x02000000}, // Simplified mux
4123             0x0020FE04, 0x11FD7EBE,     // 64bit Mux
4124             2,  // number of stages
4125             DISABLE_ALPHA,
4126             0,      // Constant color
4127             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4128             {0x00000000, 0x00000000}, // constant color texture flags
4129         {
4130             {MOD(T0,DIF), SKIP, 0, true},   // Stage 0
4131             {MOD(T1,CUR), SKIP, 1, true},   // Stage 1
4132         }
4133     },
4134
4135         /*
4136         //Mux=0x00111480f513ff7f    Overflowed in HSV ADVENTURE RACING
4137         Color0: (TEXEL0 - 0) * TEXEL1 + 0
4138         Color1: (SHADE - ENV) * COMBINED + ENV
4139         Alpha0: (TEXEL0 - 0) * TEXEL1 + 0
4140         Alpha1: (COMBINED - 0) * SHADE + 0
4141
4142
4143         //Simplied Mux=0x00111480f513ff7f   Overflowed in HSV ADVENTURE RACING
4144         Simplied DWORDs=00040003, 00060003, 07020706, 00020004Color0: (TEXEL0 - 0) * TEXEL1 + 0
4145         Color1: (SHADE - ENV) * COMBINED + ENV
4146         Alpha0: (TEXEL0 - 0) * SHADE + 0
4147         Alpha1: (TEXEL1 - 0) * COMBINED + 0
4148         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4149         */
4150
4151
4152     {
4153         {0x00040003, 0x00060003, 0x07020706, 0x00020004}, // Simplified mux
4154             0x00111480, 0xF513FF7F,     // 64bit Mux
4155             2,  // number of stages
4156             ENABLE_BOTH,
4157             MUX_ENV,        // Constant color
4158             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4159             {0x00000000, 0x00000000}, // constant color texture flags
4160         {
4161             {LERP(DIF,ENV,T0), MOD(T0,DIF), 0, true},   // Stage 0
4162             {MOD(T1,CUR), MOD(T1,CUR), 1, true},    // Stage 1
4163         }
4164     },
4165
4166         /*
4167         //Mux=0x00117e042ffd79f8    Overflowed in HSV ADVENTURE RACING
4168         Color0: (TEXEL0 - TEXEL1) * TEXEL1 + TEXEL1
4169         Color1: (COMBINED - 0) * SHADE + 0
4170         Alpha0: (0 - 0) * 0 + SHADE
4171         Alpha1: (0 - 0) * 0 + COMBINED
4172
4173
4174         //Simplied Mux=0x00117e042ffd79f8   Overflowed in HSV ADVENTURE RACING
4175         Simplied DWORDs=04040403, 06000000, 00020006, 02000000Color0: (TEXEL0 - TEXEL1) * TEXEL1 + TEXEL1
4176         Color1: (SHADE - 0) * COMBINED + 0
4177         Alpha0: (0 - 0) * 0 + SHADE
4178         Alpha1: (0 - 0) * 0 + COMBINED
4179         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4180         */
4181
4182
4183     {
4184         {0x04040403, 0x06000000, 0x00020006, 0x02000000}, // Simplified mux
4185             0x00117E04, 0x2FFD79F8,     // 64bit Mux
4186             2,  // number of stages
4187             ENABLE_BOTH,
4188             0,      // Constant color
4189             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4190             {0x00000000, 0x00000000}, // constant color texture flags
4191         {
4192             {MOD(T0,DIF), SEL(DIF), 0, true},   // Stage 0
4193             {MOD(T1,CUR), SKIP, 1, true},   // Stage 1
4194         }
4195     },
4196
4197         /*
4198         //Mux=0x00257e041ffcf3f8    Overflowed in G.A.S.P!!Fighters'NE
4199         Color0: (TEXEL1 - TEXEL0) * PRIM|A + TEXEL0
4200         Color1: (COMBINED - 0) * SHADE + 0
4201         Alpha0: (0 - 0) * 0 + TEXEL0
4202         Alpha1: (0 - 0) * 0 + COMBINED
4203
4204
4205         //Simplied Mux=0x00257e041ffcf3f8   Overflowed in G.A.S.P!!Fighters'NE
4206         Simplied DWORDs=03460304, 03000000, 00020006, 02000000
4207         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
4208         Color1: (SHADE - 0) * COMBINED + 0
4209         Alpha0: (0 - 0) * 0 + TEXEL0
4210         Alpha1: (0 - 0) * 0 + COMBINED
4211         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4212         */
4213
4214
4215     {
4216         {0x03460304, 0x03000000, 0x00020006, 0x02000000}, // Simplified mux
4217             0x00257E04, 0x1FFCF3F8,     // 64bit Mux
4218             2,  // number of stages
4219             ENABLE_BOTH,
4220             MUX_PRIM,       // Constant color
4221             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4222             {0x00000000, 0x00000000}, // constant color texture flags
4223         {
4224             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
4225             {LERP(T1,CUR,PRI), SKIP, 1, true},  // Stage 1
4226         }
4227     },
4228
4229         /*
4230         //Mux=0x00ff9480fffcfff8    Overflowed in G.A.S.P!!Fighters'NE
4231         Color0: (0 - 0) * 0 + TEXEL0
4232         Color1: (SHADE - 0) * COMBINED + 0
4233         Alpha0: (TEXEL0 - 0) * TEXEL1 + 0
4234         Alpha1: (0 - 0) * 0 + COMBINED
4235
4236
4237         //Simplied Mux=0x00ff9480fffcfff8   Overflowed in G.A.S.P!!Fighters'NE
4238         Simplied DWORDs=00060003, 04000000, 02000000, 00020003
4239         Color0: (TEXEL0 - 0) * SHADE + 0
4240         Color1: (0 - 0) * 0 + COMBINED
4241         Alpha0: (0 - 0) * 0 + TEXEL1
4242         Alpha1: (TEXEL0 - 0) * COMBINED + 0
4243         Simplfied type: CM_FMT_TYPE2_A_ADD_DGenerated combiners:
4244         */
4245
4246
4247     {
4248         {0x00060003, 0x04000000, 0x02000000, 0x00020003}, // Simplified mux
4249             0, 0,       // 64bit Mux
4250             2,  // number of stages
4251             ENABLE_BOTH,
4252             0,      // Constant color
4253             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4254             {0x00000000, 0x00000000}, // constant color texture flags
4255         {
4256             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
4257             {SKIP, MOD(T1,CUR), 1, true},   // Stage 1
4258         }
4259     },
4260
4261         /*
4262         //Mux=0x00612680fffcf3f8    Overflowed in G.A.S.P!!Fighters'NE
4263         Color0: (1 - 0) * TEXEL1 + TEXEL0
4264         Color1: (SHADE - 0) * COMBINED + 0
4265         Alpha0: (TEXEL1 - 0) * PRIM + TEXEL0
4266         Alpha1: (0 - 0) * 0 + COMBINED
4267
4268
4269         //Simplied Mux=0x00612680fffcf3f8   Overflowed in G.A.S.P!!Fighters'NE
4270         Simplied DWORDs=03010004, 00060004, 00020006, 02010003Color0: (TEXEL1 - 0) * 1 + TEXEL0
4271         Color1: (SHADE - 0) * COMBINED + 0
4272         Alpha0: (TEXEL1 - 0) * SHADE + 0
4273         Alpha1: (TEXEL0 - 0) * 1 + COMBINED
4274         Simplfied type: CM_FMT_TYPE5_A_MOD_C_ADD_DGenerated combiners:
4275         */
4276
4277
4278     {
4279         {0x03010004, 0x00060004, 0x00020006, 0x02010003}, // Simplified mux
4280             0x00612680, 0xFFFCF3F8,     // 64bit Mux
4281             2,  // number of stages
4282             ENABLE_BOTH,
4283             MUX_PRIM,       // Constant color
4284             0x00000000, 0x00000005, 0,  // Shade and specular color flags
4285             {0x00000000, 0x00000000}, // constant color texture flags
4286         {
4287             {MOD(T1,DIF), MOD(T1,PRI), 1, true},    // Stage 0
4288             {MOD(T0,CUR), ADD(T0,CUR), 0, true},    // Stage 1
4289         }
4290     },
4291
4292         /*
4293         //Mux=0x0026a06015fc9378    Overflowed in FIFA Soccer 64
4294         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
4295         Color1: (PRIM - ENV) * COMBINED + ENV
4296         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
4297         Alpha1: (0 - 0) * 0 + COMBINED
4298
4299
4300         //Simplied Mux=0x0026a06015fc9378   Overflowed in FIFA Soccer 64
4301         Simplied DWORDs=030E0304, 03060304, 06020605, 02000000Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
4302         Color1: (PRIM - SHADE) * COMBINED + SHADE
4303         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
4304         Alpha1: (0 - 0) * 0 + COMBINED
4305         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4306         */
4307
4308
4309     {
4310         {0x030E0304, 0x03060304, 0x06020605, 0x02000000}, // Simplified mux
4311             0x0026A060, 0x15FC9378,     // 64bit Mux
4312             2,  // number of stages
4313             ENABLE_BOTH,
4314             MUX_LODFRAC,        // Constant color
4315             0x00000005, 0x00000007, 0,  // Shade and specular color flags
4316             {0x00000000, 0x00000000}, // constant color texture flags
4317         {
4318             {LERP(DIF,DIFA,T0), SEL(T0), 0, true},  // Stage 0
4319             {LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
4320         }
4321     },
4322
4323         /*
4324         //Mux=0x0026a0041ffc93fe    Overflowed in Taz Express
4325         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
4326         Color1: (COMBINED - 0) * SHADE + 0
4327         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
4328         Alpha1: (0 - 0) * 0 + 1
4329
4330
4331         //Simplied Mux=0x0026a0041ffc93fe   Overflowed in Taz Express
4332         Simplied DWORDs=030E0304, 01000000, 00020006, 02000000
4333         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
4334         Color1: (SHADE - 0) * COMBINED + 0
4335         Alpha0: (0 - 0) * 0 + 1
4336         Alpha1: (0 - 0) * 0 + COMBINED
4337         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4338         */
4339
4340
4341     {
4342         {0x030E0304, 0x01000000, 0x00020006, 0x02000000}, // Simplified mux
4343             0x0026A004, 0x1FFC93FE,     // 64bit Mux
4344             2,  // number of stages
4345             ENABLE_BOTH,
4346             MUX_LODFRAC,        // Constant color
4347             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4348             {0x00000000, 0x00000000}, // constant color texture flags
4349         {
4350             {MOD(T0,DIF), SEL(T0), 0, true},    // Stage 0
4351             {LERP(T1,CUR,LODFRAC), LERP(T1,CUR,LODFRAC), 1, true},  // Stage 1
4352         }
4353     },
4354         /*
4355         //Mux=0x003716041ffcfff8    Overflowed in GAUNTLET LEGENDS
4356         Color0: (PRIM - TEXEL0) * PRIMLODFRAC + TEXEL0
4357         Color1: (COMBINED - 0) * SHADE + 0
4358         Alpha0: (TEXEL0 - 0) * PRIM + 0
4359         Alpha1: (0 - 0) * 0 + COMBINED
4360
4361
4362         //Simplied Mux=0x003716041ffcfff8   Overflowed in GAUNTLET LEGENDS
4363         Simplied DWORDs=030F0304, 04000000, 00020006, 00020003
4364         Color0: (TEXEL1 - TEXEL0) * PRIMLODFRAC + TEXEL0
4365         Color1: (SHADE - 0) * COMBINED + 0
4366         Alpha0: (0 - 0) * 0 + TEXEL1
4367         Alpha1: (TEXEL0 - 0) * COMBINED + 0
4368         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4369         */
4370
4371
4372     {
4373         {0x030F0304, 0x04000000, 0x00020006, 0x00020003}, // Simplified mux
4374             0x00371604, 0x1FFCFFF8,     // 64bit Mux
4375             2,  // number of stages
4376             ENABLE_BOTH,
4377             MUX_PRIMLODFRAC,        // Constant color
4378             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4379             {0x00000000, 0x00000005}, // constant color texture flags
4380         {
4381             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
4382             {LERP(T1,CUR,PRIMLODFRAC), SKIP, 1, true},  // Stage 1
4383         }
4384     },
4385         /*
4386         //Mux=0x00157e602ffd77f8    Overflowed in MarioTennis
4387         Color0: (TEXEL0 - TEXEL1) * PRIM|A + TEXEL1
4388         Color1: (PRIM - 0) * COMBINED + 0
4389         Alpha0: (0 - 0) * 0 + PRIM
4390         Alpha1: (0 - 0) * 0 + COMBINED
4391
4392
4393         //Simplied Mux=0x00157e602ffd77f8   Overflowed in MarioTennis
4394         Simplied DWORDs=04460403, 06000000, 00020006, 02000000
4395         Color0: (TEXEL0 - TEXEL1) * SHADE|A + TEXEL1
4396         Color1: (SHADE - 0) * COMBINED + 0
4397         Alpha0: (0 - 0) * 0 + SHADE
4398         Alpha1: (0 - 0) * 0 + COMBINED
4399         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4400         */
4401
4402
4403     {
4404         {0x04460403, 0x06000000, 0x00020006, 0x02000000}, // Simplified mux
4405             0x00157E60, 0x2FFD77F8,     // 64bit Mux
4406             2,  // number of stages
4407             ENABLE_BOTH,
4408             MUX_PRIM,       // Constant color
4409             0x00000005, 0x00000005, 0,  // Shade and specular color flags
4410             {0x00000000, 0x00000000}, // constant color texture flags
4411         {
4412             {MOD(T0,DIF), SEL(DIF), 0, true},   // Stage 0
4413             {LERP(T1,CUR,DIFA), SKIP, 1, true}, // Stage 1
4414         }
4415     },
4416         /*
4417         //Mux=0x00157e6025fd7778    Overflowed in MarioTennis
4418         Color0: (TEXEL0 - TEXEL1) * PRIM|A + TEXEL1
4419         Color1: (PRIM - ENV) * COMBINED + ENV
4420         Alpha0: (0 - 0) * 0 + PRIM
4421         Alpha1: (0 - 0) * 0 + COMBINED
4422
4423
4424         //Simplied Mux=0x00157e6025fd7778   Overflowed in MarioTennis
4425         Simplied DWORDs=04460403, 06000000, 06020605, 02000000
4426         Color0: (TEXEL0 - TEXEL1) * SHADE|A + TEXEL1
4427         Color1: (PRIM - SHADE) * COMBINED + SHADE
4428         Alpha0: (0 - 0) * 0 + SHADE
4429         Alpha1: (0 - 0) * 0 + COMBINED
4430         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4431         */
4432
4433
4434     {
4435         {0x04460403, 0x06000000, 0x06020605, 0x02000000}, // Simplified mux
4436             0x00157E60, 0x25FD7778,     // 64bit Mux
4437             2,  // number of stages
4438             ENABLE_BOTH,
4439             MUX_PRIM,       // Constant color
4440             0x000000007, 0x00000000, 0, // Shade and specular color flags
4441             {0x00000000, 0x00000000}, // constant color texture flags
4442         {
4443             {LERP(PRI,DIF,T0), SEL(DIF), 0, true},  // Stage 0
4444             {LERP(CUR,T1,DIFA), SKIP, 1, true}, // Stage 1
4445         }
4446     },
4447
4448         /*
4449         //Mux=0x00fffe80f514f8ff    Overflowed in CONKER BFD
4450         Color0: (0 - 0) * 0 + TEXEL0
4451         Color1: (SHADE - ENV) * COMBINED + PRIM
4452         Alpha0: (0 - 0) * 0 + SHADE
4453         Alpha1: (COMBINED - 0) * ENV + 0
4454         */
4455
4456     {
4457         {0x00030706, 0x06000000, 0x02010004, 0x02000000}, // Simplified mux
4458             0x00FFFE80, 0xF514F8FF,     // 64bit Mux
4459             2,  // number of stages
4460             ENABLE_BOTH,
4461             MUX_PRIM,       // Constant color
4462             0x00000706, 0x00070006, 0,  // Shade and specular color flags
4463             {0x00000000, 0x00000000}, // constant color texture flags
4464         {
4465             {MOD(T0,DIF), SEL(DIF), 0, true},   // Stage 0
4466             {ADD(PRI,CUR), SKIP, 0, false}, // Stage 1
4467         }
4468     },
4469
4470         /*
4471         //Mux=0x0017166035fcff78    Overflowed in THE LEGEND OF ZELDA
4472         Color0: (TEXEL0 - PRIM) * PRIMLODFRAC + TEXEL0
4473         Color1: (PRIM - ENV) * COMBINED + ENV
4474         Alpha0: (TEXEL0 - 0) * PRIM + 0
4475         Alpha1: (0 - 0) * 0 + COMBINED
4476
4477
4478         //Simplied Mux=0x0017166035fcff78   Overflowed in THE LEGEND OF ZELDA
4479         Simplied DWORDs=030F0603, 00060003, 04020406, 02000000
4480         Color0: (TEXEL0 - SHADE) * PRIMLODFRAC + TEXEL0
4481         Color1: (SHADE - TEXEL1) * COMBINED + TEXEL1
4482         Alpha0: (TEXEL0 - 0) * SHADE + 0
4483         Alpha1: (0 - 0) * 0 + COMBINED
4484         Simplfied type: Color0Generated combiners:
4485         */
4486
4487     {
4488         {0x030F0603, 0x00060003, 0x04020406, 0x02000000}, // Simplified mux
4489             0x00171660, 0x35FCFF78,     // 64bit Mux
4490             2,  // number of stages
4491             ENABLE_BOTH,
4492             MUX_PRIMLODFRAC,        // Constant color
4493             0x00000005, 0x00000005, 0,  // Shade and specular color flags
4494             {0x00000000, 0x00000007}, // constant color texture flags
4495         {
4496             {LERP(T0,DIF,PRIMLODFRAC), MOD(T0,DIF), 0, true},   // Stage 0
4497             {LERP(DIF,T1,CUR), SKIP, 1, true},  // Stage 1
4498         }
4499     },
4500
4501         /*
4502         //Mux=0x00262a041f1093ff    Overflowed in THE LEGEND OF ZELDA
4503         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
4504         Color1: (COMBINED - 0) * SHADE + 0
4505         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
4506         Alpha1: (COMBINED - 0) * SHADE + 0
4507
4508
4509         //Simplied Mux=0x00262a041f1093ff   Overflowed in THE LEGEND OF ZELDA
4510         Simplied DWORDs=03470304, 03070304, 00020006, 00020006
4511         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
4512         Color1: (SHADE - 0) * COMBINED + 0
4513         Alpha0: (TEXEL1 - TEXEL0) * ENV + TEXEL0
4514         Alpha1: (SHADE - 0) * COMBINED + 0
4515         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4516         */
4517
4518     {
4519         {0x03470304, 0x03070304, 0x00020006, 0x00020006}, // Simplified mux
4520             0x00262A04, 0x1F1093FF,     // 64bit Mux
4521             2,  // number of stages
4522             ENABLE_BOTH,
4523             MUX_ENV,        // Constant color
4524             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4525             {0x00000000, 0x00000000}, // constant color texture flags
4526         {
4527             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
4528             {LERP(T1,CUR,ENVA), LERP(T1,CUR,ENV), 1, true}, // Stage 1
4529         }
4530     },
4531
4532         /*
4533         //Mux=0x00267e051ffcfdf8    Overflowed in THE LEGEND OF ZELDA
4534         Color0: (TEXEL1 - TEXEL0) * ENV|A + TEXEL0
4535         Color1: (COMBINED - 0) * ENV + 0
4536         Alpha0: (0 - 0) * 0 + 1
4537         Alpha1: (0 - 0) * 0 + COMBINED
4538
4539
4540         //Simplied Mux=0x00267e051ffcfdf8   Overflowed in THE LEGEND OF ZELDA
4541         Simplied DWORDs=03460304, 01000000, 00020006, 02000000
4542         Color0: (TEXEL1 - TEXEL0) * SHADE|A + TEXEL0
4543         Color1: (SHADE - 0) * COMBINED + 0
4544         Alpha0: (0 - 0) * 0 + 1
4545         Alpha1: (0 - 0) * 0 + COMBINED
4546         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4547         */
4548
4549
4550     {
4551         {0x03460304, 0x01000000, 0x00020006, 0x02000000}, // Simplified mux
4552             0x00267E05, 0x1FFCFDF8,     // 64bit Mux
4553             2,  // number of stages
4554             DISABLE_ALPHA,
4555             MUX_ENV,        // Constant color
4556             0x00000007, 0x00000007, 0,  // Shade and specular color flags
4557             {0x00000000, 0x00000000}, // constant color texture flags
4558         {
4559             {MOD(T0,ENV), SKIP, 0, true},   // Stage 0
4560             {LERP(T1,CUR,ENVA), SKIP, 1, true}, // Stage 1
4561         }
4562     },
4563
4564         /*
4565         //Mux=0x0026a0041f1093fb    Overflowed in GOLDENEYE
4566         Color0: (TEXEL1 - TEXEL0) * LODFRAC + TEXEL0
4567         Color1: (COMBINED - 0) * SHADE + 0
4568         Alpha0: (TEXEL1 - TEXEL0) * COMBINED + TEXEL0
4569         Alpha1: (COMBINED - 0) * SHADE + PRIM
4570
4571
4572         //Simplied Mux=0x0026a0041f1093fb   Overflowed in GOLDENEYE
4573         Simplied DWORDs=00060003, 03060304, 02000000, 05020006
4574         Color0: (TEXEL0 - 0) * SHADE + 0
4575         Color1: (0 - 0) * 0 + COMBINED
4576         Alpha0: (TEXEL1 - TEXEL0) * SHADE + TEXEL0
4577         Alpha1: (SHADE - 0) * COMBINED + PRIM
4578         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4579         */
4580
4581
4582     {
4583         {0x00060003, 0x03060304, 0x02000000, 0x05020006}, // Simplified mux
4584             0x0026A004, 0x1F1093FB,     // 64bit Mux
4585             2,  // number of stages
4586             ENABLE_BOTH,
4587             MUX_PRIM,       // Constant color
4588             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4589             {0x00000000, 0x00000000}, // constant color texture flags
4590         {
4591             {MOD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
4592             {SKIP, ADD(CUR,PRI), 0, false}, // Stage 1
4593         }
4594     },
4595
4596         /*
4597         //Mux=0x0017666025fd7f78    Overflowed in POKEMON STADIUM 2
4598         Color0: (TEXEL0 - TEXEL1) * PRIMLODFRAC + TEXEL1
4599         Color1: (PRIM - ENV) * COMBINED + ENV
4600         Alpha0: (1 - 0) * PRIM + 0
4601         Alpha1: (0 - 0) * 0 + COMBINED
4602
4603
4604         //Simplied Mux=0x0017666025fd7f78   Overflowed in POKEMON STADIUM 2
4605         Simplied DWORDs=040F0403, 06000000, 06020605, 02000000
4606         Color0: (TEXEL0 - TEXEL1) * PRIMLODFRAC + TEXEL1
4607         Color1: (PRIM - SHADE) * COMBINED + SHADE
4608         Alpha0: (0 - 0) * 0 + SHADE
4609         Alpha1: (0 - 0) * 0 + COMBINED
4610         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4611         */
4612
4613     {
4614         {0x040F0403, 0x06000000, 0x06020605, 0x02000000}, // Simplified mux
4615             0x00176660, 0x25FD7F78,     // 64bit Mux
4616             2,  // number of stages
4617             ENABLE_BOTH,
4618             MUX_ENV,        // Constant color
4619             0x00000000, 0x00000005, 0,  // Shade and specular color flags
4620             {0x00000000, 0x00000000}, // constant color texture flags
4621         {
4622             {LERP(DIF,ENV,T0), SEL(DIF), 0, true},  // Stage 0
4623             {SKIP, SKIP, 0, false}, // Stage 1
4624         }
4625     },
4626
4627         /*
4628         //Mux=0x0077666045fd7f78    Overflowed in POKEMON STADIUM 2
4629         Color0: (COMBALPHA - SHADE) * PRIMLODFRAC + TEXEL1
4630         Color1: (PRIM - ENV) * COMBINED + ENV
4631         Alpha0: (1 - 0) * PRIM + 0
4632         Alpha1: (0 - 0) * 0 + COMBINED
4633
4634
4635         //Simplied Mux=0x0077666045fd7f78   Overflowed in POKEMON STADIUM 2
4636         Simplied DWORDs=040F0608, 03000000, 07020703, 02000000
4637         Color0: (COMBALPHA - SHADE) * PRIMLODFRAC + TEXEL1
4638         Color1: (TEXEL0 - ENV) * COMBINED + ENV
4639         Alpha0: (0 - 0) * 0 + TEXEL0
4640         Alpha1: (0 - 0) * 0 + COMBINED
4641         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDShade = 000F0608 in color channelGenerated combiners:
4642         */
4643
4644     {
4645         {0x040F0608, 0x03000000, 0x07020703, 0x02000000}, // Simplified mux
4646             0x00776660, 0x45FD7F78,     // 64bit Mux
4647             2,  // number of stages
4648             ENABLE_BOTH,
4649             MUX_ENV,        // Constant color
4650             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4651             {0x00000005, 0x00000000}, // constant color texture flags
4652         {
4653             {MOD(T1,DIF), SKIP, 1, true},   // Stage 0
4654             {LERP(T1,ENV,CUR), SEL(T0), 0, true},   // Stage 1
4655         }
4656     },
4657
4658         /*
4659         //Mux=0x00457fff3ffcfe3f    Overflowed in POKEMON STADIUM 2
4660         Color0: (SHADE - PRIM) * PRIM|A + TEXEL0
4661         Color1: (0 - 0) * 0 + COMBINED
4662         Alpha0: (0 - 0) * 0 + 0
4663         Alpha1: (0 - 0) * 0 + 0
4664
4665
4666         //Simplied Mux=0x00457fff3ffcfe3f   Overflowed in POKEMON STADIUM 2
4667         Simplied DWORDs=00460506, 00000000, 02010003, 02000000
4668         Color0: (SHADE - PRIM) * SHADE|A + 0
4669         Color1: (TEXEL0 - 0) * 1 + COMBINED
4670         Alpha0: (0 - 0) * 0 + 0
4671         Alpha1: (0 - 0) * 0 + COMBINED
4672         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDShade = 00460506 in color channelGenerated combiners:
4673         */
4674
4675     {
4676         {0x00460506, 0x00000000, 0x02010003, 0x02000000}, // Simplified mux
4677             0x00457FFF, 0x3FFCFE3F,     // 64bit Mux
4678             2,  // number of stages
4679             DISABLE_ALPHA,
4680             MUX_PRIM,       // Constant color
4681             0x00000000, 0x00000000, 0,  // Shade and specular color flags
4682             {0x00000000, 0x00000000}, // constant color texture flags
4683         {
4684             {SUB(DIF,PRI), SKIP, 0, false}, // Stage 0
4685             {MULADD(CUR,PRIA,T0), SKIP, 0, true},   // Stage 1
4686         }
4687     },
4688
4689         /*
4690         //Mux=0x00272c603510e37f    Overflowed in POKEMON STADIUM 2
4691         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
4692         Color1: (PRIM - ENV) * COMBINED + ENV
4693         Alpha0: (TEXEL1 - 1) * 1 + TEXEL0
4694         Alpha1: (COMBINED - 0) * SHADE + 0
4695
4696
4697         //Simplied Mux=0x00272c603510e37f   Overflowed in POKEMON STADIUM 2
4698         Simplied DWORDs=030F0604, 00060003, 07020706, 02000000
4699         Color0: (TEXEL1 - SHADE) * PRIMLODFRAC + TEXEL0
4700         Color1: (SHADE - ENV) * COMBINED + ENV
4701         Alpha0: (TEXEL0 - 0) * SHADE + 0
4702         Alpha1: (0 - 0) * 0 + COMBINED
4703         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
4704         */
4705
4706     {
4707         {0x030F0604, 0x00060003, 0x07020706, 0x02000000}, // Simplified mux
4708             0x00272C60, 0x3510E37F,     // 64bit Mux
4709             2,  // number of stages
4710             ENABLE_BOTH,
4711             MUX_ENV,        // Constant color
4712             0x00000005, 0x00000000, 0,  // Shade and specular color flags
4713             {0x00000000, 0x00000000}, // constant color texture flags
4714         {
4715             {LERP(DIF,ENV,T0), MOD(T0,DIF), 0, true},   // Stage 0
4716             {SKIP, MULADD(T1,DIF,CUR), 1, true},    // Stage 1
4717         }
4718     },
4719
4720         /*
4721         //Mux=0x0025a660f510f37f    Overflowed in POKEMON STADIUM 2
4722         Color0: (TEXEL1 - 0) * SHADE|A + TEXEL0
4723         Color1: (PRIM - ENV) * COMBINED + ENV
4724         Alpha0: (TEXEL1 - 0) * PRIM + TEXEL0
4725         Alpha1: (COMBINED - 0) * SHADE + 0
4726
4727
4728         //Simplied Mux=0x0025a660f510f37f   Overflowed in POKEMON STADIUM 2
4729         Simplied DWORDs=03460004, 03050004, 07020705, 00020006
4730         Color0: (TEXEL1 - 0) * SHADE|A + TEXEL0
4731         Color1: (PRIM - ENV) * COMBINED + ENV
4732         Alpha0: (TEXEL1 - 0) * PRIM + TEXEL0
4733         Alpha1: (SHADE - 0) * COMBINED + 0
4734         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4735         */
4736
4737     {
4738         {0x03460004, 0x03050004, 0x07020705, 0x00020006}, // Simplified mux
4739             0x0025A660, 0xF510F37F,     // 64bit Mux
4740             2,  // number of stages
4741             ENABLE_BOTH,
4742             MUX_ENV,        // Constant color
4743             0x00000005, 0x00000000, 0,  // Shade and specular color flags
4744             {0x00000000, 0x00000000}, // constant color texture flags
4745         {
4746             {LERP(DIF,ENV,T0), MOD(T0,DIF), 0, true},   // Stage 0
4747             {MULADD(T1,DIFA,CUR), MULADD(T1,DIF,CUR), 1, true}, // Stage 1
4748         }
4749     },
4750
4751         /*
4752         //Mux=0x00171607f511a97f    Overflowed in POKEMON STADIUM 2
4753         Color0: (TEXEL0 - 0) * PRIMLODFRAC + PRIM
4754         Color1: (COMBINED - ENV) * COMBINED|A + ENV
4755         Alpha0: (TEXEL0 - TEXEL1) * PRIM + SHADE
4756         Alpha1: (COMBINED - 0) * SHADE + 0
4757
4758
4759         //Simplied Mux=0x00171607f511a97f   Overflowed in POKEMON STADIUM 2
4760         Simplied DWORDs=050F0003, 06050403, 06420602, 00020006
4761         Color0: (TEXEL0 - 0) * PRIMLODFRAC + PRIM
4762         Color1: (COMBINED - SHADE) * COMBINED|A + SHADE
4763         Alpha0: (TEXEL0 - TEXEL1) * PRIM + SHADE
4764         Alpha1: (SHADE - 0) * COMBINED + 0
4765         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
4766         */
4767
4768     {
4769         {0x050F0003, 0x06050403, 0x06420602, 0x00020006}, // Simplified mux
4770             0x00171607, 0xF511A97F,     // 64bit Mux
4771             2,  // number of stages
4772             ENABLE_BOTH,
4773             MUX_ENV,        // Constant color
4774             0x00000005, 0x00000000, 0,  // Shade and specular color flags
4775             {0x00000000, 0x00000000}, // constant color texture flags
4776         {
4777             {ADD(T0,DIF), MOD(T0,DIF), 0, true},    // Stage 0
4778             {LERP(CUR,ENV,CURA), SUB(CUR,T1), 1, true}, // Stage 1
4779         }
4780     },
4781
4782         /*
4783         //Mux=0x00177e6025fd7378    Overflowed in POKEMON STADIUM 2
4784         Color0: (TEXEL0 - TEXEL1) * PRIMLODFRAC + TEXEL1
4785         Color1: (PRIM - ENV) * COMBINED + ENV
4786         Alpha0: (0 - 0) * 0 + TEXEL0
4787         Alpha1: (0 - 0) * 0 + COMBINED
4788
4789
4790         //Simplied Mux=0x00177e6025fd7378   Overflowed in POKEMON STADIUM 2
4791         Simplied DWORDs=040F0403, 03000000, 06020605, 02000000
4792         Color0: (TEXEL0 - TEXEL1) * PRIMLODFRAC + TEXEL1
4793         Color1: (PRIM - SHADE) * COMBINED + SHADE
4794         Alpha0: (0 - 0) * 0 + TEXEL0
4795         Alpha1: (0 - 0) * 0 + COMBINED
4796         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4797         */
4798
4799     {
4800         {0x040F0403, 0x03000000, 0x06020605, 0x02000000}, // Simplified mux
4801             0x00177E60, 0x25FD7378,     // 64bit Mux
4802             2,  // number of stages
4803             ENABLE_BOTH,
4804             MUX_ENV,        // Constant color
4805             0x00000005, 0x00000000, 0,  // Shade and specular color flags
4806             {0x00000000, 0x00000000}, // constant color texture flags
4807         {
4808             {LERP(DIF,ENV,T0), SEL(T0), 0, true},   // Stage 0
4809             {SKIP, SKIP, 0, true},  // Stage 1
4810         }
4811     },
4812
4813         /*
4814         //Mux=0x0017666025fd7f78    Overflowed in POKEMON STADIUM 2
4815         Color0: (TEXEL0 - TEXEL1) * PRIMLODFRAC + TEXEL1
4816         Color1: (PRIM - ENV) * COMBINED + ENV
4817         Alpha0: (1 - 0) * PRIM + 0
4818         Alpha1: (0 - 0) * 0 + COMBINED
4819
4820
4821         //Simplied Mux=0x0017666025fd7f78   Overflowed in POKEMON STADIUM 2
4822         Simplied DWORDs=040F0403, 06000000, 06020605, 02000000
4823         Color0: (TEXEL0 - TEXEL1) * PRIMLODFRAC + TEXEL1
4824         Color1: (PRIM - SHADE) * COMBINED + SHADE
4825         Alpha0: (0 - 0) * 0 + SHADE
4826         Alpha1: (0 - 0) * 0 + COMBINED
4827         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4828         */
4829
4830     {
4831         {0x040F0403, 0x06000000, 0x06020605, 0x02000000}, // Simplified mux
4832             0x00176660, 0x25FD7F78,     // 64bit Mux
4833             2,  // number of stages
4834             ENABLE_BOTH,
4835             MUX_PRIM,       // Constant color
4836             0x00000007, 0x00000005, 0,  // Shade and specular color flags
4837             {0x00000000, 0x00000000}, // constant color texture flags
4838         {
4839             {LERP(PRI,DIF,T0), SEL(PRI), 0, true},  // Stage 0
4840             {SKIP, SKIP, 0, false}, // Stage 1
4841         }
4842     },
4843
4844         /*
4845         //Mux=0x00177e6025fd7378    Overflowed in POKEMON STADIUM 2
4846         Color0: (TEXEL0 - TEXEL1) * PRIMLODFRAC + TEXEL1
4847         Color1: (PRIM - ENV) * COMBINED + ENV
4848         Alpha0: (0 - 0) * 0 + TEXEL0
4849         Alpha1: (0 - 0) * 0 + COMBINED
4850
4851
4852         //Simplied Mux=0x00177e6025fd7378   Overflowed in POKEMON STADIUM 2
4853         Simplied DWORDs=040F0403, 03000000, 06020605, 02000000
4854         Color0: (TEXEL0 - TEXEL1) * PRIMLODFRAC + TEXEL1
4855         Color1: (PRIM - SHADE) * COMBINED + SHADE
4856         Alpha0: (0 - 0) * 0 + TEXEL0
4857         Alpha1: (0 - 0) * 0 + COMBINED
4858         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4859         */
4860
4861     {
4862         {0x040F0403, 0x03000000, 0x06020605, 0x02000000}, // Simplified mux
4863             0x00177E60, 0x25FD7378,     // 64bit Mux
4864             2,  // number of stages
4865             ENABLE_BOTH,
4866             MUX_PRIM,       // Constant color
4867             0x00000007, 0x00000000, 0,  // Shade and specular color flags
4868             {0x00000000, 0x00000000}, // constant color texture flags
4869         {
4870             {LERP(PRI,DIF,T0), SEL(T0), 0, true},   // Stage 0
4871             {SKIP, SKIP, 0, false}, // Stage 1
4872         }
4873     },
4874
4875         /*
4876         //Mux=0x00457fff3ffcfe3f    Overflowed in POKEMON STADIUM 2
4877         Color0: (SHADE - PRIM) * PRIM|A + TEXEL0
4878         Color1: (0 - 0) * 0 + COMBINED
4879         Alpha0: (0 - 0) * 0 + 0
4880         Alpha1: (0 - 0) * 0 + 0
4881
4882
4883         //Simplied Mux=0x00457fff3ffcfe3f   Overflowed in POKEMON STADIUM 2
4884         Simplied DWORDs=00460506, 00000000, 02010003, 02000000
4885         Color0: (SHADE - PRIM) * SHADE|A + 0
4886         Color1: (TEXEL0 - 0) * 1 + COMBINED
4887         Alpha0: (0 - 0) * 0 + 0
4888         Alpha1: (0 - 0) * 0 + COMBINED
4889         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDShade = 00460506 in color channelGenerated combiners:
4890         */
4891
4892     {
4893         {0x00460506, 0x00000000, 0x02010003, 0x02000000}, // Simplified mux
4894             0x00457FFF, 0x3FFCFE3F,     // 64bit Mux
4895             2,  // number of stages
4896             DISABLE_ALPHA,
4897             MUX_ENV,        // Constant color
4898             0x00460506, 0x00000005, 0,  // Shade and specular color flags
4899             {0x00000000, 0x00000000}, // constant color texture flags
4900         {
4901             {ADD(T0,DIF), SKIP, 0, true},   // Stage 0
4902             {SKIP, SKIP, 0, false}, // Stage 1
4903         }
4904     },
4905
4906         /*
4907         //Mux=0x00272c60350c937f    Overflowed in POKEMON STADIUM 2
4908         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
4909         Color1: (PRIM - ENV) * COMBINED + ENV
4910         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
4911         Alpha1: (COMBINED - 0) * PRIM + 0
4912
4913
4914         //Simplied Mux=0x00272c60350c937f   Overflowed in POKEMON STADIUM 2
4915         Simplied DWORDs=030F0604, 00060004, 07020706, 02000000
4916         Color0: (TEXEL1 - SHADE) * PRIMLODFRAC + TEXEL0
4917         Color1: (SHADE - ENV) * COMBINED + ENV
4918         Alpha0: (TEXEL1 - 0) * SHADE + 0
4919         Alpha1: (0 - 0) * 0 + COMBINED
4920         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
4921         */
4922
4923     {
4924         {0x030F0604, 0x00060004, 0x07020706, 0x02000000}, // Simplified mux
4925             0x00272C60, 0x350C937F,     // 64bit Mux
4926             2,  // number of stages
4927             ENABLE_BOTH,
4928             MUX_PRIM,       // Constant color
4929             0x00000007, 0x00000005, 0,  // Shade and specular color flags
4930             {0x00000000, 0x00000000}, // constant color texture flags
4931         {
4932             {LERP(PRI,DIF,T0),SKIP, 0, true},   // Stage 0
4933             {SKIP, MOD(T1,DIF), 1, true},   // Stage 1
4934         }
4935     },
4936
4937         /*
4938         //Mux=0x00272c603510e37f    Overflowed in POKEMON STADIUM 2
4939         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
4940         Color1: (PRIM - ENV) * COMBINED + ENV
4941         Alpha0: (TEXEL1 - 1) * 1 + TEXEL0
4942         Alpha1: (COMBINED - 0) * SHADE + 0
4943
4944
4945         //Simplied Mux=0x00272c603510e37f   Overflowed in POKEMON STADIUM 2
4946         Simplied DWORDs=030F0604, 00060003, 07020706, 02000000
4947         Color0: (TEXEL1 - SHADE) * PRIMLODFRAC + TEXEL0
4948         Color1: (SHADE - ENV) * COMBINED + ENV
4949         Alpha0: (TEXEL0 - 0) * SHADE + 0
4950         Alpha1: (0 - 0) * 0 + COMBINED
4951         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
4952         */
4953
4954     {
4955         {0x030F0604, 0x00060003, 0x07020706, 0x02000000}, // Simplified mux
4956             0x00272C60, 0x3510E37F,     // 64bit Mux
4957             2,  // number of stages
4958             ENABLE_BOTH,
4959             MUX_ENV,        // Constant color
4960             0x00000005, 0x00000000, 0,  // Shade and specular color flags
4961             {0x00000000, 0x00000000}, // constant color texture flags
4962         {
4963             {SKIP,MOD(T1,DIF), 1, true},    // Stage 0
4964             {LERP(DIF,ENV,T0), MULADD(T0,DIF,CUR), 0, true},    // Stage 1
4965         }
4966     },
4967
4968         /*
4969         //Mux=0x0030e5ff5f16f63f    Overflowed in POKEMON STADIUM 2
4970         Color0: (PRIM - ENV) * TEXEL0 + ENV
4971         Color1: (0 - 0) * 0 + COMBINED
4972         Alpha0: (1 - 0) * TEXEL1 + PRIM
4973         Alpha1: (COMBINED - 0) * ENV + 0
4974
4975
4976         //Simplied Mux=0x0030e5ff5f16f63f   Overflowed in POKEMON STADIUM 2
4977         Simplied DWORDs=06030605, 05010004, 02000000, 00020006
4978         Color0: (PRIM - SHADE) * TEXEL0 + SHADE
4979         Color1: (0 - 0) * 0 + COMBINED
4980         Alpha0: (TEXEL1 - 0) * 1 + PRIM
4981         Alpha1: (SHADE - 0) * COMBINED + 0
4982         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
4983         */
4984
4985     {
4986         {0x06030605, 0x05010004, 0x02000000, 0x00020006}, // Simplified mux
4987             0x0030E5FF, 0x5F16F63F,     // 64bit Mux
4988             2,  // number of stages
4989             ENABLE_BOTH,
4990             MUX_PRIM,       // Constant color
4991             0x00000007, 0x00000007, 0,  // Shade and specular color flags
4992             {0x00000000, 0x00000000}, // constant color texture flags
4993         {
4994             {LERP(PRI,DIF,T0), MOD(PRI,DIF), 0, true},  // Stage 0
4995             {SKIP, MULADD(T1,DIF,CUR), 1, true},    // Stage 1
4996         }
4997     },
4998
4999         /*
5000         //Mux=0x003117ff5f16fe3f    Overflowed in POKEMON STADIUM 2
5001         Color0: (PRIM - ENV) * TEXEL1 + ENV
5002         Color1: (0 - 0) * 0 + COMBINED
5003         Alpha0: (TEXEL0 - 0) * PRIM + 0
5004         Alpha1: (COMBINED - 0) * ENV + 0
5005
5006
5007         //Simplied Mux=0x003117ff5f16fe3f   Overflowed in POKEMON STADIUM 2
5008         Simplied DWORDs=06040605, 00050003, 02000000, 00020006
5009         Color0: (PRIM - SHADE) * TEXEL1 + SHADE
5010         Color1: (0 - 0) * 0 + COMBINED
5011         Alpha0: (TEXEL0 - 0) * PRIM + 0
5012         Alpha1: (SHADE - 0) * COMBINED + 0
5013         Simplfied type: CM_FMT_TYPE6_A_LERP_B_CGenerated combiners:
5014         */
5015
5016     {
5017         {0x06040605, 0x00050003, 0x02000000, 0x00020006}, // Simplified mux
5018             0x003117FF, 0x5F16FE3F,     // 64bit Mux
5019             2,  // number of stages
5020             ENABLE_BOTH,
5021             MUX_PRIM,       // Constant color
5022             0x00000007, 0x00000007, 0,  // Shade and specular color flags
5023             {0x00000000, 0x00000000}, // constant color texture flags
5024         {
5025             {SKIP, MOD(T0,PRI), 0, true},   // Stage 0
5026             {LERP(PRI,DIF,T1), MOD(DIF,CUR), 1, true},  // Stage 1
5027         }
5028     },
5029
5030         /*
5031         //Mux=0x00272c603410933f    Overflowed in POKEMON STADIUM 2
5032         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
5033         Color1: (PRIM - SHADE) * COMBINED + SHADE
5034         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
5035         Alpha1: (COMBINED - 0) * SHADE + 0
5036
5037
5038         //Simplied Mux=0x00272c603410933f   Overflowed in POKEMON STADIUM 2
5039         Simplied DWORDs=030F0504, 00060004, 06020605, 02000000
5040         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
5041         Color1: (PRIM - SHADE) * COMBINED + SHADE
5042         Alpha0: (TEXEL1 - 0) * SHADE + 0
5043         Alpha1: (0 - 0) * 0 + COMBINED
5044         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
5045         */
5046
5047     {
5048         {0x030F0504, 0x00060004, 0x06020605, 0x02000000}, // Simplified mux
5049             0x00272C60, 0x3410933F,     // 64bit Mux
5050             2,  // number of stages
5051             ENABLE_BOTH,
5052             MUX_PRIM,       // Constant color
5053             0x00000000, 0x00000000, 0,  // Shade and specular color flags
5054             {0x00000000, 0x00000000}, // constant color texture flags
5055         {
5056             {LERP(PRI,DIF,T0), SKIP, 0, true},  // Stage 0
5057             {SKIP, MOD(T1,DIF), 1, true},   // Stage 1
5058         }
5059     },
5060
5061         /*
5062         //Mux=0x00272c603510937f    Overflowed in POKEMON STADIUM 2
5063         Color0: (TEXEL1 - PRIM) * PRIMLODFRAC + TEXEL0
5064         Color1: (PRIM - ENV) * COMBINED + ENV
5065         Alpha0: (TEXEL1 - TEXEL0) * 1 + TEXEL0
5066         Alpha1: (COMBINED - 0) * SHADE + 0
5067
5068
5069         //Simplied Mux=0x00272c603510937f   Overflowed in POKEMON STADIUM 2
5070         Simplied DWORDs=030F0604, 00060004, 07020706, 02000000
5071         Color0: (TEXEL1 - SHADE) * PRIMLODFRAC + TEXEL0
5072         Color1: (SHADE - ENV) * COMBINED + ENV
5073         Alpha0: (TEXEL1 - 0) * SHADE + 0
5074         Alpha1: (0 - 0) * 0 + COMBINED
5075         Simplfied type: CM_FMT_TYPE_NOT_CHECKEDGenerated combiners:
5076         */
5077
5078     {
5079         {0x030F0604, 0x00060004, 0x07020706, 0x02000000}, // Simplified mux
5080             0x00272C60, 0x3510937F,     // 64bit Mux
5081             2,  // number of stages
5082             ENABLE_BOTH,
5083             MUX_ENV,        // Constant color
5084             0x00000005, 0x00000000, 0,  // Shade and specular color flags
5085             {0x00000000, 0x00000000}, // constant color texture flags
5086         {
5087             {LERP(DIF,ENV,T0), SKIP, 0, true},  // Stage 0
5088             {SKIP, MOD(T1,DIF), 1, true},   // Stage 1
5089         }
5090     },
5091
5092         /*
5093         //Mux=0x00167e835ffffc38    Overflowed in POKEMON STADIUM 2
5094         Color0: (TEXEL0 - ENV) * ENV|A + 0
5095         Color1: (SHADE - 0) * PRIM + COMBINED
5096         Alpha0: (0 - 0) * 0 + 1
5097         Alpha1: (0 - 0) * 0 + COMBINED
5098
5099
5100         //Simplied Mux=0x00167e835ffffc38   Overflowed in POKEMON STADIUM 2
5101         Simplied DWORDs=00460703, 01000000, 02060004, 02000000
5102         Color0: (TEXEL0 - ENV) * SHADE|A + 0
5103         Color1: (TEXEL1 - 0) * SHADE + COMBINED
5104         Alpha0: (0 - 0) * 0 + 1
5105         Alpha1: (0 - 0) * 0 + COMBINED
5106         Simplfied type: CM_FMT_TYPE8_A_SUB_B_MOD_CGenerated combiners:
5107         */
5108
5109     {
5110         {0x00460703, 0x01000000, 0x02060004, 0x02000000}, // Simplified mux
5111             0x00167E83, 0x5FFFFC38,     // 64bit Mux
5112             2,  // number of stages
5113             DISABLE_ALPHA,
5114             MUX_ENV,        // Constant color
5115             0x00050006, 0x00000007, 0,  // Shade and specular color flags
5116             {0x00000000, 0x00000005}, // constant color texture flags
5117         {
5118             {SUB(T0,ENV), SKIP, 0, true},   // Stage 0
5119             {MULADD(CUR,ENVA,DIF), SKIP, 1, true},  // Stage 1
5120         }
5121     },
5122 };
5123
5124 int noOfTwoStages = sizeof(twostages)/sizeof(GeneralCombinerInfo);
5125