From 9a63e315195a0dcd669d2df1c62142eaf740de7a Mon Sep 17 00:00:00 2001 From: "SND\\edgbla_cp" Date: Sun, 20 May 2012 14:20:39 +0000 Subject: Configuration->CPU->Widescreen (16:9, GTE Hack). git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@78188 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- data/pcsxr.glade2 | 20 ++++++++++++++++++++ gui/ConfDlg.c | 2 ++ gui/Config.c | 2 ++ libpcsxcore/gte.c | 8 ++++---- libpcsxcore/psxcommon.h | 1 + win32/gui/ConfigurePlugins.c | 2 ++ win32/gui/WndMain.c | 3 +++ win32/pcsxr.rc | 16 +++++++++------- 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 @@ True + vertical True 4 + vertical 3 @@ -1439,9 +1441,11 @@ True + vertical True + vertical True @@ -1451,6 +1455,7 @@ True 5 + vertical True @@ -1644,6 +1649,21 @@ 2 + + + Widescreen (GTE Hack) + True + True + False + True + True + + + False + False + 3 + + 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 -- cgit v1.2.3