Why Old Games Run Too Fast
Games from the DOS and Windows 95/98 era were designed for specific CPU speeds — typically 100–500 MHz processors. They used CPU cycles directly for timing rather than a separate clock. A game designed for a 200 MHz Pentium II will run 20–30 times too fast on a modern 4 GHz processor.
The symptoms are obvious: characters sprint instead of walk, menus flash past before you can read them, physics go haywire, and some games crash immediately because the game loop runs faster than the code expects.
Method 1: CPUKiller Browser Tool (Easiest)
The simplest method is to use CPUKiller's Slow Down PC tool directly in your browser. It works by running a CPU-intensive loop in a background Web Worker, consuming a percentage of your CPU's capacity and leaving less available for the game.
This is the modern equivalent of the original CPUKiller.exe software from the early 2000s, which worked the same way. The advantage of the browser version is that it requires no installation and works on any operating system.
How to use it:
- Open the Slow Down PC tool in one browser tab
- Set the throttle to the recommended percentage for your game (see the Retro Game Fix page for game-specific presets)
- Click "Apply Throttle" and leave the tab open
- Launch your game in a separate window
Start with 20–30% CPU speed for most DOS-era games. Adjust up or down until the game runs at the correct speed.
Method 2: DOSBox CPU Cycles
If you are running a DOS game through DOSBox (the recommended emulator for DOS titles), you can control the CPU speed directly within DOSBox without needing any external tool.
DOSBox measures CPU speed in "cycles" — the number of instructions executed per millisecond. The default "auto" setting tries to use as many cycles as possible, which is too fast for most games.
How to set cycles in DOSBox:
- Press Ctrl+F11 to decrease cycles while the game is running
- Press Ctrl+F12 to increase cycles
- Or edit the dosbox.conf file and set
cycles=fixed 3000(adjust the number)
Common starting points: 3000 cycles for early DOS games (1990–1993), 10000 cycles for mid-era DOS games (1994–1997), 30000+ cycles for late DOS and early Windows games.
Method 3: DxWnd
DxWnd is a free Windows utility that intercepts DirectX calls and can be used to slow down games that run in Windows rather than DOS. It is particularly useful for Windows 95/98 era games that run natively on modern Windows but at the wrong speed.
DxWnd can limit frame rates, slow down CPU-dependent timing loops, and force games to run in windowed mode. It is more complex to configure than CPUKiller but offers finer control for specific titles.
Method 4: PCem or 86Box Emulation
For the most accurate experience, full PC emulation via PCem or 86Box emulates the original hardware at the correct speed. You configure the emulated CPU to match the target machine — a 486 DX2/66 for early DOS games, a Pentium 200 for mid-90s titles.
The downside is complexity: you need to source original BIOS ROMs, configure the emulated hardware, and install the original operating system. Performance is also limited — emulating a Pentium II accurately requires a modern CPU with significant overhead.
Game-Specific Recommendations
For a database of 18+ classic games with specific throttle percentages, see the Retro Game Fix page. Quick reference for the most common titles:
- Grim Fandango: 15% CPU speed (or use ScummVM)
- Fallout 2: 20% CPU speed
- Diablo: 15% CPU speed (or use DevilutionX)
- Doom / Doom II: 10% CPU speed (or use GZDoom)
- StarCraft: 40% CPU speed (or update via Battle.net)
The Modern Alternative: Community Ports
For many classic games, the best long-term solution is not to slow down your CPU but to use a community-maintained port that runs natively on modern hardware. ScummVM covers most LucasArts and Sierra adventure games. DevilutionX is a native port of Diablo. GZDoom handles the entire Doom engine family. These ports are free, actively maintained, and often add quality-of-life improvements.
CPUKiller's throttle tools are most useful for games that do not have a community port — or when you want to run the original executable exactly as it was released.
