summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2012-05-20 14:20:39 +0000
committerSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2012-05-20 14:20:39 +0000
commit9a63e315195a0dcd669d2df1c62142eaf740de7a (patch)
treef13c2533386ef867f79aab648f910146beb2ffd6
parenta603b0692f07a5dc9980b9e76c7cddfe57805c12 (diff)
downloadpcsxr-9a63e315195a0dcd669d2df1c62142eaf740de7a.tar.gz
Configuration->CPU->Widescreen (16:9, GTE Hack).
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@78188 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--data/pcsxr.glade220
-rw-r--r--gui/ConfDlg.c2
-rw-r--r--gui/Config.c2
-rw-r--r--libpcsxcore/gte.c8
-rw-r--r--libpcsxcore/psxcommon.h1
-rw-r--r--win32/gui/ConfigurePlugins.c2
-rw-r--r--win32/gui/WndMain.c3
-rw-r--r--win32/pcsxr.rc16
-rw-r--r--win32/resource.h1
9 files changed, 44 insertions, 11 deletions
diff --git a/data/pcsxr.glade2 b/data/pcsxr.glade2
index 49960023..93935afc 100644
--- a/data/pcsxr.glade2
+++ b/data/pcsxr.glade2
@@ -842,10 +842,12 @@
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox4">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
<widget class="GtkVBox" id="vbox28">
<property name="visible">True</property>
<property name="border_width">4</property>
+ <property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<widget class="GtkFrame" id="frame17">
@@ -1439,9 +1441,11 @@
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox1">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
<widget class="GtkVBox" id="vbox25">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
<widget class="GtkFrame" id="frame15">
<property name="visible">True</property>
@@ -1451,6 +1455,7 @@
<widget class="GtkVBox" id="vbox26">
<property name="visible">True</property>
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<child>
<widget class="GtkTable" id="table3">
<property name="visible">True</property>
@@ -1644,6 +1649,21 @@
<property name="position">2</property>
</packing>
</child>
+ <child>
+ <widget class="GtkCheckButton" id="GtkCheckButton_Widescreen">
+ <property name="label" translatable="yes">Widescreen (GTE Hack)</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
</widget>
</child>
<child>
diff --git a/gui/ConfDlg.c b/gui/ConfDlg.c
index 7dfdbf4e..b1ac3760 100644
--- a/gui/ConfDlg.c
+++ b/gui/ConfDlg.c
@@ -832,6 +832,7 @@ void OnCpu_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) {
Config.SpuIrq = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_SpuIrq")));
Config.RCntFix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_RCntFix")));
Config.VSyncWA = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_VSyncWA")));
+ Config.Widescreen = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_Widescreen")));
SaveConfig();
@@ -884,6 +885,7 @@ void OnConf_Cpu() {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_SpuIrq")), Config.SpuIrq);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_RCntFix")), Config.RCntFix);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_VSyncWA")), Config.VSyncWA);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_Widescreen")), Config.Widescreen);
// Setup a handler for when Close or Cancel is clicked
g_signal_connect_data(GTK_OBJECT(CpuDlg), "response",
diff --git a/gui/Config.c b/gui/Config.c
index d59c728e..220cbfad 100644
--- a/gui/Config.c
+++ b/gui/Config.c
@@ -133,6 +133,7 @@ int LoadConfig(PcsxConfig *Conf) {
Config.SpuIrq = GetValueb(data, "SpuIrq");
Config.RCntFix = GetValueb(data, "RCntFix");
Config.VSyncWA = GetValueb(data, "VSyncWA");
+ Config.Widescreen = GetValueb(data, "Widescreen");
Config.Cpu = GetValuel(data, "Cpu");
Config.PsxType = GetValuel(data, "PsxType");
@@ -174,6 +175,7 @@ void SaveConfig() {
SetValueb("SpuIrq", Config.SpuIrq);
SetValueb("RCntFix", Config.RCntFix);
SetValueb("VSyncWA", Config.VSyncWA);
+ SetValueb("Widescreen", Config.Widescreen);
SetValuel("Cpu", Config.Cpu);
SetValuel("PsxType", Config.PsxType);
diff --git a/libpcsxcore/gte.c b/libpcsxcore/gte.c
index 1ce8fecf..3c9ea449 100644
--- a/libpcsxcore/gte.c
+++ b/libpcsxcore/gte.c
@@ -402,13 +402,13 @@ void gteRTPS() {
quotient = limE(DIVIDE(gteH, gteSZ3));
gteSXY0 = gteSXY1;
gteSXY1 = gteSXY2;
- gteSX2 = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient)) >> 16);
+ gteSX2 = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient) * (Config.Widescreen ? 0.75 : 1)) >> 16);
gteSY2 = limG2(F((s64)gteOFY + ((s64)gteIR2 * quotient)) >> 16);
fquotient = flimE((float)(gteH << 16) / (float)gteSZ3);
GPU_addVertex(gteSX2,
gteSY2,
- limG1_ia((s64)gteOFX + (s64)(gteIR1 * fquotient)), // TODO: MAC1 calc instead of IR1.
+ limG1_ia((s64)gteOFX + (s64)(gteIR1 * fquotient) * (Config.Widescreen ? 0.75 : 1)), // TODO: MAC1 calc instead of IR1.
limG2_ia((s64)gteOFY + (s64)(gteIR2 * fquotient)), // TODO: MAC2 calc instead of IR2.
((s64)gteSZ3)); // TODO: MAC3 calc instead of SZ3.
@@ -440,13 +440,13 @@ void gteRTPT() {
gteIR3 = limB3(gteMAC3, 0);
fSZ(v) = limD(gteMAC3);
quotient = limE(DIVIDE(gteH, fSZ(v)));
- fSX(v) = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient)) >> 16);
+ fSX(v) = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient) * (Config.Widescreen ? 0.75 : 1)) >> 16);
fSY(v) = limG2(F((s64)gteOFY + ((s64)gteIR2 * quotient)) >> 16);
fquotient = flimE((float)(gteH << 16) / (float)fSZ(v));
GPU_addVertex(fSX(v),
fSY(v),
- limG1_ia((s64)gteOFX + (s64)(gteIR1 * fquotient)), // TODO: MAC1 calc instead of IR1.
+ limG1_ia((s64)gteOFX + (s64)(gteIR1 * fquotient) * (Config.Widescreen ? 0.75 : 1)), // TODO: MAC1 calc instead of IR1.
limG2_ia((s64)gteOFY + (s64)(gteIR2 * fquotient)), // TODO: MAC2 calc instead of IR2.
((s64)fSZ(v))); // TODO: MAC3 calc instead of fSZ(v).
}
diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h
index dbedc429..5aec4942 100644
--- a/libpcsxcore/psxcommon.h
+++ b/libpcsxcore/psxcommon.h
@@ -149,6 +149,7 @@ typedef struct {
boolean RCntFix;
boolean UseNet;
boolean VSyncWA;
+ boolean Widescreen;
u8 Cpu; // CPU_DYNAREC or CPU_INTERPRETER
u8 PsxType; // PSX_TYPE_NTSC or PSX_TYPE_PAL
#ifdef _WIN32
diff --git a/win32/gui/ConfigurePlugins.c b/win32/gui/ConfigurePlugins.c
index faa0f69c..dc51f013 100644
--- a/win32/gui/ConfigurePlugins.c
+++ b/win32/gui/ConfigurePlugins.c
@@ -78,6 +78,7 @@ int LoadConfig() {
QueryKeyV("SpuIrq", Conf->SpuIrq);
QueryKeyV("RCntFix", Conf->RCntFix);
QueryKeyV("VSyncWA", Conf->VSyncWA);
+ QueryKeyV("Widescreen", Conf->Widescreen);
QueryKeyV("Cpu", Conf->Cpu);
QueryKeyV("PsxType", Conf->PsxType);
@@ -129,6 +130,7 @@ void SaveConfig() {
SetKeyV("SpuIrq", Conf->SpuIrq);
SetKeyV("RCntFix", Conf->RCntFix);
SetKeyV("VSyncWA", Conf->VSyncWA);
+ SetKeyV("Widescreen", Conf->Widescreen);
SetKeyV("Cpu", Conf->Cpu);
SetKeyV("PsxType", Conf->PsxType);
diff --git a/win32/gui/WndMain.c b/win32/gui/WndMain.c
index 924a0de8..84592bee 100644
--- a/win32/gui/WndMain.c
+++ b/win32/gui/WndMain.c
@@ -1312,6 +1312,7 @@ BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPar
Button_SetText(GetDlgItem(hW,IDC_SPUIRQ), _("Spu Irq Always Enabled"));
Button_SetText(GetDlgItem(hW,IDC_RCNTFIX), _("Parasite Eve 2, Vandal Hearts 1/2 Fix"));
Button_SetText(GetDlgItem(hW,IDC_VSYNCWA), _("InuYasha Sengoku Battle Fix"));
+ Button_SetText(GetDlgItem(hW,IDC_WIDESCREEN), _("Widescreen (GTE Hack)"));
Static_SetText(GetDlgItem(hW,IDC_MISCOPT), _("Options"));
Static_SetText(GetDlgItem(hW,IDC_SELPSX), _("Psx System Type"));
@@ -1328,6 +1329,7 @@ BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPar
Button_SetCheck(GetDlgItem(hW,IDC_SPUIRQ), Config.SpuIrq);
Button_SetCheck(GetDlgItem(hW,IDC_RCNTFIX), Config.RCntFix);
Button_SetCheck(GetDlgItem(hW,IDC_VSYNCWA), Config.VSyncWA);
+ Button_SetCheck(GetDlgItem(hW,IDC_WIDESCREEN), Config.Widescreen);
ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "NTSC");
ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "PAL");
ComboBox_SetCurSel(GetDlgItem(hW,IDC_PSXTYPES),Config.PsxType);
@@ -1371,6 +1373,7 @@ BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPar
Config.SpuIrq = Button_GetCheck(GetDlgItem(hW,IDC_SPUIRQ));
Config.RCntFix = Button_GetCheck(GetDlgItem(hW,IDC_RCNTFIX));
Config.VSyncWA = Button_GetCheck(GetDlgItem(hW,IDC_VSYNCWA));
+ Config.Widescreen = Button_GetCheck(GetDlgItem(hW,IDC_WIDESCREEN));
tmp = Config.Debug;
Config.Debug = Button_GetCheck(GetDlgItem(hW,IDC_DEBUG));
if (tmp != Config.Debug) {
diff --git a/win32/pcsxr.rc b/win32/pcsxr.rc
index 7ccece86..53332c81 100644
--- a/win32/pcsxr.rc
+++ b/win32/pcsxr.rc
@@ -113,13 +113,13 @@ BEGIN
GROUPBOX "",IDC_STATIC,43,100,234,79
END
-IDD_CPUCONF DIALOG DISCARDABLE 0, 0, 232, 194
+IDD_CPUCONF DIALOG DISCARDABLE 0, 0, 232, 201
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Cpu Config"
FONT 8, "MS Sans Serif"
BEGIN
- DEFPUSHBUTTON "OK",IDOK,50,166,50,14
- PUSHBUTTON "Cancel",IDCANCEL,120,166,50,14
+ DEFPUSHBUTTON "OK",IDOK,50,181,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,120,181,50,14
CONTROL "Disable Xa Decoding",IDC_XA,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,10,15,91,10
CONTROL "Sio Irq Always Enabled",IDC_SIO,"Button",
@@ -127,11 +127,11 @@ BEGIN
CONTROL "Black && White Movies",IDC_MDEC,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,10,60,100,10
CONTROL "Autodetect",IDC_PSXAUTO,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,10,137,83,10
- GROUPBOX "Misc Options",IDC_MISCOPT,5,5,220,114
- COMBOBOX IDC_PSXTYPES,105,137,53,50,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_TABSTOP,10,153,83,10
+ GROUPBOX "Misc Options",IDC_MISCOPT,5,5,220,129
+ COMBOBOX IDC_PSXTYPES,105,153,53,50,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Select Psx System Type",IDC_SELPSX,5,123,220,35
+ GROUPBOX "Select Psx System Type",IDC_SELPSX,5,139,220,35
CONTROL "Disable Cd Audio",IDC_CDDA,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,112,15,113,10
CONTROL "Enable Console Output",IDC_PSXOUT,"Button",
@@ -148,6 +148,8 @@ BEGIN
WS_TABSTOP,112,60,76,10
CONTROL "Slow Boot",IDC_SLOWBOOT,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,10,104,113,10
+ CONTROL "Widescreen (GTE Hack)",IDC_WIDESCREEN,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,118,113,10
END
IDD_NETPLAY DIALOG DISCARDABLE 0, 0, 165, 95
diff --git a/win32/resource.h b/win32/resource.h
index 51e88254..5538543a 100644
--- a/win32/resource.h
+++ b/win32/resource.h
@@ -71,6 +71,7 @@
#define IDC_MDEC2 1017
#define IDC_CDTIMING 1017
#define IDC_SLOWBOOT 1017
+#define IDC_WIDESCREEN 1264
#define IDC_ASMCHECK4 1018
#define IDC_ASMCHECK5 1019
#define IDC_RELOAD1 1019