diff options
| author | iCatButler <i.am.catbutler@gmail.com> | 2016-05-08 13:34:45 +0100 |
|---|---|---|
| committer | iCatButler <i.am.catbutler@gmail.com> | 2016-05-08 13:34:45 +0100 |
| commit | 1a30cfb9510d4e46960010735d26a344f75cb328 (patch) | |
| tree | df55c4203a77a54d4bfc3db1faefed0ab292f8bc /libpcsxcore | |
| parent | cd126bcb7cdb6a555ff1829ba9d535596ef58609 (diff) | |
| download | pcsxr-1a30cfb9510d4e46960010735d26a344f75cb328.tar.gz | |
Integrate SonofUgly's overclocking mechanism
https://github.com/SonofUgly/PCSX-Reloaded/commit/3f11d29f31ca02575aeedf073e87ffee933effb0
Integrated with a few small changes.
Diffstat (limited to 'libpcsxcore')
| -rwxr-xr-x | libpcsxcore/misc.c | 35 | ||||
| -rwxr-xr-x | libpcsxcore/psxcommon.h | 5 |
2 files changed, 39 insertions, 1 deletions
diff --git a/libpcsxcore/misc.c b/libpcsxcore/misc.c index aee604e5..9b9b226a 100755 --- a/libpcsxcore/misc.c +++ b/libpcsxcore/misc.c @@ -356,6 +356,41 @@ int CheckCdrom() { else Config.PsxType = PSX_TYPE_NTSC; // ntsc } + + if (Config.OverClock == 0) + { + PsxClockSpeed = 33868800; // 33.8688 MHz (stock) + } + 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) + } + } + if (CdromLabel[0] == ' ') { strncpy(CdromLabel, CdromId, 9); } diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h index 65091a34..2b75bef4 100755 --- a/libpcsxcore/psxcommon.h +++ b/libpcsxcore/psxcommon.h @@ -165,6 +165,8 @@ typedef struct { u32 AltSpeed2; u8 HackFix; u8 MemHack; + boolean OverClock; // enable overclocking + u8 PsxClock; #ifdef _WIN32 char Lang[256]; #endif @@ -185,8 +187,9 @@ extern u8 vblank_count_hideafter; // Make the timing events trigger faster as we are currently assuming everything // takes one cycle, which is not the case on real hardware. // FIXME: Count the proper cycle and get rid of this +u32 PsxClockSpeed; #define BIAS 2 -#define PSXCLK 33868800 /* 33.8688 MHz */ +#define PSXCLK PsxClockSpeed /* 33.8688 MHz */ enum { PSX_TYPE_NTSC = 0, |
