mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 10:23:16 -05:00
chore: re-profile SUPER ZSNES v0.320
This commit is contained in:
1 parent
a5da20d897
commit
ed40e1a834
1 file changed
+35
-26
+35
-26
@@ -6,8 +6,8 @@ upstream: "https://www.zsnes.com"
|
||||
version_source:
|
||||
url: "https://www.zsnes.com/"
|
||||
pattern: 'Latest Release Notes \((v[0-9.]+[a-z]?)\)'
|
||||
profiled_date: "2026-08-08"
|
||||
core_version: "v0.230b"
|
||||
profiled_date: "2026-10-20"
|
||||
core_version: "v0.320"
|
||||
display_name: "Nintendo - SNES / SFC (SUPER ZSNES)"
|
||||
cores:
|
||||
- superzsnes
|
||||
@@ -19,33 +19,42 @@ mode: standalone
|
||||
notes: |
|
||||
Super Famicom emulator by zsKnight and _Demo_, written from scratch with a
|
||||
GPU-rendered PPU and unrelated to the ZSNES codebase. Shipped as binaries
|
||||
only, for Windows, macOS, Linux and Android. The desktop builds are Unity
|
||||
Mono, so the emulator is Assembly-CSharp.dll and the per-game tables are
|
||||
serialized into the level0 scene. The Windows and Linux 0.230b builds carry
|
||||
the same tables and the same emulation sources.
|
||||
only, for Windows, macOS, Linux, Android and iOS. Since v0.320 the desktop
|
||||
builds are Unity IL2CPP: the emulator is compiled into GameAssembly with
|
||||
its names in il2cpp_data/Metadata/global-metadata.dat, and the per-game
|
||||
tables are serialized into the level0 scene. The build calls itself
|
||||
v0.320b. The Windows and Linux archives (SuperZSNES_v0.320.zip, sha1
|
||||
c934d6b74a050ef8857595a0529ee0e0006e2d93, and SuperZSNES_v0.320.tar.gz,
|
||||
sha1 7630f6bbcda789a329ee4198ec11934feaf56e32, from zsnes.com/files)
|
||||
carry the same VersionNo object in level0.
|
||||
|
||||
One NEC uPD7725 interpreter serves every cartridge whose header declares a
|
||||
DSP. RomLoader.GetROMType reads the cartridge type byte at $FFD6 and returns
|
||||
COProcessorType.DSP when the low nibble is 3 to 6 and the high nibble is 0,
|
||||
COProcessorType.DSP when the low nibble is 3 to 8 and the high nibble is 0,
|
||||
or when the high nibble is F and the subtype byte at $FFBF is 1 or 2.
|
||||
MainMemoryMap.InitSpecialChips builds the DSP1 object for that type alone.
|
||||
The DSP1 constructor picks the filename from a table keyed on the CRC32 of
|
||||
the 21 raw header title bytes, taken as Latin-1 and re-encoded UTF-8,
|
||||
falling back to dsp1b.rom when no entry matches. Words are assembled little
|
||||
endian, 2048 24-bit program words from offset 0 then 1024 16-bit data words
|
||||
from offset 6144.
|
||||
MainMemoryMap.InitSpecialChips builds the DSP1 object for that type. The
|
||||
DSP1 constructor picks the filename from VersionNo.dspDetections, where each
|
||||
name carries a list of CRC32 values of the 21 raw header title bytes, taken
|
||||
as Latin-1 and re-encoded UTF-8, falling back to dsp1b.rom when no entry
|
||||
matches. Words are assembled little endian, 2048 24-bit program words from
|
||||
offset 0 then 1024 16-bit data words from offset 6144, and a shorter file
|
||||
leaves the remaining words at zero.
|
||||
|
||||
Three locations are tried in order: the folder holding the loaded ROM, the
|
||||
Unity persistent data folder (ZEMU Software Inc./SUPERZSNES), then the
|
||||
folder holding the executable. None of them goes through the srm and bps
|
||||
path overrides. When all three miss, a "Need DSP ROM" dialog names the file
|
||||
and the chip runs on a zero-filled 8192-byte buffer.
|
||||
and the chip runs on a zero-filled 8192-byte buffer. The image is kept
|
||||
across resets and reloaded only when another name is selected.
|
||||
|
||||
No other file is read. SA-1, SPC7110, S-RTC, Cx4, OBC-1, Super Game Boy and
|
||||
the ST01x and ST018 enum entries build no chip, the SPC700 IPL is a 64-byte
|
||||
array in CPUSPC700, and the enhancement data, the audio replacement data and
|
||||
testgame.smc are Unity resources inside the build. Save RAM, save states,
|
||||
cheats, bps patches and MSU-1 packs are all named after the loaded ROM.
|
||||
No other file is read. SA-1, S-DD1, Super FX, OBC-1 and Cx4 are emulated
|
||||
from code alone, the Cx4 data ROM coming from CX4DataRom.GenerateDataRom.
|
||||
SPC7110, S-RTC, Super Game Boy and the ST01x and ST018 enum entries build
|
||||
no chip. The SPC700 IPL is a 64-byte array in CPUSPC700, and the built-in
|
||||
enhancement data, the audio replacement data and testgame.smc are Unity
|
||||
resources inside the build. Save RAM, save states, cheats, bps patches,
|
||||
MSU-1 packs and the .zsmod, .zsaudiomod and .zlua enhancement files are
|
||||
all named after the loaded ROM.
|
||||
|
||||
files:
|
||||
# NEC uPD7725 microcode, program and data ROM in one file.
|
||||
@@ -60,7 +69,7 @@ files:
|
||||
size: 8192
|
||||
crc32: 465c4e1c
|
||||
validation: [crc32]
|
||||
source_ref: "Assets/Scripts/SpecialChips/DSP1.cs:88-89 (name and expected CRC32 1180454428), DSP1.cs:151-155 (compare, warn on mismatch), Assets/Scripts/SpecialChips/DSP1Core.cs:756-769 (8192-byte layout)"
|
||||
source_ref: "GameAssembly DSP1..ctor (name and expected CRC32 0x465C4E1C, compare, warn on mismatch), DSP1Core.LoadROM (8192-byte layout)"
|
||||
note: "Default for every DSP cartridge with no table entry, so it covers DSP-1 and DSP-1A titles as well. A mismatched CRC32 warns and the data is used anyway."
|
||||
|
||||
- name: "dsp2.rom"
|
||||
@@ -69,7 +78,7 @@ files:
|
||||
description: "NEC uPD7725 DSP-2 microcode"
|
||||
required: true
|
||||
size: 8192
|
||||
source_ref: "Assets/Scripts/SpecialChips/DSP1.cs:98-114 (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 1, title CRC32 0x84690f8b)"
|
||||
source_ref: "GameAssembly DSP1..ctor (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 0, title CRC32 0x84690f8b)"
|
||||
note: "Selected for header title 'DUNGEON MASTER' (Dungeon Master)."
|
||||
|
||||
- name: "dsp3.rom"
|
||||
@@ -78,7 +87,7 @@ files:
|
||||
description: "NEC uPD7725 DSP-3 microcode"
|
||||
required: true
|
||||
size: 8192
|
||||
source_ref: "Assets/Scripts/SpecialChips/DSP1.cs:98-114 (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 2, title CRC32 0xfa7f8076)"
|
||||
source_ref: "GameAssembly DSP1..ctor (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 1, title CRC32 0xfa7f8076)"
|
||||
note: "Selected for the half-width katakana header title of SD Gundam GX, 'SD' then $B6 $DE $DD $C0 $DE $D1 then 'GX'."
|
||||
|
||||
- name: "dsp4.rom"
|
||||
@@ -87,7 +96,7 @@ files:
|
||||
description: "NEC uPD7725 DSP-4 microcode"
|
||||
required: true
|
||||
size: 8192
|
||||
source_ref: "Assets/Scripts/SpecialChips/DSP1.cs:98-114 (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 3, title CRC32 0x42578645)"
|
||||
source_ref: "GameAssembly DSP1..ctor (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 2, title CRC32 0x42578645)"
|
||||
note: "Selected for header title 'TOP GEAR 3000' (Top Gear 3000)."
|
||||
|
||||
# Seta parts. The table routes their cartridges to the same uPD7725
|
||||
@@ -99,7 +108,7 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "Seta ST010 microcode"
|
||||
required: true
|
||||
source_ref: "Assets/Scripts/SpecialChips/DSP1.cs:98-114 (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 4, title CRC32 0x04e7aca6)"
|
||||
source_ref: "GameAssembly DSP1..ctor (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 3, title CRC32 0x04e7aca6)"
|
||||
note: "Selected for header title 'F1 ROC II' with $00 as the 21st byte (F1 ROC II: Race of Champions)."
|
||||
|
||||
- name: "st011.rom"
|
||||
@@ -107,7 +116,7 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "Seta ST011 microcode"
|
||||
required: true
|
||||
source_ref: "Assets/Scripts/SpecialChips/DSP1.cs:98-114 (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 5, title CRC32 0xc96d71c1)"
|
||||
source_ref: "GameAssembly DSP1..ctor (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 4, title CRC32 0xc96d71c1)"
|
||||
note: "Selected for header title '2DAN MORITA SHOUGI' with $00 as the 21st byte (Hayazashi Nidan Morita Shougi)."
|
||||
|
||||
- name: "st018.rom"
|
||||
@@ -115,5 +124,5 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "Seta ST018 firmware"
|
||||
required: true
|
||||
source_ref: "Assets/Scripts/SpecialChips/DSP1.cs:98-114 (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 6, title CRC32 0x85885c5e)"
|
||||
source_ref: "GameAssembly DSP1..ctor (table lookup, no CRC32 check), SUPERZSNES_Data/level0 (VersionNo.dspDetections entry 5, title CRC32 0x85885c5e)"
|
||||
note: "Selected for header title 'NIDAN MORITASHOGI2' (Hayazashi Nidan Morita Shougi 2)."
|
||||
Reference in new issue
Block a user