mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 21:43:23 -05:00
scarier handles both Adrift 4 and Adrift 5 and is what the two default to; scare and FrankenDrift each cover one format and win only where the build asked for them. The profile still named scare and FrankenDrift as the pair.
232 lines
10 KiB
YAML
232 lines
10 KiB
YAML
emulator: Gargoyle
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/garglk/garglk"
|
|
upstream: "https://github.com/garglk/garglk"
|
|
profiled_date: "2026-08-08"
|
|
source_commit: "5717fbf3f9d6f2341773d0cc03f19d96c463af72"
|
|
core_version: "2026.1"
|
|
display_name: "Interactive Fiction (Gargoyle)"
|
|
cores:
|
|
- gargoyle
|
|
systems:
|
|
- adrift
|
|
- advsys
|
|
- agt
|
|
- alan
|
|
- glulx
|
|
- hugo
|
|
- jacl
|
|
- level9
|
|
- magnetic-scrolls
|
|
- scott-adams
|
|
- scott-adams-plus
|
|
- tads
|
|
- taylormade
|
|
- zmachine
|
|
mode: standalone
|
|
|
|
notes: |
|
|
Interactive fiction player built on the Glk library implementation garglk,
|
|
shipping one interpreter binary per story format. The gargoyle binary reads
|
|
the first 32 bytes of the file, matches it against a magic-number table,
|
|
falls back to the extension, and executes the matching interpreter.
|
|
ref: garglk/launcher.cpp:100-177 (probe, extensions, interpreters), 379-419 (rungame)
|
|
|
|
Formats and the interpreter each one runs: Adrift 4 and Adrift 5 both
|
|
default to scarier, which handles the two; scare takes Adrift 4 and
|
|
FrankenDrift takes Adrift 5 only where the build asked for them, since each
|
|
covers a single format. Then AdvSys (advsys), AGT (agility), Alan 2 (alan2), Alan 3
|
|
(alan3), Glulx (git), Hugo (hugo), JACL (jacl), Level 9 (level9), Magnetic
|
|
Scrolls (magnetic), Scott Adams Graphic Adventures Plus (plus), Scott Adams
|
|
(scott), TADS 2 and 3 (tadsr), TaylorMade (taylor), Z-machine (bocfel).
|
|
Blorb files are unwrapped first and dispatched on the Exec chunk type.
|
|
ref: garglk/launcher.cpp:45-60 (interpreter names), 276-328 (runblorb)
|
|
|
|
Adrift 5 needs the FrankenDrift runner, a .NET build option that is off by
|
|
default, including in the official AppImage. Without it the launcher reports
|
|
that Adrift 5 is unsupported and stops.
|
|
ref: CMakeLists.txt:63 (WITH_FRANKENDRIFT), gargoyle-appimage.sh:14,
|
|
garglk/launcher.cpp:160-162,202-206
|
|
|
|
Every glyph is drawn through FreeType rather than by the operating system,
|
|
so a font file has to be reachable. The default config asks for the families
|
|
"Gargoyle Mono" and "Gargoyle Serif"; if fontconfig cannot resolve them, the
|
|
interpreter loads the shipped TTF files by name from the data directory,
|
|
then the executable directory, then the working directory, and calls
|
|
winabort() when all three miss.
|
|
ref: garglk.h:661-662 (defaults), garglk.ini:195,198, fontfc.cpp:83-154
|
|
(fontconfig lookup), draw.cpp:260-287 (path fallbacks), 300-350
|
|
(make_font, abort), 490-498 (file names)
|
|
|
|
Gargoyle Serif is Charis SIL and Gargoyle Mono is Go Mono, both renamed so
|
|
they can be installed system-wide without clashing. Font embedding was
|
|
dropped because the OFL and the GPL do not mix, which is why the files are
|
|
loaded from disk.
|
|
ref: fonts/README
|
|
|
|
Data directory by platform: /usr/share/gargoyle on Unix,
|
|
<binary>/../share/gargoyle for the AppImage, the install directory on
|
|
Windows, and the bundle Resources directory on macOS. Fonts sit at its root
|
|
and themes in its themes subdirectory. macOS keeps the eight Gargoyle faces
|
|
in Resources/Fonts and Unifont in Resources; the Windows installer also
|
|
registers the eight faces as system fonts.
|
|
ref: sysqt.cpp:898-942, sysmac.mm:986-1003, garglk/CMakeLists.txt:136,144,
|
|
510-534, gargoyle_osx.sh:120-121,207-209, installer.nsi:89-90,200-207
|
|
|
|
Themes are read from every *.json in the theme directories, which are the
|
|
Qt application data locations plus the executable directory on Windows and
|
|
the data directory for the AppImage. A parse failure is reported and the
|
|
file skipped. The light and dark themes are also compiled into the binary,
|
|
so the on-disk copies of those two replace identical entries.
|
|
ref: theme.cpp:266-319, sysqt.cpp:920-942, garglk/CMakeLists.txt:80-92
|
|
|
|
garglk.ini is not distributed: the default config is compiled in as a string
|
|
and written to the highest-priority user location on demand. Installing a
|
|
system copy is an off-by-default build option.
|
|
ref: config.cpp:399-449, garglk/CMakeLists.txt:14 (INSTALL_GARGLKINI),
|
|
garglk/CMakeLists.txt:60-78 (vtk_encode_string)
|
|
|
|
MIDI in Blorb resources goes through FluidSynth, which needs a SoundFont.
|
|
Gargoyle names none: the soundfont list is empty unless the user sets it in
|
|
garglk.ini or the build hardcodes one, and the fallback is whatever
|
|
FluidSynth reports as its own default.
|
|
ref: config.cpp:245-249,787-795, snddecode.cpp:373-395,
|
|
garglk/CMakeLists.txt:57 (DEFAULT_SOUNDFONT), INSTALL.md:137-141
|
|
|
|
Story files are content. Formats that carry companion data read it from the
|
|
story file's own name or directory, so it travels with the game: Level 9
|
|
graphics as PICTURE.DAT, Magnetic Scrolls graphics and hints as .gfx and
|
|
.hnt, Alan 3 resources as .a3r, TADS resources as .t3r, and the extra disk
|
|
sides the Scott Adams, Plus and TaylorMade interpreters read from C64,
|
|
Atari 8-bit and Apple II images.
|
|
ref: level9/Glk/glk.c:6415-6450, magnetic/Glk/glk.c:5758-5855,
|
|
terps/CMakeLists.txt:69,73,359,404,500 (c64diskimage, unp64)
|
|
|
|
exclusion_note: >
|
|
TADS character mapping files are not loaded by this build. The Glk port
|
|
reports utf-8 and asc7dflt as the local character sets, both built-in
|
|
tables, and its os_gen_charmap_filename() returns an empty name, so the
|
|
automatic .tcp lookup never runs; cmap_load() only fires for a path given
|
|
with -ctab. The agil.cfg read by AGiliTy lives in os_dos.c and os_dos16.c,
|
|
while the build compiles os_glk.c.
|
|
ref: tads/glk/osmisc.c:69-72,316-334, tads/tads2/cmap.c:290-315,
|
|
tads/tads2/trd.c:513-517, terps/CMakeLists.txt:111-119
|
|
|
|
files:
|
|
# -- Text fonts, data directory root --
|
|
# Loaded by name when fontconfig cannot resolve the configured families.
|
|
# Gargoyle aborts when a face is available from neither source.
|
|
- name: "Gargoyle-Mono.ttf"
|
|
description: "Gargoyle Mono regular (Go Mono)"
|
|
required: true
|
|
source_ref: "garglk/draw.cpp:491 (make_entry monor), garglk/draw.cpp:300-350 (make_font, winabort)"
|
|
|
|
- name: "Gargoyle-Mono-Bold.ttf"
|
|
description: "Gargoyle Mono bold (Go Mono)"
|
|
required: true
|
|
source_ref: "garglk/draw.cpp:492 (make_entry monob), garglk/draw.cpp:300-350 (make_font, winabort)"
|
|
|
|
- name: "Gargoyle-Mono-Italic.ttf"
|
|
description: "Gargoyle Mono italic (Go Mono)"
|
|
required: true
|
|
source_ref: "garglk/draw.cpp:493 (make_entry monoi), garglk/draw.cpp:300-350 (make_font, winabort)"
|
|
|
|
- name: "Gargoyle-Mono-Bold-Italic.ttf"
|
|
description: "Gargoyle Mono bold italic (Go Mono)"
|
|
required: true
|
|
source_ref: "garglk/draw.cpp:494 (make_entry monoz), garglk/draw.cpp:300-350 (make_font, winabort)"
|
|
|
|
- name: "Gargoyle-Serif.ttf"
|
|
description: "Gargoyle Serif regular (Charis SIL)"
|
|
required: true
|
|
source_ref: "garglk/draw.cpp:495 (make_entry propr), garglk/draw.cpp:300-350 (make_font, winabort)"
|
|
|
|
- name: "Gargoyle-Serif-Bold.ttf"
|
|
description: "Gargoyle Serif bold (Charis SIL)"
|
|
required: true
|
|
source_ref: "garglk/draw.cpp:496 (make_entry propb), garglk/draw.cpp:300-350 (make_font, winabort)"
|
|
|
|
- name: "Gargoyle-Serif-Italic.ttf"
|
|
description: "Gargoyle Serif italic (Charis SIL)"
|
|
required: true
|
|
source_ref: "garglk/draw.cpp:497 (make_entry propi), garglk/draw.cpp:300-350 (make_font, winabort)"
|
|
|
|
- name: "Gargoyle-Serif-Bold-Italic.ttf"
|
|
description: "Gargoyle Serif bold italic (Charis SIL)"
|
|
required: true
|
|
source_ref: "garglk/draw.cpp:498 (make_entry propz), garglk/draw.cpp:300-350 (make_font, winabort)"
|
|
|
|
# -- Glyph substitution fonts, data directory root --
|
|
# Tried for every face after the main fonts; a load failure is skipped.
|
|
- name: "unifont.otf"
|
|
description: "GNU Unifont, Basic Multilingual Plane glyph fallback"
|
|
required: false
|
|
source_ref: "garglk/draw.cpp:352-375 (make_substitution_fonts), garglk/draw.cpp:476-478"
|
|
note: >
|
|
Covers glyphs missing from the text fonts. Loaded directly rather than
|
|
through the system font mechanism, so it is not installed system-wide.
|
|
|
|
- name: "unifont_upper.otf"
|
|
description: "GNU Unifont, planes above the BMP"
|
|
required: false
|
|
source_ref: "garglk/draw.cpp:352-375 (make_substitution_fonts), garglk/draw.cpp:476-478"
|
|
|
|
# -- Color themes, themes subdirectory --
|
|
# Every *.json in the theme directories is parsed, keyed on its name field.
|
|
- name: "Blue.json"
|
|
path: "themes/Blue.json"
|
|
description: "Blue color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:304-316, garglk/CMakeLists.txt:524"
|
|
|
|
- name: "Breeze Darker.json"
|
|
path: "themes/Breeze Darker.json"
|
|
description: "Breeze Darker color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:304-316, garglk/CMakeLists.txt:525"
|
|
|
|
- name: "Lectrote Dark.json"
|
|
path: "themes/Lectrote Dark.json"
|
|
description: "Lectrote Dark color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:304-316, garglk/CMakeLists.txt:526"
|
|
|
|
- name: "Lectrote Sepia.json"
|
|
path: "themes/Lectrote Sepia.json"
|
|
description: "Lectrote Sepia color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:304-316, garglk/CMakeLists.txt:527"
|
|
|
|
- name: "Lectrote Slate.json"
|
|
path: "themes/Lectrote Slate.json"
|
|
description: "Lectrote Slate color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:304-316, garglk/CMakeLists.txt:528"
|
|
|
|
- name: "Pencil.json"
|
|
path: "themes/Pencil.json"
|
|
description: "Pencil color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:304-316, garglk/CMakeLists.txt:529"
|
|
|
|
- name: "Zoom.json"
|
|
path: "themes/Zoom.json"
|
|
description: "Zoom color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:304-316, garglk/CMakeLists.txt:530"
|
|
|
|
- name: "dark.json"
|
|
path: "themes/dark.json"
|
|
description: "Dark color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:268-282, garglk/theme.cpp:304-316, garglk/CMakeLists.txt:80-85, garglk/CMakeLists.txt:531"
|
|
note: "Also compiled in as the built-in dark theme."
|
|
|
|
- name: "light.json"
|
|
path: "themes/light.json"
|
|
description: "Light color theme"
|
|
required: false
|
|
source_ref: "garglk/theme.cpp:268-282, garglk/theme.cpp:304-316, garglk/CMakeLists.txt:87-92, garglk/CMakeLists.txt:532"
|
|
note: "Also compiled in as the built-in light theme."
|