Capabilities
What the GRACE runtime and toolchain add on top of the classic GRAAL language — platforms, controls, colour depth, dialogue, and shipping.
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.
| Target | Binary | Notes |
|---|---|---|
| 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.
| Mode | Behaviour |
|---|---|
| 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
| Field | Values | Meaning |
|---|---|---|
| shape | RING / LIST / GRID | Arrangement around the click |
| style | WORDS / ICONS / BOTH | Labels, verb-zone images, or both |
| radius | pixels | Ring radius (ignored for LIST/GRID) |
| cellW / cellH / gap | pixels | Hit-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:
| Value | Colours | Notes |
|---|---|---|
| 32 | 32 (5bpp) | Default — classic GRAAL / OCS |
| EHB | 64 (6bpp) | Extra HalfBrite; pens 32–63 half intensity |
| AGA256 | 256 (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.plt
(sprite pens 0–31, world 32–191, UI reserved 192–255).