Files
libretro/emulators/holani.yml
Abdessamad Derraz de1940d57c feat: hle_fallback on 39 emulator profiles (266 entries)
Batch analysis of all 273 profiles to identify HLE/embedded
fallbacks. Added hle_fallback: true where the core has verified
software replacement for missing BIOS files:

- Embedded ROMs: vice (102), ep128emu (22), fuse (18), frodo (4)
- HLE BIOS: bsnes* (33 across 3 profiles), puae (9 AROS),
  noods (4), melonds* (6 FreeBIOS), flycast (3 reios)
- Open-source replacements: sameboy (8), pokemini (1), gpsp (1)
- Built-in fallbacks: np2kai (7), atari800 (6 Altirra),
  picodrive (3), quasi88 (4), gambatte (2)

Conservative: only added where notes or source code confirm HLE.
Skipped 50+ profiles where files are optional alternatives, not
HLE replaceable (neocd, opera, kronos, pcem, etc.)
2026-03-19 13:03:48 +01:00

45 lines
1.9 KiB
YAML

emulator: Holani
type: libretro
source: "https://github.com/LLeny/holani-retro"
profiled_date: "2026-03-18"
core_version: "0.6.0"
display_name: "Atari - Lynx (Holani)"
cores: [holani]
systems: [atari-lynx]
verification: existence
notes: |
Holani is a cycle-stepped Atari Lynx emulator written in Rust by LLeny.
The libretro port (holani-retro) loads lynxboot.img from the system
directory at retro_load_game time (lib.rs:110-121). Path is built as
system_directory + "/lynxboot.img", no subdirectory.
The core library (holani/src/rom.rs) embeds a free boot ROM from
https://bjoern.spruck.net/lynx/ as FREE_BOOTROM (512 bytes), used as
the default when no external ROM is loaded (Rom::default()). The
libretro wrapper attempts to load the real lynxboot.img, but if the
file is missing or the system directory is invalid, Lynx::new() already
has the free boot ROM initialized. No hash validation on the external
file; Rom::from_slice() only checks length == 512.
Unlike Handy and Gearlynx, Holani always boots because the free ROM
is compiled in. The real BIOS provides more accurate boot behavior
(encrypted cart loader, original RSA key), while the free ROM
reimplements the boot sequence without proprietary code.
ROM extensions: .lnx, .o
Core options: none.
files:
- name: "lynxboot.img"
description: "Atari Lynx boot ROM"
region: "World"
required: false
hle_fallback: true
size: 512
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
md5: "fcd403db69f54290b51035d82f835e7b"
crc32: "0d973c9d"
source_ref: "holani-retro lib.rs:110-121 (bios load path), holani rom.rs:14-47 (FREE_BOOTROM embedded fallback), rom.rs:72-79 (from_slice length check only)"
notes: "Optional. Core ships with a free boot ROM embedded at compile time. Real BIOS provides original encrypted cart loader. No CRC/hash validation on load, only size == 512."