diff options
| author | Roman971 <romanlasnier@hotmail.com> | 2020-03-29 18:43:45 +0200 |
|---|---|---|
| committer | Roman971 <romanlasnier@hotmail.com> | 2020-03-29 18:47:38 +0200 |
| commit | f5ffe8687d1add25f9884b7f90999d3db92cf5f2 (patch) | |
| tree | 540b6722cbe90c9aa5fd9e004322912785876bda /src/code/z_rcp.c | |
| parent | 51c85fe660db8e1e09b4ab6041880251d78d8f67 (diff) | |
Decompile z_rcp.c (1 non matching left)
Diffstat (limited to 'src/code/z_rcp.c')
| -rw-r--r-- | src/code/z_rcp.c | 1553 |
1 files changed, 1477 insertions, 76 deletions
diff --git a/src/code/z_rcp.c b/src/code/z_rcp.c index 4aa711e00..9df3b257d 100644 --- a/src/code/z_rcp.c +++ b/src/code/z_rcp.c @@ -1,143 +1,1430 @@ #include <ultra64.h> #include <global.h> -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093370.s") +Gfx sSetupDL[] = { + /* 0x00 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0, 0, 0, 0, COMBINED, 0, 0, 0, + COMBINED), + gsDPSetOtherMode(G_AD_NOISE | G_CD_NOISE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_ZB_CLD_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x01 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_OPA_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x02 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_OPA_SURF | G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x03 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x04 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(PRIMITIVE, 0, SHADE, 0, 0, 0, 0, PRIMITIVE, PRIMITIVE, 0, SHADE, 0, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_XLU_SURF | G_RM_AA_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x05 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_XLU_SURF | G_RM_AA_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x06 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_TEX_EDGE2), + gsSPLoadGeometryMode(G_SHADE | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x07 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_XLU_SURF | G_RM_AA_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x08 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_OPA_SURF | G_RM_AA_OPA_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x09 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x0A */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_OPA_SURF | G_RM_AA_OPA_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x0B */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_OPA_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x0C */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_OPA_SURF | G_RM_AA_OPA_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x0D */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x0E */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_TEX_EDGE | G_RM_AA_ZB_TEX_EDGE2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x0F */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_TEX_EDGE2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x10 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, + PRIMITIVE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x11 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_TEX_EDGE | G_RM_AA_ZB_TEX_EDGE2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x12 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_TEX_EDGE2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x13 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | AA_EN | Z_CMP | IM_RD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | + FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA) | + GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x14 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_ZB_CLD_SURF | G_RM_ZB_CLD_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x15 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_XLU_SURF | G_RM_AA_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x16 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x17 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_OPA_SURF | G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x18 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x19 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x1A */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_OPA_SURF | G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x1B */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_XLU_SURF | G_RM_AA_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x1C */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_AA_TEX_EDGE | G_RM_AA_TEX_EDGE2), + gsSPLoadGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x1D */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, NOISE, 0, COMBINED, 0, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x1E */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_XLU_LINE | G_RM_AA_ZB_XLU_LINE2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x1F */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineMode(G_CC_HILITERGBA, G_CC_HILITERGBA), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_OPA_SURF | G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x20 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineMode(G_CC_HILITERGBA, G_CC_HILITERGBA), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_OPA_SURF | G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | + G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x21 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, SHADE, 1, 0, TEXEL0, SHADE, ENVIRONMENT, COMBINED, TEXEL0, COMBINED, + ENVIRONMENT, COMBINED, TEXEL0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | + G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x22 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, SHADE, 0, 0, 0, TEXEL0, 0, 0, 0, SHADE), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_OPA_SURF | G_RM_OPA_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x23 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_XLU_DECAL | G_RM_AA_ZB_XLU_DECAL2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x24 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_FILL | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_NOOP | G_RM_NOOP2), + gsSPLoadGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x25 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(PRIMITIVE, 0, SHADE, 0, 0, 0, 0, PRIMITIVE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x26 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_ZB_XLU_SURF | G_RM_AA_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x27 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x28 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIMITIVE_ALPHA, TEXEL0, TEXEL1, TEXEL0, PRIMITIVE, TEXEL0, 0, 0, 0, COMBINED, 0, + 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_OPA_SURF | G_RM_OPA_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_FRONT | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x29 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_ZB_XLU_SURF | G_RM_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x2A */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x2B */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x2C */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_ZB_OVL_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x2D */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x2E */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x2F */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_ZB_XLU_SURF | G_RM_ZB_XLU_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x30 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_XLU_SURF | G_RM_AA_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x31 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(PRIMITIVE, 0, SHADE, 0, 0, 0, 0, PRIMITIVE, PRIMITIVE, 0, SHADE, 0, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_AA_XLU_SURF | G_RM_AA_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x32 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_OPA_SURF | G_RM_OPA_SURF2), + gsSPLoadGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), + + /* 0x33 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), + + /* 0x34 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), + + /* 0x35 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL1, TEXEL0, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE, ENVIRONMENT, + COMBINED, ENVIRONMENT, COMBINED, 0, PRIMITIVE, 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_OPA_SURF | G_RM_OPA_SURF2), + gsSPLoadGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), + + /* 0x36 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL1, TEXEL0, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE, ENVIRONMENT, + COMBINED, ENVIRONMENT, COMBINED, 0, PRIMITIVE, 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), + + /* 0x37 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL1, TEXEL0, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE, ENVIRONMENT, + COMBINED, ENVIRONMENT, COMBINED, 0, PRIMITIVE, 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), + + /* 0x38 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_XLU_SURF | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x39 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_CLD_SURF | G_RM_CLD_SURF2), + gsSPLoadGeometryMode(G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x3A */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(PRIMITIVE, 0, SHADE, 0, PRIMITIVE, 0, SHADE, 0, PRIMITIVE, 0, SHADE, 0, PRIMITIVE, 0, SHADE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_CLD_SURF | G_RM_CLD_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x3B */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, SHADE, 1, 0, TEXEL0, SHADE, ENVIRONMENT, COMBINED, TEXEL0, COMBINED, + ENVIRONMENT, COMBINED, TEXEL0, COMBINED), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | G_RM_AA_OPA_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x3C */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, ENVIRONMENT, + TEXEL0, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_ZB_CLD_SURF | G_RM_ZB_CLD_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x3D */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, ENVIRONMENT, + TEXEL0, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0), + gsDPSetOtherMode(G_AD_NOISE | G_CD_NOISE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_ZB_CLD_SURF | G_RM_ZB_CLD_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x3E */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA) | + G_RM_AA_ZB_OPA_SURF2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x3F */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | Z_UPD | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | + GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA) | + GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x40 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_2CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | G_RM_XLU_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x41 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_CLD_SURF | G_RM_CLD_SURF2), + gsSPLoadGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x42 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | + ALPHA_CVG_SEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | + GBL_c2(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1)), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x43 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | + ALPHA_CVG_SEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | + GBL_c2(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1)), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x44 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | Z_CMP | Z_UPD | IM_RD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | + ALPHA_CVG_SEL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM) | + GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x45 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | Z_CMP | Z_UPD | IM_RD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | + ALPHA_CVG_SEL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM) | + GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPEndDisplayList(), + + /* 0x46 */ + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0), + gsDPSetOtherMode(G_AD_NOTPATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_THRESHOLD | G_ZS_PIXEL | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | + ALPHA_CVG_SEL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | + GBL_c2(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1)), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_SHADING_SMOOTH), + gsSPEndDisplayList(), +}; + +Gfx sFillSetupDL[] = { + gsDPPipeSync(), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_FILL | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_NOOP | G_RM_NOOP2), + gsSPLoadGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), + gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), + gsDPSetBlendColor(0x00, 0x00, 0x00, 0x08), + gsSPClipRatio(FRUSTRATIO_2), + gsSPEndDisplayList(), +}; + +// unused? +Gfx D_80127030[] = { + gsDPPipeSync(), + gsDPSetFillColor((GPACK_RGBA5551(0xFF, 0xFF, 0xF0, 0) << 16) | GPACK_RGBA5551(0xFF, 0xFF, 0xF0, 0)), + gsDPFillRectangle(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1), + gsDPSetDepthSource(G_ZS_PIXEL), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +// unused? +Gfx D_80127060[] = { + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_FILL), + gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), + gsDPSetFillColor((GPACK_RGBA5551(0x00, 0x00, 0x00, 1) << 16) | GPACK_RGBA5551(0x00, 0x00, 0x00, 1)), + gsDPFillRectangle(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +Gfx gEmptyDL[] = { + gsSPEndDisplayList(), +}; + +Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) { + if (f == n) { + f++; + } + + if (n == f) { + __assert("n != f", "../z_rcp.c", 1155); + } + + gDPSetFogColor(gfx++, r, g, b, a); + + if (n >= 1000) { + gSPFogFactor(gfx++, 0, 0); // gSPFogPosition(gfx++, ?, ?) + } else if (n >= 997) { + gSPFogFactor(gfx++, 0x7FFF, 0x8100); // gSPFogPosition(gfx++, ?, ?) + } else if (n < 0) { + gSPFogFactor(gfx++, 0, 255); // gSPFogPosition(gfx++, ?, ?) + } else { + gSPFogPosition(gfx++, n, f); + } + + return gfx; +} + +Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) { + if (f == n) { + f++; + } + + if (n == f) { + __assert("n != f", "../z_rcp.c", 1187); + } + + gDPPipeSync(gfx++); + gDPSetFogColor(gfx++, r, g, b, a); + + if (n >= 1000) { + gSPFogFactor(gfx++, 0, 0); // gSPFogPosition(gfx++, ?, ?) + } else if (n >= 997) { + gSPFogFactor(gfx++, 0x7FFF, 0x8100); // gSPFogPosition(gfx++, ?, ?) + } else if (n < 0) { + gSPFogFactor(gfx++, 0, 255); // gSPFogPosition(gfx++, ?, ?) + } else { + gSPFogPosition(gfx++, n, f); + } + + return gfx; +} + +Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) { + return Gfx_SetFog(gfx, r, g, b, a, n, f); +} + +Gfx* Gfx_CallSetupDLImpl(Gfx* gfx, u32 i) { + gSPDisplayList(gfx++, &sSetupDL[6 * i]); + return gfx; +} + +Gfx* Gfx_CallSetupDL(Gfx* gfx, u32 i) { + return Gfx_CallSetupDLImpl(gfx, i); +} + +void Gfx_CallSetupDLAtPtr(Gfx** gfxp, u32 i) { + *gfxp = Gfx_CallSetupDL(*gfxp, i); +} + +Gfx* func_800937C0(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x39]); + return gfx; +} + +Gfx* func_800937E4(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x39]); + return gfx; +} + +Gfx* func_80093808(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x34]); + gDPSetColorDither(gfx++, G_CD_DISABLE); + return gfx; +} + +void func_80093848(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1293); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x3A]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1297); +} + +void func_800938B4(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1309); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x39]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1313); +} + +void func_80093920(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1325); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x32]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1329); +} + +void func_8009398C(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1341); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x33]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1345); +} + +void func_800939F8(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1357); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x34]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1361); +} + +void func_80093A64(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1373); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x35]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1377); +} + +void func_80093AD0(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1389); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x36]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1393); +} + +void func_80093B3C(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1405); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x37]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1409); +} + +void func_80093BA8(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1421); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x1A]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1425); +} + +void func_80093C14(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1439); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x19]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1443); +} + +void func_80093C80(GlobalContext* globalCtx) { + GraphicsContext* gfxCtx; + Gfx* gfxArr[5]; + + gfxCtx = globalCtx->state.gfxCtx; + func_80093D18(gfxCtx); + + if (globalCtx->roomCtx.curRoom.unk_03 == 3) { + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1460); + + gDPSetColorDither(gfxCtx->polyOpa.p++, G_CD_DISABLE); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1462); + } +} + +void func_80093D18(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1475); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x19]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1479); +} + +void func_80093D84(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1491); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x19]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1495); +} + +void func_80093DF0(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1507); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x1F]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1511); +} + +void func_80093E5C(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1523); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x20]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1527); +} + +void func_80093EC8(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1539); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x21]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1543); +} + +Gfx* func_80093F34(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x40]); + return gfx; +} + +Gfx* func_80093F58(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x22]); + return gfx; +} + +void func_80093F7C(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009352C.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1569); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093708.s") + gfxCtx->polyOpa.p = func_80093F58(gfxCtx->polyOpa.p); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009373C.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1573); +} + +void func_80093FD8(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1585); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x23]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1589); +} + +void func_80094044(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1601); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x2C]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1605); +} + +void func_800940B0(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1617); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x24]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1621); +} + +Gfx* func_8009411C(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x1C]); + return gfx; +} + +void func_80094140(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1640); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x1C]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1644); +} + +void func_800941AC(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1651); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x2B]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093774.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1655); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093794.s") +void func_80094218(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800937C0.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1670); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800937E4.s") + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x2D]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093808.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1674); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093848.s") +void func_80094284(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800938B4.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1681); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093920.s") + gSPDisplayList(gfxCtx->overlay.p++, &sSetupDL[6 * 0x2E]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009398C.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1685); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800939F8.s") +void func_800942F0(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093A64.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1700); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093AD0.s") + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x26]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093B3C.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1704); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093BA8.s") +void func_8009435C(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093C14.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1722); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093C80.s") + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x04]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093D18.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1726); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093D84.s") +void func_800943C8(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093DF0.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1758); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093E5C.s") + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x25]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093EC8.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1762); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093F34.s") +void func_80094434(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093F58.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1775); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093F7C.s") + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x02]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80093FD8.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1779); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094044.s") +Gfx* func_800944A0(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x27]); + return gfx; +} + +void func_800944C4(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1799); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800940B0.s") + gfxCtx->polyOpa.p = func_800944A0(gfxCtx->polyOpa.p); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009411C.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1801); +} + +void func_80094520(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094140.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1809); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800941AC.s") + gfxCtx->overlay.p = func_800944A0(gfxCtx->overlay.p); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094218.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1811); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094284.s") +void func_8009457C(Gfx** gfxp) { + Gfx* gfx = *gfxp; + gSPDisplayList(gfx++, &sSetupDL[6 * 0x27]); + *gfxp = gfx; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800942F0.s") +void func_800945A0(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009435C.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1837); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800943C8.s") + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x28]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094434.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1841); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800944A0.s") +void func_8009460C(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800944C4.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1853); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094520.s") + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x29]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009457C.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1857); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800945A0.s") +void func_80094678(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009460C.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1869); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094678.s") + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x2F]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800946E4.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1873); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094708.s") +Gfx* func_800946E4(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x42]); + return gfx; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009472C.s") +Gfx* func_80094708(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x43]); + return gfx; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8009476C.s") +Gfx* func_8009472C(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x44]); + gDPSetColorDither(gfx++, G_CD_DISABLE); + return gfx; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800947AC.s") +Gfx* func_8009476C(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x45]); + gDPSetColorDither(gfx++, G_CD_DISABLE); + return gfx; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094944.s") +Gfx* func_800947AC(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x41]); + gDPSetColorDither(gfx++, G_CD_DISABLE); + + // clang-format off + switch (HREG(21)) { + case 1: gDPSetAlphaDither(gfx++, G_AD_DISABLE); break; + case 2: gDPSetAlphaDither(gfx++, G_AD_PATTERN); break; + case 3: gDPSetAlphaDither(gfx++, G_AD_NOTPATTERN); break; + case 4: gDPSetAlphaDither(gfx++, G_AD_NOISE); break; + } + + switch (HREG(22)) { + case 1: gDPSetColorDither(gfx++, G_CD_DISABLE); break; + case 2: gDPSetColorDither(gfx++, G_CD_MAGICSQ); break; + case 3: gDPSetColorDither(gfx++, G_CD_BAYER); break; + case 4: gDPSetColorDither(gfx++, G_CD_NOISE); break; + } + // clang-format on + + return gfx; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094968.s") +Gfx* func_80094944(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x46]); + return gfx; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800949A8.s") +Gfx* func_80094968(Gfx* gfx) { + gSPDisplayList(gfx++, &sSetupDL[6 * 0x14]); + gDPSetColorDither(gfx++, G_CD_DISABLE); + return gfx; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094A14.s") +void func_800949A8(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094A80.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1953); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094AEC.s") + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x2A]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094B58.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1957); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094BC4.s") +void func_80094A14(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094C50.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1964); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094CBC.s") + gSPDisplayList(gfxCtx->overlay.p++, &sSetupDL[6 * 0x2A]); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094D28.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1968); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094D4C.s") +void func_80094A80(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094DB8.s") + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 1992); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80094E54.s") + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x30]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 1996); +} + +void func_80094AEC(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 2008); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x31]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 2012); +} + +void func_80094B58(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 2024); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x1B]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 2028); +} + +void func_80094BC4(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 2040); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x3C]); + gDPSetColorDither(gfxCtx->polyXlu.p++, G_CD_DISABLE); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 2043); +} + +void func_80094C50(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 2056); + + gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x3D]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 2058); +} + +void func_80094CBC(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 2086); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x38]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 2090); +} + +void func_80094D28(Gfx** gfxp) { + Gfx* gfx = *gfxp; + gSPDisplayList(gfx++, &sSetupDL[6 * 0x38]); + *gfxp = gfx; +} + +void func_80094D4C(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 2112); + + gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x3B]); + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 2116); +} + +#ifdef NON_MATCHING +// regalloc differences +void Gfx_BranchTexScroll(Gfx** gfxp, u32 x, u32 y, s32 width, s32 height) { + Gfx* displayList = func_800C6C3C(gfxp, 3 * sizeof(Gfx)); + + gDPTileSync(displayList); + gDPSetTileSize(displayList + 1, 0, x, y, (x + ((width - 1) << 2)), (y + ((height - 1) << 2))); + gSPEndDisplayList(displayList + 2); +} +#else +#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/Gfx_BranchTexScroll.s") +#endif + +void func_80094E54(Gfx** gfxp, u32 x, u32 y) { + Gfx_BranchTexScroll(gfxp, x, y, 0, 0); +} Gfx* func_80094E78(GraphicsContext* gfxCtx, u32 x, u32 y) { - return Draw_TexScroll(gfxCtx, x, y, 0, 0); + return Gfx_TexScroll(gfxCtx, x, y, 0, 0); } -Gfx* Draw_TexScroll(GraphicsContext* gfxCtx, u32 x, u32 y, s32 width, s32 height) { +Gfx* Gfx_TexScroll(GraphicsContext* gfxCtx, u32 x, u32 y, s32 width, s32 height) { Gfx* displayList = Graph_Alloc(gfxCtx, 3 * sizeof(Gfx)); x %= 2048; @@ -150,8 +1437,8 @@ Gfx* Draw_TexScroll(GraphicsContext* gfxCtx, u32 x, u32 y, s32 width, s32 height return displayList; } -Gfx* Draw_TwoTexScroll(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, - u32 y2, s32 width2, s32 height2) { +Gfx* Gfx_TwoTexScroll(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, + u32 y2, s32 width2, s32 height2) { Gfx* displayList = Graph_Alloc(gfxCtx, 5 * sizeof(Gfx)); x1 %= 2048; @@ -168,8 +1455,8 @@ Gfx* Draw_TwoTexScroll(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 w return displayList; } -Gfx* Draw_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, - u32 x2, u32 y2, s32 width2, s32 height2, s32 red, s32 green, s32 blue, s32 alpha) { +Gfx* Gfx_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, + u32 x2, u32 y2, s32 width2, s32 height2, s32 r, s32 g, s32 b, s32 a) { Gfx* displayList = Graph_Alloc(gfxCtx, 6 * sizeof(Gfx)); x1 %= 2048; @@ -181,14 +1468,128 @@ Gfx* Draw_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y gDPSetTileSize(displayList + 1, tile1, x1, y1, (x1 + ((width1 - 1) << 2)), (y1 + ((height1 - 1) << 2))); gDPTileSync(displayList + 2); gDPSetTileSize(displayList + 3, tile2, x2, y2, (x2 + ((width2 - 1) << 2)), (y2 + ((height2 - 1) << 2))); - gDPSetEnvColor(displayList + 4, red, green, blue, alpha); + gDPSetEnvColor(displayList + 4, r, g, b, a); gSPEndDisplayList(displayList + 5); return displayList; } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_800951D0.s") +Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a) { + Gfx* displayList = Graph_Alloc(gfxCtx, 2 * sizeof(Gfx)); + + gDPSetEnvColor(displayList, r, g, b, a); + gSPEndDisplayList(displayList + 1); + + return displayList; +} + +void func_80095248(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b) { + Gfx* gfxArr[5]; + s32 ret; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 2386); + + gSPDisplayList(gfxCtx->polyOpa.p++, sFillSetupDL); + gSPDisplayList(gfxCtx->polyXlu.p++, sFillSetupDL); + gSPDisplayList(gfxCtx->overlay.p++, sFillSetupDL); + gDPSetScissorFrac(gfxCtx->polyOpa.p++, G_SC_NON_INTERLACE, 0, 0, (s32)gScreenWidth * 4.0f, + (s32)gScreenHeight * 4.0f); + gDPSetScissorFrac(gfxCtx->polyXlu.p++, G_SC_NON_INTERLACE, 0, 0, (s32)gScreenWidth * 4.0f, + (s32)gScreenHeight * 4.0f); + gDPSetScissorFrac(gfxCtx->overlay.p++, G_SC_NON_INTERLACE, 0, 0, (s32)gScreenWidth * 4.0f, + (s32)gScreenHeight * 4.0f); + + gDPSetColorImage(gfxCtx->polyOpa.p++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gScreenWidth, gfxCtx->unk_2DC); + gDPSetColorImage(gfxCtx->polyOpa.p++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gScreenWidth, gfxCtx->unk_2DC); + gDPSetColorImage(gfxCtx->polyXlu.p++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gScreenWidth, gfxCtx->unk_2DC); + gDPSetColorImage(gfxCtx->overlay.p++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gScreenWidth, gfxCtx->unk_2DC); + + gDPSetDepthImage(gfxCtx->polyOpa.p++, gZBuffer); + gDPSetDepthImage(gfxCtx->polyXlu.p++, gZBuffer); + gDPSetDepthImage(gfxCtx->overlay.p++, gZBuffer); + + if ((R_PAUSE_MENU_MODE < 2) && (D_80161490 < 2)) { + ret = func_800B38FC(); + + if (HREG(80) == 16) { + if (HREG(95) != 16) { + HREG(81) = 3; + HREG(82) = 3; + HREG(83) = 0; + HREG(84) = 0; + HREG(85) = 0; + HREG(86) = 0; + HREG(87) = 0; + HREG(88) = 0; + HREG(89) = 0; + HREG(90) = 0; + HREG(91) = 0; + HREG(92) = 0; + HREG(93) = 0; + HREG(94) = 0; + HREG(95) = 16; + } + + if (HREG(81) & 1) { + HREG(83) = ret; + } + + if (HREG(81) & 2) { + HREG(84) = r; + HREG(85) = g; + HREG(86) = b; + } + + if (HREG(82) & 1) { + ret = HREG(83); + } + + if (HREG(82) & 2) { + r = HREG(84); + g = HREG(85); + b = HREG(86); + } + } + + gDPSetColorImage(gfxCtx->polyOpa.p++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gScreenWidth, gZBuffer); + gDPSetCycleType(gfxCtx->polyOpa.p++, G_CYC_FILL); + gDPSetRenderMode(gfxCtx->polyOpa.p++, G_RM_NOOP, G_RM_NOOP2); + gDPSetFillColor(gfxCtx->polyOpa.p++, + (GPACK_RGBA5551(0xFF, 0xFF, 0xF0, 0) << 16) | GPACK_RGBA5551(0xFF, 0xFF, 0xF0, 0)); + gDPFillRectangle(gfxCtx->polyOpa.p++, 0, ret, gScreenWidth - 1, gScreenHeight - ret - 1); + gDPPipeSync(gfxCtx->polyOpa.p++); + + gDPSetColorImage(gfxCtx->polyOpa.p++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gScreenWidth, gfxCtx->unk_2DC); + gDPSetCycleType(gfxCtx->polyOpa.p++, G_CYC_FILL); + gDPSetRenderMode(gfxCtx->polyOpa.p++, G_RM_NOOP, G_RM_NOOP2); + gDPSetFillColor(gfxCtx->polyOpa.p++, (GPACK_RGBA5551(r, g, b, 1) << 16) | GPACK_RGBA5551(r, g, b, 1)); + gDPFillRectangle(gfxCtx->polyOpa.p++, 0, ret, gScreenWidth - 1, gScreenHeight - ret - 1); + gDPPipeSync(gfxCtx->polyOpa.p++); + + if (ret > 0) { + gDPPipeSync(gfxCtx->overlay.p++); + gDPSetCycleType(gfxCtx->overlay.p++, G_CYC_FILL); + gDPSetRenderMode(gfxCtx->overlay.p++, G_RM_NOOP, G_RM_NOOP2); + gDPSetFillColor(gfxCtx->overlay.p++, (GPACK_RGBA5551(r, g, b, 1) << 16) | GPACK_RGBA5551(r, g, b, 1)); + gDPFillRectangle(gfxCtx->overlay.p++, 0, 0, gScreenWidth - 1, ret - 1); + gDPFillRectangle(gfxCtx->overlay.p++, 0, gScreenHeight - ret, gScreenWidth - 1, gScreenHeight - 1); + gDPPipeSync(gfxCtx->overlay.p++); + } + } + + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 2497); +} + +void func_80095974(GraphicsContext* gfxCtx) { + Gfx* gfxArr[5]; + + func_800C6AC4(gfxArr, gfxCtx, "../z_rcp.c", 2503); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80095248.s") + gSPDisplayList(gfxCtx->polyOpa.p++, sFillSetupDL); + gDPSetScissorFrac(gfxCtx->polyOpa.p++, G_SC_NON_INTERLACE, 0, 0, (s32)gScreenWidth * 4.0f, + (s32)gScreenHeight * 4.0f); + gDPSetDepthImage(gfxCtx->polyOpa.p++, gZBuffer); + gDPSetColorImage(gfxCtx->polyOpa.p++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gScreenWidth, gfxCtx->unk_2DC); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_80095974.s") + func_800C6B54(gfxArr, gfxCtx, "../z_rcp.c", 2513); +} |
