-
v0.1.0
StableAll checks were successfulCI / msrv (1.90) (pull_request) Successful in 44sCI / stable (pull_request) Successful in 58sCI / audit (pull_request) Successful in 15sCI / msrv (1.90) (push) Successful in 42sCI / stable (push) Successful in 57sCI / audit (push) Successful in 15sRelease / build + release (push) Successful in 1m26sreleased this
2026-07-23 13:34:48 +02:00 | 56 commits to main since this releaseFirst public release: a Rust workspace of parsers, decoders, and a
dm2
command-line tool for the assets of Dungeon Master II: The Legend of
Skullkeep, covering the PC (DOS), Macintosh, Amiga, and Sega CD editions in
both little- and big-endian byte orders.Added
dm2CLI — inspect, extract, convert, repack, render, and edit game
assets:info— print format metadata for a single asset file.extract— unpackgraphics.dat/dungeon.datinto a directory, with
indexed-PNG transparency detection, font-sheet spacing control,
console-family lighting (--style/--light), per-language text
filtering, and additive type filters (--sfx,--music,--palette,
--font, …).dump— convert a recognised file to JSON.convert— transcode music between formats (HMP↔MIDI, …) and savegames
between DOS and Mac layouts.repack— reassemble an original install into a target engine's expected
layout.render— render music to 16-bit audio: Mac via the SoundMusicSys synth
(22254 Hz), DOS via OPL2/OPL3 (49716 Hz), Amiga via a Paula-faithful
ProTracker replayer (44100 Hz). WAV to a file, raw s16le PCM to stdout.verify— round-trip parse → emit → byte-compare to prove writer fidelity.save— read and edit savegames.
dm2-graphics— parser and writer forgraphics.dat(format 3/4/5, LE
and BE), including image, palette, font, text, and sound-effect payloads.dm2-dungeon— parser and writer fordungeon.dat(LE and BE variants).dm2-saves— parser and writer for savegame files (SkSave.dat,
sksave.bak), across DOS and Mac variants.dm2-music— decoders for DM2 music and audio: HMI/HMP (DOS), Amiga MOD,
and the Macintosh classic resource fork ('Midi'SMF,'snd 'Sound Manager
samples, plus AppleDouble v2 / MacBinary II unwrappers).mod-audio— ProTracker (Amiga MOD) rendering with Paula-faithful hard
panning.dm2-ftl— parser for the FTL 68k module container used by the Sega CD
and Amiga ports (and the DM/CSB console ports), including the zero-run
HUNK_DATAand nibble-streamHUNK_CODEdecompressors and all four
container checksums.dm2-wav— WAV writing helpers for the audio formats the game shipped.dm2-binrw— workspace-internalbinrwglue: trait-bounded
parse / write / to-bytes helpers shared by the binary parsers.dm2-test-fixtures— workspace-internal test helpers that resolve paths
againstfixtures/and skip silently when a fixture is absent.- Per-crate
examples/demonstrating minimal use of each library crate. - Engineering hygiene: CI,
cargo-denysupply-chain checks, Kaitai Struct
format specs, rustdoc pages, and fuzz targets.
Notes
- The reusable synth crates
opl-audioandsms-audiowere split out of this
workspace and are published separately on crates.io;dm2-toolsconsumes
them as external dependencies.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads