Skip to content

Middilgard — Data Formats

A human-readable guide to the internal data formats of five classic Amiga/DOS games, reverse-engineered from scratch.

Middilgard reverse-engineers five late-80s/early-90s Amiga and DOS games — decoding their graphics, maps, sound, and game logic from the original shipped data, then reimplementing them in TypeScript. This site is a curated, human-readable companion to that research; the exhaustive byte-level notes, disassembly citations, and paths-tried evidence trails live in each game’s own docs/<game>/ in the main repo.

Everything on this site is derived from byte-level analysis of the original game files, cross-checked against the games’ own disassembled code and, where possible, real emulator captures. Where a format is fully solved, these pages say so and link to the evidence; where something is still open or only partially confirmed, that’s stated plainly too, rather than rounded up. Each game’s own Status & Open Work page lists what remains unresolved.

They are not five unrelated codebases. All five ship their data in the same Mac-style resource-fork container, and all five store their pixels in the same two resource types — IMAG for still images and FRML for sprite animation. Those formats are documented once, in Shared Formats, rather than repeated in each game’s section.

Two engine families sit on top of that shared layer: Melbourne House’s (War in Middle Earth) and Synergistic Software’s (Spirit, Vengeance, Conan and Legend).