Documentation
Start with the classic GRAAL on-line reference, then GRACE-specific build, architecture, and extensions.
Primary reference
GRAAL on-line reference
Adapted from Per Thulin’s GRAAL.guide (GRAAL 2.3) — the same AmigaGuide the editor loads for tips and the Guide panel.
This is the language documentation: structure, syntax, limits, interface keys, statements, conditions, and commands.
GRACE engine
Two hosts, one adventure format.
Desktop: SDL2 entry with ACE header shims — fast iteration without full ACE on PC. Amiga: Links vendored ACE for rendering and OS services. Adventure content stays a data folder; packs are optional for Amiga shipping.
| Path | Role |
|---|---|
src/ | Game engine (SDL + Amiga entry, scripts/VM) |
editor/ | grace_editor (ImGui) |
GRAAL/GRAAL.guide | Authoritative language reference (AmigaGuide) |
docs/formats/ | GRACE KEY:VALUE format notes (MAIN / ROOM / SECTION / CLOSEUP) |
deps/ACE | Amiga C Engine |
Desktop
Build & run.
cmake -S . -B build_sdl -DGRACE_BUILD_EDITOR=ON
cmake --build build_sdl --target graal
cmake --build build_sdl --target grace_editor --config Release
build_sdl\graal.exe --data GRAAL
build_sdl\graal.exe --data GRAAL --room 1 --entrance 1
build_sdl\editor\grace_editor.exe GRAAL 1.room
Flags: --data/-d, --room/-r, --entrance/-e, --fullscreen/-f. In-game: F11 fullscreen, O Options, M mute.
Amiga
Bartman m68k builds.
| Variant | Output |
|---|---|
GRACE_AMIGA_VARIANT=000 | graal_000.exe — 68000 / OCS |
GRACE_AMIGA_VARIANT=020 | graal_020.exe — 68020 / AGA |
both (default) | Both via ExternalProject |
EXEs sit next to adventure data. See docs/ACE_LOCAL_CHANGES.md for the ACE fork.
Runtime model
Globals stay. Sections and rooms stream.
Input lookup order (from the guide): current room → section → graal.main. Persist puzzle state with flags across section/room resets — see Flags in the editor and Conditions.
In the repo