-
Notifications
You must be signed in to change notification settings - Fork 0
Docs Wiki Hub
Vairn edited this page Jun 3, 2026
·
7 revisions
Navigation: Home - Getting started - Docs Wiki Hub
Central index for Might and Magic II (Amiga) documentation in this repo.
Source of truth: EXTRACTED/docs/, EXTRACTED/mm2-ANALYSIS.md, tools/, editor/,
game/.
Also published: GitHub Wiki via
python wiki/scripts/export-github-wiki.py (see wiki/README.md).
Endianness:
.datmultibyte fields are little-endian on disk unless a specific doc notes an exception (see rootCLAUDE.md).
| Goal | Start here |
|---|---|
| Project overview |
00-overview.md → mm2-ANALYSIS.md
|
All .dat layouts |
07-dat-files-and-formats.md |
| Edit data files | editor/README.md |
| Run the remake | game/README.md |
| RE tooling | tools/RE-TOOLS.md |
| Open unknowns | 05-open-questions.md |
| Doc | Description |
|---|---|
00-overview.md |
Split-doc map and address rules |
01-startup-init.md |
Boot path, hunk entry, DOS/Exec, MANX heap |
02-runtime-memory-map.md |
A4 workspace, thunk tables, wrappers |
03-main-loop-and-map.md |
Main scheduler LAB_1280, overland map |
04-party-and-session.md |
New game, party copy, session restart |
05-open-questions.md |
Unknowns and next trace targets |
08-event-runtime.md |
Event VM dispatch and collision triggers |
13-time-era-calendar.md |
In-game calendar, day/night, era |
14-game-state-struct.md |
A4 field layout and party state |
29-embedded-exe-strings.md |
Code-hunk ASCII tables and UI text |
| Doc | Description |
|---|---|
07-dat-files-and-formats.md |
Inventory hub — all MM2 data files |
06-gfx-loading.md |
.32 filename table and loader call path |
07-anm-tv-format.md |
.anm TV prelude + planar image chunk |
06-roster-format.md |
roster.dat — 64 × 130-byte party records |
12-attrib-dat-format.md |
attrib.dat — per-screen env and neighbours |
18-items-dat-format.md |
items.dat — 256 × 20-byte items |
19-spells-and-item-use.md |
spells.dat + item use-byte spell index |
21-map-dat-format.md |
map.dat — 60 screens, visual + collision pages |
06-event-dat-format.md |
event.dat — 71-location container format |
07-event-script-opcodes.md |
Script VM opcodes 0x00..0x32
|
16-monster-ability-format.md |
monsters.dat — 256 × 26-byte records |
20-copy-protection-table.md |
globe.32 / disk.32 XOR string tables |
Regeneration commands
python tools\decode_event.py event.dat <loc> # decode one location
python tools\build_event_location_docs.py # events/loc_*.md (71 files)
python tools\build_doc37.py # 37-mount-farview-class-quest-event.md
python tools\decode_spells.py spells.dat # spells round-trip check
python tools\mm2_codec.py items-decode items.dat … # items / str codecsPer-location event reference: events/README.md.
| Doc | Description |
|---|---|
15-3d-view-and-game-screen.md |
First-person hood, wall bits, auto-map |
38-title-screen-and-intro-assets.md |
Title boot, intro.32 / introclips.32 / nwcp.32
|
39-title-screen-animation.md |
Pegasus overlays, peekers, menu — authoritative coords |
| Doc | Description |
|---|---|
39-title-screen-animation.md |
Attract animation, peeker slots, timing, remake |
38-title-screen-and-intro-assets.md |
ASM blit traces, logo 0x26BC4, asset load strings |
39-character-ui-view-create.md |
P / C keys, character sheet @ $39B4
|
Remake: game/src/TitleScreen.cpp — 320×200, Mm2Font8x8.inc, menu on black
(no intro.32 under boxes).
| Doc | Description |
|---|---|
26-combat-overview.md |
Round loop summary and battle slots |
17-combat-system.md |
Full ASM trace — player bar, AI, rewards |
26-spell-cast-asm.md |
Spell cast dispatch in combat |
35-encounter-tables.md |
Random step, arena, OP_12 fixed fights |
| Doc | Description |
|---|---|
06-event-dat-format.md |
Location header, triplets, string banks |
07-event-script-opcodes.md |
Opcode argc, names, pseudo-code |
08-event-runtime.md |
Collision 0x80 → interpreter @ 0x172CA
|
30-event-to-string-path.md |
When scripts use str.dat vs exe text |
events/README.md |
Index of 71 per-location decode pages |
37-mount-farview-class-quest-event.md |
Class quests + Juror turn-in (loc 34) |
36-class-quest-hp-bug.md |
Class-quest reward HP bug @ 0x9D76
|
| Doc | Description |
|---|---|
32-character-mechanics.md |
Race mods, HP/SP/AC/XP, thievery |
33-skills-and-hirelings.md |
15 skill sellers, 24 hirelings A–X |
34-commerce-formulas.md |
Training, healing, portals, bar, shop cycle |
34-commerce-and-world-services.md |
Extended commerce / world services notes |
28-town-services.md |
Inn, temple, guild, training ASM handlers |
31-spell-sources.md |
Where each spell is obtained in-game |
| Doc | Description |
|---|---|
25-audio-sounds-music.md |
Paula tones, Controls menu, walk beep |
25-mm2-music-format.md |
In-game music blob format |
26-audio-callpaths-title-death-shared.md |
Title music, death tone, shared backend |
27-mm2-known-songs-catalog.md |
Song id catalog |
| Doc | Description |
|---|---|
22-mm1-mazedata-format.md |
DOS MAZEDATA.DTA layout |
23-mm1-to-mm2-outdoor.md |
MM1 outdoor → MM2 sector mapping |
24-mm1-outdoor-wallpix-by-sector.md |
MM1 wall sprite ids by sector |
| Doc | Description |
|---|---|
tools/RE-TOOLS.md |
Disasm, Ghidra import, symbol harvest |
editor/README.md |
MM2ED ImGui data editor |
EXTRACTED/decomp/README.md |
C lift scaffold (mm2_lift.c, codecs) |
CLAUDE.md |
Workspace quick-reference for agents |
mm2-ANALYSIS.md |
Full narrative analysis (parts 1–13) |
Symbol pipeline
python tools\harvest_symbols.py --merge
python tools\apply_symbols.py
python tools\extract_asm_parts.pyOutputs: EXTRACTED/mm2.annotated.asm, EXTRACTED/asm/ splits.
| Doc | Description |
|---|---|
game/README.md |
Build targets (SDL2 / Amiga ACE), phases |
39-title-screen-animation.md |
Title screen fidelity reference |
39-character-ui-view-create.md |
Character UI backends |
python wiki/scripts/export-github-wiki.py # full gallery if assets present
python wiki/scripts/export-github-wiki.py --skip-gallery
python wiki/scripts/publish-github-wiki.py # push to MM2.wiki.gitInteractive map walker: vairn.github.io/MM2/maze-walker/
- Docs Wiki Hub ← full doc index
- Getting Started ← read this first
- Overview
- Workspace Notes
- Open Questions
- Full Analysis
- Game Remake
- Startup and Init
- Runtime Memory Map
- Main Loop and Map
- Exploration Input and Options
- Party and Session
- Game State Struct
- Data Hunk mm2 data 00
- Time Era Calendar
- GFX Loading
- ANM TV Format
- PC DOS graphics
- SNES graphics
- 3D View and Game Screen
- Amiga 3D Render Process
- Scripted Scene Graphics
- Event Graphics Opcodes
- Title Screen Assets
- Title Screen Animation
- Format inventory
- items.dat
- monsters.dat
- roster.dat
- attrib.dat
- map.dat
- spells & item use
- event.dat
- Events by location ← 71 maps
- Events hub (numbered)
- Event Script Opcodes
-
Event Script DSL ←
.mm2evtauthoring - Event Text Rendering
- Event Graphics Opcodes
- Combat Overview
- Combat System
- Encounter Tables
- Spell Cast ASM
- monsters.dat abilities
- Spells and item use
- Amiga audio in exe ← Paula / DATA / remake
- Controls: Sounds / Walk Beep
- MM2 music format (superseded)
- Title/death audio paths (superseded)
- Known songs catalog (superseded)
- Town Services
- Spell Sources
- Character Mechanics
- Skills and Hirelings
- Commerce Formulas
- Commerce World Services
- Mount Farview Class Quest
- Class Quest HP Bug
- Event Runtime
- Event to String Path
- Embedded Exe Strings
- Copy Protection
- Time Era Calendar
- Game State Struct
- MM1 Overview ← hub + decode status
- MM1 MAZEDATA format
- MM1 to MM2 outdoor
- MM1 WALLPIX by sector
- MM1 art & graphics
- MM1 items / monsters (status)
- MM1 map walker ↗
- MM1 2D maps gallery
- MM1 WALLPIX gallery