Overclocking

From Emulation General Wiki
Revision as of 04:21, 29 January 2019 by Bot (talk | contribs) (Protected "Overclocking" ([Move=Allow only administrators] (indefinite)))
Jump to navigation Jump to search

Overclocking is the process by which the CPU clock speed is increased. The reason for doing this would be to reduce slowdown in games or to increase the frame rate. However, as this is a hack and not intended by designers, it can result in many issues. Certain systems can have an overclocked CPU with few if any issues, while others can not overclock without major issues.

Chart

System Normal clock Hardware Overclock Emulation Overclock Overclock levels
NES 1.79 MHz Yes Yes ?
SNES (Main CPU) 3.58 MHz Yes Yes 4.1 -7.6 Mhz
SNES (Super FX 1) 10.5 MHz Yes Yes 40-60 Mhz
SNES (Super FX 2) 21 MHz Yes Yes 40-60 Mhz,
Sega Genesis 7.7 MHz Yes[1] Yes 13.1-25.4 MHz[1]
PlayStation 33.8 MHz Yes[2] Yes 66Mhz[2]
Sega Saturn 28.6 MHz* No No -
Nintendo 64 93.75 MHz Yes[3] Yes 125-187.5 Mhz[3]
Neo Geo 12 MHz Yes[4] Yes 14-18 MHz[4]

* Sega Saturn has two SH-2 CPUs

MAME

By default MAME allows you to change the clock speed of the systems it emulates (including consoles) to anything between 50% to 250% of the original clock speed, the only requirement is that you enable cheats for that game/system.

NES

Overclocking is possible on real hardware, but doing so also speeds up the audio unless you're using a special hardware mod like the HiDefNES which does allow for overclocking without changing the audio pitch[5].

FCEUX as of 2.2.3 includes an overclocking option which works by adding additional scanlines to the PPU loop. This method doesn't cause audio distortion. It is found under Config > Timing.

puNES as of 0.101 includes the same feature. It is found under Tools > PPU Hacks.

Mesen as of 0.2.2 includes the same feature, as well as CPU overclocking. Both are found under Options > Emulation > Overclocking.

For PPU Overclocking, the number of additional scanlines is user-defined. 240 Post-render Scanlines (Referred to as "Before NMI" in Mesen) should be more than enough for most games. If you happen to experience graphical glitching or crashes with a PPU overclock, try the VBlank Scanlines ("After NMI" in Mesen) option instead. Though uncommon, this is required for some games, a notable example being Contra Force.

SNES

Main CPU

For an NTSC SNES, the master clock rate is approximate ~21.477 MHz, but the CPU's effective clock rates are ~3.58 MHz, ~2.68 MHz, or ~1.79 MHz. This is because any CPU operation takes 6 master cycles (i.e. 21.477/6 = 3.58) and memory access can take 6, 8, or 12, depending on the area of RAM is accessed. In the case of ROM access, it also depends on whether bit 0 of CPU register 420D is set to 0 (SlowROM, 8) or 1 (FastROM, 6).[6]

In testing overclocks on the original hardware, the following issues occur (speeds listed represent the maximum effective clock rate):

  • 4.1 MHz: Small amounts of sprite breakup occasionally; very little slowdown.
  • 5.1 MHz: Sprite breakup; no slowdown
  • 6.6 MHz: Color palette errors; sprites fail to render
  • 7.6 MHz: Color palette errors; sprites fail to render. Freezes after a few minutes.[7]

Only MAME has an option to change the main CPU frequency, which requires you to enable cheats. MAME SNES emulation is very demanding by default and activating the overclock only makes it worse. It is more stable than the real hardware while overclocked and won't exhibit the same issues, but it is still very unstable especially if you adjust the frequency multiple times. It also does not allow you to go over 250% clock speed, which isn't enough to fully get rid of slowdowns in some games.

The latest builds of all Snes9x libretro cores can overclock by reducing the number of emulated CPU/memory access cycles from 6, 8, and 12 to either 4, 5, and 6 (Compatible) or 3, 3, and 3 (Max) respectively. Just for comparison, that means the Max option is effectively 7.16 MHz. Gameplay is not sped up (assuming the game is not in a constant state of some slowdown, to begin with, like Out of This World) and the issues experienced on real hardware are not present, though stability will vary depending on the game and which option you use. Also to note, some games may work better with the Max option rather than Compatible, as appears to be the case for Mega Man X1 which has a bit of graphical corruption under very specific conditions when using the Compatible option, so try both if you encounter issues.

Super FX chip

The first version of the chip, commonly referred to as simply "Super FX", is clocked with a 21 MHz signal, but an internal clock speed divider halves it to 10.5 MHz. Later on, the design was revised to become the Super FX GSU-2; this, unlike the first Super FX chip revision, is able to reach 21 MHz.

The SFX chip can be overclocked on real hardware or emulation with fewer issues than overclocking the CPU. However, tests have shown that overclocking can increase the speed of the game, in addition to increasing the frame rate and removing slowdown.[8]

Clock speed Time Increase
Normal 1'46'02 -------
50hz 1'23'78 27.711%[8]

