emulator: "YabaSanshiro" type: standalone + libretro core_classification: official_port source: libretro: "https://github.com/libretro/yabause/tree/yabasanshiro" standalone: "https://github.com/sydarn/yabause/tree/pi4-update" upstream: "https://github.com/devmiyax/yabause" profiled_date: "2026-10-24" source_commit: libretro: "09ed8e5b2e97e7a848ea2514545c34c7b809e399" standalone: "a40dace1ae0af3ebd45848549fdf396f40e3930f" core_version: libretro: "3.4.2" standalone: "1.11.beta3" version_basis: libretro: kind: file path: "yabause/src/libretro/Makefile.common" pattern: '-DVERSION=\\"([^\\"]+)\\"' standalone: kind: file path: "yabause/CMakeLists.txt" pattern: 'set\(YAB_VERSION_MAJOR (\w+)\)\nset\(YAB_VERSION_MINOR (\w+)\)\nset\(YAB_VERSION_PATCH (\w+)\)' format: "{1}.{2}.{3}" display_name: "Sega - Saturn (YabaSanshiro)" cores: - yabasanshiro - "yabasanshiro-2" - "yabasanshiroSA" - "yabasanshiro-sa" - "yabasanshiro-libretro" - "yabasanshiroSA1_5" systems: - sega-saturn data_root: linux: path: "~/.yabasanshiro" source_ref: "yabause/src/retro_arena/main.cpp:292-301" note: "Created at startup. Holds backup.bin, keymapv2.json, the per-game settings files, save states and screenshots. No firmware is read from it." config_reads: - file: "yabause.ini" platforms: [retrobat] binary_sha256: "54f89ad3d45f078422616b794e9f7d400a37af0fbb00b31d3ba5a3b66516bf27" revision_from: "yabasanshiro.exe of RetroBat's stable yabasanshiro.7z (2026-08-08), version 1.20.32 (0x141206de8), the yabasanshiro-1.20.32-3989ac release of 2026-07-31 whose source is not public" source_ref: "yabasanshiro.exe 0x14001ae2c-0x14001ae58, yabasanshiro.exe 0x1400cea2c-0x1400cea33, yabasanshiro.exe 0x1400ce4d5-0x1400ce59e, yabasanshiro.exe 0x1400ce5a3-0x1400ce61f, yabasanshiro.exe 0x1400ce44a-0x1400ce496, yabasanshiro.exe 0x1400ce339-0x1400ce394" keys: - key: "[0.9.11] General\\EnableEmulatedBios" source_ref: "yabasanshiro.exe 0x1400d248f-0x1400d2512" - key: "[0.9.11] General\\Bios" source_ref: "yabasanshiro.exe 0x1400d251b-0x1400d258c, yabasanshiro.exe 0x1400cf162-0x1400cf166, yabasanshiro.exe 0x14016d957-0x14016d98f, yabasanshiro.exe 0x14016f3ad-0x14016f4b4, yabasanshiro.exe 0x14016d997-0x14016d9f7" condition: "General\\EnableEmulatedBios false; an empty value runs the HLE BIOS, a file that does not open stops init" notes: | YabaSanshiro is a Sega Saturn emulator by devmiyax, forked from Yabause. Requires OpenGL 3.3 or OpenGL ES 3.0. Saturn BIOS search order: 1. {system}/saturn_bios.bin 2. {system}/sega_101.bin 3. {system}/mpr-17933.bin First file found wins. Without any of the three the core refuses the game, even with the yabasanshiro_force_hle_bios core option set (yabause/src/libretro/libretro.c:1064-1071). Addon cartridges: 1M/4M RAM expansion via core option (no files needed). ROM cartridge and MPEG card ROM loading disabled in libretro port (cartpath = empty, mpegpath = NULL). BIOS loading: retro_load_game() at yabause/src/libretro/libretro.c:1048-1071. Core load: LoadBios() at yabause/src/memory.c:1353-1356, T123Load() at yabause/src/memory.h:219-289. Standalone: the retro_arena SDL2 front end of the sydarn/yabause pi4-update branch, built with -DYAB_PORTS=retro_arena. It prints version 1.11.beta3 (yabause/CMakeLists.txt:15-18, yabause/src/config.h.in:5). It opens a BIOS only at the path given with -b or --bios, under any name. Without it biospath stays NULL and the core runs its HLE BIOS (yabause/src/retro_arena/main.cpp:161, yabause/src/retro_arena/main.cpp:230-234, yabause/src/retro_arena/main.cpp:325-328, yabause/src/yabause.c:373-388). The image is read through T123Load, which truncates a file above 512 KiB and checks nothing else (yabause/src/memory.c:1400-1403, yabause/src/memory.h:219-242). A -b path that cannot be read stops YabauseInit. The MPEG card and ROM cartridge paths stay empty, so no other firmware is read. ROCKNIX passes -b with the first of saturn_bios.bin, sega_101.bin, mpr-17933.bin, mpr-18811-mx.ic1, mpr-19367-mx.ic1 and stvbios.zip found under its BIOS folder when its use_hlebios setting is 1 (ROCKNIX projects/ROCKNIX/packages/emulators/standalone/yabasanshiro-sa/scripts/start_yabasanshiro.sh:80-91). AmberELEC passes saturn_bios.bin from its BIOS folder unless HLE is selected (AmberELEC packages/games/emulators/yabasanshiroSA/yabasanshiro.sh:63-70). Both build the pi4-update tip and patch the home directory to /storage/.config/yabasanshiro. groups: saturn-bios: required: true files: - name: "saturn_bios.bin" system: sega-saturn mode: libretro group: saturn-bios priority: 1 note: "Primary Saturn BIOS. Any region accepted." source_ref: "yabause/src/libretro/libretro.c:1048" - name: "sega_101.bin" system: sega-saturn mode: libretro group: saturn-bios priority: 2 note: "Saturn BIOS v1.01 (Japan). Fallback if saturn_bios.bin missing." source_ref: "yabause/src/libretro/libretro.c:1052" - name: "mpr-17933.bin" system: sega-saturn mode: libretro group: saturn-bios priority: 3 note: "Saturn BIOS v1.003 (NA/EU). Last fallback." source_ref: "yabause/src/libretro/libretro.c:1056"