mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-06 09:32:49 -04:00
Disable antialias in render modes
This commit is contained in:
@@ -68,6 +68,12 @@ ROMALLOCATION_GAME = 0x0d0000
|
||||
|
||||
ROM_SIZE := 32
|
||||
|
||||
# ANTIALIAS
|
||||
#
|
||||
# Enable (1) or disable (0) antialias
|
||||
|
||||
ANTIALIAS = 0
|
||||
|
||||
# PROFILING
|
||||
#
|
||||
# If enabled (1), press L to show frate stats followed by D-right to toggle
|
||||
@@ -171,6 +177,10 @@ DEFINES := \
|
||||
C_DEFINES := $(foreach d,$(DEFINES),-D$(d))
|
||||
AS_DEFINES := $(foreach d,$(DEFINES),--defsym $(d)) --defsym _LANGUAGE_ASSEMBLY=1
|
||||
|
||||
ifeq ($(ANTIALIAS),1)
|
||||
C_DEFINES += -DANTIALIAS
|
||||
endif
|
||||
|
||||
ifeq ($(PROFILING),1)
|
||||
C_DEFINES += -DPROFILING
|
||||
endif
|
||||
|
||||
+37
-29
@@ -682,154 +682,162 @@
|
||||
#define G_BL_1 2
|
||||
#define G_BL_0 3
|
||||
|
||||
#ifdef ANTIALIAS
|
||||
#define AA_DEF AA_EN
|
||||
#define RD_DEF IM_RD
|
||||
#else
|
||||
#define AA_DEF 0
|
||||
#define RD_DEF 0
|
||||
#endif
|
||||
|
||||
#define GBL_c1(m1a, m1b, m2a, m2b) \
|
||||
(m1a) << 30 | (m1b) << 26 | (m2a) << 22 | (m2b) << 18
|
||||
#define GBL_c2(m1a, m1b, m2a, m2b) \
|
||||
(m1a) << 28 | (m1b) << 24 | (m2a) << 20 | (m2b) << 16
|
||||
|
||||
#define RM_AA_ZB_OPA_SURF(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | Z_CMP | Z_UPD | RD_DEF | CVG_DST_CLAMP | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_RA_ZB_OPA_SURF(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | CVG_DST_CLAMP | \
|
||||
AA_DEF | Z_CMP | Z_UPD | CVG_DST_CLAMP | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_ZB_XLU_SURF(clk) \
|
||||
AA_EN | Z_CMP | IM_RD | CVG_DST_WRAP | CLR_ON_CVG | \
|
||||
AA_DEF | Z_CMP | IM_RD | CVG_DST_WRAP | CLR_ON_CVG | \
|
||||
FORCE_BL | ZMODE_XLU | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_ZB_OPA_DECAL(clk) \
|
||||
AA_EN | Z_CMP | IM_RD | CVG_DST_WRAP | ALPHA_CVG_SEL | \
|
||||
AA_DEF | Z_CMP | RD_DEF | CVG_DST_WRAP | ALPHA_CVG_SEL | \
|
||||
ZMODE_DEC | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_RA_ZB_OPA_DECAL(clk) \
|
||||
AA_EN | Z_CMP | CVG_DST_WRAP | ALPHA_CVG_SEL | \
|
||||
AA_DEF | Z_CMP | CVG_DST_WRAP | ALPHA_CVG_SEL | \
|
||||
ZMODE_DEC | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_ZB_XLU_DECAL(clk) \
|
||||
AA_EN | Z_CMP | IM_RD | CVG_DST_WRAP | CLR_ON_CVG | \
|
||||
AA_DEF | Z_CMP | IM_RD | CVG_DST_WRAP | CLR_ON_CVG | \
|
||||
FORCE_BL | ZMODE_DEC | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_ZB_OPA_INTER(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | Z_CMP | Z_UPD | RD_DEF | CVG_DST_CLAMP | \
|
||||
ALPHA_CVG_SEL | ZMODE_INTER | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_RA_ZB_OPA_INTER(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | CVG_DST_CLAMP | \
|
||||
AA_DEF | Z_CMP | Z_UPD | CVG_DST_CLAMP | \
|
||||
ALPHA_CVG_SEL | ZMODE_INTER | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_ZB_XLU_INTER(clk) \
|
||||
AA_EN | Z_CMP | IM_RD | CVG_DST_WRAP | CLR_ON_CVG | \
|
||||
AA_DEF | Z_CMP | IM_RD | CVG_DST_WRAP | CLR_ON_CVG | \
|
||||
FORCE_BL | ZMODE_INTER | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_ZB_XLU_LINE(clk) \
|
||||
AA_EN | Z_CMP | IM_RD | CVG_DST_CLAMP | CVG_X_ALPHA | \
|
||||
AA_DEF | Z_CMP | IM_RD | CVG_DST_CLAMP | CVG_X_ALPHA | \
|
||||
ALPHA_CVG_SEL | FORCE_BL | ZMODE_XLU | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_ZB_DEC_LINE(clk) \
|
||||
AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | CVG_X_ALPHA | \
|
||||
AA_DEF | Z_CMP | IM_RD | CVG_DST_SAVE | CVG_X_ALPHA | \
|
||||
ALPHA_CVG_SEL | FORCE_BL | ZMODE_DEC | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_ZB_TEX_EDGE(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_EN | Z_CMP | Z_UPD | RD_DEF | CVG_DST_CLAMP | \
|
||||
CVG_X_ALPHA | ALPHA_CVG_SEL | ZMODE_OPA | TEX_EDGE | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_ZB_TEX_INTER(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | Z_CMP | Z_UPD | RD_DEF | CVG_DST_CLAMP | \
|
||||
CVG_X_ALPHA | ALPHA_CVG_SEL | ZMODE_INTER | TEX_EDGE | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_ZB_SUB_SURF(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_FULL | \
|
||||
AA_DEF | Z_CMP | Z_UPD | IM_RD | CVG_DST_FULL | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_ZB_PCL_SURF(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | \
|
||||
ZMODE_OPA | G_AC_DITHER | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_ZB_OPA_TERR(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | Z_CMP | Z_UPD | RD_DEF | CVG_DST_CLAMP | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_ZB_TEX_TERR(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | Z_CMP | Z_UPD | RD_DEF | CVG_DST_CLAMP | \
|
||||
CVG_X_ALPHA | ALPHA_CVG_SEL | ZMODE_OPA | TEX_EDGE | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_ZB_SUB_TERR(clk) \
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_FULL | \
|
||||
AA_DEF | Z_CMP | Z_UPD | IM_RD | CVG_DST_FULL | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
|
||||
#define RM_AA_OPA_SURF(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | RD_DEF | CVG_DST_CLAMP | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_RA_OPA_SURF(clk) \
|
||||
AA_EN | CVG_DST_CLAMP | \
|
||||
AA_DEF | CVG_DST_CLAMP | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_XLU_SURF(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_WRAP | CLR_ON_CVG | FORCE_BL | \
|
||||
AA_DEF | IM_RD | CVG_DST_WRAP | CLR_ON_CVG | FORCE_BL | \
|
||||
ZMODE_OPA | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_XLU_LINE(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_CLAMP | CVG_X_ALPHA | \
|
||||
AA_DEF | IM_RD | CVG_DST_CLAMP | CVG_X_ALPHA | \
|
||||
ALPHA_CVG_SEL | FORCE_BL | ZMODE_OPA | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_DEC_LINE(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_FULL | CVG_X_ALPHA | \
|
||||
AA_DEF | IM_RD | CVG_DST_FULL | CVG_X_ALPHA | \
|
||||
ALPHA_CVG_SEL | FORCE_BL | ZMODE_OPA | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_TEX_EDGE(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_EN | RD_DEF | CVG_DST_CLAMP | \
|
||||
CVG_X_ALPHA | ALPHA_CVG_SEL | ZMODE_OPA | TEX_EDGE | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_SUB_SURF(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_FULL | \
|
||||
AA_DEF | IM_RD | CVG_DST_FULL | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
|
||||
|
||||
#define RM_AA_PCL_SURF(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | IM_RD | CVG_DST_CLAMP | \
|
||||
ZMODE_OPA | G_AC_DITHER | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_OPA_TERR(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | RD_DEF | CVG_DST_CLAMP | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_TEX_TERR(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_CLAMP | \
|
||||
AA_DEF | RD_DEF | CVG_DST_CLAMP | \
|
||||
CVG_X_ALPHA | ALPHA_CVG_SEL | ZMODE_OPA | TEX_EDGE | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
#define RM_AA_SUB_TERR(clk) \
|
||||
AA_EN | IM_RD | CVG_DST_FULL | \
|
||||
AA_DEF | IM_RD | CVG_DST_FULL | \
|
||||
ZMODE_OPA | ALPHA_CVG_SEL | \
|
||||
GBL_c##clk(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
|
||||
|
||||
|
||||
@@ -947,7 +947,6 @@ void lvFindThreats(void)
|
||||
|
||||
u8 g_LvShowStats = 0;
|
||||
u8 g_LvStatsPage = 0;
|
||||
u8 g_LvAntialias = 1;
|
||||
u8 g_LvRateIndex = 59;
|
||||
u8 g_LvOom = 0;
|
||||
u32 g_LvOomSize = 0;
|
||||
@@ -1066,9 +1065,6 @@ Gfx *lvPrintRateText(Gfx *gdl)
|
||||
}
|
||||
|
||||
x = 10;
|
||||
sprintf(buffer, "Antialias %s\n", g_LvAntialias ? "on" : "off");
|
||||
gdl = textRender(gdl, &x, &y, buffer, g_CharsHandelGothicXs, g_FontHandelGothicXs, 0x00ff00a0, 0x000000a0, viGetWidth(), viGetHeight(), 0, 0);
|
||||
|
||||
sprintf(buffer, "mema free %d KB\n", memaGetLongestFree() / 1024);
|
||||
gdl = textRender(gdl, &x, &y, buffer, g_CharsHandelGothicXs, g_FontHandelGothicXs, 0x00ff00a0, 0x000000a0, viGetWidth(), viGetHeight(), 0, 0);
|
||||
|
||||
@@ -1090,11 +1086,6 @@ Gfx *lvPrint(Gfx *gdl)
|
||||
g_LvShowStats = 1 - g_LvShowStats;
|
||||
}
|
||||
|
||||
if (joyGetButtonsPressedThisFrame(0, U_JPAD)) {
|
||||
g_LvAntialias = 1 - g_LvAntialias;
|
||||
viUpdateMode();
|
||||
}
|
||||
|
||||
#ifdef PROFILING
|
||||
if (joyGetButtonsPressedThisFrame(0, R_JPAD)) {
|
||||
g_LvStatsPage = (g_LvStatsPage + 1) % 2;
|
||||
|
||||
+5
-12
@@ -593,8 +593,6 @@ OSScTask *__scTaskReady(OSScTask *t)
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern u8 g_LvAntialias;
|
||||
|
||||
/*
|
||||
* __scTaskComplete checks to see if the task is complete (all RCP
|
||||
* operations have been performed) and sends the done message to the
|
||||
@@ -627,7 +625,6 @@ s32 __scTaskComplete(OSSched *sc, OSScTask *t)
|
||||
|| var8008dd60[1 - var8005ce74]->fldRegs[0].origin != var8008dcc0[1 - var8005ce74].fldRegs[0].origin
|
||||
|| var8008dd60[1 - var8005ce74]->fldRegs[1].origin != var8008dcc0[1 - var8005ce74].fldRegs[1].origin) {
|
||||
s32 mask = osSetIntMask(0x80401);
|
||||
u32 features;
|
||||
|
||||
*var8008dd60[1 - var8005ce74] = var8008dcc0[1 - var8005ce74];
|
||||
|
||||
@@ -638,15 +635,11 @@ s32 __scTaskComplete(OSSched *sc, OSScTask *t)
|
||||
osViSetXScale(g_ViXScalesBySlot[1 - var8005ce74]);
|
||||
osViSetYScale(g_ViYScalesBySlot[1 - var8005ce74]);
|
||||
|
||||
features = OS_VI_GAMMA_OFF;
|
||||
|
||||
if (g_LvAntialias) {
|
||||
features |= OS_VI_DITHER_FILTER_ON;
|
||||
} else {
|
||||
features |= OS_VI_DITHER_FILTER_OFF;
|
||||
}
|
||||
|
||||
osViSetSpecialFeatures(features);
|
||||
#ifdef ANTIALIAS
|
||||
osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON);
|
||||
#else
|
||||
osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_OFF);
|
||||
#endif
|
||||
}
|
||||
|
||||
g_SchedViModesPending[1 - var8005ce74] = false;
|
||||
|
||||
+5
-11
@@ -257,8 +257,6 @@ void viBlack(bool black)
|
||||
g_ViUnblackTimer = black;
|
||||
}
|
||||
|
||||
extern u8 g_LvAntialias;
|
||||
|
||||
void vi00009ed4(void)
|
||||
{
|
||||
s32 prevmask;
|
||||
@@ -296,15 +294,11 @@ void vi00009ed4(void)
|
||||
osViSetXScale(g_ViXScalesBySlot[1 - var8005ce74]);
|
||||
osViSetYScale(g_ViYScalesBySlot[1 - var8005ce74]);
|
||||
|
||||
features = OS_VI_GAMMA_OFF;
|
||||
|
||||
if (g_LvAntialias) {
|
||||
features |= OS_VI_DITHER_FILTER_ON;
|
||||
} else {
|
||||
features |= OS_VI_DITHER_FILTER_OFF;
|
||||
}
|
||||
|
||||
osViSetSpecialFeatures(features);
|
||||
#ifdef ANTIALIAS
|
||||
osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON);
|
||||
#else
|
||||
osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_OFF);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if MATCHING
|
||||
|
||||
Reference in New Issue
Block a user