Fake86 is a portable, open-source 8086/80186 PC emulator written from the ground up in C. Although the CPU engine is a pure interpreter it is still capable of reasonably fast execution. On modern systems, it can reach rates of 35 to 50 million emulated instructions/sec and beyond.
Fake86 began in 2010 as just a project that I intended to use to familiarize myself with x86 assembly, it's binary instruction encoding format, as well learn the low-level details of the support chipset in an XT-style computer. A main goal is keeping the source as simple as reasonably possible to understand and modify. Soon the project began to expand beyond the basics to include extras like audio hardware emulation, ethernet emulation, etc.
The Windows build also has a simple drop-down menu interface to change out virtual disk images, change window resolution, etc.
The entire project's code base currently weighs in at comfortably under 7,200 lines of code.
- Full support for the 16-bit 80186 instruction set. (80386 CPU emulation coming soon)
- Emulation of the major support chips found in 1980's era PCs.
- Audio support includes emulation of the Sound Blaster, Adlib FM music card, Disney Sound Source, and standard PC speaker.
- Standard Microsoft-compatible serial mouse emulated on COM1.
- Hard/floppy disk emulation on interrupt 13h using disk image files.
- Capable of running any 16-bit flavor of DOS. (MS-DOS, DR-DOS, PC-DOS, FreeDOS, etc.)
- Hercules, CGA, MCGA, and VGA (except 640x480 16-color) video emulation. (EGA and full VGA support coming soon)
- Ethernet emulation with libpcap and WinPcap.
- Runs on many operating systems. Tested OSes include Windows, Linux, FreeBSD, Solaris, Haiku, OS X, SkyOS and more. Tested host CPUs include x86, x86-64, PowerPC G3/G4/G5, ARM, and SPARC.
By far, my favorite 8086/80186 emulator. I learned so much from its source code... Excellent work Mike!
Thanks for updates ;)
I havn't played around on an old 8088 since, well for ever. The sound of the old 5 1/4 inch floppy reading away.......... This does everything it says it does. Even when you use MSD.EXE you will get propper information. Great work, keep it up