mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 14:03:23 -05:00
163 lines
9.2 KiB
YAML
163 lines
9.2 KiB
YAML
emulator: beetle_saturn
|
|
type: libretro
|
|
core_classification: community_fork
|
|
core: mednafen_saturn_libretro
|
|
source: "https://github.com/libretro/beetle-saturn-libretro"
|
|
upstream: "https://mednafen.github.io/"
|
|
profiled_date: "2026-10-05"
|
|
source_commit: "65f05fa66f83e65e33be83aa433d883b4fd9509a"
|
|
core_version: "v1.32.1"
|
|
display_name: "Sega - Saturn (Beetle Saturn)"
|
|
cores:
|
|
- mednafen_saturn
|
|
- beetle-saturn
|
|
systems:
|
|
- sega-saturn
|
|
- sega-stv
|
|
|
|
notes: |
|
|
Libretro port of Mednafen's Saturn emulation module, converted to C and
|
|
reporting v1.32.1 (libretro.c:57). Every firmware file is read from the
|
|
system directory: MDFN_MakeFName joins retro_base_directory and the bare
|
|
name for MDFNMKF_FIRMWARE (libretro.c:2267-2268), and the BIOS path is
|
|
built the same way (mednafen/ss/ss.c:1867-1869).
|
|
|
|
Region comes from the disc header and the region table of
|
|
mednafen/ss/db.c (libretro.c:1147-1149) and can be forced by the
|
|
beetle_saturn_region option (libretro.c:488-510, libretro.c:1153-1154).
|
|
With no content loaded the region defaults to North America
|
|
(libretro.c:1103, libretro.c:1300-1301). The BIOS filename is hard-coded
|
|
per region (mednafen/ss/ss.c:1845-1848): sega_101.bin for Japan and Asia
|
|
NTSC, mpr-17933.bin for every other area. The file must be exactly 524288
|
|
bytes and InitCommon returns false when it is absent, of another size or
|
|
short on read (mednafen/ss/ss.c:1943-1947, mednafen/ss/ss.c:1961-1984).
|
|
The sha256 of the loaded image is kept only to refuse a save state made
|
|
under another BIOS (mednafen/ss/ss.c:1988, mednafen/ss/ss.c:2589-2608).
|
|
ss.bios_sanity answers true (mednafen/settings.c:50-51) but nothing in the
|
|
port reads it: the name and hash table that upstream checks under that
|
|
setting is not carried over.
|
|
|
|
The cartridge is chosen by the game table of mednafen/ss/db.c or by the
|
|
beetle_saturn_cart option (libretro.c:512-530, libretro.c:1157-1158). The
|
|
KOF95 and Ultraman ROM carts are opened from the system directory under
|
|
the names of mednafen/settings.c:62-65 (mednafen/ss/cart.c:197-216). An
|
|
absent file leaves the cart slot on the dummy handlers and the load goes
|
|
on (mednafen/ss/cart.c:209).
|
|
|
|
ST-V content is a game ZIP or a bare ROM matched against the ST-V game
|
|
table (libretro.c:1207-1227, libretro.c:1261-1281). The cabinet region of
|
|
the matched game selects one of three ST-V BIOS images
|
|
(mednafen/ss/ss.c:1829-1843); the beetle_saturn_region option is not
|
|
applied on that path (libretro.c:1217, libretro.c:1275). The image is read
|
|
as a bare file from the system directory or, when that file is absent, as
|
|
the member of the same name in stvbios.zip there, matched without regard
|
|
to case (mednafen/ss/ss.c:1875-1949, zip_reader.c:358-365). Either form
|
|
may be 131072 or 524288 bytes (mednafen/ss/ss.c:1911-1912,
|
|
mednafen/ss/ss.c:1962).
|
|
|
|
The Video CD Card is driven through the CD block. With the
|
|
beetle_saturn_mpeg_card option enabled (libretro.c:578-586, default
|
|
disabled), CDB_Init opens mpeg_card.bin in the system directory and
|
|
MPEG_Init keeps up to 0x80000 bytes of it (mednafen/settings.c:52-53,
|
|
mednafen/settings.c:68-69, mednafen/ss/cdb.c:1315-1332,
|
|
mednafen/ss/mpeg.c:423-450). The bytes are never mapped or executed: the
|
|
loaded image only makes the card authenticate (mednafen/ss/mpeg.c:667-675).
|
|
|
|
No setting names a file for the bootable ROM cart: ss.cart.bootrom_path
|
|
has no value in the port (mednafen/ss/cart.c:242-262,
|
|
mednafen/settings.c:60-71).
|
|
|
|
files:
|
|
- name: "sega_101.bin"
|
|
system: sega-saturn
|
|
region: [japan, asia-ntsc]
|
|
required: true
|
|
size: 524288
|
|
validation: {core: [size], upstream: [size, sha256]}
|
|
sha256: "dcfef4b99605f872b6c3b6d05c045385cdea3d1b702906a0ed930df7bcb7deac"
|
|
note: "Saturn BIOS v1.01 (Japan), loaded for the Japan and Asia NTSC areas. The port checks the size only; the sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB)."
|
|
source_ref: "mednafen/ss/ss.c:1845-1846 (region filename), mednafen/ss/ss.c:1867-1873 (open), mednafen/ss/ss.c:1961-1984 (size check, read), mednafen/ss/ss.c:1988 (sha256 for save states)"
|
|
|
|
- name: "mpr-17933.bin"
|
|
system: sega-saturn
|
|
region: [north-america, europe, south-korea, asia-pal, brazil, latin-america]
|
|
required: true
|
|
size: 524288
|
|
validation: {core: [size], upstream: [size, sha256]}
|
|
sha256: "96e106f740ab448cf89f0dd49dfbac7fe5391cb6bd6e14ad5e3061c13330266f"
|
|
note: "Saturn BIOS v1.00a (North America and Europe), loaded for every area other than Japan and Asia NTSC, and when no content is loaded. The port checks the size only; the sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB)."
|
|
source_ref: "mednafen/ss/ss.c:1847-1848 (region filename), mednafen/ss/ss.c:1867-1873 (open), mednafen/ss/ss.c:1961-1984 (size check, read), mednafen/ss/ss.c:1988 (sha256 for save states), libretro.c:1103 (default area)"
|
|
|
|
- name: "mpr-18811-mx.ic1"
|
|
system: sega-saturn
|
|
required: false
|
|
min_size: 2097152
|
|
validation: [size]
|
|
note: "King of Fighters '95 ROM cart. Selected by the game table for MK-81088 and T-3101G or by the beetle_saturn_cart option. The first 0x200000 bytes are read; a shorter file installs a zeroed cart, an absent file leaves the slot empty."
|
|
source_ref: "mednafen/settings.c:62-63 (filename), mednafen/ss/cart.c:197-216 (open), mednafen/ss/cart/rom.c:67-68 (read), mednafen/ss/db.c:90-91 (game table), libretro.c:527 (option)"
|
|
|
|
- name: "mpr-19367-mx.ic1"
|
|
system: sega-saturn
|
|
required: false
|
|
min_size: 2097152
|
|
validation: [size]
|
|
note: "Ultraman: Hikari no Kyojin Densetsu ROM cart. Selected by the game table for T-13308G or by the beetle_saturn_cart option. The first 0x200000 bytes are read; a shorter file installs a zeroed cart, an absent file leaves the slot empty."
|
|
source_ref: "mednafen/settings.c:64-65 (filename), mednafen/ss/cart.c:197-216 (open), mednafen/ss/cart/rom.c:67-68 (read), mednafen/ss/db.c:92 (game table), libretro.c:529 (option)"
|
|
|
|
- name: "epr-20091.ic8"
|
|
system: sega-stv
|
|
region: [japan, asia-ntsc]
|
|
required: true
|
|
size: [131072, 524288]
|
|
validation: [size]
|
|
note: "ST-V BIOS for Japan and Asia NTSC cabinets. Read from stvbios.zip when the bare file is absent."
|
|
source_ref: "mednafen/ss/ss.c:1838-1839 (region filename), mednafen/ss/ss.c:1871-1988 (open, zip fallback, size check, read)"
|
|
|
|
- name: "epr-17952a.ic8"
|
|
system: sega-stv
|
|
region: [north-america, brazil, latin-america]
|
|
required: true
|
|
size: [131072, 524288]
|
|
validation: [size]
|
|
note: "ST-V BIOS for North America and Central and South America cabinets. Read from stvbios.zip when the bare file is absent."
|
|
source_ref: "mednafen/ss/ss.c:1840-1841 (region filename), mednafen/ss/ss.c:1871-1988 (open, zip fallback, size check, read)"
|
|
|
|
- name: "epr-17954a.ic8"
|
|
system: sega-stv
|
|
region: [europe, south-korea, asia-pal]
|
|
required: true
|
|
size: [131072, 524288]
|
|
validation: [size]
|
|
note: "ST-V BIOS for every other cabinet region. Read from stvbios.zip when the bare file is absent."
|
|
source_ref: "mednafen/ss/ss.c:1842-1843 (region filename), mednafen/ss/ss.c:1871-1988 (open, zip fallback, size check, read)"
|
|
|
|
- name: "stvbios.zip"
|
|
category: bios_zip
|
|
system: sega-stv
|
|
required: false
|
|
description: "ST-V BIOS archive"
|
|
note: "Opened only when the bare ST-V BIOS file for the cabinet region is absent. The member of the same name is matched without regard to case and must be 131072 or 524288 bytes; no hash is checked."
|
|
source_ref: "mednafen/ss/ss.c:1888-1941 (open, member lookup, size check, extract), zip_reader.c:358-365 (case-insensitive lookup)"
|
|
contents:
|
|
- name: "epr-20091.ic8"
|
|
description: "Japan and Asia NTSC"
|
|
- name: "epr-17952a.ic8"
|
|
description: "North America and Central and South America"
|
|
- name: "epr-17954a.ic8"
|
|
description: "Europe and every other region"
|
|
|
|
- name: "mpeg_card.bin"
|
|
system: sega-saturn
|
|
required: false
|
|
size: 524288
|
|
note: "Video CD Card program ROM, opened when beetle_saturn_mpeg_card is enabled. The card carries a 512 KiB mask ROM; the core keeps at most 0x80000 bytes, pads a shorter image with zeros and checks nothing else. The image is never mapped: its presence is what makes the card authenticate, and without it the card answers commands but does not authenticate."
|
|
source_ref: "mednafen/settings.c:68-69 (filename), mednafen/ss/cdb.c:1315-1332 (open), mednafen/ss/mpeg.c:67-71 (size), mednafen/ss/mpeg.c:423-450 (read), mednafen/ss/mpeg.c:667-675 (authentication)"
|
|
|
|
- name: "satar4mp.bin"
|
|
system: sega-saturn
|
|
required: false
|
|
min_size: 262144
|
|
validation: [size]
|
|
note: "Action Replay 4M Plus firmware. The first 0x40000 bytes are read as big-endian words and a shorter file leaves the cart slot empty; no hash is checked. Unfinished in source (mednafen/ss/cart/ar4mp.c:22-24), needs CPU UBC emulation. Neither the beetle_saturn_cart option (libretro.c:512-530) nor the game table of mednafen/ss/db.c yields CART_AR4MP, so the case is not reached."
|
|
source_ref: "mednafen/settings.c:66-67 (filename), mednafen/ss/cart.c:218-236 (CART_AR4MP case), mednafen/ss/cart/ar4mp.c:181 (0x40000-byte read)"
|