There are some older games that seem to eat up as much CPU as you can produce even if only to render frames that they will drop – or perhaps perform some work that I don’t consider necessary (since they were good enough on my machine in the 90s).
Specifically I’d like to limit an old DirectX 5 game: on Windows 7 Fallout 2, as my machine will get warmer and louder than I care for it to while playing Fallout as it maxes my CPU. There are various frame rate controls in the 3rd party patches, but they only seem to apply in certain, cosmetic, situation.
It would be great to know of a control that could be used for any game (something that limits the number of cycles a process can consume for instance).
Modern CPUs usually change their clock speed based on CPU load in the default setting. You might be able to use the Power item in the Windows Control Panel to switch the power scheme from the default Balanced scheme to Energy Saver. That should lock your CPU to its lowest clock speed.
You can use something like CPU-Z to monitor the clock speed to see if your CPU actually clockspeed changes when you change the powerscheme.
I have actually used this technique to play Commandos. Normally my CPU would switch into performance mode (all 4 cores at 3.2GHz) and the game would run too fast, making it hard to play. After setting the Windows Powerscheme to Energy Saver (all 4 cores on 800Mhz – 1 quarter of full speed) the game would run at the correct speed.
Edit: About using a Virtual Machine:
Virtualbox has the ability to limit the virtual CPU to a percentage of the host CPU, see CPU execution cap in the Processor Settings section. The manual does note that limiting the CPU this way may induce timing problems in the guest, which isn’t what you want for older games obviously. Another problem with virtual machines is that hardware acceleration for graphics is still not very well supported, so that limits the usage of VMs for games quite a bit.
I have tried this with Commandos for instance, but the result was not playable. That’s when I switched to the technique above to limit the speed of my CPU via Windows Powerscheme.