Legacy - Technical
Legacy is an emulator of the 8086-based IBM PC architecture. It is developed in C++ and has been ported at certain stages of development to Win32/DirectX (thanks to TinyPTC), Pocket PC (PocketFrog and EasyCE) and Linux (TinyPTC)
Legacy implements a subset of the 8086 architecture as follows. The links point to more information on the implementation of each feature:
- 8086 CPU - mostly complete interpretive emulation of real mode 8086 instruction set. No 286 instruction support.
- BIOS - high-level equivalents of many BIOS functions written in native code.
- Video - high-level implementation of some CGA and VGA text and graphics modes.
- Floppy - high-level emulation of interrupt 13h through the use of disk images.
- PIT - Simple triggering of int 8h at hardcoded instruction intervals.
- Keyboard - Partial emulation of int 16h. I'd appreciate help from anybody with sufficient understanding of int 9h and int 16h to get this aspect of the emulator working.
- Mouse, PIC, PC Speaker, Serial, Parallel - unemulated
Although the list above suggests an early stage of development, Legacy is able to boot a surprising number of games from floppy images, especially with the help of per-image source code adjustments. This practice, sometimes known as "patching", is common in high-level emulation - UltraHLE being a prime example. See the compatibility list for details of specific image compatibility.
Note: There is no working keyboard emulation in this software. You will, at best, be able to view a game in "demonstration mode" rather than actually play it.