diff options
| author | iCatButler <i.am.catbutler@gmail.com> | 2017-03-17 21:09:39 +0000 |
|---|---|---|
| committer | iCatButler <i.am.catbutler@gmail.com> | 2017-03-17 21:09:39 +0000 |
| commit | d7a31360f90c1ef79587018e54ae9665831b7f12 (patch) | |
| tree | 776ff0ea6198a0b9617bec004732bd0d7af5dcbb | |
| parent | b9ca947ae0c9d45a4f76a58d1a0e1e4924f32a72 (diff) | |
| download | pcsxr-d7a31360f90c1ef79587018e54ae9665831b7f12.tar.gz | |
Add support for arbitrary clock multipliers
Allows users to set an arbitrary floating point value to multiply CPU clock speed by. Drop box provides access to all the previous presets.
| -rwxr-xr-x | libpcsxcore/misc.c | 27 | ||||
| -rwxr-xr-x | libpcsxcore/psxcommon.h | 2 | ||||
| -rwxr-xr-x | win32/gui/ConfigurePlugins.c | 4 | ||||
| -rwxr-xr-x | win32/gui/WndMain.c | 25 | ||||
| -rwxr-xr-x | win32/pcsxr.rc | 14 |
5 files changed, 28 insertions, 44 deletions
diff --git a/libpcsxcore/misc.c b/libpcsxcore/misc.c index 9b9b226a..f54abeb6 100755 --- a/libpcsxcore/misc.c +++ b/libpcsxcore/misc.c @@ -363,32 +363,7 @@ int CheckCdrom() { } else { - switch (Config.PsxClock) - { - case 0: - PsxClockSpeed = 16934400; // 16.9344 MHz (0.5x) - break; - case 1: - PsxClockSpeed = 25401600; // 25.4016 MHz (0.75x) - break; - case 2: - PsxClockSpeed = 50803200; // 50.8032 MHz (1.5x) - break; - case 3: - PsxClockSpeed = 67737600; // 67.7376 MHz (2x) - break; - case 4: - PsxClockSpeed = 101606400; // 101.6064 MHz (3x) - break; - case 5: - PsxClockSpeed = 135475200; // 135.4752 MHz (4x) - break; - case 6: - PsxClockSpeed = 169344000; // 169.3440 MHz (5x) - break; - default: - PsxClockSpeed = 33868800; // 33.8688 MHz (stock) - } + PsxClockSpeed = 33868800 * Config.PsxClock; } if (CdromLabel[0] == ' ') { diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h index d9cf2bdb..f89044a2 100755 --- a/libpcsxcore/psxcommon.h +++ b/libpcsxcore/psxcommon.h @@ -166,7 +166,7 @@ typedef struct { u8 HackFix; u8 MemHack; boolean OverClock; // enable overclocking - u8 PsxClock; + float PsxClock; // PGXP variables boolean PGXP_GTE; boolean PGXP_Cache; diff --git a/win32/gui/ConfigurePlugins.c b/win32/gui/ConfigurePlugins.c index f67820db..c5ae207a 100755 --- a/win32/gui/ConfigurePlugins.c +++ b/win32/gui/ConfigurePlugins.c @@ -94,7 +94,7 @@ int LoadConfig() { QueryKeyV("Cpu", Conf->Cpu); QueryKeyV("PsxType", Conf->PsxType); - QueryKeyV("PsxClock", Conf->PsxClock); + QueryKey(sizeof(Conf->PsxClock), "PsxClock", &Conf->PsxClock); QueryKeyV("PGXP_GTE", Conf->PGXP_GTE); QueryKeyV("PGXP_Cache", Conf->PGXP_Cache); @@ -161,7 +161,7 @@ void SaveConfig() { SetKeyV("Cpu", Conf->Cpu); SetKeyV("PsxType", Conf->PsxType); - SetKeyV("PsxClock", Conf->PsxClock); + SetKey("PsxClock", &Conf->PsxClock, sizeof(Conf->PsxClock), REG_BINARY); SetKeyV("PGXP_GTE", Conf->PGXP_GTE); SetKeyV("PGXP_Cache", Conf->PGXP_Cache); diff --git a/win32/gui/WndMain.c b/win32/gui/WndMain.c index 1e3ae202..14921890 100755 --- a/win32/gui/WndMain.c +++ b/win32/gui/WndMain.c @@ -1430,6 +1430,7 @@ BOOL CALLBACK ConfigurePGXPDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPa BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) { long tmp; RECT rect; + char cs[256]; switch(uMsg) { case WM_INITDIALOG: @@ -1484,14 +1485,16 @@ BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPar ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "PAL"); ComboBox_SetCurSel(GetDlgItem(hW,IDC_PSXTYPES),Config.PsxType); - ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "0.5x"); + ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "0.5"); ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "0.75"); - ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "1.5x"); - ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "2.0x"); - ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "3.0x"); - ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "4.0x"); - ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "5.0x"); - ComboBox_SetCurSel(GetDlgItem(hW,IDC_PSXCLOCK), Config.PsxClock); + ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "1.5"); + ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "2.0"); + ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "3.0"); + ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "4.0"); + ComboBox_AddString(GetDlgItem(hW,IDC_PSXCLOCK), "5.0"); + //ComboBox_SetCurSel(GetDlgItem(hW,IDC_PSXCLOCK), Config.PsxClock); + sprintf(cs, "%.2f", Config.PsxClock); + SetDlgItemText(hW, IDC_PSXCLOCK, cs); if (Config.Cpu == CPU_DYNAREC) { Config.Debug = 0; @@ -1515,7 +1518,13 @@ BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPar if (tmp == 0) Config.PsxType = 0; else Config.PsxType = 1; - Config.PsxClock= ComboBox_GetCurSel(GetDlgItem(hW, IDC_PSXCLOCK)); + //Config.PsxClock= ComboBox_GetCurSel(GetDlgItem(hW, IDC_PSXCLOCK)); + + GetDlgItemText(hW, IDC_PSXCLOCK, cs, 255); + Config.PsxClock = (float)atof(cs); + //if (Config.PsxClock<0.0f) Config.PsxClock = 0.0f; + //if (Config.PsxClock>100.0f) Config.PsxClock = 100.0f; + Config.Xa = Button_GetCheck(GetDlgItem(hW,IDC_XA)); Config.SioIrq = Button_GetCheck(GetDlgItem(hW,IDC_SIO)); diff --git a/win32/pcsxr.rc b/win32/pcsxr.rc index 69c8663e..935356a9 100755 --- a/win32/pcsxr.rc +++ b/win32/pcsxr.rc @@ -109,9 +109,9 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Cpu Config"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
- DEFPUSHBUTTON "OK",IDOK,51,323,50,14
- PUSHBUTTON "Cancel",IDCANCEL,119,323,50,14
- GROUPBOX "Misc Options",IDC_MISCOPT,6,5,220,236
+ DEFPUSHBUTTON "OK",IDOK,51,334,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,119,334,50,14
+ GROUPBOX "Misc Options",IDC_MISCOPT,6,5,220,247
CONTROL "Disable Xa Decoding",IDC_XA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,15,205,10
CONTROL "Sio Irq Always Enabled",IDC_SIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,30,205,10
CONTROL "Spu Irq Always Enabled",IDC_SPUIRQ,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,45,205,10
@@ -132,10 +132,10 @@ BEGIN CONTROL "Save window position",IDC_SAVEWINDOWPOS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,210,205,10
CONTROL "Compatibility hacks (Raystorm/VH-D/MML/Cart World/...)",IDC_HACKFIX,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,225,205,10
- CONTROL "Wipeout MemHack",IDC_MEMHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,240,205,10
- GROUPBOX "CPU Overclocking",IDC_SELPSXCLOCK,7,290,220,32
+ CONTROL "Memhack (formally Wipeout)",IDC_MEMHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,314,205,10
+ GROUPBOX "Overclocking",IDC_SELPSXCLOCK,7,290,220,37
CONTROL "Enable",IDC_OVRCLOCK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,300,80,10
- COMBOBOX IDC_PSXCLOCK,105,297,53,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_PSXCLOCK,105,297,53,50,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
IDD_NETPLAY DIALOG 0, 0, 165, 95
@@ -316,7 +316,7 @@ BEGIN LEFTMARGIN, 7
RIGHTMARGIN, 226
TOPMARGIN, 7
- BOTTOMMARGIN, 337
+ BOTTOMMARGIN, 348
END
IDD_NETPLAY, DIALOG
|
