Neko's x86 Virtual Machine is a portable x86 PC emulator with an integrated debugger. NXVM is the repository's current, bootable whole-machine product. The approved direction is one build-fixed executable per machine: IBM 5160 XT, IBM 5170 AT, DeskPro 386, default PC/AT, and later IBM Palm Top PC 110. They share an extensible architecture and one NXVM.ini configuration format. CPU-family implementations remain reusable. This is the target, not a claim that the INI/fixed-build cutover is implemented. All implemented machines remain supported; the former NXVDM plan is withdrawn.
NXVM emulates an Intel 80386 PC with the machine services needed for the current product: RAM, DMA, PIC, floppy and hard disks, keyboard, display, BIOS behavior, and a debugger. It is useful both as a bootable virtual machine and as a controlled environment for examining legacy x86 software.
The screenshots below are historical NXVM product captures retained from the original project README. They illustrate the product's lineage; they are not current compatibility claims and include no guest media or executables.
NXVM provides Console and application-window presentation paths. The windowed path keeps the NXVM control Console separate from the guest display.
Linux support uses the terminal presentation path. It remains a development and verification surface; see the project documentation for current support boundaries.
The supported development path is 64-bit MinGW-w64 GCC, CMake 3.23 or later,
and Ninja on Windows. Ensure gcc and ninja are available on PATH, then
from the repository root run:
cmake --preset mingw-gcc-x64-release
cmake --build --preset current-gccThe current developer x64 artifact is copied to build/output/ after a
successful build. Task closure also emits the corresponding _x86.exe from
the same source target using the documented x86 MinGW-w64 preset. Run the
documentation governance gate with:
powershell -NoProfile -ExecutionPolicy Bypass -File tools/Verify-DocumentationGovernance.ps1 -RepositoryRoot .All Ninja presets invoke ccache through a stable repository-local cache at
build/.ccache. This keeps repeat builds warm even when the host supplies a
temporary user-profile directory. ccache must be available on PATH.
Visual Studio is not required for the supported development path. The legacy manual-project, Autotools, and Makefile instructions are retired.
- Build NXVM using the commands above.
- Start the generated
nxvm_0_5_NNNN_x64.exeornxvm_0_5_NNNN_x86.exedeveloper artifact frombuild/output/. - In the NXVM Console, use
helpto inspect available commands. - Supply only your own legally obtained boot media when experimenting with a guest; the repository does not provide or distribute guest media.
- Use the Console and debugger to inspect machine state, then start, stop, and resume the session as supported by the current command surface.
The exact current product and media boundaries are maintained in the documentation guide and its linked authorities.
NXVM combines a bootable machine composition, firmware/profile behavior,
platform presentation, and the retained Console/debugger experience. The
shared core foundation owns reusable guest-machine behavior; NXVM owns the
current product composition and user experience.
NXVM includes an integrated debugger for examining guest registers, memory, ports, breakpoints, watchpoints, and instruction execution. Its assembler and disassembler remain part of that debugging experience.
These original NXVM captures are retained for project history and visual context, not as a claim that every displayed application is currently tested or supported.
- Documentation Guide is the contributor and agent entry point.
- Project Goals, System Architecture, and Roadmap describe the current NXVM-first, two-product direction.
- Contributing describes the change and review process.
NXVM emulates whole machines, not a DOS/VDM application host. Source, firmware, guest media, research, and distribution constraints are defined by the local documentation authorities. Read AGENTS.md before changing the repository.
The project is informed by Intel 80386 architecture documentation, IBM PC/AT technical references, and other documented research sources. See the documentation guide for the current source and research boundaries.