emulator: bsnes C++98 type: libretro core_classification: frozen_snapshot source: "https://github.com/libretro/bsnes-libretro-cplusplus98" upstream: "https://byuu.org/" profiled_date: "2026-03-23" core_version: "v085 (Performance)" display_name: "Nintendo - SNES / SFC (bsnes C++98 (v085))" cores: [bsnes_cplusplus98] systems: - nintendo-snes - nintendo-sufami-turbo - nintendo-satellaview notes: | Frozen snapshot of bsnes v085 downgraded to C++98 for old compilers (PS3). Performance profile only. is_experimental=true. NEC DSP and Hitachi DSP firmware loaded from the ROM directory, not system_dir. Path: dir(interface->path(Slot::Base, ".dsp")) + firmware_name from game XML markup. interface->path() returns ROM basename + hint. ref: snes/cartridge/markup.cpp parse_markup_necdsp, parse_markup_hitachidsp ref: snes/libretro/libretro.cpp Interface::path() RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is never called. No file I/O targets system_dir anywhere in the codebase. Core continues without DSP firmware but coprocessor games won't function. exclusion_note: > firmware_count=0 in .info is correct. DSP firmware (NEC uPD7725/uPD96050, Hitachi CX4) is loaded from the ROM directory via game XML markup, not from system_dir. RetroArch cannot pre-populate firmware in the ROM directory. Upstream byuu.org is defunct; this libretro port is the preserved v085 code. files: []