Copperline can be built as a standalone game player -- a lightweight executable configured for a single game without the launcher or debugger interface.
The distributable package contains the player executable, the game assets stored as an external sidecar file, the open-source AROS boot ROM pair, and license documentation.
The game manifest¶
A single TOML file defines the player build configuration:
[game]
title = "Skyhawks" # Application window title
id = "skyhawks" # Unique identifier for per-user settings/saves
version = "1.2" # Application version string
[payload] # Exactly one payload kind
cd = "skyhawks.iso" # CD image (ISO, CUE/BIN, CHD)
# adf = "skyhawks.adf" # Floppy disk image for DF0
# run = { files = "amiga", executable = "Skyhawks", args = "" }
# sha256 = "..." # Optional SHA-256 payload integrity check
[machine]
model = "CD32" # Hardware profile (A500, A1200, CD32, etc.)
# chip = "2M" # Optional memory overrides
# fast = "8M"
[display]
shader = "crt" # Default CRT shader
bezel = "1084" # Default bezel
fullscreen = true # Launch in fullscreen
[features]
save_states = false # Enable quick-save / quick-load slots in menu
[branding]
icon = "icon.png" # Custom window / application iconSupported payload types¶
The [payload] section requires exactly one of the following:
cd: Mounts a CD image in the emulated CD drive at power-on. Persistent data is saved to the console’s virtual NVRAM.run: Amiga executable and supporting data directory. Boot assets are staged in the user data directory, and saves are persisted across runs.adf: Standard floppy image mounted inDF0:.
The optional sha256 key verifies the checksum of file payloads (cd or adf)
and refuses to start if the file has been modified.
Building and packaging¶
To build using Cargo:
COPPERLINE_GAME_MANIFEST=/path/to/game.toml \
cargo build --release --manifest-path crates/copperline-player/Cargo.tomlTo build and package complete platform bundles:
tools/publish --manifest /path/to/game.tomlPackage outputs:
macOS: Signed application bundle (
.app) and.ziparchive containing assets underContents/Resources/.Linux & Windows: Standalone directory and archive with sidecar assets located next to the executable.
--portable: Createsportable.txtso all user settings and save data remain inside the application folder.
The player binary is compiled with minimal features: debugger windows, GDB stubs, and developer environment variables are stripped.
User experience¶
The game launches directly into the title screen.
Pressing Cmd+E (macOS) or Alt+E (Linux/Windows) or the controller Menu/Guide
button opens a simplified in-game menu:
Video and CRT shader settings
Audio volume and filtering
Gamepad and keyboard configuration
Pause and reset controls
Save state slots (if enabled in manifest)
User configuration, game saves, NVRAM, and save states are stored in the
per-game directory (~/.config/<id>/ on Linux/macOS, %APPDATA%\<id> on Windows),
or locally inside the application directory in portable mode.
Automated bundle verification¶
The player binary supports headless screenshot capture for CI test validation:
"Skyhawks.app/Contents/MacOS/skyhawks" --screenshot-after 30 boot.pngLicensing requirements¶
Bundles generated by tools/publish include Copperline’s GPL-3.0-or-later license
text, source repository links, and the AROS APL 1.1 license files.