Cynde and I chatted about this topic in Office Hours, but I wanted to summarize some of the things we're looking at for the good of the list. I've been looking at the options off-and-on since Cynde mentioned on Twitter a few weeks back that she was looking at Voodoo cards:
- QEMU is better than VirtualBox and VMWare but still limited in the number of legacy video card options that it emulates compared to some other PC emulators. The potentially relevant options (from the
QEMU docs) seem to be:
- cirrus ("Cirrus Logic GD5446 Video card. All Windows versions starting
from Windows 95 should recognize and use this graphic card. For
optimal performances, use 16 bit color depth in the guest and
the host OS")
- std ("Standard VGA card with Bochs VBE extensions. If your guest OS
supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if
you want to use high resolution modes (>= 1280x1024x16) then you
should use this option." <- This is also the default device selected if no -vga setting is specified)
- vmware ("VMWare SVGA-II compatible adapter. Use it if you have
sufficiently recent XFree86/XOrg server or Windows guest with a
driver for this card.")
Cirrus is the only card that had native, "out-of-the-box" drivers included in most '90s Windows and Linux systems, which is why its our usual recommended option in EaaSI. There's a chance that the std or vmware options will be compatible with the SciTech Display Doctor drivers, or with the
VBEMP 9x project, which aims to back-port the VESA 2.0-compatible display drivers from Windows XP to earlier systems. Cynde will keep experimenting with these combinations, as they may solve some of the games she is looking at that seem to depend on particular VESA/VBE support.
- Things get more complicated with games or other software that require dedicated 3D hardware accelerators/GPUs (like the popular
Voodoo accelerators). The main branch of QEMU simply doesn't emulate these devices. So possible options for us on the EaaS/EaaSI side of things would include investigating:
- a software option like nGlide or similar that allows games and software that depended on Voodoo graphics or other accelerator to run even without the hardware present
- adding the PCem emulator as an available emulator for the platform, as it emulates a much wider range of video and 3D graphics cards (a lot of retro game enthusiasts/archivists seem to prefer PCem)
- I also just noticed that the EaaS team seems to have experimented with the QEMU
Virgil project, which has created branches/forks of QEMU with better 3D graphics support than the main branch. There are a few "virgil"-related tags in the
EaaS QEMU Docker registry. I don't know much else about qemu-virgil, or if it's intended to work with/emulate legacy GPUs, but this might also be something to look into.
Best,
- Ethan