Files
libretro/emulators/gsplus-legacy.yml
T
Abdessamad Derraz a8732ca9df feat: profile the GSplus legacy build
Recalbox builds digarok/gsplus-legacy-archive (gsplus.mk:8-9), Batocera a fork of it whose loading code matches, and RetroBat runs its gsplus-win-sdl release (GsPlus.Generator.cs:26-30). digarok/gsplus, which gsplus.yml documents, is a later KEGS 1.38 import sharing no history with it. The legacy build reads ROM, ROM1, ROM3, ROM01, ROM03, ROM.01, ROM.03 at 128 or 256 KB (src/config.c:863-908), refuses to start without one, and reads c600.rom, parallel.rom and printer fonts as optional.
2026-10-20 16:57:24 +02:00

127 lines
5.3 KiB
YAML

emulator: GSplus (legacy)
type: standalone
core_classification: community_fork
cores: ["gsplus"]
built_by: [recalbox, batocera, retrobat]
source: "https://github.com/digarok/gsplus-legacy-archive"
profiled_date: "2026-10-20"
source_commit: "480572054518112647c8fae5d7ea7046a6d6ecfb"
core_version: "0.14"
display_name: "Apple - Apple IIGS (GSplus legacy)"
systems:
- apple-iigs
mode: standalone
notes: |
The first GSplus, a GSport descendant of KEGS 0.91 kept by digarok as
gsplus-legacy-archive. It shares no history with digarok/gsplus, a new
import of KEGS 1.38 profiled as gsplus. It reports itself as 0.14
(src/sim65816.c:184).
Recalbox builds this commit (recalbox package/gsplus/gsplus.mk:8-9 at tag
10.1.1). Batocera builds applemu/gsplus dc1835d6, a fork that descends
from this commit and leaves the ROM and font loading untouched
(batocera package/batocera/emulators/gsplus/gsplus.mk:7-8 at tag
batocera-43.1). RetroBat runs the gsplus-win-sdl release build
(emulatorlauncher emulatorLauncher/Generators/GsPlus.Generator.cs:26-30).
Every file is looked up by setup_gsplus_file, which tries each name in
order inside each directory of g_gsplus_default_paths before moving to the
next directory (src/sim65816.c:56-70, 1018-1046). The directories are the
name as given, ./, $HOME/, $PWD/, $HOME/Library/GSplus/, /usr/local/lib/,
/usr/lib/gsplus/, /usr/local/gsplus/, /usr/local/lib/gsplus/,
/usr/share/gsplus/, /var/lib/ and the executable directory, which is ./
outside macOS (src/sim65816.c:54, 987-988).
The config file is the first of config.txt, config.gsp and .config.gsp
found on that path, and GSplus creates $HOME/.config.gsp when none exists
(src/config.c:177-179, 650, src/sim65816.c:1060-1090). It carries
g_cfg_rom_path, the disk assignments and the battery RAM.
Slot 6 gets a Disk II PROM rebuilt from the IIGS ROM through
g_rom_c600_rom01_diffs[] (src/config.c:542, 918-929). Slots 2 to 5 and 7
have empty name lists, so only slots 1 and 6 read a card ROM from disk
(src/config.c:527-533, 932-959).
files:
- name: ROM
aliases: [ROM1, ROM3, ROM01, ROM03, ROM.01, ROM.03]
required: true
description: "Apple IIGS system ROM"
size: [131072, 262144]
validation: [size]
source_ref: "src/config.c:207, 524-525, 863-908"
note: >
g_cfg_rom_path, ROM unless the config file sets it, is tried first, then
ROM, ROM1, ROM3, ROM01, ROM03, ROM.01 and ROM.03. A 131072-byte file runs
as a ROM 01 machine and a 262144-byte file as a ROM 03 machine. Any other
size is refused. Without a ROM, GSplus shows a missing ROM alert and opens
its config panel instead of starting (src/config.c:868-872,
src/sim65816.c:1053-1063).
- name: c600.rom
aliases: [controller.rom, disk.rom, DISK.ROM, diskII.prom]
required: false
hle_fallback: true
min_size: 256
validation: [size]
description: "Disk II controller PROM for slot 6"
source_ref: "src/config.c:532, 932-959"
note: >
Replaces the built-in PROM. The first 256 bytes are read into slot 6
and a shorter file is rejected.
- name: parallel.rom
required: false
min_size: 256
validation: [size]
description: "Parallel printer card ROM for slot 1"
source_ref: "src/config.c:527, 916, 932-959"
note: >
The first 256 bytes are read into slot 1 and a shorter file is rejected.
Without it the slot 1 ROM space stays zeroed. The project keeps the file
at src/parallel.rom and ships it beside gsplus.exe in its Windows
release.
- name: letgothl.ttf
path: "lib/letgothl.ttf"
required: false
description: "Default printer font (Epson LQ Roman, ImageWriter fixed and proportional)"
source_ref: "src/sim65816.c:166, 178-179, src/imagewriter.cpp:343-360, src/printer.cpp:331-359"
note: >
Opened with FreeType from the working directory when a printed page is
rendered. A font that fails to open is logged and its characters are not
drawn (src/printer.cpp:1320, src/imagewriter.cpp:1238). The config panel can point each font at another file
(src/config.c:407-412, 438-440). The project keeps the file at
lib/letgothl.ttf.
- name: sansserif.ttf
required: false
description: "Epson LQ Sans Serif printer font"
source_ref: "src/sim65816.c:167, src/printer.cpp:335-359"
note: "Opened from the working directory when the Epson LQ selects this typeface."
- name: courier.ttf
required: false
description: "Epson LQ Courier printer font"
source_ref: "src/sim65816.c:168, src/printer.cpp:338-359"
note: "Opened from the working directory when the Epson LQ selects this typeface."
- name: prestige.ttf
required: false
description: "Epson LQ Prestige printer font"
source_ref: "src/sim65816.c:169, src/printer.cpp:341-359"
note: "Opened from the working directory when the Epson LQ selects this typeface."
- name: script.ttf
required: false
description: "Epson LQ Script printer font"
source_ref: "src/sim65816.c:170, src/printer.cpp:344-359"
note: "Opened from the working directory when the Epson LQ selects this typeface."
- name: ocra.ttf
required: false
description: "Epson LQ OCR-A and OCR-B printer font"
source_ref: "src/sim65816.c:171, src/printer.cpp:347-359"
note: "Opened from the working directory when the Epson LQ selects OCR-A or OCR-B."