{
  "commit": "fbe5ba4e3e790ab07eddc5b57e0f45a02cbcd60e",
  "count": 1,
  "generated_at": "2026-10-24T00:06:47Z",
  "items": [
    {
      "id": "gsplus-legacy",
      "profile": {
        "built_by": [
          "recalbox",
          "batocera",
          "retrobat"
        ],
        "core_classification": "community_fork",
        "core_version": "0.14",
        "cores": [
          "gsplus"
        ],
        "display_name": "Apple - Apple IIGS (GSplus legacy)",
        "emulator": "GSplus (legacy)",
        "files": [
          {
            "aliases": [
              "ROM1",
              "ROM3",
              "ROM01",
              "ROM03",
              "ROM.01",
              "ROM.03"
            ],
            "description": "Apple IIGS system ROM",
            "name": "ROM",
            "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).\n",
            "required": true,
            "size": [
              131072,
              262144
            ],
            "source_ref": "src/config.c:207, 524-525, 863-908",
            "validation": [
              "size"
            ]
          },
          {
            "aliases": [
              "controller.rom",
              "disk.rom",
              "DISK.ROM",
              "diskII.prom"
            ],
            "description": "Disk II controller PROM for slot 6",
            "hle_fallback": true,
            "min_size": 256,
            "name": "c600.rom",
            "note": "Replaces the built-in PROM. The first 256 bytes are read into slot 6 and a shorter file is rejected.\n",
            "required": false,
            "source_ref": "src/config.c:532, 932-959",
            "validation": [
              "size"
            ]
          },
          {
            "description": "Parallel printer card ROM for slot 1",
            "min_size": 256,
            "name": "parallel.rom",
            "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.\n",
            "required": false,
            "source_ref": "src/config.c:527, 916, 932-959",
            "validation": [
              "size"
            ]
          },
          {
            "description": "Default printer font (Epson LQ Roman, ImageWriter fixed and proportional)",
            "name": "letgothl.ttf",
            "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.\n",
            "path": "lib/letgothl.ttf",
            "required": false,
            "source_ref": "src/sim65816.c:166, 178-179, src/imagewriter.cpp:343-360, src/printer.cpp:331-359"
          },
          {
            "description": "Epson LQ Sans Serif printer font",
            "name": "sansserif.ttf",
            "note": "Opened from the working directory when the Epson LQ selects this typeface.",
            "required": false,
            "source_ref": "src/sim65816.c:167, src/printer.cpp:335-359"
          },
          {
            "description": "Epson LQ Courier printer font",
            "name": "courier.ttf",
            "note": "Opened from the working directory when the Epson LQ selects this typeface.",
            "required": false,
            "source_ref": "src/sim65816.c:168, src/printer.cpp:338-359"
          },
          {
            "description": "Epson LQ Prestige printer font",
            "name": "prestige.ttf",
            "note": "Opened from the working directory when the Epson LQ selects this typeface.",
            "required": false,
            "source_ref": "src/sim65816.c:169, src/printer.cpp:341-359"
          },
          {
            "description": "Epson LQ Script printer font",
            "name": "script.ttf",
            "note": "Opened from the working directory when the Epson LQ selects this typeface.",
            "required": false,
            "source_ref": "src/sim65816.c:170, src/printer.cpp:344-359"
          },
          {
            "description": "Epson LQ OCR-A and OCR-B printer font",
            "name": "ocra.ttf",
            "note": "Opened from the working directory when the Epson LQ selects OCR-A or OCR-B.",
            "required": false,
            "source_ref": "src/sim65816.c:171, src/printer.cpp:347-359"
          }
        ],
        "mode": "standalone",
        "notes": "The first GSplus, a GSport descendant of KEGS 0.91 kept by digarok as\ngsplus-legacy-archive. It shares no history with digarok/gsplus, a new\nimport of KEGS 1.38 profiled as gsplus. It reports itself as 0.14\n(src/sim65816.c:184).\n\nRecalbox builds this commit (recalbox package/gsplus/gsplus.mk:8-9 at tag\n10.1.1). Batocera builds applemu/gsplus dc1835d6, a fork that descends\nfrom this commit and leaves the ROM and font loading untouched\n(batocera package/batocera/emulators/gsplus/gsplus.mk:7-8 at tag\nbatocera-43.1). RetroBat runs the gsplus-win-sdl release build\n(emulatorlauncher emulatorLauncher/Generators/GsPlus.Generator.cs:26-30).\n\nEvery file is looked up by setup_gsplus_file, which tries each name in\norder inside each directory of g_gsplus_default_paths before moving to the\nnext directory (src/sim65816.c:56-70, 1018-1046). The directories are the\nname as given, ./, $HOME/, $PWD/, $HOME/Library/GSplus/, /usr/local/lib/,\n/usr/lib/gsplus/, /usr/local/gsplus/, /usr/local/lib/gsplus/,\n/usr/share/gsplus/, /var/lib/ and the executable directory, which is ./\noutside macOS (src/sim65816.c:54, 987-988).\n\nThe config file is the first of config.txt, config.gsp and .config.gsp\nfound on that path, and GSplus creates $HOME/.config.gsp when none exists\n(src/config.c:177-179, 650, src/sim65816.c:1060-1090). It carries\ng_cfg_rom_path, the disk assignments and the battery RAM.\n\nSlot 6 gets a Disk II PROM rebuilt from the IIGS ROM through\ng_rom_c600_rom01_diffs[] (src/config.c:542, 918-929). Slots 2 to 5 and 7\nhave empty name lists, so only slots 1 and 6 read a card ROM from disk\n(src/config.c:527-533, 932-959).\n",
        "profiled_date": "2026-10-20",
        "source": "https://github.com/digarok/gsplus-legacy-archive",
        "source_commit": "480572054518112647c8fae5d7ea7046a6d6ecfb",
        "systems": [
          "apple-iigs"
        ],
        "type": "standalone"
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
