diff --git a/emulators/gearlynx.yml b/emulators/gearlynx.yml index e07ab151..1a4b9306 100644 --- a/emulators/gearlynx.yml +++ b/emulators/gearlynx.yml @@ -3,7 +3,7 @@ type: libretro core_classification: official_port source: "https://github.com/drhelius/Gearlynx" profiled_date: "2026-03-23" -source_commit: "fe628a44b0391daff414b74b5f353d6f3b66a673" +source_commit: "d98c154444f1610016ad60704de2eed3ef80de22" core_version: "1.0.0" display_name: "Atari - Lynx (GearLynx)" cores: [gearlynx] @@ -13,20 +13,20 @@ verification: existence notes: | Gearlynx is an Atari Lynx emulator by Ignacio Sanchez (drhelius). The libretro core loads lynxboot.img from the system directory at - retro_load_game time (libretro.cpp:105-129, function load_bootroms). + retro_load_game time (platforms/libretro/libretro.cpp:105-129, function load_bootroms). Path is built as: system_directory + "/lynxboot.img", no subdirectory. - LoadBios in media.cpp:504 reads exactly 512 bytes (GLYNX_BIOS_SIZE - = 0x200, defines.h:52). If the file size is not 0x200, the load is + LoadBios in src/media.cpp:578 reads exactly 512 bytes (GLYNX_BIOS_SIZE + = 0x200, src/defines.h:52). If the file size is not 0x200, the load is rejected with BIOS_LOAD_INVALID_SIZE. After loading, bytes at offset 0x1F8 and 0x1F9 are patched (RAM/MAPCTL registers), then CRC32 is computed and compared against GLYNX_DB_BIOS_CRC (0x0D973C9D, - game_db.h:47). An invalid CRC triggers a warning log but the BIOS + src/game_db.h:47). An invalid CRC triggers a warning log but the BIOS is still marked as loaded (m_is_bios_loaded = true). No HLE fallback. If the BIOS is not loaded (IsBiosLoaded() returns false), RunToVBlank in - src/gearlynx_core.cpp:247-255 renders a static "no bios" image + src/gearlynx_core.cpp:465-473 renders a static "no bios" image and returns false, refusing to emulate. The BIOS is required for any ROM to run. Homebrew (.o, BS93 format) bypasses the normal boot sequence via PrepareForHomebrew() but still requires the BIOS @@ -44,5 +44,5 @@ files: md5: "fcd403db69f54290b51035d82f835e7b" crc32: "0d973c9d" validation: [size, crc32] - source_ref: "platforms/libretro/libretro.cpp:160-202 (load_bootroms), src/media.cpp:504-546 (LoadBios), src/defines.h:52 (GLYNX_BIOS_SIZE=0x200), src/game_db.h:38 (GLYNX_DB_BIOS_CRC=0x0D973C9D), src/gearlynx_core.cpp:249-253 (no-bios guard)" + source_ref: "platforms/libretro/libretro.cpp:160-202 (load_bootroms), src/media.cpp:578-620 (LoadBios), src/defines.h:52 (GLYNX_BIOS_SIZE=0x200), src/game_db.h:38 (GLYNX_DB_BIOS_CRC=0x0D973C9D), src/gearlynx_core.cpp:467-471 (no-bios guard)" 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)."