mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
RetroBat installs its stable archives, so each config_reads entry is read at the build the binary names: Hatari 2.4.1, hatariB 0.3, Hatari2014 at ab55c3e from the buildbot, Kronos 2.7.0 and Ymir 0.3.3. SSF ships PreviewVer R28 and YabaSanshiro 1.20.32 has no public source: binary_sha256 names the file their address refs are read in. The seven RetroBat records citing an option list now hold.
144 lines
7.8 KiB
YAML
144 lines
7.8 KiB
YAML
emulator: SSF
|
|
type: standalone
|
|
core_classification: other
|
|
source: "https://github.com/shimazzz/SEGASaturnEmulator-SSF"
|
|
upstream: closed-source
|
|
author: "Shima"
|
|
profiled_date: "2026-08-12"
|
|
source_commit: "432e257c312f705d5f85f298710d152240111da8"
|
|
core_version: "PreviewVer R38"
|
|
version_basis:
|
|
kind: package
|
|
url: "https://github.com/shimazzz/SEGASaturnEmulator-SSF/releases/download/PreviewVer/SSF_PreviewVer_R38.zip"
|
|
pattern: 'SSF_(PreviewVer)_(R\d+)\.zip'
|
|
format: "{1} {2}"
|
|
artifact: "SSF_PreviewVer_R38.zip"
|
|
display_name: "Sega - Saturn/ST-V (SSF)"
|
|
cores:
|
|
- ssf
|
|
systems:
|
|
- sega-saturn
|
|
- sega-stv
|
|
mode: standalone
|
|
|
|
config_reads:
|
|
- file: "SSF.ini"
|
|
platforms: [retrobat]
|
|
binary_sha256: "00f43e448592e5e8359eba7da4de5b3a16e6840ad8faf9cf182f738c4e25293a"
|
|
revision_from: "SSF PreviewVer R28 (string at 0x1a46634): the 32-bit SSF.exe of RetroBat's stable ssf.7z (2026-04-04), byte-identical to the one in SSF_PreviewVer_R28.zip of release tag PreviewVer"
|
|
source_ref: "SSF.exe 0x5b0b41-0x5b0b81, SSF.exe 0x5b9785, SSF.exe 0x5ac8cc-0x5ac8e2, SSF.exe 0x5ac94c, SSF.exe 0x5953d0, SSF.exe 0x5954c3-0x5954db, SSF.exe 0xb35e20"
|
|
keys:
|
|
- key: "[Peripheral] SaturnBIOS"
|
|
source_ref: "SSF.exe 0x52bc85-0x52bcd8, SSF.exe 0x5ac9e4, SSF.exe 0x5aab87-0x5aab93, SSF.exe 0x5b2905-0x5b2936, SSF.exe 0xb36022-0xb360cf"
|
|
condition: "[Program4] NoBIOS off (0 in the embedded template) and Ctrl not held at launch, in Saturn mode (no left Shift, no zip); an empty path or a read short of 0x80000 bytes boots without BIOS"
|
|
|
|
notes: |
|
|
Sega Saturn and ST-V emulator by Shima, closed source and distributed as a
|
|
binary. Two artifacts are read here and they describe the same emulator: the
|
|
Windows build SSF_PreviewVer_R38.zip of 2026-01-01, sha256
|
|
7325a9b9d666560ddf632f747fb42ab880f82c45391e51fe0716beb1c535f00b, whose
|
|
emulator is the 64-bit SSF.exe and which is cited by virtual address, and the
|
|
Android build SSF_AndroidVer.zip of 2022-08-07, package
|
|
com.xrea.g2.aaaaaaaa.ssf, whose lib/arm64-v8a/libnative-lib.so keeps its 40738
|
|
dynamic symbols and which is cited by symbol.
|
|
|
|
Every path below is stored in full in SSF.ini and picked through a file dialog
|
|
filtered on "all files (*.*)". SSF fixes no filename and no directory for any
|
|
of them and looks for none, so the names used here are the dumps that fill
|
|
each slot rather than names the code searches.
|
|
|
|
Saturn BIOS, [Peripheral] SaturnBIOS. The boot routine at 0xae0950 opens the
|
|
configured path with fopen "rb" and succeeds only when fread returns 0x80000
|
|
bytes (0xa61f70), so a shorter file fails and a longer one is cut at 512 KiB.
|
|
No hash is compared against the file. The one routine that walks the 512 KiB
|
|
BIOS area is CStateSaveBase::_GetBIOSHash, which folds it into the checksum
|
|
pair that tags a save state.
|
|
|
|
Running without it is a supported mode, [Program4] NoBIOS, inverted by holding
|
|
Ctrl at launch (GetAsyncKeyState(VK_CONTROL) at 0xae0cf3, applied at
|
|
0xae0d9b-0xae0da7). A failed read leads to the same state: the BIOS present
|
|
flag is cleared (0xae0e95, published at 0xaccc46-0xaccc50) and the setup at
|
|
0xa7cfa3-0xa7cfbc passes its negation to the embedded boot ROM, a program with
|
|
the SYS_* system calls and the interrupt vectors decompressed into the BIOS
|
|
area (0xa756c0), and to the ST-V system call layer (0xa77630).
|
|
|
|
ST-V is entered by holding left Shift at launch or by a command-line ROM whose
|
|
extension is zip (GetAsyncKeyState(VK_LSHIFT) at 0xae0c08, extension compare
|
|
at 0xae0c9d-0xae0ce0). [Peripheral] STVBIOS names the motherboard EPROM. In
|
|
that mode the EPROM is read whatever NoBIOS says (0xae0db4-0xae0e63), and an
|
|
image carrying SEGA ST-V(TITAN) at 0x500 is byte-swapped in 16-bit units
|
|
(0xae0ea6-0xae0ef6). When it is missing the boot carries on with the BIOS
|
|
present flag cleared, which arms STVSystemCall::Initialize (0xa77630, the 1
|
|
MiB clear and table reset of the Android symbol) and writes its stub into the
|
|
BIOS area.
|
|
|
|
ST-V cartridges are the game and are read from a ZIP: the loader takes the
|
|
extension of each member as its IC number, accepts 1 through 13, byte-swaps
|
|
every mask ROM in 16-bit units, doubles each byte of the IC13 EPROM across the
|
|
16-bit bus, then mirrors each chip over its window. IC7 and IC13 are
|
|
exclusive.
|
|
|
|
Cheat scripts live in Cheat/ under the disc product number. Six ship with the
|
|
emulator and the memory cheat dialog writes more.
|
|
|
|
Everything else the binary opens it also writes: SSF.ini, Setting.ini,
|
|
Setting/, Backup/, StateSave/, CDIndex/, Snapshot/, Wave/, ExtractSound/,
|
|
DebugData/, and the LLVM/ object cache that the bundled CreateObject.exe and
|
|
clang.exe compile from the user's own disc for the local CPU.
|
|
|
|
files:
|
|
- name: "sega_101.bin"
|
|
aliases:
|
|
- mpr-17933.bin
|
|
- sega_100.bin
|
|
- sega_100a.bin
|
|
- sega1003.bin
|
|
- hisaturn.bin
|
|
- vsaturn.bin
|
|
system: sega-saturn
|
|
required: false
|
|
hle_fallback: true
|
|
size: 524288
|
|
description: "Saturn BIOS"
|
|
note: "Any dump of the 512 KiB console ROM, the compatible machines included. Area code is chosen by [Peripheral] Areacode and AutoAreacode, not by the image, so no region selects this file. Each alias labels one of those dumps: mpr-17933.bin, sega_100.bin, sega_100a.bin, sega1003.bin, hisaturn.bin and vsaturn.bin."
|
|
source_ref: "SSF.exe 0x43d770 (SaturnBIOS 0x129b1f8), SSF.exe 0x129a2f8 with the filter at 0x129a310, SSF.exe 0x43ff96 (NoBIOS 0x129b4cc), SSF.exe 0xae0950 0xae0e4b-0xae0e95 (path chosen, read of 0x80000 bytes through 0xa61f70), SSF.exe 0xa61f70 0xa61fad-0xa6200e (fopen rb, fread count compared to the size), libnative-lib.so SSF::CStateSaveBase::_GetBIOSHash 0x134b8ec-0x134b924"
|
|
|
|
- name: "epr-20091.ic8"
|
|
aliases:
|
|
- epr-23603.ic8
|
|
- epr-19730.ic8
|
|
- epr-19854.ic8
|
|
- epr-17951a.ic8
|
|
- epr-17952a.ic8
|
|
- epr-17953a.ic8
|
|
- epr-17954a.ic8
|
|
- epr-17740.ic8
|
|
- epr-17740a.ic8
|
|
- epr-17741a.ic8
|
|
- epr-17742a.ic8
|
|
system: sega-stv
|
|
required: false
|
|
hle_fallback: true
|
|
size: 524288
|
|
description: "ST-V BIOS"
|
|
note: "Loose 512 KiB EPROM image, read outside the cartridge ZIP. Any of the board revisions is accepted, the code branching on none of them."
|
|
source_ref: "SSF.exe 0x43d91f (STVBIOS 0x129b218), SSF.exe 0x129a328, SSF.exe 0xae0950 0xae0db4-0xae0e93 (ST-V mode reads this path through 0xa61f70 whatever NoBIOS says), 0xae0ea6-0xae0ef6 (SEGA ST-V(TITAN) compare, 16-bit swap), 0xa7cfa3-0xa7cfbc (BIOS absent passed to STVSystemCall::Initialize 0xa77630)"
|
|
|
|
- name: "<cartridge>.bin"
|
|
system: sega-saturn
|
|
required: false
|
|
category: game_data
|
|
description: "cartridge image mapped at A-Bus CS0"
|
|
note: "[Peripheral] DataCartridge, gated by DataCartridgeEnable and off by default. SSF reads the file at the configured path into the 32 MiB A-Bus CS0 window and identifies it in no way. The dumps that belong there are the two Saturn ROM carts, mpr-18811-mx.ic1 for The King of Fighters '95 and mpr-19367-mx.ic1 for Ultraman."
|
|
source_ref: "SSF.exe 0x43e26b (DataCartridge 0x1298838), SSF.exe 0x43e178 (DataCartridgeEnable 0x1298820), SSF.exe 0x129a340, SSF.exe 0x916e5e-0x916e84"
|
|
|
|
- name: "<name>.cht"
|
|
path: "Cheat/<product id>/<name>.cht"
|
|
system: sega-saturn
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
description: "cheat script"
|
|
note: "Read when [Program4] EnableCheat is set, from the directory named after the disc product number. The format is a script language: triggers on first read, field, file, sector, CDDA and scanline, memory reads and writes, storage slots, branches and labels. Six ship with the emulator, and the memory cheat dialog saves its own with the target address in the name."
|
|
source_ref: "SSF.exe 0x4403c0 (EnableCheat 0x1298de0), SSF.exe 0x12998a0, SSF.exe 0x129a658, SSF.exe command table 0x128c570-0x128c808"
|