Skip to content

SPMP8000Emu - RetroBIOS

Type standalone + libretro
Classification Pure libretro
Source https://github.com/AloysHF/SPMP8000Emu
Version 1.0.0
Profiled 2026-09-03
Cores spmp8000emu
Systems sunplus-spmp8000
Technical notes

Emulator for Sunplus SPMP8000 NGame1.0 games written in Rust by AloysHF. The libretro core and the spmp8000-emu standalone binary share the spmp8000emu-core crate. A .bin game is read from its full path (need_fullpath = true, crates/spmp8000emu-libretro/src/libretro/api.rs:96; from_path_with_config, crates/spmp8000emu-core/src/emulator.rs:63-68), its header parsed, the payload DES-decrypted and LZ77/RLE-decompressed with keys and tables compiled into the core, then loaded at the code address. The system API (emuIf, NativeGE, eCos) is implemented in Rust (crates/spmp8000emu-core/src/api/).

Guest file calls (emuIfFsFileOpen, NativeGE_fsOpen, NativeGE_readRecord, NativeGE_writeRecord) resolve the guest path under the directory of the loaded .bin (crates/spmp8000emu-core/src/emulator.rs:129-131, crates/spmp8000emu-core/src/api/mod.rs:125-127, crates/spmp8000emu-core/src/api/emu_fs.rs:9-13); what a game reads or writes there is its own data and saves. RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and GET_SAVE_DIRECTORY are defined (crates/spmp8000emu-libretro/src/libretro/constants.rs:36, crates/spmp8000emu-libretro/src/libretro/constants.rs:47) but nothing calls them.

MIDI resources are rendered by a sample-based synthesiser whose tone bank is the SPMP8000 firmware's own PCM tone library, compiled into the core with include_bytes! (crates/spmp8000emu-core/src/tone_library.rs:8, crates/spmp8000emu-core/src/audio_resource.rs:498-499). It is the only embedded data and the only firmware-derived component; nothing is read from disk for it.

1 files | 0 required, 1 optional | 1 in repo, 0 missing

tonelib.bin optional in repo embedded
SPMP8000 firmware PCM tone bank

Generated on 2026-09-14T09:03:10Z