diff --git a/src/game/game_0b2150.c b/src/game/game_0b2150.c index b4041ed0d..4f58cbd29 100644 --- a/src/game/game_0b2150.c +++ b/src/game/game_0b2150.c @@ -144,11 +144,11 @@ void func0f0b278c(Gfx **gdlptr, f32 *arg1, f32 *arg2, s32 twidth, u32 theight, u gDPSetEnvColor(gdl++, r, g, b, alpha); if (arg12) { - gDPSetCombineLERP(gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, ENVIRONMENT, 0, COMBINED, 0, ENVIRONMENT, 0); + gDPSetCombineMode(gdl++, G_CC_TRILERP, G_CC_CUSTOM_03); } else if (arg13) { - gDPSetCombineLERP(gdl++, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED); + gDPSetCombineMode(gdl++, G_CC_CUSTOM_00, G_CC_PASS2); } else { - gDPSetCombineLERP(gdl++, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0); + gDPSetCombineMode(gdl++, G_CC_CUSTOM_00, G_CC_CUSTOM_00); } *gdlptr = gdl; diff --git a/src/game/game_1531a0.c b/src/game/game_1531a0.c index a3de6e703..6e68b1779 100644 --- a/src/game/game_1531a0.c +++ b/src/game/game_1531a0.c @@ -439,7 +439,7 @@ Gfx *textSetPrimColour(Gfx *gdl, u32 colour) Gfx *text0f153838(Gfx *gdl) { - gDPSetCombineLERP(gdl++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); + gDPSetCombineMode(gdl++, G_CC_CUSTOM_02, G_CC_CUSTOM_02); return gdl; } diff --git a/src/game/gfxreplace.c b/src/game/gfxreplace.c index e086bfcd6..177d1921b 100644 --- a/src/game/gfxreplace.c +++ b/src/game/gfxreplace.c @@ -10,7 +10,7 @@ Gfx gbi_26a40[] = { gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, 0, SCALE, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineMode(G_CC_CUSTOM_05, G_CC_PASS2), 0, }; @@ -32,27 +32,27 @@ Gfx gbi_26a58[] = { gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_06), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_07, G_CC_CUSTOM_07), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_08), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_09, G_CC_CUSTOM_09), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_06), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_07, G_CC_CUSTOM_07), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_08), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_09, G_CC_CUSTOM_09), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineMode(G_CC_CUSTOM_10, G_CC_PASS2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_10, G_CC_CUSTOM_10), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEIA2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_06), 0, }; @@ -64,75 +64,75 @@ Gfx gbi_26b90[] = { gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_06), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_07, G_CC_CUSTOM_07), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_08), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_09, G_CC_CUSTOM_09), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_06), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_07, G_CC_CUSTOM_07), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_08), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_09, G_CC_CUSTOM_09), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineMode(G_CC_CUSTOM_10, G_CC_PASS2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_10, G_CC_CUSTOM_10), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEIA2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_06), 0, }; Gfx gbi_26c78[] = { gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_06), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_07, G_CC_CUSTOM_07), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_08), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_09, G_CC_CUSTOM_09), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_06), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_07, G_CC_CUSTOM_07), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_08), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_09, G_CC_CUSTOM_09), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineMode(G_CC_CUSTOM_10, G_CC_PASS2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_10, G_CC_CUSTOM_10), 0, }; Gfx gbi_26d20[] = { gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_06), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_07, G_CC_CUSTOM_07), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_08), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_09, G_CC_CUSTOM_09), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_06), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_CUSTOM_07, G_CC_CUSTOM_07), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_08), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_09, G_CC_CUSTOM_09), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineMode(G_CC_CUSTOM_10, G_CC_PASS2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_10, G_CC_CUSTOM_10), 0, }; @@ -170,64 +170,64 @@ Gfx gbi_26e30[] = { Gfx gbi_26e68[] = { gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_CUSTOM_12, G_CC_CUSTOM_12), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineMode(G_CC_CUSTOM_13, G_CC_CUSTOM_13), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_CUSTOM_12, G_CC_CUSTOM_12), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineMode(G_CC_CUSTOM_13, G_CC_CUSTOM_13), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetCombineLERP(1, 0, SCALE, 0, 0, 0, 0, SHADE, 1, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_CUSTOM_14, G_CC_CUSTOM_14), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_15), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_16), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_15), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_16), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEI2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_15), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEIA2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_16), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEI2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_15), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEIA2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_16), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), - gsDPSetCombineLERP(1, 0, SCALE, 0, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineMode(G_CC_CUSTOM_14, G_CC_PASS2), 0, }; Gfx gbi_26f50[] = { - gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_CUSTOM_12, G_CC_CUSTOM_12), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineMode(G_CC_CUSTOM_13, G_CC_CUSTOM_13), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_CUSTOM_12, G_CC_CUSTOM_12), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), - gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineMode(G_CC_CUSTOM_13, G_CC_CUSTOM_13), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetCombineLERP(1, 0, SCALE, 0, 0, 0, 0, SHADE, 1, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_CUSTOM_14, G_CC_CUSTOM_14), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_15), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_16), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_15), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_CUSTOM_16), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), - gsDPSetCombineLERP(1, 0, SCALE, 0, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_15), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEI2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_16), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEIA2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_15), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEI2), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_CUSTOM_16), + gsDPSetCombineMode(G_CC_CUSTOM_11, G_CC_MODULATEIA2), + gsDPSetCombineMode(G_CC_CUSTOM_14, G_CC_PASS2), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), 0, }; diff --git a/src/game/mainmenu.c b/src/game/mainmenu.c index e0b0767df..e6ea4c649 100644 --- a/src/game/mainmenu.c +++ b/src/game/mainmenu.c @@ -1976,7 +1976,7 @@ MenuItemHandlerResult menuhandlerMissionList(s32 operation, struct menuitem *ite #if VERSION >= VERSION_NTSC_1_0 texSelect(&gdl, g_TexGeneralConfigs + 13 + stageindex, 2, 0, 2, true, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); - gDPSetCombineLERP(gdl++, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0); + gDPSetCombineMode(gdl++, G_CC_CUSTOM_00, G_CC_CUSTOM_00); gDPSetTextureFilter(gdl++, G_TF_POINT); gDPSetEnvColorViaWord(gdl++, 0xffffff00 | ((renderdata->colour & 0xff) * 255 / 256)); #else diff --git a/src/game/menugfx.c b/src/game/menugfx.c index 49c5ad8d4..57ce6ec41 100644 --- a/src/game/menugfx.c +++ b/src/game/menugfx.c @@ -1837,7 +1837,7 @@ Gfx *menugfxRenderBgSuccess(Gfx *gdl) gDPSetAlphaCompare(gdl++, G_AC_NONE); gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - gDPSetCombineLERP(gdl++, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0); + gDPSetCombineMode(gdl++, G_CC_CUSTOM_04, G_CC_CUSTOM_04); gDPSetTextureFilter(gdl++, G_TF_BILERP); gDPSetTexturePersp(gdl++, G_TP_PERSP); diff --git a/src/game/player.c b/src/game/player.c index ccf57e031..3d80893a3 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -4413,7 +4413,7 @@ Gfx *playerRenderShield(Gfx *gdl) gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_CLD_SURF2); gDPSetEnvColor(gdl++, red, green, blue, (s32)(200 * f20)); gDPSetPrimColor(gdl++, 0, 0, 0xff, 0xff, 0xff, (s32)(175 * f20 * f20)); - gDPSetCombineLERP(gdl++, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, COMBINED, 1, COMBINED, PRIMITIVE, COMBINED); + gDPSetCombineMode(gdl++, G_CC_CUSTOM_00, G_CC_CUSTOM_01); func0f0b2740(&gdl, sp90, sp88, g_TexShieldConfigs->width, g_TexShieldConfigs->height, (g_Vars.currentplayer->shieldshowrnd & 1) != 0, diff --git a/src/game/sparks.c b/src/game/sparks.c index be4441b5b..591284cdd 100644 --- a/src/game/sparks.c +++ b/src/game/sparks.c @@ -339,7 +339,7 @@ Gfx *sparksRender(Gfx *gdl) gDPSetAlphaCompare(gdl++, G_AC_NONE); gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - gDPSetCombineLERP(gdl++, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0); + gDPSetCombineMode(gdl++, G_CC_CUSTOM_04, G_CC_CUSTOM_04); for (i = 0; i < ARRAYCOUNT(g_SparkGroups); i++) { diff --git a/src/include/gbiex.h b/src/include/gbiex.h index a980033f2..3fe1fbf5f 100644 --- a/src/include/gbiex.h +++ b/src/include/gbiex.h @@ -130,4 +130,84 @@ #define gDPHudRectangle(pkt, x1, y1, x2, y2) gDPFillRectangle(pkt, (x1) * g_ScaleX, y1, ((x2 + 1)) * g_ScaleX, (y2) + 1) +/** + * Custom combiner modes. + * + * Modes 6-10 are copies of the following but they replace + * SHADE with ENVIRONMENT in the alpha half: + * + * 06: G_CC_MODULATEIA2 + * 07: G_CC_MODULATEIA + * 08: G_CC_MODULATEI2 + * 09: G_CC_MODULATEI + * 10: G_CC_SHADE + * + * Modes 12-16 are copies of the following but they replace + * SHADE with SCALE in the colour half: + * + * 12: G_CC_MODULATEI + * 13: G_CC_MODULATEIA + * 14: G_CC_SHADE + * 15: G_CC_MODULATEI2 + * 16: G_CC_MODULATEIA2 + * + * Summary of modes: + * 00: T0*EV T0*EV + * 01: CM (1-CM)*PR+CM + * 02: PR T0*PR + * 03: CM*EV CM*EV + * 04: SH T0*SH + * 05: T1*SC T1*PL + * 06: CM*SH CM*EV + * 07: T0*SH T0*EV + * 08: CM*SH EV + * 09: T0*SH EV + * 10: SH EV + * 11: (T1-T0)*LF+T0 T1 + * 12: T0*SC SH + * 13: T0*SC T0*SH + * 14: SC SH + * 15: CM*SC SH + * 16: CM*SC CM*SH + * 17: (T0-EV)*SA+EV (T0-EV)*SH+EV + * 18: CM*SH CM + * 19: (T0-EV)*SA+EV T0*EV + * 20: CM*SH CM*SH+PR + * 21: (T1-T0)*LF+T0 SH+EV + * 22: (T1-T0)*LF+T0 (SH-EV)*T0 + * 23: CM*SH PR+CM + * 24: (T1-T0)*LF+T0 (1-SH)*EV + * 25: (T1-T0)*LF+T0 EV + * 26: (T1-T0)*LF+T0 T0*EV + * 27: (PR-EV)*T0+EV (PR-EV)*T0+EV + */ +#define G_CC_CUSTOM_00 TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0 +#define G_CC_CUSTOM_01 0, 0, 0, COMBINED, 1, COMBINED, PRIMITIVE, COMBINED +#define G_CC_CUSTOM_02 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0 +#define G_CC_CUSTOM_03 COMBINED, 0, ENVIRONMENT, 0, COMBINED, 0, ENVIRONMENT, 0 +#define G_CC_CUSTOM_04 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0 +#define G_CC_CUSTOM_05 TEXEL1, 0, SCALE, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0 +#define G_CC_CUSTOM_06 COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0 +#define G_CC_CUSTOM_07 TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0 +#define G_CC_CUSTOM_08 COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT +#define G_CC_CUSTOM_09 TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT +#define G_CC_CUSTOM_10 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT +#define G_CC_CUSTOM_11 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0 +#define G_CC_CUSTOM_12 TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE +#define G_CC_CUSTOM_13 TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0 +#define G_CC_CUSTOM_14 1, 0, SCALE, 0, 0, 0, 0, SHADE +#define G_CC_CUSTOM_15 COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE +#define G_CC_CUSTOM_16 COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0 +#define G_CC_CUSTOM_17 TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, ENVIRONMENT, SHADE, ENVIRONMENT +#define G_CC_CUSTOM_18 COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED +#define G_CC_CUSTOM_19 TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0 +#define G_CC_CUSTOM_20 COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, PRIMITIVE +#define G_CC_CUSTOM_21 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, SHADE, ENVIRONMENT +#define G_CC_CUSTOM_22 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, SHADE, ENVIRONMENT, TEXEL0, 0 +#define G_CC_CUSTOM_23 COMBINED, 0, SHADE, 0, 1, 0, PRIMITIVE, COMBINED +#define G_CC_CUSTOM_24 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, SHADE, ENVIRONMENT, 0 +#define G_CC_CUSTOM_25 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, ENVIRONMENT, 0 +#define G_CC_CUSTOM_26 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0 +#define G_CC_CUSTOM_27 PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT + #endif diff --git a/src/lib/debughud.c b/src/lib/debughud.c index cdd13a585..c2a225d32 100644 --- a/src/lib/debughud.c +++ b/src/lib/debughud.c @@ -72,7 +72,7 @@ Gfx var80061180nb[] = { gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetColorDither(G_CD_DISABLE), gsDPSetRenderMode(IM_RD | CVG_DST_FULL | ZMODE_OPA | FORCE_BL | GBL_c1(G_BL_CLR_MEM, G_BL_A_IN, G_BL_CLR_IN, G_BL_1), IM_RD | CVG_DST_FULL | ZMODE_OPA | FORCE_BL | GBL_c2(G_BL_CLR_MEM, G_BL_A_IN, G_BL_CLR_IN, G_BL_1)), - gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_CUSTOM_27, G_CC_CUSTOM_27), gsDPSetTexturePersp(G_TP_NONE), gsDPSetTextureLUT(G_TT_NONE), gsDPSetAlphaCompare(G_AC_NONE), diff --git a/src/lib/model.c b/src/lib/model.c index a0feebb83..3709f1771 100644 --- a/src/lib/model.c +++ b/src/lib/model.c @@ -2819,7 +2819,7 @@ void modelApplyRenderModeType3(struct modelrenderdata *renderdata, bool arg1) gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); gDPSetFogColorViaWord(renderdata->gdl++, renderdata->fogcolour); gDPSetEnvColorViaWord(renderdata->gdl++, renderdata->envcolour | 0xff); - gDPSetCombineLERP(renderdata->gdl++, TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, ENVIRONMENT, SHADE, ENVIRONMENT, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_17, G_CC_CUSTOM_18); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); @@ -2839,7 +2839,7 @@ void modelApplyRenderModeType3(struct modelrenderdata *renderdata, bool arg1) gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); gDPSetFogColorViaWord(renderdata->gdl++, renderdata->fogcolour); gDPSetEnvColorViaWord(renderdata->gdl++, renderdata->envcolour); - gDPSetCombineLERP(renderdata->gdl++, TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_19, G_CC_CUSTOM_18); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); @@ -2855,7 +2855,7 @@ void modelApplyRenderModeType3(struct modelrenderdata *renderdata, bool arg1) gDPSetFogColorViaWord(renderdata->gdl++, renderdata->fogcolour); gDPSetEnvColorViaWord(renderdata->gdl++, 0xffffffff); gDPSetPrimColor(renderdata->gdl++, 0, 0, 0, 0, 0, (renderdata->envcolour >> 8) & 0xff); - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, PRIMITIVE); + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_CUSTOM_20); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); @@ -2875,7 +2875,7 @@ void modelApplyRenderModeType3(struct modelrenderdata *renderdata, bool arg1) gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); gDPSetFogColorViaWord(renderdata->gdl++, renderdata->fogcolour); gDPSetEnvColor(renderdata->gdl++, 0, 0, 0, renderdata->envcolour); - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, SHADE, ENVIRONMENT, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_21, G_CC_CUSTOM_18); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_TEX_EDGE2); @@ -2884,7 +2884,7 @@ void modelApplyRenderModeType3(struct modelrenderdata *renderdata, bool arg1) } } else { gDPSetPrimColor(renderdata->gdl++, 0, 0, 0, 0, 0, (renderdata->envcolour >> 8) & 0xff); - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, SHADE, ENVIRONMENT, TEXEL0, 0, COMBINED, 0, SHADE, 0, 1, 0, PRIMITIVE, COMBINED); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_22, G_CC_CUSTOM_23); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_TEX_EDGE2); @@ -2926,9 +2926,9 @@ void modelApplyRenderModeType3(struct modelrenderdata *renderdata, bool arg1) gDPSetEnvColor(renderdata->gdl++, 0xff, 0xff, 0xff, alpha); if (renderdata->envcolour & 0xff00) { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, SHADE, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_24, G_CC_MODULATEIA2); } else { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_25, G_CC_MODULATEIA2); } } else { gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); @@ -2943,7 +2943,7 @@ void modelApplyRenderModeType3(struct modelrenderdata *renderdata, bool arg1) alpha = renderdata->envcolour & 0xff; if (alpha < 255) { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_26, G_CC_MODULATEIA2); } else { gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); } @@ -2976,7 +2976,7 @@ void modelApplyRenderModeType4(struct modelrenderdata *renderdata, bool arg1) gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); gDPSetFogColorViaWord(renderdata->gdl++, renderdata->fogcolour); gDPSetEnvColorViaWord(renderdata->gdl++, renderdata->envcolour | 0x000000ff); - gDPSetCombineLERP(renderdata->gdl++, TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, ENVIRONMENT, SHADE, ENVIRONMENT, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_17, G_CC_CUSTOM_18); if (arg1) { if (renderdata->zbufferenabled) { @@ -2996,7 +2996,7 @@ void modelApplyRenderModeType4(struct modelrenderdata *renderdata, bool arg1) gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); gDPSetFogColorViaWord(renderdata->gdl++, renderdata->fogcolour); gDPSetEnvColorViaWord(renderdata->gdl++, renderdata->envcolour); - gDPSetCombineLERP(renderdata->gdl++, TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_19, G_CC_CUSTOM_18); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); @@ -3012,7 +3012,7 @@ void modelApplyRenderModeType4(struct modelrenderdata *renderdata, bool arg1) gDPSetPrimColor(renderdata->gdl++, 0, 0, 0, 0, 0, (renderdata->envcolour >> 8) & 0xff); if (arg1) { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, PRIMITIVE); + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_CUSTOM_20); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); @@ -3020,7 +3020,7 @@ void modelApplyRenderModeType4(struct modelrenderdata *renderdata, bool arg1) gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_OPA_SURF2); } } else { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, PRIMITIVE); + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_CUSTOM_20); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); @@ -3035,7 +3035,7 @@ void modelApplyRenderModeType4(struct modelrenderdata *renderdata, bool arg1) gDPSetEnvColorViaWord(renderdata->gdl++, renderdata->envcolour & 0xff); if (arg1) { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, SHADE, ENVIRONMENT, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_21, G_CC_CUSTOM_18); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_TEX_EDGE2); @@ -3044,7 +3044,7 @@ void modelApplyRenderModeType4(struct modelrenderdata *renderdata, bool arg1) } } else { gDPSetPrimColor(renderdata->gdl++, 0, 0, 0, 0, 0, (renderdata->envcolour >> 8) & 0xff); - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, SHADE, ENVIRONMENT, TEXEL0, 0, COMBINED, 0, SHADE, 0, 1, 0, PRIMITIVE, COMBINED); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_22, G_CC_CUSTOM_23); if (renderdata->zbufferenabled) { gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_TEX_EDGE2); @@ -3086,12 +3086,12 @@ void modelApplyRenderModeType4(struct modelrenderdata *renderdata, bool arg1) if (arg1) { if (renderdata->envcolour & 0xff00) { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, SHADE, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_24, G_CC_MODULATEIA2); } else { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_25, G_CC_MODULATEIA2); } } else { - gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + gDPSetCombineMode(renderdata->gdl++, G_CC_CUSTOM_26, G_CC_MODULATEIA2); } } else { gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2);