Firestaff: open-source Dungeon Master engine port
Posted: Mon Apr 20, 2026 11:47 am
Hello everyone,
I've been quietly working on an open-source engine port of Dungeon
Master and Chaos Strikes Back, and the first milestone is now public.
The project is called **Firestaff**.
What it is
A deterministic, modular re-implementation of the FTL Games engine,
written in portable C. The goal is a single codebase that runs on
macOS, Linux, and Windows from V1, reads player-owned original DAT
files, and preserves the original behaviour bit-for-bit — including
the famous quirks that generations of players have memorised.
Current state (M10)
The engine core is complete and passes 500+ invariant tests across 20 phases:
- Dungeon data layer, movement, champions, inventory
- Sensor execution (pressure plates, triggers, actuators)
- Timeline scheduler with 16 event kinds
- Combat resolution
- Magic system (spells, runes, effects)
- Save / load with CRC32 integrity and bit-identical round-trip
- Monster AI state machine
- Projectile flight and collisions
- Champion lifecycle (hunger, status effects, XP, rest)
- Runtime dynamics (generators, light decay, fluxcage)
- Deterministic tick orchestrator — same seed + dungeon → identical world hash
Everything verifiable today: `./run_firestaff_m10_verify.sh` exits 0
on a clean checkout; two headless runs of the same input produce
byte-identical output.
What it is not (yet)
Not playable. No rendering, no audio, no input. That's the next
milestone (M11 — SDL3 integration, target 7 weeks). Then M12 adds the
startup menu, language support, and toggleable bug-fix presets.
Legal stance
Firestaff does not ship any original game assets, graphics, audio, or
text. It requires you to point it at your legally-owned DUNGEON.DAT.
The engine code is MIT-licensed.
Credits
The project has been deeply informed by Christophe Fontanel's ReDMCSB
documentation and the Encyclopaedia. No ReDMCSB source code has been
copied into Firestaff — only mechanics, bug-lists, and behavioural
references from his published documentation. I've asked Christophe
directly about a future collaboration; that conversation is ongoing.
And of course: thanks to Doug Bell, Dennis Walker, Mike Newton, Andy
Jaros, and Wayne Holder at FTL Games for the original masterpieces.
Links
- Code: https://github.com/yeager/firestaff
- Roadmap: https://github.com/yeager/firestaff/blob/main/TODO.md
- Bug database (201 entries, open JSON):
https://github.com/yeager/firestaff/blo ... -bugs.json
Help wanted
Not asking for code yet (the architecture is still shifting). But if
you own legitimately-purchased original DM1 / CSB / DM2 files in any
variant (Atari / Amiga / PC / FM Towns / Apple IIGS / X68000 / PC-98 /
localised editions), an MD5 of your DUNGEON.DAT and GRAPHICS.DAT would
be enormously useful for the asset-validation database that ships in
M12. Please do NOT upload the files themselves — only the hashes.
Happy to answer questions.
— Daniel
I've been quietly working on an open-source engine port of Dungeon
Master and Chaos Strikes Back, and the first milestone is now public.
The project is called **Firestaff**.
What it is
A deterministic, modular re-implementation of the FTL Games engine,
written in portable C. The goal is a single codebase that runs on
macOS, Linux, and Windows from V1, reads player-owned original DAT
files, and preserves the original behaviour bit-for-bit — including
the famous quirks that generations of players have memorised.
Current state (M10)
The engine core is complete and passes 500+ invariant tests across 20 phases:
- Dungeon data layer, movement, champions, inventory
- Sensor execution (pressure plates, triggers, actuators)
- Timeline scheduler with 16 event kinds
- Combat resolution
- Magic system (spells, runes, effects)
- Save / load with CRC32 integrity and bit-identical round-trip
- Monster AI state machine
- Projectile flight and collisions
- Champion lifecycle (hunger, status effects, XP, rest)
- Runtime dynamics (generators, light decay, fluxcage)
- Deterministic tick orchestrator — same seed + dungeon → identical world hash
Everything verifiable today: `./run_firestaff_m10_verify.sh` exits 0
on a clean checkout; two headless runs of the same input produce
byte-identical output.
What it is not (yet)
Not playable. No rendering, no audio, no input. That's the next
milestone (M11 — SDL3 integration, target 7 weeks). Then M12 adds the
startup menu, language support, and toggleable bug-fix presets.
Legal stance
Firestaff does not ship any original game assets, graphics, audio, or
text. It requires you to point it at your legally-owned DUNGEON.DAT.
The engine code is MIT-licensed.
Credits
The project has been deeply informed by Christophe Fontanel's ReDMCSB
documentation and the Encyclopaedia. No ReDMCSB source code has been
copied into Firestaff — only mechanics, bug-lists, and behavioural
references from his published documentation. I've asked Christophe
directly about a future collaboration; that conversation is ongoing.
And of course: thanks to Doug Bell, Dennis Walker, Mike Newton, Andy
Jaros, and Wayne Holder at FTL Games for the original masterpieces.
Links
- Code: https://github.com/yeager/firestaff
- Roadmap: https://github.com/yeager/firestaff/blob/main/TODO.md
- Bug database (201 entries, open JSON):
https://github.com/yeager/firestaff/blo ... -bugs.json
Help wanted
Not asking for code yet (the architecture is still shifting). But if
you own legitimately-purchased original DM1 / CSB / DM2 files in any
variant (Atari / Amiga / PC / FM Towns / Apple IIGS / X68000 / PC-98 /
localised editions), an MD5 of your DUNGEON.DAT and GRAPHICS.DAT would
be enormously useful for the asset-validation database that ships in
M12. Please do NOT upload the files themselves — only the hashes.
Happy to answer questions.
— Daniel