Files
libretro/emulators/yabasanshiro.yml
T
Abdessamad Derraz 87683d9bd7 refactor: keep build refs out of conditions
A line cited in a config_reads condition is read as prose at the
profile's pin, not at the build the entry describes. The lines move
into the key's source_ref, which is read at that build.
2026-11-11 12:17:04 +01:00

124 lines
5.2 KiB
YAML

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"