I’ve been testing the limits of what Windows games can run via QEMU’s x86 emulation on the PS3. At first I tried Windows 98 but it turns out that Windows 95 seems to make things run a little snappier. And most of the Windows games that will work should run on 95 anyway…
I have installed Diablo + the Hellfire expansion with 1.01 update and that’s running very well. There’s a bit of stuttering in the cutscene videos, but gameplay is perfectly smooth and of course the atmospheric music is great.
Instead of worrying with the CD every time I want to play, I made an .iso file of it and play from that instead. To create an .iso file of a CD on Linux, you use this command:
dd if=/dev/cdrom of=/path/to/cdrom_image.iso
Where /dev/cdrom is the device name of your CD ROM drive. It appears the CD need not be mounted for this procedure. For example, to make an .iso of my Diablo CD, I said:
dd if=/dev/cdrom of=/media/apricorn/diskimages/diablo.iso
(/media/apricorn/ is the path where I have a USB hard drive mounted)
Assuming you’re able to get Windows 95 up and running on QEMU, the process for installing Diablo is simple — just install like you normally would on Windows. DirectX is included on the install disk, too, so you can install that at the same time.
Installing the Hellfire expansion is equally straightforward. You do need to change CD’s though, and this is where using .iso files makes things much easier.
While QEMU is running Windows 95, you hit Ctrl-Alt-2 to bring up the QEMU monitor. At the (qemu) prompt, type:
change cdrom /path/to/your.iso
For example, to eject the diablo.iso (”cdrom”) and insert the hellfire.iso (”cdrom”) while QEMU is still running Windows 95, I use:
Ctrl-Alt-2 (that’s the number 2 key, NOT the F2 key)
change cdrom /media/apricorn/diskimages/hellfire.iso
Ctrl-Alt-1 (to change back to the normal QEMU window where Windows 95 is running).
The ability to change .iso files / cdroms while QEMU is running is critical when installing games that require more than one CD.
Other games I have tried on QEMU (some of these screenshots are from Fedora 7 PPC on PS3 instead of YDL, but they run the same on YDL, and some were done on YDL 5.x):
Starcraft — A little stuttering in cutscene videos, but otherwise appears to run OK. I didn’t play beyond the first level.
Thief — Menus, music, and in-game sound are all OK, but WAY TO SLOW to be playable (1 frame per second or less). I didn’t have any hope for this one working anyway, but you never know …
Robert E. Lee: Civil War General — This no longer runs on Windows XP, but runs fine on QEMU on PS3.
Duke Nukem 3D — A bit slow, but playable. A much better alternative is running the Duke Nukem 3D source port for Linux (an RPM for it is on my downloads page — full version game data is required). I had to compile QEMU with Adlib soundcard support for sound to work properly, but maybe I just needed to install a Sound Blaster driver for DOS instead.
Rise of the Triad — Also a little slow but playable. There’s a source port for this one on www.icculus.org but it requires some work to get it running properly. I haven’t made an RPM for this one yet, but I intend to make one.
PokerStars client — Running on Windows 98 on QEMU. Slow to start up but was playable. I only tried this once at the request of someone else, so I don’t know if the latest version of the client still works on QEMU on PS3.
Blasteroids (DOS) — Runs fine if I recall correctly.
Diablo II — Almost! But too slow to be considered playable. I didn’t have any in-game sound, either.
[Edited 7-1-08: Updated link to QEMU user-doc (site moved)]