Skip to content

War in Middle Earth

A human-readable guide to the internal data formats of War in Middle Earth (1988, Melbourne House / Virgin) — a real-time strategy/adventure hybrid set in Tolkien’s Middle-earth, played across a scrolling strategic map, a zoomed-in animated landscape view, and per-hero character screens, while the Fellowship carries the Ring toward Mount Doom.

War in Middle Earth title screen

The Amiga release is the reference platform here: 197 resources across 6 Mac-style resource-fork .res files, plus a 68000 executable whose DATA hunk carries the entity, item, location and movement tables the game is actually played on. Three other releases are extracted and cross-checked against it — DOS VGA, DOS EGA (shipped as Lord of Middle Earth), and Apple IIGS.

Area Status
Resource forks (6 .res files) 197 resources catalogued — IMAG, CSTR, FRML, MMAP, CHAR
IMAG (still images) 115/115 decode, including the 2 uncompressed variants — PackBits over interleaved Amiga bitplanes
CHAR (terrain tileset) 320 tiles of 16×16 at 4 bitplanes, with a 15-entry OCS palette in its own 32-byte header — not character data, despite the name
MMAP (strategic map) One resource, PackBits-compressed to a 16,256-byte terrain grid at one byte per tile — see The Map
FRML (animation sheets) 19 resources — 5 battle sprites in AAnims.res, 14 scene animations in BScene.res. Frame segmentation comes from decoding the game’s own animation VM: 253/256 landmark checks pass across 15 of 16 races, with the Balrog the one documented exception — see Characters & Mobs
CSTR (text) 61 strings across AText.res and BScene.res
Entity table 196 records at a 38-byte stride, every byte mapped — 42 heroes, 126 armies, 28 creatures — see Characters, Armies & Creatures
Item system 17 items, each one bit of a 16-bit per-entity inventory mask, with their own BScene.res icon art — see Items
Location & movement tables 70 waypoint entries at DATA+0x3E76; 13 movement-speed tables × 16 terrain classes at DATA+0x4270 — see Movement & Time
Scene rendering (BScene.res) DisplayScene traced end to end: 81 background IMAG strips, an 18-entry scene-descriptor table, and SynthSceneObjects reimplemented across all 31 handled terrain values (276 execution paths enumerated by a symbolic 68k executor, 0 mismatches) — see Scene Viewer Gallery
Palettes 4 verified tables (strategic map, map variant, 32-colour scene, title); scene indices 2–3 confirmed as the dynamic water-shimmer slots
Save format (ARCHIVE.DAT) An 8,330-byte raw DATA-hunk dump: 196 entity records, 16 party slots, 10 army/commander slots, 40 route paths, 50 bytes of state flags
Sound & music 22 SMUS scores, 32 .instr instruments in three variants, 4 .ss multi-octave samples — played back live through a Web Audio SMUS renderer
End conditions Exactly 4 trigger sites, each proven via the CSTR resource it fetches; named-character deaths confirmed absent as an ending
DOS VGA port Item, location and item-placement tables byte-exact against the Amiga; entity table 166/196 (85%) decoded, with 30 non-standard-length records open. Assets build clean apart from two BSCENE.RES animations — the hobbits and the campfire — whose header type bytes fall outside the decoder’s accepted set, leaving hobbits unrendered on this port (status)
DOS EGA port 110/110 GAMI and 19/19 LMRF decode; in-game palette confirmed as standard CGA/EGA 16 with register 13 forced to black
Apple IIGS port 82 GAMI and 20 LMRF build clean; SONGS.RES is not a resource fork and stays undecoded, as do the PAMM/TNOF/RAHC payloads

Open questions are tracked on the Status & Open Work page.

  • Items — all 17 items, their effects, and the property table behind them.
  • Characters, Armies & Creatures — the 196-entry entity table and what each record actually tracks.
  • Combat & Events — army aggregation, the encounter system, and the traced event dispatch.
  • Movement & Time — terrain speed classes, the day/night clock, and route following.
  • The Map — the strategic map of Middle-earth, rendered from its own MMAP/CHAR resources.
  • Icon Gallery — the strategic-map unit icons.
  • Characters & Mobs — every character and troop type, recoloured and animated in its real colours.
  • Scene Viewer Gallery — named locations composited the way the game’s own DisplayScene builds them.
  • Buildings & Scenery — the scene object art placed on top of those landscapes.

These pages are a curated summary. The exhaustive, byte-level research notes live in the main repository (not part of this site) — and when a page here disagrees with them, the raw notes win:

  • docs/wime/plan.md — the format-by-format status table.
  • docs/wime/amiga/ — the byte-level specs: mmap-format.md, char-format.md, bscene-format.md, exe-gameplay-data.md, game-logic.md, event-system.md, movement-system.md, save-format.md, palettes.md.
  • docs/formats/ — the container and media formats this game shares with the other four: resource forks, IMAG, FRML, SMUS and SampledSound.
  • docs/wime/TODO.md — the single status surface for open work.