diff --git a/include/gfx.h b/include/gfx.h index 314497be..65319446 100644 --- a/include/gfx.h +++ b/include/gfx.h @@ -310,6 +310,8 @@ typedef enum SetupDL { /* 0x55 */ SETUPDL_85, /* 0x56 */ SETUPDL_86, /* 0x57 */ SETUPDL_87, + SETUPDL_36_POINT, + SETUPDL_63_POINT, SETUPDL_75_POINT, SETUPDL_76_POINT, SETUPDL_77_POINT, diff --git a/src/engine/fox_display.c b/src/engine/fox_display.c index 8a255b01..68593af8 100644 --- a/src/engine/fox_display.c +++ b/src/engine/fox_display.c @@ -779,7 +779,7 @@ void Display_Reticle(Player* player) { Matrix_Push(&gGfxMatrix); Matrix_Translate(gGfxMatrix, translate->x, translate->y, translate->z, MTXF_APPLY); if (gChargeTimers[player->num] >= 20) { - RCP_SetupDL(&gMasterDisp, SETUPDL_63); + RCP_SetupDL(&gMasterDisp, SETUPDL_63_POINT); if (i == 1) { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255); @@ -789,7 +789,7 @@ void Display_Reticle(Player* player) { gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255); } } else { - RCP_SetupDL_36(); + gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_36_POINT]); } if (i == 1) { diff --git a/src/engine/fox_rcp_setup.c b/src/engine/fox_rcp_setup.c index f6c06835..51386a12 100644 --- a/src/engine/fox_rcp_setup.c +++ b/src/engine/fox_rcp_setup.c @@ -1265,6 +1265,35 @@ Gfx gRcpSetupDLs[][9] = { G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE), gsSPEndDisplayList(), }, + { + /* SETUPDL_36_POINT */ + gsDPPipeSync(), + gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | + G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), + gsSPSetGeometryMode(0), + gsSPSetOtherMode(G_SETOTHERMODE_L, G_MDSFT_ALPHACOMPARE, 3, G_AC_NONE | G_ZS_PIXEL), + gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2), + gsSPSetOtherModeHi(G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE), + gsSPEndDisplayList(), + }, + { + /* SETUPDL_63_POINT */ + gsDPPipeSync(), + gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | + G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, + TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0), + gsSPSetGeometryMode(G_SHADE | G_SHADING_SMOOTH), + gsSPSetOtherMode(G_SETOTHERMODE_L, G_MDSFT_ALPHACOMPARE, 3, G_AC_NONE | G_ZS_PIXEL), + gsDPSetRenderMode(G_RM_CLD_SURF, G_RM_CLD_SURF2), + gsSPSetOtherModeHi(G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE), + gsSPEndDisplayList(), + }, { /* SETUPDL_75_POINT */ gsDPPipeSync(),