From fe0b937cd6eadeb02faefbd6a924ba5f902d5550 Mon Sep 17 00:00:00 2001 From: dborth Date: Mon, 26 Jan 2009 07:10:20 +0000 Subject: [PATCH] future support for video shifting --- source/ngc/fceuconfig.cpp | 3 +++ source/ngc/fceugx.h | 2 ++ source/ngc/gcvideo.cpp | 8 ++++---- source/ngc/preferences.cpp | 4 ++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/source/ngc/fceuconfig.cpp b/source/ngc/fceuconfig.cpp index 940527a..eac80c8 100644 --- a/source/ngc/fceuconfig.cpp +++ b/source/ngc/fceuconfig.cpp @@ -37,6 +37,9 @@ DefaultSettings () GCSettings.widescreen = 0; // no aspect ratio correction GCSettings.hideoverscan = 2; // hide both horizontal and vertical + GCSettings.xshift = 0; // video shift + GCSettings.yshift = 0; + GCSettings.LoadMethod = METHOD_AUTO; // Auto, SD, DVD, USB, Network (SMB) GCSettings.SaveMethod = METHOD_AUTO; // Auto, SD, Memory Card Slot A, Memory Card Slot B, USB, Network (SMB) sprintf (GCSettings.LoadFolder,"fceugx/roms"); // Path to game files diff --git a/source/ngc/fceugx.h b/source/ngc/fceugx.h index 19fff23..13fa3e2 100644 --- a/source/ngc/fceugx.h +++ b/source/ngc/fceugx.h @@ -65,6 +65,8 @@ struct SGCSettings{ int FourScore; int zapper; int crosshair; + int xshift; // video output shift + int yshift; }; void ExitToLoader(); diff --git a/source/ngc/gcvideo.cpp b/source/ngc/gcvideo.cpp index 96480d5..058565c 100644 --- a/source/ngc/gcvideo.cpp +++ b/source/ngc/gcvideo.cpp @@ -438,10 +438,10 @@ UpdateScaling() yscale *= GCSettings.ZoomLevel; // update vertex position matrix - square[0] = square[9] = (-xscale); - square[3] = square[6] = (xscale); - square[1] = square[4] = (yscale); - square[7] = square[10] = (-yscale); + square[0] = square[9] = (-xscale) + GCSettings.xshift; + square[3] = square[6] = (xscale) + GCSettings.xshift; + square[1] = square[4] = (yscale) - GCSettings.yshift; + square[7] = square[10] = (-yscale) - GCSettings.yshift; DCFlushRange (square, 32); // update memory BEFORE the GPU accesses it! draw_init (); diff --git a/source/ngc/preferences.cpp b/source/ngc/preferences.cpp index 5156835..7ff0301 100644 --- a/source/ngc/preferences.cpp +++ b/source/ngc/preferences.cpp @@ -161,6 +161,8 @@ preparePrefsData (int method) createXMLSetting("render", "Video Filtering", toStr(GCSettings.render)); createXMLSetting("widescreen", "Aspect Ratio Correction", toStr(GCSettings.widescreen)); createXMLSetting("hideoverscan", "Video Cropping", toStr(GCSettings.hideoverscan)); + createXMLSetting("xshift", "Horizontal Video Shift", toStr(GCSettings.xshift)); + createXMLSetting("yshift", "Vertical Video Shift", toStr(GCSettings.yshift)); createXMLSection("Controller", "Controller Settings"); @@ -312,6 +314,8 @@ decodePrefsData (int method) loadXMLSetting(&GCSettings.render, "render"); loadXMLSetting(&GCSettings.widescreen, "widescreen"); loadXMLSetting(&GCSettings.hideoverscan, "hideoverscan"); + loadXMLSetting(&GCSettings.xshift, "xshift"); + loadXMLSetting(&GCSettings.yshift, "yshift"); // Controller Settings loadXMLSetting(&GCSettings.FourScore, "FSDisable");