Page 1 of 1

Firestaff: open-source Dungeon Master engine port

Posted: Mon Apr 20, 2026 11:47 am
by yeager
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

Re: Firestaff: open-source Dungeon Master engine port

Posted: Mon Apr 20, 2026 12:42 pm
by ChristopheF
MD5 hashes of all known dungeon files are available here: http://dmweb.free.fr/community/document ... eon-files/

For Graphics.dat and other data files, here is what I have:

Code: Select all

61FBFD56887C94ADC26888A9491C6611  CSB Amiga 3.1 and 3.3 Multilanguage GRAPHICS.DAT
291E1BC6803E3DC4B974C60117CA5D68  CSB Amiga 3.5 English GRAPHICS.DAT
CEFADDFDF5651DF2C91F61B5611A8362  CSB Amiga 3.5 Multilanguage GRAPHICS.DAT
BD85386535697DF62BDBAE73740FE435  CSB Amiga Utility Disk DRAGON.AMG
4D14D2F12752653BCB1D4464840A7230  CSB Amiga Utility Disk English NAKED.AMG
708E113C869AB922633E885AA72A3C77  CSB Amiga Utility Disk English Release 1 Release X and Atari ST 2.0 EN HCSB.DAT
7496B3B8B9FF6E2368EAC9A16BE8230B  CSB Amiga Utility Disk English Release 2 and 3 HCSB.DAT
8AEF8165975A36A426AA2EA39823C149  CSB Amiga Utility Disk English Release 2 Release 3 CEDTLS.DAT
370A3C46AECEE04BDC6EAE73771208C0  CSB Amiga Utility Disk EXPLOS1.AMG
DC22B3DAE4C1C799E7E21F66F291AA9C  CSB Amiga Utility Disk French and German NAKED.AMG
B367D58374A799DE88BC1A24C6320771  CSB Amiga Utility Disk French CEDTLS.DAT
BBF3ADA2DA9722577FEEA4FA213B32F1  CSB Amiga Utility Disk French Release HCSB.DAT
A3CFF52EF8E4D85853282181219CDE63  CSB Amiga Utility Disk German CEDTLS.DAT
9E0DA6C5A569859C6191201DCC6E6AAE  CSB Amiga Utility Disk German Release HCSB.DAT
59CE0CA034656595B0E0A7A9B1A71316  CSB Amiga Utility Disk MAGEXPLO.AMG
CCA41290E6121FBB451EE55283CE4ABB  CSB Amiga Utility Disk SWIPE.AMG
70528F7143BD0A3CA7BFD3988722A8A8  CSB Amiga Utility Disk TELE2.AMG
21197B1D4994FD835C403D5A33DCAC2B  CSB Amiga X.X and 3.1 English GRAPHICS.DAT
EBF6A57AF3F27782E358C0490BFD2F2E  CSB Atari ST 2.0 and 2.1 English GRAPHICS.DAT
9F8FEB269C959C9FE722AC08F99D9C35  CSB Atari ST Utility Disk English ANIMATE.DAT
405B757038EEA3C263E60F240854D6DE  CSB FM-Towns English GRAPHICS.DAT
761D6FC588B31AEAAA9CAF3725E111B9  CSB FM-Towns Japanese GRAPHICS.DAT
61F51D7FFBE0A8CCD6A49C2FEC3295FC  CSB PC-98 ENTER.SNG
761D6FC588B31AEAAA9CAF3725E111B9  CSB PC-98 Japanese GRAPHICS.DAT
EE1EC8A63E0D41D45D2E073BFCDF5DF7  CSB X68000 Japanese ENTER.SNG
8FE59D4F2AF5B57A4CB14447C011D3F1  CSB X68000 Japanese GRAPHICS.DAT
0679E39DA9DCC2E855CB33C6C64DDCB5  DM Amiga 2.0 and 2.2 German GRAPHICS.DAT
6A2F135B53C2220F0251FA103E2A6E7E  DM Amiga 2.0 English GRAPHICS.DAT
DD373954B3FB127DB7387946131EA322  DM Amiga 2.0 French GRAPHICS.DAT
B35931B55DB649A1BD2D415B61B29801  DM Amiga 2.1 and 2.2 English GRAPHICS.DAT
7F9458E4A3972D06E649A6FA85A7F34B  DM Amiga 3.6 Multilanguage GRAPHICS.DAT
491CA939F9ABB33CEEB26619B841FE91  DM Amiga Demo English GRAPHICS.DAT
12EDEF8658079697AAE1C2DCB16D5F67  DM Apple IIGS English DEMOIIGS.DAT
1045A36952E64EB2BC7B4C7B2965B112  DM Apple IIGS English GRAPHICS.GAME
B3CFD84E44CDF07CE2EEBA47E87F772B  DM Atari ST 1.0 (1987-12-08) English GRAPHICS.DAT
7EEE396993745E8AF212F44D75FF6C1A  DM Atari ST 1.0 (1987-12-11) English GRAPHICS.DAT
5095A13692702235D2E74F6B2B1367A9  DM Atari ST 1.1 English GRAPHICS.DAT
9CE2EAF7A9E78620E3F17594437CAFFA  DM Atari ST 1.2 English GRAPHICS.DAT
2BDC5F431F84C0ECE738F54DBD787C3B  DM Atari ST 1.2 German GRAPHICS.DAT
0D7AF44DD14F383464288ABDCEC76AFC  DM Atari ST 1.3 French GRAPHICS.DAT
C10C512F63461EBE79B5AC365115B61B  DM FM-Towns English GRAPHICS.DAT
EDF47D7DA5DE8184604D6D80477EF01F  DM FM-Towns Japanese GRAPHICS.DAT
FA6B1AA29E191418713BF2CDA93D962E  DM PC 3.4 English GRAPHICS.DAT
F934D97E43E1BA6E5159839ACBCD0611  DM PC 3.4 Multilanguage GRAPHICS.DAT
C20E5B8F756E360A631595CC9260F62D  DM PC SONG.DAT
EAEC2131541573658DA99C13865C2E67  DM PC-98 2.0a Japanese GRAPHICS.DAT
3E3B9B1800C67B4CE850E087813C325D  DM PC-98 2.0b Japanese GRAPHICS.DAT
FE08A97C64766614B71164FA06EDA545  DM X68000 Japanese GRAPHICS.DAT
1C940EA95703EAEA0ECDF84D17E954B9  DMII Amiga GRAPHICS.DAT
027FF3B8DDC2C4C4CDDA7ADA0B0BC46C  DMII FM-Towns Japanese GRAPHICS.DAT
F926A7554BDFB5852105179E67B8A264  DMII IBM PSV Japanese GRAPHICS.DAT
4BF28B3D84E6799D7686C6AAF96CBF23  DMII Macintosh English Demo GRAPHICS.DAT
5CAB25F6B975957EAE4A203174E7F2A6  DMII Macintosh English GRAPHICS.DAT
283D5456C4F676609489E200219605BB  DMII Macintosh Japanese GRAPHICS.DAT
5DC5D15AE4A3EE85757B3D3622ED2221  DMII PC 0.9 Beta English DMCOORD.DAT
0A63E22CD83FE3C90AACFFDA5C0F062C  DMII PC 0.9 Beta English GRAPHICS.DAT
BD2D316EB77C6D6D217BFB76BD0D7E41  DMII PC English Demo 19950112 GRAPHICS.DAT
43CF7E8579E83E9F1FA9B411695842FD  DMII PC English Demo 19950509 GRAPHICS.DAT
9A6AA706AE9BED5DDD68FFD730524476  DMII PC English Demo 19950713 GRAPHICS.DAT
25247EDE4DABB6A71E5DABDFBCD5907D  DMII PC English GRAPHICS.DAT
B4D733576EA60C41737F79F212FAF528  DMII PC French GRAPHICS.DAT
E52AB5E01715042B16A4DCFF02052E5D  DMII PC German and EnglishJewelCase GRAPHICS.DAT
A0277195099B2ACE51D4E085F7EEF835  DMII PC-9801 Japanese Demo GRAPHICS.DAT
A669ADF2A6FF887E0D451D93C846F57F  DMII PC-9801 Japanese GRAPHICS.DAT
A31023DB49D5D85E469C9323671812C7  DMII PC-9821 Japanese Release 1 GRAPHICS.DAT
A80C555A858EF7770E1D7F3D2E37FEC3  DMII PC-9821 Japanese Release 2 GRAPHICS.DAT
DBCED13A38D3036F42B9797175B7EC88  DMII Sega CD English GRAPHICS.DAT
A654BA19E9A6919F46818ECD23D7EA9D  DMII Sega CD Japanese GRAPHICS.DAT