mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
224 lines
10 KiB
YAML
224 lines
10 KiB
YAML
emulator: "nSide (SFC Balanced)"
|
|
type: libretro
|
|
core_classification: enhanced_fork
|
|
source: "https://github.com/libretro/nSide"
|
|
upstream: "https://gitlab.com/higan/higan"
|
|
profiled_date: "2026-09-17"
|
|
source_commit: "5b2b5da3a9654d88b2e51fb7a1637808ac601a18"
|
|
upstream_commit: "3353efd3a1087f4d16d9b9fd2a8e465087ab8ec0"
|
|
core_version: "106.25"
|
|
display_name: "Nintendo - SNES / SFC (nSide Balanced)"
|
|
cores:
|
|
- nside_sfc_balanced
|
|
- higan_sfc_balanced
|
|
systems:
|
|
- nintendo-snes
|
|
- nintendo-sgb
|
|
|
|
exclusion_note: >
|
|
The .info declares SGB1.sfc/sgb1.boot.rom and SGB2.sfc/sgb2.boot.rom. The
|
|
core opens the boot ROM under the name the manifest derives from the
|
|
architecture, lr35902.boot.rom, in the selected SGB folder
|
|
(nSide/gb/system/system.cpp:60-61, nSide/emulator/game.hpp:101-104). A
|
|
sgb1.boot.rom or sgb2.boot.rom is only looked up, at the system directory
|
|
root, when the Super Game Boy cartridge is itself imported as an SFC game
|
|
(icarus/core/super-famicom.cpp:49-54), a load that ends on the Game Boy
|
|
cartridge manifest the libretro target cannot provide
|
|
(nSide/target-libretro/libretro.cpp:284-287).
|
|
|
|
notes: |
|
|
Fork of higan by hex_usr (nSide v009r16, README.txt:1-4), synchronised with
|
|
higan v106r25: Emulator::Version is "106.25" (nSide/emulator/emulator.hpp:16)
|
|
and retro_get_system_info announces it as library_version under the name
|
|
"higan (Super Famicom Balanced)" (nSide/target-libretro/libretro.cpp:87-93,
|
|
nSide/target-libretro/libretro-sfc.cpp:486). The balanced profile keeps a
|
|
scanline-based PPU; the accuracy profile is refused at build time
|
|
(nSide/target-libretro/GNUmakefile:1-2, nSide/target-libretro/libretro.cpp:38-39).
|
|
The library is named nside_$(corename)_libretro with corename sfc_balanced
|
|
(nSide/target-libretro/GNUmakefile:4-13, nSide/target-libretro/GNUmakefile:18-23),
|
|
which the GitLab CI publishes as nside_sfc_balanced (.gitlab-ci.yml:15,
|
|
.gitlab-ci.yml:53-54). The core options keep the higan_sfc_ prefix so the
|
|
settings are shared with higan's core (nSide/target-libretro/libretro-sfc.cpp:321-329).
|
|
|
|
System files manifest.bml, boards.bml and ipl.rom are compiled into the
|
|
binary and served from memory (nSide/target-libretro/libretro-sfc.cpp:335-341,
|
|
nSide/target-libretro/resource/sfc.bml:1-4, nSide/sfc-balanced/smp/smp.cpp:25-33).
|
|
|
|
Coprocessor firmware. A ROM is imported through icarus, whose manifest names
|
|
each firmware memory by architecture and identifier
|
|
(icarus/heuristics/super-famicom.cpp:90-115). When the image does not carry
|
|
the firmware appended (icarus/heuristics/super-famicom.cpp:406-414), the
|
|
importer reports {identifier}.{content}.rom as missing
|
|
(icarus/core/super-famicom.cpp:46-57) and the libretro target reads that
|
|
name through locate_libretro, appends it to the image and imports again
|
|
(nSide/target-libretro/icarus.cpp:111-142). locate_libretro tries the system
|
|
directory, then higan/ and nSide/ under the user's config and data
|
|
directories (nSide/target-libretro/libretro.cpp:3-31). Identifiers come from
|
|
the cartridge label: DSP1 for PILOTWINGS, DSP2 for DUNGEON MASTER, DSP3 for
|
|
SD Gundam GX, DSP4 for TOP GEAR 3000 and PLANETS CHAMP TG3000, DSP1B
|
|
otherwise; ST011 for 2DAN MORITA SHOUGI, ST010 otherwise; ST018 and Cx4 have
|
|
a single revision (icarus/heuristics/super-famicom.cpp:512-541). No hash is
|
|
checked; a file shorter than the size the manifest declares leaves the
|
|
second import short and the load fails. The sizes below are those declared
|
|
by the heuristics.
|
|
|
|
Super Game Boy. Loading a .gb or .gbc file selects the folder named by the
|
|
higan_sfc_sgb_bios option, SGB1.sfc/ by default or SGB2.sfc/
|
|
(nSide/target-libretro/libretro-sfc.cpp:142-145,
|
|
nSide/target-libretro/libretro-sfc.cpp:326). program.rom is looked up in
|
|
that folder, then in SGB.sfc/ and Super GameBoy.sfc/, and the folder's
|
|
manifest is generated from its program.rom and *.boot.rom files
|
|
(nSide/target-libretro/libretro-sfc.cpp:179-215,
|
|
icarus/core/super-famicom.cpp:1-11). The Game Boy system then opens the boot
|
|
ROM the manifest names, lr35902.boot.rom, from the folder first and from the
|
|
system directory root as a fallback (nSide/gb/system/system.cpp:54-65,
|
|
nSide/target-libretro/program.cpp:19-81). Once a Game Boy image is loaded
|
|
both files are mandatory: a missing one sets the failure flag and
|
|
retro_load_game returns false
|
|
(nSide/target-libretro/program.cpp:75-78, nSide/target-libretro/libretro.cpp:286).
|
|
The SHA-1 values on the boot ROMs and on cx4.data.rom are those of the copies
|
|
the source tree ships in icarus/firmware/.
|
|
|
|
files:
|
|
# NEC uPD7725 (DSP1, DSP1B, DSP2, DSP3, DSP4): 2048 x 24-bit program words,
|
|
# 1024 x 16-bit data words
|
|
- name: "dsp1.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:115, icarus/heuristics/super-famicom.cpp:534"
|
|
|
|
- name: "dsp1.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:114, icarus/heuristics/super-famicom.cpp:534"
|
|
|
|
- name: "dsp1b.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:115, icarus/heuristics/super-famicom.cpp:539"
|
|
|
|
- name: "dsp1b.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:114, icarus/heuristics/super-famicom.cpp:539"
|
|
|
|
- name: "dsp2.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:115, icarus/heuristics/super-famicom.cpp:535"
|
|
|
|
- name: "dsp2.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:114, icarus/heuristics/super-famicom.cpp:535"
|
|
|
|
- name: "dsp3.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:115, icarus/heuristics/super-famicom.cpp:536"
|
|
|
|
- name: "dsp3.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:114, icarus/heuristics/super-famicom.cpp:536"
|
|
|
|
- name: "dsp4.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:115, icarus/heuristics/super-famicom.cpp:537-538"
|
|
|
|
- name: "dsp4.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501, icarus/heuristics/super-famicom.cpp:114, icarus/heuristics/super-famicom.cpp:537-538"
|
|
|
|
# Hitachi HG51BS169 (Cx4): 1024 x 24-bit data words
|
|
- name: "cx4.data.rom"
|
|
system: nintendo-snes
|
|
size: 3072
|
|
sha1: "a002f4efba42775a31185d443f3ed1790b0e949a"
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:405-454, icarus/heuristics/super-famicom.cpp:110, icarus/heuristics/super-famicom.cpp:529-531"
|
|
|
|
# NEC uPD96050 (ST010, ST011): 16384 x 24-bit program words,
|
|
# 2048 x 16-bit data words
|
|
- name: "st010.data.rom"
|
|
system: nintendo-snes
|
|
size: 4096
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548, icarus/heuristics/super-famicom.cpp:99, icarus/heuristics/super-famicom.cpp:516-521"
|
|
|
|
- name: "st010.program.rom"
|
|
system: nintendo-snes
|
|
size: 49152
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548, icarus/heuristics/super-famicom.cpp:98, icarus/heuristics/super-famicom.cpp:516-521"
|
|
|
|
- name: "st011.data.rom"
|
|
system: nintendo-snes
|
|
size: 4096
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548, icarus/heuristics/super-famicom.cpp:99, icarus/heuristics/super-famicom.cpp:519"
|
|
|
|
- name: "st011.program.rom"
|
|
system: nintendo-snes
|
|
size: 49152
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548, icarus/heuristics/super-famicom.cpp:98, icarus/heuristics/super-famicom.cpp:519"
|
|
|
|
# SETA ARM6 (ST018): 128 KiB program, 32 KiB data
|
|
- name: "st018.data.rom"
|
|
system: nintendo-snes
|
|
size: 32768
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:362-402, icarus/heuristics/super-famicom.cpp:92, icarus/heuristics/super-famicom.cpp:512-514"
|
|
|
|
- name: "st018.program.rom"
|
|
system: nintendo-snes
|
|
size: 131072
|
|
required: false
|
|
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:362-402, icarus/heuristics/super-famicom.cpp:91, icarus/heuristics/super-famicom.cpp:512-514"
|
|
|
|
# Super Game Boy: cartridge ROM and boot ROM per folder
|
|
- name: "program.rom"
|
|
path: "SGB1.sfc/program.rom"
|
|
system: nintendo-sgb
|
|
required: false
|
|
note: "Also looked up as SGB.sfc/program.rom and Super GameBoy.sfc/program.rom."
|
|
source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215, nSide/sfc-balanced/cartridge/load.cpp:159-162"
|
|
|
|
- name: "lr35902.boot.rom"
|
|
path: "SGB1.sfc/lr35902.boot.rom"
|
|
system: nintendo-sgb
|
|
size: 256
|
|
sha1: "aa2f50a77dfb4823da96ba99309085a3c6278515"
|
|
required: false
|
|
note: "Falls back to lr35902.boot.rom at the system directory root."
|
|
source_ref: "nSide/gb/system/system.cpp:54-65, nSide/emulator/game.hpp:101-104, icarus/heuristics/super-famicom.cpp:103, icarus/heuristics/super-famicom.cpp:523-527"
|
|
|
|
- name: "program.rom"
|
|
path: "SGB2.sfc/program.rom"
|
|
system: nintendo-sgb
|
|
required: false
|
|
note: "Selected by the higan_sfc_sgb_bios option."
|
|
source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215, nSide/sfc-balanced/cartridge/load.cpp:159-162"
|
|
|
|
- name: "lr35902.boot.rom"
|
|
path: "SGB2.sfc/lr35902.boot.rom"
|
|
system: nintendo-sgb
|
|
size: 256
|
|
sha1: "93407ea10d2f30ab96a314d8eca44fe160aea734"
|
|
required: false
|
|
note: "Falls back to lr35902.boot.rom at the system directory root."
|
|
source_ref: "nSide/gb/system/system.cpp:54-65, nSide/emulator/game.hpp:101-104, icarus/heuristics/super-famicom.cpp:103, icarus/heuristics/super-famicom.cpp:523-527"
|