Skip to content

Overview

Vairn edited this page Jun 2, 2026 · 8 revisions

MM2 Reverse-Engineering Overview

Navigation: Home - Getting started - Overview

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<br/>Python + C round-trip"]
  docs --> ed["MM2ED editor"]
  docs --> gal["Sprite gallery"]
  docs --> walk["Map walker (HTML5)"]
Loading

This wiki splits the big Full Analysis narrative into focused pages that are easier to evolve while reversing and decompiling.

Document map

Topic Page Contents
Boot Startup and Init Hunk entry, DOS/Exec, MANX heap
Memory Runtime Memory Map A4 workspace, thunk tables
World Main Loop and Map Scheduler LAB_1280, overland renderer
Party Party and Session New game, session restart
Open items Open Questions Unknowns and TODOs
Graphics GFX Loading .32/.dat asset table
Data dat Files and Formats All .dat layouts

Reading order

New here? Start with Getting Started, then dat Files and Formats.

Editing data? Jump to MM2ED Editor.

Tracing combat or scripts? Combat Overview - Event Script Opcodes.

Address rules

  • Capstone addresses are code-hunk-relative (segment 0 base 0).
  • IRA listing tends to be offset by +0x20 from Capstone in early code.
  • Always verify with raw bytes in mm2 when labels disagree.

Source files (in repo)

  • EXTRACTED/mm2.capstone.asm - Capstone disassembly
  • EXTRACTED/mm2.asm - IRA listing
  • EXTRACTED/mm2-ANALYSIS.md - full running narrative -> Full Analysis

See also

Page Why
Getting Started Reading roadmap with diagrams
dat Files and Formats All .dat layouts
Full Analysis Complete narrative

🏠 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