The Map of Iberia
Vengeance of Excalibur’s strategic map: a 123×101 tile grid
(1968×1616 pixels at the game’s native 16px tile size), decoded from
the MMAP/IMAG #500 resources in INTF32.RES and pre-composited into the
image below by tools/vengeance/render-map.ts. The coastline this renders
is instantly recognisable as the Iberian Peninsula — the game’s map covers
Spain and Portugal, matching its story (a re-imagined Reconquista-era Spain
laced with Arthurian and Arabian Nights elements).
44 named locations. Hover or focus a marker for its name; search to highlight matches.
Want to see one of these locations up close, composited the same way the offline asset viewer’s SceneViewer tab builds it? The Scene Viewer Gallery shows six named locations as full landscape-plus-object composites — an enhancement over the original game, which never had a “click a map location, see a close-up” feature of its own (unlike War in Middle Earth).
How the map is stored
Section titled “How the map is stored”Every one of the 12,423 tiles on the map is a single byte: a direct index
into a 256-tile atlas (IMAG #500, 256×256px, 5 bitplanes) — no
nibble-packed row/column split the way Spirit of Excalibur’s map uses (see
docs/vengeance/amiga/gameplay-data.md and
tools/shared/build-map.ts’s shared buildGameMap, which supports both
encodings). The 123×101 grid dimensions themselves took some work
to pin down: the decompressed MMAP buffer’s size (12,423 bytes) only
factors as 3×4141, 41×303, or 101×123 — naive
auto-detection picked the transposed 101×123, which sheared the whole
map into diagonal stripes one tile short per row. 123×101 is the
orientation that renders a real, recognisable coastline.
74 named locations, 44 placed on the map
Section titled “74 named locations, 44 placed on the map”vengeance-game-data.json’s locations table has 74 entries shared across
all seven episodes/scenarios. 44 of them carry real map-pixel coordinates
and are shown as markers above — real Iberian place names (Almeria,
Barcelona, Zaragoza, Zamora…) alongside a few fantastical ones drawn from
the game’s Arthurian/Arabian Nights plot (City of Brass, Well of Souls). The
other 30 (mostly generic “Cave001”-“Cave020”, “Tavern01”/“Tavern02”,
“mrchnt01”-“mrchnt03” instances, reused across multiple scenario sites) carry
a 9999 sentinel x-coordinate rather than a real map position, since they’re
not tied to one fixed spot the way the named towns are.
Full derivation and the exact table offsets live in
docs/vengeance/amiga/gameplay-data.md in the main repo (not part of this
site).

