Capabilities

What the GRACE runtime and toolchain add on top of the classic GRAAL language — platforms, controls, colour depth, dialogue, and shipping.

GRACE runtime playing a classic GRAAL adventure room
Runtime output — classic adventure room from GRAAL demo data.

Platforms

One project. Desktop iteration. Amiga shipping.

On desktop, GRACE uses an SDL2 host with ACE header shims (src/host/shim) — no full ACE stack required on PC. On Amiga, it links real ACE for rendering and OS services.

TargetBinaryNotes
Desktop / Windows graal + grace_editor CMake + SDL2; fast edit/test loops
Amiga 68000 / OCS graal_000.exe Bartman m68k toolchain; GRACE_AMIGA_VARIANT=000
Amiga 68020 / AGA graal_020.exe Needed for DISPLAY_MODE: AGA256

Amiga EXEs must sit next to adventure data (graal.main). Sync helpers exist for GRAAL and ACE_Tour data sets.

Control schemes

CLASSIC, VERBCOIN, or CONTEXT.

Set CONTROL_METHOD (alias UI_MODE) in graal.main. Classic GRAAL behaviour is the default when omitted.

ModeBehaviour
CLASSIC Persistent verb + inventory bar (SCUMM-style). Compatible with Herald / Olaf-era data.
VERBCOIN At-cursor verb picker; only verbs with a conditioned ACTION for that object. I opens inventory overlay.
CONTEXT Primary click = object default verb (ROOMOBJ / CONTEXT_VERB); secondary = Look; I for inventory.

Verb coin layout

When using VERBCOIN, configure presentation with VERBCOIN_LAYOUT:

VERBCOIN_LAYOUT: RING;WORDS;42;56;14;4
FieldValuesMeaning
shapeRING / LIST / GRIDArrangement around the click
styleWORDS / ICONS / BOTHLabels, verb-zone images, or both
radiuspixelsRing radius (ignored for LIST/GRID)
cellW / cellH / gappixelsHit-box size and LIST/GRID spacing

ICONS / BOTH use each verb’s VERB_ZONE image (normal) and image2 (hover).

Display

Colour depth for the hardware you target.

DISPLAY_MODE (alias COLOR_MODE) in graal.main:

ValueColoursNotes
3232 (5bpp)Default — classic GRAAL / OCS
EHB64 (6bpp)Extra HalfBrite; pens 32–63 half intensity
AGA256256 (8bpp)Requires graal_020; falls back to EHB on graal_000

Play features

Dialogue, closeups, cutscenes, options.

Closeups & dialogue

Non-classic control modes collapse the command bar in play, then restore DLG_AREA for CLOSEUP / dialogue so talk shots still work.

Cutscenes

CUTSCENE …,N|NF can expand play to backdrop height (fullscreen). NF hides the command bar during the scene.

Options / speech

In-game Options: speech Text / Audio / Both, mute, walk button. Prefs in grace.cfg (SDL) or grace.opt (Amiga). Adventure default via SPEECHMODE.

Hotkeys

O Options, M mute, F11 / Alt+Enter fullscreen on desktop. Inventory I in verbcoin/context modes.

Shipping

Pack, convert, and put data on disk.

The editor’s Pack Paks panel builds ACE-format main.pak / secN.pak. Convert prefers PNG over IFF per stem; optional Upgrade IFFs → PNG. ACE_Tour includes ADF/floppy helpers; VS Code tasks cover pack and sync flows.

Art authoring prefers indexed PNG (PLTE + indices). Script refs use extensionless stems (BACKDROP: 1BG; runtime resolves .bm/.plt → .png (SDL) → .iff.

Shared palette tools extract, edit, and apply project shared.plt (sprite pens 0–31, world 32–191, UI reserved 192–255).

Next

Editor →

How authoring works day to day.

Docs →

Formats, build commands, architecture.