docs: write prose without dashes or semicolons

Profiles, the wiki, comments, docstrings, command output and schema descriptions carried em-dashes, clause-joining semicolons, unicode arrows, box-drawing banners and check-mark glyphs. Each sentence was rewritten rather than having its character swapped. Hashes, paths, source_ref values and every cited file:line are unchanged, which a comparison of each parsed profile against the previous revision confirms.

validate_pr comments now say PASS and FAIL in words, and source_ref values in a profile's structured blocks render as code. test_prose_style fails if any of these comes back, in tracked files or in the generated site.
This commit is contained in:
Abdessamad Derraz committed 2026-10-19 06:47:31 +02:00
1 parent 583031eda5
commit 4231902a6c
495 files changed
+2486 -2301

No files matched your search

+1 -1
View File
@@ -80,7 +80,7 @@ jobs:
with:
python-version: "3.12"
# mkdocs-material >= 9.7.5 caps mkdocs < 2; the upper bound keeps a major
# mkdocs-material >= 9.7.5 caps mkdocs < 2, and the upper bound keeps a major
# theme release from changing the site without a deliberate bump here.
- run: pip install pyyaml "jsonschema[format-nongpl]==4.26.0" "mkdocs-material>=9.7.5,<10" "pymdown-extensions>=10.14"
+3 -3
View File
@@ -17,7 +17,7 @@ on:
- "install.py"
- "install.sh"
- "install.ps1"
# Spelled out twice because the workflow parser reads no YAML anchor; a test
# Spelled out twice because the workflow parser reads no YAML anchor. A test
# holds the two lists equal.
push:
branches: [main]
@@ -118,7 +118,7 @@ jobs:
run: python scripts/validate_schemas.py --source-only
# A profile written from a clone can cite lines that do not hold the value
# it declares; schemas and tests pass it. Each profile a change adds is
# it declares, and schemas and tests pass it. Each profile a change adds is
# confronted with its upstream, both roads into main. An edited profile is
# not held to it: the backlog of older refs is reviewed by hand.
check-new-profiles:
@@ -141,7 +141,7 @@ jobs:
BEFORE: ${{ github.event.before }}
run: |
# A pull request is checked out as a merge commit whose first
# parent is the base; a push names the commit it moved main from.
# parent is the base, while a push names the commit it moved main from.
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then
base=HEAD^1
elif [ -z "$BEFORE" ] || [ "$BEFORE" = "0000000000000000000000000000000000000000" ]; then
+2 -2
View File
@@ -36,8 +36,8 @@ Full walkthrough: [profiling guide](https://abdess.github.io/retrobios/wiki/prof
- `bios/Manufacturer/Console/.variants/filename.sha1prefix` for alternate versions
- Files >50 MB go in GitHub release assets (`large-files` release)
- RPG Maker and ScummVM directories are excluded from deduplication
- Two paths differing only by case break clones on Windows and macOS;
`tests/test_no_case_collisions.py` enforces this
- Two paths differing only by case break clones on Windows and macOS,
and `tests/test_no_case_collisions.py` enforces this
## Before opening a PR
+1 -1
View File
@@ -38,4 +38,4 @@ can open an issue at
identifying the file by path or hash. Requests are handled on receipt, and a
file whose removal is requested by its rights holder is removed from the
repository and from the next release without requiring a formal notice. State
the file and the basis of the claim; no particular format is needed.
the file and the basis of the claim. No particular format is needed.
+7 -7
View File
@@ -32,8 +32,8 @@ The script auto-detects your platform, downloads only missing files, and verifie
## Download BIOS packs
One pack per platform, and it holds everything the platform runs: its own BIOS list plus every file its emulator cores load. Pick your platform, download the ZIP, extract to the BIOS path. The installer above does the same file by file. At a terminal it asks whether to install everything or to choose systems, cores and regions, and `--system`, `--core`, `--region` and `--target` make the same choice without questions; for a bare minimum, build your own pack below.
Files is how many the pack holds once extracted, the figure a file manager shows for the folder. It differs from one platform to the next because a pack carries only what that platform's emulators load. The size is what the files occupy once extracted; the ZIP itself downloads smaller.
One pack per platform, and it holds everything the platform runs: its own BIOS list plus every file its emulator cores load. Pick your platform, download the ZIP, extract to the BIOS path. The installer above does the same file by file. At a terminal it asks whether to install everything or to choose systems, cores and regions, and `--system`, `--core`, `--region` and `--target` make the same choice without questions. For a bare minimum, build your own pack below.
Files is how many the pack holds once extracted, the figure a file manager shows for the folder. It differs from one platform to the next because a pack carries only what that platform's emulators load. The size is what the files occupy once extracted, and the ZIP itself downloads smaller.
A pack over 2 GB comes in several parts, and every part is needed. How to open them depends on their name:
@@ -64,16 +64,16 @@ The RetroDECK pack already carries its own `bios/` folder, so it extracts into `
## What's included
BIOS, firmware, and system files for consoles from Atari to PlayStation 3.
These are the files an emulator loads from disk instead of carrying inside itself. Some are required to boot a system, others improve accuracy or unlock a feature; the packs carry both.
These are the files an emulator loads from disk instead of carrying inside itself. Some are required to boot a system, others improve accuracy or unlock a feature, and the packs carry both.
Each file is checked the way your platform checks it. Most compare a checksum, the fingerprint of a file's contents, which catches a corrupt or unexpected copy. RetroArch, Lakka and RetroPie only look for the filename, because that is all their code does: the Coverage table says which applies to you. Independently of that, the collection records five fingerprints per file, and wherever an emulator's code states an expected size or hash, that value is read from its source and rechecked here.
- **425 files** the platforms' emulators load are still to be found, and 55 more cannot be sourced at all (per-user keys, user-filled slots, dumps nobody has made); both are named in the [gap analysis](https://abdess.github.io/retrobios/gaps/)
- **425 files** the platforms' emulators load are still to be found, and 55 more cannot be sourced at all (per-user keys, user-filled slots, dumps nobody has made). Both are named in the [gap analysis](https://abdess.github.io/retrobios/gaps/)
- **12 platforms** supported with platform-specific verification
- **530 emulators** profiled from source (RetroArch cores + standalone)
- **513 systems** handled by those emulators (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
- **19,081 files in the collection**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,339 system files, 2,813 arcade ROM sets, 10,929 game and engine data files. That is every platform and emulator together, so no pack holds them all: each carries what its own emulators load, counted in the download table
- **563 of 5,339 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index
- **563 of 5,339 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC). Arcade sets and engine data fall outside what those catalogs index
- **16755 MB** total collection size
## Supported systems
@@ -147,9 +147,9 @@ The [documentation site](https://abdess.github.io/retrobios/) provides:
## How it works
Documentation and metadata can drift from what emulators actually load.
To keep packs accurate, platform lists are checked against emulator source code, file by file where a profile exists; when the two disagree, the code wins.
To keep packs accurate, platform lists are checked against emulator source code, file by file where a profile exists. When the two disagree, the code wins.
Hashes document what emulator code loads and accepts, not dump provenance; that boundary, and how it relates to preservation catalogs such as No-Intro, is drawn in the [FAQ](https://abdess.github.io/retrobios/wiki/faq/#are-these-files-verified-against-original-hardware-dumps).
Hashes document what emulator code loads and accepts, not dump provenance. That boundary, and how it relates to preservation catalogs such as No-Intro, is drawn in the [FAQ](https://abdess.github.io/retrobios/wiki/faq/#are-these-files-verified-against-original-hardware-dumps).
1. **Read emulator source code** - trace every file the code loads, its expected hash and size
2. **Cross-reference with platforms** - match against what each platform declares
+1 -1
View File
@@ -29,7 +29,7 @@ notes: |
(2600.emu/src/stella/emucore/CartAR.cxx:263-278).
The build defines EMU_EX_PLATFORM, SOUND_SUPPORT and THUMB_SUPPORT
(2600.emu/CMakeLists.txt:22); DEBUGGER_SUPPORT and CHEATCODE_SUPPORT are
(2600.emu/CMakeLists.txt:22). DEBUGGER_SUPPORT and CHEATCODE_SUPPORT are
absent, so the cheat database and the debugger are not compiled. PropertiesSet
is constructed on CompositeKeyValueRepositoryNoop
(2600.emu/src/stella/emucore/PropsSet.cxx:29-32), so cartridge properties come
+1 -1
View File
@@ -32,7 +32,7 @@ notes: |
files:
# --- Machine ROMs ---
# All mode: standalone — libretro core embeds what it needs
# All mode: standalone, the libretro core embeds what it needs
# ZX81 (default machine for both libretro and standalone)
- name: zx81.edition3.rom
+1 -1
View File
@@ -33,7 +33,7 @@ notes: |
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/
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).
+2 -2
View File
@@ -14,7 +14,7 @@ verification: existence
notes: |
Side-scrolling 1995 action game by Crack dot Com, SDL2 fork from the Xenoveritas
branch. The port ships its own game data in-tree under data/ (14 MB), including
the Lisp scripts, levels, art and freedesktop metadata; the fRaBs expansion was
the Lisp scripts, levels, art and freedesktop metadata. The fRaBs expansion was
removed from this fork over licensing uncertainty.
Entry point abuse.lsp is loaded relative to the data directory. The data root
@@ -42,7 +42,7 @@ files:
bundled: true
source_ref: "src/loader2.cpp:284 (lsf default), src/netcfg.cpp:204 (lsf override)"
note: >
Shipped in the source tree under data/. Loader2 reads it via load(); the
Shipped in the source tree under data/. Loader2 reads it via load(), and the
file in turn chain-loads the rest of the Lisp data (english.lsp,
common.lsp, startup.lsp, options.lsp, input.lsp, startup).
+4 -4
View File
@@ -25,14 +25,14 @@ notes: |
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
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…)
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
@@ -77,8 +77,8 @@ notes: |
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
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.
+2 -2
View File
@@ -68,14 +68,14 @@ notes: |
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
Only the selected revision is read, and 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 support files sit directly in $home or $data
(advance/osd/fileio.c:81,88-90, advance/linux/file.c:249-256). A language
file is read too, under whatever name misc_languagefile carries
(advance/osd/glue.c:715-716); the project ships none, English being built
(advance/osd/glue.c:715-716). The project ships none, English being built
into the binary (src/ui_text.c:263-265). Samples and
artwork are per-game archives under dir_sample and dir_artwork, ZIP only,
named after the driver: WAV members for samples
+6 -6
View File
@@ -19,7 +19,7 @@ resources_directory: "resources/"
notes: |
PlayStation 2 emulator for ARM, built on PCSX2 and carrying its own AArch64
recompilers. The application itself is closed source; the PCSX2-derived files
recompilers. The application itself is closed source. The PCSX2-derived files
were released separately as an LGPL tarball in which pcsx2/libAetherSX2.a
holds the parts that stayed closed, and that drop sits on an earlier code line
than any released build, with no Vulkan renderer in its GS tree and the older
@@ -37,7 +37,7 @@ notes: |
Detection is by content. The scan lists the BIOS folder with a *.* mask, keeps
files between 4 and 8 MB, and accepts an image whose romdir carries a RESET
entry followed by a readable ROMVER; the fifth ROMVER character gives the
entry followed by a readable ROMVER, and the fifth ROMVER character gives the
zone among T10K, Test, Japan, USA, Europe, HK, Free and China. An image named
in the configuration is opened at its own path, without the size filter and
without the romdir test. No name and no hash is matched anywhere. The image is
@@ -76,7 +76,7 @@ notes: |
sources each GS backend compiles at startup, the OSD and fullscreen interface
fonts, the flag and placeholder textures, and the achievement notification
sounds. The macOS build keeps the folder at AetherSX2.app/Contents/Resources
and adds its Metal libraries; the Android build carries the shaders, fonts,
and adds its Metal libraries. The Android build carries the shaders, fonts,
icons and sounds as APK assets and draws its own interface.
ref: AetherSX2-release AetherSX2.app/Contents/Resources,
aethersx2 v1.5-3668 xyz.aethersx2.android assets
@@ -89,7 +89,7 @@ files:
max_size: 8388608
validation: [size]
description: "PS2 BIOS image"
note: "Any image whose romdir holds RESET and ROMVER is accepted, whatever its name. The 4 to 8 MB range gates the folder scan; an image named in the configuration skips both that range and the romdir test."
note: "Any image whose romdir holds RESET and ROMVER is accepted, whatever its name. The 4 to 8 MB range gates the folder scan, while an image named in the configuration skips both that range and the romdir test."
source_ref: "aethersx2/pcsx2/ps2/BiosTools.cpp:27-28, aethersx2/pcsx2/ps2/BiosTools.cpp:235-260, aethersx2/pcsx2/ps2/BiosTools.cpp:272-316, aethersx2 v1.5-3606 usr/share/aethersx2 0xa45ffc"
- name: ps2-0230a-20080220.rom1
@@ -159,14 +159,14 @@ files:
path: resources/cheats_ws.zip
required: false
description: "Widescreen patch archive"
note: "Per-game pnach entries matched on the disc CRC, loaded when widescreen patches are enabled. The cheats_ws folder takes precedence and the archive is skipped when it holds a match. Shipped by the Linux and Android builds; the macOS build looks for it without carrying one."
note: "Per-game pnach entries matched on the disc CRC, loaded when widescreen patches are enabled. The cheats_ws folder takes precedence and the archive is skipped when it holds a match. Shipped by the Linux and Android builds, while the macOS build looks for it without carrying one."
source_ref: "aethersx2/pcsx2/Patch.cpp:202-231, AetherSX2-release MacOS/AetherSX2"
- name: cheats_ni.zip
path: resources/cheats_ni.zip
required: false
description: "No-interlacing patch archive"
note: "Same form as cheats_ws.zip, loaded when no-interlacing patches are enabled, with the cheats_ni folder taking precedence. Shipped by the Linux and Android builds; the macOS build looks for it without carrying one."
note: "Same form as cheats_ws.zip, loaded when no-interlacing patches are enabled, with the cheats_ni folder taking precedence. Shipped by the Linux and Android builds, while the macOS build looks for it without carrying one."
source_ref: "aethersx2/pcsx2/Patch.cpp:202-231, AetherSX2-release MacOS/AetherSX2"
- name: game_controller_db.txt
+13 -13
View File
@@ -10,7 +10,7 @@ cores: [altirra]
systems: [atari-400-800, xegs, atari-5200]
# Altirra emulates the Atari 400/800, 1200XL, 600XL/800XL, 130XE, XEGS and 5200.
# Windows only; ES-DE launches Altirra64.exe or Altirra.exe.
# Windows only. ES-DE launches Altirra64.exe or Altirra.exe.
#
# Firmware is identified by content, never by filename. ATUIScanForFirmware
# (uifirmwarescan.cpp:29-113) walks a folder the user picks, keeps every file whose
@@ -24,7 +24,7 @@ systems: [atari-400-800, xegs, atari-5200]
# below carries aliases.
#
# Every external image is optional. Altirra links replacement ROMs into the binary
# as resources (ATLoadInternalFirmware, firmwaremanager.cpp:189-295; res/Altirra.rc:4260-4292)
# as resources (ATLoadInternalFirmware, firmwaremanager.cpp:189-295, res/Altirra.rc:4260-4292)
# and GetCompatibleFirmware selects them when nothing is registered
# (firmwaremanager.cpp:502-549). The setup wizard states it: "Altirra has internal
# replacements for all standard ROMs" (uisetupwizard.cpp:134-138). The internal set
@@ -395,10 +395,10 @@ files:
- name: happy-810-prev7-3k.rom
description: "Happy 810 pre-v7 firmware, functional 3K inside a 6K image (serial $4B9B)"
note: >
The image is 6144 bytes; Altirra identifies it by a checksum taken over
The image is 6144 bytes. Altirra identifies it by a checksum taken over
the functional 3K, which its firmware list reports as the size. The
checksum skips the hidden 1K of a 4K image and the 2-byte serial, so any
serial is recognised; a file it does not recognise can still be given
serial is recognised, and a file it does not recognise can still be given
the Happy 810 type by hand.
system: atari-400-800
required: false
@@ -424,7 +424,7 @@ files:
size: 6144
crc32: "9cc7a207"
validation: [size, crc32]
note: "Functional 6K region only; the loader also accepts 3K, 4K and 8K dumps."
note: "Functional 6K region only. The loader also accepts 3K, 4K and 8K dumps."
source_ref: "src/Altirra/source/firmwaredetect.cpp:63, src/Altirra/source/diskdrivefull.cpp:1165-1234"
- name: happy-810-v7-8k.rom
@@ -674,7 +674,7 @@ files:
size: 8192
crc32: "fc02766b"
validation: [size, crc32]
note: "8K image; the loader reads the first 4K and splits it into two 2K banks."
note: "8K image: the loader reads the first 4K and splits it into two 2K banks."
source_ref: "src/Altirra/source/firmwaredetect.cpp:93, src/Altirra/source/diskdrivexf551.cpp:269-276"
- name: xf551-7.7.rom
@@ -684,7 +684,7 @@ files:
size: 8192
crc32: "38b97ae3"
validation: [size, crc32]
note: "8K image; the loader reads the first 4K and splits it into two 2K banks."
note: "8K image: the loader reads the first 4K and splits it into two 2K banks."
source_ref: "src/Altirra/source/firmwaredetect.cpp:94, src/Altirra/source/diskdrivexf551.cpp:269-276"
- name: xf551-7.7-density-hack.rom
@@ -704,7 +704,7 @@ files:
size: 8192
crc32: "0e117428"
validation: [size, crc32]
note: 'Modified for 720K 3.5" drives. 8K image; the loader reads the first 4K and splits it into two 2K banks.'
note: 'Modified for 720K 3.5" drives. 8K image: the loader reads the first 4K and splits it into two 2K banks.'
source_ref: "src/Altirra/source/firmwaredetect.cpp:96, src/Altirra/source/diskdrivexf551.cpp:269-276"
- name: 1400xl-handler-v1.rom
@@ -750,7 +750,7 @@ files:
size: 4096
crc32: "e8f9c8a7"
validation: [size, crc32]
note: "The image is 4K; the loader reads its first 2K into mFirmware (1450xld.h:179)."
note: "The image is 4K, and the loader reads its first 2K into mFirmware (1450xld.h:179)."
source_ref: "src/Altirra/source/firmwaredetect.cpp:103, src/Altirra/source/1450xld.cpp:738-742"
- name: 1450xld-disk-handler-rev-f.rom
@@ -760,7 +760,7 @@ files:
size: 4096
crc32: "4bb7fa3a"
validation: [size, crc32]
note: "The image is 4K; the loader reads its first 2K into mFirmware (1450xld.h:179)."
note: "The image is 4K, and the loader reads its first 2K into mFirmware (1450xld.h:179)."
source_ref: "src/Altirra/source/firmwaredetect.cpp:104, src/Altirra/source/1450xld.cpp:738-742"
- name: 1450xld-disk-handler-post-rev-f.rom
@@ -770,7 +770,7 @@ files:
size: 4096
crc32: "29359910"
validation: [size, crc32]
note: "The image is 4K; the loader reads its first 2K into mFirmware (1450xld.h:179)."
note: "The image is 4K, and the loader reads its first 2K into mFirmware (1450xld.h:179)."
source_ref: "src/Altirra/source/firmwaredetect.cpp:105, src/Altirra/source/1450xld.cpp:738-742"
- name: atari-835-internal.rom
@@ -868,7 +868,7 @@ files:
source_ref: "src/Altirra/source/firmwaredetect.cpp:120, src/Altirra/source/diskdrivespeedyxf.cpp:353-364"
# -- Types with no row in the detect table. Registered by hand with an explicit
# type from the menu in uifirmware.cpp:498-585; max_size is the read length
# type from the menu in uifirmware.cpp:498-585. max_size is the read length
# at the load site. --
- name: 810-archiver.rom
@@ -989,7 +989,7 @@ files:
- name: kmkjz-ide2-sdx.rom
description: "KMK/JZ IDE 2 (IDEPlus) SpartaDOS X firmware"
note: "Two revisions circulate, SDX 4.45 and 4.47; the collection carries 4.47."
note: "Two revisions circulate, SDX 4.45 and 4.47, and the collection carries 4.47."
system: atari-400-800
required: false
max_size: 524288
+2 -2
View File
@@ -24,8 +24,8 @@ systems:
# all code runs from the game cartridge. The core auto-identifies known
# ROMs by CRC32 via games.h lookup table.
#
# source_ref: src/libretro.c:497-624 (retro_load_game — no file I/O)
# source_ref: DroidArcadia/app/src/main/cpp/android.c:893-1052 (parse_bytes — ROM-only)
# source_ref: src/libretro.c:497-624 (retro_load_game, no file I/O)
# source_ref: DroidArcadia/app/src/main/cpp/android.c:893-1052 (parse_bytes, ROM-only)
# source_ref: DroidArcadia/app/src/main/cpp/da.h:3-5 (version 4.42)
# source_ref: amiarcadia_libretro.info (firmware_count=0)
+7 -7
View File
@@ -24,7 +24,7 @@ notes: |
app/src/main/cpp/rpcs3/rpcs3/rpcs3_version.cpp:29
Source drops land on successive branches, not on the default one. Release 2.43
of 2026-10-05 is the commit titled 2.43 at the head of main4; the lightweight
of 2026-10-05 is the commit titled 2.43 at the head of main4. The lightweight
tags 2.39 to 2.43 all sit on the head of main2, the default branch, an April
tree that predates every one of those releases and whose generated
git-version.h was never filled in. main4 is the tree read here. No versionName is usable either:
@@ -35,7 +35,7 @@ notes: |
Emulator paths derive from APS3E_DATA_DIR, set by the Java layer to the
external files directory of the package. The config directory holds dev_flash,
dev_hdd0, custom_cfg and the global config.yml; caches live beside it. The
dev_hdd0, custom_cfg and the global config.yml, with caches beside it. The
custom font directory sits at the data root, and the custom GPU driver
directory sits in internal storage because the external filesystem cannot
carry an executable mapping.
@@ -73,7 +73,7 @@ notes: |
Vulkan is reached through a loader chosen before the emulator starts. The
global config YAML is read directly for Use Custom Driver and Custom Driver
Library Path, and the named library is opened through libadrenotools as a
custom driver when both are set and the path exists; otherwise the system
custom driver when both are set and the path exists. Otherwise the system
libvulkan.so is dlopened. Drivers are imported either as a bare shared object
or as a zip whose meta.json names the library.
ref: app/src/main/cpp/aps3e_emu.cpp:952-976,
@@ -116,7 +116,7 @@ files:
rejects an empty file, a wrong magic, a declared size the file does not
reach, an unreadable entry table and a failed entry hash. Segment 0x300
carries the installation package database and segment 0x100 the version
string; the packages whose names contain dev_flash_ are decrypted with the
string. The packages whose names contain dev_flash_ are decrypted with the
SCEPKG keys and their inner TARs extracted over dev_flash. The Java layer
creates dev_flash/.installed once the native call returns true. No digest
of the file itself is compared against anything.
@@ -133,8 +133,8 @@ files:
note: >-
Resolved as a sidecar of the image being launched, .dkey first then .key,
and passed down as a second descriptor. Up to 32 bytes are read: a full
32-byte read is taken as a hex string and converted, a 16-byte file as raw;
any other length fails the key check. An image whose odd regions are
32-byte read is taken as a hex string and converted, a 16-byte file as raw.
Any other length fails the key check. An image whose odd regions are
encrypted does not boot without it.
source_ref: "app/src/main/java/aenu/aps3e/Utils.java:185-205, app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:362-408, app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:855-882"
@@ -206,7 +206,7 @@ dev_flash:
path: "dev_flash/sys/external/"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUModule.cpp:2703-2705, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:208, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellSysmodule.cpp:1031"
note: >-
Firmware SPRX modules. liblv2.sprx gates the boot and pulls the rest in;
Firmware SPRX modules. liblv2.sprx gates the boot and pulls the rest in, and
each module can be forced to LLE or HLE through Libraries Control, which
the shipped configuration leaves empty. flashATRAC.pic is named by
cellSysmodule for the ATRAC module path.
+5 -5
View File
@@ -18,7 +18,7 @@ notes: |
ArcadeFlashWeb.exe -fullscreen -source:<rom>, RetroBat adds -nodatetime,
-savedataflash: and -picturesfolder: and sets the working directory to the
program folder. The repository carries the Qt and QML sources and the
releases; arcadeflashweb.com no longer resolves and holds no archived
releases. arcadeflashweb.com no longer resolves and holds no archived
capture. Every string quoted below was also read back from the shipped
v1.0.2 executable, which matches the sources.
ref: src/ArcadeFlashWeb.pro:1-5, src/main.qml:34-35
@@ -27,7 +27,7 @@ notes: |
QTWEBENGINE_CHROMIUM_FLAGS to "--enable-pepper-testing
--ppapi-flash-path=./pepflashplayer.dll" before QtWebEngine::initialize, so
Chromium takes the plugin from that path. It is the one file resolved
against the process working directory; everything else below hangs off
against the process working directory, and everything else below hangs off
applicationDirPath. No --ppapi-flash-version accompanies it, and nothing
reads the manifest.json sitting beside the library: QtWebEngine builds the
plugin entry from the two switches alone and the library never names that
@@ -85,7 +85,7 @@ files:
Handed to Chromium as --ppapi-flash-path and resolved against the process
working directory. Without it no plugin is registered, SWFObject finds no
player and the movie is never embedded. The page asks for a reported
version of at least 32.0.0; the build that ships is the 32-bit 32.0.0.371.
version of at least 32.0.0, and the build that ships is the 32-bit 32.0.0.371.
source_ref: "src/main.cpp:40, ArcadeFlashWeb-release flash/flash.html:102"
- name: flash.html
@@ -150,8 +150,8 @@ files:
bundled: true
description: "AntiMicro mapping profile"
note: >-
Passed to AntiMicro as --profile under the name -profilantimicro: gives;
the name that ships is the one the built-in help quotes. With
Passed to AntiMicro as --profile under the name -profilantimicro: gives.
The name that ships is the one the built-in help quotes. With
-controleurantimicro: also set the call carries --profile-controller
instead and no profile file is read.
source_ref: "src/main.qml:309-312"
+3 -3
View File
@@ -55,7 +55,7 @@ notes: |
accuracy and preservation. 41 emulators registered at this pin
(desktop-ui/emulator/emulators.cpp).
Firmware identification uses SHA256 hashes. Filenames are user-defined; ares
Firmware identification uses SHA256 hashes. Filenames are user-defined: ares
scans a configured directory and matches by hash. EmuDeck installs ares as
Flatpak (dev.ares.ares), configures biosPath in settings.bml.
ref: desktop-ui/settings/firmware.cpp:116-136
@@ -144,7 +144,7 @@ files:
sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50"
validation: [sha256]
description: "Master System BIOS (US)"
note: "Picked for NTSC-U, which the code gives every export cart outside its PAL list through the Boot/Prefer setting; the header does not tell US from Europe (mia/medium/master-system.cpp:54-63, desktop-ui/emulator/emulator.cpp:40-60)."
note: "Picked for NTSC-U, which the code gives every export cart outside its PAL list through the Boot/Prefer setting. The header does not tell US from Europe (mia/medium/master-system.cpp:54-63, desktop-ui/emulator/emulator.cpp:40-60)."
source_ref: "desktop-ui/emulator/master-system.cpp:14, mia/system/master-system.cpp:8 (//optional)"
- name: bios_J.sms
@@ -193,7 +193,7 @@ files:
sha256: "fe608a2a07676a23ab5fd5eee2f53c9e2526d69a28aa16ccd85c0ec42e6933cb"
validation: [sha256]
description: "Mega CD BIOS (Europe)"
note: "Picked for PAL, set when the boot code matches the EU security block; the code has no other PAL branch for Australian discs (mia/medium/mega-cd.cpp:47-56, desktop-ui/emulator/mega-cd.cpp:70-74)."
note: "Picked for PAL, set when the boot code matches the EU security block. The code has no other PAL branch for Australian discs (mia/medium/mega-cd.cpp:47-56, desktop-ui/emulator/mega-cd.cpp:70-74)."
source_ref: "desktop-ui/emulator/mega-cd.cpp:19"
# --- Mega LD (LaserActive SEGA PAC) ---
+6 -6
View File
@@ -35,7 +35,7 @@ notes: |
psxe_cfg_get_bios_path answers in three steps: the override file when it
exists, then a scan of the search folder, then the override path unchanged.
The override is [bios].override_file or -b and defaults to bios.bin under the
preference path SDL_GetPrefPath("nanodata", "armsx"); the search folder is
preference path SDL_GetPrefPath("nanodata", "armsx"). The search folder is
[bios].search_path or -B and defaults to the relative path bios.
ref: frontend/config.c:1540-1559, frontend/config.c:1385-1404,
frontend/config.c:677-683, frontend/config.c:54-57
@@ -65,7 +65,7 @@ notes: |
chosen dump to user_bios.bin and writes its absolute path into
[bios].override_file. EmulatorActivity passes --bios <files>/bios.bin when
the package carries an assets/bios.bin, and the in-process launcher repeats
that check with stat; release 0.1.3 ships no such asset.
that check with stat. Release 0.1.3 ships no such asset.
ref: android/app/src/main/java/com/armsx2/core/Ps1Config.kt:20-41,
android/app/src/main/java/com/armsx2/ui/settings/Ps1BiosTab.kt:38-48,
android/app/src/main/java/com/nanodata/armsx/EmulatorActivity.java:58-61,
@@ -73,9 +73,9 @@ notes: |
frontend/android_jni.cpp:1708-1743, ARMSX1-0.1.3-release.apk assets
The remaining paths the core opens are per game, and are written by the
emulator or picked by the user: memory cards, created blank at first use;
save states, rewind snapshots and screenshots; a GameShark .cht catalogue
named by [cheats].cheats_file; and content-addressed PNG packs under the
emulator or picked by the user: memory cards (created blank at first use),
save states, rewind snapshots and screenshots, a GameShark .cht catalogue
named by [cheats].cheats_file, and content-addressed PNG packs under the
replacements folder of [video].texture_dir.
ref: psx/dev/mcd.c:139-154, psx/cheats.c:346-390, psx/texrep.c:846-848
@@ -91,7 +91,7 @@ files:
whole and mapped at its own size. 524288 is the region psx_bios_init
declares before the load, and 1048576 the SCPH-5903 image the loader
names as the exception. The folder scan reaches an image only under the
name bios.bin; [bios].override_file, -b and the Android picker open a
name bios.bin. [bios].override_file, -b and the Android picker open a
path directly.
source_ref: "psx/dev/bios.c:21-54, psx/dev/bios.h:8-10, frontend/config.c:292-357, frontend/config.c:1540-1559, frontend/main.cpp:2529-2535"
+8 -8
View File
@@ -37,7 +37,7 @@ notes: |
Detection is by content. The scan lists the BIOS folder, keeps files between 4
and 8 MB, and accepts an image whose romdir carries a RESET entry followed by a
readable ROMVER; the fifth ROMVER character gives the zone among Japan, USA,
readable ROMVER. The fifth ROMVER character gives the zone among Japan, USA,
Europe, Asia, China, T10K, COH-H, Test and Free, and an EXTINFO entry supplies
the serial. The console scan passes over a COH-H image. An image named in the
configuration is opened at its own path, without the size filter. No name and
@@ -51,7 +51,7 @@ notes: |
An arcade session, opened from an .acgame manifest carrying an NM game id,
takes a Namco System 246 or 256 board BIOS instead. Filenames/ArcadeBIOS names
it; when that is empty or is not a COH-H image the BIOS folder is scanned for
it. When that is empty or is not a COH-H image the BIOS folder is scanned for
images between 2 and 8 MB whose zone is COH-H, the one with EXTINFO serial
20040519-145634, the System 256 board, being preferred. Boot stops when none is
found. The boot ELF, the media image and the SRAM the manifest names are
@@ -95,7 +95,7 @@ notes: |
matches the binary. The libretro core reads the same tree from
<system>/pcsx2/resources, with the BIOS folder at <system>/pcsx2/bios. Its build
also compiles in the shaders under shaders/common, shaders/opengl and
shaders/vulkan, GameIndex.yaml and a patches.zip fetched at configure time; the
shaders/vulkan, GameIndex.yaml and a patches.zip fetched at configure time. The
copy in the resources folder wins and the compiled-in one stands in when the
file is absent.
ref: pcsx2/Pcsx2Config.cpp:2400-2414, pcsx2/Pcsx2Config.cpp:2563,
@@ -139,7 +139,7 @@ files:
description: "PS2 BIOS image"
note: >-
Any image whose romdir holds RESET and ROMVER is accepted, whatever its
name. The 4 to 8 MB range gates the folder scan; an image named in the
name. The 4 to 8 MB range gates the folder scan, while an image named in the
configuration skips that range. Read into the 4 MB ROM region and truncated
to it. Shorter than 2465792 bytes disables the OSDSys parameter HLE. A
COH-H image is passed over by the console scan.
@@ -291,7 +291,7 @@ files:
Second pass over the game database, merged onto the entries GameIndex.yaml
declares. Carries GS and JIT tuning correct on tiler GPUs. Kept outside the
shipped resources folder and copied in only for arm64 Linux, Android and
iOS; the loader no-ops where it is absent.
iOS. The loader no-ops where it is absent.
source_ref: "pcsx2/GameDatabase.cpp:54, pcsx2/GameDatabase.cpp:1379-1382, cmake/BuildParameters.cmake:227-240, pcsx2/CMakeLists.txt:1828-1837, platforms/android/app/build.gradle.kts:73-85"
- name: RedumpDatabase.yaml
@@ -386,7 +386,7 @@ files:
note: >-
First entry of the emoji script table, resolved under UserResources then the
resources folder and downloaded into UserResources/fonts when neither holds
it. Read by the Qt builds only; the Android asset step leaves it out.
it. Read by the Qt builds only, and the Android asset step leaves it out.
source_ref: "pcsx2-qt/Translations.cpp:340-347, pcsx2-qt/Translations.cpp:407-424, pcsx2-qt/Translations.cpp:541-549, platforms/android/app/build.gradle.kts:79-81"
- name: NotoSansJP-Regular.ttf
@@ -608,7 +608,7 @@ files:
note: >-
The OpenGL backend is one of those the renderer setting selects, and it is
what an Android device falls back to when Vulkan is not chosen. Its device
creation fails without this source; a Vulkan session is unaffected.
creation fails without this source, while a Vulkan session is unaffected.
source_ref: "pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:891-895, pcsx2/GS/GS.cpp:97-133"
- name: tfx_fs.glsl
@@ -617,7 +617,7 @@ files:
required: false
bundled: true
description: "OpenGL texture function fragment shader"
note: "Read with tfx_vgs.glsl; the OpenGL device fails without it."
note: "Read with tfx_vgs.glsl. The OpenGL device fails without it."
source_ref: "pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp:891-895"
- name: convert.glsl
+1 -1
View File
@@ -90,7 +90,7 @@ files:
note: >-
Imported through a picker that keeps only names ending in .zip. The archive
is read whole, meta.json names the library to keep, and a single .so is
taken instead when no meta.json is present; the .so files and meta.json are
taken instead when no meta.json is present. The .so files and meta.json are
unpacked into a directory named after the archive, in internal storage. The
configured path is read before the instance is created and opened through
adrenotools when it exists, otherwise the system libvulkan.so is used. The
+3 -3
View File
@@ -40,7 +40,7 @@ files:
hle_fallback: true
sha1: "5fab786695311433602028cd89898689c5df0898"
md5: "cb52d323b13129a2f0bc3e3e911e567f"
note: "embedded encrypted fallback if missing: default_keys_enc, AES-CBC with a zero key and IV; the hashes are those of the decrypted text without its PKCS#7 block"
note: "embedded encrypted fallback if missing: default_keys_enc, AES-CBC with a zero key and IV. The hashes are those of the decrypted text without its PKCS#7 block"
source_ref: "src/core/hw/aes/key.cpp:283-300, src/common/common_paths.h:83, src/core/hw/default_keys.h:4-5"
- name: shared_font.bin
@@ -48,7 +48,7 @@ files:
system: nintendo-3ds
required: false
hle_fallback: true
note: "legacy load path; embedded open-source font used if missing"
note: "legacy load path, embedded open-source font used if missing"
source_ref: "src/core/hle/service/apt/apt.cpp:263-278"
- name: seeddb.bin
@@ -74,7 +74,7 @@ files:
size: [288, 320]
validation: [size, signature]
on_mismatch: {signature: warn}
note: "console-unique key seed; 288 bytes without the AES MAC block, 320 with it"
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
+4 -4
View File
@@ -58,7 +58,7 @@ files:
hle_fallback: true
sha1: "5288772be438b86978a801e6dcb14228ad3a20af"
md5: "4812e96097b7fc1bdd7b40366208b7a7"
note: "AES key slots, common keys and NFC secrets; embedded encrypted blob used if missing: default_keys_enc, AES-CBC with a zero key and IV, the hashes are those of the decrypted text"
note: "AES key slots, common keys and NFC secrets. Embedded encrypted blob used if missing: default_keys_enc, AES-CBC with a zero key and IV, the hashes are those of the decrypted text"
source_ref: "src/core/hw/aes/key.cpp:225-364, src/core/hw/aes/key.cpp:473-613, src/core/hw/default_keys.h:11"
- name: aes_keys.txt
@@ -90,7 +90,7 @@ files:
system: nintendo-3ds
required: false
hle_fallback: true
note: "game seed database for 9.6+ titles; written out from the embedded seeds if absent"
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:50-101"
- name: otp.bin
@@ -108,7 +108,7 @@ files:
required: false
size: [288, 320]
validation: [size, signature]
note: "console-unique key seed; 288 bytes without the AES MAC block, 320 with it"
note: "console-unique key seed, 288 bytes without the AES MAC block, 320 with it"
source_ref: "src/core/hw/unique_data.cpp:276-318, src/core/hw/unique_data.h:103-133"
- name: SecureInfo_A
@@ -117,7 +117,7 @@ files:
required: false
size: 273
validation: [size, signature]
note: "console serial and region; a failed signature is retried against every region"
note: "console serial and region. A failed signature is retried against every region"
source_ref: "src/core/hw/unique_data.cpp:122-180, src/core/hw/unique_data.h:57"
- name: LocalFriendCodeSeed_B
+9 -9
View File
@@ -39,7 +39,7 @@ notes: |
Libretro port embeds all ROMs as hex arrays in src/libretro/roms.hpp.
create_core() loads OS and sideways ROMs from static machine_types[] arrays.
GetAssetPath() and LoadFile() are stubbed — no file I/O at runtime.
GetAssetPath() and LoadFile() are stubbed: no file I/O at runtime.
ref: zoltanvb/b2-libretro/src/libretro/roms.hpp
ref: src/libretro/core.cpp:275-305
ref: src/libretro/adapters.cpp:74-78
@@ -62,7 +62,7 @@ files:
md5: "0a59a5ba15fe8557b5f7fee32bbd393a"
crc32: "3c14fc70"
description: "OS 1.20"
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration; a shorter image is placed at the top of the 16 KiB window. The B/Acorn 1770 configuration is the one b2 falls back to when no saved configuration loads, so a missing file stops startup."
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration, while a shorter image is placed at the top of the 16 KiB window. The B/Acorn 1770 configuration is the one b2 falls back to when no saved configuration loads, so a missing file stops startup."
source_ref: "src/b2/roms.cpp:16, src/b2/BeebConfig.cpp:220, src/b2/BeebConfig.cpp:542-546, src/b2/BeebConfig.cpp:35-57, src/b2/b2.cpp:1599-1607"
- name: "B+MOS.rom"
@@ -76,7 +76,7 @@ files:
md5: "47a1eff6c7fbb47be780c87dfd50ece1"
crc32: "66c8d893"
description: "B+ MOS"
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration; a shorter image is placed at the top of the 16 KiB window."
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration, while a shorter image is placed at the top of the 16 KiB window."
source_ref: "src/b2/roms.cpp:17, src/b2/BeebConfig.cpp:243, src/b2/BeebConfig.cpp:542-546, src/b2/BeebConfig.cpp:35-57"
- name: "BASIC2.ROM"
@@ -300,7 +300,7 @@ files:
md5: "9087f772447038a00178488b3591347b"
crc32: "aa317ef5"
description: "MOS 3.20 MOS (OS)"
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration; a shorter image is placed at the top of the 16 KiB window."
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration, while a shorter image is placed at the top of the 16 KiB window."
source_ref: "src/b2/roms.cpp:39, src/b2/BeebConfig.cpp:266, src/b2/BeebConfig.cpp:314, src/b2/BeebConfig.cpp:542-546, src/b2/BeebConfig.cpp:35-57"
- name: "dfs.rom"
@@ -412,7 +412,7 @@ files:
md5: "d7a046b1e6a9991748cee05332f1e258"
crc32: "f8b84874"
description: "MOS 3.50 MOS (OS)"
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration; a shorter image is placed at the top of the 16 KiB window."
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration, while a shorter image is placed at the top of the 16 KiB window."
source_ref: "src/b2/roms.cpp:51, src/b2/BeebConfig.cpp:290, src/b2/BeebConfig.cpp:340, src/b2/BeebConfig.cpp:542-546, src/b2/BeebConfig.cpp:35-57"
- name: "adfs.rom"
@@ -468,7 +468,7 @@ files:
md5: "5d1b635e39aa461f17db2344870dda36"
crc32: "12c5f709"
description: "MOS 5.00 MOS (OS)"
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration; a shorter image is placed at the top of the 16 KiB window."
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration, while a shorter image is placed at the top of the 16 KiB window."
source_ref: "src/b2/roms.cpp:59, src/b2/BeebConfig.cpp:377, src/b2/BeebConfig.cpp:542-546, src/b2/BeebConfig.cpp:35-57"
- name: "adfs.rom"
@@ -524,7 +524,7 @@ files:
md5: "f65eb89c7044e328b79f2ef8e51b7fd8"
crc32: "56c83755"
description: "MOS 5.10 MOS (OS)"
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration; a shorter image is placed at the top of the 16 KiB window."
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration, while a shorter image is placed at the top of the 16 KiB window."
source_ref: "src/b2/roms.cpp:67, src/b2/BeebConfig.cpp:398, src/b2/BeebConfig.cpp:542-546, src/b2/BeebConfig.cpp:35-57"
- name: "adfs.rom"
@@ -580,7 +580,7 @@ files:
md5: "5e16a38bd7fd6f07f26b5a64826e4ec6"
crc32: "440f411f"
description: "MOS I5.10C MOS (OS)"
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration; a shorter image is placed at the top of the 16 KiB window."
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration, while a shorter image is placed at the top of the 16 KiB window."
source_ref: "src/b2/roms.cpp:75, src/b2/BeebConfig.cpp:442, src/b2/BeebConfig.cpp:542-546, src/b2/BeebConfig.cpp:35-57"
- name: "adfs.rom"
@@ -636,7 +636,7 @@ files:
md5: "e0da7278637754841dfd6b2b847783bc"
crc32: "3f81574e"
description: "MOS 5.11i MOS (OS)"
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration; a shorter image is placed at the top of the 16 KiB window."
note: "OS ROM of the configurations that select it. A failed load, or an image over 16 KiB, aborts loading the configuration, while a shorter image is placed at the top of the 16 KiB window."
source_ref: "src/b2/roms.cpp:83, src/b2/BeebConfig.cpp:419, src/b2/BeebConfig.cpp:542-546, src/b2/BeebConfig.cpp:35-57"
- name: "arabic.rom"
+9 -9
View File
@@ -28,16 +28,16 @@ notes: |
so only BBKEmu/A4980/ is ever read from RetroArch. Both reads are
std::fs::read guarded by `if let Ok`: a missing file is skipped without
any message to the frontend. The image is copied into a 2 MiB
zero-filled buffer (crates/bbkemu-core/src/memory.rs:197-209); nothing
zero-filled buffer (crates/bbkemu-core/src/memory.rs:197-209), and nothing
checks its size or contents.
Without E.BIN, run_os_init (crates/bbkemu-core/src/emulator.rs:231-252)
sets PC to 0x350, reads zeros from the ROM window, never sees
_MTCT=0xFE and gives up after 10 million cycles; the bank registers
_MTCT=0xFE and gives up after 10 million cycles. The bank registers
stay unmapped and the game exits at its first OS call. Measured by
running run_os_init from bbkemu-core against a dump: 1 092 023 cycles
to completion with E.BIN, timeout without it. Without 8.BIN the font
window reads as 0x00 and every glyph the OS draws is blank; execution
window reads as 0x00 and every glyph the OS draws is blank, but execution
continues.
The standalone binary takes -8/--rom8 and -e/--rome explicit paths and
@@ -50,7 +50,7 @@ notes: |
During init the OS maps its own bank at logical bank D: 0xEA8 for the
A4980 OS, 0xE88 for the A4988 OS (crates/bbkemu-core/src/model.rs:11-13).
The core never reads that value back; detect_model
The core never reads that value back: detect_model
(crates/bbkemu-core/src/model.rs:37-49) has no caller. The
include_bytes! font in crates/bbkemu-core/src/font.rs is not declared in
lib.rs and is not compiled. Content arrives through the frontend buffer
@@ -68,9 +68,9 @@ files:
description: "BBK A-series font ROM"
note: >-
Read whole from {system}/BBKEmu/A4980/8.BIN into the 2 MiB window at
physical 0x800000. A missing file is skipped silently; the window
physical 0x800000. A missing file is skipped silently, and the window
then reads as 0x00 and text drawn through the OS is blank. No size
or hash check; size is the window the image fills.
or hash check. Size is the window the image fills.
source_ref: "crates/bbkemu-libretro/src/lib.rs:187-199, crates/bbkemu-libretro/src/lib.rs:470-471, crates/bbkemu-core/src/memory.rs:8, crates/bbkemu-core/src/memory.rs:197-202, crates/bbkemu-core/src/memory.rs:384-390, crates/bbkemu/src/main.rs:147-158"
- name: E.BIN
@@ -82,10 +82,10 @@ files:
description: "BBK A-series OS ROM"
note: >-
Read whole from {system}/BBKEmu/A4980/E.BIN into the 2 MiB window at
physical 0xE00000; the last 256 bytes also serve as the interrupt
physical 0xE00000. The last 256 bytes also serve as the interrupt
vector page at 0x0300. A missing file is skipped silently, the OS
init loop times out after 10 million cycles and no game runs. No
size or hash check; size is the window the image fills.
size or hash check. Size is the window the image fills.
source_ref: "crates/bbkemu-libretro/src/lib.rs:187-193, crates/bbkemu-libretro/src/lib.rs:201-206, crates/bbkemu-libretro/src/lib.rs:470-471, crates/bbkemu-core/src/memory.rs:9, crates/bbkemu-core/src/memory.rs:204-209, crates/bbkemu-core/src/memory.rs:224-226, crates/bbkemu-core/src/memory.rs:391-397, crates/bbkemu-core/src/emulator.rs:231-252, crates/bbkemu/src/main.rs:159-170"
- name: 8.BIN
@@ -120,5 +120,5 @@ platform_details:
note: |
Physical space seen through sixteen 4 KiB bank registers: RAM below
0x8000, 2 MiB flash at 0x200000, 8.BIN at 0x800000, E.BIN at
0xE00000. Reads outside a loaded image return 0x00; ROM windows
0xE00000. Reads outside a loaded image return 0x00, and ROM windows
ignore writes.
+4 -4
View File
@@ -21,7 +21,7 @@ notes: |
ref: Src/Model.h:24-32
Two file roots. GetUserDataPath() defaults to <Documents>\BeebEm and falls back
to <app>\UserData; it holds BeebFile/ and the .cfg and .kmap files. GetAppPath()
to <app>\UserData. It holds BeebFile/ and the .cfg and .kmap files. GetAppPath()
is the program directory and holds Teletext.fnt and the sound samples.
ref: Src/BeebWin.cpp:5813-5851
@@ -51,7 +51,7 @@ notes: |
BeebFile/ also carries an application ROM library (word processors, drawing
packages, language ROMs) and DiscIms/ carries the disc images supplied with the
Master 512, ARM and Z80 co-processors. No code path names them; they load only
Master 512, ARM and Z80 co-processors. No code path names them: they load only
through the file browser in Edit ROM Configuration, the same way a disc image
does.
ref: Src/RomConfigDialog.cpp:179-215
@@ -86,7 +86,7 @@ files:
sha1: 0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d
validation: [size]
on_mismatch: warn
note: "OS ROM slot. Read into 0xc000; an error is reported unless 16384 bytes are read."
note: "OS ROM slot. Read into 0xc000. An error is reported unless 16384 bytes are read."
source_ref: "Src/BeebMem.cpp:1291-1308, Src/RomConfigFile.cpp:43"
- name: BASIC2.rom
@@ -496,7 +496,7 @@ files:
on_mismatch: warn
note: >
Loaded for TubeDevice::AcornZ80. An error is reported unless 4096 bytes are
read. Jonathan Harston's v1.21; the Acorn v1.20 ships as Z80-1.20.rom and is
read. Jonathan Harston's v1.21. The Acorn v1.20 ships as Z80-1.20.rom and is
used by renaming it onto this path.
source_ref: "Src/Z80Support.cpp:243-267, Help/z80copro.html"
+2 -2
View File
@@ -1,4 +1,4 @@
# Beetle GBA (Mednafen) — Game Boy Advance (libretro)
# Beetle GBA (Mednafen), Game Boy Advance (libretro)
# ref: beetle-gba-libretro/mednafen/gba, docs.libretro.com/library/beetle_gba
# Same BIOS as mGBA/VBA-M. Read only with the gba_hle core option disabled.
emulator: Beetle GBA (Mednafen)
@@ -17,6 +17,6 @@ files:
validation: [size]
source_ref: "mednafen/gba/GBA.cpp:2639-2673, mednafen/settings.cpp:81-82, libretro.cpp:223-230"
note: >
Read only when the gba_hle core option is disabled; it is enabled by
Read only when the gba_hle core option is disabled. It is enabled by
default and the core then uses its built-in HLE BIOS. A file of any size
other than 16384 bytes is ignored and the core falls back to HLE.
+2 -2
View File
@@ -22,8 +22,8 @@ notes: >
The cart database in cart.cpp includes the BIOS CRC32 0x0d973c9d for
identification purposes, not validation.
Upstream Mednafen throws an exception if the BIOS is missing or
undersized; the libretro port silently degrades. Upstream supports
custom palette loading (lynx.pal); the libretro port does not.
undersized, while the libretro port silently degrades. Upstream supports
custom palette loading (lynx.pal), but the libretro port does not.
files:
- name: "lynxboot.img"
+3 -3
View File
@@ -12,12 +12,12 @@ systems: [sony-playstation]
notes: >
Region-based BIOS selection: the core picks JP/NA/EU firmware based on disc region.
SHA1 validated with warning on mismatch (does not block loading).
SHA1 and alternate filenames sourced from MAME (mame src/mame/sony/psx.cpp);
the lists and the checksum search live in libretro.c:448-502,510-602.
SHA1 and alternate filenames sourced from MAME (mame src/mame/sony/psx.cpp).
The lists and the checksum search live in libretro.c:448-502,510-602.
Override option allows using PSP, PS3, or OpenBIOS as region-free alternative.
Embedded OpenBIOS (512KB) compiled into the binary serves as HLE fallback when no BIOS found.
"Skip BIOS" option patches BIOS ROM but causes compatibility issues.
Upstream Mednafen loads the same 3 region BIOS; override BIOS and HLE fallback are libretro additions.
Upstream Mednafen loads the same 3 region BIOS. Override BIOS and HLE fallback are libretro additions.
Two BIOS geometries are accepted: the stock 512 KB kernel and the 1 MB SCPH-5903 part,
selected by file size at load time (libretro.c:3203-3217). A 1 MB image switches Video CD
from HLE to daughterboard emulation (libretro.c:6159). Reached through the BIOS path
+8 -8
View File
@@ -47,7 +47,7 @@ notes: |
ST-V content is a game ZIP or a bare ROM matched against the ST-V game
table (libretro.c:1207-1227, libretro.c:1261-1281). The cabinet region of
the matched game selects one of three ST-V BIOS images
(mednafen/ss/ss.c:1829-1843); the beetle_saturn_region option is not
(mednafen/ss/ss.c:1829-1843), and the beetle_saturn_region option is not
applied on that path (libretro.c:1217, libretro.c:1275). The image is read
as a bare file from the system directory or, when that file is absent, as
the member of the same name in stvbios.zip there, matched without regard
@@ -75,7 +75,7 @@ files:
size: 524288
validation: {core: [size], upstream: [size, sha256]}
sha256: "dcfef4b99605f872b6c3b6d05c045385cdea3d1b702906a0ed930df7bcb7deac"
note: "Saturn BIOS v1.01 (Japan), loaded for the Japan and Asia NTSC areas. The port checks the size only; the sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB)."
note: "Saturn BIOS v1.01 (Japan), loaded for the Japan and Asia NTSC areas. The port checks the size only. The sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB)."
source_ref: "mednafen/ss/ss.c:1845-1846 (region filename), mednafen/ss/ss.c:1867-1873 (open), mednafen/ss/ss.c:1961-1984 (size check, read), mednafen/ss/ss.c:1988 (sha256 for save states)"
- name: "mpr-17933.bin"
@@ -85,7 +85,7 @@ files:
size: 524288
validation: {core: [size], upstream: [size, sha256]}
sha256: "96e106f740ab448cf89f0dd49dfbac7fe5391cb6bd6e14ad5e3061c13330266f"
note: "Saturn BIOS v1.00a (North America and Europe), loaded for every area other than Japan and Asia NTSC, and when no content is loaded. Disc area E maps to EU_PAL and the code has no Oceania area (disc.c:162-165). The port checks the size only; the sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB)."
note: "Saturn BIOS v1.00a (North America and Europe), loaded for every area other than Japan and Asia NTSC, and when no content is loaded. Disc area E maps to EU_PAL and the code has no Oceania area (disc.c:162-165). The port checks the size only. The sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB)."
source_ref: "mednafen/ss/ss.c:1847-1848 (region filename), mednafen/ss/ss.c:1867-1873 (open), mednafen/ss/ss.c:1961-1984 (size check, read), mednafen/ss/ss.c:1988 (sha256 for save states), libretro.c:1103 (default area)"
- name: "mpr-18811-mx.ic1"
@@ -93,7 +93,7 @@ files:
required: false
min_size: 2097152
validation: [size]
note: "King of Fighters '95 ROM cart. Selected by the game table for MK-81088 and T-3101G or by the beetle_saturn_cart option. The first 0x200000 bytes are read; a shorter file installs a zeroed cart, an absent file leaves the slot empty."
note: "King of Fighters '95 ROM cart. Selected by the game table for MK-81088 and T-3101G or by the beetle_saturn_cart option. The first 0x200000 bytes are read. A shorter file installs a zeroed cart, an absent file leaves the slot empty."
source_ref: "mednafen/settings.c:62-63 (filename), mednafen/ss/cart.c:197-216 (open), mednafen/ss/cart/rom.c:67-68 (read), mednafen/ss/db.c:90-91 (game table), libretro.c:527 (option)"
- name: "mpr-19367-mx.ic1"
@@ -101,7 +101,7 @@ files:
required: false
min_size: 2097152
validation: [size]
note: "Ultraman: Hikari no Kyojin Densetsu ROM cart. Selected by the game table for T-13308G or by the beetle_saturn_cart option. The first 0x200000 bytes are read; a shorter file installs a zeroed cart, an absent file leaves the slot empty."
note: "Ultraman: Hikari no Kyojin Densetsu ROM cart. Selected by the game table for T-13308G or by the beetle_saturn_cart option. The first 0x200000 bytes are read. A shorter file installs a zeroed cart, an absent file leaves the slot empty."
source_ref: "mednafen/settings.c:64-65 (filename), mednafen/ss/cart.c:197-216 (open), mednafen/ss/cart/rom.c:67-68 (read), mednafen/ss/db.c:92 (game table), libretro.c:529 (option)"
- name: "epr-20091.ic8"
@@ -136,7 +136,7 @@ files:
system: sega-stv
required: false
description: "ST-V BIOS archive"
note: "Opened only when the bare ST-V BIOS file for the cabinet region is absent. The member of the same name is matched without regard to case and must be 131072 or 524288 bytes; no hash is checked."
note: "Opened only when the bare ST-V BIOS file for the cabinet region is absent. The member of the same name is matched without regard to case and must be 131072 or 524288 bytes. No hash is checked."
source_ref: "mednafen/ss/ss.c:1888-1941 (open, member lookup, size check, extract), zip_reader.c:358-365 (case-insensitive lookup)"
contents:
- name: "epr-20091.ic8"
@@ -150,7 +150,7 @@ files:
system: sega-saturn
required: false
size: 524288
note: "Video CD Card program ROM, opened when beetle_saturn_mpeg_card is enabled. The card carries a 512 KiB mask ROM; the core keeps at most 0x80000 bytes, pads a shorter image with zeros and checks nothing else. The image is never mapped: its presence is what makes the card authenticate, and without it the card answers commands but does not authenticate."
note: "Video CD Card program ROM, opened when beetle_saturn_mpeg_card is enabled. The card carries a 512 KiB mask ROM. The core keeps at most 0x80000 bytes, pads a shorter image with zeros and checks nothing else. The image is never mapped: its presence is what makes the card authenticate, and without it the card answers commands but does not authenticate."
source_ref: "mednafen/settings.c:68-69 (filename), mednafen/ss/cdb.c:1315-1332 (open), mednafen/ss/mpeg.c:67-71 (size), mednafen/ss/mpeg.c:423-450 (read), mednafen/ss/mpeg.c:667-675 (authentication)"
- name: "satar4mp.bin"
@@ -158,5 +158,5 @@ files:
required: false
min_size: 262144
validation: [size]
note: "Action Replay 4M Plus firmware. The first 0x40000 bytes are read as big-endian words and a shorter file leaves the cart slot empty; no hash is checked. Unfinished in source (mednafen/ss/cart/ar4mp.c:22-24), needs CPU UBC emulation. Neither the beetle_saturn_cart option (libretro.c:512-530) nor the game table of mednafen/ss/db.c yields CART_AR4MP, so the case is not reached."
note: "Action Replay 4M Plus firmware. The first 0x40000 bytes are read as big-endian words and a shorter file leaves the cart slot empty. No hash is checked. Unfinished in source (mednafen/ss/cart/ar4mp.c:22-24), needs CPU UBC emulation. Neither the beetle_saturn_cart option (libretro.c:512-530) nor the game table of mednafen/ss/db.c yields CART_AR4MP, so the case is not reached."
source_ref: "mednafen/settings.c:66-67 (filename), mednafen/ss/cart.c:218-236 (CART_AR4MP case), mednafen/ss/cart/ar4mp.c:181 (0x40000-byte read)"
+2 -2
View File
@@ -13,10 +13,10 @@ systems: [nintendo-virtualboy]
notes: |
Libretro port of Mednafen's Virtual Boy emulation module.
No external BIOS or firmware files. The Virtual Boy has no boot
ROM; the V810 CPU executes directly from the game ROM mapped at
ROM: the V810 CPU executes directly from the game ROM mapped at
0x07000000. Load() in libretro.cpp:1810 takes only ROM data.
Upstream Mednafen supports an optional vb.pal palette file
(Documentation/vb.html); the libretro port handles palette via
(Documentation/vb.html), while the libretro port handles palette via
core options instead.
files: []
+1 -1
View File
@@ -32,7 +32,7 @@ systems:
# Files are loaded from {system_dir}/bk/{filename} (libretro.c:720-728).
# If not found with original casing, the loader retries with lowercase
# filename (libretro.c:1071-1081).
# Size is validated (min/max bounds); no hash validation.
# Size is validated (min/max bounds), no hash validation.
#
# All ROM files are required for their respective model. The core calls
# environ_cb(RETRO_ENVIRONMENT_SHUTDOWN) if any ROM file is missing.
+3 -3
View File
@@ -34,9 +34,9 @@ notes: |
files:
# rom.db is embedded in the libretro binary (libblastem.c:1295,1302-1303,
# extern const char rom_db_data[]). The external file is an optional
# override — .info lists it as firmware0_opt=true.
# override. The .info lists it as firmware0_opt=true.
# .info sha1 E5414FB1C4CC7D7F5101C07E4547316779BA3D97 does not match
# the version in our repo (sha1 02c287d1...) — rom.db changes between
# the version in our repo (sha1 02c287d1...): rom.db changes between
# BlastEm releases.
- name: rom.db
system: sega-megadrive
@@ -45,7 +45,7 @@ files:
note: "ROM feature database (game-specific mapper/save config). Embedded in core, external is optional override."
source_ref: "libblastem.c:1438-1455 read_bundled_file()"
# TMSS ROM — only used in standalone mode with tmss-enabled model
# TMSS ROM, only used in standalone mode with tmss-enabled model
# libretro build returns NULL for tmss.md (libblastem.c:541)
- name: tmss.md
system: sega-megadrive
+1 -1
View File
@@ -58,7 +58,7 @@ notes: |
data_directories:
# 302 files: 296 in Machines/ (200 machine configs + ROMs) + 6 in Databases/
# buildbot source: https://buildbot.libretro.com/assets/system/blueMSX.zip
# ref: libretro.c:1118-1119 — system_dir/Machines/ + system_dir/Databases/
# ref: libretro.c:1118-1119: system_dir/Machines/ + system_dir/Databases/
- ref: bluemsx
source_ref: "libretro.c:1119-1120"
+1 -1
View File
@@ -26,7 +26,7 @@ notes: |
file. load_boot_file() with hardcoded ./res/boot/*.bin paths exists in
src/gb.rs:1477 but is not called from any frontend.
Boot ROM defaults: DmgBootix (DMG), CgbBoytacean (CGB) — open-source.
Boot ROM defaults: DmgBootix (DMG), CgbBoytacean (CGB), both open-source.
files:
- name: dmg_boot.bin
+8 -8
View File
@@ -135,11 +135,11 @@ files:
aliases: [arm6.data.rom]
# Embedded (no external file needed):
# SGB1BootROM[256] — src/coprocessor/icd.cpp:249
# SGB2BootROM[256] — src/coprocessor/icd.cpp:260
# hitachidspStaticDataROM[3072] — src/cartridge.cpp:62
# CX4 HLE — src/cartridge.cpp:705-720 (preferHLE path for HG51BS169)
# boards_bml — libretro/boards_bml.hpp
# SuperFamicom_bml — libretro/SuperFamicom_bml.hpp
# BSMemory_bml — libretro/BSMemory_bml.hpp
# SufamiTurbo_bml — libretro/SufamiTurbo_bml.hpp
# SGB1BootROM[256]: src/coprocessor/icd.cpp:249
# SGB2BootROM[256]: src/coprocessor/icd.cpp:260
# hitachidspStaticDataROM[3072]: src/cartridge.cpp:62
# CX4 HLE: src/cartridge.cpp:705-720 (preferHLE path for HG51BS169)
# boards_bml: libretro/boards_bml.hpp
# SuperFamicom_bml: libretro/SuperFamicom_bml.hpp
# BSMemory_bml: libretro/BSMemory_bml.hpp
# SufamiTurbo_bml: libretro/SufamiTurbo_bml.hpp
+1 -1
View File
@@ -32,6 +32,6 @@ exclusion_note: >
firmware_count=0 in .info is correct. DSP firmware (NEC uPD7725/uPD96050,
Hitachi CX4) is loaded from the ROM directory via game XML markup, not from
system_dir. RetroArch cannot pre-populate firmware in the ROM directory.
Upstream byuu.org is defunct; this libretro port is the preserved v085 code.
Upstream byuu.org is defunct, and this libretro port is the preserved v085 code.
files: []
+6 -6
View File
@@ -67,12 +67,12 @@ files:
- name: dsp3.program.rom
system: nintendo-snes
required: false
note: "no HLE — required for SD Gundam GX"
note: "no HLE, required for SD Gundam GX"
source_ref: "bsnes/sfc/cartridge/load.cpp:490-494, bsnes/sfc/cartridge/load.cpp:531-534"
- name: dsp3.data.rom
system: nintendo-snes
required: false
note: "no HLE — required for SD Gundam GX"
note: "no HLE, required for SD Gundam GX"
source_ref: "bsnes/sfc/cartridge/load.cpp:498-503, bsnes/sfc/cartridge/load.cpp:531-534"
- name: dsp4.program.rom
system: nintendo-snes
@@ -109,12 +109,12 @@ files:
- name: st011.program.rom
system: nintendo-snes
required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi"
note: "no HLE, required for Hayazashi Nidan Morita Shougi"
source_ref: "bsnes/sfc/cartridge/load.cpp:570-574, bsnes/sfc/cartridge/load.cpp:599-602"
- name: st011.data.rom
system: nintendo-snes
required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi"
note: "no HLE, required for Hayazashi Nidan Morita Shougi"
source_ref: "bsnes/sfc/cartridge/load.cpp:578-583, bsnes/sfc/cartridge/load.cpp:599-602"
# ARM6 coprocessor (ST018)
@@ -122,12 +122,12 @@ files:
- name: st018.program.rom
system: nintendo-snes
required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi 2"
note: "no HLE, required for Hayazashi Nidan Morita Shougi 2"
source_ref: "bsnes/sfc/cartridge/load.cpp:379-384"
- name: st018.data.rom
system: nintendo-snes
required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi 2"
note: "no HLE, required for Hayazashi Nidan Morita Shougi 2"
source_ref: "bsnes/sfc/cartridge/load.cpp:387-393"
# SGB cartridge ROMs (boot ROMs embedded in icd/boot-roms.cpp)
+15 -15
View File
@@ -33,7 +33,7 @@ notes: |
4. the GOG install directories (Windows registry)
5. the Steam install directories (Windows registry)
One complete set is enough. With none the engine stops on "Content not
found." (src/bstone/src/jm_free.cpp:754); with several games found it asks
found." (src/bstone/src/jm_free.cpp:754). With several games found it asks
which one to play. No single file is required on its own.
Each file is opened under its upper-case name first, then under the
@@ -55,7 +55,7 @@ files:
- "0c3de403b524107809fa9308b730d60e8e41ba93"
- "e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2"
validation: [sha1]
note: "sha1 values in order: v1.0 and v2.0; v2.1 and v3.0"
note: "sha1 values in order: v1.0 and v2.0, then v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1497, 1518, 1539, 1560"
- name: "AUDIOT.BS1"
@@ -67,7 +67,7 @@ files:
- "3d4e8b62aa4683671027513ad9720f76f176ba5b"
- "b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25"
validation: [sha1]
note: "sha1 values in order: v1.0 and v2.0; v2.1 and v3.0"
note: "sha1 values in order: v1.0 and v2.0, then v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1498, 1519, 1540, 1561"
- name: "IANIM.BS1"
@@ -88,7 +88,7 @@ files:
- "55b9eb9ed555b0f249c2cefd54ecc3f511bfcd55"
- "04a8e4e7c360f6033dc70f7b09edbc4a6447e462"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
note: "sha1 values in order: v1.0, then v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1500, 1521, 1542, 1563"
- name: "MAPTEMP.BS1"
@@ -100,7 +100,7 @@ files:
- "293464e7143ff7e6faf5f5b20799e76a394d65bf"
- "bbb3cd6ab3e742eada427862504eba06437036d0"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
note: "sha1 values in order: v1.0, then v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1501, 1522, 1543, 1564"
- name: "SANIM.BS1"
@@ -123,7 +123,7 @@ files:
- "ed1ab61ad2529e046f966d9c1627508f76693ef8"
- "537676ddcafeee415c22bb9d00097b25bc7e13c5"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
note: "sha1 values in order: v1.0, v2.0, v2.1, v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1503, 1524, 1545, 1566"
- name: "VGAGRAPH.BS1"
@@ -137,7 +137,7 @@ files:
- "b59cbe3793b4612b06254ece48bf8e961ab6f528"
- "9f9f4c40c9637af472ce5e1a360e51364c3a418a"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
note: "sha1 values in order: v1.0, v2.0, v2.1, v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1504, 1525, 1546, 1567"
- name: "VGAHEAD.BS1"
@@ -151,7 +151,7 @@ files:
- "0635a4a2b823eef2904ed1d590d98362fb16621d"
- "e7fb8f241b8fa94739c3bd09ea05c1afc7bbfc95"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
note: "sha1 values in order: v1.0, v2.0, v2.1, v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1505, 1526, 1547, 1568"
- name: "VSWAP.BS1"
@@ -163,7 +163,7 @@ files:
- "37412ca9139562fc31330d72470822de4d9ceb4a"
- "dbde907ba1110bef445d6daae283c4520d6951b4"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
note: "sha1 values in order: v1.0, then v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1506, 1527, 1548, 1569"
# Aliens of Gold registered
@@ -221,7 +221,7 @@ files:
- "6f19a144d8985e90f096fc1c67ade58e9051235c"
- "028f624e150f84ffc8336336cb0ecea0932cc22d"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
note: "sha1 values in order: v1.0, then v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1586, 1609, 1632, 1655"
- name: "MAPTEMP.BS6"
@@ -233,7 +233,7 @@ files:
- "4d00c5f5c843f99a266bd938648192a6eff17b5a"
- "8b48e7eb859382a4c84948c5a62899194288e853"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
note: "sha1 values in order: v1.0, then v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1587, 1610, 1633, 1656"
- name: "SANIM.BS6"
@@ -256,7 +256,7 @@ files:
- "e4ae3ef9a3ac158a832092b7b5487227337c6f13"
- "60da35e506d57753f83cca5f232a76dd1cf074ba"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
note: "sha1 values in order: v1.0, v2.0, v2.1, v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1589, 1612, 1635, 1658"
- name: "VGAGRAPH.BS6"
@@ -270,7 +270,7 @@ files:
- "6868e6cc4f8cb9160a218c5bce680a11f64c675a"
- "001037fafdff124befb5437c563d0b9c613b3c00"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
note: "sha1 values in order: v1.0, v2.0, v2.1, v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1590, 1613, 1636, 1659"
- name: "VGAHEAD.BS6"
@@ -284,7 +284,7 @@ files:
- "1a3864cd12de4b8fd6be023b73d2d79e91b9018d"
- "ff165ca5924d738853587a7e4ab1cd239e10e359"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
note: "sha1 values in order: v1.0, v2.0, v2.1, v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1591, 1614, 1637, 1660"
- name: "VSWAP.BS6"
@@ -296,7 +296,7 @@ files:
- "0a700732ccbc72f95318a6226a7e1ad78ac713bb"
- "6fcc6e007b02b2e55892cfa7acfd42966ef9c9fb"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
note: "sha1 values in order: v1.0, then v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1592, 1615, 1638, 1661"
# Planet Strike
+4 -4
View File
@@ -81,7 +81,7 @@ notes: |
longer with a warning (C64.emu/src/main/sysfile.cc:30-71).
SHA-1s are those hardcoded in c64/c64rom.h:88-96. c64rom.c:120-131 hashes the
loaded kernal and matches that table to identify the revision; an unmatched
loaded kernal and matches that table to identify the revision, and an unmatched
image is reported and accepted. VICE distributes C128/kernal64-901227-03.bin
and C128/basic64-901226-01.bin with the same bytes as the C64 Rev 3 kernal and
BASIC, so those two entries carry the same hashes.
@@ -93,7 +93,7 @@ notes: |
machine directory and sets both resources
(C64.emu/src/main/EmuMenuViews.cc:186,1058,1074-1083,
C64.emu/src/main/options.cc:38-51). Only the code-named default of each chip
is listed here; palette_load appends the .vpl extension itself
is listed here, and palette_load appends the .vpl extension itself
(palette.c:228-248).
Keymaps are named from KBD_PORT_PREFIX, which the app sets to gtk3
@@ -105,7 +105,7 @@ notes: |
Four subsystems are compiled but cannot reach their files. Printer ROMs and
the PRINTER/ palettes load from drv_mps803_open and drv_nl10_open, which
require Printer4, Printer5 or Printer6 to leave PRINTER_DEVICE_NONE
(printerdrv/interface-serial.c:145-149); the app writes no printer resource,
(printerdrv/interface-serial.c:145-149). The app writes no printer resource,
and neither main.c nor initcmdline.c is compiled, so the resource file and the
command line that would set one do not exist. Romset .vrs files, the monitor
command file and joystick .vjm maps have no default name at all
@@ -1106,7 +1106,7 @@ files:
description: "CMD HD boot ROM"
note: >-
The MAME dump cmd_hd_bootrom_v280.bin reads the chip over 32 KB and its
two halves are identical; the image here is the first half, the 16 KB the
two halves are identical. The image here is the first half, the 16 KB the
loader asks for.
source_ref: "C64.emu/src/vice/drive/driverom.h:49,100, C64.emu/src/vice/drive/iec/iecrom.c:145,218"
+5 -5
View File
@@ -54,7 +54,7 @@ notes: |
and loads it via snapshot_load_mem() in cap32/slots.c:71-90.
files:
# Standalone loads from rom_path/; libretro embeds all as C arrays
# Standalone loads from rom_path/, libretro embeds all as C arrays
- name: cpc464.rom
system: amstrad-cpc
required: false
@@ -80,7 +80,7 @@ files:
size: 32768
md5: b96280dc6c95a48857b4b8eb931533ae
sha1: 5977adbad3f7c1e0e082cd02fe76a700d9860c30
note: "CPC 6128 OS + BASIC 1.1, default model=2; missing file returns ERR_CPC_ROM_MISSING"
note: "CPC 6128 OS + BASIC 1.1, default model=2. A missing file returns ERR_CPC_ROM_MISSING"
source_ref: "src/cap32.cpp:212-217, src/cap32.cpp:1013-1027, src/cap32.cpp:1799, rom/cpc6128.rom"
- name: amsdos.rom
system: amstrad-cpc
@@ -89,7 +89,7 @@ files:
size: 16384
md5: 25629dfe870d097469c217b95fdc1c95
sha1: 39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb
note: "AMSDOS disc ROM, shipped cap32.cfg sets slot07=DEFAULT, skipped on the 464; missing file clears the slot"
note: "AMSDOS disc ROM, shipped cap32.cfg sets slot07=DEFAULT, skipped on the 464. A missing file clears the slot"
source_ref: "src/cap32.cpp:1170-1178, src/cap32.cpp:1245-1249, cap32.cfg:205-206, 215, rom/amsdos.rom"
- name: system.cpr
system: amstrad-cpc
@@ -107,7 +107,7 @@ files:
size: 8192
md5: 4c9f014e91d407cc6509fad0095ab909
sha1: 1431ec628d38f000715545dd2186b684c5fe5a6f
note: "Multiface 2 ROM, read when mf2=1; checks the \"MULTIFACE 2\" signature at 0x0d32"
note: "Multiface 2 ROM, read when mf2=1. Checks the \"MULTIFACE 2\" signature at 0x0d32"
source_ref: "src/cap32.cpp:1252-1278, rom/MF2.rom"
platform_details:
@@ -116,7 +116,7 @@ platform_details:
note: |
All ROMs are embedded. emulator_select_ROM() copies the ROM array for
CPC.model into pbROM. No filesystem lookup occurs in the libretro
port; retro_system_bios_directory is set in
port. retro_system_bios_directory is set in
libretro/libretro-core.c:1617-1636 and no ROM is read from it.
embedded_roms:
+1 -1
View File
@@ -48,7 +48,7 @@ notes: |
(src/Engine/EgaGraph.cpp:50-70, src/Engine/AudioRepository.cpp:43-58). The
SHP files are the intro pictures (src/Abyss/IntroViewAbyss.cpp:48-90,
src/Armageddon/IntroViewArmageddon.cpp:27-76,
src/Apocalypse/IntroViewApocalypse.cpp:27-76); Abyss v1.12 uses SDLOGO,
src/Apocalypse/IntroViewApocalypse.cpp:27-76). Abyss v1.12 uses SDLOGO,
TITLE, CREDITS, BEGIN and FINALE instead (src/Abyss/IntroViewAbyss.cpp:28-45,
src/Abyss/GameAbyss.cpp:53-58). SHP10.ABS, SHP13.ARM and SHP13.APC are
never opened but belong to the detection tables.
+1 -1
View File
@@ -17,7 +17,7 @@ notes: |
missions/, dogfights/, music/, sounds/ and doc/.
The data root is baked into the binary through -DCDOGS_DATA_DIR. The
source default is "../" ("./" on GCW0), CMakeLists.txt:141-147; Batocera
source default is "../" ("./" on GCW0), CMakeLists.txt:141-147. Batocera
sets it to /userdata/roms/cdogs/. GetDataFilePath(), src/cdogs/utils.c:392,
returns an absolute request as it is, and otherwise joins CDOGS_DATA_DIR
(under the working directory when it is relative) with the requested path.
+16 -16
View File
@@ -49,7 +49,7 @@ notes: |
portable directory next to the executable when it exists, otherwise
%APPDATA%/Cemu on Windows, XDG_DATA_HOME/Cemu and XDG_CONFIG_HOME/Cemu on
Linux, and the MLC defaults to <user data>/mlc01. path: entries below are
the libretro destination under the system directory; standalone_path: is
the libretro destination under the system directory, and standalone_path: is
relative to the Cemu user data directory.
ref: src/libretro/CemuLibretro.cpp:1647-1707,
src/libretro/CemuLibretro.cpp:3264-3272,
@@ -57,7 +57,7 @@ notes: |
src/config/ActiveSettings.cpp:295-321
keys.txt is read once from the user data path. A missing file is created
with a comment header and an example key; each line is stripped of
with a comment header and an example key. Each line is stripped of
comments, spaces, dashes and underscores and must then be 32 hex
characters, otherwise an error is raised for that line. FindDiscKey tries
every key in order against the encrypted partition header of a .wud/.wux
@@ -87,11 +87,11 @@ notes: |
src/resource/CafeDefaultFont.cpp:2562-2569
Online files. iosuCrypto_init reads otp.bin and seeprom.bin from the user
data path and rejects any size other than 1024 and 512 bytes; without a
data path and rejects any size other than 1024 and 512 bytes. Without a
valid OTP no certificate is loaded and online mode is off. The certificate
table names 8 client certificates with their AES-encrypted RSA keys and 39
CA certificates, all under sys/title/0005001b/10054000/content/ of the
MLC; olive and wood appear twice under distinct ids, so 7 distinct client
MLC, and olive and wood appear twice under distinct ids, so 7 distinct client
pairs and 39 CA files are read. A key file must be a non-empty multiple of
16 bytes and is decrypted with the key at OTP offset 0x120. Online mode is
only enabled when every file of the table is present. For the libretro
@@ -105,7 +105,7 @@ notes: |
<module>.rpl in cafeLibs/ under the user data path and loads it in place
of Cemu's own implementation, as long as the game profile does not set
loadSharedLibraries to false (the default is true). Any Cafe OS module can
be placed there; the code names snd_user.rpl and snduser2.rpl as the ones
be placed there. The code names snd_user.rpl and snduser2.rpl as the ones
to dump when a title uses an unsupported audio effect, and gates
swkbd.rpl and erreula.rpl on the presence of their data packs in the MLC
(swkbd.pack of title 0005001b-1004f000, erreula.pack of 0005001b-10051000),
@@ -116,7 +116,7 @@ notes: |
Data directories. A title's game profile is read from gameProfiles/<title
id>.ini under the config path, then from gameProfiles/default/<title
id>.ini under the data path; upstream ships 236 of them in
id>.ini under the data path. Upstream ships 236 of them in
bin/gameProfiles/default and the libretro data path is <system_dir>/Cemu.
Standalone loads as a graphic pack every directory holding a rules.txt
under graphicPacks/ of the user data path, and its downloader extracts the
@@ -179,7 +179,7 @@ files:
validation: [size]
description: "Wii U OTP dump"
note: >-
Read into the OTP mirror at init; any other size is rejected and
Read into the OTP mirror at init. Any other size is rejected and
online mode stays off. Its keys decrypt the client certificate keys
and sign the device certificate.
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:553-577, src/Cafe/IOSU/legacy/iosu_crypto.cpp:619-626"
@@ -192,7 +192,7 @@ files:
validation: [size]
description: "Wii U SEEPROM dump"
note: >-
Read into the SEEPROM mirror at init; any other size is rejected and
Read into the SEEPROM mirror at init. Any other size is rejected and
online mode stays off.
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:579-600, src/Cafe/IOSU/legacy/iosu_crypto.cpp:627-632"
@@ -301,7 +301,7 @@ files:
included. Nothing about it is validated. The region holds the
SharedDataEntry table (0xFFCAFE01 to 0xFFCAFE04, type 2) followed by
CafeCn.ttf, CafeKr.ttf, CafeStd.ttf and CafeTw.ttf, byte-identical to
the console dumps of title 0005001b-10042400 above; every other byte
the console dumps of title 0005001b-10042400 above, and every other byte
is zero.
source_ref: "src/Cafe/CafeSystem.cpp:268-291, src/Cafe/CafeSystem.cpp:357-365"
@@ -335,8 +335,8 @@ files:
hle_fallback: true
description: "Cafe OS software keyboard applet library"
note: >-
Loaded from cafeLibs/ only when swkbd.pack is present in the MLC;
otherwise the built-in keyboard is used and the file is ignored.
Loaded from cafeLibs/ only when swkbd.pack is present in the MLC.
Otherwise the built-in keyboard is used and the file is ignored.
source_ref: "src/Cafe/OS/RPL/rpl.cpp:1929-1933, src/Cafe/OS/RPL/rpl.cpp:1978-1988"
- name: erreula.rpl
@@ -346,8 +346,8 @@ files:
hle_fallback: true
description: "Cafe OS error viewer applet library"
note: >-
Loaded from cafeLibs/ only when erreula.pack is present in the MLC;
otherwise the built-in error viewer is used and the file is ignored.
Loaded from cafeLibs/ only when erreula.pack is present in the MLC.
Otherwise the built-in error viewer is used and the file is ignored.
source_ref: "src/Cafe/OS/RPL/rpl.cpp:1935-1939, src/Cafe/OS/RPL/rpl.cpp:1978-1988"
- name: swkbd.pack
@@ -358,7 +358,7 @@ files:
description: "Software keyboard applet data, title 0005001b-1004f000"
note: >-
Its presence in the MLC is what lets a swkbd.rpl from cafeLibs/ be
used; the applet then reads it through the Cafe filesystem.
used, and the applet then reads it through the Cafe filesystem.
source_ref: "src/Cafe/OS/RPL/rpl.cpp:1929-1933"
- name: erreula.pack
@@ -369,7 +369,7 @@ files:
description: "Error viewer applet data, title 0005001b-10051000"
note: >-
Its presence in the MLC is what lets an erreula.rpl from cafeLibs/ be
used; the applet then reads it through the Cafe filesystem.
used, and the applet then reads it through the Cafe filesystem.
source_ref: "src/Cafe/OS/RPL/rpl.cpp:1935-1939"
- name: OfflineDB.zar
@@ -476,7 +476,7 @@ files:
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:475, src/Cafe/IOSU/legacy/iosu_crypto.cpp:477, src/Cafe/IOSU/legacy/iosu_crypto.cpp:312-326"
# CA certificates, same title, scerts/. Parsed as DER X.509 and added to
# the SSL store; every one of them must load for online mode.
# the SSL store. Every one of them must load for online mode.
- name: CACERT_NINTENDO_CA.der
path: Cemu/mlc01/sys/title/0005001b/10054000/content/scerts/CACERT_NINTENDO_CA.der
standalone_path: mlc01/sys/title/0005001b/10054000/content/scerts/CACERT_NINTENDO_CA.der
+9 -9
View File
@@ -22,7 +22,7 @@ notes: |
src/engine/CGameLauncher.cpp:134-141, 64-78). A file name containing
keenN.exe, keenNe.exe, keenN.lua or kNdemo.exe (N from 1 to 6) or kdreams
makes the folder a game (src/engine/CGameLauncher.cpp:437-487). Folder names
are free; the paths below use the folder names of the packages the project
are free. The paths below use the folder names of the packages the project
publishes for its in-app downloader, which unpacks under games/
(src/engine/gamedownloader.cpp:455-491). File lookups are case-insensitive.
@@ -42,20 +42,20 @@ notes: |
properties are known for Keen 1 v1.1, v1.31, v1.34, Keen 2 and 3 v1.0 and
v1.31, Keen 4 and 5 v1.4, Keen 6 v1.4 and v1.5, Keen Dreams and the Keen 6
demo (src/fileio/CTileLoader.cpp:68-88). The constructor also holds a
support map keyed by the same sizes (src/fileio/CExeFile.cpp:29-50); its
support map keyed by the same sizes (src/fileio/CExeFile.cpp:29-50). Its
result and the CRC comparison of getEXECrc are stored in the launcher entry
and read nowhere else (src/engine/CGameLauncher.cpp:546-548).
Vorticon episodes open egahead, egalatch and egasprit, one levelNN file per
map (80 is the world map, 81 the ending map, 90 the title map; the other
map (80 is the world map, 81 the ending map, 90 the title map, and the other
numbers come from the world map data) and finale.ckN. Episode 1 also reads
its story, help and ending texts, its sounds and its preview screens from
files; episodes 2 and 3 take texts and sounds from the executable
files, while episodes 2 and 3 take texts and sounds from the executable
(src/engine/keen/vorticon/CStory.cpp:35-76,
src/engine/keen/vorticon/CHelp.cpp:38-81,
src/engine/keen/vorticon/CAudioVorticon.cpp:40-60). A sounds.ckN file, when
present, replaces the embedded sounds. Without the three EGA files or a
level file nothing is drawn or the map load fails; the text, finale, sound
level file nothing is drawn or the map load fails. The text, finale, sound
and preview files are skipped when absent. High scores are kept in the
engine's own highscoreepN.dat, SCORES.CKN is not read
(src/engine/keen/vorticon/CHighScores.cpp:394-397).
@@ -78,7 +78,7 @@ notes: |
(src/engine/keen/dreams/dreamsengine.cpp:103-114, 226-283, 438) and opens
KDREAMS.EGA, KDREAMS.MAP and KDREAMS.AUD, quitting when one is missing.
The same file lists a size and CRC-32 for each file of that release
(src/engine/keen/dreams/dreamsengine.cpp:93-101); the routine that compared
(src/engine/keen/dreams/dreamsengine.cpp:93-101), but the routine that compared
them is commented out (src/engine/refkeen/be_cross_fs.cpp:660-679), so
nothing is verified. LAST.SHL is in that list and is never opened.
@@ -813,7 +813,7 @@ files:
description: "Keen 6 EGA graphics"
required: false
source_ref: "src/engine/keen/galaxy/res/CEGAGraphicsGalaxy.cpp:754-763"
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
unsourceable: "retail data the collection does not hold, and a same-named file of another game must not stand in"
- name: "gamemaps.ck6"
path: "games/keen6/gamemaps.ck6"
@@ -822,7 +822,7 @@ files:
description: "Keen 6 level maps"
required: false
source_ref: "src/fileio/KeenFiles.h:47, src/engine/keen/galaxy/common/CMapLoaderGalaxy.cpp:249-257"
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
unsourceable: "retail data the collection does not hold, and a same-named file of another game must not stand in"
- name: "audio.ck6"
path: "games/keen6/audio.ck6"
@@ -831,7 +831,7 @@ files:
description: "Keen 6 sounds and music"
required: false
source_ref: "src/fileio/KeenFiles.h:44, src/engine/keen/galaxy/res/CAudioGalaxy.cpp:358-366, src/fileio/CExeFile.cpp:709-716"
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
unsourceable: "retail data the collection does not hold, and a same-named file of another game must not stand in"
# Commander Keen 6: Aliens Ate My Baby Sitter! (demo)
- name: "k6demo.exe"
+2 -2
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://git.citron-emu.org/citron-emu/Citron"
upstream: "https://git.citron-emu.org/citron-emu/Citron"
profiled_date: "2026-03-26"
upstream_gone: "git.citron-emu.org no longer resolves, and git.citron-emu.com redirects to an unrelated survey site, the domain having been taken. Observed 2026-09-04; no mirror found."
upstream_gone: "git.citron-emu.org no longer resolves, and git.citron-emu.com redirects to an unrelated survey site, the domain having been taken. Observed 2026-09-04, no mirror found."
core_version: "2026.03.12"
display_name: "Citron (Nintendo Switch)"
cores:
@@ -17,7 +17,7 @@ mode: standalone
# Citron is a community fork of yuzu, continued by Zephyron after yuzu's takedown.
# Key files loaded from <data_dir>/keys/ (fs_paths.h:18, path_util.cpp:124).
# On Linux: $XDG_DATA_HOME/citron/keys/
# On Batocera: XDG_DATA_HOME=/userdata/saves/switch → /userdata/saves/switch/citron/keys/
# On Batocera: XDG_DATA_HOME=/userdata/saves/switch -> /userdata/saves/switch/citron/keys/
# Firmware NCAs are installed into NAND via UI (main.cpp:1808), not placed as files.
# HLE fallbacks exist for fonts, timezone, system version, mii model, ng word lists.
+12 -12
View File
@@ -242,7 +242,7 @@ files:
# -------------------------------------------------------
# Amstrad CPC (machine_name: "AmstradCPC")
# Built into binary; external files override built-in copies
# Built into binary. External files override built-in copies
# -------------------------------------------------------
- name: os464.rom
path: AmstradCPC/os464.rom
@@ -506,7 +506,7 @@ files:
Conditional: needed for disk controller. Also used by Oric Pravetz. The
catalogue accepts 9796a238 and b72a2c70, the same PROM in two byte orders.
set_state_machine() takes an image whose first byte is 0x18 as already in
Beneath Apple ProDOS order (b72a2c70) and only reorders its addresses; any
Beneath Apple ProDOS order (b72a2c70) and only reorders its addresses. Any
other image is read as the unadulterated P6 PROM (9796a238), its address
lines and the top nibble of each value remapped into that order. Both give
the same internal table.
@@ -695,7 +695,7 @@ files:
required: true
note: >
Required for Macintosh 512ke and Plus models. The catalogue accepts three
images, 4fa5b399, 7cacd18f and b2102e8e; b2102e8e carries the ROM
images, 4fa5b399, 7cacd18f and b2102e8e, and b2102e8e carries the ROM
checksum 4D1F8172 of the third Mac Plus revision. The
machine copies whichever is supplied into its 128 KiB ROM without
reading the revision.
@@ -747,7 +747,7 @@ files:
size: 32768
crc32: "ee229390"
required: false
note: "Alternative to msx.rom for the Japan region, which the analyser never sets; only the user picks it (Analyser/Static/MSX/Target.hpp:34, Analyser/Static/MSX/StaticAnalyser.cpp:217-219)."
note: "Alternative to msx.rom for the Japan region, which the analyser never sets. Only the user picks it (Analyser/Static/MSX/Target.hpp:34, Analyser/Static/MSX/StaticAnalyser.cpp:217-219)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:785-792"
- name: msx-american.rom
@@ -1176,7 +1176,7 @@ files:
size: 4096
crc32: "7fc11454"
required: false
note: "Required for the Danish region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
note: "Required for the Danish region, which only the user picks. The analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1250-1257"
- name: kernel-danish.bin
@@ -1186,7 +1186,7 @@ files:
size: 8192
crc32: "02adaf16"
required: false
note: "Required for the Danish region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
note: "Required for the Danish region, which only the user picks. The analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1258-1265"
- name: characters-japanese.bin
@@ -1196,7 +1196,7 @@ files:
size: 4096
crc32: "fcfd8a4b"
required: false
note: "Required for the Japanese region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
note: "Required for the Japanese region, which only the user picks. The analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1266-1273"
- name: kernel-japanese.bin
@@ -1206,7 +1206,7 @@ files:
size: 8192
crc32: "336900d7"
required: false
note: "Required for the Japanese region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
note: "Required for the Japanese region, which only the user picks. The analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1274-1281"
- name: characters-swedish.bin
@@ -1216,7 +1216,7 @@ files:
size: 4096
crc32: "d808551d"
required: false
note: "Required for the Swedish region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
note: "Required for the Swedish region, which only the user picks. The analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1282-1289"
- name: kernel-swedish.bin
@@ -1226,12 +1226,12 @@ files:
size: 8192
crc32: "b2a60662"
required: false
note: "Required for the Swedish region, which only the user picks; the analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
note: "Required for the Swedish region, which only the user picks. The analyser sets American or European alone (Analyser/Static/Commodore/StaticAnalyser.cpp:350-380, Machines/Commodore/Vic-20/Vic20.cpp:334-345)."
source_ref: "Machines/Utility/ROMCatalogue.cpp:1290-1297"
# -------------------------------------------------------
# Sinclair ZX Spectrum (machine_name: "ZXSpectrum")
# Built into binary; external files override built-in copies
# Built into binary. External files override built-in copies
# -------------------------------------------------------
- name: 48.rom
path: ZXSpectrum/48.rom
@@ -1275,7 +1275,7 @@ files:
# -------------------------------------------------------
# Sinclair ZX80/ZX81 (machine_name: "ZX8081")
# Built into binary; external files override built-in copies
# Built into binary. External files override built-in copies
# -------------------------------------------------------
- name: zx80.rom
path: ZX8081/zx80.rom
+2 -2
View File
@@ -17,7 +17,7 @@ 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.
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
@@ -41,7 +41,7 @@ notes: |
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
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).
+2 -2
View File
@@ -26,7 +26,7 @@ notes: |
(crates/coolbaremu-core/src/cbe/archive.rs:68-73). Files next to the .cbe
(pay kernels, records, update data) are indexed as the guest filesystem
(crates/coolbaremu-core/src/machine/mod.rs:1022-1024,
crates/coolbaremu-core/src/machine/virtual_fs.rs:58-103); they belong to
crates/coolbaremu-core/src/machine/virtual_fs.rs:58-103), and they belong to
the game.
The only system directory read is coolbaremu_orientation.csv, an optional
@@ -40,5 +40,5 @@ files: []
exclusion_note: >
The firmware services are reimplemented in the core and the font is the
embedded unifont crate; the system directory holds only an optional
embedded unifont crate. The system directory holds only an optional
user-written orientation list.
+8 -8
View File
@@ -31,7 +31,7 @@ notes: |
QDATA/SPointer.dat
Any missing file aborts init with "Invalid Theme Hospital
folder specified in config file..." (:1526).
3. DataM/Demo.dat (:1535) marks the shareware demo install; its
3. DataM/Demo.dat (:1535) marks the shareware demo install. Its
presence switches a different corruption-size check on
ANIMS/WINLEVEL.SMK (243188), LEVELS/LEVEL.L1 (163948) and
DATA/BUTTON01.DAT (252811) at :1559-1561. Full installs instead
@@ -51,7 +51,7 @@ notes: |
The sound/music path uses the game's XMI tracks when a SoundFont is
available (App:findSoundFont at :1589 probes GeneralUser-GS.sf2,
FluidR3_GM.sf2, FluidR3.sf3 and three Linux system paths); the
FluidR3_GM.sf2, FluidR3.sf3 and three Linux system paths), and the
SoundFont is a user preference, not game data.
files:
@@ -63,14 +63,14 @@ files:
required: true
description: "Theme Hospital install directory (full game or demo)"
source_ref: "CorsixTH/Lua/filesystem.lua:64-76, CorsixTH/Lua/app.lua:1435-1447, 1454, 1499"
note: "Accepted as an install when it holds data, levels and qdata subdirectories; the rest of the tree is opened by name on demand."
note: "Accepted as an install when it holds data, levels and qdata subdirectories. The rest of the tree is opened by name on demand."
- name: "VBLK-0.TAB"
path: "corsixth/DATA/VBLK-0.TAB"
system: theme-hospital
category: game_data
required: true
description: "Theme Hospital core sprite index; sentinel checked at startup"
description: "Theme Hospital core sprite index, sentinel checked at startup"
source_ref: "CorsixTH/Lua/app.lua:1521"
note: "Looked up as Data/VBlk-0.tab."
@@ -79,7 +79,7 @@ files:
system: theme-hospital
category: game_data
required: true
description: "First Theme Hospital level file; sentinel checked at startup"
description: "First Theme Hospital level file, sentinel checked at startup"
source_ref: "CorsixTH/Lua/app.lua:1522, 1560"
note: "Looked up as Levels/Level.L1. With the demo marker present, a size more than 1024 bytes away from 163948 is reported as corrupt and the game still starts."
@@ -88,7 +88,7 @@ files:
system: theme-hospital
category: game_data
required: true
description: "Sprite pointer table; sentinel checked at startup"
description: "Sprite pointer table, sentinel checked at startup"
source_ref: "CorsixTH/Lua/app.lua:1523"
note: "Looked up as QData/SPointer.dat."
@@ -97,7 +97,7 @@ files:
system: theme-hospital
category: game_data
required: true
description: "Theme Hospital font; CRC32 selects charset (mik vs cp437)"
description: "Theme Hospital font, its CRC32 selects charset (mik vs cp437)"
source_ref: "CorsixTH/Lua/app.lua:1576-1584"
note: "Looked up as QData/Font00V.dat."
@@ -106,6 +106,6 @@ files:
system: theme-hospital
category: game_data
required: false
description: "Demo marker; its presence selects the demo graphics set and the demo size checks"
description: "Demo marker: its presence selects the demo graphics set and the demo size checks"
source_ref: "CorsixTH/Lua/app.lua:1535-1539, 1558-1561"
note: "Looked up as DataM/Demo.dat. Absent from a full install."
+10 -10
View File
@@ -15,7 +15,7 @@ mode: standalone
notes: |
Amstrad CPC emulator by Marco Vieth and Rainer Loritz, closed-source freeware
for Windows, macOS, Linux, Android and iOS. Machines are the CPC 464, 664 and
6128; the firmware identifier and the message catalogue also know the 464+,
6128. The firmware identifier and the message catalogue also know the 464+,
the 6128+ and the KC compact.
Two packages were used. The 3.0.2 Windows portable and macOS builds of
@@ -28,7 +28,7 @@ notes: |
truncating and patching each file and reading the emulator's own messages.
ROMs live in ROM_PATH, "./ROM/" in the shipped configuration, resolved against
the working directory; the macOS build reads them from the application bundle
the working directory, while the macOS build reads them from the application bundle
Resources folder. Slots are filled by ROM_BLOCK lines naming a ROM number, a
file in ROM_PATH and a 16 KB block position inside that file:
@@ -42,7 +42,7 @@ notes: |
for types 2, 4 and 5, and adds the M4 line once for all types. A file named by
a ROM_BLOCK line that cannot be opened prints "ROM: Cannot open file" and ends
the process with status 3 before audio initialisation, whichever slot it fills
and whether or not the matching device is enabled; deleting the line instead
and whether or not the matching device is enabled. Deleting the line instead
lets the emulator start.
The machine is identified from the foreground ROM, not from the lower half and
@@ -65,18 +65,18 @@ notes: |
M4 board emulation is on by default. HACK.ROM, the board's lower ROM, is
opened at every startup whatever M4_ENABLED holds, after M4_SD_PATH +
NMIROM.BIN has been tried, so a NMIROM.BIN placed on the emulated SD card
replaces it; with neither present the emulator prints "Unable to load
replaces it. With neither present the emulator prints "Unable to load
HACK.ROM" and keeps running. M4.ROM contents are checked, a zeroed file boots
the CPC and reports "M4 ROM not valid." The firmware updater downloads
M4FIRM.BIN from spinpoint.org and rewrites M4.ROM and HACK.ROM in place.
Alongside the ROMs the binary reads its own payload from the program
directory: cpcemu.msg, the message catalogue, whose absence leaves every
message unprinted; cpcemu.dat, colours and key tables; cpcemu.hlp, the online
help opened on F1; cpcemu.dbf, the poke database opened from the poke menu;
and cpcemu0.cfg, the template used when no user configuration exists.
directory. cpcemu.msg is the message catalogue, and its absence leaves every
message unprinted. cpcemu.dat holds colours and key tables, cpcemu.hlp is the
online help opened on F1, cpcemu.dbf is the poke database opened from the poke
menu, and cpcemu0.cfg is the template used when no user configuration exists.
Configuration is looked up first in the user profile, ~/.CPCemu/cpcemu.cfg on
Linux, then cpcemu0.cfg in the working directory; with neither, startup stops
Linux, then cpcemu0.cfg in the working directory. With neither, startup stops
on "CPCEMU: Use INSTALL first". The disc, tape and snapshot folders and the
M4 SD card folder hold user content.
@@ -133,7 +133,7 @@ files:
note: >-
AMSDOS disc ROM, the 8 KB image zero-padded to 16 KB. Declared for every
machine by the shipped configuration, so startup ends on status 3 without
it; dropping the ROM_BLOCK line instead boots with "ROM: No AMSDOS ROM
it. Dropping the ROM_BLOCK line instead boots with "ROM: No AMSDOS ROM
found." and no disc support. Length is not checked, an 8 KB file installs
the AMSDOS speedup all the same.
+1 -1
View File
@@ -19,7 +19,7 @@ files: []
notes: >
Libretro port of Craft, a simple Minecraft clone by Michael Fogleman.
All textures, fonts, and shaders are embedded in the binary (header arrays).
Upstream loads textures from external PNG files; libretro port compiles them in.
Upstream loads textures from external PNG files, while the libretro port compiles them in.
Uses system directory only for craft.db/auth.db (core-generated save data).
Source has zero fopen calls. .info declares no firmware.
source_ref: "libretro/libretro.c, src/main.c:2680-2698, src/main.c:3315-3345"
+4 -4
View File
@@ -53,7 +53,7 @@ notes: |
Chihiro, and each one ends the run when it cannot be opened. Byte 0x1F00 of the
QC firmware carries the region, rewritten to one the title's BootID accepts so
the board does not reject the game. Titles read and write all four images
through the JVS patches at offsets of their own choosing; no size, bound or
through the JVS patches at offsets of their own choosing, and no size, bound or
hash check exists anywhere in that path.
ref: src/core/hle/JVS/JVS.cpp:129-145,
src/core/hle/JVS/JVS.cpp:174-213,
@@ -79,7 +79,7 @@ files:
validation: [size]
description: "Chihiro media board flash ROM"
note: >-
Checked for existence, opened, and rejected unless it is exactly 2 MB; each
Checked for existence, opened, and rejected unless it is exactly 2 MB. Each
failure ends the run with a message naming the file and the EmuMediaBoard
folder. Read once, to write out the two SEGABOOT halves when they are
absent. It is also the target a Chihiro title returns to when it reboots
@@ -183,7 +183,7 @@ files:
validation: [size]
description: "Xbox EEPROM image"
note: >-
Opened at startup and mapped read/write; the file is created and filled
Opened at startup and mapped read/write. The file is created and filled
with defaults when it does not exist, and a file that is not 256 bytes ends
the run. Section checksums are recomputed on every load. The encrypted
section is read as plaintext: the stored checksum is compared with the
@@ -206,7 +206,7 @@ files:
as produced by dump-xbox. A file of any other length is refused with a
warning naming the expected length, and an absent file only costs the
ability to read save data from a real console. The certificate key derives
the LAN, signature and alternate signature keys of the running title; the
the LAN, signature and alternate signature keys of the running title, and the
EEPROM key checks the EEPROM header and is read again by the EEPROM editor
to recompute the checksum it writes.
source_ref: "src/common/FilePaths.cpp:139-172, src/core/kernel/common/types.h:2232, src/core/kernel/init/CxbxKrnl.cpp:113-132, src/common/EmuEEPROM.cpp:184-191, src/gui/DlgEepromConfig.cpp:200-207"
+3 -3
View File
@@ -16,7 +16,7 @@ systems:
notes: |
High-level Nintendo 64 emulator. The boot sequence and the RSP are emulated
at high level: no PIF ROM or other console firmware is opened. The code
carries no version string; the tree is 837 commits past tag 1.1.8.
carries no version string, and the tree is 837 commits past tag 1.1.8.
Every data file is resolved against baseDir, which on Linux is the working
directory at startup. ROCKNIX copies the package to /storage/.config/DaedalusX64
@@ -26,7 +26,7 @@ notes: |
Linux builds pick the renderer by architecture: OpenGL ES on aarch64 and arm,
desktop OpenGL elsewhere. Each renderer installs its own n64.psh, the fragment
shader library prepended to every shader the renderer compiles. The ES
renderer fails graphics init without it; the desktop one goes on with an
renderer fails graphics init without it, while the desktop one goes on with an
empty library and its shaders do not compile.
ref: Source/CMakeLists.txt:132-137, Source/SysPosix/CMakeLists.txt:12-18,
Source/SysGLES/HLEGraphics/RendererGL.cpp:77-110,
@@ -80,5 +80,5 @@ files:
md5: "78609089d3dad36318ae0190321e6f3e"
bundled: true
description: "UI font"
note: "Opened through SDL_ttf for the on-screen menus; a failure is printed and emulation is not affected."
note: "Opened through SDL_ttf for the on-screen menus. A failure is printed and emulation is not affected."
source_ref: "Source/SysGL/Graphics/DrawTextSDL.cpp:30-41, Source/SysGLES/Graphics/DrawTextSDL.cpp:30-41"
+1 -1
View File
@@ -147,7 +147,7 @@ files:
required: false
hle_fallback: true
category: bios_zip
note: "MIE (Maple-JVS bridge) Z80 MCU firmware (315-6146.bin). HLE mode available; LLE mode requires this archive."
note: "MIE (Maple-JVS bridge) Z80 MCU firmware (315-6146.bin). HLE mode available, LLE mode requires this archive."
- name: jvs13551.zip
required: true
+2 -2
View File
@@ -11,7 +11,7 @@ cores: [desmume]
systems: [nintendo-ds]
notes: |
Full HLE of ARM7/ARM9 SWI routines; BIOS files optional for most games.
Full HLE of ARM7/ARM9 SWI routines, so BIOS files are optional for most games.
External BIOS enables SWI-from-BIOS mode. Firmware boot requires both
BIOS files loaded and interpreter mode (JIT incompatible).
No DSi support. Core option: desmume_use_external_bios.
@@ -43,4 +43,4 @@ files:
required: false
hle_fallback: true
source_ref: "desmume/src/firmware.cpp:249-280, desmume/src/frontend/libretro/libretro.cpp:765"
note: "Loaded only if both BIOS files present; needed for boot animation, wifi config, user settings"
note: "Loaded only if both BIOS files present. Needed for boot animation, wifi config, user settings"
+1 -1
View File
@@ -15,7 +15,7 @@ notes: |
Frozen 2015 snapshot of DeSmuME. The core emulator code supports external
BIOS/firmware (PrepareBiosARM7/ARM9 in desmume/src/NDSSystem.cpp:1957-2033), but
UseExtBIOS defaults to false (desmume/src/NDSSystem.h:497) and the libretro frontend
never sets it — no desmume_use_external_bios core option exists in this
never sets it: no desmume_use_external_bios core option exists in this
version. Uses HLE BIOS stubs when external BIOS not loaded.
files: []
+12 -12
View File
@@ -28,7 +28,7 @@ notes: |
LoadModArchives() (:703) - mods/<name>.mpq for each active mod
diabdat.mpq is matched uppercase first ("DIABDAT.MPQ", GOG/retail CD
convention, line 538), then lowercase (line 542); if neither is found
convention, line 538), then lowercase (line 542). If neither is found
the loader falls back to spawn.mpq (line 544). Missing BOTH triggers
the "diabdat.mpq or spawn.mpq" InsertCDDlg dialog and the game cannot
start.
@@ -42,7 +42,7 @@ notes: |
CMakeLists.txt:192-204). CMake/Assets.cmake:46-238 lists the packed
files (ASSETS_VERSION, arena, data, fonts, gendata, levels, lua,
plrgfx, txtdata and ui_art, plus data/inv/objcurs-widths.txt and the
ui_art PNGs outside SDL1 and Vita builds); each Translations/<lang>.po
ui_art PNGs outside SDL1 and Vita builds), and each Translations/<lang>.po
is compiled with msgfmt to <lang>.gmo and appended
(CMake/Assets.cmake:8-29, 268-272). The archive is written with
"smpq -A -M 1 -C BZIP2 -c" from the staged assets directory
@@ -57,7 +57,7 @@ notes: |
to fonts.mpq when it is loaded (Source/init.cpp:98-114).
fonts.mpq is the CJK + language assets add-on from the
devilutionx-assets release; English installs do not need it.
devilutionx-assets release. English installs do not need it.
files:
- name: diabdat.mpq
@@ -67,7 +67,7 @@ files:
required: true
description: "Diablo retail or GOG MPQ (contains all game data)"
aliases: [DIABDAT.MPQ]
note: "primary game archive; GOG CD convention uses uppercase"
note: "primary game archive, the GOG CD convention uses uppercase"
source_ref: "Source/engine/assets.cpp:537-542"
- name: spawn.mpq
@@ -76,7 +76,7 @@ files:
category: game_data
required: false
description: "Diablo shareware archive, used when diabdat.mpq is absent"
note: "freely redistributable shareware; triggers gbIsSpawn mode"
note: "freely redistributable shareware, triggers gbIsSpawn mode"
source_ref: "Source/engine/assets.cpp:544"
- name: hellfire.mpq
@@ -92,7 +92,7 @@ files:
system: diablo
category: game_data
required: false
description: "Hellfire monk class assets; mandatory when hellfire.mpq is present"
description: "Hellfire monk class assets, mandatory when hellfire.mpq is present"
source_ref: "Source/engine/assets.cpp:583"
- name: hfmusic.mpq
@@ -100,7 +100,7 @@ files:
system: diablo
category: game_data
required: false
description: "Hellfire music; mandatory when hellfire.mpq is present"
description: "Hellfire music, mandatory when hellfire.mpq is present"
source_ref: "Source/engine/assets.cpp:584"
- name: hfvoice.mpq
@@ -108,7 +108,7 @@ files:
system: diablo
category: game_data
required: false
description: "Hellfire voices; mandatory when hellfire.mpq is present"
description: "Hellfire voices, mandatory when hellfire.mpq is present"
source_ref: "Source/engine/assets.cpp:585"
- name: "hfbard.mpq"
@@ -150,7 +150,7 @@ files:
category: game_data
required: false
description: "Spanish voice pack"
note: "The archive named after the selected language code is loaded; English loads none."
note: "The archive named after the selected language code is loaded. English loads none."
source_ref: "Source/engine/assets.cpp:521-528"
- name: "pl.mpq"
@@ -159,7 +159,7 @@ files:
category: game_data
required: false
description: "Polish voice pack"
note: "The archive named after the selected language code is loaded; English loads none."
note: "The archive named after the selected language code is loaded. English loads none."
source_ref: "Source/engine/assets.cpp:521-528"
- name: "ru.mpq"
@@ -168,7 +168,7 @@ files:
category: game_data
required: false
description: "Russian voice pack"
note: "The archive named after the selected language code is loaded; English loads none."
note: "The archive named after the selected language code is loaded. English loads none."
source_ref: "Source/engine/assets.cpp:521-528"
- name: "hf.mpq"
@@ -177,5 +177,5 @@ files:
category: game_data
required: false
description: "Hellfire mod archive packed from the repository's mods/hf directory"
note: "mods/<name>.mpq is opened for each active mod; hf is activated when hellfire.mpq is present. A mod with no archive and no loose directory is served from the core archives. Built by CMake with smpq (MPQ version 1, BZIP2, no attributes) from the hellfire_mod file list."
note: "mods/<name>.mpq is opened for each active mod, and hf is activated when hellfire.mpq is present. A mod with no archive and no loose directory is served from the core archives. Built by CMake with smpq (MPQ version 1, BZIP2, no attributes) from the hellfire_mod file list."
source_ref: "Source/engine/assets.cpp:748-764, Source/options.cpp:77-79, CMakeLists.txt:204, CMake/Mods.cmake:8-33, 58-66"
+4 -4
View File
@@ -35,7 +35,7 @@ notes: |
files:
# ================================================================
# base/ - Doom 3 retail paks
# README.md:136 names "pak000.pk4 to pak008.pk4"; the engine itself
# README.md:136 names "pak000.pk4 to pak008.pk4", but the engine itself
# loads every .pk4 found in the gamedir, so the exact set depends on
# which patch level the user owns (1.3.1 ships 008).
# ================================================================
@@ -53,7 +53,7 @@ files:
path: "base/pak001.pk4"
required: true
source_ref: "neo/framework/FileSystem.cpp:2125"
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
unsourceable: "retail data the collection does not hold. A same-named file of another game must not stand in"
- name: "pak002.pk4"
category: game_data
@@ -82,7 +82,7 @@ files:
path: "base/pak005.pk4"
required: false
source_ref: "neo/framework/FileSystem.cpp:2125"
note: "Shipped with 1.1 patch; absent on 1.0 install."
note: "Shipped with 1.1 patch, absent on 1.0 install."
- name: "pak006.pk4"
category: game_data
@@ -106,7 +106,7 @@ files:
path: "base/pak008.pk4"
required: false
source_ref: "neo/framework/FileSystem.cpp:2125, neo/framework/FileSystem.cpp:893-897"
note: "Shipped with 1.3.1 patch; path handling explicitly names it."
note: "Shipped with 1.3.1 patch. Path handling explicitly names it."
- name: "zpak001.pk4"
category: game_data
+9 -9
View File
@@ -17,17 +17,17 @@ notes: |
Dingoo A320 and Gemei A330 emulator written in Rust by AloysHF. The
libretro core and the dingoo-emu standalone binary share the
dingooemu-core crate. Content is read from its full path (need_fullpath
= true, crates/dingooemu-libretro/src/api.rs:87;
crates/dingooemu/src/main.rs:226; crates/dingooemu-core/src/emulator.rs:33-37;
= true, crates/dingooemu-libretro/src/api.rs:87,
crates/dingooemu/src/main.rs:226, crates/dingooemu-core/src/emulator.rs:33-37,
crates/dingooemu-core/src/package.rs:124-135). The CCDL package's load
address selects the runtime: a .app loaded in the 0x8xxxxxxx range runs on
the MIPS32 interpreter as an A320, a .cc, .c2s or .c3s loaded at
0x10100000 (retail SDK) or 0x13800000 (homebrew SDK) runs on the
ARM32/Thumb interpreter as an A330
(crates/dingooemu-core/src/content.rs:66-74, 104-121;
(crates/dingooemu-core/src/content.rs:66-74, 104-121,
crates/dingooemu-core/src/emulator.rs:44-55). Both runtimes bind the
package's imports to Rust implementations of the device SDK
(crates/dingooemu-core/src/a320/runtime/sdk_hle/mod.rs:22-30;
(crates/dingooemu-core/src/a320/runtime/sdk_hle/mod.rs:22-30,
crates/dingooemu-core/src/a330/runtime/sdk_hle/mod.rs:226-234). No
firmware code is executed and no font or system file backs those calls.
@@ -47,7 +47,7 @@ notes: |
resolves a name in five steps: a file under the save directory, a host
file relative to the content's directory, a resource packed inside the
package, the zip payload appended to the package, then an entry of the
firmware archive mounted from the content's directory; a name none of
firmware archive mounted from the content's directory. A name none of
them answers fails the open. fsys_findfirst enumerates the content's
directory and refuses to leave it
(crates/dingooemu-core/src/a330/runtime/sdk_hle/files.rs:381-395).
@@ -59,7 +59,7 @@ notes: |
(crates/dingooemu-core/src/a320/runtime.rs:372,
crates/dingooemu-core/src/a330/runtime.rs:415-417). The core queries
RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY only
(crates/dingooemu-libretro/src/constants.rs:30); no system directory
(crates/dingooemu-libretro/src/constants.rs:30), and no system directory
constant exists in the crate.
With the diagnostic core option on, dingooemu-diagnostic.txt is written
@@ -88,15 +88,15 @@ files:
(crates/dingooemu-core/src/a330/runtime.rs:415-418): the content's directory is
scanned and the first entry whose extension is hxf, in any case, is
read whole. The file must start with WADF0100 and declare at offset
20 a size within its own length; each record is a u32 name length,
20 a size within its own length. Each record is a u32 name length,
the name, one byte, a u32 data length and the data, and a zero name
length ends the table. Names are lowercased, backslashes turned to
slashes and a leading drive letter dropped, so Z:\SYSTEM\nls\c_936.nls
and system/nls/c_936.nls reach the same entry. The archive is the
last source consulted when a game opens a file the save directory,
the content directory, the package's resources and its appended zip
payload do not hold; without it such an open fails and the runtime
payload do not hold. Without it such an open fails and the runtime
goes on. The image itself is never hashed, and the hashes here name
the last firmware Gemei published; the V1.10 image of 2011-01-25
the last firmware Gemei published, and the V1.10 image of 2011-01-25
indexes the same way.
source_ref: "crates/dingooemu-core/src/a330/firmware_archive.rs:16-50, 54-58, 63-96, 117-124, crates/dingooemu-core/src/a330/runtime/sdk_hle/files.rs:108-133"
+2 -2
View File
@@ -17,7 +17,7 @@ notes: |
Two loading modes:
1. Load dinothawr.game as content (data in content directory)
2. supports_no_game=true: loads from system_dir/dinothawr/
ref: libretro.c:476-479 —
ref: libretro.c:476-479
game_path_dir = join(system_dir, "/", "dinothawr")
game_path = join(game_path_dir, "/", "dinothawr.game")
@@ -29,4 +29,4 @@ data_directories:
source_ref: "libretro.c:479"
files: []
# no BIOS/firmware — game data loaded via data_directories or content
# no BIOS/firmware, game data loaded via data_directories or content
+1 -1
View File
@@ -49,7 +49,7 @@ files:
Xbox MCPX ROM (secret boot ROM on the southbridge). Contains the initial
boot vector that loads the flash BIOS. Overlaid at the last 512 bytes of
the 16 MB flash region (0xFFFFFE00-0xFFFFFFFF). Only needed for retail
machine types; Debug and Chihiro skip this file.
machine types. Debug and Chihiro skip this file.
source_ref: "src/xbox.cpp:186-207, src/libretro/libretro.cpp:202"
- name: "cromwell_1024.bin"
+2 -2
View File
@@ -17,7 +17,7 @@ notes: |
and libretro backends (source == upstream).
Libretro port loads from system_dir/DirkSimple/.
ref: dirksimple_libretro.c:782,794 —
ref: dirksimple_libretro.c:782,794
sysdir from RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
basedir = sysdir + "/DirkSimple/"
DirkSimple_startup(basedir, info->path, ...) at line 799
@@ -38,5 +38,5 @@ data_directories:
source_ref: "dirksimple_libretro.c:794"
files: []
# no BIOS/firmware — game data via data_directories
# no BIOS/firmware, game data via data_directories
# user provides OGV video as content
+7 -7
View File
@@ -17,7 +17,7 @@ mode: standalone
notes: |
Android-only Dolphin fork continuing the MMJ line, published as the org.mm.jr
package. The repositories it released from are gone, including the
Dolphin-MMJR1 link in its own README; this reading is taken from a surviving
Dolphin-MMJR1 link in its own README. This reading is taken from a surviving
copy that carries the release build metadata of the app, applicationId
org.mm.jr and versionCode 15808.
ref: Source/Android/app/build.gradle:23-29,
@@ -27,7 +27,7 @@ notes: |
storage. The Sys directory is extracted from the APK assets into the app's
internal files directory, and the first run after a versionCode change
deletes it and extracts it again, so nothing placed there survives an update.
Paths below are relative to the user directory; entries with no path are read
Paths below are relative to the user directory. Entries with no path are read
only from the Sys directory and name their location in their note.
ref: Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java:93-134,
Source/Core/Common/CommonPaths.h:22-24, Source/Core/Common/FileUtil.cpp:756-807
@@ -43,7 +43,7 @@ notes: |
Fonts follow the IPL. When a dump is present the Shift JIS and Windows-1252
fonts are read out of it at offsets 0x1aff00 and 0x1fcf00, for 0x4a24d and
0x2575 bytes; otherwise the standalone font files are loaded whole, and the
0x2575 bytes. Otherwise the standalone font files are loaded whole, and the
bundled ones have different padding from the console fonts.
ref: Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:99-127,
Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:159-172,
@@ -147,7 +147,7 @@ files:
adler32_pairs_with: "dsp_coef.bin"
adler32_pairs: [["0x66f334fe", "0xf3b93527"], ["0x128ea7a2", "0xa4a575f5"]]
description: "DSP instruction ROM"
note: "DSP LLE only, and LLE aborts when the file is absent or not 8192 bytes. The adler32 is taken over the byte-swapped image and the value here is the Nintendo pair; five replacement pairs are also accepted."
note: "DSP LLE only, and LLE aborts when the file is absent or not 8192 bytes. The adler32 is taken over the byte-swapped image and the value here is the Nintendo pair. Five replacement pairs are also accepted."
source_ref: "Source/Core/Common/CommonPaths.h:108, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:120-152, Source/Core/Core/DSP/DSPCore.h:35, Source/Core/Core/DSP/DSPCore.cpp:38-80"
- name: dsp_coef.bin
@@ -168,7 +168,7 @@ files:
path: null
required: false
description: "Gecko code handler"
note: "Read from the root of the Sys directory when cheats are enabled, and written into guest memory between the installer bounds; too large a file is refused and cheats stay off."
note: "Read from the root of the Sys directory when cheats are enabled, and written into guest memory between the installer bounds. Too large a file is refused and cheats stay off."
source_ref: "Source/Core/Common/CommonPaths.h:124, Source/Core/Core/GeckoCode.cpp:121-136"
- name: keys.bin
@@ -190,7 +190,7 @@ files:
size: 16384
validation: [size]
description: "Wii system configuration"
note: "Opened through the emulated filesystem and accepted only at 0x4000 bytes; anything else is replaced by a freshly generated one."
note: "Opened through the emulated filesystem and accepted only at 0x4000 bytes, and anything else is replaced by a freshly generated one."
source_ref: "Source/Core/Common/CommonPaths.h:90, Source/Core/Core/SysConf.cpp:20, Source/Core/Core/SysConf.cpp:55-66"
- name: setting.txt
@@ -210,7 +210,7 @@ files:
required: false
hle_fallback: true
description: "Wii SD card image"
note: "Opened read-write when the SD device is opened; a 128 MB image is created when the file is missing."
note: "Opened read-write when the SD device is opened, and a 128 MB image is created when the file is missing."
source_ref: "Source/Core/Common/CommonPaths.h:119, Source/Core/Common/FileUtil.cpp:802, Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp:60-79"
- name: wiitdb.txt
+14 -14
View File
@@ -16,7 +16,7 @@ mode: standalone
notes: |
Android-only Dolphin fork published as the org.dolphinemu.mmjr package. The
repositories it was developed and released from are gone; this reading is
repositories it was developed and released from are gone. This reading is
taken from a surviving copy carrying the whole maintainer commit line, up to
the last one, which sets the version string to 2.0-18025. The tree is a
selective merge of Dolphin Official carrying that label rather than a
@@ -30,7 +30,7 @@ notes: |
files directory, and a change of git revision deletes it and extracts it
again, so nothing placed there survives an update. The build drops Resources
and Themes from the assets copy. Paths below are relative to the user
directory; entries with no path are read only from the Sys directory and name
directory. Entries with no path are read only from the Sys directory and name
their location in their note.
ref: Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java:103,
Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java:138-155,
@@ -53,7 +53,7 @@ notes: |
Fonts follow the IPL. When a dump is present the Shift JIS and Windows-1252
fonts are read out of it at offsets 0x1aff00 and 0x1fcf00, for 0x4a24d and
0x2575 bytes; otherwise the standalone font files are loaded whole, and the
0x2575 bytes. Otherwise the standalone font files are loaded whole, and the
bundled ones have different padding from the console fonts.
ref: Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:102-131,
Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:175-187,
@@ -88,7 +88,7 @@ notes: |
boot, one file at a time, and a file already present in the NAND is left
alone. Copies placed under Wii/shared2/wc24 are therefore the ones that
survive, and the shipped blanks only fill what is still missing. Dolphin
itself reads nwc24msg.cfg and nwc24dl.bin back out of the NAND; the rest are
itself reads nwc24msg.cfg and nwc24dl.bin back out of the NAND, and the rest are
there because titles expect them.
ref: Source/Core/Core/WiiRoot.cpp:288-322, Source/Core/Core/WiiRoot.cpp:330-335,
Source/Core/Core/IOS/Network/KD/NWC24Config.cpp:24-38,
@@ -125,7 +125,7 @@ files:
validation: [crc32]
on_mismatch: warn
description: "GameCube boot ROM, NTSC-U directory"
note: "Read whole into a 2 MiB buffer with no size check, then descrambled from 0x100 for 0x1afe00 bytes. The crc32 gate runs when the IPL itself is booted and only warns; the four non-PAL dumps, the Brazilian MPAL one included, pass here without complaint."
note: "Read whole into a 2 MiB buffer with no size check, then descrambled from 0x100 for 0x1afe00 bytes. The crc32 gate runs when the IPL itself is booted and only warns: the four non-PAL dumps, the Brazilian MPAL one included, pass here without complaint."
source_ref: "Source/Core/Core/Config/MainSettings.cpp:594-600, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:105-113, Source/Core/Core/HW/EXI/EXI_DeviceIPL.h:43, Source/Core/Core/Boot/Boot.cpp:408-442, Source/Core/Core/Boot/Boot.cpp:444-449"
- name: IPL.bin
@@ -183,7 +183,7 @@ files:
adler32_pairs_with: "dsp_coef.bin"
adler32_pairs: [["0x66f334fe", "0xf3b93527"], ["0xe789b5a5", "0xa4a575f5"]]
description: "DSP instruction ROM"
note: "DSP LLE only, and a file that is absent or not 8192 bytes fails initialisation, which aborts the emulation thread. The adler32 is taken over the byte-swapped image and the value here is the Nintendo pair; six replacement pairs are also accepted."
note: "DSP LLE only, and a file that is absent or not 8192 bytes fails initialisation, which aborts the emulation thread. The adler32 is taken over the byte-swapped image and the value here is the Nintendo pair. Six replacement pairs are also accepted."
source_ref: "Source/Core/Common/CommonPaths.h:120, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:87-105, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:107-120, Source/Core/Core/DSP/DSPCore.h:44, Source/Core/Core/DSP/DSPCore.cpp:28-71"
- name: dsp_coef.bin
@@ -204,7 +204,7 @@ files:
path: null
required: false
description: "Gecko code handler"
note: "Read from the root of the Sys directory when cheats are enabled, and written into guest memory between the installer bounds; too large a file is refused and cheats stay off."
note: "Read from the root of the Sys directory when cheats are enabled, and written into guest memory between the installer bounds. Too large a file is refused and cheats stay off."
source_ref: "Source/Core/Common/CommonPaths.h:139, Source/Core/Core/GeckoCode.cpp:120-134, Source/Core/Core/GeckoCode.cpp:142-144"
- name: keys.bin
@@ -226,7 +226,7 @@ files:
size: 16384
validation: [size]
description: "Wii system configuration"
note: "Opened through the emulated filesystem and accepted only at 0x4000 bytes; anything else is replaced by a freshly generated one."
note: "Opened through the emulated filesystem and accepted only at 0x4000 bytes, and anything else is replaced by a freshly generated one."
source_ref: "Source/Core/Common/CommonPaths.h:102, Source/Core/Core/SysConf.cpp:19, Source/Core/Core/SysConf.cpp:54-65"
- name: setting.txt
@@ -246,7 +246,7 @@ files:
required: false
hle_fallback: true
description: "Wii SD card image"
note: "Opened read-write when the SD device is opened; a 128 MB image is created when the file is missing. The configured override is empty by default, so the file stays under Load/."
note: "Opened read-write when the SD device is opened, and a 128 MB image is created when the file is missing. The configured override is empty by default, so the file stays under Load/."
source_ref: "Source/Core/Common/CommonPaths.h:134, Source/Core/Common/FileUtil.cpp:998, Source/Core/Core/Config/MainSettings.cpp:289, Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp:90-107"
- name: clientca.pem
@@ -268,7 +268,7 @@ files:
sha256: "723be9b32c3afb83a4a3757adf352529e90c0ad6fad52509963ba8942ae625df"
validation: [sha256]
description: "console SSL client private key"
note: "Read alongside the client certificate and parsed as the private key for it; either one failing leaves the connection without a client certificate."
note: "Read alongside the client certificate and parsed as the private key for it. Either one failing leaves the connection without a client certificate."
source_ref: "Source/Core/Core/IOS/Network/SSL.cpp:139-142, Source/Core/Core/IOS/Network/SSL.cpp:383-395, Source/Core/DiscIO/NANDImporter.cpp:225"
- name: rootca.pem
@@ -365,7 +365,7 @@ files:
system: nintendo-wii
required: false
description: "WiiConnect24 receive mailbox"
note: "Placed in the NAND by the Sys/Wii copy. The bundled file is a stub; the note shipped beside it gives 0x700000 as the size on a console."
note: "Placed in the NAND by the Sys/Wii copy. The bundled file is a stub, and the note shipped beside it gives 0x700000 as the size on a console."
source_ref: "Source/Core/Core/WiiRoot.cpp:288-322, Data/Sys/Wii/shared2/wc24/mbox/Readme.txt"
- name: wc24send.ctl
@@ -381,7 +381,7 @@ files:
system: nintendo-wii
required: false
description: "WiiConnect24 send mailbox"
note: "Placed in the NAND by the Sys/Wii copy. The bundled file is a stub; the note shipped beside it gives 0x200000 as the size on a console."
note: "Placed in the NAND by the Sys/Wii copy. The bundled file is a stub, and the note shipped beside it gives 0x200000 as the size on a console."
source_ref: "Source/Core/Core/WiiRoot.cpp:288-322, Data/Sys/Wii/shared2/wc24/mbox/Readme.txt"
- name: Readme.txt
@@ -391,7 +391,7 @@ files:
size: 103
sha256: "e5a888912968050c6c1d46d1c364c324684e1d15aaa62cfe36cf7fce2c687b21"
description: "note on the truncated mailboxes, copied into the NAND"
note: "The Sys/Wii copy walks the directory and takes every entry, so this file lands in the NAND with the mailboxes. It records the console sizes of the two mbx files. The hash names the file carried in the source tree, the only form it has, and is not a check the code performs; without it the name alone matches any readme."
note: "The Sys/Wii copy walks the directory and takes every entry, so this file lands in the NAND with the mailboxes. It records the console sizes of the two mbx files. The hash names the file carried in the source tree, the only form it has, and is not a check the code performs. Without it the name alone matches any readme."
source_ref: "Source/Core/Core/WiiRoot.cpp:291-319, Data/Sys/Wii/shared2/wc24/mbox/Readme.txt"
- name: wiitdb.txt
@@ -399,7 +399,7 @@ files:
aliases: [titles.txt]
required: false
description: "user title database"
note: "One title id equals name pair per line, ids of four characters and up. titles.txt is read only when wiitdb.txt yields nothing. Overlays the per-language databases shipped in the Sys directory, which cover ten languages; the Portuguese and Russian files also present there are never registered."
note: "One title id equals name pair per line, ids of four characters and up. titles.txt is read only when wiitdb.txt yields nothing. Overlays the per-language databases shipped in the Sys directory, which cover ten languages. The Portuguese and Russian files also present there are never registered."
source_ref: "Source/Core/Core/TitleDatabase.cpp:29-51, Source/Core/Core/TitleDatabase.cpp:54-58, Source/Core/Core/TitleDatabase.cpp:63-79"
- name: mios-ipl.map
+1 -1
View File
@@ -18,7 +18,7 @@ systems: [nintendo-gamecube, nintendo-wii, sega-triforce]
# Libretro: User is <save>/User, Sys is <system>/dolphin-emu/Sys
# (Source/Core/DolphinLibretro/Boot.cpp:248-254). The GC ROMs and
# segaboot.gcm fall back to Sys (Source/Core/Core/Config/MainSettings.cpp:761-768,
# Source/Core/Core/HW/DVD/AMMediaboard.cpp:500-513); the Wii and GBA files
# Source/Core/Core/HW/DVD/AMMediaboard.cpp:500-513). The Wii and GBA files
# are read under User only.
pack_structure:
+1 -1
View File
@@ -1,7 +1,7 @@
emulator: "Dolphin Launcher"
type: launcher
core_classification: launcher
exclusion_note: "stub core calls standalone Dolphin — all BIOS in Dolphin's own directory"
exclusion_note: "stub core calls standalone Dolphin, all BIOS in Dolphin's own directory"
source: "https://github.com/RobLoach/libretro-dolphin-launcher"
upstream: "https://github.com/dolphin-emu/dolphin"
profiled_date: "2026-03-23"
+11 -11
View File
@@ -34,7 +34,7 @@ notes: |
ref: src/midi/midi.cpp:794-850
MT-32/CM-32L: libmt32emu identifies every candidate by file size then SHA1,
so file names carry no meaning; a directory scan caches which ROM ids each
so file names carry no meaning. A directory scan caches which ROM ids each
directory holds and logs anything unrecognised.
ref: src/midi/mt32_lasynth_model.cpp:36-97, munt ROMInfo.cpp:206-213
A model needs one control ROM and one PCM ROM, supplied either as a full
@@ -44,11 +44,11 @@ notes: |
ref: src/midi/mt32_lasynth_model.cpp:114-151, munt ROMInfo.cpp:312-331
model = auto resolves the first available of cm32l_102, cm32l_100,
cm32ln_100, mt32_107, mt32_106, mt32_105, mt32_104, mt32_bluer, mt32_207,
mt32_206, mt32_204, mt32_203; the aliases cm32l, mt32, mt32_old and mt32_new
mt32_206, mt32_204, mt32_203. The aliases cm32l, mt32, mt32_old and mt32_new
restrict that list. MIXER /LISTMIDI prints what was found.
ref: src/midi/mt32.cpp:278-331, 504-557
Search order is romdir, then mt32-roms in the configuration directory, then
the platform locations (C:\mt32-rom-data on Windows;
the platform locations (C:\mt32-rom-data on Windows,
~/Library/Audio/Sounds/MT32-Roms and /usr/{local/,}share/mt32-rom-data on
macOS; $XDG_DATA_HOME/dosbox/mt32-roms, $XDG_DATA_HOME/mt32-rom-data,
$XDG_DATA_DIRS/mt32-rom-data and $XDG_CONFIG_HOME/dosbox/mt32-roms on Linux).
@@ -60,7 +60,7 @@ notes: |
from a plugins directory next to the executable, in the configuration
directory or under the XDG data directories. DOSBox Staging resolves the ROM
directory candidates, canonicalises the ones that exist and exports them as
SOUNDCANVAS_ROM_PATH; the plugin appends the per-model subdirectory, hashes
SOUNDCANVAS_ROM_PATH. The plugin appends the per-model subdirectory, hashes
every file under 4 MB it finds there and matches SHA256 against its table.
ref: src/midi/soundcanvas.cpp:326-373, src/misc/support.cpp:351-379,
Nuked-SC55-CLAP nuked_sc55.cpp:117-215,
@@ -221,7 +221,7 @@ files:
source_ref: "src/midi/mt32.cpp:145, src/midi/mt32.cpp:242-248, munt ROMInfo.cpp:79, munt ROMInfo.cpp:109"
# -- MT-32 control ROM chip dumps (32768 bytes each) --
# The _a dump holds the even bytes, the _b dump the odd ones; munt
# The _a dump holds the even bytes, the _b dump the odd ones, and munt
# interleaves the pair into the full 65536 byte image.
# MAME dumps mt32_1.0.X.ic27.bin (_a) and mt32_1.0.X.ic26.bin (_b),
# blue_ridge__mt32a.bin (_a) and blue_ridge__mt32b.bin (_b).
@@ -595,14 +595,14 @@ files:
path: "soundfonts/default.sf2"
description: "SoundFont named by the default soundfont setting"
required: false
unsourceable: "a link the operating system creates to the SoundFont it installs as default, FluidR3_GM.sf2 on Fedora; no file of this name is distributed, and a same-named file of another program must not stand in"
unsourceable: "a link the operating system creates to the SoundFont it installs as default, FluidR3_GM.sf2 on Fedora. No file of this name is distributed, and a same-named file of another program must not stand in"
note: >
default value of the soundfont setting: the name picks the default
SoundFont when the operating system installs one, usually Fluid R3.
Where it exists the name is a link, found as soundfonts/default.sf2
under an XDG data directory; the link is resolved before the name
under an XDG data directory, and the link is resolved before the name
test, so a link to FluidR3_GM.sf2 is identified as Fluid R3.
Any SoundFont loads; GeneralUser GS, Fluid R3, the AWE32 4MB GM/GS/MT
Any SoundFont loads. GeneralUser GS, Fluid R3, the AWE32 4MB GM/GS/MT
bank and the Trevor0402 SC-55 SoundFont are recognised by filename or
RIFF INFO name and get their own reverb, chorus and filter presets
source_ref: "src/midi/fluidsynth.cpp:133-154, src/midi/fluidsynth.cpp:672-689, src/midi/fluidsynth.cpp:816-883, src/midi/fluidsynth.cpp:1227-1242"
@@ -614,7 +614,7 @@ files:
aliases: ["GeneralUser_GS.sf2"]
note: >
opened only when the soundfont setting names it, with or without the
.sf2 extension; MIXER /LISTMIDI lists every .sf2 file found in the
.sf2 extension. MIXER /LISTMIDI lists every .sf2 file found in the
SoundFont directories. A file whose stem or RIFF INFO name contains
GeneralUser is identified as GeneralUser GS, whatever the rest of the
name, and gets its own chorus and reverb parameters in auto mode
@@ -642,7 +642,7 @@ files:
validation: [size]
note: >
read during PCjr cartridge boot from the current DOS drive, then from
the host working directory; bytes 0x3000 to 0xDFFF are copied to
the host working directory. Bytes 0x3000 to 0xDFFF are copied to
physical F3000. A short read leaves the region untouched and the
cartridge still boots
source_ref: "src/dos/programs/boot.cpp:379-397, src/dos/programs/boot.cpp:83-124"
@@ -672,6 +672,6 @@ files:
validation: [size]
note: >
accepted when the file is 16384 bytes or larger, starts with 55 AA,
has byte 3 masked to E8 and carries the string IBM at offset 0x1E;
has byte 3 masked to E8 and carries the string IBM at offset 0x1E,
needs an EGA or better machine type
source_ref: "src/dos/programs/loadrom.cpp:56-75, src/dos/programs/loadrom.cpp:88-93"
+17 -17
View File
@@ -44,7 +44,7 @@ notes: |
Configuration: -conf and -userconf name the files to read. Otherwise
dosbox-x.conf then dosbox.conf is tried in the working directory, then in the
program directory, then in the configuration directory, which is last tried
for dosbox-x-<version>.conf; that file is written with the defaults when it
for dosbox-x-<version>.conf. That file is written with the defaults when it
does not exist.
ref: src/gui/sdlmain.cpp:8667-8743, src/misc/cross.cpp:229-245
@@ -54,13 +54,13 @@ notes: |
image list only, which rejects the interleaved chip dumps.
ref: src/gui/midi_mt32.h:74-109, src/libs/mt32/c_interface/c_interface.cpp:442-462, src/libs/mt32/ROMInfo.cpp:206-215
mt32.model = auto opens CM32L_CONTROL.ROM then MT32_CONTROL.ROM, and
CM32L_PCM.ROM then MT32_PCM.ROM; cm32l keeps only the CM32L names, mt32 only
CM32L_PCM.ROM then MT32_PCM.ROM. cm32l keeps only the CM32L names, mt32 only
the MT32 names. The directory is mt32.romdir, then the working directory, then
the resource directory, then the configuration directory. A missing pair logs
the accepted file names and disables the device.
ref: src/gui/midi_mt32.h:246-275, src/dosbox.cpp:3607-3617
FluidSynth reads fluid.soundfont; fluid_synth_sfload is the only check. With
FluidSynth reads fluid.soundfont, and fluid_synth_sfload is the only check. With
the setting empty it probes /usr/share/soundfonts/default.sf2,
/usr/share/sounds/sf2/FluidR3_GM.sf2 and GeneralUser_GS.sf2 on Linux, and
C:\soundfonts\default.sf2 then the two same names under C:\DOSBox-X on Windows.
@@ -93,13 +93,13 @@ notes: |
ref: src/dos/dos_programs.cpp:2227-2228, 2261-2350
BIOSTEST.COM loads an image of up to 64 KB at F000:0 and restarts the CPU at
the reset vector; it is compiled only when the debugger is enabled. The
the reset vector. It is compiled only when the debugger is enabled. The
settings call binary on reset and call binary on boot load blobs of up to
128 KB into the ROM BIOS area for CPU testing.
ref: src/dos/dos_programs.cpp:3666-3719, src/ints/bios.cpp:13298-13374
A build configured with --enable-dosbox_agent reads the key=value file named
by -agent-config to start the RPC debugger agent; the file names the
by -agent-config to start the RPC debugger agent. The file names the
transport and endpoint, nothing else is read from disk.
ref: configure.ac:1441-1448, src/gui/sdlmain.cpp:8490-8496, src/agent/protocol/agent_protocol.cpp:477-632
@@ -267,13 +267,13 @@ files:
- name: "default.sf2"
description: "SoundFont the operating system installs as FluidSynth default"
required: false
unsourceable: "a link the operating system creates to the SoundFont it installs as default, FluidR3_GM.sf2 on Fedora; no file of this name is distributed, and a same-named file of another program must not stand in"
unsourceable: "a link the operating system creates to the SoundFont it installs as default, FluidR3_GM.sf2 on Fedora. No file of this name is distributed, and a same-named file of another program must not stand in"
note: >
first probe when fluid.soundfont is empty:
/usr/share/soundfonts/default.sf2, or C:\soundfonts\default.sf2 on
Windows. The source marks the first path as the Red Hat and Fedora
one, where the name links to FluidR3_GM.sf2, the file of the second
probe. Any SF2 or SF3 file loads; fluid.soundfont names it and
probe. Any SF2 or SF3 file loads: fluid.soundfont names it and
fluid_synth_sfload is the only check
source_ref: "src/gui/midi_synth.h:346-352, src/gui/midi_synth.h:364-368, src/gui/midi_synth.h:381-384, src/gui/midi_synth.h:462-473, src/dosbox.cpp:3746-3747"
@@ -294,7 +294,7 @@ files:
third probe when fluid.soundfont is empty:
/usr/share/sounds/sf2/GeneralUser_GS.sf2, or
C:\DOSBox-X\GeneralUser_GS.sf2 on Windows. Elsewhere the file loads
when fluid.soundfont gives its path; the setting's help text names this
when fluid.soundfont gives its path, and the setting's help text names this
file as its example. The synth device probes the same paths
source_ref: "src/gui/midi_synth.h:356-358, src/gui/midi_synth.h:373-375, src/gui/midi_synth.h:179-181, src/gui/midi_synth.h:196-198, src/dosbox.cpp:3747"
@@ -308,7 +308,7 @@ files:
validation: [size]
note: >
256 8x8 cells at 0x0, 256 8x16 cells at 0x800, 96 by 92 16x16 cells at
0x1800; a file of any other length is rejected. Enabled by
0x1800. A file of any other length is rejected. Enabled by
pc-98 try font rom, on by default
source_ref: "src/ints/int10.cpp:1487-1549, src/dosbox.cpp:2494-2495"
@@ -318,7 +318,7 @@ files:
hle_fallback: true
note: >
2048 by 2048 monochrome Windows bitmap, biSize 40, one plane, one bit per
pixel, no compression, inverse colour scheme; the first row is the 8x16
pixel, no compression, inverse colour scheme. The first row is the 8x16
single-width set and the rest is 16x16 full-width. Also reachable through
the pc-98 anex86 font setting, which is tried before FONT.ROM
source_ref: "src/ints/int10.cpp:1555-1647, src/dosbox.cpp:2498-2501"
@@ -328,7 +328,7 @@ files:
required: false
hle_fallback: true
note: >
same bitmap layout as ANEX86.BMP and tried after it; ships in the resource
same bitmap layout as ANEX86.BMP and tried after it, ships in the resource
directory
source_ref: "src/ints/int10.cpp:1577-1580, src/Makefile.am:17"
@@ -358,7 +358,7 @@ files:
note: >
tried by the TTF output on PC-98 and on double-byte code pages when
ttf.font is unset, and by the printer when the selected typeface file is
missing; ships in the resource directory
missing. Ships in the resource directory
source_ref: "src/output/output_ttf.cpp:655-668, src/hardware/parport/printer.cpp:354-380, src/Makefile.am:21"
# -- Printer typefaces --
@@ -444,7 +444,7 @@ files:
max_size: 32768
validation: [size]
note: >
read by LOADROM.COM from a mounted local drive; accepted when the file
read by LOADROM.COM from a mounted local drive, accepted when the file
starts with 55 AA, byte 3 masked with 0xFC equals 0xE8 and the string IBM
appears at offset 0x1E, and the machine is EGA or better
source_ref: "src/dos/dos_programs.cpp:3606-3632, src/dos/dos_programs.cpp:3643-3649"
@@ -461,7 +461,7 @@ files:
validation: [size]
note: >
the ibm rom basic setting maps it just below the ROM BIOS and accepts
32 KB to 64 KB in 4 KB steps; LOADROM.COM maps the same image at F600:0
32 KB to 64 KB in 4 KB steps. LOADROM.COM maps the same image at F600:0
when it is exactly 32768 bytes, starts with E9 8F 7E and carries the
string IBM at offset 0x4CD4
source_ref: "src/ints/bios.cpp:13230-13250, src/dos/dos_programs.cpp:3633-3637, src/dosbox.cpp:1948-1950"
@@ -476,7 +476,7 @@ files:
min_size: 57344
validation: [size]
note: >
read during PCjr cartridge boot; bytes 0x3000 to 0xDFFF are copied to
read during PCjr cartridge boot, and bytes 0x3000 to 0xDFFF are copied to
physical F3000. A short read leaves the region untouched and the cartridge
still boots
source_ref: "src/dos/dos_programs.cpp:3079-3088"
@@ -488,7 +488,7 @@ files:
required: false
note: >
loaded at the top of the first megabyte, rounded up to a paragraph and
truncated to 128 KB, or to 96 KB on PC-98; a larger image is clamped
truncated to 128 KB, or to 96 KB on PC-98, and a larger image is clamped
rather than rejected
source_ref: "src/dos/dos_programs.cpp:2261-2311"
@@ -498,7 +498,7 @@ files:
max_size: 32768
validation: [size]
note: >
served through the port 43Dh bank switch alongside a BOOT -bios image;
served through the port 43Dh bank switch alongside a BOOT -bios image.
<image>.itf.rom is tried before the bare name so one directory can hold
several
source_ref: "src/dos/dos_programs.cpp:2313-2344"
+3 -3
View File
@@ -12,7 +12,7 @@ systems: [dos]
notes: |
Rebuilt on the dosbox-core tree (DOSBox SVN r4494) with ZIP content and the
Nuked-SC55 driver. No BIOS. Every file below belongs to a MIDI driver picked
by the core option; the default driver is "none".
by the core option, and the default driver is "none".
ref: libretro/src/libretro_core_options.cpp:1684-1702
A driver that fails to open is replaced by the first handler that opens.
ref: src/gui/midi.cpp:241-243
@@ -34,9 +34,9 @@ notes: |
size, wave ROMs by the last 1, 2 or 3 in their name. No hash is checked.
ref: src/gui/midi_sc55.h:43-52, src/gui/midi_sc55.h:98-133
Byte 67 of ROM1 selects the model and the sizes the other ROMs must have:
SC-55mkII/SC-55st need ROM_SM, a 2 MiB WAVEROM1 and a 1 MiB WAVEROM2;
SC-55mkII/SC-55st need ROM_SM, a 2 MiB WAVEROM1 and a 1 MiB WAVEROM2.
SC-55/SC-155 and CM-300/SCC-1 need a 256 KiB ROM2 and three 1 MiB wave
ROMs; JV-880 needs a 256 KiB ROM2 and two 2 MiB wave ROMs; SCB-55 needs a
ROMs. JV-880 needs a 256 KiB ROM2 and two 2 MiB wave ROMs. SCB-55 needs a
2 MiB WAVEROM1.
ref: src/gui/midi_sc55.h:151-175
fluidsynth and bassmidi: the soundfont option lists the files found in
+1 -1
View File
@@ -192,5 +192,5 @@ files:
# -- General MIDI SoundFont --
# Placed in system/soundfonts/ directory. Core scans for .sf2/.sf3/.sfz/.dls/.gig.
# FluidSynth reads .sf2/.sf3/.dls/.gig; BASSMIDI reads .sf2/.sfz.
# FluidSynth reads .sf2/.sf3/.dls/.gig, BASSMIDI reads .sf2/.sfz.
# No specific filename required - all found files appear in the core option dropdown.
+3 -3
View File
@@ -21,7 +21,7 @@ notes: |
MT-32 requires matched pair: *_CONTROL.ROM + *_PCM.ROM (PCM name derived
from CONTROL name by replacing CONTROL with PCM, preserving case).
ref: src/gui/midi_mt32.h:189-199
ZIP archives also supported — scanned for files by size (65536/131072 =
ZIP archives also supported, scanned for files by size (65536/131072 =
control, 524288/1048576 = PCM), not by name.
ref: src/gui/midi_mt32.h:160-166
Files can also be on mounted C: drive (DOSBOX.SF2, MT32_CONTROL.ROM,
@@ -46,7 +46,7 @@ notes: |
ref: src/gui/mt32emu.h:2982-2988,3016-3019,5183-5187
12 full control ROMs + 2 PCM ROMs supported (no split ROMs in this MUNT).
TinySoundFont (tsf.h) for SF2/SF3 playback.
No firmware entries in .info file — all MIDI files optional.
No firmware entries in .info file, all MIDI files optional.
DBP_STANDALONE build mode exists (same MIDI logic, different I/O layer).
ref: dosbox_pure_libretro.cpp:81,1588,2302
@@ -223,7 +223,7 @@ files:
source_ref: "dosbox_pure_libretro.cpp:1405, src/gui/midi_sc55.h:71-75, src/gui/midi_sc55.h:97-101"
note: >-
Any name ending in ROM1.BIN anywhere under the system directory is
listed; byte 67 selects the emulated model.
listed. Byte 67 selects the emulated model.
- name: "ROM2.BIN"
path: "SC-55/ROM2.BIN"
+7 -7
View File
@@ -19,7 +19,7 @@ notes: |
r2.6.0.4a build 109, package com.dsemu.drastic, apk md5
7df979ef9420c5053b27c838e6a7e20c, whose loader is
lib/arm64-v8a/libdrastic_arm64.so and whose installer is the smali of
DraSticActivity; and the Linux AArch64 build r2.5.2.2, md5
DraSticActivity. The second is the Linux AArch64 build r2.5.2.2, md5
17550db727f3b59d36b57746ad1944be, which ships unstripped with 2731 named
functions and is cited by function name. r2.5.2.2 predates the firmware editor
and the user database, and that is the whole of the divergence. Every
@@ -29,7 +29,7 @@ notes: |
/home/odroid/nds_emu/src/linux_odroid64), DraSticActivity.smali
One root holds everything. On Android it is a directory named DraStic at the
root of shared storage; on Linux it is the working directory. Startup creates
root of shared storage, on Linux it is the working directory. Startup creates
backup, savestates, config, unzip_cache, system, input_record, cheats, slot2,
microphone and scripts below it, and the Android build adds backgrounds,
icon_cache, users, shaders and virtual_controller. Paths below are relative to
@@ -42,13 +42,13 @@ notes: |
load_system_file builds <root>/system/<name>, opens it read only, measures it
by seeking to the end, refuses any length other than the one its caller asks
for with "System file %s is the wrong size (should be %d bytes, is %d)", then
reads it whole. Size is the only test; no hash is computed on any file.
reads it whole. Size is the only test: no hash is computed on any file.
ref: drastic r2.5.2.2 load_system_file 0xea80-0xebe4,
libdrastic_arm64.so 0x1b4d4-0x1b510
Each BIOS slot has two candidates. The ARM9 slot takes nds_bios_arm9.bin, and
on failure logs "Can't find Nintendo ARM9 BIOS. Trying free DraStic ARM9
BIOS." and takes drastic_bios_arm9.bin; the ARM7 slot does the same with
BIOS." and takes drastic_bios_arm9.bin. The ARM7 slot does the same with
nds_bios_arm7.bin then drastic_bios_arm7.bin. A slot left empty returns -1
from initialize_memory, and initialize_system answers that with the on-screen
warning naming the two Nintendo files and their sizes, the line "FATAL: Could
@@ -65,7 +65,7 @@ notes: |
Firmware is answered in code when no file loads: the 256 KB region is zeroed
and patch_firmware_header_data writes the header, the console identity and the
user settings block into it. r2.5.2.2 reads nds_firmware.bin alone; r2.6.0.4a
user settings block into it. r2.5.2.2 reads nds_firmware.bin alone, while r2.6.0.4a
reads nds_firmware_modified.bin first, which is what its firmware editor
writes back, and falls through to nds_firmware.bin.
ref: drastic r2.5.2.2 initialize_memory 0x1c3e0-0x1c3f8,
@@ -84,7 +84,7 @@ notes: |
Two databases sit at the root. game_database.xml carries the save type per
title and a failed open only logs "Error: could not load game database file
%s."; r2.6.0.4a reads game_database_user.xml after it as a user overlay.
%s." r2.6.0.4a reads game_database_user.xml after it as a user overlay.
usrcheat.dat is the Action Replay library, read by load_cheat_directory.
ref: drastic r2.5.2.2 initialize_gamecard 0x709bc-0x70a30,
drastic r2.5.2.2 initialize_game_database 0x73180,
@@ -267,7 +267,7 @@ files:
bundled: true
category: game_data
description: "lookup texture named by a chain"
note: "Android only. Loaded when a texture tag names a file instead of the framebuffer or an FBO, with the dimensions and the format taken from the tag. SMAA is the one shipped chain that names any, taking smaa/AreaTexRGB.raw and smaa/SearchTexRGB.raw; the package also carries the non-RGB pair of the same two tables, which no shipped chain names."
note: "Android only. Loaded when a texture tag names a file instead of the framebuffer or an FBO, with the dimensions and the format taken from the tag. SMAA is the one shipped chain that names any, taking smaa/AreaTexRGB.raw and smaa/SearchTexRGB.raw. The package also carries the non-RGB pair of the same two tables, which no shipped chain names."
source_ref: "assets/shaders/_shader_format_.txt:42-56, assets/shaders/SMAA.dfx:1-6"
- name: "<name>.zip"
+5 -5
View File
@@ -32,7 +32,7 @@ notes: |
$XDG_DATA_HOME/Aaron Giles/DREAMM on Linux. Paths below are relative to that
directory. Startup writes config.json and creates install, gamedelta,
screenshots, logs and sounddata.
ref: SDL_GetPrefPath; strace of DREAMM 4.0 linux-x64 with a clean HOME
ref: SDL_GetPrefPath, strace of DREAMM 4.0 linux-x64 with a clean HOME
Audio hardware is set per game and per variant: speaker, cms, adlib, sb16,
tandy, mt32 and gmidi. MT-32 and General MIDI output can go to an external
@@ -52,7 +52,7 @@ notes: |
both halves. The CM-32L sets name cm32l_pcm.rom as the full image,
mt32_pcm_l.rom as the low half and cm32l_pcm_h.rom as the high half. munt
identifies each file by size then SHA1 before opening the synth.
ref: set table 0x23db4a8, id lookup 0x164d050, availability 0x164d2a8;
ref: set table 0x23db4a8, id lookup 0x164d050, availability 0x164d2a8,
munt ROMInfo.cpp:206-214 ROMInfo::getROMInfo
The SC-55 is emulated by the Nuked SC-55 CLAP plug-in, unpacked to
@@ -61,7 +61,7 @@ notes: |
v1.20, v1.21, v2.00 and SC-55mk2 v1.01. The plug-in identifies a set by
hashing the directory contents, so its own loader does not depend on the
file names.
ref: strace of DREAMM 4.0 linux-x64; Nuked-SC55-CLAP nuked_sc55.cpp:145-212
ref: strace of DREAMM 4.0 linux-x64, Nuked-SC55-CLAP nuked_sc55.cpp:145-212
GetRomBasePaths and Init, rom_loader.cpp:31-80 DetectRomsetsByHash
Both families install by dropping files on the Manage Sound Fonts & ROMs
@@ -72,7 +72,7 @@ notes: |
sizes agree with the bundled munt ROM table. mt32_ctrl_2_03.rom is named by
the v2.03 set but has no manifest entry, so it loads from sounddata and
cannot be installed by drag and drop.
ref: manifest 0x23daf78, name match 0x16456a0, reverse lookup 0x1645880;
ref: manifest 0x23daf78, name match 0x16456a0, reverse lookup 0x1645880,
"To install Sound Fonts (.sf2 files) or ROMs for Roland MIDI emulation,
drop them onto this screen."
@@ -365,7 +365,7 @@ files:
source_ref: "DREAMM 4.0 linux-x64: ROM manifest 0x23dafb8, set table 0x23db4a8; sounddata/mt32emu-dreamm.so ROM table"
# -- Roland SC-55, sounddata/Nuked-SC55-Resources/ROMs --
# One complete set per model directory; the plugin loads a single directory.
# One complete set per model directory, the plugin loads a single directory.
- name: sc55_rom1.bin
path: "sounddata/Nuked-SC55-Resources/ROMs/SC-55-v1.00/sc55_rom1.bin"
description: "Roland SC-55 v1.00 program ROM (ROM1)"
+4 -4
View File
@@ -17,15 +17,15 @@ notes: |
V.Smile emulator for Android, package com.dsmile.emulator, built on an SPG200
(unSP) core of its own. Frontends launch the exported EmuActivity either with
ACTION_VIEW and a content or file Uri, or with the LAUNCH_GAME action and a
rom, ROM, path or uri string extra carrying a path; ES-DE uses the first form.
rom, ROM, path or uri string extra carrying a path. ES-DE uses the first form.
ref: AndroidManifest.xml:34-51, EmuActivity.kt:123-145,
docs/iisu-integration.md:42-51
The machine never boots from the system ROM. UnSP::Reset takes the program
counter from 0xFFF7, and the FIQ, IRQ n and BREAK vectors are read from
0xFFF6, 0xFFF8+n and 0xFFF5; all four sit in bank 0, which ExtRead answers
0xFFF6, 0xFFF8+n and 0xFFF5. All four sit in bank 0, which ExtRead answers
from the cartridge under every decode mode. The system ROM sits on bank 3 and
is reachable only once cartridge code selects decode mode 2 or 3;
is reachable only once cartridge code selects decode mode 2 or 3.
extmem_ctrl_ resets to 0x0028, which is decode 0, so nothing but the
cartridge is mapped at power on.
ref: unsp.cpp:49,67,77,253, spg200.cpp:188-209, spg200.cpp:37
@@ -53,7 +53,7 @@ notes: |
Region is a jumper, never a file. Port C carries the region code in its low
nibble and the intro jumper in bit 4. The code is fixed at 0xF and SetRegion
has no caller, so one image serves every session; the jumper is exposed only
has no caller, so one image serves every session, and the jumper is exposed only
as the Game intros setting, passed through nativeInit.
ref: vsmile.cpp:365-369, vsmile.h:76, vsmile.h:77, vsmile.h:116,
jni_bridge.cpp:39, MainActivity.kt:309,320
+8 -8
View File
@@ -27,17 +27,17 @@ notes: |
DS BIOS: both halves or neither, the ARM9 image 4 KB and the ARM7 image 16 KB
exactly. Without them the built-in FreeBIOS runs games by direct boot. The
firmware may be any non-empty file; without one a firmware is generated from
firmware may be any non-empty file. Without one a firmware is generated from
the [user] settings. Booting the DS menu needs both BIOS dumps and a real
firmware. No hash is checked; an FNV-1a of the loaded regions only tags save
firmware. No hash is checked: an FNV-1a of the loaded regions only tags save
states.
ref: src/core/nds.cpp:101-133, src/core/mem/bus.h:121-131,
src/frontend/sdl/main.cpp:1410, src/frontend/sdl/main.cpp:1440-1447
DSi: DSiWare and --dsi-mode need the DSi BIOS pair, 64 KB each, and the DS
BIOS dumps as well; FreeBIOS cannot run a DSi session. dsi_firmware replaces
BIOS dumps as well. FreeBIOS cannot run a DSi session. dsi_firmware replaces
firmware for a DSi session when no --firmware is given. The NAND is needed by
--dsi-mode and by NAND title shortcuts only; it must carry the nocash footer
--dsi-mode and by NAND title shortcuts only, and it must carry the nocash footer
(at the end, or at 0x000FF800). DSiWare without a NAND runs on a generated
console whose system font is DSperate's own unless dsi_font names a
TWLFontTable.dat.
@@ -89,7 +89,7 @@ files:
validation: [size]
config_key: "paths.bios9i"
description: "DSi ARM9 BIOS"
note: "Loaded only together with dsi_bios7.bin. Without the pair DSiWare and --dsi-mode are refused; DS games do not use it."
note: "Loaded only together with dsi_bios7.bin. Without the pair DSiWare and --dsi-mode are refused, while DS games do not use it."
source_ref: "src/core/nds_dsi.cpp:95-106, src/core/mem/bus.h:121, src/frontend/sdl/main.cpp:1301-1308"
- name: "dsi_bios7.bin"
@@ -99,7 +99,7 @@ files:
validation: [size]
config_key: "paths.bios7i"
description: "DSi ARM7 BIOS"
note: "Loaded only together with dsi_bios9.bin. Without the pair DSiWare and --dsi-mode are refused; DS games do not use it."
note: "Loaded only together with dsi_bios9.bin. Without the pair DSiWare and --dsi-mode are refused, while DS games do not use it."
source_ref: "src/core/nds_dsi.cpp:95-106, src/core/mem/bus.h:122, src/frontend/sdl/main.cpp:1301-1308"
- name: "dsi_firmware.bin"
@@ -115,7 +115,7 @@ files:
required: false
config_key: "paths.dsi_nand"
description: "DSi NAND image with nocash footer"
note: "Read only by --dsi-mode and NAND title shortcuts; DSiWare run from the game list does without it. Opened read-only, rejected without the \"DSi eMMC CID/CPU\" footer."
note: "Read only by --dsi-mode and NAND title shortcuts. DSiWare run from the game list does without it. Opened read-only, rejected without the \"DSi eMMC CID/CPU\" footer."
source_ref: "src/frontend/sdl/main.cpp:1263-1272, src/core/nds_dsi.cpp:121-127, src/core/io/dsi_sd.cpp:111-140"
- name: "TWLFontTable.dat"
@@ -133,5 +133,5 @@ files:
category: game_data
config_key: "paths.cheats"
description: "Action Replay cheat database"
note: "Looked up by game code and header checksum; nothing is enabled by its presence."
note: "Looked up by game code and header checksum. Nothing is enabled by its presence."
source_ref: "src/frontend/sdl/main.cpp:709-735"
+1 -1
View File
@@ -14,7 +14,7 @@ bios_size: 524288 # 0x80000 (512 KB), also accepts PS2 (4 MB) and PS3 (0x3E66F0
verification: md5
notes: |
DuckStation auto-detects BIOS by MD5 hash from a flat scan of the BIOS directory.
ref: src/core/bios.cpp:460-482 (FindBIOSImagesInDirectory — scans all files by size)
ref: src/core/bios.cpp:460-482 (FindBIOSImagesInDirectory, scans all files by size)
ref: src/core/bios.cpp:208 (MD5Digest::HashData identification)
Accepts PS1 (512 KB), PS2 (4 MB), and PS3 (0x3E66F0) BIOS images.
+16 -16
View File
@@ -41,18 +41,18 @@ notes: |
one of the PIG graphics families (groupa.pig / alien1.pig / alien2.pig
/ fire.pig / ice.pig / water.pig for retail, d2demo.pig for shareware)
plus the sampled sound bank (descent2.s11 for 11 kHz or descent2.s22
for 22 kHz; similar/main/piggy.cpp:79). Mac shareware additionally bundles exit.ham.
for 22 kHz, similar/main/piggy.cpp:79). Mac shareware additionally bundles exit.ham.
d2x.hog is the Descent 2: Vertigo expansion mission, probed in the
MISSION_DIR by similar/main/inferno.cpp:542 to toggle the "Vertigo Enhanced" title.
The movie libraries are named from three stems (intro, other, robots;
The movie libraries are named from three stems (intro, other, robots,
d2x-rebirth/main/movie.cpp:93-95) and a resolution letter: <stem>-h.mvl
is tried first, then <stem>-l.mvl (d2x-rebirth/main/movie.cpp:660,
672-677). A library that fails to mount is logged and skipped; the
672-677). A library that fails to mount is logged and skipped, and the
game plays without movies.
Only the free PC shareware pair (desc14sw.tar.gz = descent.hog +
descent.pig; d2shar10.tar.gz = d2demo.hog/pig/ham) is redistributable;
the retail archives listed below are commercial GOG files.
descent.pig, d2shar10.tar.gz = d2demo.hog/pig/ham) is redistributable.
The retail archives listed below are commercial GOG files.
files:
# ------ Descent 1 shareware (free) ------
@@ -86,7 +86,7 @@ files:
validation: [size]
description: "Descent 1 PC retail v1.5 HOG (GOG)"
variant_group: d1-hog
note: "commercial; alternative sizes 6856183 (v1.5 alt), 7261423 (v1.0), 7456179 (Mac retail)"
note: "commercial, alternative sizes 6856183 (v1.5 alt), 7261423 (v1.0), 7456179 (Mac retail)"
source_ref: "common/main/mission.h:61-64"
- name: descent.pig
@@ -136,7 +136,7 @@ files:
validation: [size]
description: "Descent 2 PC full v1.1-1.2 HOG (GOG)"
variant_group: d2-hog
note: "commercial; alternative sizes 7107354 (v1.0), 7110007 (Mac full), 6132957 (OEM v1.1), 4292746 (Mac shareware)"
note: "commercial, alternative sizes 7107354 (v1.0), 7110007 (Mac full), 6132957 (OEM v1.1), 4292746 (Mac shareware)"
source_ref: "common/main/mission.h:73-76"
- name: descent2.ham
@@ -245,7 +245,7 @@ files:
# ------ Add-on archives ------
# add_archives_to_search_path() mounts every *.dxa found at the root of
# the search path; the code names the extension, not the files. The names
# the search path. The code names the extension, not the files. The names
# below are the add-ons the project publishes. Each build has its own data
# directory (d1x-rebirth, d2x-rebirth), so an archive is seen by one game.
- name: "d1xr-hires.dxa"
@@ -254,7 +254,7 @@ files:
category: game_data
required: false
description: "High resolution title, briefing and ending screens for Descent 1"
note: "Mounted at startup when present; its files extend or replace the game content."
note: "Mounted at startup when present, and its files extend or replace the game content."
source_ref: "common/misc/physfsx.cpp:23, 377-394, similar/main/inferno.cpp:603, SConstruct:4362"
- name: "d1xr-briefings-ger.dxa"
@@ -263,7 +263,7 @@ files:
category: game_data
required: false
description: "German briefing texts for Descent 1"
note: "Mounted at startup when present; its files extend or replace the game content."
note: "Mounted at startup when present, and its files extend or replace the game content."
source_ref: "common/misc/physfsx.cpp:23, 377-394, similar/main/inferno.cpp:603, SConstruct:4362"
- name: "d1xr-mac-demo-sounds.dxa"
@@ -272,7 +272,7 @@ files:
category: game_data
required: false
description: "Sound set of the Macintosh Descent 1 demo"
note: "Mounted at startup when present; its files extend or replace the game content."
note: "Mounted at startup when present, and its files extend or replace the game content."
source_ref: "common/misc/physfsx.cpp:23, 377-394, similar/main/inferno.cpp:603, SConstruct:4362"
- name: "d1xr-opl3-music.dxa"
@@ -281,7 +281,7 @@ files:
category: game_data
required: false
description: "Descent 1 music as Ogg Vorbis files, OPL3 rendering"
note: "Mounted at startup when present; its files extend or replace the game content."
note: "Mounted at startup when present, and its files extend or replace the game content."
source_ref: "common/misc/physfsx.cpp:23, 377-394, similar/main/inferno.cpp:603, SConstruct:4362"
- name: "d1xr-sc55-music.dxa"
@@ -290,7 +290,7 @@ files:
category: game_data
required: false
description: "Descent 1 music as Ogg Vorbis files, Roland SC-55 rendering"
note: "Mounted at startup when present; its files extend or replace the game content."
note: "Mounted at startup when present, and its files extend or replace the game content."
source_ref: "common/misc/physfsx.cpp:23, 377-394, similar/main/inferno.cpp:603, SConstruct:4362"
- name: "editor.dxa"
@@ -308,7 +308,7 @@ files:
category: game_data
required: false
description: "German briefing texts for Descent 2"
note: "Mounted at startup when present; its files extend or replace the game content."
note: "Mounted at startup when present, and its files extend or replace the game content."
source_ref: "common/misc/physfsx.cpp:23, 377-394, similar/main/inferno.cpp:603, SConstruct:4362"
- name: "d2xr-opl3-music.dxa"
@@ -317,7 +317,7 @@ files:
category: game_data
required: false
description: "Descent 2 music as Ogg Vorbis files, OPL3 rendering"
note: "Mounted at startup when present; its files extend or replace the game content."
note: "Mounted at startup when present, and its files extend or replace the game content."
source_ref: "common/misc/physfsx.cpp:23, 377-394, similar/main/inferno.cpp:603, SConstruct:4362"
- name: "d2xr-sc55-music.dxa"
@@ -326,7 +326,7 @@ files:
category: game_data
required: false
description: "Descent 2 music as Ogg Vorbis files, Roland SC-55 rendering"
note: "Mounted at startup when present; its files extend or replace the game content."
note: "Mounted at startup when present, and its files extend or replace the game content."
source_ref: "common/misc/physfsx.cpp:23, 377-394, similar/main/inferno.cpp:603, SConstruct:4362"
- name: "editor.dxa"
+1 -1
View File
@@ -14,7 +14,7 @@ notes: |
Spear of Destiny (sod/sdm), Super 3D Noah's Ark (n3d), and community pk3 mods.
Blake Stone and Rise of the Triad support flagged as Preview in upstream.
Requires ecwolf.pk3 — engine data package built from wadsrc/static/.
Requires ecwolf.pk3, the engine data package built from wadsrc/static/.
Contains IWADINFO (game detection rules), palettes, sprites, map configs,
DECORATE actor definitions, MAPINFO, SNDINFO, fonts, and localization strings.
Without this file: "Could not open ecwolf.pk3!" fatal error.
+7 -7
View File
@@ -16,7 +16,7 @@ notes: |
Platoon Leader. Startup scans the search path for registered GRPs by
CRC32 (source/duke3d/src/grpscan.cpp:39-76 internalgrpfiles[]). Each GRP
carries a game flag (DUKE / NAM / NAPALM / WW2GI) and optional addon
dependency; EDuke32 picks the user selection, mounts it with
dependency. EDuke32 picks the user selection, mounts it with
initgroupfile and loads the DEF / CON / RTS the GRP points to.
G_DefaultGrpFile (source/duke3d/src/common.cpp:60-73) returns the base
@@ -25,12 +25,12 @@ notes: |
NAPALM.CON / WW2GI.CON and DUKE.RTS / NAM.RTS / NAPALM.RTS / WW2GI.RTS.
CRCs listed in source/duke3d/src/grpscan.h match the retail GRP byte
for byte; the loader only checks CRC32 (not MD5) and only to pick the
for byte, but the loader only checks CRC32 (not MD5) and only to pick the
entry, never to refuse an unknown GRP. CON / RTS / addon files are
referenced from the chosen entry but their contents are not validated.
The scan checksums every *.grp, *.ssi, *.dat and *.zip file of the
search path and matches size and CRC32 against the table; the table
search path and matches size and CRC32 against the table, and the table
holds no file name (source/duke3d/src/grpscan.cpp:360-370, 486-492).
An addon whose dependency is not found is removed from the list
(source/duke3d/src/grpscan.cpp:503-517).
@@ -53,15 +53,15 @@ files:
grpscan.h:41), World Tour (DUKEWT_CRC 0x982AFE4A, grpscan.h:37),
Plutonium Pak (DUKEPP_CRC 0xF514A6AC, grpscan.h:36), South Korean
censored (DUKEKR_CRC 0xAA4F6A40, grpscan.h:34). CRC32 identifies
the variant and selects the matching entry in internalgrpfiles[];
no MD5 or SHA1 is read.
the variant and selects the matching entry in internalgrpfiles[],
and no MD5 or SHA1 is read.
- name: "EDUKE.CON"
category: game_data
system: duke3d
required: false
source_ref: "source/duke3d/src/common.cpp:38 (defaultgameconfilename GAME_DUKE)"
note: "EDuke32 CON script. Shipped inside the GRP by default; external copy only when the user overrides it."
note: "EDuke32 CON script. Shipped inside the GRP by default, external copy only when the user overrides it."
- name: "DUKE.RTS"
category: game_data
@@ -103,7 +103,7 @@ files:
crc32: "c7efbfa9"
validation: [size, crc32]
source_ref: "source/duke3d/src/grpscan.cpp:66 (Duke: Nuclear Winter Demo, GAMEFLAG_ADDON), 366 (crc and size compare)"
note: "Addon of the Atomic Edition (dependency DUKE15_CRC); dropped from the list when that GRP is not found."
note: "Addon of the Atomic Edition (dependency DUKE15_CRC), dropped from the list when that GRP is not found."
- name: "DZ2.GRP"
category: game_data
+2 -2
View File
@@ -46,7 +46,7 @@ notes: |
ref: 81/Source/zx81/snap.cpp:1189-1199, 81/Source/zx81/snap.cpp:1285-1299, 81/Source/zx81/snap.cpp:1317-1328, 81/Source/zx81config.cpp:161-210, 81/Source/zx81config.cpp:259-284
Didaktik D40/D80 tests for eightyone/FDCs/didaktik.gama.rom and stores its
full path in CurRom when present; memory_load reduces the path to its
full path in CurRom when present, and memory_load reduces the path to its
basename and serves the embedded copy.
ref: libretro/libretro_core.cpp:2953-2968, 81/Source/Spectrum/spec48.cpp:361-362
@@ -54,7 +54,7 @@ notes: |
directory when it is absent.
ref: 81/Source/zxpand/smbsd.cpp:75-98
Digitalker is a stub and its SSR ROM loader is not compiled; CapsImg is
Digitalker is a stub and its SSR ROM loader is not compiled. CapsImg is
linked statically.
ref: libretro/eo_stubs.cpp:67-68, CMakeLists.txt:267-291
+9 -9
View File
@@ -26,7 +26,7 @@ notes: |
device to emulate is built from a firmware dump. Covers the N-Gage and
N-Gage 2.0 libraries and the game libraries from S60v1 to Symbian Belle. One
tree builds the Qt desktop frontend, the Android and iOS applications, and a
libretro core; the core lives on the libretro branch of the WizzardSK fork,
libretro core. The core lives on the libretro branch of the WizzardSK fork,
rebased on the upstream revision named in its upstream.version, 11f5b6cd.
content.cpp passes isolate_drives false to install_firmware and
install_rom_with_optional_rpkg, so drives C, D and E are shared between
@@ -40,7 +40,7 @@ notes: |
A device is registered in <storage>/devices.yml and holds its ROM image at
<storage>/roms/<firmware code, lower case>/SYM.ROM with the unpacked ROFS
tree beside it under <storage>/drives/z/<firmware code>/. Selecting the
device opens that SYM.ROM; a parse failure or a missing file makes set_device
device opens that SYM.ROM, and a parse failure or a missing file makes set_device
return false and nothing runs. The image is parsed for its root directory
list and never checked against a size or a hash. <storage> is the
data-storage option, "data" by default, relative to the working directory.
@@ -58,7 +58,7 @@ notes: |
the RPKG made by the Dumber tool beside it, which supplies the ROFS. A .vpl
variant packing list names the .fpsx flash images of a factory firmware,
from which the core image, the ROFS and the drive contents are extracted.
The names of the dump files are free; SYM.ROM is the name the installers
The names of the dump files are free. SYM.ROM is the name the installers
give the resident copy.
ref: src/emu/system/src/installation/rpkg.cpp:44-68,
src/emu/system/src/software.cpp:396-408,
@@ -71,13 +71,13 @@ notes: |
src/emu/system/src/installation/firmware.cpp:480-515
Standalone, the Qt frontend installs through its device dialog, from a ROM,
a ROM with its RPKG, or a VPL; the settings dialog can also rescan drives/z/
a ROM with its RPKG, or a VPL, and the settings dialog can also rescan drives/z/
and rebuild devices.yml from the directories that still hold a SYM.ROM. A
device installed with the isolate-drives box ticked keeps drives C, D and E
under <storage>/drives/<firmware code>/ instead of <storage>/drives/. On
Linux and macOS the working directory is the EKA2L1 folder of the user data
location and the shipped patch, resources, scripts and compat folders are
copied there at startup; on Windows it is the directory the executable is
copied there at startup. On Windows it is the directory the executable is
started from.
ref: src/emu/qt/src/device_install_dialog.cpp:162-172,
src/emu/qt/src/device_install_dialog.cpp:181-185,
@@ -118,8 +118,8 @@ notes: |
directory. Patch libraries: every patch/*.map is parsed, the DLL is
<map name>_<version suffix>.dll for the device's Symbian version upward,
stopping at 8.1a on an EKA1 device, then <map name>_general.dll on EKA2
only; a map naming a source picks that DLL prefix; a map requiring host-tls
is skipped below S60v3 FP1; a missing folder is skipped. A map routes exports
only. A map naming a source picks that DLL prefix, a map requiring host-tls
is skipped below S60v3 FP1, and a missing folder is skipped. A map routes exports
of the original DLL to the patch DLL and is dropped when it holds no route
for the device's version. A map whose requirements carry replace holds no
route: its DLL is loaded in place of the image of that name, and with
@@ -130,13 +130,13 @@ notes: |
the eight files under resources are compiled by the OpenGL driver at start
and an unreadable one leaves the program without source. The upscale filter
named in an application's screen-upscale setting is read from
resources/upscale/<name>.frag; the 21 filters ship from the upscale-shaders
resources/upscale/<name>.frag, and the 21 filters ship from the upscale-shaders
submodule, pinned at 49dd304c. MIDI: resources/defaultbank.sf2 feeds the
TinySoundFont player and resources/defaultbank.hsb the miniBAE player, the
paths being the sf2-bank-path and hsb-bank-path options. SDL2 controller
mappings come from resources/gamecontrollerdb.txt. compat/panicBlackList.json
names thread panics to swallow and compat/<UID>.yml carries per-application
settings; panic.json holds the panic category descriptions. Lua scripts under
settings. panic.json holds the panic category descriptions. Lua scripts under
scripts/ are loaded when the build carries LuaJIT and require the eka2l1.*
modules from scripts/eka2l1/; the libretro recipe builds without it. Fonts
the user imports live in <storage>/fonts and are added to the font store
+6 -6
View File
@@ -24,7 +24,7 @@ notes: |
minSdk 29. A Kotlin and Compose front end drives a PCSX2 tree vendored under
app/src/main/cpp/pcsx2 and pinned to v2.8.0, reached through the ARM_ANDROID
adapter that owns the JNI entry points. Frontends start the exported activity
com.sbro.emucorex.MainActivity; ES-DE passes the disc as the intent data URI.
com.sbro.emucorex.MainActivity, and ES-DE passes the disc as the intent data URI.
ref: app/build.gradle.kts:66-70, app/build.gradle.kts:97,
app/src/main/AndroidManifest.xml:90-104,
app/src/main/cpp/ARM_ANDROID/CMakeLists.txt:78-82,
@@ -40,7 +40,7 @@ notes: |
app/src/main/cpp/pcsx2/pcsx2/CMakeLists.txt:706,
app/src/main/cpp/pcsx2/pcsx2/CMakeLists.txt:723-734
Storage. The data root is the app files directory; the app creates cache,
Storage. The data root is the app files directory. The app creates cache,
resources, inis, sstates and memcards under it, then copies the whole resources
asset tree out of the package into resources. The core is handed AppRoot,
DataRoot, Resources, Settings and Cache from that root, and the launcher sets
@@ -149,7 +149,7 @@ files:
description: "PS2 BIOS image"
note: >-
Any image whose romdir holds RESET and ROMVER is accepted, whatever its
name. The 2 to 8 MB range gates the folder scan; an image named in the
name. The 2 to 8 MB range gates the folder scan, but an image named in the
configuration skips that range. Read into the 4 MB ROM region, which is
zero-filled first, and truncated to it. Shorter than 2465792 bytes disables
the OSDSys parameter HLE.
@@ -170,7 +170,7 @@ files:
extension, so the picker takes .7d alongside .bin and .rom, and the name
hint r27v1602f carries it past the name test. Read into the 4 MB ROM
window, whose upper half is cleared first. ROMVER marks it T with a fifth
character Z, which is what makes it COH-H and region 11; its description
character Z, which is what makes it COH-H and region 11. Its description
comes from the EXTINFO serial. A System 246 arcade manifest selects this
name from the BIOS folder. Byte-identical to the r27v1602f.7d member of the
MAME sys246 set.
@@ -554,7 +554,7 @@ files:
Played from the resources directory whenever an achievement notification is
raised and no custom sound is configured. Sound effects and the notification
sound both default on. The vendored tree carries only the README for this
directory, so the file has to be supplied; the Android sound callback
directory, so the file has to be supplied. The Android sound callback
returns without playing when the path is not a file. Upstream v2.8.0
ships it at 15696 bytes.
source_ref: "app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:81, app/src/main/cpp/ARM_ANDROID/src/integration/pcsx2_achievements_android.cpp:1245-1250, app/src/main/cpp/pcsx2/pcsx2/Pcsx2Config.cpp:1963-1966, app/src/main/java/com/sbro/emucorex/core/NativeApp.kt:461-467"
@@ -649,7 +649,7 @@ exclusion_note: >
Left out are the parts of the bundled resource tree that this platform compiles
out. ImGuiManager::Initialize returns false before the ImGui context exists, so
LoadFontData never runs and fonts/RobotoMono-Medium.ttf, fonts/fa-solid-900.ttf
and fonts/promptfont.otf are never read; InitializeFullscreenUI returns false
and fonts/promptfont.otf are never read. InitializeFullscreenUI returns false
unconditionally, so FullscreenUI::Initialize never runs and nothing under
fullscreenui or icons is loaded, cover-placeholder.png included. The DX11 and
DX12 renderers sit in the Windows branch of the core CMakeLists, so
+2 -2
View File
@@ -3,7 +3,7 @@ type: libretro
core_classification: pure_libretro
source: "https://gitlab.com/MaaaX-EPOCH84/libretro-emucv"
profiled_date: "2026-09-17"
pin_frozen: "the shipping core is this revision. HEAD removed the prototype from the tree on 2026-09-11 (a188c0f) and archived its last description files on 2026-09-12 (06a066a); the new skeleton has not yet been copied from libretro-emuscv1 (ROADMAP step 4.3). Recaling would repoint these refs at a tree that currently holds nothing but a roadmap."
pin_frozen: "the shipping core is this revision. HEAD removed the prototype from the tree on 2026-09-11 (a188c0f) and archived its last description files on 2026-09-12 (06a066a). The new skeleton has not yet been copied from libretro-emuscv1 (ROADMAP step 4.3). Recaling would repoint these refs at a tree that currently holds nothing but a roadmap."
source_commit: "6a6e1b15c5d5afefbc3fefdd8b52f3f2c8c0a0eb"
core_version: "0.00"
display_name: "EPOCH - Cassette Vision (EmuCV)"
@@ -25,7 +25,7 @@ notes: |
src/core.cpp:307) with a plain fopen (src/emu.cpp:138,
src/fileio.cpp:84-93). The file must be exactly 4064 bytes, the 2032
valid program addresses as 16-bit words (src/emu.h:16, src/emu.h:223,
src/emu.cpp:143-153); any other size zeroes program memory and leaves
src/emu.cpp:143-153). Any other size zeroes program memory and leaves
the cartridge not inserted. Each word is read as a big-endian 12-bit
instruction (src/emu.cpp:159-164). The commented MD5 check at
src/emu.cpp:313-320 is not compiled.
+1 -1
View File
@@ -20,7 +20,7 @@ notes: |
BIOS loading in src/vm/scv/memory.cpp:initialize() (lines 74-243).
Tries filenames in order: upd7801g.s01, upd7801g.bin, upd7801g.bios,
bios.rom, bios.bin. First successful open wins. Upstream eSCV uses
only BIOS.ROM (uppercase); the libretro port renamed and added
only BIOS.ROM (uppercase), and the libretro port renamed and added
fallback aliases.
The BIOS is read as 0x1000 (4096) bytes into the bios[] array, mapped
+1 -1
View File
@@ -18,7 +18,7 @@ notes: |
dmg_boot.bin (libretro, controllers/mapper/gb_mapper.c:35) to match RetroArch conventions.
Boot ROM loaded via file_map(PATH_SYSTEM, "dmg_boot.bin", 0, 256) in
gb_mapper_init (controllers/mapper/gb_mapper.c:225-228). Returns false on failure — no HLE
gb_mapper_init (controllers/mapper/gb_mapper.c:225-228). Returns false on failure, no HLE
fallback. Mapped at 0x0000-0x00FF, overlays ROM0 until BOOT_LOCK (0xFF50)
is written non-zero (lock_writeb, controllers/mapper/gb_mapper.c:97-106).
+2 -2
View File
@@ -18,7 +18,7 @@ notes: |
adds g_ram_data/g_ram_size exposure in mach/sms.c for RETRO_MEMORY_SYSTEM_RAM).
BIOS loaded via file_map(PATH_SYSTEM, "bios.sms", 0, BIOS_SIZE) in
sms_mapper_init (controllers/mapper/sms_mapper.c:162-165). Returns false on failure — no HLE
sms_mapper_init (controllers/mapper/sms_mapper.c:162-165). Returns false on failure, no HLE
fallback. Mapped at 0x0000, overlays cartridge ROM until bios_disable bit
set in slot control register (controllers/mapper/sms_mapper.c:79-82).
@@ -32,5 +32,5 @@ files:
required: true
size: 8192
validation: [size]
source_ref: "controllers/mapper/sms_mapper.c:12 (BIOS_SIZE=0x2000), :61 (bios_path), :162-170 (file_map + NULL check → return false)"
source_ref: "controllers/mapper/sms_mapper.c:12 (BIOS_SIZE=0x2000), :61 (bios_path), :162-170 (file_map, then false on a NULL map)"
note: "Mapped at 0x0000, overlays cartridge ROM until bios_disable bit set. file_map rejects files < 8192 bytes (main/file.c:59)."
+1 -1
View File
@@ -22,7 +22,7 @@ systems:
notes: >-
Emulates Enterprise 64/128, Videoton TVC, Amstrad CPC 464/664/6128,
and ZX Spectrum 16/48/128. All ROMs are embedded in the binary since
v1.1.0; external files override built-in data. Content type is
v1.1.0, and external files override built-in data. Content type is
auto-detected and determines machine configuration and ROM selection.
Custom ROM mappings are possible via .ep128cfg config files placed in
ep128emu/config/ or next to content. The .info declares epd19hft.rom
+9 -9
View File
@@ -26,7 +26,7 @@ notes: |
functions in .dynsym although it reports as stripped, so it is cited by
function name. The Android side is package com.epsxe.ePSXe, versionCode 139
versionName 2.0.15, apk md5 e18988b825f263bbc961bfbed1c4bc0b, with 2.0.6
(fce9c60c5cbc4e075cf97a587e64eb78) read alongside it; both verify against the
(fce9c60c5cbc4e075cf97a587e64eb78) read alongside it. Both verify against the
epsxe.com signing certificate (CN=epsxeteam, serial 0x4fdaca68), every entry
digest matches and none is unsigned. Two copies of 2.0.16 circulating on
archive.org are repackaged, signed CN=A1 and ModYolo, and are not read here.
@@ -62,7 +62,7 @@ notes: |
Both consumer families carry a table of the images they recognise, and the two
tables are built differently and do not hold the same set. Android ships 21
pairs of label and md5; findBios walks the tree to a depth of ten, skipping
pairs of label and md5. findBios walks the tree to a depth of ten, skipping
DCIM, Camera, asec, secure, dev, obb, .lfs and anything under /Android/data,
keeps files whose lowercased name ends in .bin and whose length is exactly
524288, md5s each one and on a hit writes biosPref to that path and turns
@@ -71,7 +71,7 @@ notes: |
own: over the 512 KB as big endian 16-bit words, the sum shifted left 16 bits
or'd with the low 16 bits of the xor. That value is looked up only to name the
image in the setup wizard. The Linux and macOS builds carry neither table.
Seventeen dumps are in both tables; four are known to Android alone; two are
Seventeen dumps are in both tables, four are known to Android alone, and two are
known to Windows alone and both turn out to be dumps TOSEC marks [b].
ref: ScanBiosTask.java:28, ScanBiosTask.java:145-191, ePSXeNative.java:280,
ePSXe 2.0.18 Windows 0x5c1090-0x5c1384, ePSXe 2.0.18 Windows 0x5c108c,
@@ -90,7 +90,7 @@ notes: |
Video, sound, cdrom and input go through the PSEmu Pro plugin interface.
init_gpu builds plugins/<name> from the configured name, dlopens it and
resolves GPUinit, GPUopen, GPUdmaChain and the rest of the entry points one by
one; init_spu_plugins and LoadPadPlugins do the same for their own. Windows
one, and init_spu_plugins and LoadPadPlugins do the same for their own. Windows
enumerates gpu*.dll, spu*.dll and cdr*.dll in plugins\. GPUCORE, SPUCORE and
INPUTCORE are the built-in defaults and are not files. Android has no PSEmu Pro
loader: its two OpenGL renderers ship inside the package and are only replaced
@@ -220,7 +220,7 @@ files:
validation: [size, md5]
md5: ca5cfc321f916756e3f0effbfaeba13b
description: "DTL-H1100 (v2.2 03-06-96 D)"
note: "Known to the Android table alone; no Windows record carries its checksum."
note: "Known to the Android table alone. No Windows record carries its checksum."
source_ref: "ScanBiosTask.java:28, ScanBiosTask.java:162-172"
- name: scph1001_v21.bin
@@ -234,7 +234,7 @@ files:
validation: [size, md5]
md5: da27e8b6dab242d8f91a9b25d80c63b8
description: "DTL-H1101 (v2.1 07-17-95 A)"
note: "Known to the Android table alone; no Windows record carries its checksum."
note: "Known to the Android table alone. No Windows record carries its checksum."
source_ref: "ScanBiosTask.java:28, ScanBiosTask.java:162-172"
- name: scph1002b.bin
@@ -248,7 +248,7 @@ files:
validation: [size, md5]
md5: 417b34706319da7cf001e76e40136c23
description: "SCPH-1002, DTL-H1102 (v2.1 07-17-95 E)"
note: "Known to the Android table alone; no Windows record carries its checksum."
note: "Known to the Android table alone. No Windows record carries its checksum."
source_ref: "ScanBiosTask.java:28, ScanBiosTask.java:162-172"
- name: scph5000.bin
@@ -430,7 +430,7 @@ files:
validation: [size]
md5: eb201d2d98251a598af467d4347bb62f
description: "SCPH-5000, DTL-H1200, DTL-H3000 (v2.2 12-04-95 J), bad dump"
note: "Recognised by Windows alone, as scph5000 - JP with id 0xa63468aa. That record is pinned on a checksum, not on a hash the code spells out; the md5 here is the dump that reproduces the checksum. TOSEC tags the same dump [b]."
note: "Recognised by Windows alone, as scph5000 - JP with id 0xa63468aa. That record is pinned on a checksum, not on a hash the code spells out, and the md5 here is the dump that reproduces the checksum. TOSEC tags the same dump [b]."
source_ref: "ePSXe 2.0.18 Windows 0x5c118c, ePSXe 2.0.18 Windows 0x42f525-0x42f568"
- name: scph5502_b.bin
@@ -632,7 +632,7 @@ files:
category: game_data
unsourceable: "guide text the user files under the disc serial"
description: "in-app guide for one title"
note: "Android only. Named after the disc serial and loaded into the help viewer as a local page; the menu entry is offered only when the file is there."
note: "Android only. Named after the disc serial and loaded into the help viewer as a local page. The menu entry is offered only when the file is there."
source_ref: "ePSXe.java:1047, ePSXe.java:1857, ePSXe.java:1896"
- name: skin.png
+8 -8
View File
@@ -17,17 +17,17 @@ notes: |
Virtual machine for the Eternal Software Initiative architecture, a Subleq
variant with indirect operands, a keyboard port, a console port, a wall
clock at word 64 and a timer interrupt through word 0. Adrian Cable's
reference machines are vm/vm.c (SDL3 framebuffer) and vm/vm_console.c;
the libretro core by iyzsong carries the same loop in libretro.c:186-222.
reference machines are vm/vm.c (SDL3 framebuffer) and vm/vm_console.c,
and the libretro core by iyzsong carries the same loop in libretro.c:186-222.
Machine memory is a static array of 3<<27 words, 1.5 GiB, cleared again
when the content is unloaded (libretro.c:360-364); the framebuffer is its
when the content is unloaded (libretro.c:360-364). The framebuffer is its
last 800x512 words (libretro.c:9-13, 22-23), pushed to the frontend as
XRGB8888 on every retro_run (libretro.c:330-334).
The content is the whole machine image. retro_load_game copies the buffer
the frontend hands over to word 0, refuses an image larger than memory and
starts the interpreter on a thread (libretro.c:302-314); need_fullpath is
starts the interpreter on a thread (libretro.c:302-314). need_fullpath is
false and the accepted extensions are capsule and bootimage
(libretro.c:275-282). The upstream machines fread the same file into mem
(vm/vm.c:45-48, vm/vm_console.c:32).
@@ -39,15 +39,15 @@ notes: |
39, followed by the flat binary (tools/make_boot_image.py:34-68). The
upstream repository ships capsules/vmlinux.bootimage.xz, ESI Linux with
busybox, Doom, nano, lynx and htop in its initramfs, 110 MiB once
decompressed; the frontend does not open xz, so the image is decompressed
decompressed. The frontend does not open xz, so the image is decompressed
before loading.
Nothing else is read. retro_set_environment registers the log interface and
the keyboard callback and nothing more (libretro.c:238-249); the core never
the keyboard callback and nothing more (libretro.c:238-249), and the core never
asks for a system, save or content directory and opens no file itself.
Keyboard events are translated to USB HID usage IDs and queued eight deep
(libretro.c:36-184); console output goes to the host stdout with write
(libretro.c:205-206); a fetched C of zero halts the machine and asks the
(libretro.c:36-184). Console output goes to the host stdout with write
(libretro.c:205-206). A fetched C of zero halts the machine and asks the
frontend to shut down (libretro.c:196-199). No savestate
(libretro.c:336-339), no memory map, no audio.
+4 -4
View File
@@ -18,20 +18,20 @@ notes: |
Wolfenstein: Enemy Territory installation to <path>". pak1.pk3 and
pak2.pk3 are checked against the server's requested pak list in
FS_ComparePaks (src/qcommon/files.c:4011-4018) but neither is a
startup gate; third-party mods pull them in as needed (see README.md
startup gate. Third-party mods pull them in as needed (see README.md
"In addition, third party mods might also require pak1.pk3 and
pak2.pk3"). mp_bin.pk3 ships in the retail release and holds the
stock multiplayer binaries.
NUM_ID_PAKS = 9 (src/qcommon/qcommon.h:815) counts the names recognised
by FS_idPak; retail Enemy Territory 2.60b publishes only pak0, pak1,
by FS_idPak. Retail Enemy Territory 2.60b publishes only pak0, pak1,
pak2 and mp_bin, so the extra slots are reserved for forward compatible
server lists, never filled by id.
The ET Legacy project ships its own replacement etmain/ assets (configs,
presets, locale files) directly in the source tree, plus a Legacy mod
pk3 downloaded on first run. The user still has to supply the retail
pak0.pk3 from the free Enemy Territory 2.60b download; pak0.pk3 holds
pak0.pk3 from the free Enemy Territory 2.60b download. pak0.pk3 holds
every id map, model, texture and sound.
files:
@@ -65,4 +65,4 @@ files:
path: "etmain/mp_bin.pk3"
required: false
source_ref: "src/qcommon/files.c:4011-4018 (FS_idPak)"
note: "Retail multiplayer QVM binaries. ET Legacy ships its own cgame/ui binaries; retail pack is for pure clients joining stock servers."
note: "Retail multiplayer QVM binaries. ET Legacy ships its own cgame/ui binaries, and the retail pack is for pure clients joining stock servers."
+1 -1
View File
@@ -30,5 +30,5 @@ notes: |
line to auto-start the program (ref: src/libretro.c:614-686). It
belongs to the content.
exclusion_note: "BIOS, BASIC cartridges and ExelDisk DOS compiled into the core; the system directory is never read"
exclusion_note: "BIOS, BASIC cartridges and ExelDisk DOS compiled into the core, the system directory is never read"
files: []
+2 -2
View File
@@ -22,11 +22,11 @@ notes: |
master_patches / critter_patches default to "master.dat", "critter.dat",
"data" and "data" when the file is missing (gconfig.cc:58-61). On
startup, game_init_databases() in src/game/game.cc:1223 opens both
DAT files with db_init(); either missing raises GNWSystemError
DAT files with db_init(). Either missing raises GNWSystemError
"Could not find the master/critter datafile" (lines 1249, 1266) and the
game exits.
The data/ directory is a user-writable patch overlay; it is empty on a
The data/ directory is a user-writable patch overlay. It is empty on a
clean retail install, so retrobios does not ship an empty tree. Music
(ACM files under data/sound/music/) and movies (sound/MOVIES/) are
loaded on demand and the engine runs without them, so they are marked
+1 -1
View File
@@ -33,7 +33,7 @@ notes: |
present (src/game.cc:1380-1382). Not required for the base game.
Music (ACM), movies (MVE) and sound effects live in sound/, movies/,
and data/ overlays; the engine runs without them, so they are not
and data/ overlays. The engine runs without them, so they are not
tracked here.
exclusion_note: "data/, sound/ and movies/ load from the retail install folder, not from a shared BIOS tree"
+2 -2
View File
@@ -50,7 +50,7 @@ notes: |
the same base) because it does not share binaries or load behaviour.
files:
# ─── Neo Geo system BIOS (archive: neogeo.zip) ───
# Neo Geo system BIOS (archive: neogeo.zip)
- name: "neogeo.zip"
category: bios_zip
system: snk-neogeo-mvs
@@ -116,7 +116,7 @@ files:
size: 524288
crc32: "148dd727"
# ─── PGM board BIOS (archive: pgm.zip) ───
# PGM board BIOS (archive: pgm.zip)
- name: "pgm.zip"
category: bios_zip
system: igs-pgm
+2 -2
View File
@@ -22,13 +22,13 @@ notes: |
their ROM set (cd-q1.1k through cd-q4.4k), not as a separate DSP BIOS.
Board PLDs (buf1, ioa1, prg1, rom1, sou1) are listed in ROM definitions as
BRF_OPT (optional). These are GAL/PAL dumps for hardware preservation —
BRF_OPT (optional). These are GAL/PAL dumps for hardware preservation,
never loaded by the emulator.
ROM path: ROMs are loaded from the content directory (g_rom_dir).
system_directory (libretro.cpp:2202) is used only for hiscore.dat.
The .info note "BIOS files must be inside the ROM directory" is misleading —
The .info note "BIOS files must be inside the ROM directory" is misleading:
there are no BIOS files for CPS-1. This note is generic across all FBA cores.
244 ROM sets defined (488 STD_ROM_PICK/FN entries = 244 games).
+1 -1
View File
@@ -57,4 +57,4 @@ notes: |
files: []
exclusion_note: "Neo Geo BIOS is a parent ROM set (neogeo.zip) placed in the ROM directory alongside game ZIPs. Not a system directory file — follows arcade ROM set convention."
exclusion_note: "Neo Geo BIOS is a parent ROM set (neogeo.zip) placed in the ROM directory alongside game ZIPs. Not a system directory file, it follows the arcade ROM set convention."
+6 -6
View File
@@ -29,7 +29,7 @@ systems:
notes: |
Final Burn Alpha v0.2.97.44 as left in libretro/fbalpha, the repository the
libretro project froze when development moved to FinalBurn Neo. The makefile
builds fbalpha_libretro.so; ROCKNIX installs it as fbalpha2019_libretro.so.
builds fbalpha_libretro.so, and ROCKNIX installs it as fbalpha2019_libretro.so.
ref: src/burner/libretro/libretro.cpp:19
Each archive the driver names is looked for in three places, the first that
@@ -76,7 +76,7 @@ files:
system: snk-neogeo-mvs
description: "Neo Geo system BIOS ROM set"
required: true
note: "sm1.sm1, sfix.sfix and 000-lo.lo are required. sp-s3.sp1 is required unless one of the other 68K BIOS images is present; all other members are BRF_OPT."
note: "sm1.sm1, sfix.sfix and 000-lo.lo are required. sp-s3.sp1 is required unless one of the other 68K BIOS images is present. All other members are BRF_OPT."
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:930-981, src/burn/drv/neogeo/d_neogeo.cpp:1207-1216, src/burner/libretro/libretro.cpp:733-748"
contents:
- name: "sp-s3.sp1"
@@ -286,7 +286,7 @@ files:
system: coleco-colecovision
description: "ColecoVision system BIOS ROM set"
required: true
note: "coleco.rom is required; colecoa.rom, svi603.rom and czz50.rom are BRF_OPT. Archive name from CVGetZipName, which drops the cv_ prefix of cv_coleco."
note: "coleco.rom is required, while colecoa.rom, svi603.rom and czz50.rom are BRF_OPT. Archive name from CVGetZipName, which drops the cv_ prefix of cv_coleco."
source_ref: "src/burn/drv/coleco/d_coleco.cpp:638-670, src/burn/drv/coleco/d_coleco.cpp:675-680"
contents:
- name: "coleco.rom"
@@ -307,7 +307,7 @@ files:
system: msx
description: "MSX1 system BIOS ROM set"
required: true
note: "msx.rom is required; msxj.rom and kanji.rom are BRF_OPT. Archive name from MSXGetZipName, which drops the msx_ prefix of msx_msx."
note: "msx.rom is required, while msxj.rom and kanji.rom are BRF_OPT. Archive name from MSXGetZipName, which drops the msx_ prefix of msx_msx."
source_ref: "src/burn/drv/msx/d_msx.cpp:1680-1712, src/burn/drv/msx/d_msx.cpp:1716-1720"
contents:
- name: "msx.rom"
@@ -363,7 +363,7 @@ files:
system: deco-cassette
description: "DECO Cassette System BIOS ROM set"
required: true
note: "The program ROMs and cassmcu.1c are required; the six PROMs (v2.3m, v4.10d, v3.3j, dsp-3_p3-.e5, rms-3_p4-.f6, dsp-3_p5-.m4) are BRF_OPT."
note: "The program ROMs and cassmcu.1c are required, while the six PROMs (v2.3m, v4.10d, v3.3j, dsp-3_p3-.e5, rms-3_p4-.f6, dsp-3_p5-.m4) are BRF_OPT."
source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3392-3446, src/burn/drv/dataeast/d_decocass.cpp:3456-3465"
contents:
- name: "v0a-.7e"
@@ -425,7 +425,7 @@ files:
system: taito-cchip
description: "Taito C-Chip uPD78C11 internal ROM"
required: true
note: "Named as board ROM set by Operation Wolf, Rainbow Islands, Volfied and others; there is no BurnDriver called cchip, the name comes from szBoardROM."
note: "Named as board ROM set by Operation Wolf, Rainbow Islands, Volfied and others. There is no BurnDriver called cchip, the name comes from szBoardROM."
source_ref: "src/burn/drv/taito/d_taitomisc.cpp:1369-1373, src/burn/drv/taito/d_taitomisc.cpp:6250"
contents:
- name: "cchip_upd78c11.bin"
+1 -1
View File
@@ -23,7 +23,7 @@ notes: |
Zero BRF_BIOS entries in d_cps1.cpp and d_cps2.cpp. QSound emulated in
software (qs_c.cpp:QscInit, panning table). No DSP ROM needed.
Board PLDs (buf1, ioa1, prg1/prg2, rom1, sou1) are BRF_OPT — GAL/PAL
Board PLDs (buf1, ioa1, prg1/prg2, rom1, sou1) are BRF_OPT: GAL/PAL
dumps for hardware preservation, never loaded by the emulator.
hiscore.dat enables persistent high scores across all arcade games.
+1 -1
View File
@@ -47,7 +47,7 @@ archive_prefix: fbneo
files:
# -------------------------------------------------------
# Neo Geo MVS/AES (neogeo.zip) — 68K BIOS ROMs
# Neo Geo MVS/AES (neogeo.zip), 68K BIOS ROMs
# -------------------------------------------------------
- name: "sp-s3.sp1"
archive: neogeo.zip
+1 -1
View File
@@ -46,7 +46,7 @@ notes: |
Arcade BIOS archives are opened as <name>.zip, then <name>.7z
(core/hw/naomi/naomi_cart.cpp:69-71). Each ROM inside is looked up by CRC
then by filename; the crc field of every BIOS blob is left at zero, so the
then by filename. The crc field of every BIOS blob is left at zero, so the
filename decides. No hash is checked on an archive.
NAOMI 2 is a platform of its own here: naomi_cart_GetPlatform returns
Loaded 100 of 495 files, more files were not shown because too many files have changed in this diff. Show more