Snes9x-Next allows for SFX overclocking, as well as bsnes-mercury, though in the latter the increase in CPU requirements can be noticeable.

PC-Engine (TG-16)

The main CPU can be overclocked on real hardware but will also speed up audio.[9]

Mednafen allows overclocking the CPU up to 100x, without affecting audio pitch, in its non-default pce_fast core via the pce_fast.ocmultiplier setting.

N64

Some emulators like the libretro port of Mupen64Plus have an overclocking option called "VI Refresh", and 1964 UltraFast (a very old fork of 1964) have an option to overclock the CPU.

Some games (see the list below) can take advantage of overclocking and improves frame rate, while most others (such as Super Mario 64) have built-in frame rate limiter and unaffected by overclocking.[10][11]

List of games that can take advantage of overclocking

A Bug's Life
Aidyn Chronicles - The First Mage
Armorines - Project S.W.A.R.M.
Big Mountain 2000
Carmageddon
Conker's Bad Fur Day
Destruction Derby 64
Disney's Donald Duck - Goin' Quackers / Donald Duck - Quack Attack
Duck Dodgers Starring Daffy Duck / Looney Toons - Duck Dodgers
Earthworm Jim 3D
Extreme-G
Extreme-G XG2
F1 Racing Championship
F-1 Pole Position 64
Gex 3 - Deep Cover Gecko
GoldenEye 007
Hot Wheels Turbo Racing
Human Grand Prix - New Generation
Jet Force Gemini / Star Twins
Jeremy McGrath Supercross 2000
Kobe Bryant's NBA Courtside
Madden Football 64
Madden NFL 99-2002
Mario Kart 64 (Multiplayer and some tracks only)
Milo's Astro Lanes
Monaco Grand Prix - Racing Simulation 2
Monster Truck Madness 64
NASCAR 99/2000
NBA In the Zone 98 / NBA Pro 98
Off Road Challenge
Perfect Dark
Quake II
Racing Simulation 2
Rakuga Kids
Rayman 2 - The Great Escape
Roadsters Trophy
San Francisco Rush - Extreme Racing (Multiplayer only)
San Francisco Rush 2049 (Multiplayer only)
South Park Rally
StarCraft 64
Starshot - Space Circus Fever
Super Robot Spirits
Taz Express
Tom Clancy's Rainbow Six
Tonic Trouble
Toy Story 2
Transformers - Beast Wars Transmetal
Turok 2 - Seeds of Evil / Violence Killer - Turok New Generation
V-Rally Edition 99
WCW vs. nWo - World Tour
World Cup 98

GameCube/Wii

Dolphin supports overclocking and underclocking the CPU. Overclocking can remove slowdown from games that have them, pushing them closer to their actual target frame rate. It causes several issues with many games, so don't expect it to be a perfect solution.

Dolphin used to have a VBeam Speed Hack that doubled GPU clock rate. This has since been removed, as the developers found that it didn't really help in many cases.

PlayStation

On real hardware, overclocking is possible using this modification.

On emulators, this modified build of PCSX-R as well as this fork allow for overclocking, though most games will break past 1.5x clock speed. Recent builds of Beetle PSX (the libretro fork of Mednafen's PS1 core) also support overclocking, by way of removing timing penalties instead of increasing clock speed.

PS2

On original model PS2s, you can overclock by a small amount without too much problem, but the biggest issue will be sped-up audio. Slim model PS2s use the GPU's clock rate as a base for the CPU (multiplying the GPU's clock by 2), so overclocking the CPU will also overclock the GPU resulting in many visual problems.[12]

All recent builds of PCSX2 have a speed hack that allows you to increase the EE cycle-rate without having any effect on the audio, although it does still break a few games most of them run fine and with less slowdown. The emulator also has a speed hack called VU Cycle Stealing, which allows for increased GPU performance at the cost of CPU cycles. It gives an incorrect FPS readout, though.

PSP

PPSSPP allows over/underclocking of the main CPU. Due to Sony underclocking the CPU to 222 MHz then removing the underclock in a later firmware update to allow it to run at 333 MHz[13] (and thus not having games closely tied to clock rate), overclocking the system (and emulating an overclocked system) results to next to no ill effects.

Neo Geo

FinalBurn Alpha allows for overclocking of Neo Geo games. MAMEUIFX (aka MAME32FX) also allows for overclocking.[14] All Neo Geo should run at full speed when overclocked.

Sega Genesis

The original hardware can be overclocked leading to faster/smoother gameplay.[15]

Most Genesis emulators don't allow overclocking. The Genesis Plus GX developer, for instance, says that implementing overclocking is "not easy to add without potentially break other things. [16]

Regen allows overclocking in the dev build version.[17] Games with sprite flicker, like Altered Beast, and games with some slowdown, like Rambo III or Mega Man: The Wily Wars, play perfectly with Regen's "Overclock M68000" setting at 732 (1.5x original speed). The game speed and audio are unaffected by overclocking.

BlastEm and HazeMD also allow for overclocking but neither are really recommended for normal usage.

3DO

Standalone Windows version of 4DO allows up to 400% of the original 3DO clock speed, making some low frame rate titles such as Doctor Hauzer more playable. The libretro version of 4DO does not seem to contain overclocking features.

References