-
Notifications
You must be signed in to change notification settings - Fork 0
Workspace Notes
Vairn edited this page Jul 6, 2026
·
9 revisions
Navigation: Home - Getting started - Workspace Notes
The 68k disassembly is the source of truth. Start every decode, trace, or port change in ASM — not docs, not FAQ writeups, not third-party editors.
- Primary:
EXTRACTED/mm2.capstone.asm,EXTRACTED/mm2.asm,EXTRACTED/asm/ - Annotated:
EXTRACTED/mm2.capstone.annotated.asm(regenerate via symbol tools below) - Symbols:
EXTRACTED/mm2_symbols.yaml→EXTRACTED/decomp/mm2_gamestate.h
Docs can be wrong. Treat EXTRACTED/docs/ as working notes confirmed (or not) against
ASM. When ASM and anything else disagree, ASM wins.
Do not use the Blitz3D recreation (Amiga/Smite-and-Magic/Blitz3d) for RE — it is
not MM2's original engine.
- Trace reads/writes in ASM first.
- Cross-check against real
.datbytes and round-trip codecs. - Capture confirmed layout in
EXTRACTED/docs/+tools/(+ C struct/codec when decoding). - If ASM is unclear, document the gap and stub — do not guess.
Full doc index: EXTRACTED/docs/README.md
| Area | Path |
|---|---|
| Game data (root) |
event.dat, map.dat, roster.dat, str.dat, items.dat, monsters.dat, spells.dat, attrib.dat
|
| RE assets |
EXTRACTED/mm2.bin, EXTRACTED/mm2-ANALYSIS.md, EXTRACTED/decomp/
|
| Tools | tools/RE-TOOLS.md |
| Data editor |
editor/ — build: cmake -S editor -B editor/build -G Ninja && cmake --build editor/build
|
| C++ remake |
game/ — 100% ASM fidelity; see game/README.md
|
Endianness: .dat multibyte fields are little-endian on disk unless a specific
doc notes an exception (e.g. event.dat location headers). Runtime may byte-swap after
load — trace in ASM.
Symbol regeneration:
python tools\harvest_symbols.py --merge
python tools\apply_symbols.py
python tools\extract_asm_parts.py
python tools\scan_a4_jsr.py- 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
- 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