Skip to content

SPMP8000Emu

SPMP8000Emu emulates Sunplus SPMP8000. It reads 1 file, none of them required: it starts games without them.

About this profile
Detail Value
Type standalone + libretro
Classification Pure libretro
Source https://github.com/AloysHF/SPMP8000Emu
Version 1.0.0, stated in Cargo.toml
Revision AloysHF/SPMP8000Emu@65a93528ee33
Profiled 2026-09-03
Profile YAML, JSON
Cores spmp8000emu
Systems Sunplus SPMP8000
Install this emulator's files

For SPMP8000Emu inside RetroArch, EmuDeck or another setup. The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.

Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.

PowerShell
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator spmp8000emu
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, and nothing is read from disk for it.

1 file: 0 required, 1 optional.

In this collection: 1 in repo and 0 missing.

tonelib.bin optional in repo embedded

SPMP8000 firmware PCM tone bank

  • System: Sunplus SPMP8000
  • Compiled into the core from crates/spmp8000emu-core/assets/tonelib.bin and never opened at run time. 256-entry patch table (128 melodic, 128 percussion) followed by per-zone PCM samples, read by the NativeGE MIDI path. Hashes are of the file in the emulator repository, which states the SHA-256.
Hashes and source
.