Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

Possible Duplicate:
CPU or framerate limiting on older games

There are some games that used lazy programming and used CPU cycles for timing even into the Windows 95 and 98 era. This leads them to be basically unplayable on modern computers.

There was some discussion of this before however all the the answers are either dirty hacks that may or may not work (Putting your CPU into power save mode) or very limited (Buy a patched version off of GoG; only works with games available on GoG). DOSBox also only works on some windows games, i.e. those are basically DOS games.

The ideal solution would be a virtual machine, as that would remove driver issues and such, and you can use whatever version of windows will work the best, so no emulator problems. However, I don't know of any VM that lets you scale the CPU, they just run off whatever CPU you have. Is there a vitualization solutions that will work for old games?

share|improve this question
I'm still voting to close this as dupe. I would suggest offering a bounty for solutions involving a virtual machine on that question. –  MBraedley Dec 18 '12 at 3:07
add comment

marked as duplicate by MBraedley, OrigamiRobot, Frank, kotekzot, pixel Dec 18 '12 at 9:22

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

1 Answer

There are a couple of options that can alleviate the issue of older games running way too fast on modern machines;

  • Some games (ie: the original Grand Theft Auto) have built in frame limiters, see if yours does
  • If the game supports a 'Vsync option', control the in game FPS by changing your monitor refresh rate
  • Buy a patched copy of the game from another supplier
  • Use a 'dirty hack' of some description, my personal favourite is using FRAPS in cached record mode to severely hamper FPS

One such piece of VM software that supports assignment of CPU resources is Oracle Virtual Box (which is free) - there are other Virtual Machine hosts which provide more granular control over the resources assigned to the virtual environment but these generally aren't free and vary quite wildly in price.

The options in VirtualBox approach the issue from the point of 'leaving the host operating system functional while the VM is in use' rather than actually specifying the 'Virtual Hardware' that is in the VM;

enter image description here

With this, you can set the number of processor cores available to the Virtual Machine, and the maximum processor usage as a percentage that the VM can utilise. This is not an exact science and will require some trial and error to get the right settings, and even then it is unlikely that the end result will be that smooth to play.

Another option that is available for free, is DOSBox. DOSBox does provide CPU cycle emulation and the ability to change how many CPU cycles are available to the application/game being run within DOSBox. The controls for this are detailed as you start DOSBox up;

enter image description here

The current setting is detailed in the title bar of the window;

enter image description here

Using DOSBox, it is possible to install an older version of Windows (ie: Windows 95 or 98) within DOSBox as detailed in this article. This provides you with another emulation option as it allows you to use DOSBox to run a copy of Windows, and play old Windows games in the environment they were designed to be run in, while still providing control over the number of CPU cycles available in the environment.

As for what to set the number of CPU cycles to, this article suggests the following;

Estimate the CPU power wanted by the game in megahertz. Multiply by 1000, and set it in the cycles= setting in dosbox.conf. For example, if it requires 3 MHz, set cycles=3000. If it requires 120 MHz, set cycles=120000. Use the largest possible value that you think makes the game run more fluently, but not larger. If uncertain, use 40000. This corresponds to an average 486.

share|improve this answer
D*mn your answer is so spot on. Thanks for this gem. I still +1 it. –  ヴァイシャリ Dec 21 '12 at 17:05
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.