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.

PathRole
src/Game engine (SDL + Amiga entry, scripts/VM)
editor/grace_editor (ImGui)
GRAAL/GRAAL.guideAuthoritative language reference (AmigaGuide)
docs/formats/GRACE KEY:VALUE format notes (MAIN / ROOM / SECTION / CLOSEUP)
deps/ACEAmiga 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.

VariantOutput
GRACE_AMIGA_VARIANT=000graal_000.exe — 68000 / OCS
GRACE_AMIGA_VARIANT=020graal_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.

Game Start ├── Load graal.main ├── Load start section (SIMG / SOBJ / actions) └── Load start room (RIMG / ROBJ / actions)

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

Additional markdown.