a quick overview of what it is and is not. first it does not run 32-bit code or anything that needs protected mode. my CPU core is simply real-mode for the time being. it supports all of the 16-bit x86 opcodes up to the 80186/V20 instruction set. (it can't run windows 3.1, but it will run windows 3.0)
main emulation features besides the CPU core:
- Hercules/CGA/MCGA/VGA graphics emulation. the VGA support is actually not complete. it won't do 640x480 4-bit, but it does handle 320x200 8-bit unchained mode, which some games (like Wolf3D) require to run correctly.
- Intel 8253 programmable interrupt timer
- Intel 8259 interrupt controller
- Adlib FM synth emulation (a bit rough, but it's there and working)
- PC speaker (crappy)
- Disney Sound Source emulated (awesome for playing Wolf3D)
- Ethernet card emulation via winpcap (it doesn't emulate any existing real world card, i wrote a custom DOS packet driver for it)
- Uses raw hard disk and floppy images
i will also say in advance that the source code is not very well organized, i am going to re-organize it all sometime soon.
both of these downloads include a 30 MB pre-prepared hard drive image (drive0.raw) with DOS 6.22 and some old games/apps.
EDIT: i've updated these links with a new version that fixes a CPU bug that got introduced to 0.12.4.23.
win32 binaries: http://rubbermallet.org/fake86-0.12.4.25-win32.zip
NOTE: it must be run from the command line, you cant double-click it in explorer.
source code download for linux: http://rubbermallet.org/fake86-0.12.4.25.tar.gz
to compile in linux you need the libSDL 1.2 development files and runtime files installed. for debian users, simply use apt-get install libsdl1.2-dev libsdl1.2debian-all
i assume that works in ubuntu too.
compile like this:
Code: Select all
make
make install
you can run it with the included hard drive image like this:
Code: Select all
fake86 -hd0 drive0.raw
a few screenshots:
Wolfenstein 3D
Prince of Persia
Ultima VI: The False Prophet
Mario Andretti's Racing Challenge