mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 00:27:20 -05:00
Each libretro profile records version_basis and core_version is read there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba 0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build takes its version from git carry the nearest tag in describe form (flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders copied from .info files (Git, SVN) are replaced by the code's statement, and a code that states none is null with kind none.
231 lines
10 KiB
YAML
231 lines
10 KiB
YAML
emulator: "higan (SFC Accuracy)"
|
|
type: libretro
|
|
core_classification: frozen_snapshot
|
|
source: "https://gitlab.com/higan/higan"
|
|
source_branch: libretro
|
|
upstream: "https://gitlab.com/higan/higan"
|
|
profiled_date: "2026-09-17"
|
|
source_commit: "d3f592013a27cb78f17d84f90a6be6cf6f6af1d1"
|
|
core_version: "106"
|
|
version_basis:
|
|
kind: file
|
|
path: "higan/emulator/emulator.hpp"
|
|
pattern: 'static\s+const\s+string\s+Version\s*=\s*"([^"]+)"'
|
|
display_name: "Nintendo - SNES / Famicom (higan Accuracy)"
|
|
cores:
|
|
- higan_sfc
|
|
systems:
|
|
- nintendo-snes
|
|
- nintendo-sgb
|
|
|
|
notes: |
|
|
The libretro target lives on the libretro branch of higan's own repository,
|
|
merged with the v106 release: Emulator::Version is "106"
|
|
(higan/emulator/emulator.hpp:15) and retro_get_system_info announces it as
|
|
library_version under the name "higan (Super Famicom Accuracy)"
|
|
(higan/target-libretro/libretro.cpp:405-412,
|
|
higan/target-libretro/libretro-sfc.cpp:513). The buildbot recipe builds
|
|
higan_sfc from that branch (libretro-super
|
|
recipes/linux/cores-linux-x64-generic:71), whose last commit dates from
|
|
2017-11-19. The library is named higan_$(corename)_libretro with corename
|
|
sfc (higan/target-libretro/GNUmakefile:1-11,
|
|
higan/target-libretro/GNUmakefile:13-19). nSide, from which
|
|
nside_sfc_balanced is built, refuses core=sfc at build time
|
|
(nSide nSide/target-libretro/GNUmakefile:1-2).
|
|
|
|
The system manifest and the 64-byte SPC700 IPL ROM are compiled into the
|
|
binary and served from memory (higan/target-libretro/libretro-sfc.cpp:364-396,
|
|
higan/sfc/smp/smp.cpp:25-33).
|
|
|
|
Coprocessor firmware. A ROM is imported through icarus, whose heuristics
|
|
detect the coprocessor from the cartridge header
|
|
(icarus/heuristics/super-famicom.cpp:707-759) and write a manifest naming
|
|
each firmware file with its size
|
|
(icarus/heuristics/super-famicom.cpp:482-545). DSP1 games are given the
|
|
DSP1B names, while dsp1.program.rom and dsp1.data.rom are named for the Campus
|
|
Challenge '92 and Powerfest '94 cartridges
|
|
(icarus/heuristics/super-famicom.cpp:623-640,
|
|
icarus/heuristics/super-famicom.cpp:416-417,
|
|
icarus/heuristics/super-famicom.cpp:437-438). When the image does not carry
|
|
the firmware appended (icarus/heuristics/super-famicom.cpp:106-190), the
|
|
importer reports the file as missing (icarus/core/super-famicom.cpp:64-71)
|
|
and the target reads it through locate_libretro, appends it to the image
|
|
and imports again (higan/target-libretro/libretro.cpp:105-141).
|
|
locate_libretro tries the system directory, then higan/ under the user's
|
|
config and data directories (higan/target-libretro/libretro.cpp:15-35). No
|
|
hash is checked. The sizes below are those the manifest declares, and a
|
|
shorter file leaves the second import short and the load fails.
|
|
|
|
The icarus database is read from Database/ next to the frontend
|
|
executable or under the icarus config and data directories, and takes
|
|
precedence over the heuristics when the image's SHA-256 is listed
|
|
(icarus/core/core.cpp:1-16, icarus/icarus.cpp:7-15,
|
|
icarus/core/super-famicom.cpp:17-24). It names dsp1.program.rom and
|
|
dsp1.data.rom for several DSP1 titles and sgb.boot.rom for the Super Game
|
|
Boy cartridge.
|
|
|
|
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/
|
|
(higan/target-libretro/libretro-sfc.cpp:154-156,
|
|
higan/target-libretro/libretro-sfc.cpp:354). 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
|
|
(higan/target-libretro/libretro-sfc.cpp:202-243,
|
|
icarus/core/super-famicom.cpp:1-11). The heuristics recognise the cartridge
|
|
by its header and name the boot ROM sgb1.boot.rom or sgb2.boot.rom
|
|
(icarus/heuristics/super-famicom.cpp:612-621,
|
|
icarus/heuristics/super-famicom.cpp:225-245). The Game Boy system opens
|
|
that name from the folder first and from the system directory root as a
|
|
fallback (higan/gb/system/system.cpp:54-65,
|
|
higan/sfc/coprocessor/icd2/icd2.cpp:34-38,
|
|
higan/target-libretro/libretro.cpp:200-278). Once a Game Boy image is
|
|
loaded both files are mandatory: a missing program.rom fails
|
|
load_special_bios, a missing boot ROM sets the failure flag, and
|
|
retro_load_game returns false (higan/target-libretro/libretro-sfc.cpp:223-227,
|
|
higan/target-libretro/libretro.cpp:635-642). The source tree ships no copy
|
|
of the boot ROMs or of the coprocessor firmware.
|
|
|
|
files:
|
|
# NEC uPD7725 (DSP1, DSP1B, DSP2, DSP3, DSP4): 2048 x 24-bit program words,
|
|
# 1024 x 16-bit data words
|
|
- name: "dsp1.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
note: "Named for the Campus Challenge '92 and Powerfest '94 cartridges and by the icarus database. Other DSP1 games use dsp1b.program.rom."
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:416, icarus/heuristics/super-famicom.cpp:437"
|
|
|
|
- name: "dsp1.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
note: "Named for the Campus Challenge '92 and Powerfest '94 cartridges and by the icarus database. Other DSP1 games use dsp1b.data.rom."
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:417, icarus/heuristics/super-famicom.cpp:438"
|
|
|
|
- name: "dsp1b.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:482, icarus/heuristics/super-famicom.cpp:712-720"
|
|
|
|
- name: "dsp1b.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:483, icarus/heuristics/super-famicom.cpp:712-720"
|
|
|
|
- name: "dsp2.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:492, icarus/heuristics/super-famicom.cpp:734"
|
|
|
|
- name: "dsp2.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:493, icarus/heuristics/super-famicom.cpp:734"
|
|
|
|
- name: "dsp3.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:502, icarus/heuristics/super-famicom.cpp:738"
|
|
|
|
- name: "dsp3.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:503, icarus/heuristics/super-famicom.cpp:738"
|
|
|
|
- name: "dsp4.program.rom"
|
|
system: nintendo-snes
|
|
size: 6144
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:512, icarus/heuristics/super-famicom.cpp:742"
|
|
|
|
- name: "dsp4.data.rom"
|
|
system: nintendo-snes
|
|
size: 2048
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:513, icarus/heuristics/super-famicom.cpp:742"
|
|
|
|
# Hitachi HG51B169 (Cx4): 1024 x 24-bit data words
|
|
- name: "cx4.data.rom"
|
|
system: nintendo-snes
|
|
size: 3072
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:201-225, icarus/heuristics/super-famicom.cpp:255, icarus/heuristics/super-famicom.cpp:708"
|
|
|
|
# NEC uPD96050 (ST010, ST011): 16384 x 24-bit program words,
|
|
# 2048 x 16-bit data words
|
|
- name: "st010.program.rom"
|
|
system: nintendo-snes
|
|
size: 49152
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:522, icarus/heuristics/super-famicom.cpp:750"
|
|
|
|
- name: "st010.data.rom"
|
|
system: nintendo-snes
|
|
size: 4096
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:523, icarus/heuristics/super-famicom.cpp:750"
|
|
|
|
- name: "st011.program.rom"
|
|
system: nintendo-snes
|
|
size: 49152
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:533, icarus/heuristics/super-famicom.cpp:754"
|
|
|
|
- name: "st011.data.rom"
|
|
system: nintendo-snes
|
|
size: 4096
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:534, icarus/heuristics/super-famicom.cpp:754"
|
|
|
|
# SETA ARM6 (ST018): 128 KiB program, 32 KiB data
|
|
- name: "st018.program.rom"
|
|
system: nintendo-snes
|
|
size: 131072
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:185-199, icarus/heuristics/super-famicom.cpp:544, icarus/heuristics/super-famicom.cpp:758"
|
|
|
|
- name: "st018.data.rom"
|
|
system: nintendo-snes
|
|
size: 32768
|
|
required: false
|
|
source_ref: "higan/sfc/cartridge/load.cpp:185-199, icarus/heuristics/super-famicom.cpp:545, icarus/heuristics/super-famicom.cpp:758"
|
|
|
|
# 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: "higan/target-libretro/libretro-sfc.cpp:202-243, higan/sfc/cartridge/load.cpp:77-80"
|
|
|
|
- name: "sgb1.boot.rom"
|
|
path: "SGB1.sfc/sgb1.boot.rom"
|
|
system: nintendo-sgb
|
|
aliases:
|
|
- "sgb.boot.rom"
|
|
size: 256
|
|
required: false
|
|
note: "Falls back to sgb1.boot.rom at the system directory root. Named sgb.boot.rom by the icarus database entry for the cartridge."
|
|
source_ref: "higan/gb/system/system.cpp:54-65, icarus/heuristics/super-famicom.cpp:232, icarus/heuristics/super-famicom.cpp:619, icarus/core/super-famicom.cpp:17-24"
|
|
|
|
- name: "program.rom"
|
|
path: "SGB2.sfc/program.rom"
|
|
system: nintendo-sgb
|
|
required: false
|
|
note: "Selected by the higan_sfc_sgb_bios option."
|
|
source_ref: "higan/target-libretro/libretro-sfc.cpp:202-243, higan/sfc/cartridge/load.cpp:77-80"
|
|
|
|
- name: "sgb2.boot.rom"
|
|
path: "SGB2.sfc/sgb2.boot.rom"
|
|
system: nintendo-sgb
|
|
size: 256
|
|
required: false
|
|
note: "Falls back to sgb2.boot.rom at the system directory root."
|
|
source_ref: "higan/gb/system/system.cpp:54-65, icarus/heuristics/super-famicom.cpp:243, icarus/heuristics/super-famicom.cpp:614"
|