# Havoc — Preservation & Godot Remaster Reverse-engineering, asset-extraction, and Godot remaster of **Havoc** (Reality Bytes, Inc., 1995) — a first-person **vehicular-combat shooter** for Windows 95/98. Havoc renders a **software-rasterized 3D world** (textured terrain, low-poly enemy/pickup models, drivable *and* flyable vehicles, dithered 8-bit color) into a DirectDraw framebuffer, framed by an elaborate **2D cockpit HUD** (mirrors, radar, gauges, weapon icons). Biomes include desert, snow/ice, lava, and ocean. The original 32-bit executable (DirectDraw + DirectSound, **no Direct3D** — the 3D is all software) no longer runs reliably on modern Windows (legacy DirectDraw + a 16-bit installer/DirectX setup path). Rather than only emulate it, this project extracts the original data into open formats and rebuilds the game in [Godot](https://godotengine.org/) as a quality-of-life remaster. > **Legal:** Havoc is 30-year-old abandonware. This repository contains **only** original > reverse-engineering code and documentation. It does **not** redistribute the game's > executables, DLLs, or data files (see `.gitignore`). You must supply your own copy of the > game data to run the tools. ## Status - [x] Identified binaries: `HAVOC.EXE`/`LAUNCHER.EXE`/`SETUP.EXE` are 32-bit PE (i386), DirectDraw + DirectSound, **not** 16-bit/DOS. - [x] Cracked the `.FF` ("FlashFile") archive format — see [docs/FORMATS.md](docs/FORMATS.md). - [x] Extracted `MUSIC.FF`: 97 WAV segments + 17 playlist-sequenced songs (verified correct). - [x] FL Studio pack: per-song MIDI + sample mapping (`tools/ff_extract.py --fl`). - [ ] ogg/mp3 conversion (`--convert`, needs ffmpeg). - [x] Boot `HAVOC.EXE` on Windows 11 (dgVoodoo2) — NOCD + copy-protection fix, see [docs/PATCHES.md](docs/PATCHES.md). - [~] Crack graphics formats: `GRAFIX*.DAT` done ([docs/FORMATS.md](docs/FORMATS.md)); `LAND*.DAT`, `MAP*.MAP`, `STUF*.DAT` next. - [ ] Decompile `HAVOC.EXE` (Ghidra) to recover game logic. - [ ] Godot remaster project (widescreen, higher-res, rebindable input). ## Tools `tools/ff_extract.py` — extract any `.FF` archive. ```sh python tools/ff_extract.py MUSIC.FF -o out_music --songs # raw entries + assembled songs python tools/ff_extract.py MUSIC.FF -o out_music --songs --convert ogg python tools/ff_extract.py MUSIC.FF -o Havoc_MUSIC_FLStudio --fl # FL Studio samples + MIDI ``` ## Layout ``` tools/ reverse-engineering & extraction scripts (tracked) docs/ format documentation (tracked) godot/ Godot remaster project (tracked, WIP) original data — supplied by you, gitignored ```