Skip to content
Velocity9x
Driver development - Velocity Drivers

Under the hood

Driver development

Build Velocity9x from source with Open Watcom v2 and the Windows 98 DDK, run the host tests, and work in 86Box.

All build scripts are PowerShell and live in scripts/. None of them download toolchains or licensed SDK or DDK material; a missing prerequisite is reported as a prerequisite failure.

Prerequisites

Component Needed for
Open Watcom v2 snapshot Everything. Initialise its environment first.
Windows 98 DDK at C:\98DDK The Win16 display driver, the mini-VDD and the packages.
MSVC (optional) A second-compiler warning pass over the host tests.

Use Windows PowerShell 5.1 or PowerShell 7 on Windows.

First commands

./scripts/check-tree.ps1        # repository structure, no compiler needed
./scripts/build-host.ps1        # portable core + family-matrix host tests
./scripts/build-host-msvc.ps1   # optional: the same tests under MSVC /W4 /WX
./scripts/build-all-packages.ps1

The host tests need no emulator and no Windows guest. They regenerate the family matrix from every manifest under packaging/families/ and check that every declared PCI ID resolves to a backend, that chips of one family share it, that no capability is claimed against an engine of type NONE, and that every advertised mode fits the family’s declared VRAM. Run them first after editing a manifest.

Testing in a VM

86Box is where almost all development and regression testing happens, with QEMU as well. Capture COM1 to a named pipe before booting a new build: if the driver fails before the desktop, the serial log is the only thing that says why.

The V9x Remote Agent turns the build, copy, run and reboot loop into one command per step, from a PowerShell CLI or an MCP server, so changes can be pushed into a Windows 98 guest and checked with screenshots without touching the emulator. See the agent’s page for its MCP server, which lets an AI coding agent drive the guest.

Contributing code

Velocity9x is GPL-3.0-or-later. Read How to contribute first, then open an issue or pull request on GitHub.