views:

1545

answers:

12
+7  Q: 

Emulate old PC?

I'm writing a Flash game, pretty intensive on CPU.

Besides optimizing it a lot, I would like to be able to play it as players on slow PC's will, because I have a good CPU and I would like to make it also playable on bad CPU's

First I thought that virtualization would help, but I've tried vmware player with an ubunto image and I can't find anywhere how to do this.

Buying an old PC is not an option, as I prefer not having machines around only for this.

What I need is something like a software underclocker, or a virtual machine where I can specify low specs for CPU and RAM.

Anyone know how to do this?

Thanks!

+6  A: 

Buy another OLD PC.

Old PCs are so cheap, the cost of an old box should be a heck of lot cheaper than the time it will take you to figure out how to do this.

John MacIntyre
That's not a good answer, especially when the solution is below. Microsoft Virtual PC already does this, and is signficantly cheaper (read: free) than buying an old PC. It also takes significantly less time to set up a VM than to buy and set up an old PC.
George Stocker
This answer is not helpful at all. The OP specifically says he's looking for a software solution.
Robert S.
This answer is okay if they only need one test environment. A VM solution is better because they can use it to test many different configurations.
Bill the Lizard
George; a virtual PC is better in most circumstances .. I even voted it up. However, it wasn't posted till a half hour after I wrote this.Rob; I believe he said 'something like a software'...I believe buying an old PC has a definite place in this list, and may not be obvious to everyone.
John MacIntyre
He said, "something like a software underclocker...." An old PC is nothing like a software underclocker.
Robert S.
+3  A: 

Modern "virtual PC" software relies on virtualization support features in the host CPU, and that the virtual machine has the same instruction set as the host. So programs are executed directly, with "traps" stopping execution when the host needs to do something behind the scenes to maintain the virtualization. This would not help you.

If you're on Linux, you could try running the program in Valgrind, that provides a 10X slowdown in most cases. :) It's not by design though, so it's not a long-term solution.

unwind
+2  A: 

there are CPU throttling utilities that slow the cpu down, not entirely sure how much they'd help. Heres a link to one I just found with a quick google.

Sekhat
+18  A: 

Microsoft Virtual PC is VM software that allows you to determine the speed of the CPU, RAM settings, and Video Card settings for each virtual Machine you create. From the website:

Configurability - After installing Virtual PC, you can configure it to suit your requirements. Virtual PC has a number of settings that control how the product interacts with the physical computer, allocates resources, and so on.

I've used it to emulate a 400mhz PC with 128 Megs of RAM before.

Edit:

A Virtual Machine on Virtual PC will be slower than your host PC. I remember in VPC 2004, it would even say what the mHz speed it was virtualising was. That is no longer in Virtual PC 2007, but some digging shows that the Microsoft guys have addressed this very issue.

From their website's blog (given that it may disappear one day):

Well - maybe an emulation solution is better for your needs. Or, maybe you need to invest in some older hardware. Or - you could pursue the use of 'slow down' software inside of the virtual machine. Some programs that I have used with varying levels of success include:

One final comment on this topic - some people have noticed that some older DOS programs that are known to crash on fast hardware actually run perfectly inside of Virtual PC / Virtual Server. The reason for this is that a long time ago in Virtual PC development, we put in some code to detect the problematic routines in some common DOS libraries (checkout this for an example reference) and to patch these binaries 'on the fly' so that they would run correctly inside of the virtual machine.

I hope that helps.

George Stocker
A: 

Just go to garage sales/look in the newspaper/check thrift stores/etc. for an old machine. You should be able to pick up like a PIII 450 for cheap.

Adam Jaskiewicz
A: 

Well, buying an old PC is not an option, as I prefer not having machines around only for this.

I've downloaded microsoft virtual PC, but I can't seem to find where to adjust CPU settings. Ok with RAM, but CPU throttling is not available!

The option killersponge mentioned: i've downloaded the utility, but I'm on Vista x64 and it doesn't work :(

You registered a different account to reply to your own post?
Robert S.
Sorry if I did something wrong, but when i asked the question it didn't ask for registration, only a name and an email.Later when I wanted to reply, I couldn't login into any account because it asked me for an openID, which i don't have.weird, i know...sorry for that.
You can get an OpenID at https://www.myopenid.com/. If you create an OpenID and link it to your SO username, you'll find the site easier to use as you can track your questions and answers. :)
Robert S.
Using my answer above as well as CPU killer below (or one of the utilities I mentioned) should solve your problem of testing the game on slower PCs.
George Stocker
+1  A: 

I used a program called CPU Killer to play commandos behind enemy lines on my modern pc. The speed of that game is proportional to the speed of your computer. It's designed for 200mhz so running it on 3GHz without cpu-killer was impossible. :D

+5  A: 

Press the "turbo" button off on the front of your case.

JC
wow... I've not seen Turbo buttons since the mid-90s. I remember the one on my Pentium box would drop the clock speed and disable the L3 cache -- much slower!
Ben Combee
@Ben Me neither - I had a turbo button on my 386 and 486. I remember when I didn't know what it was, actually released it, and wondered why everything was going so slow until months later when I realized what it was. Doh! JC - your machine has a turbo button?
+2  A: 

Install Norton Antivirus

Turns any modern cpu into a 400MHz

Sure, it makes it slow, but really because it slows down disk performance by 2000% or so, not because it eats that much processing time.
TM
+2  A: 

You can try using CPU Killer

http://www.cpukiller.com/

Imran
A: 

Throttle your program to a fixed framerate using a timer. That way you give CPU time you don't need back to the operating system. The human eye can't do much better than 25 fps anyways. Setting a fixed framerate of 50/60 fps should be more than enough for a Flash game.

mdm
A: 

DOSBOX emulates an old PC. It is intended to play old PC games. Some of these games must not run too fast and often does not work at all on modern hardware.

Amigable Clark Kant