VCThunder is a Midway Quicksilver II Windows host for Hydro Thunder (1999) and Offroad Thunder (2000), and Midway Graphite host for Arctic Thunder (2001) and Ultimate Arctic Thunder (2004).
VCThunder is not an emulator. The original 32-bit x86 game code runs natively on your CPU, in-process, unmodified. What VCThunder replaces is everything around that code: the Phar Lap ETS kernel becomes real Win32, the Glide 2.53 boundary becomes our own rasteriser, and the cabinet's I/O boards, audio hardware, timebase and NVRAM become host implementations.
This project was a personal challenge to see how far Claude Opus 5 could be leveraged to vibe code an application like this, and succeeded far beyond expectations. At this point there is a few hundred man hours into this project alongside a handful of testers. The result is these games being playable on a level never seen before.
Download the latest release from https://github.com/mourix/VCThunder/releases, unzip it
somewhere you can write to (your Documents or Desktop, not Program Files), and run
VCThunder.exe. Nothing has to be installed and nothing has to be built.
You supply the games, as your own MAME CHDs: put the .chd files next to VCThunder.exe
and run it, and it imports each game that is not there yet. A .chd kept elsewhere: press
Import... on a game in the launcher and choose it, or drop it onto VCThunder.exe. VCThunder reads
the game straight out of the CHD, checks it is a build it supports (below) before writing
anything, and puts it in the folder beside it. A few seconds later Play lights up.
Ultimate Arctic Thunder comes from its update CD (040503_1309.chd, or its .cue/.bin),
which is laid over Arctic Thunder, so have Arctic Thunder's CHD too.
Nothing from the games is needed to build: the address tables are committed under generated/.
Build from WSL or from an MSYS2 MINGW32 shell, not from PowerShell or cmd.
sudo apt install gcc-mingw-w64-i686 make python3 # WSL / Debian / Ubuntu
pacman -S mingw-w64-i686-toolchain make python # MSYS2, from the MINGW32 shell
make setup # fetch, build, stage run/vcthunder/
run/vcthunder/VCThunder.exe # then import your CHDs theremake setup fetches SDL3 and the two decompressors the CHD importer uses, each checked against
its pinned SHA-256, builds the host, and writes a pack into run/vcthunder/.
docs/building.md is the long build doc, including the smoke test.
docs/configuration.md covers every ini key and the controls the pack ships with.
docs/architecture.md explains how the host is put together.
Every address VCThunder patches is an offset into one exact executable. This host supports exactly four files:
| Title | Build | SHA-256 of the executable |
|---|---|---|
| Hydro Thunder | v01.01b, 1999-02-27 | a421f5fd4ee0d90f57815975d4a47bb784f2b46d48085e42b422605a029f8e3f |
| Offroad Thunder | 2000-02-25 | fa739d0f1a80c6e429ca73fdee04c3d6d6325bb95848cb701114f74bf2a5e9bf |
| Arctic Thunder | v1.002, 2000-12-18 (snow.exe) |
de69623f143a200eee50bb0fde3a7c9d106ff659b55cd02ab67e4e7890763b28 |
| Ultimate Arctic Thunder | v1.9.5.0, 2004-05-03 (snow.exe) |
e2ba002abb585079553df678fe8183bd3324598bf4045ad06479c4eafa4dd894 |
The import checks the executable inside a CHD against these before it writes anything, and says which build you have.
V0.4, the fourth public beta release: the first with Arctic Thunder and Ultimate Arctic Thunder.
Hydro and Offroad playable: gameplay, controls, audio, NVRAM, windowing, force feedback, and I/O, at a locked 30 fps. Both Arctic Thunders run at their own 60 fps and race on keyboard and pad; they are newer here than the other two.
| Title | Released | I/O board | State |
|---|---|---|---|
| Hydro Thunder | 1999 | Diego | Playable |
| Offroad Thunder | 2000 | MagicBus | Playable |
| Arctic Thunder | 2001 | (Windows 2000 PC) | In progress |
| Ultimate Arctic Thunder | 2004 | (Windows 2000 PC) | In progress |
Link play is an early beta: only two instances on one machine have ever been linked. That's it.
The goal is a replacement system for the original Quicksilver II cabinets.
Todo:
- Link play between two machines: both simulated and real cabinet.
- Real cabinet IO: the Diego and MagicBus I/O boards over RS232, and the security relay a real board originates.
- Real cabinet video: native 25 kHz to the cabinet's own monitor, at the game's own 512x384 coin-op timing.
- Linux support and Vulkan renderer.
- Bugfixes and comparison to real hardware where possible.
Original VCThunder source and documentation are MIT-licensed. See LICENSE.
Three pieces of other people's work are built in, none of them committed here: make deps downloads each pinned release and verifies its SHA-256.
- The renderer's GPU backend uses SDL3, under the zlib license and © the SDL contributors;
SDL3.dllships beside the host binaries. - The CHD importer uses zlib's inflate, under the zlib license, and 7-Zip's
LzmaDec.c, which its author placed in the public domain.
A release's THIRD-PARTY.txt carries each notice.
Hydro Thunder, Offroad Thunder, Arctic Thunder, Midway and 3dfx marks belong to their respective owners. This project is unaffiliated with them and exists for preservation and for interoperability with hardware its users own.