emulator: EightyOne type: standalone + libretro source: "https://github.com/libretro/81-libretro" upstream: "https://github.com/charlierobson/EightyOne" profiled_date: "2026-03-18" core_version: "1.0a" display_name: "Sinclair - ZX 81 (EightyOne)" cores: - 81 systems: - sinclair-zx81 notes: | Libretro core embeds zx81.rom and dkchr.rom as C arrays (xxd -i at build). Core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. Standalone EightyOne loads ROMs from filesystem (cwd/ROM/). Original emulator supports ~15 machines (ZX80, ZX81, Jupiter ACE, TS1500, Lambda, R470, TK85, ZX97LE, Spectrum variants). Libretro port hardcodes MACHINEZX81 — only zx81.rom and dkchr.rom are embedded. files: # mode: standalone = only needed when running as standalone emulator # mode: libretro = only needed when running as libretro core # mode: both (default if absent) = needed in both modes # ref: 81-libretro/81/zx81/snap.c:37,489-496 — embedded as bin_ROM_zx81_rom # ref: EightyOne/Source/zx81/snap.cpp:1219-1279 — open(cwd/ROM/zx81.rom) - name: zx81.rom system: sinclair-zx81 required: true mode: standalone size: 8192 note: "ZX81 8K BASIC ROM. Embedded in libretro core, external for standalone." source_ref: "EightyOne/Source/zx81/snap.cpp:1264, 81-libretro/81/zx81/snap.c:489" # ref: 81-libretro/81/zx81/snap.c:38,499-508 — embedded as bin_ROM_dkchr_rom - name: dkchr.rom system: sinclair-zx81 required: false mode: standalone size: 4096 note: "dK'tronics character ROM. Embedded in libretro core." source_ref: "81-libretro/81/zx81/snap.c:499"