~ubuntu-branches/ubuntu/saucy/mupen64plus-video-rice/saucy

« back to all changes in this revision

Viewing changes to src/CombinerTable.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Sven Eckelmann
  • Date: 2011-01-22 11:05:28 UTC
  • Revision ID: james.westby@ubuntu.com-20110122110528-k6z84gdespqqd9zp
Tags: upstream-1.99.4
ImportĀ upstreamĀ versionĀ 1.99.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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