pl_rearmed_cbs.screen_centering_y = atoi(var.value);
}
+ var.value = NULL;
+ var.key = "pcsx_rearmed_screen_centering_h_adj";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ pl_rearmed_cbs.screen_centering_h_adj = atoi(var.value);
+ }
+
var.value = NULL;
var.key = "pcsx_rearmed_show_overscan";
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
},
"0",
},
+ {
+ "pcsx_rearmed_screen_centering_h_adj",
+ "(GPU) Manual height adjustment",
+ NULL,
+ "Height adjustment. Only effective when 'Screen centering' is set to 'Manual'.",
+ NULL,
+ "video",
+ {
+ V(-64), V(-48), V(-40), V(-32), V(-24), V(-16), V(-8), V(-7), V(-6), V(-5), V(-4), V(-3), V(-2), V(-1), V(0),
+ { NULL, NULL },
+ },
+ "0",
+ },
#undef V
#ifdef GPU_NEON
{
CE_INTVAL_P(screen_centering_type),
CE_INTVAL_P(screen_centering_x),
CE_INTVAL_P(screen_centering_y),
+ CE_INTVAL_P(screen_centering_h_adj),
CE_INTVAL_P(show_overscan),
CE_INTVAL(spu_config.iUseReverb),
CE_INTVAL(spu_config.iXAPitch),
int screen_centering_type_default;
int screen_centering_x;
int screen_centering_y;
+ int screen_centering_h_adj;
int show_overscan;
};
break;
case C_MANUAL:
y = gpu->state.screen_centering_y;
+ vres += gpu->state.screen_centering_h_adj;
break;
default:
// correct if slightly miscentered
if (gpu.state.screen_centering_type != cbs->screen_centering_type
|| gpu.state.screen_centering_x != cbs->screen_centering_x
|| gpu.state.screen_centering_y != cbs->screen_centering_y
+ || gpu.state.screen_centering_h_adj != cbs->screen_centering_h_adj
|| gpu.state.show_overscan != cbs->show_overscan) {
gpu.state.screen_centering_type = cbs->screen_centering_type;
gpu.state.screen_centering_x = cbs->screen_centering_x;
gpu.state.screen_centering_y = cbs->screen_centering_y;
+ gpu.state.screen_centering_h_adj = cbs->screen_centering_h_adj;
gpu.state.show_overscan = cbs->show_overscan;
update_width(&gpu);
update_height(&gpu);
uint32_t w_out_old, h_out_old, status_vo_old;
short screen_centering_type;
short screen_centering_type_default;
- int screen_centering_x;
- int screen_centering_y;
+ short screen_centering_x;
+ short screen_centering_y;
+ int screen_centering_h_adj;
} state;
struct {
int32_t set:3; /* -1 auto, 0 off, 1-3 fixed */