{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "gearlynx",
      "profile": {
        "core_classification": "official_port",
        "core_version": "1.2.36-10-g77901f3",
        "cores": [
          "gearlynx"
        ],
        "display_name": "Atari - Lynx (GearLynx)",
        "emulator": "Gearlynx",
        "files": [
          {
            "crc32": "0d973c9d",
            "description": "Atari Lynx boot ROM",
            "name": "lynxboot.img",
            "note": "512-byte boot ROM validated by CRC32 after load. Invalid CRC logs a warning but still works. Missing or wrong-size file blocks emulation entirely (no HLE fallback).",
            "required": true,
            "size": 512,
            "source_ref": "platforms/libretro/libretro.cpp:175-217 (load_bootroms), src/media.cpp:638-688 (LoadBiosData), src/defines.h:50 (GLYNX_BIOS_SIZE=0x200), src/game_db.h:47 (GLYNX_DB_BIOS_CRC=0x0D973C9D), src/gearlynx_core.cpp:232-237 (no-bios guard)",
            "validation": [
              "size",
              "crc32"
            ]
          }
        ],
        "notes": "Gearlynx is an Atari Lynx emulator by Ignacio Sanchez (drhelius).\nThe libretro core loads lynxboot.img from the system directory in\nretro_load_game() and again in retro_reset()\n(platforms/libretro/libretro.cpp:175-217, function load_bootroms).\nPath is built as: system_directory + \"/lynxboot.img\", no subdirectory.\nWith the libretro VFS the file is read by load_bios_file() and handed to\nLoadBiosFromBuffer(), otherwise Media::LoadBios() opens it\n(platforms/libretro/libretro.cpp:135-173, src/media.cpp:583-625).\n\nLoadBiosData in src/media.cpp:638-688 takes exactly 512 bytes\n(GLYNX_BIOS_SIZE = 0x200, src/defines.h:50). If the file size is not\n0x200, the load is rejected with BIOS_LOAD_INVALID_SIZE. After loading,\nbytes at offset 0x1F8 and 0x1F9 are patched (RAM/MAPCTL registers), then\nCRC32 is computed and compared against GLYNX_DB_BIOS_CRC (0x0D973C9D,\nsrc/game_db.h:47). An invalid CRC triggers a warning log but the BIOS\nis still marked as loaded (m_is_bios_loaded = true).\n\nNo HLE fallback. If the BIOS is not loaded (IsBiosLoaded() returns\nfalse), RunToVBlank in src/gearlynx_core.cpp:232-237 renders a static\n\"no bios\" image and returns false, refusing to emulate. The BIOS is\nrequired for any ROM to run. Homebrew (.o, BS93 format) bypasses the\nnormal boot sequence via PrepareForHomebrew() but still requires the\nBIOS to be loaded for the emulation loop to execute.\n\nROM extensions: .lnx, .lyx, .o, .bin\n",
        "profiled_date": "2026-10-04",
        "source": "https://github.com/drhelius/Gearlynx",
        "source_commit": "77901f3d3b318a12fdf71dd3ebb64048f0070ada",
        "systems": [
          "atari-lynx"
        ],
        "type": "libretro",
        "verification": "existence",
        "version_basis": {
          "distance": 10,
          "kind": "tag",
          "tag": "1.2.36"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
