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
Firestaff: open-source Dungeon Master engine port
Forum rules
Please read the Forum rules and policies before posting. You may
to help finance the hosting costs of this forum.
Please read the Forum rules and policies before posting. You may
to help finance the hosting costs of this forum.
- ChristopheF
- Encyclopedist
- Posts: 1691
- Joined: Sun Oct 24, 1999 2:36 pm
- Location: France
- Contact:
Re: Firestaff: open-source Dungeon Master engine port
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:
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.DATChristophe - Dungeon Master Encyclopaedia