diff options
| author | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2012-05-20 14:20:39 +0000 |
|---|---|---|
| committer | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2012-05-20 14:20:39 +0000 |
| commit | 9a63e315195a0dcd669d2df1c62142eaf740de7a (patch) | |
| tree | f13c2533386ef867f79aab648f910146beb2ffd6 | |
| parent | a603b0692f07a5dc9980b9e76c7cddfe57805c12 (diff) | |
| download | pcsxr-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.glade2 | 20 | ||||
| -rw-r--r-- | gui/ConfDlg.c | 2 | ||||
| -rw-r--r-- | gui/Config.c | 2 | ||||
| -rw-r--r-- | libpcsxcore/gte.c | 8 | ||||
| -rw-r--r-- | libpcsxcore/psxcommon.h | 1 | ||||
| -rw-r--r-- | win32/gui/ConfigurePlugins.c | 2 | ||||
| -rw-r--r-- | win32/gui/WndMain.c | 3 | ||||
| -rw-r--r-- | win32/pcsxr.rc | 16 | ||||
| -rw-r--r-- | win32/resource.h | 1 |
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
|
