# VPX + AWE32 devices — DOSBox-X integration Our original source for the emulated pod hardware. Kept here under version control because the DOSBox-X source tree itself (`emulator/src/`, ~490 MB) is git-ignored. - **`vpxlog.cpp`** — the Division VPX link adapter (INMOS C012 at I/O base `0x150`), grown through Phase 3: iserver handshake responder, FIFO scene decode, GL Division renderer (gallery shading model), VDB video-head splitter windows. - **`vweawe.cpp`** — the dual-AWE32 sound device: two vendored EMU8000 cores at 0x620/0x640 (+0x400/+0x800 triplets), rear-card DSP/mixer stub at 0x240, autonomous render thread with direct winmm output. Needs the GM ROM (`emulator/roms/awe32.raw`) via `VWE_AWE_ROM` or SoundFont uploads are refused (banks declare `irom=1MGM`). See `emulator/SOUND-NOTES.md`. - **`emu8k.cpp` / `emu8k.h` / `emu8k_shim.h`** — EMU8000 wavetable core vendored from 86Box (GPL-2.0-or-later, same license as DOSBox-X), with a minimal shim; local changes are listed in the emu8k.cpp header. ## Applying to a DOSBox-X source checkout Tested against DOSBox-X `v2026.06.02`, MSYS2 mingw64. 1. Copy the devices in: ``` cp emulator/vpx-device/vpxlog.cpp emulator/src/src/hardware/ cp emulator/vpx-device/emu8k.cpp emulator/src/src/hardware/ cp emulator/vpx-device/emu8k.h emulator/src/src/hardware/ cp emulator/vpx-device/emu8k_shim.h emulator/src/src/hardware/ cp emulator/vpx-device/vweawe.cpp emulator/src/src/hardware/ ``` 2. Add them to the hardware build — in `src/src/hardware/Makefile.am`, append `vpxlog.cpp emu8k.cpp vweawe.cpp` to `libhardware_a_SOURCES` (we inserted them after `glide.cpp`; if you edit the generated `Makefile`/`Makefile.in` by hand instead of re-running automake, also mirror the `$(OBJEXT)` list, the `.Po` depfile list, and the depfile include markers — grep for how `vpxlog` appears and copy the pattern). 3. Call the inits — in `src/src/gui/sdlmain.cpp`, declare `void VPXLOG_Init();` and `void VWEAWE_Init();` next to the other `*_Init()` prototypes; call `VPXLOG_Init();` right after `GLIDE_Init();` and `VWEAWE_Init();` right after `SBLASTER_Init();` (it needs the mixer initialized). 4. Build: ``` cd emulator/src ./build-mingw-sdl2 --enable-debug=heavy ``` Output: `src/src/dosbox-x.exe`. ## Running ``` set VPXLOG=C:\VWE\TeslaRel410\emulator\vpxlog.txt emulator\src\src\dosbox-x.exe -conf emulator\capture.conf python emulator\analyze_capture.py ``` With `VPXLOG` unset the device is inert and the build behaves like stock DOSBox-X.