feat: profile eight standalone emulators

This commit is contained in:
Abdessamad Derraz committed 2026-08-08 04:24:23 +02:00
1 parent 69d53c97c9
commit 4fac3bb0f6
9 files changed
+1551 -5

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
emulator: 3dSen
type: standalone
core_classification: embedded_hle
source: "https://geodstudio.net"
upstream: "https://geodstudio.net"
profiled_date: "2026-08-07"
core_version: "1.1"
display_name: "3dSen (3D NES)"
cores:
- 3dsen
- 3dsen-windows
systems:
- nintendo-nes
mode: standalone
notes: |
Closed-source Unity/C# NES emulator by Geod Studio, sold on Steam and
itch.io for Windows, macOS and Linux. Rebuilds NES cartridge games as
voxel scenes at runtime. Emulation is compiled into the binary and the
NES has no boot ROM, so no external BIOS or firmware is loaded. Cartridge
games only, no Famicom Disk System and therefore no disksys.rom: ES-DE
lists it under nes and famicom but not fds, and RetroBat maps it to nes3d
alone and documents "No specific BIOS is required to play NES games".
Games are registered through the emulator UI, which writes rom.json in
the Unity persistent data path (Windows AppData\LocalLow\Geod Studio\3dSen\,
Linux ~/.config/unity3d/Geod Studio/3dSen/, macOS ~/Library/Logs/Geod
Studio/3dSen/) binding a fixed numeric ID to the user ROM. Launching
passes that ID rather than a path: 3dSen.exe -id=N.
Per-game 3D profiles are .3dn files, protobuf-serialized behind a "3dn"
title header and a version field (3DNesManager Classes/3DNTools.cs:14-31,
51-58), loaded when a game starts (3DNes_Engine Engine3D.cs:37, Load3DN).
The 100 official profiles ship inside the application. Profiles built
with 3dSenMaker are optional per-game additions installed from the UI
since v0.9, and cover art packs are optional files placed in CoverArt/
under the same data path. ROMs are user-supplied, the emulator ships
with no game content.
files: []
+121
View File
@@ -0,0 +1,121 @@
emulator: A7800
type: standalone
core_classification: enhanced_fork
source: "https://github.com/7800-devtools/a7800"
upstream: "https://github.com/mamedev/mame"
profiled_date: "2026-08-08"
source_commit: "7a2afdc1ea08fc331b16b750d8c1f02d4ef62fc8"
core_version: "5.2"
display_name: "Atari - 7800 (A7800)"
cores:
- a7800
systems:
- atari-7800
mode: standalone
notes: |
MAME fork by 7800.8bitdev.org built with the Atari 7800 driver alone. The
released binary carries eight machines, all declaring a7800 as parent: NTSC
and PAL at three palette temperatures, plus a developer mode showing DMA
usage per scanline (a7800.cpp:1837-1844). The temperature variants were
renamed after 5.2, from a7800u1/a7800u2/a7800pu1/a7800pu2 to
a7800a1/a7800a2/a7800pa1/a7800pa2. ROM definitions are identical in both.
Console BIOS is optional. Every entry carries ROM_OPTIONAL, so absence
yields a warning rather than the fatal "Required files are missing" exit
(romload.cpp:373-379, 488-493). The region is ERASEFF, and machine_reset
reads the reset vector: when 0xfffe and 0xffff both hold 0xff, m_ctrl_reg is
set to 4 and the console starts the cartridge (a7800.cpp:1529-1532). No code
substitutes for the BIOS when it is absent.
Lookup runs under rompath, which the shipped a7800.ini sets to "bios;roms".
open_rom_file walks the parent chain (romload.cpp:567-572), so all eight
machines fall back to the a7800 set, and the manual documents one merged
archive at bios/a7800.zip. Inside an archive the search tries name with CRC,
then CRC alone, then name (fileio.cpp:692-701), so a ROM whose filename
differs from the driver still resolves; loose files under rompath/a7800/
match by name only. Loaded ROMs are checked for exact length and against the
declared CRC32 and SHA1, and a mismatch is a warning (romload.cpp:417-455).
The PAL BIOS keeps the filename 7800pal.rom, which mainline MAME has since
renamed to c300558-001b.u7 for the same dump. Mainline also marks the 7800
ROMs mandatory.
Software list a7800 (hash/a7800.xml), attached by every machine
(a7800.cpp:1577, 1608, 1654, 1684), holds add-on hardware rather than games:
the High Score Cartridge and the XM Expansion Module, both backed by the
same 4KB highscre.bin served as the pass-through cart ROM
(hiscore.cpp:49-52, xm.cpp:177-183). Software list ROMs resolve as
a7800/<setname> then <setname> under rompath (romload.cpp:628-650) and carry
no optional flag, so selecting either configuration without the image exits
with EMU_ERR_MISSING_FILES.
The release ships the binary, a7800.ini, the manual, hash/a7800.xml, cfg
defaults, bgfx shaders and artwork masks, and no roms, samples, plugins or
language directory. The driver adds no samples device and no external
layout. Crosshair bitmaps fall back to a compiled-in shape
(crsshair.cpp:180-214) and the UI font to compiled-in data
(rendfont.cpp:587-600).
files:
- name: a7800.zip
required: false
category: bios_zip
system: atari-7800
source_ref: "src/mame/drivers/a7800.cpp:1698-1748"
note: >-
Merged console BIOS archive documented by the manual at bios/a7800.zip.
Serves all eight machines through the parent chain, since the PAL
machines are clones of a7800 rather than of a7800p.
validation: [size, crc32, sha1]
contents:
- name: 7800.u7
description: NTSC BIOS, default system BIOS "a7800", mapped at 0x3000
size: 4096
crc32: "5d13730c"
sha1: "d9d134bb6b36907c615a594cc7688f7bfcef5b43"
- name: c300558-001a.u7
description: NTSC prototype BIOS with Asteroids, system BIOS "a7800pr"
size: 16384
crc32: "a0e10edf"
sha1: "14584b1eafe9721804782d4b1ac3a4a7313e455f"
- name: 7800pal.rom
description: PAL BIOS with Asteroids, named c300558-001b.u7 in mainline MAME
size: 16384
crc32: "d5b61170"
sha1: "5a140136a16d1d83e4ff32a19409ca376a8df874"
- name: hiscore.zip
required: false
category: bios_zip
system: atari-7800
source_ref: "hash/a7800.xml:8-21"
note: >-
Software list set for the High Score Cartridge configuration (CX78HSC,
slot a78_hsc). Fatal when that configuration is selected and the set is
absent.
validation: [size, crc32, sha1]
contents:
- name: highscre.bin
description: High Score Cartridge ROM, read through the pass-through cart
size: 4096
crc32: "9be408d3"
sha1: "a3af676991391a6dd716c79022d4947206b78164"
- name: xm.zip
required: false
category: bios_zip
system: atari-7800
source_ref: "hash/a7800.xml:24-38"
note: >-
Software list set for the XM Expansion Module configuration (slot
a78_xm), which reuses the High Score Cartridge ROM alongside 128KB RAM,
POKEY and YM2151. Fatal when that configuration is selected and the set
is absent.
validation: [size, crc32, sha1]
contents:
- name: highscre.bin
description: High Score Cartridge ROM, gated by XM control register bit 3
size: 4096
crc32: "9be408d3"
sha1: "a3af676991391a6dd716c79022d4947206b78164"
+281
View File
@@ -0,0 +1,281 @@
emulator: ACE-DL
type: standalone
core_classification: community_fork
source: "https://roudoudou.com/ACE-DL/"
upstream: "http://ace.cpcscene.net"
profiled_date: "2026-08-08"
core_version: "2026-06-03"
display_name: "Amstrad - CPC/Plus (ACE-DL)"
cores:
- ace-dl
- acedl
systems:
- amstrad-cpc
mode: standalone
notes: |
SDL port of ACE, the Amstrad CPC/Plus emulator written by Philippe Rimauro
(OffseT) for MorphOS. ACE-DL is built by Edouard Bergé (Roudoudou) from the
MorphOS sources and released for Windows, macOS, Linux and Raspberry Pi;
a third port targets Haiku. All three are closed source, the original author
keeps the sources private, so the entries below were established on the
official 2026-06-03 Linux x86-64 build: path constants read from the binary,
file opens traced with strace, and required/optional decided by removing each
file and observing the result.
Machines are CPC 464, 664 and 6128 plus the Plus range, which boots from a
cartridge and covers the GX-4000. An operating system is one 32 KB file
holding the 16 KB firmware ROM followed by the 16 KB BASIC ROM; the AMSDOS
disc ROM is a separate 16 KB file mapped in slot 7. The upstream MorphOS
release keeps the three ROMs apart under System/ and composes them at
startup, ACE-DL ships them pre-joined under private/firmware/ with one file
per machine and language. The pairs are exact:
OS464_UK.rom Firmware v1 + BASIC 1.00
OS464_FR.rom Firmware f1 + French BASIC 1.0 (md5 824f5213…)
OS664_UK.rom Firmware v2 + BASIC 1.10
OS6128_UK.rom Firmware v3 + BASIC 1.20
OS6128_FR.rom Firmware f3 + BASIC 1.23
OS6128_S.rom Firmware s3 + BASIC 1.21
OS6128_DK.rom Firmware d3 + BASIC 1.20
XMEM_FW_3_15_UK.rom XMEM 3.15 firmware + BASIC 1.20
XMEM_FW_3_15_FR.rom XMEM 3.15 firmware + BASIC 1.23
Firmware versions run 1 to 4 for the 464, 664, 6128 and Plus, and the letter
is the country: v English, f French, s Spanish, d Danish. The BASIC revision
attached to a version 3 firmware follows the country, 1.23 for France, 1.21
for Spain, 1.20 elsewhere, which is what the pairs above show. The XMEM files
replace the firmware half with the X-MEM expansion firmware and keep the
stock BASIC.
The nine operating systems are the entries of the Machine configuration
selector. OS6128_UK.rom is the built-in default and is opened at every
startup even when the config OS= key names another file. Command line -fuk,
-ffr, -fsp and -fdk switch to the UK, French, Spanish and Danish 6128 files.
A machine needs at least 32 KB in the file: truncated to 16384 bytes the
emulator prints "Error initializing ROMs!" and dies, padded to 40000 bytes it
boots, so the check is a lower bound rather than an exact length. The AMSDOS
ROM is checked for presence only, an 8 KB stub boots.
Plus machines boot from a cartridge and no cartridge filename is compiled
into the binary, the three Amstrad_?4.cpr files are the system cartridges the
author ships in the same directory, which is also the default browse root of
the cartridge requester. The loader walks the RIFF chunk list and reports
"Cartridge Load Error (Header)" on a bad header and "truncated file!" when a
cb00..cb07 bank is short, each bank being 16 KB for 128 KB total.
Plugins pull three more ROMs. Multiface II reads multiface2.rom, the Hacker
plugin reads hackit400uk.rom in its UK flavour and hacker481fr.rom in its
French one, and Play2CPC reads the YM2608 ADPCM rhythm ROM, warning with
"ym2608_adpcm_rom.bin not found!" and running without it. The Windows package
omits that ROM, the Linux and Raspberry Pi packages carry it.
Expansion ROMs are user business: config keys ROM0 to ROM255 hold whatever
the user picks through the requester rooted at media/rom/, and the release
seeds that directory with third-party ROMs (ParaDOS, Protext, Maxam, Utopia,
uniDOS, SymbOS, FutureOS, Orgams, Discology and others). Disc, tape,
snapshot, Dandanator and X-MASS images are user content the same way, and the
Nova plugin regenerates its 32 KB private/Nova/nova.nvram when the file is
absent. Outside emulation the binary loads its own payload: seventeen QOI
images, fatal with "Error loading QOI file please reinstall"; seventeen WAV
drive and monitor samples, each merely reported as not found; and the
private/messages catalog holding the French, English and Spanish
translations. private/sounds/hitachi_long_seek.wav ships with every package
but appears in no path constant and is never opened.
files:
# -- Operating systems, firmware ROM + BASIC ROM joined in one 32 KB file --
- name: OS6128_UK.rom
path: "private/firmware/OS6128_UK.rom"
system: amstrad-cpc
required: true
min_size: 32768
validation: [size]
md5: b96280dc6c95a48857b4b8eb931533ae
sha1: 5977adbad3f7c1e0e082cd02fe76a700d9860c30
source_ref: "AceDL 2026-06-03: private/firmware/OS6128_UK.rom, default machine, opened at every startup"
note: >-
CPC 6128 English. Firmware v3 followed by BASIC 1.20. Absence stops
startup with "Error initializing ROMs!".
- name: OS6128_FR.rom
path: "private/firmware/OS6128_FR.rom"
system: amstrad-cpc
required: false
min_size: 32768
validation: [size]
md5: 5ee871d5600eb9b5a22989c295f902a5
sha1: 200d59076dfef36db061d6d7d21d80021cab1237
source_ref: "AceDL 2026-06-03: Machine configuration entry OS6128_FR.rom, command line -ffr"
note: "CPC 6128 French. Firmware f3 followed by BASIC 1.23."
- name: OS6128_S.rom
path: "private/firmware/OS6128_S.rom"
system: amstrad-cpc
required: false
min_size: 32768
validation: [size]
md5: 0246740371010333385665dfeb7cd0ec
sha1: 1acd01c2c03424a78b32c9440f4d890fb1104815
source_ref: "AceDL 2026-06-03: Machine configuration entry OS6128_S.rom, command line -fsp"
note: "CPC 6128 Spanish. Firmware s3 followed by BASIC 1.21."
- name: OS6128_DK.rom
path: "private/firmware/OS6128_DK.rom"
system: amstrad-cpc
required: false
min_size: 32768
validation: [size]
md5: ca1635fd992e2aa7a776b30da13467e5
sha1: a9e7ee6355730f319a37c95ca0a714212b88c3b1
source_ref: "AceDL 2026-06-03: Machine configuration entry OS6128_DK.rom, command line -fdk"
note: "CPC 6128 Danish. Firmware d3 followed by BASIC 1.20."
- name: OS464_UK.rom
path: "private/firmware/OS464_UK.rom"
system: amstrad-cpc
required: false
min_size: 32768
validation: [size]
md5: a993f85b88ac4350cf4d41554e87fe4f
sha1: 56d39c463da60968d93e58b4ba0e675829412a20
source_ref: "AceDL 2026-06-03: Machine configuration entry OS464_UK.rom"
note: "CPC 464 English. Firmware v1 followed by BASIC 1.00."
- name: OS464_FR.rom
path: "private/firmware/OS464_FR.rom"
system: amstrad-cpc
required: false
min_size: 32768
validation: [size]
md5: a588b7c9e1c142b5d8ebec65ac7713d8
sha1: c68d84f37ab9defbb19200598c24948c97c9a644
source_ref: "AceDL 2026-06-03: Machine configuration entry OS464_FR.rom"
note: >-
CPC 464 French. Firmware f1 followed by a French BASIC 1.0 that the
upstream MorphOS release does not carry.
- name: OS664_UK.rom
path: "private/firmware/OS664_UK.rom"
system: amstrad-cpc
required: false
min_size: 32768
validation: [size]
md5: 5a384a2310f472c7857888371c00ed66
sha1: 073a7665527b5bd8a148747a3947dbd3328682c8
source_ref: "AceDL 2026-06-03: Machine configuration entry OS664_UK.rom"
note: "CPC 664 English. Firmware v2 followed by BASIC 1.10."
- name: XMEM_FW_3_15_UK.rom
path: "private/firmware/XMEM_FW_3_15_UK.rom"
system: amstrad-cpc
required: false
min_size: 32768
validation: [size]
md5: 85accc17e98c79dbbdde826cbfaf4692
sha1: c7d7e5116665e4f21ae3b9bcdca2ce3685f00293
source_ref: "AceDL 2026-06-03: Machine configuration entry XMEM_FW_3_15_UK.rom"
note: "X-MEM firmware 3.15 English, followed by BASIC 1.20."
- name: XMEM_FW_3_15_FR.rom
path: "private/firmware/XMEM_FW_3_15_FR.rom"
system: amstrad-cpc
required: false
min_size: 32768
validation: [size]
md5: 046fa182f7574bde3ab97ee873f6e736
sha1: faa49a3aeb1d7e972437f6b77515455d14e2d680
source_ref: "AceDL 2026-06-03: Machine configuration entry XMEM_FW_3_15_FR.rom"
note: "X-MEM firmware 3.15 French, followed by BASIC 1.23."
# -- Disc ROM, mapped in slot 7 --
- name: Amsdos.rom
path: "private/amsdos/Amsdos.rom"
system: amstrad-cpc
required: true
size: 16384
md5: 25629dfe870d097469c217b95fdc1c95
sha1: 39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb
source_ref: "AceDL 2026-06-03: private/amsdos/Amsdos.rom, opened at every startup"
note: >-
AMSDOS disc ROM. Absence prints "Error loading AMSDOS ROM" then
"Error initializing ROMs!" and stops startup. Length is not checked.
# -- Plus system cartridges, 8 banks of 16 KB in RIFF chunks --
- name: Amstrad_v4.cpr
path: "private/firmware/Amstrad_v4.cpr"
system: amstrad-cpc
required: false
size: 131156
md5: 39b565e648172980aa552293e667070f
sha1: 405e341437fab8db477606238af0c20eca2e39ee
source_ref: "AceDL 2026-06-03: private/firmware, cartridge requester root, CPR loader"
note: "464plus/6128plus/GX-4000 system cartridge, English, firmware version 4."
- name: Amstrad_f4.cpr
path: "private/firmware/Amstrad_f4.cpr"
system: amstrad-cpc
required: false
size: 131156
md5: e7159fd674022ba05f9b347ae3cdafc6
sha1: e5aa80c501cfb435e2cba35ad92e427240394164
source_ref: "AceDL 2026-06-03: private/firmware, cartridge requester root, CPR loader"
note: "464plus/6128plus/GX-4000 system cartridge, French, firmware version 4."
- name: Amstrad_s4.cpr
path: "private/firmware/Amstrad_s4.cpr"
system: amstrad-cpc
required: false
size: 131156
md5: 6eeed3fdd4abc98a2a932da810410128
sha1: 05fb14df24b2b504a3ae463a086f02f0adcc07b9
source_ref: "AceDL 2026-06-03: private/firmware, cartridge requester root, CPR loader"
note: "464plus/6128plus/GX-4000 system cartridge, Spanish, firmware version 4."
# -- Plugin ROMs --
- name: multiface2.rom
path: "private/multiface2/multiface2.rom"
system: amstrad-cpc
required: false
size: 8192
md5: 4c9f014e91d407cc6509fad0095ab909
sha1: 1431ec628d38f000715545dd2186b684c5fe5a6f
source_ref: "AceDL 2026-06-03: private/multiface2/multiface2.rom, read when PLUGIN_MULTIFACE2=1"
note: "Romantic Robot Multiface Two ROM. The plugin loads without it."
- name: hackit400uk.rom
path: "private/hacker/hackit400uk.rom"
system: amstrad-cpc
required: false
size: 16384
md5: 9a293eaaebca601f671070ad56cb81b6
sha1: 56306e7234bcffd14b4f977d42d237c4ad9c12d5
source_ref: "AceDL 2026-06-03: private/hacker/hackit400uk.rom, read when PLUGIN_HACKER=1"
note: >-
HackIt 4.00 by Siren Software, English, UK flavour of the Hacker plugin.
- name: hacker481fr.rom
path: "private/hacker/hacker481fr.rom"
system: amstrad-cpc
required: false
size: 16384
md5: dfdd9924295f491d54f30569874287f8
sha1: 0c15d6753cf0ae2a1737b6e857e8e82ee135a697
source_ref: "AceDL 2026-06-03: private/hacker/hacker481fr.rom, read when PLUGIN_HACKER=1 and PLUGIN_HACKERFR=1"
note: >-
Le Hackeur 4.81, the French edition of the same Siren Software ROM,
French flavour of the Hacker plugin.
- name: ym2608_adpcm_rom.bin
path: "private/sounds/ym2608_adpcm_rom.bin"
system: amstrad-cpc
required: false
size: 8192
md5: 8740932cda05e518a9955f1d08d6786f
sha1: 50b6c3e288eaa12ad275d4f323267bb72b0445df
source_ref: "AceDL 2026-06-03: private/sounds/ym2608_adpcm_rom.bin, read when PLUGIN_PLAY2CPC=1"
note: >-
YM2608 internal ADPCM rhythm ROM used by the Play2CPC cartridge sound.
Missing file prints "Warning: ym2608_adpcm_rom.bin not found!" and the
plugin keeps running. Shipped in the Linux and Raspberry Pi packages,
absent from the Windows package.
+795
View File
@@ -0,0 +1,795 @@
emulator: AdvanceMAME
type: standalone
core_classification: enhanced_fork
source: "https://github.com/amadvance/advancemame"
upstream: "https://www.mamedev.org"
profiled_date: "2026-08-08"
source_commit: "0f6a7677ad42b4dfdfa36b046f74bef5238d5837"
core_version: "5.0"
mame_version: "0.106"
display_name: "Arcade (AdvanceMAME)"
mode: standalone
cores:
- advancemame
- advmame
systems:
- snk-neogeo-mvs
- igs-pgm
- sega-stv
- sega-megaplay
- sega-megatech
- deco-cassette
- nintendo-playch10
- nintendo-nss
- super-kaneko-nova
- konami-gx
- konami-gv
- century-cvs
- capcom-zn1
- capcom-zn2
- tecmo-tps
- taito-fx1
- eighting-zn1
- atlus-zn1
- atari-zn1
- acclaim-zn1
- hyper-neogeo64
- arcadia-systems
- exidy-maxaflex
- brezzasoft-crystal
- imax-macs
notes: |
MAME 0.106 core (src/version.c:12) carrying its own video layer and driver
backports from later MAME releases. Twenty-six BIOS root sets, each a
NOT_A_DRIVER entry (src/driver.h:180) registered in src/mamedriv.c.
src/drivers/macs.c:613 declares a twenty-seventh, macs2bios, that
src/mamedriv.c never registers, so no build reaches it and the five MACS
games all parent to macsbios. The set is unchanged between release 5.0 and
the profiled commit.
ROM archives are searched under dir_rom, defaulting to $home/rom:$data/rom
on Linux and Mac OS X and to rom on DOS and Windows, in the forms
DIR/GAME/ROM.EXT, DIR/GAME.zip/ROM.EXT and DIR/GAME/ROM.zip/ROM
(advance/osd/fileio.c:74, doc/advmame.d:680,699-701). $home is $ADVANCE, or
$HOME/.advance when that variable is unset (doc/advmame.d:503-509). Each ROM
is looked up along the parent chain (src/romload.c:481-483), so a child game
reads its BIOS from the root set's own archive, which has to sit beside the
game archive. Inside an archive a member is matched by name, then by its
printable CRC32 (src/fileio.c:1213-1223).
No BIOS ROM carries ROM_OPTIONAL or a no-good-dump marker, so a missing one
counts as an error rather than a warning and aborts with "required files are
missing, the game cannot be run" (src/romload.c:248-268,385-388). Loaded
ROMs are checked for exact length and against the declared CRC32 and SHA1,
both mismatches being warnings (src/romload.c:327-363).
Where a system offers several BIOS revisions, SYSTEM_BIOS_ADD names them and
misc_bios selects one, entry 0 being the default (doc/advmame.d:2086-2094).
Only the selected revision is read; the others share the archive as
alternatives. Neo Geo lists MVS revisions alone, the AES, Universe and debug
entries being commented out (src/drivers/neogeo.c:1420-1423,1439-1442).
The four support files sit directly in $home or $data
(advance/osd/fileio.c:81,88-90, advance/linux/file.c:249-256). Samples and
artwork are per-game archives under dir_sample and dir_artwork, ZIP only,
named after the driver: WAV members for samples
(src/sound/samples.c:198-200), a <driver>.art layout and its PNGs for
artwork (src/artwork.c:2119,2224).
misc_historyfile and misc_infofile were retired and are discarded when found
in a configuration file (advance/osd/emu.c:517-518), leaving history.dat and
mameinfo.dat unread. options.controller is pinned to zero
(advance/osd/glue.c:708), so no controller file is read either. blitmax.dat,
startup.dat and help.dat are compiled into the binary
(advance/osd/video.c:1787,1795, advance/osd/ui.c:1575).
files:
# Support files ($home or $data)
- name: hiscore.dat
required: false
category: game_data
source_ref: "src/hiscore.c:28,313"
note: >-
High score definitions, selected by misc_hiscorefile
(advance/osd/glue.c:800,3293). Absent, hiscore_open matches no entry and
no high score is restored or saved.
- name: cheat.dat
required: false
category: game_data
source_ref: "src/cheat.c:8682,8751"
note: >-
Cheat definitions, selected by misc_cheatfile
(advance/osd/glue.c:799,3291) and read only when misc_cheat is on, which
it is not by default. Absent, the cheat menu reads "cheat database not
found" (src/cheat.c:2536).
- name: event.dat
required: false
category: game_data
source_ref: "advance/osd/safequit.c:165-180,260"
note: >-
Event and safequit definitions, selected by misc_eventfile and read
straight from $home then $data rather than through the file type table.
Absent, the exit menu always prompts instead of checking coin and play
state.
- name: english.lng
required: false
category: game_data
source_ref: "advance/osd/glue.c:716,3290"
note: >-
User interface translation, extension lng
(src/fileio.c:941), selected by misc_languagefile. Absent, uistring_init
keeps the built-in English strings (src/ui_text.c:263-265).
# SNK Neo Geo MVS
- name: neogeo.zip
required: true
category: bios_zip
system: snk-neogeo-mvs
source_ref: "src/drivers/neogeo.c:7939-7953,8553"
note: >-
Eight MVS BIOS variants selected with misc_bios (euro, euro-s1, us,
us-e, asia, japan, japan-s2, japan-s1), euro by default. sm1.sm1,
000-lo.lo and sfix.sfx are loaded whichever variant is selected.
validation: [size, crc32, sha1]
contents:
- name: sp-s2.sp1
description: Europe MVS (Ver. 2)
size: 131072
crc32: "9036d879"
sha1: "4f5ed7105b7128794654ce82b51723e16e389543"
- name: sp-s.sp1
description: Europe MVS (Ver. 1)
size: 131072
crc32: "c7f2fa45"
sha1: "09576ff20b4d6b365e78e6a5698ea450262697cd"
- name: usa_2slt.bin
description: US MVS (Ver. 2)
size: 131072
crc32: "e72943de"
sha1: "5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb"
- name: sp-e.sp1
description: US MVS (Ver. 1)
size: 131072
crc32: "2723a5b5"
sha1: "5dbff7531cf04886cde3ef022fb5ca687573dcb8"
- name: asia-s3.rom
description: Asia MVS (Ver. 3)
size: 131072
crc32: "91b64be3"
sha1: "720a3e20d26818632aedf2c2fd16c54f213543e1"
- name: vs-bios.rom
description: Japan MVS (Ver. 3)
size: 131072
crc32: "f0e8f27d"
sha1: "ecf01eda815909f1facec62abf3594eaa8d11075"
- name: sp-j2.rom
description: Japan MVS (Ver. 2)
size: 131072
crc32: "acede59c"
sha1: "b6f97acd282fd7e94d9426078a90f059b5e9dd91"
- name: sp1.jipan.1024
description: Japan MVS (Ver. 1)
size: 131072
crc32: "9fb0abe4"
sha1: "18a987ce2229df79a8cf6a84f968f0e42ce4e59d"
- name: sm1.sm1
description: Z80 sound BIOS
size: 131072
crc32: "97cf998b"
sha1: "977387a7c76ef9b21d0b01fa69830e949a9a9626"
- name: 000-lo.lo
description: Y zoom control
size: 65536
crc32: "e09e253c"
sha1: "2b1c719531dac9bb503f22644e6e4236b91e7cfc"
- name: sfix.sfx
description: fix layer tiles
size: 131072
crc32: "354029fc"
sha1: "4ae4bf23b4c2acff875775d4cbff5583893ce2a1"
# IGS PGM
- name: pgm.zip
required: true
category: bios_zip
system: igs-pgm
source_ref: "src/drivers/pgm.c:3708-3719,5487"
validation: [size, crc32, sha1]
contents:
- name: pgm_p01s.rom
description: 68000 BIOS
size: 131072
crc32: "e42b166e"
sha1: "2a9df9ec746b14b74fae48b1a438da14973702ea"
- name: pgm_t01s.rom
description: text layer tiles
size: 2097152
crc32: "1a7123a0"
sha1: "cc567f577bfbf45427b54d6695b11b74f2578af3"
- name: pgm_m01s.rom
description: samples
size: 2097152
crc32: "45ae7159"
sha1: "d3ed3ff3464557fd0df6b069b2e431528b0ebfa8"
# Sega ST-V
- name: stvbios.zip
required: true
category: bios_zip
system: sega-stv
source_ref: "src/drivers/stv.c:3092-3094,4026"
note: >-
Nine BIOS variants selected with misc_bios (japan, japana, us, japanb,
taiwan, europe, unknown, dev1061, japanc), japan by default.
validation: [size, crc32, sha1]
contents:
- name: epr19730.ic8
description: Japan (bios epr19730)
size: 524288
crc32: "d0e0889d"
sha1: "fae53107c894e0c41c49e191dbe706c9cd6e50bd"
- name: mp17951a.s
description: Japan (bios mp17951a)
size: 524288
crc32: "2672f9d8"
sha1: "63cf4a6432f6c87952f9cf3ab0f977aed2367303"
- name: mp17952a.s
description: USA (bios mp17952a)
size: 524288
crc32: "d1be2adf"
sha1: "eaf1c3e5d602e1139d2090a78d7e19f04f916794"
- name: 20091.bin
description: Japan (bios 20091)
size: 524288
crc32: "59ed40f4"
sha1: "eff0f54c70bce05ff3a289bf30b1027e1c8cd117"
- name: mp17953a.ic8
description: Taiwan (bios mp17953a)
size: 524288
crc32: "a4c47570"
sha1: "9efc73717ec8a13417e65c54344ded9fc25bf5ef"
- name: mp17954a.s
description: Europe (bios mp17954a)
size: 524288
crc32: "f7722da3"
sha1: "af79cff317e5b57d49e463af16a9f616ed1eee08"
- name: stv110.bin
description: Unknown (debug?)
size: 524288
crc32: "3dfeda92"
sha1: "8eb33192a57df5f3a1dfb57263054867c6b2db6d"
- name: stv1061.bin
description: Development (bios 1.061)
size: 524288
crc32: "728dbca3"
sha1: "0ed2030177f0aa8285645c395ae9ad9f568ab1d6"
- name: epr-17740.bin
description: Japan (bios epr17740)
size: 524288
crc32: "5c5aa63d"
sha1: "06860d96923b81afbc21e0ad32ee19487d8ff6e7"
# Sega Mega Play
- name: megaplay.zip
required: true
category: bios_zip
system: sega-megaplay
source_ref: "src/drivers/megaplay.c:735-738,933"
note: >-
Two BIOS variants selected with misc_bios (ver1, ver2), ver1 by
default.
validation: [size, crc32, sha1]
contents:
- name: ep15294.ic2
description: Mega Play BIOS (Ver. 1)
size: 131072
crc32: "aa8dc2d8"
sha1: "96771ad7b79dc9c83a1594243250d65052d23176"
- name: epr-a15294.ic2
description: Mega Play BIOS (Ver. 2)
size: 131072
crc32: "f97c68aa"
sha1: "bcabc879950bca1ced11c550a484e697ec5706b2"
# Sega Mega-Tech
- name: megatech.zip
required: true
category: bios_zip
system: sega-megatech
source_ref: "src/drivers/megatech.c:454-457,866"
validation: [size, crc32, sha1]
contents:
- name: epr12664.20
size: 32768
crc32: "f71e9526"
sha1: "1c7887541d02c41426992d17f8e3db9e03975953"
# DECO Cassette System
- name: decocass.zip
required: true
category: bios_zip
system: deco-cassette
source_ref: "src/drivers/decocass.c:727-730,1213"
note: >-
Two main CPU BIOS variants selected with misc_bios (bios0, bios1),
bios0 by default. The audio CPU, MCU and PROMs are loaded whichever
variant is selected.
validation: [size, crc32, sha1]
contents:
- name: rms8.cpu
description: main CPU BIOS (bios0)
size: 4096
crc32: "23d929b7"
sha1: "063f83020ba3d6f43ab8471f95ca919767b93aa4"
- name: dsp3.p0b
description: main CPU BIOS (bios1)
size: 2048
crc32: "b67a91d9"
sha1: "681c040be0f0ed1ba0a50161b36d0ad8e1c8c5cb"
- name: dsp3.p1b
description: main CPU BIOS (bios1)
size: 2048
crc32: "3bfff5f3"
sha1: "4e9437cb1b76d64da6b37f01bd6e879fb399e8ce"
- name: rms8.snd
description: audio CPU
size: 2048
crc32: "b66b2c2a"
sha1: "0097f38beb4872e735e560148052e258a26b08fd"
- name: cass8041.bin
description: MCU
size: 1024
crc32: "a6df18fd"
sha1: "1f9ea47e372d31767c936c15852b43df2b0ee8ff"
- name: dsp8.3m
description: PROM
size: 32
crc32: "238fdb40"
sha1: "b88e8fabb82092105c3828154608ea067acbf2e5"
- name: dsp8.10d
description: PROM
size: 32
crc32: "3b5836b4"
sha1: "b630bb277d9ec09d46ef26b944014dd6165b35d8"
- name: rms8.j3
description: DRAM banking and timing PROM
size: 32
crc32: "51eef657"
sha1: "eaedce5caf55624ad6ae706aedf82c5717c60f1f"
# Nintendo PlayChoice-10
- name: playch10.zip
required: true
category: bios_zip
system: nintendo-playch10
source_ref: "src/drivers/playch10.c:1648-1651,1659"
note: >-
Two BIOS variants selected with misc_bios (dual, single), dual by
default. Tiles and PROMs are loaded whichever variant is selected.
validation: [size, crc32, sha1]
contents:
- name: pch1-c.8t
description: Dual Monitor Version
size: 16384
crc32: "d52fa07a"
sha1: "55cabf52ae10c050c2229081a80b9fe5454ab8c5"
- name: pck1-c.8t
description: Single Monitor Version
size: 16384
crc32: "503ee8b1"
sha1: "3bd20bc71cac742d1b8c1430a6426d0a19db7ad0"
- name: pch1-c.8p
description: BIOS tiles
size: 8192
crc32: "30c15e23"
sha1: "69166afdb2fe827c7f1919cdf4197caccbd961fa"
- name: pch1-c.8m
description: BIOS tiles
size: 8192
crc32: "c1232eee"
sha1: "beaf9fa2d091a3c7f70c51e966d885b1f9f0935f"
- name: pch1-c.8k
description: BIOS tiles
size: 8192
crc32: "9acffb30"
sha1: "b814f10ef23f2ca445fabafcbf7f25e2d454ba8c"
- name: pch1-c.6f
description: PROM
size: 256
crc32: "e5414ca3"
sha1: "d2878411cda84ffe0afb2e538a67457f51bebffb"
- name: pch1-c.6e
description: PROM
size: 256
crc32: "a2625c6e"
sha1: "a448b47c9289902e26a3d3c4c7d5a7968c385e81"
- name: pch1-c.6d
description: PROM
size: 256
crc32: "1213ebd4"
sha1: "0ad386fc3eab5e53c0288ad1de33639a9e461b7c"
# Nintendo Super System
- name: nss.zip
required: true
category: bios_zip
system: nintendo-nss
source_ref: "src/drivers/nss.c:524-526,657"
validation: [size, crc32, sha1]
contents:
- name: spc700.rom
description: SPC700 IPL ROM
size: 64
crc32: "44bb3a40"
sha1: "97e352553e94242ae823547cd853eecda55c20f0"
- name: dsp1data.bin
description: DSP1 data ROM
size: 2048
crc32: "4b02d66d"
sha1: "1534f4403d2a0f68ba6e35186fe7595d33de34b1"
- name: nss-c.dat
description: BIOS CPU
size: 32768
crc32: "a8e202b3"
sha1: "b7afcfe4f5cf15df53452dc04be81929ced1efb2"
- name: nss-ic14.02
description: BIOS CPU
size: 32768
crc32: "e06cb58f"
sha1: "62f507e91a2797919a78d627af53f029c7d81477"
# Super Kaneko Nova System
- name: skns.zip
required: true
category: bios_zip
system: super-kaneko-nova
source_ref: "src/drivers/suprnova.c:1269-1276,1744"
note: >-
Five region BIOS ROMs, all loaded into the same region.
validation: [size, crc32, sha1]
contents:
- name: sknsj1.u10
description: Japan
size: 524288
crc32: "7e2b836c"
sha1: "92c5a7a2472496028bff0e5980d41dd294f42144"
- name: sknse1.u10
description: Europe
size: 524288
crc32: "e2b9d7d1"
sha1: "b530a3bb9dedc8cfafcba9f1f10277590be04a15"
- name: sknsa1.u10
description: Asia
size: 524288
crc32: "745e5212"
sha1: "caba649ab2d83b2d7e007eecee0fc582c019df38"
- name: sknsu1.u10
description: USA
size: 524288
crc32: "384d21ec"
sha1: "a27e8a18099d9cea64fa32db28d01101c2a78815"
- name: sknsk1.u10
description: Korea
size: 524288
crc32: "ff1c9f79"
sha1: "a51e598d43e76d37da69b1f094c111273bdfc94a"
# Konami System GX
- name: konamigx.zip
required: true
category: bios_zip
system: konami-gx
source_ref: "src/drivers/konamigx.c:2138-2141,3485"
validation: [size, crc32, sha1]
contents:
- name: 300a01.34k
size: 131072
crc32: "d5fa95f5"
sha1: "c483aa98ff8ef40cdac359c19ad23fea5ecc1906"
# Konami Baby Phoenix/GV System
- name: konamigv.zip
required: true
category: bios_zip
system: konami-gv
source_ref: "src/drivers/konamigv.c:972-976,1058"
validation: [size, crc32, sha1]
contents:
- name: 999a01.7e
size: 524288
crc32: "ad498d2d"
sha1: "02a82a2fe1fba0404517c3602324bfa64e23e478"
# Century Electronics CVS
- name: cvs.zip
required: true
category: bios_zip
system: century-cvs
source_ref: "src/drivers/cvs.c:420-430,1401"
validation: [size, crc32, sha1]
contents:
- name: 5b.bin
description: sound CPU
size: 2048
crc32: "f055a624"
sha1: "5dfe89d7271092e665cdd5cd59d15a2b70f92f43"
- name: 82s185.10h
description: PROM
size: 2048
crc32: "c205bca6"
sha1: "ec9bd220e75f7b067ede6139763ef8aca0fb7a29"
- name: 82s123.10k
description: PROM
size: 32
crc32: "b5221cec"
sha1: "71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0"
# Capcom ZN1
- name: cpzn1.zip
required: true
category: bios_zip
system: capcom-zn1
source_ref: "src/drivers/zn.c:3127-3129,4513"
validation: [size, crc32, sha1]
contents:
- name: coh-1000c.353
size: 524288
crc32: "50033af6"
sha1: "486d92ff6c7f1e54f8e0ef41cd9116eca0e10e1a"
# Capcom ZN2
- name: cpzn2.zip
required: true
category: bios_zip
system: capcom-zn2
source_ref: "src/drivers/zn.c:3362-3364,4531"
validation: [size, crc32, sha1]
contents:
- name: coh-3002c.353
size: 524288
crc32: "e860ea8b"
sha1: "66e7e1d4e426466b8f48a2ba055a91b475569504"
# Tecmo TPS
- name: tps.zip
required: true
category: bios_zip
system: tecmo-tps
source_ref: "src/drivers/zn.c:3805-3807,4578"
validation: [size, crc32, sha1]
contents:
- name: coh-1002m.353
size: 524288
crc32: "69ffbcb4"
sha1: "03eb2febfab3fcde716defff291babd9392de965"
# Taito FX1
- name: taitofx1.zip
required: true
category: bios_zip
system: taito-fx1
source_ref: "src/drivers/zn.c:4040-4042,4603"
validation: [size, crc32, sha1]
contents:
- name: coh-1000t.353
size: 524288
crc32: "e3f23b6e"
sha1: "e18907cf8c6ba54d96edba0a9a00487a90219e0d"
# Eighting/Raizing PS Arcade 95
- name: psarc95.zip
required: true
category: bios_zip
system: eighting-zn1
source_ref: "src/drivers/zn.c:4312-4314,4630"
validation: [size, crc32, sha1]
contents:
- name: coh-1002e.353
size: 524288
crc32: "910f3a8b"
sha1: "cd68532967a25f476a6d73473ec6b6f4df2e1689"
# Atlus PSX
- name: atluspsx.zip
required: true
category: bios_zip
system: atlus-zn1
source_ref: "src/drivers/zn.c:4483-4485,4642"
validation: [size, crc32, sha1]
contents:
- name: coh-1001l.353
size: 524288
crc32: "6721146b"
sha1: "9511d24bfe25eb180fb2db0835b131cb4a12730e"
# Atari PSX
- name: atpsx.zip
required: true
category: bios_zip
system: atari-zn1
source_ref: "src/drivers/zn.c:4398-4400,4558"
validation: [size, crc32, sha1]
contents:
- name: coh-1000w.353
size: 524288
crc32: "45e8a4b4"
sha1: "815488d8563c85f97fbc3384ff21f08e4c88b7b7"
# Acclaim PSX
- name: acpsx.zip
required: true
category: bios_zip
system: acclaim-zn1
source_ref: "src/drivers/zn.c:4421-4423,4567"
validation: [size, crc32, sha1]
contents:
- name: coh-1000a.353
size: 524288
crc32: "8d8d0764"
sha1: "7ee83d317190bb1cef2f8f01c81eaaae47150ebb"
# SNK Hyper Neo Geo 64
- name: hng64.zip
required: true
category: bios_zip
system: hyper-neogeo64
source_ref: "src/drivers/hng64.c:1425-1431,1718"
validation: [size, crc32, sha1]
contents:
- name: brom1.bin
description: R4300 BIOS
size: 524288
crc32: "a30dd3de"
sha1: "3e2fd0a56214e6f5dcb93687e409af13d065ea30"
- name: from1.bin
description: unused BIOS ROM
size: 524288
crc32: "6b933005"
sha1: "e992747f46c48b66e5509fe0adf19c91250b00c7"
- name: rom1.bin
description: unused BIOS ROM
size: 130866
crc32: "4a6832dc"
sha1: "ae504f7733c2f40450157cd1d3b85bc83fac8569"
# Arcadia Systems
- name: ar_bios.zip
required: true
category: bios_zip
system: arcadia-systems
source_ref: "src/drivers/arcadia.c:352-354,717"
note: >-
Three BIOS variants selected with misc_bios (onep300, onep211,
tenp211), onep300 by default. kick12.rom is loaded whichever variant
is selected.
validation: [size, crc32, sha1]
contents:
- name: kick12.rom
description: Amiga Kickstart 1.2
size: 262144
crc32: "a6ce1636"
sha1: "11f9e62cf299f72184835b7b2a70a16333fc0d88"
- name: scpav3_0.1h
description: OnePlay 3.00
size: 65536
crc32: "2d8e1a06"
sha1: "be187f34624aeda110017c4a09242f7c00ef56a4"
- name: scpav3_0.1l
description: OnePlay 3.00
size: 65536
crc32: "e4f38fab"
sha1: "01c2eb5965070893be6734eb1372576727716476"
- name: scpa211h
description: OnePlay 2.11
size: 65536
crc32: "be9dbdc5"
sha1: "1554da09f051ec53937d65d4e451de51bc0c69e5"
- name: scpa211l
description: OnePlay 2.11
size: 65536
crc32: "95b84504"
sha1: "99999fc40909001b37aa1b543918118becc81800"
- name: gcp-1-hi
description: TenPlay 2.11
size: 65536
crc32: "67d44523"
sha1: "f3e3699132cdf741518accb890c04d17374c4049"
- name: gcp-1-lo
description: TenPlay 2.11
size: 65536
crc32: "65d9b9cf"
sha1: "5c60a0dd4a0a7d9b938ce6b0446a6ad2ecaf07ec"
- name: gcp-2-hi
description: TenPlay 2.11
size: 65536
crc32: "1d7594ae"
sha1: "6173bbfecf18d7d9ee6bc2b6753ca9d42fabd781"
- name: gcp-2-lo
description: TenPlay 2.11
size: 65536
crc32: "e776198d"
sha1: "694ca4cc99ed84a95d18201c94a3332f8599654f"
- name: gcp-3-hi
description: TenPlay 2.11
size: 65536
crc32: "3e7364be"
sha1: "26e10d0ddc031a891138db36ce4f1732722e6847"
- name: gcp-3-lo
description: TenPlay 2.11
size: 65536
crc32: "87229e0d"
sha1: "0b18544801e529f954b9e03226bd2e5475f36351"
# Exidy Max-A-Flex
- name: maxaflex.zip
required: true
category: bios_zip
system: exidy-maxaflex
source_ref: "src/drivers/maxaflex.c:518-527,583"
validation: [size, crc32, sha1]
contents:
- name: atarixl.rom
description: main CPU ROM
size: 16384
crc32: "1f9cd270"
sha1: "ae4f523ba08b6fd59f3cae515a2b2410bbd98f55"
- name: maxaflex.uc
description: microcontroller
size: 2048
crc32: "fe9cf53c"
sha1: "4b02bc2f0c8a1eab799814fac82d5812c0160206"
- name: maxprom.prm
description: PROM
size: 512
crc32: "edf5c950"
sha1: "9ad046ea41a61585dd8d2f2d4167a3cc39d2928f"
# Brezzasoft Crystal System
- name: crysbios.zip
required: true
category: bios_zip
system: brezzasoft-crystal
source_ref: "src/drivers/crystal.c:854-857,923"
validation: [size, crc32, sha1]
contents:
- name: mx27l1000.u14
size: 131072
crc32: "beff39a9"
sha1: "b6f6dda58d9c82273f9422c1bd623411e58982cb"
# I'Max Multi Amenity Cassette System
- name: macsbios.zip
required: true
category: bios_zip
system: imax-macs
source_ref: "src/drivers/macs.c:394-402,612"
validation: [size, crc32, sha1]
contents:
- name: macsos_l.u43
description: BIOS low byte
size: 524288
crc32: "0b5aed5e"
sha1: "042e705017ee34656e2c6af45825bb2dd3447747"
- name: macsos_h.u44
description: BIOS high byte
size: 524288
crc32: "538b68e4"
sha1: "a0534147791e94e726f49451d0e95671ae0a87d5"
# Barcrest MPU4 Video
- name: bctvidbs.zip
required: true
category: bios_zip
source_ref: "src/drivers/mpu4.c:2014-2017,2175"
validation: [size, crc32, sha1]
contents:
- name: vid.p1
size: 65536
crc32: "e996bc18"
sha1: "49798165640627eb31024319353da04380787b10"
+5 -5
View File
@@ -68,10 +68,10 @@ files:
path: nand/private/movable.sed
system: nintendo-3ds
required: false
size: 320
size: [288, 320]
validation: [size, signature]
note: "console-unique key seed"
source_ref: "src/core/hw/unique_data.cpp:170-200, src/core/hw/unique_data.cpp:217"
note: "console-unique key seed; 288 bytes without the AES MAC block, 320 with it"
source_ref: "src/core/hw/unique_data.cpp:170-200, src/core/hw/unique_data.cpp:217, src/core/hw/unique_data.h:103-133"
- name: SecureInfo_A
path: nand/rw/sys/SecureInfo_A
@@ -86,7 +86,7 @@ files:
path: nand/rw/sys/LocalFriendCodeSeed_B
system: nintendo-3ds
required: false
size: 284
size: 272
validation: [size, signature]
note: "friend code generation seed"
source_ref: "src/core/hw/unique_data.cpp:94-123, src/core/hw/unique_data.cpp:209"
source_ref: "src/core/hw/unique_data.cpp:94-123, src/core/hw/unique_data.cpp:209, src/core/hw/unique_data.h:76"
+128
View File
@@ -0,0 +1,128 @@
emulator: AzaharPlus
type: standalone
core_classification: community_fork
source: "https://github.com/AzaharPlus/AzaharPlus"
upstream: "https://github.com/AzaharPlus/AzaharPlus"
profiled_date: "2026-08-08"
source_commit: "18775d91a5c70be33ec828a32d9007384c4fad98"
core_version: "2126.0-A"
display_name: "Nintendo - 3DS (AzaharPlus)"
cores:
- azaharplus
systems:
- nintendo-3ds
mode: standalone
notes: |
Fork of Azahar. Data dir: azaharplus-emu (AzaharPlus on Windows and macOS),
with citra-emu and lime3ds-emu probed as legacy locations.
ref: src/common/common_paths.h:27-49
InitKeys reads three key sources in order: boot9.bin, keys.txt, aes_keys.txt.
ref: src/core/hw/aes/key.cpp:617-633
keys.txt has an AES-encrypted key blob compiled into the binary, used when the
file is absent. ENABLE_BUILTIN_KEYBLOB defaults to ON.
ref: src/core/hw/aes/key.cpp:485-613, CMakeLists.txt:153
1861 title seeds are compiled in and loaded before seeddb.bin is read.
ref: src/core/file_sys/seed_db.cpp:52-54, src/core/file_sys/seed_db.cpp:220
System archives (shared font, Mii data, country list, bad word list) have
open-source replacements embedded in the binary, and ClCertA falls back to an
embedded certificate and key pair.
ref: src/core/file_sys/archive_ncch.cpp:174-203,
src/core/hle/service/http/http_c.cpp:2107-2133
otp.bin, movable.sed, SecureInfo_A and LocalFriendCodeSeed_B are replaced by
embedded dummy data when enable_required_online_lle_modules is set. That
setting defaults to false, and every loader returns a not-found status without
it.
ref: src/common/settings.h:492-493
System titles are downloaded and installed in-app from the Nintendo CDN, so
the NAND title tree is not user-supplied.
ref: src/core/nus_download.cpp:13, src/core/hle/service/am/am.cpp:1220-1243
sector0x96.bin is defined but read by no code path.
ref: src/common/common_paths.h:88
mcu.dat, mac.txt, digests.txt, cecIds.txt and http_hle_replace_rules.txt live
in sysdata but hold per-installation state the emulator writes itself.
files:
- name: keys.txt
path: sysdata/keys.txt
system: nintendo-3ds
required: false
hle_fallback: true
note: "AES key slots, common keys and NFC secrets; embedded encrypted blob used if missing"
source_ref: "src/core/hw/aes/key.cpp:227-366, src/core/hw/aes/key.cpp:475-615"
- name: aes_keys.txt
path: sysdata/aes_keys.txt
system: nintendo-3ds
required: false
note: "legacy keyfile format, parsed without section markers"
source_ref: "src/core/hw/aes/key.cpp:368-471, src/common/common_paths.h:86"
- name: boot9.bin
path: sysdata/boot9.bin
system: nintendo-3ds
required: false
size: 65536
validation: [size]
note: "bootrom key section read at offset 55760, filling 80 key slots"
source_ref: "src/core/hw/aes/key.cpp:156-225, src/common/common_paths.h:87"
- name: shared_font.bin
path: sysdata/shared_font.bin
system: nintendo-3ds
required: false
hle_fallback: true
note: "legacy path, tried after the shared font system archive"
source_ref: "src/core/hle/service/apt/apt.cpp:278-294, src/core/hle/service/apt/apt.cpp:305"
- name: seeddb.bin
path: sysdata/seeddb.bin
system: nintendo-3ds
required: false
hle_fallback: true
note: "game seed database for 9.6+ titles; written out from the embedded seeds if absent"
source_ref: "src/core/file_sys/seed_db.cpp:52-103"
- name: otp.bin
path: sysdata/otp.bin
system: nintendo-3ds
required: false
size: 256
validation: [size, crypto]
note: "console-unique OTP, AES-CBC decrypted then checked against the OTP magic"
source_ref: "src/core/file_sys/otp.cpp:35-80, src/core/hw/unique_data.cpp:224-275"
- name: movable.sed
path: nand/private/movable.sed
system: nintendo-3ds
required: false
size: [288, 320]
validation: [size, signature]
note: "console-unique key seed; 288 bytes without the AES MAC block, 320 with it"
source_ref: "src/core/hw/unique_data.cpp:277-319, src/core/hw/unique_data.h:105-135"
- name: SecureInfo_A
path: nand/rw/sys/SecureInfo_A
system: nintendo-3ds
required: false
size: 273
validation: [size, signature]
note: "console serial and region; a failed signature is retried against every region"
source_ref: "src/core/hw/unique_data.cpp:123-181, src/core/hw/unique_data.h:59"
- name: LocalFriendCodeSeed_B
path: nand/rw/sys/LocalFriendCodeSeed_B
system: nintendo-3ds
required: false
size: 272
validation: [size, signature]
note: "friend code generation seed"
source_ref: "src/core/hw/unique_data.cpp:183-222, src/core/hw/unique_data.h:78"
+72
View File
@@ -0,0 +1,72 @@
emulator: Basilisk II
type: standalone
source: "https://github.com/cebix/macemu"
upstream: "https://github.com/cebix/macemu"
profiled_date: "2026-08-08"
source_commit: "96e512bd6376e78a2869f16dcc8a9028bce5ee72"
core_version: "1.0"
display_name: "Apple - Macintosh 68k (Basilisk II)"
cores:
- basiliskii
systems:
- apple-macintosh
- macintosh-ii
mode: standalone
notes: |
68k Macintosh emulator living in the macemu tree alongside SheepShaver.
Emulates a Mac Classic or a Mac II series machine depending on the ROM
supplied. Default model ID is 5 (Mac IIci) on a 68030
(prefs_items.cpp:88-89).
ROM loading (main_unix.cpp:681-702, main_windows.cpp:367,
main_macosx.mm:431): the path comes from the "rom" prefs item
(prefs_items.cpp:51) and falls back to a file named ROM in the working
directory (main_unix.cpp:109). A missing or unreadable file raises
STR_NO_ROM_FILE_ERR and calls QuitEmulator.
Two gates run on the image. main_unix.cpp:692 accepts only sizes of 64K,
128K, 256K, 512K or 1024K. CheckROM (rom_patches.cpp:830-842), called from
InitAll at main.cpp:67, then reads the version word at ROM offset 8 and
accepts 0x067c (32-bit clean Mac II, 512K/1MB) under real and direct
addressing, adding 0x0276 (SE/Classic, 256K/512K) under banks addressing.
configure.ac:61-68,1440-1477 defaults --enable-addressing to fastest,
which resolves to real or direct, so a stock build takes 32-bit clean ROMs
only. 0x0000 (Mac 128K), 0x0075 (Mac Plus) and 0x0178 (non 32-bit clean
Mac II) are refused by every addressing mode. PatchROM
(rom_patches.cpp:1834-1852) then rewrites the image in memory, injecting
replacement .Sony, .Disk, .AppleCD and serial drivers. Nothing is
checksummed: print_rom_info (rom_patches.cpp:298-310) prints the ROM header
checksum without comparing it against anything.
Mac OS itself and the games live in disk images referenced by the disk,
floppy and cdrom prefs items, supplied by the user.
Four files are installed by the emulator's own Makefile into
$(datadir)/BasiliskII (Makefile.in:25,155-157) and read from there:
keycodes X keycode to Mac keycode table, read only when the
keycodes prefs item is true, which defaults to false
(prefs_unix.cpp:119). Overridable with keycodefile.
video_sdl2.cpp:94-97,1231, video_x.cpp:1492
BasiliskII_keycodes tried when keycodes is absent (video_sdl2.cpp:98,
1232), shipped in src/MacOSX/
fbdevices frame buffer device table, read by the X11 backend
built with --enable-fbdev-dga. Overridable with
fbdevicefile. video_x.cpp:1152,1186
tunconfig script run to configure the tunN interface for
ethernet. Overridable with etherconfig.
ether_unix.cpp:108,381
The preferences file (.basilisk_ii_prefs, prefs_unix.cpp:50) and the PRAM
file (.basilisk_ii_xpram on Unix, BasiliskII_xpram.dat on Windows,
xpram_unix.cpp:32, xpram_windows.cpp:33) are written by the emulator when
absent.
files:
- name: ROM
required: true
min_size: 524288
max_size: 1048576
validation: [size]
description: "Macintosh ROM image, 512 KB SE/Classic or 512 KB / 1 MB 32-bit clean Mac II"
source_ref: "src/Unix/main_unix.cpp:109,685,692, src/rom_patches.cpp:830-842, src/main.cpp:67"
+81
View File
@@ -0,0 +1,81 @@
emulator: ColEm
type: standalone
core_classification: other
source: "https://fms.komkon.org/ColEm/"
upstream: "https://fms.komkon.org/ColEm/"
profiled_date: "2026-08-08"
core_version: "5.6"
display_name: "Coleco - ColecoVision / Adam (ColEm)"
cores:
- colem
systems:
- coleco-colecovision
- coleco-adam
mode: standalone
notes: |
ColecoVision and Coleco Adam emulator by Marat Fayzullin, published as
versioned archives on a personal site rather than a repository. The 5.6
source archive carries the portable core (ColEm/, EMULib/, Z80/) and the
Unix port; Windows and Android builds are binary-only.
Three system ROMs are read by StartColeco (Coleco.c:266-300) before the
hardware reset and before the cartridge. Lookup runs in the directory
named by -home, which main() defaults to the directory holding the
executable (ColEm.c:66-72), so the ROMs sit next to the binary the way the
official archives ship them. Each name is passed to fopen as written, in
uppercase.
COLECO.ROM is fatal. A failed open or a file yielding fewer than 8192
bytes sets the error string, and StartColeco returns before ResetColeco
and RunZ80 (Coleco.c:306). It is loaded in both modes and maps at 0000h
on the ColecoVision and under the Super Game Module (Coleco.c:651).
Nothing in the tree substitutes for it.
WRITER.ROM and EOS.ROM gate Adam emulation. Each has to yield its full
read to advance the AdamROMs counter, EOS.ROM is attempted only once
WRITER.ROM succeeded, and Coleco.c:300 collapses the counter unless both
landed. ResetColeco then clears CV_ADAM when the counter is zero
(Coleco.c:749), so -adam falls back to ColecoVision, and inserting the
first disk or tape into drive A: is refused (Coleco.c:1454, 1460, 1496,
1502). SmartWriter maps at 0000h on boot and EOS at 4000h once port 20h
enables it (Coleco.c:628-646).
No hash or magic number is checked on the three ROMs; the read length is
the only gate. CRC32 is computed for cartridges alone, feeding the
GuessROM hardware heuristics (Coleco.c:482-486).
Cartridges, .DSK/.FDI disks and .DDP tapes are user content. Beside a
loaded cartridge, FindState (Coleco.c:1529-1548) probes <name>.sav,
<name>.sta, <name>.cht and <name>.pal, and StartColeco tries the palette
file named by -palette, defaulting to ColEm.pal (Coleco.c:75, 327-332).
Those are written by the emulator or hand-authored, and ChangePalette
supplies one of three built-in palettes when no file is found
(Coleco.c:324, 543). Console fonts are compiled-in arrays (Console.c:46,
130), and LoadPNG (Image.c:1230) sits behind an undefined LIBPNG guard
with no caller.
files:
- name: COLECO.ROM
system: coleco-colecovision
required: true
min_size: 8192
validation: [size]
description: "OS7 ColecoVision BIOS, read into the 8kB ROM_OS7 window"
source_ref: "ColEm/Coleco.c:266-273, 306; ColEm/Coleco.h:78-79"
- name: WRITER.ROM
system: coleco-adam
required: true
min_size: 32768
validation: [size]
description: "Adam SmartWriter ROM, read into the 32kB ROM_WRITER window"
source_ref: "ColEm/Coleco.c:275-285, 300, 749; ColEm/Coleco.h:75"
- name: EOS.ROM
system: coleco-adam
required: true
min_size: 8192
validation: [size]
description: "Adam EOS, read into the 8kB ROM_EOS window"
source_ref: "ColEm/Coleco.c:287-297, 300, 749; ColEm/Coleco.h:83"
+28
View File
@@ -0,0 +1,28 @@
emulator: "ES-DE"
type: launcher
core_classification: launcher
exclusion_note: "frontend launches external emulators — BIOS handled by each emulator"
source: "https://gitlab.com/es-de/emulationstation-de"
upstream: "https://gitlab.com/es-de/emulationstation-de"
profiled_date: "2026-08-07"
source_commit: "60cd1ff1d7102f349c8b922cc834559f74955bf2"
core_version: "3.4.1"
display_name: "ES-DE Frontend"
cores:
- es-de
systems: []
notes: |
Game browsing frontend. Reads es_systems.xml and es_find_rules.xml from its
bundled resources (SystemData.cpp:1346-1359, SystemData.cpp:53-72) to locate
installed emulators and build launch commands, then runs them as subprocesses.
All other reads are bundled resources (fonts, graphics, shaders, sounds,
MAME name lists in MameNames.cpp:56-80, TLS bundle in HttpReq.cpp:74),
app-generated data (es_settings.xml, es_input.xml, gamelists, scraped media,
themes fetched by the built-in downloader) or optional user-authored config
(custom_systems/, scripts/). Performs no BIOS handling; the only BIOS-related
code filters MAME BIOS set names out of gamelists (FileData.cpp:572-580).
RetroDECK ships it as its frontend component, built from the RetroDECK/ES-DE
fork and repackaged from the AppImage.
files: []