mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-21 11:19:11 -05:00
Profiles that read two repositories, a libretro port and its upstream, now prefix each citation with source or upstream, decided by which tree carries the cited value at its pin. The emulator pages use the word to tell libretro glue, emulator code as the port carries it, and the upstream emulator apart.
196 lines
9.7 KiB
YAML
196 lines
9.7 KiB
YAML
emulator: "Snes9x EX+"
|
|
type: standalone
|
|
core_classification: community_fork
|
|
source: "https://github.com/Rakashazi/emu-ex-plus-alpha"
|
|
upstream: "https://github.com/snes9xgit/snes9x"
|
|
profiled_date: "2026-08-12"
|
|
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
|
|
upstream_commit: "b33f2afb33c61d675aaf0319bd3b8cc8d6924d49"
|
|
core_version: "1.5.85"
|
|
display_name: "Nintendo - SNES / SFC (Snes9x EX+)"
|
|
mode: standalone
|
|
cores:
|
|
- "snes9x-explus"
|
|
- "SNES9X-EXPLUS"
|
|
- "Snes9x EX+"
|
|
- "Snes9xEXPlus"
|
|
systems:
|
|
- nintendo-snes
|
|
- nintendo-satellaview
|
|
- nintendo-sufami-turbo
|
|
|
|
notes: |
|
|
Member of the EX Emulator series by Robert Broglia, published as
|
|
com.explusalpha.Snes9xPlus and built around the target s9xp
|
|
(Snes9x/metadata/conf.mk:2-7, Snes9x/CMakeLists.txt:4,10). ES-DE reaches it
|
|
through the SNES9X-EXPLUS find rule, which only the Android rule set carries,
|
|
and offers it under satellaview, sfc, snes, snesna and sufami. Snes9x 1.63 is
|
|
vendored under Snes9x/src/snes9x at upstream b33f2af, the revision the sync
|
|
commit 96b2f850 names, and 114 of the 152 vendored source files are
|
|
byte-identical to it. The app built from Snes9x/1.43 is a separate package,
|
|
com.explusalpha.Snes9x, and carries none of what follows.
|
|
|
|
Content is any .smc, .sfc, .swc, .bs, .st, .fig or .mgd file, or an archive
|
|
whose first entry with one of those extensions is used, the app leaving
|
|
archives to the framework (Snes9x/src/main/AppMeta.cc:30-33,
|
|
EmuFramework/src/EmuSystem.cc:392-425, EmuFramework/src/AppMeta.cc:29). It
|
|
is read whole into memory and goes to LoadROMMem, except a Sufami Turbo cart,
|
|
recognized by a length of 0x80000 to 0x100000 with "BANDAI SFC-ADX" at 0 and
|
|
no "SFC-ADX BACKUP" at 0x10, which goes to LoadMultiCartMem with the base
|
|
cartridge placed in front of it (Snes9x/src/main/Main.cc:177-181,221-273,
|
|
Snes9x/src/snes9x/memmap.cpp:1575-1608). Dual Sufami Turbo carts are not
|
|
loaded: slot B is always passed as null (Snes9x/src/main/Main.cc:250-260).
|
|
|
|
Two firmware images are read, and both differ from upstream in how they are
|
|
found. Upstream opens BS-X.bin then BS-X.bios in its BIOS directory
|
|
(bsx.cpp:1204-1236) and STBIOS.bin for a Sufami Turbo load
|
|
(memmap.cpp:1663-1686). The app deletes both blocks and reads a URI the user
|
|
picks instead, so no filename is compiled in
|
|
(Snes9x/src/snes9x/bsx.cpp:1199-1203,
|
|
Snes9x/src/snes9x/memmap.cpp:1644-1670, Snes9x/src/main/S9XApi.cc:225-253,
|
|
Snes9x/src/main/Main.cc:194-219). Each picker lists directories, names ending
|
|
.bin or .bios caselessly, and .7z, .rar and .zip archives, whose first member
|
|
with one of those two extensions is taken (Snes9x/src/main/Main.cc:189-192,
|
|
Snes9x/src/main/EmuMenuViews.cc:345-387,
|
|
EmuFramework/include/emuframework/DataPathSelectView.hh:77-101,
|
|
EmuFramework/src/gui/FilePicker.cc:39-48,
|
|
imagine/src/fs/ArchiveFS.cc:75-78). An unset path or a failed check throws,
|
|
and the loader thread turns that into a failed load with the message on
|
|
screen (EmuFramework/src/EmuApp.cc:794-819). Neither image is hashed.
|
|
|
|
A BS-X cartridge image loaded as content takes the other branch of
|
|
S9xInitBSX, which copies it into the BIOS area itself and asks for nothing
|
|
(Snes9x/src/snes9x/bsx.cpp:1213-1233). Broadcast data is read per requested
|
|
channel as BSXHHHH-D.bin under the Satellaview Files path, which defaults to
|
|
the content directory, and a miss only leaves the stream unloaded
|
|
(Snes9x/src/snes9x/bsx.cpp:736-790, Snes9x/src/main/S9XApi.cc:203-216,
|
|
Snes9x/src/main/system.ccm:108).
|
|
|
|
Every coprocessor is emulated in code with no external firmware: DSP-1 to
|
|
DSP-4, ST010, ST011, ST018, Cx4, S-DD1 and SPC7110, each implemented under
|
|
Snes9x/src/snes9x in dsp1.cpp through dsp4.cpp, seta010.cpp, seta011.cpp,
|
|
seta018.cpp, c4emu.cpp, sdd1emu.cpp and spc7110emu.cpp. The 1.43 branch's
|
|
S-DD1 data call and SPC7110 pack directory are compiled out here
|
|
(Snes9x/src/main/S9XApi.cc:64,89-131).
|
|
|
|
Per content the app writes and reads back a .srm, an .rtc for the S-RTC,
|
|
.frz states and a .cht cheat list under the cheats path. Settings live in
|
|
Snes9xP.config (Snes9x/src/main/Main.cc:78-90,153-172,
|
|
Snes9x/src/snes9x/memmap.cpp:1791-1812, Snes9x/src/main/Cheats.cc:33-45,
|
|
Snes9x/src/main/AppMeta.cc:19). A BS game with no save of its own falls back
|
|
to BS-X.srm (Snes9x/src/snes9x/memmap.cpp:1874-1890). A .bps, .ups or .ips
|
|
named after the content in the patches path is applied as the image loads,
|
|
the app having dropped the search beside the content
|
|
(Snes9x/src/snes9x/memmap.cpp:1327,3888-4027). MSU-1 data and tracks are read
|
|
beside the content as .msu, or the content name with msu1.rom appended, and
|
|
-N.pcm per track (Snes9x/src/snes9x/msu1.cpp:60-70,116-118,157-160). UNZIP_SUPPORT is not defined, so the .msu1 pack and the
|
|
patch-inside-a-zip paths are not compiled (Snes9x/CMakeLists.txt:18).
|
|
|
|
files:
|
|
- name: "BS-X.bin"
|
|
aliases: ["BS-X.bios"]
|
|
system: nintendo-satellaview
|
|
description: "Satellaview BS-X cartridge ROM"
|
|
required: true
|
|
agnostic: true
|
|
min_size: 1048576
|
|
validation: [existence, size]
|
|
config_key: "CFGKEY_BSX_BIOS_PATH"
|
|
category: bios
|
|
note: >-
|
|
Read for every BS game, the branch taken when the header at 0x7FC0 or
|
|
0xFFC0 marks the image as one. The read takes 1048576 bytes and compares
|
|
the count returned, so a shorter file is rejected and a longer one has its
|
|
tail ignored, then the 21 bytes at 0x7FC0 must read "Satellaview BS-X"
|
|
padded with spaces.
|
|
The name is the user's: the app compiles none in and only the .bin and
|
|
.bios endings limit what the picker offers.
|
|
source_ref: "source Snes9x/src/snes9x/memmap.cpp:2065 (run on every load), source Snes9x/src/snes9x/bsx.cpp:1240-1274 (BS branch calls the loader), source Snes9x/src/snes9x/bsx.cpp:1199-1203 (loader is the app hook), source Snes9x/src/main/S9XApi.cc:218-253 (path, archive, size and header checks), source Snes9x/src/main/EmuMenuViews.cc:345-365 (picker), source Snes9x/src/main/system.ccm:110 (setting), source Snes9x/src/main/options.cc:46, 79 (config key)"
|
|
|
|
- name: "STBIOS.bin"
|
|
system: nintendo-sufami-turbo
|
|
description: "Sufami Turbo base cartridge ROM"
|
|
required: true
|
|
agnostic: true
|
|
size: 262144
|
|
validation: [existence, size]
|
|
config_key: "CFGKEY_SUFAMI_BIOS_PATH"
|
|
category: bios
|
|
note: >-
|
|
Read whenever the content is a Sufami Turbo cart, and copied to the front
|
|
of the ROM area with the cart behind it. The whole file is buffered, so
|
|
the length must be exactly 262144, with "BANDAI SFC-ADX" at 0 and
|
|
"SFC-ADX BACKUP" at 0x10. The name is the user's, the picker accepting any
|
|
.bin or .bios.
|
|
source_ref: "source Snes9x/src/main/Main.cc:250-260 (cart routes through the BIOS read), source Snes9x/src/main/Main.cc:183-187, 194-219 (path, archive, size and header checks), source Snes9x/src/snes9x/memmap.cpp:1018-1025, 1575-1608 (second check and placement), source Snes9x/src/main/EmuMenuViews.cc:367-387 (picker), source Snes9x/src/main/system.ccm:109 (setting), source Snes9x/src/main/options.cc:45, 78 (config key)"
|
|
|
|
- name: "BSX0120-0.bin"
|
|
system: nintendo-satellaview
|
|
description: "Satellaview data stream for channel 0120"
|
|
required: false
|
|
category: game_data
|
|
size: 34
|
|
validation: [existence]
|
|
config_key: "CFGKEY_SATELLAVIEW_PATH"
|
|
note: >-
|
|
Opened by the name the emulated unit asks for, BSXHHHH-D.bin from the
|
|
channel registers at 0x2188 and 0x218E, under the Satellaview Files path,
|
|
which defaults to the content directory. The file is measured to size the
|
|
queue and read 22 bytes at a time. A miss leaves the stream unloaded.
|
|
source_ref: "source Snes9x/src/snes9x/bsx.cpp:736-790, source Snes9x/src/main/S9XApi.cc:203-216, source Snes9x/src/main/system.ccm:108, source Snes9x/src/main/EmuMenuViews.cc:325-343"
|
|
|
|
- name: "BSX0121-0.bin"
|
|
system: nintendo-satellaview
|
|
description: "Satellaview data stream for channel 0121"
|
|
required: false
|
|
category: game_data
|
|
size: 34
|
|
validation: [existence]
|
|
config_key: "CFGKEY_SATELLAVIEW_PATH"
|
|
source_ref: "source Snes9x/src/snes9x/bsx.cpp:736-790, source Snes9x/src/main/S9XApi.cc:203-216"
|
|
|
|
- name: "BSX0122-0.bin"
|
|
system: nintendo-satellaview
|
|
description: "Satellaview data stream for channel 0122"
|
|
required: false
|
|
category: game_data
|
|
size: 1031
|
|
validation: [existence]
|
|
config_key: "CFGKEY_SATELLAVIEW_PATH"
|
|
source_ref: "source Snes9x/src/snes9x/bsx.cpp:736-790, source Snes9x/src/main/S9XApi.cc:203-216"
|
|
|
|
- name: "BSX0123-0.bin"
|
|
system: nintendo-satellaview
|
|
description: "Satellaview data stream for channel 0123"
|
|
required: false
|
|
category: game_data
|
|
size: 16
|
|
validation: [existence]
|
|
config_key: "CFGKEY_SATELLAVIEW_PATH"
|
|
source_ref: "source Snes9x/src/snes9x/bsx.cpp:736-790, source Snes9x/src/main/S9XApi.cc:203-216"
|
|
|
|
- name: "BSX0124-0.bin"
|
|
system: nintendo-satellaview
|
|
description: "Satellaview data stream for channel 0124"
|
|
required: false
|
|
category: game_data
|
|
size: 97
|
|
validation: [existence]
|
|
config_key: "CFGKEY_SATELLAVIEW_PATH"
|
|
source_ref: "source Snes9x/src/snes9x/bsx.cpp:736-790, source Snes9x/src/main/S9XApi.cc:203-216"
|
|
|
|
- name: "Bio Worm.7z"
|
|
aliases: ["BioWorm.7z"]
|
|
system: nintendo-snes
|
|
description: "Bundled homebrew game, listed under Bundled Content"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
validation: [existence]
|
|
size: 42479
|
|
sha1: "38e44c9868c0b8a5a99ec0b6e901a28f617d25bf"
|
|
note: >-
|
|
Opened from the application bundle by the name the build gives it, the
|
|
Linux build dropping the space, and loaded as content.
|
|
source_ref: "source Snes9x/src/main/AppMeta.cc:20-21 (names), source EmuFramework/src/gui/BundledGamesView.cc:41, 47 (open and load)"
|