# 00 — Overview & Scope

## Engine identity

- **GameMaker 5.3a**: final 5.x release before structural overhaul in 6.0.
- Authored by Mark Overmars (working title "Animo", late 1990s).
- IDE + runner written in **Delphi 5** (native Win32).
- IDE ~25,000 LOC (2003).
- Targets **Windows XP** kernels (Win95 support dropped in 5.x).

## Why 5.3a is its own problem

5.3a sits between two paradigms and doesn't match either:

- **Pre-4.0 (`.gmr`)**: standalone archives + separate runner (Java-jar style).
- **4.0 → 5.3a**: appended payload onto Delphi runner stub. *(this doc)*
- **6.0+ (`.gm6`/`.gmk`)**: heavier secondary encryption, anti-decompile.
- **Studio (GMS1/GMS2)**: chunk-based `data.win`/`runner.data`, FORM headers, YYC native compile.

Modern reverse-engineering tools target Studio. They cannot read 5.3a. See [13-modern-tool-incompat](13-modern-tool-incompat.md).

## Source-of-truth file

Project source = `.gmd` (GameMaker Design). Monolithic binary, sequential serialization, ZLIB-compressed asset blocks, light XOR obfuscation when appended to runner. See [03-gmd-format](03-gmd-format.md).

## Reverse-engineering goals

1. Detach appended payload from runner stub.
2. Bypass XOR obfuscation.
3. Reconstruct editable `.gmd`.
4. Parse `.gmd` to recover GML scripts, DnD logic, assets, room layouts.

Once GML is recovered, *project-specific* proprietary formats (e.g. `.bno`, `.bnb` for save states) become transparent — the parsing logic is in the recovered GML. See [16-bno-bnb-notes](16-bno-bnb-notes.md).

## Scope of this wiki

- Binary specs (`.gmd`, DnD nodes, runner EOF model).
- Era-appropriate decompiler tooling.
- GML 5.x syntax constraints (re-injection requires period-correct syntax).
- Network code (39dll only — no native sockets in 5.3a).
- Backup recovery via `.gb1`–`.gb9`.
- Ranked extraction pipeline.

Out of scope: GMS1/GMS2 internals, YYC, modern build pipelines.

## See also

- [01-runner-architecture](01-runner-architecture.md)
- [15-extraction-pipeline](15-extraction-pipeline.md)
- [glossary](glossary.md)
