Halfix is a portable x86 emulator originally written in C99, but this fork was ported to C++20. It allows you to run legacy operating systems on modern platforms.
This fork is used to test lib86cpu, a cpu dynamic recompiler library.
This fork is focused only on Windows compatibility for now. You will need a C++20 compatible compiler, zlib, cmake and Visual Studio 2022. Only 64 bit builds are supported.
cd
to the directory of halfixmkdir build && cd build
cmake .. -G "Visual Studio 17 2022" -A x64 -Thost=x64
- Build the resulting solution file halfix.sln with Visual Studio
- CPU: x86-32
- RAM: Configurable - anywhere from 1 MB to 3584 MB
- Devices:
- Intel 8259 Programmable Interrupt Controller
- Intel 8254 Programmable Interval Timer
- Intel 8237 Direct Memory Access Controller
- Intel 8042 "PS/2" Controller with attached keyboard and mouse
- i440FX chipset (this doesn't work quite so well yet)
- 82441FX PMC
- 82371SB ISA-to-PCI bus
- 82371SB IDE controller
- ACPI interface
- Intel 82093AA I/O APIC
- Display: Generic VGA graphics card (ET4000-compatible) with Bochs VBE extensions, optionally PCI-enabled
- Mass Storage:
- Generic IDE controller (hard drive and CD-ROM)
- Intel 82077AA Floppy drive controller (incomplete, but works in most cases)
- Dummy PC speaker (no sound)
Currently, when used with the Boch's BIOS and the LGPL'ed VGA BIOS, it can boot the Windows XP installation CD up to the point where Windows tries to set up the FPU.
Create a directory with all the files you want to transfer and create an ISO image.
mkisofs -o programs.iso -max-iso9660-filenames -iso-level 4 programs/
Now update the configuration file as follows:
# Note: it does not hae to be ata0-slave.
# I have not tested it with anything but ata0-slave.
[ata0-slave]
inserted=1
type=cd
file=/tmp/programs.iso
driver=sync
Now boot up your operating system and copy the files from the CD-ROM to the hard drive.
GNU General Public License version 3