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.

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.
What’s decoded
Section titled “What’s decoded”| 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/CHARresources. - 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
DisplayScenebuilds them. - Buildings & Scenery — the scene object art placed on top of those landscapes.
Source of truth
Section titled “Source of truth”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.