Skip to content

EightyOne (Recalbox)

Technical notes

Recalbox port of EightyOne, vendored under 81/ and built with CMake. Machines: ZX80, ZX81, ZX97LE, TS1000, TS1500, TK85, Lambda 8300, Ringo R470, Spectrum 16K/48K/+/128K/+2/+2A/+3, TC2048, TC2068, TS2068, Jupiter ACE. ref: libretro/libretro_core.cpp:876-1074

The ROM directory is <system>/eightyone/ with ROMs/, FDCs/ and IDEs/ subfolders. ref: libretro/libretro_core.cpp:2620-2631

86 machine, interface, IDE, graphics and speech ROMs are compiled in as zlib-compressed arrays and looked up by basename. ref: libretro/eo_roms.cpp:16-103, libretro/eo_roms.cpp:106-128

memory_load, memoryLoadToAddress and font_load query the embedded table before opening any path, and every ROM name the core requests is in that table, so no ROM is read from the system directory. ref: 81/Source/zx81/snap.cpp:1189-1199, 81/Source/zx81/snap.cpp:1285-1299, 81/Source/zx81/snap.cpp:1317-1328, 81/Source/zx81config.cpp:161-210, 81/Source/zx81config.cpp:259-284

Didaktik D40/D80 tests for eightyone/FDCs/didaktik.gama.rom and stores its full path in CurRom when present, and memory_load reduces the path to its basename and serves the embedded copy. ref: libretro/libretro_core.cpp:2953-2968, 81/Source/Spectrum/spec48.cpp:361-362

ZXpand writes zxpand-eeprom.bin (256 bytes of 0xFF) under the ROM directory when it is absent. ref: 81/Source/zxpand/smbsd.cpp:75-98

Digitalker is a stub and its SSR ROM loader is not compiled. CapsImg is linked statically. ref: libretro/eo_stubs.cpp:67-68, CMakeLists.txt:267-291

No BIOS or firmware files required.

Why no files

The system directory holds eightyone/ROMs, FDCs and IDEs, but every ROM the core requests is served from its embedded table before any path is opened (libretro/eo_roms.cpp:106-128). The one file it touches there is zxpand-eeprom.bin, written when absent (81/Source/zxpand/smbsd.cpp:75-98).

Generated on 2026-10-20T03:49:41Z