mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 02:13:28 -05:00
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:
1 parent
583031eda5
commit
4231902a6c
495 files changed
+2486
-2301
No files matched your search
@@ -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"
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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).
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
@@ -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
@@ -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) ---
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)"
|
||||
@@ -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
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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: []
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
@@ -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).
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -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
@@ -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
@@ -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"
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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
@@ -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"
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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,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"
|
||||
|
||||
@@ -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
@@ -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"
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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).
|
||||
|
||||
|
||||
@@ -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)."
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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."
|
||||
@@ -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: []
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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."
|
||||
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
Reference in new issue
Block a user