Skip to content

Getting Started

Vairn edited this page Jun 29, 2026 · 5 revisions

Getting Started

Navigation: Home - You are here: Getting Started

Welcome to the Might & Magic II (Amiga) reverse-engineering wiki. Everything here is rebuilt from the original 68000 disassembly. Pick a path below based on what you want to do.

flowchart LR
  bin["Amiga binary<br/>mm2 (68000)"] --> dis["Disassembly<br/>IRA + Capstone"]
  dis --> docs["EXTRACTED/docs<br/>format specs - ASM traces"]
  docs --> cod["Codecs (Python + C)"]
  docs --> ed["MM2ED editor"]
  docs --> gal["Sprite gallery"]
  docs --> walk["Map walker"]
Loading

Choose your path

Understand the project

  1. Overview - doc map & address rules
  2. dat Files and Formats - every .dat file
  3. Runtime Memory Map - A4 workspace
  4. Full Analysis - long-form narrative

Edit game data

  1. MM2ED Editor - ImGui editor build
  2. items.dat - monsters.dat
  3. map.dat - event.dat
  4. RE Tools - Python round-trip codecs

Trace game logic

  1. Main Loop and Map - scheduler
  2. Exploration Input and Options - key dispatch
  3. Combat Overview -> Combat System
  4. Events by location - all 71 map scripts
  5. Event Script Opcodes - script VM · Event Script DSL
  6. Town Services - pub, temple, guild, training, blacksmith
  7. 3D View and Game Screen - renderer · Data Hunk

How the data fits together

The world is map.dat (geometry) + attrib.dat (environment) + event.dat (scripts). Entities and rules live in monsters.dat, items.dat, spells.dat, and roster.dat.

flowchart TD
  map["map.dat screen<br/>512 bytes"] --> p0["Page 0 - visual walls"]
  map --> p1["Page 1 - collision<br/>bit 0x80 = event"]
  p0 --> r3d["3D renderer 0x2900"]
  p1 --> ev["event.dat triplets"]
  ev --> vm["script VM 0x172CA"]
  vm -- OP_12 --> combat["combat round loop 0x12A22"]
  attrib["attrib.dat"] -- tileset/env --> r3d
Loading

Combat is a round loop kicked off by event opcode OP_12 - see Combat Overview for the full chart and the command keys (A/F/S/C/U/B/R/E/V).


Interactive tools

Tool Link What it does
Map walker GitHub Pages First-person 3D - all 60 screens
Sprite gallery Gallery Decoded .32 tilesets + .anm combat art
MM2ED Editor docs Edit .dat files with live hex + previews

Important

Endianness - MM2 .dat multibyte fields are little-endian on disk (matching Blitz3D editors and our codecs). The 68000 runtime may byte-swap after load - always trace ASM before assuming otherwise.

What's still unknown?

Open Questions tracks unresolved fields and next ASM trace targets.

🏠 Home


Getting started

Runtime & engine

Graphics

UI

Data formats (.dat)

Combat

Audio

Game systems

Might and Magic I (DOS)

Gallery

Tools

Clone this wiki locally