
Gunboat: River Combat Simulation (Gunboat)
Port nativo de Gunboat: River Combat Simulation (Gunboat) para PC.
Gunboat: River Combat Simulation (Gunboat)
Port nativo basado en su ficha de origen.
README del repositorio
Gunboat — faithful C++ / SDL3 source port
A reimplementation of Accolade's Gunboat: River Combat Simulation (DOS, 1990), rebuilt
function by function from the original GB.EXE in C++ on SDL3. It reads the original game files
at run time. No game data is included; you need your own copy of the DOS game.
The method follows the finished Test Drive III port by Krzysztof Kania (test-drive-3-sdl3), a sibling Accolade game from the same year: map the executable, write one specification per subsystem, then port each original function and check it against the original machine code.
How to play (Windows and Linux)
You need the files of the original DOS Gunboat (GB.EXE, DATAA.DAT, DATAB.DAT, DATAC.DAT,
the .MUS music and, for AdLib music, ADLIB.COM). They are not included.
-
Open the latest release and download
Gunboat-…-win64.zip(Windows 10/11) orGunboat-…-linux-x86_64.tar.gz(64-bit Linux with glibc 2.35 or newer: Ubuntu 22.04, Debian 12, Fedora 36 and later). -
Unpack it somewhere you can write to (on Windows Documents or the Desktop, not Program Files).
-
Copy your original game files into its
Gamefolder:Gunboat/ ├── Game/ <- your original game files (GB.EXE, DATAA.DAT, ...) ├── gunboat(.exe) <- the game ├── gunboat_controller(.exe) <- the controller mapping tool (Xbox controllers) ├── SDL3.dll (Windows only) └── README.txt <- the options and the controls -
Start
gunboat.exe(Linux:./gunboat), check that the launcher says "Game found", choose the video card, Original or Enhanced (or each option) and press Play. If Windows says "Windows protected your PC", click More info, then Run anyway (the program is not signed).
Status
| Phase | State |
|---|---|
| Executable map | Done: 597 functions indexed, 504 named (reverse_engineering/RE_GUIDE.md) |
| Subsystem specs | All eight done: simulation, 3D renderer, world, game flow, cockpit/HUD, platform, video, sound (reverse_engineering/spec/) |
| Port core | Done: GB.EXE loaded into the original memory layout, the SDL3 host in C++, generated symbols, and differential tests that run the original code in Unicorn and compare all memory with the C++ (gunboat-port/PORTING.md) |
| Porting | Done: the whole game runs natively and matches the original on every graphics card it supported, VGA, EGA, Tandy, CGA and Hercules (485 functions of GB.EXE and the Ad Lib driver's 52, each verified; gunboat-port/Run Port.cmd) |
| Enhancements | Optional, chosen in the launcher: a high-resolution 3D view, smooth 60 fps motion, an extended draw distance, impact debris, a wide cockpit (or the world beside the picture) in widescreen, picture aspect and scaling filters (VGA); the sound effects on AdLib FM instruments, each on its own channel, with explosions, kill and impact sounds where the original is silent (edited effect by effect with a development tool, gunboat-port/tools/sfx_editor, not part of the release). "Original" shows the faithful picture; F11 switches in the game. The game itself is the same either way |
Layout
| Path | What |
|---|---|
Game/ | Your original game files (not in the repository: Game/README.md lists them) |
CLAUDE.md | Porting rules and conventions |
reverse_engineering/ | Executable map, symbols, specs, format notes and Python tools |
gunboat-port/ | C++ / SDL3 code (CMake) and differential tests against the original code |
Building from source
Linux: bash gunboat-port/Release.sh with CMake 3.24+, Ninja, GCC and SDL3 3.4 installed (see
.github/workflows/release-linux.yml, which builds the release packages that way). Windows:
-
Copy the files of your original DOS Gunboat into the folder
Game(Game/README.mdlists the ones the port reads). They are never committed: Git ignores that folder. -
MSYS2 UCRT64 (GCC, CMake, Ninja) and SDL3:
powershell -File gunboat-port/Build.ps1builds and tests everything. -
gunboat-port/Run Port.cmd(orgunboat-port/build/gunboat.exe) starts the game; it findsGameby itself. For a copy elsewhere, putgunboat.exeandSDL3.dllnext to aGamefolder, as in the Test Drive III port:Gunboat\ ├── Game\ <- your original game files (GB.EXE, DATAA.DAT, ...) ├── gunboat.exe └── SDL3.dll
The launcher opens first: choose the game folder, the video card, Original or Enhanced (or
each enhancement on its own), the picture, the music and the sound effects, then Play. The choices are saved. In the game, F11
switches between the enhanced and the original picture and Alt+Enter toggles full screen.
gunboat.exe --help lists the command-line options (--no-launcher, --original, --enhanced,
...).
Credits
Tools and platform layer adapted from test-drive-3-sdl3 (MIT, © 2026 Krzysztof Kania). OPL emulation: Nuked-OPL3 (LGPL-2.1). The sound effects editor uses Dear ImGui (MIT). Gunboat is © 1990 Accolade; this project is not affiliated with the rights holders.
Comentarios (0)
Inicia sesión para dejar un comentario.
Sé el primero en comentar sobre este juego.
