aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authornotaz2012-08-13 00:02:23 +0300
committernotaz2012-10-12 00:05:07 +0300
commit0b02eb7712f1272fa7f38b0af41968b53af3b5a8 (patch)
tree4669cafcabf88f0a5be798bbcca8626937767dc1 /frontend
parentcb88320b4ddbfd8c1714f9a6cba31543a585a8cd (diff)
downloadpcsx_rearmed-0b02eb7712f1272fa7f38b0af41968b53af3b5a8.tar.gz
pcsx_rearmed-0b02eb7712f1272fa7f38b0af41968b53af3b5a8.tar.bz2
pcsx_rearmed-0b02eb7712f1272fa7f38b0af41968b53af3b5a8.zip
add support for software-enhanced rendering
Diffstat (limited to 'frontend')
-rw-r--r--frontend/main.c2
-rw-r--r--frontend/menu.c8
-rw-r--r--frontend/plugin_lib.h2
3 files changed, 11 insertions, 1 deletions
diff --git a/frontend/main.c b/frontend/main.c
index 19e8319..c98e9e0 100644
--- a/frontend/main.c
+++ b/frontend/main.c
@@ -143,6 +143,8 @@ void emu_set_default_config(void)
Config.PsxAuto = 1;
pl_rearmed_cbs.gpu_neon.allow_interlace = 2; // auto
+ pl_rearmed_cbs.gpu_neon.enhancement_enable =
+ pl_rearmed_cbs.gpu_neon.enhancement_no_main = 0;
pl_rearmed_cbs.gpu_peops.iUseDither = 0;
pl_rearmed_cbs.gpu_peops.dwActFixes = 1<<7;
pl_rearmed_cbs.gpu_unai.abe_hack =
diff --git a/frontend/menu.c b/frontend/menu.c
index 42a53e1..2fc56ba 100644
--- a/frontend/menu.c
+++ b/frontend/menu.c
@@ -288,6 +288,8 @@ static const struct {
CE_INTVAL_P(gpu_unai.no_light),
CE_INTVAL_P(gpu_unai.no_blend),
CE_INTVAL_P(gpu_neon.allow_interlace),
+ CE_INTVAL_P(gpu_neon.enhancement_enable),
+ CE_INTVAL_P(gpu_neon.enhancement_no_main),
CE_INTVAL_P(gpu_peopsgl.bDrawDither),
CE_INTVAL_P(gpu_peopsgl.iFilterType),
CE_INTVAL_P(gpu_peopsgl.iFrameTexType),
@@ -1119,17 +1121,21 @@ void menu_set_filter_list(void *filters)
#ifdef __ARM_NEON__
static const char h_gpu_neon[] = "Configure built-in NEON GPU plugin";
+static const char h_gpu_neon_enhanced[] = "Renders in double resolution at the cost of lower performance";
+static const char h_gpu_neon_enhanced_hack[] = "Speed hack for above option (glitches some games)";
static const char *men_gpu_interlace[] = { "Off", "On", "Auto", NULL };
static menu_entry e_menu_plugin_gpu_neon[] =
{
mee_enum ("Enable interlace mode", 0, pl_rearmed_cbs.gpu_neon.allow_interlace, men_gpu_interlace),
+ mee_onoff_h ("Enhanced resolution (slow)", 0, pl_rearmed_cbs.gpu_neon.enhancement_enable, 1, h_gpu_neon_enhanced),
+ mee_onoff_h ("Enhanced res. speed hack", 0, pl_rearmed_cbs.gpu_neon.enhancement_no_main, 1, h_gpu_neon_enhanced_hack),
mee_end,
};
static int menu_loop_plugin_gpu_neon(int id, int keys)
{
- int sel = 0;
+ static int sel = 0;
me_loop(e_menu_plugin_gpu_neon, &sel);
return 0;
}
diff --git a/frontend/plugin_lib.h b/frontend/plugin_lib.h
index bcf74ac..7687bf8 100644
--- a/frontend/plugin_lib.h
+++ b/frontend/plugin_lib.h
@@ -60,6 +60,8 @@ struct rearmed_cbs {
unsigned int only_16bpp; // platform is 16bpp-only
struct {
int allow_interlace; // 0 off, 1 on, 2 guess
+ int enhancement_enable;
+ int enhancement_no_main;
} gpu_neon;
struct {
int iUseDither;