33 Commits
Author SHA1 Message Date
Abdessamad Derraz c738073f66 fix: move the refs and the pin together or not at all
Recaling refs while the pin stays put produces exactly the state the
all-or-nothing rule exists to prevent: a profile whose refs describe one
revision and whose source_commit names another. The tool manufactured it
on mariani, where three prose runs it could not rewrite kept
bump_commit refusing while eleven refs had already moved.

Asking for both writes is now atomic. The work happens on a copy, which
is promoted only when the pin follows, and a rebase is refused outright
when something visible beforehand will hold the pin: an annotated ref,
one under a mode key, or a prose run whose tokens cannot be located well
enough to rewrite. Where the block only appears after the write, the
copy is discarded and the profile is named on stderr rather than left
half moved.

mariani is back on its pin and stays at four refs to read, which is
honest: three of them have to be rewritten by hand before anything can
advance.
2026-09-04 18:55:15 +02:00
Abdessamad Derraz 09406ba5d4 chore: put mariani back on its pin 2026-09-04 18:48:33 +02:00
Abdessamad Derraz ffb479e6a3 chore: recale mariani onto its pin
The two changed blocks are BOOL, TRUE and FALSE giving way to bool, true
and false, and MemInitializeCustomROM losing its void parameter list.
Which ROM is read and how is untouched. 67 refs, all anchored.
2026-09-04 18:44:08 +02:00
Abdessamad Derraz 6f27a296f7 feat: refuse a citation no repository can hold
kenji-nx cited tmp/es-de/ANDROID.md:470-474, a path from the machine of
whoever profiled it. No revision of any declared repository holds it, so
profile_sync could only report it missing, every pass, forever, and no
amount of reading would ever settle it.

validate_schemas now refuses a scratch directory, an absolute path, a
Windows drive path and one climbing out of the tree, and names the
offending citation rather than the scalar that carries it. Offline, so it
runs on every push and every pull request rather than waiting for a
network pass.

The ES-DE citation reads as external now, which is what it always was.
kenji-nx is at 37 refs, all anchored: the three changed blocks were var
giving way to explicit types.
2026-09-04 18:26:27 +02:00
Abdessamad Derraz d124f6c516 feat: watch the profiles that declare no files
An empty file list is the one assertion here that ages unwatched. Nothing
can go missing and no ref can drift, so nothing notices when a core that
embedded everything grows a path. virtualjaguar said "No external BIOS
files are required or loaded by this core" while its source had grown
eleven filenames read from the system directory, and only a reading
found it.

fileless_audit looks for the request itself, the system directory ask, in
the sources each profile already cites. Over the 151 fileless profiles it
named eleven, of which two were covered by data_directories, six carried
an exclusion_note, and three had nothing written down at all: craft
writes its world database in that directory, dice stores the answer in a
variable no other file in the tree names, lutro hands it to the Lua game.
Each now says so.

The check settles: declared files, a declared directory, or a written
answer all end it, so what it reports is the set nobody has read yet. A
test holds the corpus at zero.
2026-09-04 18:13:53 +02:00
Abdessamad Derraz 2ea745a062 feat: virtualjaguar reads BIOS files now, so declare them
The profile said "No external BIOS files are required or loaded by this
core" and carried an empty file list. The core reads up to eleven names
from the system directory today.

Staging left retro_load_game for stage_cart_boot_rom, which tries a file
before the embedded array. BT_CUSTOM, a value the enum did not carry
when this was profiled, searches six cart boot ROM names across three
directories; BT_M_SERIES tries jagboot_m.rom. Both need 0x20000 bytes,
the size copied to jagMemSpace + 0xE00000.

The Jaguar CD BIOS is the larger addition: three name groups over five
directories, accepted at exactly 0x40000 bytes and recognised by CRC32
against 687068D5 retail and 55A0669C developer. The group order follows
virtualjaguar_cd_bios_type, then generic names, then the other type,
since a lone file of the wrong type still beats the embedded copy.

None is required, every path falls back to an embedded array. What they
buy is the real dump instead of the reimplementation. The collection
holds the cart boot ROM under boot.rom; both CD BIOSes and jagboot_m.rom
are absent and now show as gaps rather than as nothing at all.
2026-09-04 17:54:05 +02:00
Abdessamad Derraz f85236fa1e chore: recale geargrafx onto its pin
The profile mixed vintages: most refs carried pin-era line numbers while
the Game Express note already named the HEAD position, which reads as a
blank line at the pin. Everything now describes one revision. The only
content change in the cited blocks is LoadMediaFromZipFile taking a
softpatching flag, which decides nothing about which BIOS is read.
2026-09-04 17:50:55 +02:00
Abdessamad Derraz 1a1f19be2d feat: check a MAME ref against the set it names
profile_sync follows content, so a ref that drifted still anchors where
the cited text went. That is drift detection working, and it cannot
answer the only question a MAME romset ref asks: does this line declare
this set. It flagged five refs in one driver file where nineteen were
stale, the fourteen others having been relocatable somewhere plausible.

mame_ref_audit asks the stronger question and found ninety-two across
the four profiles whose upstream still moves: mame 66, mamearcade 18,
mamemess 6, groovymame 2. Each had exactly one declaration to point at.
The frozen generations, mame2009 through mame2016, come out clean, which
is the check saying it finds drift only where drift can happen.

The set name is argument 1 of the machine macro. Matching it anywhere on
the line matches every clone naming it as parent, which is most of a
driver, and comments are stripped first because a declaration can sit
behind one. A set no machine declares is reported as not judgeable, not
wrong: device archives take their DEFINE_DEVICE_TYPE shortname.
2026-09-04 17:48:24 +02:00
Abdessamad Derraz 2663bac1c2 chore: point each xavix ref at its own set
profile_sync flagged five refs in src/mame/tvgames/xavix.cpp. Checking
each entry against the line that declares its own set showed nineteen
were wrong, the whole e-kara and XaviX family: ekara cited 2956 where
the pinned revision declares it at 2878. The fourteen the tool passed
were relocatable by content, so they anchored somewhere plausible; that
is drift detection working, and it is weaker than asking whether the
cited line declares the set the entry names.

Every ref now names the CONS line of its own set at the pinned
revision, checked by matching the set name on that line rather than by
anchoring.
2026-09-04 17:35:30 +02:00
Abdessamad Derraz 5ccdaa6bdf docs: the release key is registered, so name the cross-check 2026-09-04 17:32:14 +02:00
Abdessamad Derraz ece637d52d feat: let a profile state that its upstream is gone
Saying those profiles would stay open no matter what was wrong. A dead
forge is a verifiable fact, and a fact can be recorded: upstream_gone
carries why, and the profile stops being an open problem. The refs
describe the last revision anyone could reach, which is all any reader
can ask of them.

The declaration is guarded rather than trusted, because a forge can come
back and a profile that keeps asserting a death nobody rechecks is worse
than one that fails loudly. Declared and unreachable reports as a
recorded fact; declared and answering reports as the contradiction it
is, and the profile has to be read again.

yuzu and suyu carry GitHub's 451. citron carries the loss of
git.citron-emu.org and the squatter now sitting on the .com. Each names
what was probed and when, so the next reader retraces it rather than
repeating it.
2026-09-04 17:25:23 +02:00
Abdessamad Derraz 70d121e99a chore: advance three pins their refs had already passed
The refs carried paths from a revision newer than source_commit, so the
profiles described two trees at once. rvvm is the plain case: the file
is src/rvvm.c at the pin and src/core/rvvm.c at the revision its refs
were written against, and citing the second against the first reads as a
file that vanished.

The diagnostic added for this named all three in one pass, and each cost
one line. rvvm 3 refs, boom3 4, applewin 1, all anchored.
2026-09-04 17:04:28 +02:00
Abdessamad Derraz 1fb717324b fix: name the stale pin instead of a missing file
A ref whose file is absent at the pinned revision reported "pin revision
missing", which reads as code that vanished. When the same file is at
HEAD and the cited range fits it, nothing vanished: the ref was written
against HEAD while source_commit still names an older revision, and the
profile describes two trees at once. The reason now says so, because the
fix is the pin and not a hunt for a move that never happened.

This is the state three profiles were left in during their own
reprofiling, against a warning the repository already carries. A range
that overruns HEAD stays a plain miss, and a file absent from both
revisions is unchanged.
2026-09-04 16:45:51 +02:00
Abdessamad Derraz 05b08d6e39 chore: recale xenia-edge onto the revision it describes
Refs written at the new line numbers while the pin still named the old
revision left the profile describing two trees at once. The gpu cvar is
the clearest case: at the pin it sits in xenia_main.cc, at the revision
this profile now names it moved to emulator.cc beside the code that
reads it, and citing one against the other reads as a blank line.

The rest is a plugins.toml path join that stopped embedding a backslash,
and a cvar description that says DXIL validator where it said DXIL
shader compiler. 31 refs, all anchored.
2026-09-04 15:50:10 +02:00
Abdessamad Derraz 2abe8808b1 feat: drop the dxcompiler xenia-edge no longer loads
The D3D12 backend used to load dxcompiler.dll and dxil.dll and refused
to start without the compiler. It now compiles shaders through Mesa and
keeps only the signer: D3D12 rejects an unsigned shader, so
PipelineCache::Initialize stops on IsSignerAvailable() and asks for a
recent dxil.dll. dxcompiler appears nowhere in the tree any more, and
the installer extracts that one entry from the same pinned archive.

The profile still declared dxcompiler.dll required, so it sent people
after a file the emulator stopped reading. The gpu cvar moved to
emulator.cc beside the code that reads it.
2026-09-04 15:49:18 +02:00
Abdessamad Derraz cf62ccae58 chore: name the release arcadeflashweb reads, not the repo
flash.html, swfobject.js and manifest.json ship in the release and exist
in no revision of the source tree: the profile marks them bundled. Cited
behind the repository's own name, the resolver stripped that name and
looked for them in the tree, where they have never been. Cited behind
ArcadeFlashWeb-release they read as what they are, an artefact no
declared revision can confirm or deny. 21 refs, none left to read.
2026-09-04 15:47:06 +02:00
Abdessamad Derraz e2eb1a756f chore: recale ax360e onto its pin
Refs were written with the repository's own name in front, so each read
as a rename to the path without it. The six changed blocks are a source
file added to the build list, XbdmModule loaded behind a console_type
check for an anti-cheat, a devkit XEX1 key compiled in beside the retail
one, a reworded log line, wider Unicode ranges for the glyph set, and a
Windows branch that picks up an already-loaded renderdoc.dll. None of
them changes a file the user supplies. 36 refs, all anchored.
2026-09-04 15:45:28 +02:00
Abdessamad Derraz 3a2f7101cb docs: name the fourth key ax360e compiles in 2026-09-04 15:45:16 +02:00
Abdessamad Derraz 96160471d9 chore: give pce-emu its subproject prefix
emu-ex-plus-alpha carries fourteen subprojects and each holds its own
src/main/Main.cc, options.cc, EmuMenuViews.cc and system.ccm. Written
without PCE.emu/ in front, those six refs matched fourteen paths and the
directories the profile already cites could not narrow them, so each
reported absent at its own pinned revision. Every other profile in the
family already wrote the prefix. 16 refs, all anchored.
2026-09-04 15:44:14 +02:00
Abdessamad Derraz f45050aa5c docs: say what a gone forge and a mirror do 2026-09-04 15:36:10 +02:00
Abdessamad Derraz ca307a4ef1 feat: keep a profile checkable when its forge goes
Four Switch profiles were unverifiable and said so on stderr every pass.
yuzu and suyu answer 451, citron's host stopped resolving, and
git.eden-emu.dev returns 403 to anything that is not a browser. Each
aborted its own report, so nothing could be said about any of them, and
the noise repeated on every run over the whole corpus.

A withdrawn forge is now a fact rather than a failure. GoneError covers
451, 410 and a host that does not resolve; none is retried, since three
attempts with backoff end in the same place. Those profiles land in
their own summary bucket, out of the review backlog where nobody could
act on them anyway. A 403 stays what it was, a refusal, because small
Forgejo instances behind anti-bot filters issue it routinely.

A profile can now name a source_mirror, consulted after source and
upstream so a live primary always decides attribution. Reaching it took
two more changes: a repository that refuses is muted for the rest of the
pass instead of ending it, keyed by host as well as slug because a
mirror carries the same slug on another forge; and a refused miss is not
cached, or the mute would answer for the mirror that was about to be
asked.

eden now reads from its Codeberg copy, which holds the same head and the
pinned commit: 5 refs, all anchored, where the profile could not be
checked at all. yuzu, suyu and citron have no mirror that serves
content, and now say so once instead of failing loudly.
2026-09-04 15:35:00 +02:00
Abdessamad Derraz e6d325ed1b docs: regenerate for the linapple icon 2026-09-04 15:11:14 +02:00
Abdessamad Derraz 7e0f27161f feat: reprofile visual-pinball onto FileLocator
VPX moved file location into one class. FileLocator holds the read-only
application path and the preferences path, and picks between two layout
modes from where the application ini sits: AppPrefData splits static
data, settings and tables across three roots, AppOnly keeps everything
in the application folder. The profile still described m_szMyPath and
m_szMyPrefPath, identifiers the tree no longer carries.

Script lookup changed shape with it. SearchScript walks ten locations
case-insensitively, rooted on the table's own folder rather than the
working directory, where the profile documented seven. The editor's
completion parser left that search entirely: ParseVPCore opens core.vbs
at the Scripts subfolder alone and warns when it is absent.

The PinMAME root now prefers a pinmame folder beside the table before
the global setting and the platform default. vpx.html is served by the
web server, the LiveUI no longer naming it.

Four PinMAME citations read as external again: the project word is only
recognised behind a list delimiter, and one of them sat behind "at".
41 refs, 37 anchored, 4 external, none left to read.
2026-09-04 15:09:36 +02:00
Abdessamad Derraz 0710ea4d45 feat: document the arcade BIOS emucorex now takes
MIN_BIOS_SIZE fell from 4 MB to 2 MB (BiosTools.cpp:16), which is what
admits the Namco System 246/256 COH-H chip dumps: those are 2 MB where a
console image is 4. The profile still declared the old floor, so it
described a gate the code had stopped applying.

Three changes travel with it. A COH-H board is region 11 rather than 8.
Its description is built from the EXTINFO serial, because Sony left the
version and date fields identical across those BIOSes, and the three
serials the code names resolve to System 256, System 246 Rack C and the
COH-H board. The ROM window is zero-filled before the read so its unused
upper half cannot retain the previous image.

The picker follows: .7d and .8g are accepted extensions, r27v1602f a
name hint. Both dumps are already in the collection, byte-identical to
the r27v1602f members of the MAME sys246 and sys256 sets, and the .7d is
the same content as 246C.bin, which Redump catalogues as Namco System
246 Rack C with the very serial the new code maps.

97 refs, all anchored, pin moved to the revision they describe.
2026-09-04 15:04:13 +02:00
Abdessamad Derraz 54fe5383f1 chore: recale bsnes-jg onto its pin
The cited blocks moved by seven lines and their bodies changed only
where bfunction gave way to std::function: {&DSP1::read, &dsp1} is now
memfn(&DSP1::read, &dsp1). Which ROM is loaded, under what name, size
and hash, is untouched. Diff read before the recale.
2026-09-04 14:59:49 +02:00
Abdessamad Derraz 8e873c5b91 feat: reprofile linapple against its restructured tree
LinApple 3.0.0 moved every ROM out of hand-written byte arrays into
res/roms/*.rom, which scripts/generate_roms.sh compiles into
EmbeddedRoms.cpp behind an ENABLE_ROM_* macro. The bytes survived the
move: every hash this profile recorded against the old string literals
matches the image that replaced it.

The macros are what matters. ENABLE_ROM_CLONE_BASE64A,
ENABLE_ROM_CLONE_PRAVETS and ENABLE_ROM_CLONE_TK3000E are OFF in the
default build, so Base64A, Pravets 82/8M/8C and TK-3000 //e refuse to
start: mem_initialize finds no rom_data, names the cmake flag and the
--rom option, and returns -1. Five system ROMs the user has to supply,
none of them documented until now. The collection already held them.

Also new: icon.bmp, which the SDL frontends read from disk through the
data search path, and the J-Plus system ROM the old profile did not
list. The tree behind the old refs is gone, so the notes describe the
one that replaced it: five frontends, src/core, src/apple2, and a
program_dir still declared and never assigned.

38 refs, all anchored. 9 of 9 files present.
2026-09-04 14:58:55 +02:00
Abdessamad Derraz 6a0fb1e776 fix: resolve a bare cited name at the pin first
A ref citing a bare filename, the way prose does, was matched against the
HEAD tree alone. A file that moved since the pin then resolved to its
HEAD path, which does not exist at the pin, and the ref reported GONE
with "pin revision missing": it failed for the one reason it never
should, its own success at HEAD.

The pin tree is searched first, HEAD stays the fallback, and the rename
search carries the pin path forward as it does for any written path.
This is what the resolver already documents for prefixed and suffixed
paths; the bare-name branch was the one that did not follow it.

linapple cites Memory.cpp, src/Memory.cpp at its pin and
src/apple2/Memory.cpp today. Its refs now name where the code went
instead of reporting it missing.
2026-09-04 14:46:46 +02:00
Abdessamad Derraz 11da070128 chore: recale the profile refs onto their pins
Upstream moved under 145 profiles: 679 refs shifted and 452 followed a
renamed file, against 6,483 that still anchor where they were written.
The recale rewrites the located ranges only, keeping the annotations and
the sentences that carry them, and 106 pins advance in the same commit
because refs and source_commit name one revision or the profile
describes two at once.

Nothing here was guessed. The 183 refs that are CHANGED, GONE or
AMBIGUOUS are untouched, and the 57 profiles holding them keep their old
pin until someone reads the diff: profile_sync refuses to recale a
profile while any of its refs needs a re-read. trident kept its pin too,
its annotated ref being one the writer will not rewrite.
2026-09-04 14:41:44 +02:00
Abdessamad Derraz 3891d897a6 fix: report the writes a dry run would make
--backfill-commits and --realign-prose have always printed what they
would write. --rebase-refs and --bump-commit took the flag and printed
nothing, so the only way to read a plan was to let it happen, and the
recale and the pin had to be done in two full network passes with
--force in between.

Both now plan. The plan runs the production write path over a throwaway
copy rather than a parallel branch, so it cannot drift from the write,
and the planned bump reads the text the recale would have left: a pin
held back by prose the same pass would move is no longer reported as
blocked. One pass does both, recale before bump on each profile.

bump_commit also stopped announcing a rewrite of the pin to the value it
already held. On the corpus that was 126 of 232 announcements, which
buried the 106 profiles that did move.
2026-09-04 14:41:37 +02:00
Abdessamad Derraz 1a96853aee feat: sign the release checksum list
SHA256SUMS.txt sat beside the artifacts it vouches for, so whoever could
rewrite a release rewrote the list with it. The packs were already
reproducible, which answers corruption and lets a third party rebuild an
archive byte for byte; nothing answered a rewritten release.

The list is now signed with an ed25519 key kept for this alone, and the
public half is allowed_signers at the repository root, so verification
does not go through the release page: ssh-keygen -Y verify against the
committed file, then sha256sum --check. Rehearsed on all three outcomes:
a good signature, a tampered pack caught by the sums, a rewritten list
caught by the signature.

The release steps sign and upload the signature, the README points a
downloader at the procedure, and the reproducibility section says what
each half proves. Rotation keeps retired lines so past releases stay
verifiable. Three tests hold the trust root, the signing step and the
documented principal in agreement.
2026-09-04 14:01:05 +02:00
Abdessamad Derraz 5587c25675 fix: run the suite on both roads into main
validate.yml triggered on pull_request alone, and it holds the only
unittest invocation in the repository: deploy-site.yml stops at
validate_schemas, generation and the freshness diff. Work lands on main
by direct push far more often than by pull request, so 1,318 cases were
guarding the road almost nothing takes.

The suite and the schema check now run on both events. validate-bios and
label-pr read pull request context and carry an event guard. The
concurrency group falls back to the ref, so a push series collapses to
the tip: what stays verified is the head of main.

The path lists are spelled out per event because the workflow parser
reads no YAML anchor, which PyYAML would have accepted in silence. Four
tests hold the wiring: the suite reachable from a push, the two path
lists equal, every job reading pull request context guarded, and no
anchor in any workflow.
2026-09-04 13:40:11 +02:00
Abdessamad Derraz 60c723a3bf docs: name the files adler32 belongs to
The field reference carried the same attribution the FAQ did:
known_hash_adler32 described as Dolphin's IPL files, when dolphin.yml
declares it on dsp_rom.bin and dsp_coef.bin. The guard now scans every
wiki page rather than the FAQ alone.
2026-09-04 11:43:38 +02:00
Abdessamad Derraz fe77535c3b fix: state one catalog ratio, correct the faq
The home page and the stats export counted every file carrying a
provenance record, the provenance page and the README only the system
files. The site published 553 and 566 for the same quantity, one click
apart, and the export paired the wider count with composition.systems as
its denominator. common.count_catalog_matched is now the single source,
scoped to the systems bucket.

The FAQ had drifted from the profiles it describes: MAME pinned at 0.287
against 0.289 in mame.yml, Adler-32 attributed to Dolphin's IPL rather
than the DSP ROMs that carry known_hash_adler32, and the per-emulator
verbose report named as the only content check on an existence platform,
which skips the DISCREPANCY line the platform report raises itself.

Tests read both sides: no generator may count matches inline, and each
FAQ claim is checked against the profile or the script that owns it.
2026-09-04 11:41:17 +02:00
187 changed files with 3010 additions and 1077 deletions

No files matched your search

+23 -2
View File
@@ -1,5 +1,8 @@
name: PR Validation
name: Validation
# The same checks on both roads into main. Work lands here by direct push as
# often as by pull request, and a test suite reachable only from a PR guards
# the road nobody takes.
on:
pull_request:
paths:
@@ -14,18 +17,35 @@ on:
- "install.py"
- "install.sh"
- "install.ps1"
# Spelled out twice because the workflow parser reads no YAML anchor; a test
# holds the two lists equal.
push:
branches: [main]
paths:
- "bios/**"
- "platforms/**"
- "emulators/**"
- "schemas/**"
- "scripts/**"
- "tests/**"
- "install.py"
- "install.sh"
- "install.ps1"
permissions:
contents: read
pull-requests: write
concurrency:
group: validate-${{ github.event.pull_request.number }}
# A push series collapses to the tip: what has to stay verified is the head
# of main, not every commit that passed under it.
group: validate-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
validate-bios:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
@@ -100,6 +120,7 @@ jobs:
label-pr:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
permissions:
pull-requests: write
steps:
+5 -3
View File
@@ -32,6 +32,8 @@ The script auto-detects your platform, downloads only missing files, and verifie
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, and `--target` narrows it to one machine; for a region or a bare minimum, build your own pack below.
The size is what the files occupy once extracted; the ZIP itself downloads smaller, and anything over 2 GB arrives split into `.zip.001`, `.zip.002` volumes. Open the `.001` with 7-Zip or PeaZip, or join them first (`cat Pack.zip.0* > Pack.zip`, or `copy /b Pack.zip.001+Pack.zip.002 Pack.zip` on Windows).
Every release ships `SHA256SUMS.txt` and a detached signature of it, checkable against `allowed_signers` in this repository: [verifying a release](https://abdess.github.io/retrobios/wiki/release-process/#verifying-a-release).
| Platform | Extracted size | Extract to | Download |
|----------|---------------:|-----------|----------|
| Batocera | 4.0 GB | `/userdata/bios/` | [Download](../../releases/latest) |
@@ -62,8 +64,8 @@ Each file is checked the way your platform checks it. Most compare a checksum, t
- **12 platforms** supported with platform-specific verification
- **449 emulators** profiled from source (RetroArch cores + standalone)
- **470 systems** handled by those emulators (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
- **10,330 files**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 4,982 system files, 2,809 arcade ROM sets, 2,539 game and engine data files
- **553 of 4,982 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index
- **10,331 files**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 4,983 system files, 2,809 arcade ROM sets, 2,539 game and engine data files
- **553 of 4,983 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index
- **12706 MB** total collection size
## Supported systems
@@ -169,4 +171,4 @@ The scripts and tooling are released under the [MIT License](LICENSE).
The BIOS and firmware files are not covered by that license: they are third-party system software, preserved and provided for personal backup, archival, and interoperability with emulation software. [NOTICE](NOTICE) sets out their status and how to ask for a file to be removed.
The reasoning, and where it is weakest, is in the [FAQ](https://abdess.github.io/retrobios/wiki/faq/#is-this-legal).
*Auto-generated on 2026-09-04T05:36:10Z*
*Auto-generated on 2026-09-04T13:09:50Z*
+1
View File
@@ -0,0 +1 @@
releases@retrobios ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIkAHTwnLhKeUvYC7+i8dnQMJnpElcV/hQq0FcZoKzI9
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

+19 -3
View File
@@ -1,8 +1,8 @@
{
"schema_version": 1,
"generated_at": "2026-09-03T21:05:56Z",
"total_files": 10330,
"total_size": 13322782391,
"generated_at": "2026-09-04T12:58:17Z",
"total_files": 10331,
"total_size": 13322784493,
"files": {
"520d3d1b5897800af47f92efd2444a26b7a7dead": {
"path": "bios/3DO Company/3DO/3do_arcade_saot.bin",
@@ -53578,6 +53578,16 @@
"crc32": "18c0ff3e",
"adler32": "7e6df93f"
},
"5aee3a718f3d541122b61b9b8203e8a28db97a34": {
"path": "bios/Other/linapple/icon.bmp",
"name": "icon.bmp",
"size": 2102,
"sha1": "5aee3a718f3d541122b61b9b8203e8a28db97a34",
"md5": "be7a389c5aa678f5e6ce4748593b0a29",
"sha256": "90e7ede6d0889020f5d2f23375f89d7cdae90b1ad5a79e5858cf144badc6ffbd",
"crc32": "43391a45",
"adler32": "dee843e8"
},
"d38572d22721eb5972f671cde54201d752dffe6b": {
"path": "bios/Other/mame4droid/.variants/hiscore.dat.0ca8052d",
"name": "hiscore.dat",
@@ -113517,6 +113527,7 @@
"cd43b9f8ec8c742fca150f9666da47a0": "f72ebcb3ad771321e36cacb49779dca6f2b4db9e",
"034527d42a96d0f39977cb85c6a8f2d8": "fcfbbb25e06f58d13e762b02bfd468c834d98fc8",
"ee44560f34033efa3bb47b3e0aac1772": "7b03befac4fbcef8c649048fa3ff5d095fd48dd3",
"be7a389c5aa678f5e6ce4748593b0a29": "5aee3a718f3d541122b61b9b8203e8a28db97a34",
"0ca8052de426b7eadcb64da341eadec6": "d38572d22721eb5972f671cde54201d752dffe6b",
"c0b17e87b2e1f239fd32545301f7e9cf": "75d31d949614b7d4e79de676c8a4b1c68b571f0a",
"98924f51c1fd7d5619f513809d2053b7": "89d9b28d973eb8f869d45f412f7080f56c9275f8",
@@ -133153,6 +133164,9 @@
"Master.dsk": [
"7b03befac4fbcef8c649048fa3ff5d095fd48dd3"
],
"icon.bmp": [
"5aee3a718f3d541122b61b9b8203e8a28db97a34"
],
"Category.ini": [
"75d31d949614b7d4e79de676c8a4b1c68b571f0a"
],
@@ -157105,6 +157119,7 @@
"066d1348": "f72ebcb3ad771321e36cacb49779dca6f2b4db9e",
"8031ff02": "fcfbbb25e06f58d13e762b02bfd468c834d98fc8",
"18c0ff3e": "7b03befac4fbcef8c649048fa3ff5d095fd48dd3",
"43391a45": "5aee3a718f3d541122b61b9b8203e8a28db97a34",
"19a61bc4": "d38572d22721eb5972f671cde54201d752dffe6b",
"c1c73f18": "75d31d949614b7d4e79de676c8a4b1c68b571f0a",
"b15d070b": "89d9b28d973eb8f869d45f412f7080f56c9275f8",
@@ -167437,6 +167452,7 @@
"c72a36bbd471daf5d12df9f7b85773771583ec960ff9ca17e66d2f7b22e5c8c3": "f72ebcb3ad771321e36cacb49779dca6f2b4db9e",
"fcf442b26c492253dfb8d2146e215b7b84b3ba87443face9c94a1e9474aa3ca4": "fcfbbb25e06f58d13e762b02bfd468c834d98fc8",
"0add32bcbd0e5b350437fa9d138b3c232368e36d8009852479fdb09d9db31113": "7b03befac4fbcef8c649048fa3ff5d095fd48dd3",
"90e7ede6d0889020f5d2f23375f89d7cdae90b1ad5a79e5858cf144badc6ffbd": "5aee3a718f3d541122b61b9b8203e8a28db97a34",
"04bc41efa4be5b3cad4e7718cc8d686a3424d129bb768346333ed42491de5651": "d38572d22721eb5972f671cde54201d752dffe6b",
"6e25b5a9021c18b738fbb0465446b4055bb2eff225a27a5827710ad464129631": "75d31d949614b7d4e79de676c8a4b1c68b571f0a",
"b6a6a03c9b6d65f9c8fe7f0a90e14c5d4ff0a4231ebd893e4c5b2b81a37ddaff": "89d9b28d973eb8f869d45f412f7080f56c9275f8",
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/audetto/AppleWin"
upstream: "https://github.com/AppleWin/AppleWin"
profiled_date: "2026-03-23"
source_commit: "599e81d07f4aeceec17c899213584d719c395718"
source_commit: "d495cfe427358d6b1f185a60bc2b3a8c7c5e8107"
core_version: "1.31.0.1"
display_name: "Apple II (AppleWin)"
cores:
+39 -39
View File
@@ -20,8 +20,8 @@ notes: |
rather than pulled as a submodule, and a JNI layer of about six thousand lines
replaces the Qt front end. The vendored tree reports itself as 0.0.41-alpha.1
at RPCS3 commit 40e9ee5a.
ref: aps3e/app/src/main/cpp/rpcs3/rpcs3/git-version.h:3,
aps3e/app/src/main/cpp/rpcs3/rpcs3/rpcs3_version.cpp:29
ref: app/src/main/cpp/rpcs3/rpcs3/git-version.h:3,
app/src/main/cpp/rpcs3/rpcs3/rpcs3_version.cpp:29
Source drops land on successive branches, not on the default one. Release 2.41
of 2026-07-30 is the commit titled 2.41 at the head of main4; the lightweight
@@ -31,7 +31,7 @@ notes: |
the only gradle file committed is app/build.gradle.bak, which carries the
placeholder 1.19a and is renamed and completed with the signing block at build
time.
ref: aps3e/README.md, aps3e/app/build.gradle.bak:16
ref: aps3e/README.md, app/build.gradle.bak:16
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,
@@ -39,8 +39,8 @@ notes: |
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.
ref: aps3e/app/src/main/cpp/aps3e_rp3_impl.cpp:127-133,
aps3e/app/src/main/java/aenu/aps3e/Application.java:21-64
ref: app/src/main/cpp/aps3e_rp3_impl.cpp:139-145,
app/src/main/java/aenu/aps3e/Application.java:21-64
The PS3 firmware is required and nothing runs without it. Three independent
gates enforce it: the game list refuses to launch an entry when the marker
@@ -51,11 +51,11 @@ notes: |
EmulatorActivity, which does not pass through the game list. The shipped
configuration leaves Libraries Control empty, so liblv2.sprx keeps its default
entry in the module list and the check fires.
ref: aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:143-145,
aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:187-190,
aps3e/app/src/main/java/aenu/aps3e/QuickStartActivity.java:316-318,
aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2747-2767,
aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:86,
ref: app/src/main/java/aenu/aps3e/MainActivity.java:144-146,
app/src/main/java/aenu/aps3e/MainActivity.java:188-191,
app/src/main/java/aenu/aps3e/QuickStartActivity.java:317-319,
app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2755-2775,
app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:86,
aps3e/app/src/main/assets/config/config.yml
Overlay text is drawn from a font list chosen by the Font File Selection
@@ -67,17 +67,17 @@ notes: |
come from the firmware rather than from a separate download. Custom points all
three classes at one file and reverts to From Firmware when that path no
longer exists.
ref: aps3e/app/src/main/cpp/aps3e_rp3_impl.cpp:192-222,
aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp:113-118
ref: app/src/main/cpp/aps3e_rp3_impl.cpp:204-234,
app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp:113-118
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 dlopened when both are set and the path
exists; otherwise the system libvulkan.so is used. Drivers are imported either
as a bare shared object or as a zip whose meta.json names the library.
ref: aps3e/app/src/main/cpp/aps3e_emu.cpp:875-899,
aps3e/app/src/main/cpp/vkapi.cpp:21,
aps3e/app/src/main/java/aenu/aps3e/EmulatorSettings.java:1229-1324
ref: app/src/main/cpp/aps3e_emu.cpp:945-969,
app/src/main/cpp/vkapi.cpp:21,
app/src/main/java/aenu/aps3e/EmulatorSettings.java:1232-1327
Encrypted disc images are supported by a loader that has no counterpart in the
desktop code line. Launching an ISO makes the Java layer look for a sidecar key
@@ -86,20 +86,20 @@ notes: |
as a hex string, or exactly 16 bytes, read as raw bytes, and installed as an
AES-128 decryption context. A 3k3y watermark at offset 0xF70 is recognised
separately and needs no key.
ref: aps3e/app/src/main/java/aenu/aps3e/Utils.java:170-190,
aps3e/app/src/main/java/aenu/aps3e/EmulatorActivity.java:147-153,
aps3e/app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:354-399,
aps3e/app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:508-554
ref: app/src/main/java/aenu/aps3e/Utils.java:185-205,
app/src/main/java/aenu/aps3e/EmulatorActivity.java:148-154,
app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:354-399,
app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:508-554
One import entry point takes EDAT, RAP and PKG. A RAP is copied verbatim into
the exdata folder of user 00000001 and rejected unless it is exactly 16 bytes.
An EDAT is parsed for its NPD header, rejected below 0x90 bytes or without the
NPD magic, and written to the same folder under the content id the header
carries. A PKG goes through the package reader and lands in dev_hdd0.
ref: aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:594-605,
aps3e/app/src/main/java/aenu/aps3e/Emulator.java:820-844,
aps3e/app/src/main/cpp/aps3e_emu.cpp:801-829,
aps3e/app/src/main/cpp/aps3e_emu.cpp:783-793
ref: app/src/main/java/aenu/aps3e/MainActivity.java:647-658,
app/src/main/java/aenu/aps3e/Emulator.java:820-844,
app/src/main/cpp/aps3e_emu.cpp:871-899,
app/src/main/cpp/aps3e_emu.cpp:853-863
patch.yml, compatibility_table.json and database_config.json ship inside the
APK as assets and are not user supplied.
@@ -119,7 +119,7 @@ files:
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.
source_ref: "aps3e/app/src/main/cpp/aps3e_emu.cpp:587-757, aps3e/app/src/main/cpp/emulator_aps3e.cpp:1045, aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:538-570, aps3e/app/src/main/res/values/strings.xml:108-110"
source_ref: "app/src/main/cpp/aps3e_emu.cpp:657-827, app/src/main/cpp/emulator_aps3e.cpp:1078, app/src/main/java/aenu/aps3e/MainActivity.java:591-623, app/src/main/res/values/strings.xml:120-122"
- name: "<game>.dkey"
aliases: ["<game>.key"]
@@ -133,7 +133,7 @@ files:
and passed down as a second descriptor. 32 bytes are read as a hex string
and converted, 16 bytes are taken as raw; any other length fails the key
check. An image whose odd regions are encrypted does not boot without it.
source_ref: "aps3e/app/src/main/java/aenu/aps3e/Utils.java:170-190, aps3e/app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:354-399, aps3e/app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:850-870"
source_ref: "app/src/main/java/aenu/aps3e/Utils.java:185-205, app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:354-399, app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:850-870"
- name: "<content_id>.rap"
required: false
@@ -146,7 +146,7 @@ files:
dev_hdd0/home/00000001/exdata under the name it was given. The import is
refused unless the source is exactly 16 bytes. SELF decryption looks the
matching file up in that folder by content id, with a lowercase extension.
source_ref: "aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:596-600, aps3e/app/src/main/java/aenu/aps3e/Emulator.java:820-844, aps3e/app/src/main/cpp/rpcs3/rpcs3/Crypto/unself.cpp:1271-1286, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/system_utils.cpp:391"
source_ref: "app/src/main/java/aenu/aps3e/MainActivity.java:649-653, app/src/main/java/aenu/aps3e/Emulator.java:820-844, app/src/main/cpp/rpcs3/rpcs3/Crypto/unself.cpp:1271-1286, app/src/main/cpp/rpcs3/rpcs3/Emu/system_utils.cpp:391"
- name: "<content_id>.edat"
required: false
@@ -158,7 +158,7 @@ files:
Imported through the same entry. The NPD header is read and the file
refused below 0x90 bytes or when the magic is not NPD, then written whole
to dev_hdd0/home/00000001/exdata under the content id the header declares.
source_ref: "aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:601-605, aps3e/app/src/main/cpp/aps3e_emu.cpp:801-829, aps3e/app/src/main/cpp/emulator_aps3e.cpp:1052, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/system_utils.cpp:413"
source_ref: "app/src/main/java/aenu/aps3e/MainActivity.java:654-658, app/src/main/cpp/aps3e_emu.cpp:871-899, app/src/main/cpp/emulator_aps3e.cpp:1085, app/src/main/cpp/rpcs3/rpcs3/Emu/system_utils.cpp:413"
- name: "<font>.ttf"
aliases: ["<font>.ttc", "<font>.otf"]
@@ -172,7 +172,7 @@ files:
classes at once, and only while Font File Selection is Custom. The setting
reverts to From Firmware when the stored path no longer resolves, so the
firmware faces cover the absence.
source_ref: "aps3e/app/src/main/java/aenu/aps3e/EmulatorSettings.java:1326-1346, aps3e/app/src/main/cpp/aps3e_rp3_impl.cpp:203-215, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/system_config.h:401-402"
source_ref: "app/src/main/java/aenu/aps3e/EmulatorSettings.java:1329-1349, app/src/main/cpp/aps3e_rp3_impl.cpp:215-227, app/src/main/cpp/rpcs3/rpcs3/Emu/system_config.h:401-402"
- name: "<driver>.so"
aliases: ["<driver>.zip"]
@@ -186,19 +186,19 @@ files:
from the global config YAML before the emulator initialises and dlopened in
place of the system loader. The system libvulkan.so is used when Use Custom
Driver is off, the path is empty, or the file is gone.
source_ref: "aps3e/app/src/main/java/aenu/aps3e/EmulatorSettings.java:1229-1324, aps3e/app/src/main/cpp/aps3e_emu.cpp:875-899, aps3e/app/src/main/cpp/vkapi.cpp:21, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/system_config.h:209-211"
source_ref: "app/src/main/java/aenu/aps3e/EmulatorSettings.java:1232-1327, app/src/main/cpp/aps3e_emu.cpp:945-969, app/src/main/cpp/vkapi.cpp:21, app/src/main/cpp/rpcs3/rpcs3/Emu/system_config.h:209-211"
# Layout produced by extracting PS3UPDAT.PUP, and the paths this tree reads from it.
dev_flash:
path: "config/dev_flash/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:15, aps3e/app/src/main/cpp/aps3e_rp3_impl.cpp:127-129"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:15, app/src/main/cpp/aps3e_rp3_impl.cpp:139-141"
note: >-
Mounted at /dev_flash and rooted at the config directory. Written only by the
firmware installer, which extracts the dev_flash_ packages of the PUP into it.
sys_external:
path: "dev_flash/sys/external/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUModule.cpp:2608-2610, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:207"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUModule.cpp:2608-2610, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:207"
note: >-
Firmware SPRX modules. liblv2.sprx gates the boot and pulls the rest in;
each module can be forced to LLE or HLE through Libraries Control, which
@@ -208,12 +208,12 @@ dev_flash:
sys_internal:
path: "dev_flash/sys/internal/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:33-34"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:33-34"
note: "Internal modules, libfs_utility_init.sprx among them."
fonts:
path: "dev_flash/data/font/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellFont.cpp:226-241, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellFont.cpp:281, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp:117-118"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellFont.cpp:226-241, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellFont.cpp:281, app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp:117-118"
note: >-
Faces cellFontOpenFontset maps by type, and the directory the overlay
searches for its own list. A fontset the emulator does not implement falls
@@ -239,12 +239,12 @@ dev_flash:
certs:
path: "dev_flash/data/cert/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellSsl.cpp:110"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellSsl.cpp:110"
note: "Root certificates cellSsl enumerates."
vsh:
path: "dev_flash/vsh/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/util/sysinfo.cpp:651-653, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUThread.cpp:4433-4441, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_user_list_dialog.cpp:207"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/util/sysinfo.cpp:651-653, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUThread.cpp:4433-4441, app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_user_list_dialog.cpp:207"
note: >-
vsh/etc/version.txt supplies the installed firmware version, compared
against the PS3_SYSTEM_VER a title declares. vsh/module/eseibrd.sprx is
@@ -253,20 +253,20 @@ dev_flash:
ps1emu:
path: "dev_flash/ps1emu/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2171"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2179"
note: "ps1_newemu.self, the argv[0] of a PS1 Classics boot."
pspemu:
path: "dev_flash/pspemu/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2199"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2207"
note: "psp_emulator.self, the argv[0] of a PSP minis boot."
dev_flash2:
path: "config/dev_flash2/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:16, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_fs.cpp:28"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:16, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_fs.cpp:28"
note: "CELL_FS_FAT on CELL_FS_IOS:BUILTIN_FLSH2. Mount point only, created empty."
dev_flash3:
path: "config/dev_flash3/"
source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:17, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_fs.cpp:27"
source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:17, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_fs.cpp:27"
note: "CELL_FS_FAT on CELL_FS_IOS:BUILTIN_FLSH3. Mount point only, created empty."
+6 -6
View File
@@ -33,7 +33,7 @@ notes: |
plugin entry from the two switches alone and the library never names that
file. The manifest is still what identifies the build, Pepper Flash
32.0.0.371 for win/ia32.
ref: src/main.cpp:37-44, ArcadeFlashWeb v1.0.2 manifest.json:2-7,
ref: src/main.cpp:37-44, ArcadeFlashWeb-release manifest.json:2-7,
qtwebengine 5.13 src/core/content_client_qt.cpp AddPepperFlashFromCommandLine
A local movie is not handed to the view. The url becomes
@@ -44,7 +44,7 @@ notes: |
plugin reports at least that. A -source: containing "http" loads in the view
unchanged and uses none of this.
ref: src/main.qml:317-347, src/Navigateur.qml:144-155,
ArcadeFlashWeb v1.0.2 flash/flash.html:38-104
ArcadeFlashWeb-release flash/flash.html:38-104
Natural dimensions come from swfdump. When -swfwidth: and -swfheight: are
not both given, which is the case for both ES-DE and RetroBat, the program
@@ -68,7 +68,7 @@ notes: |
which flash.html disables by passing false for the express install url, and
flash/swfobject/test.swf, which nothing names.
ref: src/qml.qrc:1-33, src/Sauvegarde.js:1-30, src/main.qml:132-159,
ArcadeFlashWeb v1.0.2 flash/flash.html:102
ArcadeFlashWeb-release flash/flash.html:102
The remainder of the release is the Qt 5.13.2 deployment of the program
itself. VCRUNTIME140.dll and the UCRT stubs sit in the executable's import
@@ -86,7 +86,7 @@ files:
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.
source_ref: "src/main.cpp:40, ArcadeFlashWeb v1.0.2 flash/flash.html:102"
source_ref: "src/main.cpp:40, ArcadeFlashWeb-release flash/flash.html:102"
- name: flash.html
path: flash/flash.html
@@ -109,7 +109,7 @@ files:
that calls embedSWF. It reads the player version from the Shockwave Flash
plugin description, refines it from a probe object's $version, and refuses
to embed below the version the page asks for.
source_ref: "ArcadeFlashWeb v1.0.2 flash/flash.html:38, ArcadeFlashWeb v1.0.2 flash/swfobject/swfobject.js:1-4"
source_ref: "ArcadeFlashWeb-release flash/flash.html:38, ArcadeFlashWeb-release flash/swfobject/swfobject.js:1-4"
- name: background.jpg
path: flash/images/background.jpg
@@ -119,7 +119,7 @@ files:
note: >-
Drawn behind the movie by the page's bg div. The same image is compiled
into the binary for the QML side, so only this copy is read from disk.
source_ref: "ArcadeFlashWeb v1.0.2 flash/flash.html:110, src/qml.qrc:23"
source_ref: "ArcadeFlashWeb-release flash/flash.html:110, src/qml.qrc:23"
- name: swfdump.exe
required: false
+3 -3
View File
@@ -4,7 +4,7 @@ core_classification: pure_libretro
source: "https://github.com/libretro/arduous"
upstream: "https://github.com/jmaroeder/arduous"
profiled_date: "2026-03-23"
source_commit: "882ea139758fef5e5d711324d138d812abd5c10c"
source_commit: "798e3950f1de7c69455bc988d55eafeebac5a1eb"
core_version: "0.1.0"
display_name: "Arduboy (Arduous)"
cores:
@@ -14,8 +14,8 @@ systems:
notes: |
ATmega32U4 AVR simulator built on simavr with SSD1306 OLED display
emulation. MCU hardcoded at 16 MHz (arduous.h:70-71). Game content
emulation. MCU hardcoded at 16 MHz (include/arduous/arduous.h:70-71). Game content
(.hex) parsed via in-tree ihex reader and written directly into
simavr flash (arduous.cpp:169-179). No system directory access.
simavr flash (src/arduous/arduous.cpp:169-179). No system directory access.
files: []
+1 -1
View File
@@ -61,7 +61,7 @@ notes: |
Firmware path resolution: settings.paths.firmware (user override) or
{userData}/ares/Firmware/ (default). Per-system firmware assigned in
Settings > Firmware dialog or via scan-by-hash.
ref: desktop-ui/settings/settings.hpp:85-97, desktop-ui/desktop-ui.cpp:68-75
ref: desktop-ui/settings/settings.hpp:87-99, desktop-ui/desktop-ui.cpp:68-75
Systems with fully embedded firmware (no user files needed):
Game Boy (boot.rom), Game Boy Color (boot.rom), Mega Drive (TMSS),
+8 -8
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/libretro-atari800"
upstream: "https://github.com/atari800/atari800"
profiled_date: "2026-03-23"
source_commit: "9d3bcf283502512052e21c6f1453fbdf7aa3122b"
source_commit: "4e7fbc73765c1a9670c7506616046ad1d4ccda51"
core_version: "3.1.0"
display_name: "Atari - 400/800/600XL/800XL/130XE/5200 (Atari800)"
cores: [atari800]
@@ -44,7 +44,7 @@ files:
note: >
Atari 5200 BIOS (original). Mapped at $F800-$FFFF.
Altirra 5200 OS is used when this file is absent.
source_ref: "atari800/src/sysrom.c:99-100, atari800/src/sysrom.c:257"
source_ref: "atari800/src/sysrom.c:103-104, atari800/src/sysrom.c:290"
# -- Atari BASIC ROM --
# Atari BASIC interpreter (8 KB). Three known revisions:
@@ -64,7 +64,7 @@ files:
note: >
Atari BASIC Rev C. Required for 400/800 software that needs BASIC.
Altirra BASIC is used as fallback. Enable via core option atari800_opt2.
source_ref: "atari800/src/sysrom.c:101-103, atari800/src/sysrom.c:259"
source_ref: "atari800/src/sysrom.c:105-107, atari800/src/sysrom.c:292"
# -- Atari 400/800 OS A --
# Original Atari 400/800 OS (10 KB). Two known CRC32 values:
@@ -82,7 +82,7 @@ files:
note: >
Atari 400/800 OS Rev A. Altirra OS 800 is used as fallback.
Auto-select order: OS B NTSC, OS A NTSC, OS A PAL, custom, Altirra.
source_ref: "atari800/src/sysrom.c:85-86, atari800/src/sysrom.c:252"
source_ref: "atari800/src/sysrom.c:89-90, atari800/src/sysrom.c:285"
# -- Atari 400/800 OS B --
# OS revision B (10 KB), NTSC: CRC32 0x0e86d61d
@@ -103,7 +103,7 @@ files:
Note: .info lists md5 a3e8d617c95d08031fe1b20d541434b2 which is a
different dump (crc32 3e28a1fe) -- both in repo, the CRC32-matched
version is the one sysrom.c auto-detects.
source_ref: "atari800/src/sysrom.c:87, atari800/src/sysrom.c:253"
source_ref: "atari800/src/sysrom.c:91, atari800/src/sysrom.c:286"
# -- Atari XL/XE OS --
# XL/XE OS (16 KB). Many revisions known by CRC32 in sysrom.c:
@@ -124,7 +124,7 @@ files:
note: >
Atari XL/XE OS. Used for 800XL, 130XE, and XEGS modes.
Altirra XL OS is used as fallback.
source_ref: "atari800/src/sysrom.c:88-97, atari800/src/sysrom.c:255"
source_ref: "atari800/src/sysrom.c:92-101, atari800/src/sysrom.c:288"
# -- Atari XL/XE/XEGS OS v4 (BB01R4) --
# XEGS-specific OS revision BB01R4 (16 KB), CRC32: 0x1eaf4002
@@ -139,7 +139,7 @@ files:
validation: [crc32]
note: >
Atari XEGS OS Rev 4 (BB01R4). Preferred OS for XEGS machine mode.
source_ref: "atari800/src/sysrom.c:96"
source_ref: "atari800/src/sysrom.c:100"
# -- XEGS Missile Command built-in game --
# The XEGS had Missile Command in ROM (8 KB), CRC32: 0xbdca01fb
@@ -154,7 +154,7 @@ files:
note: >
XEGS built-in Missile Command ROM. Only used in XEGS machine mode.
No built-in replacement exists for this ROM.
source_ref: "atari800/src/sysrom.c:104"
source_ref: "atari800/src/sysrom.c:108"
# Known ROM revisions from sysrom.c (CRC32 identifiers):
#
+39 -39
View File
@@ -5,7 +5,7 @@ source: "https://github.com/aenu1/ax360e"
source_branch: main
upstream: "https://github.com/xenia-canary/xenia-canary"
profiled_date: "2026-08-11"
source_commit: "a451abd20ae0660bc53bcf90473ac0e6c6c0d86d"
source_commit: "b8c1838f21761ac463724e24105eda97b990e704"
upstream_commit: "dc561e4df578c903087f9bdf56ff61d9ef9f2a93"
core_version: "1.18"
display_name: "Microsoft - Xbox 360 (aX360e)"
@@ -22,27 +22,27 @@ notes: |
replaces the desktop front end: its own windowed app and window, AAudio and
OpenSLES audio systems, an Android input driver, and disc image, disc archive,
STFS and XEX devices backed by the Storage Access Framework.
ref: ax360e/app/src/main/cpp/version.h:4-5,
ax360e/app/src/main/cpp/CMakeLists.txt:39-74,
ax360e/app/src/main/cpp/ax360e_emu.cpp:615
ref: app/src/main/cpp/version.h:4-5,
app/src/main/cpp/CMakeLists.txt:39-75,
app/src/main/cpp/ax360e_emu.cpp:616
The version is read from the commit subjects, which carry it: 1.18 is the head
of main, 1.17 the drop before it. The repository has no tags, and the only
gradle file committed is app/build.gradle.bak, which still declares versionName
0.14 and is renamed and completed with the signing block at build time.
ref: ax360e/README.md, ax360e/app/build.gradle.bak:13-14
ref: ax360e/README.md, app/build.gradle.bak:13-14
No Xbox 360 system file is loaded. The kernel, XAM and XBDM are HLE modules
registered at startup, and every key the emulator needs is a constant in the
source: the XEX1 retail, XEX2 retail and XEX2 devkit keys tried in turn when an
image is read, the 0x19 key pair the profile blob is encrypted with, and the
source: the XEX1 retail, XEX1 devkit, XEX2 retail and XEX2 devkit keys tried in
turn when an image is read, the 0x19 key pair the profile blob is encrypted with, and the
key vault map XeKeysGetKey answers from. There is no NAND, flash or keyvault
path.
ref: ax360e/app/src/main/cpp/xenia-canary/src/xenia/emulator.cc:316-318,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/cpu/xex_module.cc:54-62,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/cpu/xex_module.cc:953-963,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/kernel/util/crypto_utils.cc:20-31,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/kernel/xboxkrnl/xboxkrnl_crypt.cc:164-168
ref: app/src/main/cpp/xenia-canary/src/xenia/emulator.cc:316-321,
app/src/main/cpp/xenia-canary/src/xenia/cpu/xex_module.cc:54-65,
app/src/main/cpp/xenia-canary/src/xenia/cpu/xex_module.cc:982-994,
app/src/main/cpp/xenia-canary/src/xenia/kernel/util/crypto_utils.cc:20-31,
app/src/main/cpp/xenia-canary/src/xenia/kernel/xboxkrnl/xboxkrnl_crypt.cc:169-173
The storage root is the external files directory of the package and is passed
as a launch argument beside the config path and the log path. Content, cache,
@@ -51,35 +51,35 @@ notes: |
custom_config/<title_id>.config.toml. The custom driver directory sits in
internal storage instead, because the external filesystem cannot carry an
executable mapping.
ref: ax360e/app/src/main/java/aenu/ax360e/Application.java:14-53,
ax360e/app/src/main/java/aenu/ax360e/EmulatorActivity.java:67-73,
ax360e/app/src/main/cpp/ax360e_emu.cpp:273-316
ref: app/src/main/java/aenu/ax360e/Application.java:14-53,
app/src/main/java/aenu/ax360e/EmulatorActivity.java:164-170,
app/src/main/cpp/ax360e_emu.cpp:274-317
ES-DE starts the emulator with the aenu.intent.action.AX360E action and a
game_uri extra. The native side dispatches on the name the descriptor resolves
to: .xex, .iso and .zar each go to their own loader, and anything else is taken
for an STFS container and launched beside a sibling directory named after the
file with .data appended.
ref: ax360e/app/src/main/AndroidManifest.xml:57-59,
ax360e/app/src/main/cpp/ax360e_emu.cpp:554-575
ref: app/src/main/AndroidManifest.xml:57-59,
app/src/main/cpp/ax360e_emu.cpp:555-576
A default profile ships with the application. Its Account blob is extracted
from the assets on first run under XUID E0300000A360E000, and the shipped
configuration logs that XUID into slot 0. Further profiles are created by the
emulator itself, which writes the blob it encrypts.
ref: ax360e/app/src/main/java/aenu/ax360e/Application.java:30-34,
ax360e/app/src/main/java/aenu/ax360e/Application.java:92-96,
ax360e/app/src/main/assets/config/default_config.toml:314,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/kernel/xam/profile_manager.cc:502-558
ref: app/src/main/java/aenu/ax360e/Application.java:30-34,
app/src/main/java/aenu/ax360e/Application.java:92-96,
app/src/main/assets/config/default_config.toml:371,
app/src/main/cpp/xenia-canary/src/xenia/kernel/xam/profile_manager.cc:501-557
477 game patches ship inside the APK. The patch database reads the patches
directory only, so a bundled patch reaches the emulator once the user opens the
patch dialog for that title and presses Apply, which writes the asset out under
the same name.
ref: ax360e/app/src/main/assets/game-patches,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/patcher/patch_db.cc:30-56,
ax360e/app/src/main/java/aenu/ax360e/Emulator.java:121-151,
ax360e/app/src/main/java/aenu/ax360e/MainActivity.java:503-512
app/src/main/cpp/xenia-canary/src/xenia/patcher/patch_db.cc:30-56,
app/src/main/java/aenu/ax360e/Emulator.java:119-149,
app/src/main/java/aenu/ax360e/MainActivity.java:505-514
files:
- name: "<driver>.zip"
@@ -95,7 +95,7 @@ files:
configured path is read before the instance is created and opened through
adrenotools when it exists, otherwise the system libvulkan.so is used. The
setting is greyed out on devices without /dev/kgsl-3d0.
source_ref: "ax360e/app/src/main/java/aenu/ax360e/EmulatorSettings.java:709-713, ax360e/app/src/main/java/aenu/ax360e/Utils.java:150-215, ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/vulkan/vulkan_instance.cc:34, ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/vulkan/vulkan_instance.cc:71-91, ax360e/app/src/main/java/aenu/emulator/Emulator.java:116-122"
source_ref: "app/src/main/java/aenu/ax360e/EmulatorSettings.java:732-736, app/src/main/java/aenu/ax360e/Utils.java:165-230, app/src/main/cpp/xenia-canary/src/xenia/ui/vulkan/vulkan_instance.cc:34, app/src/main/cpp/xenia-canary/src/xenia/ui/vulkan/vulkan_instance.cc:71-91, app/src/main/java/aenu/emulator/Emulator.java:116-122"
- name: "<font>.ttf"
required: false
@@ -107,7 +107,7 @@ files:
Supplement, Extended Latin, Greek, Cyrillic, punctuation, superscript,
letterlike and number form ranges. A face that fails to build is cleared and
the embedded ProggyTiny is used instead, so the absence is covered.
source_ref: "ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:42-44, ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:340-374, ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:507-514"
source_ref: "app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:43-45, app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:355-394, app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:527-534"
- name: "<title_id> - <title>.patch.toml"
required: false
@@ -120,7 +120,7 @@ files:
without them, and each entry of the patch array is applied only when its
is_enabled flag is set and the module hash matches. Patching is on by
default.
source_ref: "ax360e/app/src/main/cpp/xenia-canary/src/xenia/patcher/patch_db.cc:17-18, ax360e/app/src/main/cpp/xenia-canary/src/xenia/patcher/patch_db.cc:30-98, ax360e/app/src/main/cpp/xenia-canary/src/xenia/patcher/patch_db.h:121-122, ax360e/app/src/main/cpp/xenia-canary/src/xenia/patcher/patcher.cc:22-35, ax360e/app/src/main/cpp/xenia-canary/src/xenia/emulator.cc:308"
source_ref: "app/src/main/cpp/xenia-canary/src/xenia/patcher/patch_db.cc:17-18, app/src/main/cpp/xenia-canary/src/xenia/patcher/patch_db.cc:30-98, app/src/main/cpp/xenia-canary/src/xenia/patcher/patch_db.h:121-122, app/src/main/cpp/xenia-canary/src/xenia/patcher/patcher.cc:22-35, app/src/main/cpp/xenia-canary/src/xenia/emulator.cc:308"
- name: plugins.toml
required: false
@@ -132,7 +132,7 @@ files:
name is eight hexadecimal digits. Each entry of the plugin array needs a
hash node, and an entry without one is skipped. Plugin loading is off by
default, so nothing under plugins is scanned until it is turned on.
source_ref: "ax360e/app/src/main/cpp/xenia-canary/src/xenia/patcher/plugin_loader.cc:16-21, ax360e/app/src/main/cpp/xenia-canary/src/xenia/patcher/plugin_loader.cc:40-127, ax360e/app/src/main/cpp/xenia-canary/src/xenia/emulator.cc:320-321"
source_ref: "app/src/main/cpp/xenia-canary/src/xenia/patcher/plugin_loader.cc:16-21, app/src/main/cpp/xenia-canary/src/xenia/patcher/plugin_loader.cc:40-127, app/src/main/cpp/xenia-canary/src/xenia/emulator.cc:324-325"
- name: "<plugin>.xex"
required: false
@@ -142,7 +142,7 @@ files:
The title directory is mounted as the plugins device and each enabled entry
whose hash matches the running module is loaded as a user module on its own
thread. A directory that cannot be mounted is a fatal error.
source_ref: "ax360e/app/src/main/cpp/xenia-canary/src/xenia/patcher/plugin_loader.cc:175-257, ax360e/app/src/main/cpp/xenia-canary/src/xenia/emulator.cc:1996-1999"
source_ref: "app/src/main/cpp/xenia-canary/src/xenia/patcher/plugin_loader.cc:175-257, app/src/main/cpp/xenia-canary/src/xenia/emulator.cc:1900-1903"
- name: Account
required: false
@@ -156,7 +156,7 @@ files:
bytes carry. The application extracts the one it ships for XUID
E0300000A360E000 on first run, and the emulator writes its own when a
profile is created.
source_ref: "ax360e/app/src/main/cpp/xenia-canary/src/xenia/kernel/xam/profile_manager.cc:188-230, ax360e/app/src/main/cpp/xenia-canary/src/xenia/kernel/xam/profile_manager.cc:40-68, ax360e/app/src/main/java/aenu/ax360e/Application.java:30-34, ax360e/app/src/main/java/aenu/ax360e/Application.java:92-96"
source_ref: "app/src/main/cpp/xenia-canary/src/xenia/kernel/xam/profile_manager.cc:187-229, app/src/main/cpp/xenia-canary/src/xenia/kernel/xam/profile_manager.cc:39-67, app/src/main/java/aenu/ax360e/Application.java:30-34, app/src/main/java/aenu/ax360e/Application.java:92-96"
exclusion_note: >
Six file loads present in the vendored tree are not reached by this build and
@@ -172,12 +172,12 @@ exclusion_note: >
by the standalone shader compiler and needs VULKAN_SDK in the environment.
librenderdoc.so is opened with RTLD_NOLOAD, which returns a handle only when
the library is already mapped and never reads the file.
ref: ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_guest_notification.cc:49-60,
ax360e/app/src/main/cpp/emulator_ax360e.cpp:356,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:376-407,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:409-493,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/base/platform.h:34-37,
ax360e/app/src/main/cpp/CMakeLists.txt:91-131,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/app/xenia_main.cc:480,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/vulkan/spirv_tools_context.cc:28-37,
ax360e/app/src/main/cpp/xenia-canary/src/xenia/ui/renderdoc_api.cc:35-41
ref: app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_guest_notification.cc:49-60,
app/src/main/cpp/emulator_ax360e.cpp:359,
app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:396-427,
app/src/main/cpp/xenia-canary/src/xenia/ui/imgui_drawer.cc:429-513,
app/src/main/cpp/xenia-canary/src/xenia/base/platform.h:34-37,
app/src/main/cpp/CMakeLists.txt:92-132,
app/src/main/cpp/xenia-canary/src/xenia/app/xenia_main.cc:485,
app/src/main/cpp/xenia-canary/src/xenia/ui/vulkan/spirv_tools_context.cc:28-37,
app/src/main/cpp/xenia-canary/src/xenia/ui/renderdoc_api.cc:35-48
+2 -2
View File
@@ -5,7 +5,7 @@ cores: [mednafen_pcfx, pcfx]
source: "https://github.com/libretro/beetle-pcfx-libretro"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
source_commit: "650c30ea2203636a1716675854d11c608ed6eacc"
source_commit: "0580dee757adfdb9bf8b9c24693dde5f3d0a78a1"
core_version: "v0.9.36.5"
display_name: "NEC - PC-FX (Beetle PC-FX)"
systems:
@@ -13,7 +13,7 @@ systems:
notes: >
Libretro port of Mednafen's PC-FX module. Setting "pcfx.bios" resolves
to "pcfx.rom" (settings.c:92). LoadCommon() loads the file, validates
to "pcfx.rom" (mednafen/settings.c:92). LoadCommon() loads the file, validates
size (1048576 bytes), and maps it at 0xFFF00000. Core won't start
without it. No hash validation. Upstream Mednafen also supports an
FX-SCSI ROM (pcfx.fxscsi setting, developer-only) not present in
+4 -4
View File
@@ -5,7 +5,7 @@ core: mednafen_saturn_libretro
source: "https://github.com/libretro/beetle-saturn-libretro"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
source_commit: "84461434f249c1b5cd10c83ae922feae84e1acf8"
source_commit: "b5c8a465d8128d5bc8a6ad9bc0db561068127181"
core_version: "v0.9.45.1"
display_name: "Sega - Saturn (Beetle Saturn)"
cores:
@@ -36,7 +36,7 @@ files:
size: 524288
validation: [size]
note: "Saturn BIOS v1.01 (Japan). Used when region is JP or Asia NTSC."
source_ref: "mednafen/ss/ss.c:1761 (region filename), mednafen/ss/ss.c:1784-1899 (open, size check, read, sha256)"
source_ref: "mednafen/ss/ss.c:1761 (region filename), mednafen/ss/ss.c:1786-1903 (open, size check, read, sha256)"
- name: "mpr-17933.bin"
system: sega-saturn
@@ -45,7 +45,7 @@ files:
size: 524288
validation: [size]
note: "Saturn BIOS (NA/EU). Used for all non-JP/Asia-NTSC regions."
source_ref: "mednafen/ss/ss.c:1763 (region filename), mednafen/ss/ss.c:1784-1899 (open, size check, read, sha256)"
source_ref: "mednafen/ss/ss.c:1763 (region filename), mednafen/ss/ss.c:1786-1903 (open, size check, read, sha256)"
- name: "mpr-18811-mx.ic1"
system: sega-saturn
@@ -65,5 +65,5 @@ files:
system: sega-saturn
required: false
size: 262144
note: "Action Replay 4M Plus firmware. Unfinished in source (ar4mp.c:22-24), needs CPU UBC emulation. Cart type not exposed in core options."
note: "Action Replay 4M Plus firmware. Unfinished in source (mednafen/ss/cart/ar4mp.c:22-24), needs CPU UBC emulation. Cart type not exposed in core options."
source_ref: "mednafen/ss/cart.c:218 (CART_AR4MP case), mednafen/ss/cart/ar4mp.c:150 (CART_AR4MP_Init)"
+1 -1
View File
@@ -14,7 +14,7 @@ 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
0x07000000. Load() in libretro.cpp:1787 takes only ROM data.
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
core options instead.
+4 -4
View File
@@ -26,7 +26,7 @@ notes: |
Even if a TMSS-enabled model were forced, read_bundled_file() in the
libretro build only serves rom.db and returns NULL for tmss.md, so TMSS
ROM loading would fail (fatal_error at genesis.c:1923).
ROM loading would fail (fatal_error at genesis.c:1933).
Sega CD / Mega CD is not supported (only a TODO comment in system.c:16).
No BIOS files are required or loaded by the libretro core.
@@ -43,7 +43,7 @@ files:
required: false
hle_fallback: true
note: "ROM feature database (game-specific mapper/save config). Embedded in core, external is optional override."
source_ref: "libblastem.c:532-542 read_bundled_file()"
source_ref: "libblastem.c:1149-1172 read_bundled_file()"
# TMSS ROM — only used in standalone mode with tmss-enabled model
# libretro build returns NULL for tmss.md (libblastem.c:541)
@@ -53,7 +53,7 @@ files:
mode: standalone
size: 2048
note: "TMSS startup ROM. Standalone only (models md1va6, md2va1+). Libretro core uses md1va3 (tmss off), no way to change."
source_ref: "genesis.c:3027-3040"
source_ref: "genesis.c:3037-3050"
analysis:
tmss:
@@ -64,7 +64,7 @@ analysis:
rom_filename: tmss.md
rom_size: 2048 # 2 KB
config_path: "system\0tmss_path\0"
source_ref: "genesis.c:1910"
source_ref: "genesis.c:1920"
note: |
TMSS ROM is loaded from tmss.md (configurable via system/tmss_path).
Models with tmss=on: md1va6, md2va1, md2va2, md3va1, md3va2.
+2 -2
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/blueMSX-libretro"
upstream: "http://bluemsx.msxblue.com/"
profiled_date: "2026-03-23"
source_commit: "0f32f52c48d3e772bfdf0379756f81f00b4e08bc"
source_commit: "e3086eb5d36d77fa11704cf53dc176686e70127d"
core_version: "SVN"
display_name: "MSX/SVI/ColecoVision/SG-1000 (blueMSX)"
cores:
@@ -60,7 +60,7 @@ data_directories:
# buildbot source: https://buildbot.libretro.com/assets/system/blueMSX.zip
# ref: libretro.c:1118-1119 — system_dir/Machines/ + system_dir/Databases/
- ref: bluemsx
source_ref: "libretro.c:1118-1119"
source_ref: "libretro.c:1119-1120"
files:
# ============================================================
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: game_engine
source: "https://github.com/libretro/boom3"
upstream: "https://github.com/dhewm/dhewm3"
profiled_date: "2026-03-23"
source_commit: "b810234ea1e3b498fa6ff5f51efaaa9433b21060"
source_commit: "132dfddbc216af8b5196a61e815219b531f7c1b4"
core_version: "git"
display_name: "Doom 3 (boom3)"
cores: [boom3, boom3_xp]
+8 -8
View File
@@ -19,12 +19,12 @@ notes: |
Libretro: all boot ROMs compiled into binary as static byte arrays in
src/data.rs. load_boot_static() copies from arrays. No filesystem
access, no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No external files.
ref: core.rs:402 instance.load(true) -> gb.rs:1311 -> load_boot_static
ref: frontends/libretro/src/core.rs:402 instance.load(true) -> src/gb.rs:1361 -> load_boot_static
Standalone (SDL): also defaults to embedded boot ROMs via load(true).
User can override via --boot-rom-path CLI argument with any boot ROM
file. load_boot_file() with hardcoded ./res/boot/*.bin paths exists in
gb.rs:1361 but is not called from any frontend.
src/gb.rs:1411 but is not called from any frontend.
Boot ROM defaults: DmgBootix (DMG), CgbBoytacean (CGB) — open-source.
@@ -36,7 +36,7 @@ files:
mode: standalone
size: 256
note: "Original Nintendo DMG boot ROM"
source_ref: "src/gb.rs:1400, src/data.rs:14"
source_ref: "src/gb.rs:1450, src/data.rs:14"
- name: sgb_boot.bin
system: nintendo-gb
@@ -45,7 +45,7 @@ files:
mode: standalone
size: 256
note: "Super Game Boy boot ROM"
source_ref: "src/gb.rs:1401, src/data.rs:29"
source_ref: "src/gb.rs:1451, src/data.rs:29"
- name: dmg_bootix.bin
system: nintendo-gb
@@ -54,7 +54,7 @@ files:
mode: standalone
size: 256
note: "Open-source DMG boot ROM from Bootix (default DMG)"
source_ref: "src/gb.rs:1402, src/data.rs:44"
source_ref: "src/gb.rs:1452, src/data.rs:44"
- name: mgb_bootix.bin
system: nintendo-gb
@@ -63,7 +63,7 @@ files:
mode: standalone
size: 256
note: "Open-source MGB (Pocket) boot ROM from Bootix"
source_ref: "src/gb.rs:1403, src/data.rs:59"
source_ref: "src/gb.rs:1453, src/data.rs:59"
- name: cgb_boot.bin
system: nintendo-gbc
@@ -72,7 +72,7 @@ files:
mode: standalone
size: 2304
note: "Original Nintendo CGB boot ROM"
source_ref: "src/gb.rs:1404, src/data.rs:74"
source_ref: "src/gb.rs:1454, src/data.rs:74"
- name: cgb_boytacean.bin
system: nintendo-gbc
@@ -81,4 +81,4 @@ files:
mode: standalone
size: 2304
note: "Custom open-source CGB boot ROM (default CGB)"
source_ref: "src/gb.rs:1405, src/data.rs:177"
source_ref: "src/gb.rs:1418, src/data.rs:177"
+22 -22
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/bsnes-jg"
upstream: "https://gitlab.com/jgemu/bsnes"
profiled_date: "2026-03-23"
source_commit: "aedc27e367b65f002afb5098684f39eb6124079c"
source_commit: "aa11568fff267fca3424cbdfa6da788ddc42e468"
core_version: "2.1.0"
display_name: "Nintendo - SNES / SFC (bsnes-jg)"
cores: [bsnes-jg]
@@ -24,12 +24,12 @@ notes: |
BML game databases embedded as C++ string literals.
ref: libretro/libretro.cpp:420-502 fileOpenV firmware loading callback
ref: src/cartridge.cpp:754-829 uPD7725 (DSP1-4) LLE/HLE dispatch
ref: src/cartridge.cpp:831-901 uPD96050 (ST010/ST011) LLE/HLE dispatch
ref: src/cartridge.cpp:615-670 ARM6 (ST018) firmware loading
ref: src/cartridge.cpp:672-752 HG51BS169 (HitachiDSP/CX4) embedded ROM + HLE
ref: src/cartridge.cpp:761-836 uPD7725 (DSP1-4) LLE/HLE dispatch
ref: src/cartridge.cpp:838-908 uPD96050 (ST010/ST011) LLE/HLE dispatch
ref: src/cartridge.cpp:622-677 ARM6 (ST018) firmware loading
ref: src/cartridge.cpp:679-759 HG51BS169 (HitachiDSP/CX4) embedded ROM + HLE
ref: src/coprocessor/icd.cpp:249,260 SGB1/SGB2 boot ROMs embedded
ref: src/cartridge.cpp:62 hitachidspStaticDataROM embedded
ref: src/cartridge.cpp:64 hitachidspStaticDataROM embedded
ref: libretro/libretro.cpp:30-33 BML databases embedded
files:
@@ -40,59 +40,59 @@ files:
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:429, src/cartridge.cpp:774,798-804"
source_ref: "libretro/libretro.cpp:429, src/cartridge.cpp:781, src/cartridge.cpp:805-811"
- name: dsp1.data.rom
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:432, src/cartridge.cpp:786,798-804"
source_ref: "libretro/libretro.cpp:432, src/cartridge.cpp:793, src/cartridge.cpp:805-811"
- name: dsp1b.program.rom
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:435, src/cartridge.cpp:774,798-804"
source_ref: "libretro/libretro.cpp:435, src/cartridge.cpp:781, src/cartridge.cpp:805-811"
- name: dsp1b.data.rom
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:438, src/cartridge.cpp:786,798-804"
source_ref: "libretro/libretro.cpp:438, src/cartridge.cpp:793, src/cartridge.cpp:805-811"
- name: dsp2.program.rom
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:441, src/cartridge.cpp:774,806-811"
source_ref: "libretro/libretro.cpp:441, src/cartridge.cpp:781, src/cartridge.cpp:813-818"
- name: dsp2.data.rom
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:444, src/cartridge.cpp:786,806-811"
source_ref: "libretro/libretro.cpp:444, src/cartridge.cpp:793, src/cartridge.cpp:813-818"
- name: dsp3.program.rom
system: nintendo-snes
required: false
source_ref: "libretro/libretro.cpp:447-448, src/cartridge.cpp:774,822-828"
source_ref: "libretro/libretro.cpp:447-448, src/cartridge.cpp:781, src/cartridge.cpp:829-835"
- name: dsp3.data.rom
system: nintendo-snes
required: false
source_ref: "libretro/libretro.cpp:451-452, src/cartridge.cpp:786,822-828"
source_ref: "libretro/libretro.cpp:451-452, src/cartridge.cpp:793, src/cartridge.cpp:829-835"
- name: dsp4.program.rom
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:455, src/cartridge.cpp:774,813-818"
source_ref: "libretro/libretro.cpp:455, src/cartridge.cpp:781, src/cartridge.cpp:820-825"
- name: dsp4.data.rom
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:458, src/cartridge.cpp:786,813-818"
source_ref: "libretro/libretro.cpp:458, src/cartridge.cpp:793, src/cartridge.cpp:820-825"
# uPD96050 coprocessor firmware (ST010, ST011)
# HLE fallback available for ST010, not for ST011
@@ -101,23 +101,23 @@ files:
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:461, src/cartridge.cpp:851,872-882"
source_ref: "libretro/libretro.cpp:461, src/cartridge.cpp:858, src/cartridge.cpp:879-889"
- name: st010.data.rom
system: nintendo-snes
required: false
hle_fallback: true
source_ref: "libretro/libretro.cpp:464, src/cartridge.cpp:863,872-882"
source_ref: "libretro/libretro.cpp:464, src/cartridge.cpp:870, src/cartridge.cpp:879-889"
- name: st011.program.rom
system: nintendo-snes
required: false
source_ref: "libretro/libretro.cpp:467-468, src/cartridge.cpp:851,884-901"
source_ref: "libretro/libretro.cpp:467-468, src/cartridge.cpp:858, src/cartridge.cpp:891-908"
- name: st011.data.rom
system: nintendo-snes
required: false
source_ref: "libretro/libretro.cpp:471-472, src/cartridge.cpp:863,884-901"
source_ref: "libretro/libretro.cpp:471-472, src/cartridge.cpp:870, src/cartridge.cpp:891-908"
# ARM6 coprocessor firmware (ST018)
# Internal name arm6, mapped to st018 by libretro wrapper. No HLE.
@@ -125,13 +125,13 @@ files:
- name: st018.program.rom
system: nintendo-snes
required: false
source_ref: "libretro/libretro.cpp:475-476, src/cartridge.cpp:640"
source_ref: "libretro/libretro.cpp:475-476, src/cartridge.cpp:647"
aliases: [arm6.program.rom]
- name: st018.data.rom
system: nintendo-snes
required: false
source_ref: "libretro/libretro.cpp:479-480, src/cartridge.cpp:650"
source_ref: "libretro/libretro.cpp:479-480, src/cartridge.cpp:657"
aliases: [arm6.data.rom]
# Embedded (no external file needed):
+4 -4
View File
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/bsnes-libretro"
upstream: "https://github.com/bsnes-emu/bsnes"
logo: "https://raw.githubusercontent.com/bsnes-emu/bsnes/master/bsnes/target-bsnes/resource/bsnes.svg"
profiled_date: "2026-04-05"
source_commit: "9c1285dda7dd6bb9a9951d37bcee8794ada640e6"
source_commit: "6d19eef5835a792e241e33194b4c1e9b75405b88"
core_version: "115"
display_name: "Nintendo - SNES / SFC (bsnes)"
cores: [bsnes]
@@ -201,13 +201,13 @@ files:
system: nintendo-super-game-boy
required: false
note: "Super Game Boy 1 cartridge ROM, loaded when playing .gb/.gbc via SGB mode"
source_ref: "bsnes/target-libretro/libretro.cpp:926-935 (system_dir + sgb_bios), bsnes/target-libretro/libretro.cpp:393 (core option bsnes_sgb_bios)"
source_ref: "bsnes/target-libretro/libretro.cpp:937-946 (system_dir + sgb_bios), bsnes/target-libretro/libretro.cpp:393 (core option bsnes_sgb_bios)"
- name: "SGB2.sfc"
system: nintendo-super-game-boy
required: false
note: "Super Game Boy 2 cartridge ROM, uses dedicated oscillator for accurate GB speed"
source_ref: "bsnes/target-libretro/libretro.cpp:926-935 (system_dir + sgb_bios), bsnes/target-libretro/libretro.cpp:393 (core option bsnes_sgb_bios)"
source_ref: "bsnes/target-libretro/libretro.cpp:937-946 (system_dir + sgb_bios), bsnes/target-libretro/libretro.cpp:393 (core option bsnes_sgb_bios)"
# -- BS-X Satellaview BIOS --
# Required for loading .bs (BS Memory) format games.
@@ -217,7 +217,7 @@ files:
system: nintendo-satellaview
required: true
note: "BS-X Satellaview BIOS ROM, loaded from system_dir when running .bs games"
source_ref: "bsnes/target-libretro/libretro.cpp:944-951 (system_dir + BS-X.bin hardcoded, .bs extension branch)"
source_ref: "bsnes/target-libretro/libretro.cpp:955-962 (system_dir + BS-X.bin hardcoded, .bs extension branch)"
notes:
hle_available: true
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: enhanced_fork
source: "https://github.com/libretro/bsnes-mercury"
upstream: "https://byuu.org/higan"
profiled_date: "2026-03-25"
source_commit: "d83bf7ab607e09131731b3a81825f986f91c1f84"
source_commit: "ea22363fb0c1ebe92e7a70cdf55e9bb43f9207be"
core_version: "v094 (Mercury)"
display_name: "Nintendo - SNES / SFC (bsnes-mercury)"
cores: [bsnes_mercury_accuracy, bsnes_mercury_balanced, bsnes_mercury_performance]
+13 -13
View File
@@ -20,31 +20,31 @@ notes: |
All system ROMs are compiled directly into the core binary as C header
arrays in cap32/rom/*.h. No external BIOS files are required.
Embedded ROMs (cap32/cap32.c:342-345):
Embedded ROMs (cap32/cap32.c:345-348):
- cap32/rom/464.h: OS_BASIC10[32768] - CPC 464 OS + BASIC 1.0
- cap32/rom/6128.h: OS_BASIC11[32768] - CPC 6128 OS + BASIC 1.1
- cap32/rom/amsdos.h: AMSDOS[16384] - AMSDOS disk controller ROM
- cap32/rom/6128p.h: OS_6128P - CPC+ system cartridge ROM
- cap32/rom/cpm.h: cpmROM - CP/M boot snapshot (128KB)
ROM selection in emulator_select_ROM() (cap32/cap32.c:1072-1100):
ROM selection in emulator_select_ROM() (cap32/cap32.c:1075-1103):
- CPC 464: OS_BASIC10 (32KB)
- CPC 664: OS_BASIC10 (32KB) + AMSDOS in slot 7
- CPC 6128: OS_BASIC11 (32KB) + AMSDOS in slot 7
- CPC+: OS_6128P loaded as system cartridge via cpr_load()
The standalone (non-libretro) version references external filenames
cpc464.rom, cpc664.rom, cpc6128.rom, amsdos.rom in cap32.c:349-352
via config file loading (cap32.c:1828-1840), but the libretro port
does not use this path. The libretro init (libretro-core.c:1512) has
cpc464.rom, cpc664.rom, cpc6128.rom, amsdos.rom in cap32/cap32.c:352-355
via config file loading (cap32/cap32.c:1831-1843), but the libretro port
does not use this path. The libretro init (libretro/libretro-core.c:1526) has
a "TODO: future use to load custom bios" comment that is not
implemented.
Keyboard layout patches are applied to the ROM in memory for French
and Spanish layouts via rom_mods.h (cap32.c:1102-1126).
and Spanish layouts via rom_mods.h (cap32/cap32.c:1105-1129).
CP/M support loads a pre-built snapshot (cpm.h) into memory via
snapshot_load_mem() in slots.c:87.
snapshot_load_mem() in cap32/slots.c:90.
files:
# Standalone loads from rom_path/ — libretro embeds all as C arrays
@@ -55,7 +55,7 @@ files:
mode: standalone
size: 32768
note: "CPC 464 OS + BASIC 1.0"
source_ref: "src/cap32.cpp:217, rom/cpc464.rom"
source_ref: "src/cap32.cpp:213, rom/cpc464.rom"
- name: cpc664.rom
system: amstrad-cpc
required: false
@@ -76,7 +76,7 @@ files:
mode: standalone
size: 16384
note: "AMSDOS disc ROM (sideways slot 7)"
source_ref: "src/cap32.cpp:1238"
source_ref: "src/cap32.cpp:1250"
- name: system.cpr
system: amstrad-cpc
required: false
@@ -90,16 +90,16 @@ files:
mode: standalone
size: 8192
note: "Multiface 2 ROM"
source_ref: "caprice32/rom/MF2.rom, src/cap32.cpp:1316-1335"
source_ref: "caprice32/rom/MF2.rom, src/cap32.cpp:1328-1347"
platform_details:
bios_mapping:
source_ref: "cap32/cap32.c:1072-1100, cap32/cap32.c:342-345"
source_ref: "cap32/cap32.c:1075-1103, cap32/cap32.c:345-348"
note: |
All ROMs are embedded. emulator_select_ROM() copies the appropriate
ROM array into the pbROM buffer based on CPC.model. No filesystem
lookup occurs in the libretro port. The retro_system_bios_directory
variable is set up in libretro-core.c:1499-1510 but only used for
variable is set up in libretro/libretro-core.c:1513-1524 but only used for
a future custom BIOS feature that is not yet implemented.
embedded_roms:
@@ -113,7 +113,7 @@ platform_details:
cpmROM (128KB+) - CP/M boot snapshot including SNA header
model_rom_map:
source_ref: "cap32/cap32.c:1072-1100"
source_ref: "cap32/cap32.c:1075-1103"
note: |
CPC 464: OS_BASIC10 only (no disk support)
CPC 664: OS_BASIC10 + AMSDOS in ROM slot 7
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/mame2015-libretro"
upstream: "https://github.com/mamedev/mame/tree/mame0160"
profiled_date: "2026-03-23"
source_commit: "283e04b03c121db9be12632d6bad2fc3e8707248"
source_commit: "0eab132212b28896baeac7d8f2cd8ac25e227752"
core_version: "0.160"
display_name: "Philips CDi (CDi 2015)"
cores: [cdi2015]
+1 -1
View File
@@ -3,7 +3,7 @@ type: standalone
source: "https://github.com/cemu-project/Cemu"
logo: "https://raw.githubusercontent.com/cemu-project/Cemu/main/dist/linux/info.cemu.Cemu.png"
profiled_date: "2026-03-18"
source_commit: "daacdda0bab55dd78a2b5aac2c12d6ebe8c8e868"
source_commit: "51250c02dea9ec9333e4725a17c0eac705128ff0"
core_version: "2.6"
display_name: "Cemu (Wii U)"
cores:
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/citra2018"
upstream: "https://github.com/citra-emu/citra"
profiled_date: "2026-03-23"
source_commit: "29183a99b9771b128a36304c7d734daf5bfd5051"
source_commit: "04fafd55252072ba148b87f20d8509ff1a91086e"
core_version: "Git"
display_name: "Nintendo - 3DS (Citra 2018)"
cores: [citra2018]
+1
View File
@@ -4,6 +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."
core_version: "2026.03.12"
display_name: "Citron (Nintendo Switch)"
cores:
+3 -3
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/Clownacy/clownmdemu-libretro"
upstream: "https://github.com/Clownacy/clownmdemu"
profiled_date: "2026-03-23"
source_commit: "3b278c900c278678763d96087f1d343a6aed6e58"
source_commit: "935d6fc060eb82172dac29e880fe9b877fbdb640"
core_version: "Git"
display_name: "Sega - MD/CD (ClownMDEmu)"
cores:
@@ -32,6 +32,6 @@ analysis:
boot_rom_source: "https://github.com/Clownacy/clownmdemu-mcd-boot"
boot_rom_location: "source/mega-cd-boot-rom.c (16384 uint16 entries = 32 KB)"
bus_mapping: "0x400000-0x41FFFF (address & 0x20000 == 0)"
source_ref: "bus-main-m68k.c:19-21, bus-main-m68k.c:501-513"
source_ref: "source/bus-main-m68k.c:19-21, source/bus-main-m68k.c:510-522"
bios_hle: true
hle_source_ref: "bus-sub-m68k.c:64 (MegaCDBIOSCall)"
hle_source_ref: "source/bus-sub-m68k.c:64 (MegaCDBIOSCall)"
+7 -1
View File
@@ -4,11 +4,17 @@ core_classification: pure_libretro
source: "https://github.com/libretro/Craft"
upstream: "https://github.com/fogleman/Craft"
profiled_date: "2026-03-23"
source_commit: "675c5b2fc690d2e80f6099f46407bf23827c59d4"
source_commit: "e9f3b9108077db019885a384429437d0b6a3904b"
core_version: "v1"
display_name: "Minecraft (Craft)"
cores: [craft]
systems: []
exclusion_note: >
The system directory is asked for, and what goes in it is written by the
core: g->db_path and g->db_auth_path, the world database and its auth
table. Nothing is read from it that the user has to supply
(src/main.c:2682-2697).
files: []
notes: >
Libretro port of Craft, a simple Minecraft clone by Michael Fogleman.
+3 -3
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/daphne"
upstream: "https://github.com/mirror/daphne-emu"
profiled_date: "2026-03-23"
source_commit: "1586978f7b71f40675f8d0a08d9872ecd2415422"
source_commit: "6f1695dd1f376060666eec0a416ff56bb6c9cccc"
core_version: "Git"
display_name: "Arcade (Daphne)"
cores:
@@ -16,7 +16,7 @@ notes: |
LaserDisc arcade game emulator. Port of Daphne 1.0 (Matt Ownby) to libretro.
Each game loads its own arcade ROM set from a ZIP file named after the game
(e.g. lair.zip). ROMs are loaded from a content-relative directory structure
(homedir/roms/) with CRC32 verification (game.cpp:767-781). The core never
(homedir/roms/) with CRC32 verification (daphne/daphne-1.0-src/game/game.cpp:767-781). The core never
accesses the RetroArch system directory. Additional per-game data (framefiles,
sound samples, overlay BMPs) is also loaded relative to the content directory.
@@ -26,4 +26,4 @@ exclusion_note: >
.info declares no firmware (firmware_count absent). Code confirmed: the core
never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. All files (ROM ZIPs,
framefiles, sound, pics) load from the content directory via g_homedir
(libretro.cpp:1153, set to rom_path/..). No shared system BIOS or firmware.
(daphne/libretro/libretro.cpp:1153, set to rom_path/..). No shared system BIOS or firmware.
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/desmume"
upstream: "https://github.com/TASEmulators/desmume"
profiled_date: "2026-03-23"
source_commit: "ae0f7f51f96d9b5741b47b425505a4a4224b91fa"
source_commit: "8f6b32cb9a5e310bd38520e7087ce7fa14765f15"
core_version: "SVN"
display_name: "Nintendo - DS (DeSmuME)"
cores: [desmume]
+4 -4
View File
@@ -4,17 +4,17 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/desmume2015"
upstream: "https://github.com/TASEmulators/desmume"
profiled_date: "2026-03-23"
source_commit: "af397ff3d1f208c27f3922cc8f2b8e08884ba893"
source_commit: "422b688009ccb9f2917c086a8fe79c8cecb030ae"
core_version: "SVN (2015 snapshot)"
display_name: "Nintendo - DS (DeSmuME 2015)"
cores: [desmume2015]
systems: [nintendo-ds]
exclusion_note: ".info declares firmware_count=3 but libretro frontend never enables external BIOS loading (UseExtBIOS defaults false in NDSSystem.h:497, never set in libretro.cpp)"
exclusion_note: ".info declares firmware_count=3 but libretro frontend never enables external BIOS loading (UseExtBIOS defaults false in desmume/src/NDSSystem.h:497, never set in libretro.cpp)"
notes: |
Frozen 2015 snapshot of DeSmuME. The core emulator code supports external
BIOS/firmware (PrepareBiosARM7/ARM9 in NDSSystem.cpp:1974-2050), but
UseExtBIOS defaults to false (NDSSystem.h:497) and the libretro frontend
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
version. Uses HLE BIOS stubs when external BIOS not loaded.
+6 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/mittonk/dice-libretro"
upstream: "https://sourceforge.net/projects/dice/"
profiled_date: "2026-03-23"
source_commit: "72d66a67a296b004fa0bb7a57dbab9cfcec462b9"
source_commit: "b11714fc4eb5b671ba15f2ec7b98c7ae909f7a4c"
core_version: "v0.4.2"
display_name: "Arcade (DICE)"
cores:
@@ -22,6 +22,11 @@ notes: |
dummy launcher files. The system directory is retrieved but never used
for file loading (libretro.cpp:60-62).
exclusion_note: >
The system directory is asked for and stored in retro_base_directory, which
is named in no other file of the tree and read nowhere: the answer is never
used (libretro.cpp:28,60-63).
files: []
analysis:
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/icculus/DirkSimple"
upstream: "https://github.com/icculus/DirkSimple"
profiled_date: "2026-03-23"
source_commit: "5aea3e2951ed641908a7bd2ca09019614003b5e3"
source_commit: "d5d75f97af34690010166a786ee41e15dd142c15"
core_version: "0.2"
display_name: "Laserdisc arcade game (DirkSimple)"
cores: [dirksimple]
+6 -6
View File
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/dolphin"
upstream: "https://github.com/dolphin-emu/dolphin"
logo: "https://raw.githubusercontent.com/dolphin-emu/dolphin/master/Data/dolphin-emu.svg"
profiled_date: "2026-03-23"
source_commit: "b4c88b46ad26227ebde585111de691db1b0a151a"
source_commit: "e1e6d25fa1392b7d1bc05bf800c71b807a2bd2e0"
core_version: "Git"
display_name: "Nintendo - GameCube / Wii (Dolphin)"
cores:
@@ -111,7 +111,7 @@ files:
system: sega-triforce
required: true
note: "SegaBoot, the Triforce system disc image. Read on every Triforce boot, min(size, 2 MiB) copied into the firmware buffer, nothing validated"
source_ref: "Source/Core/Core/HW/DVD/AMMediaboard.cpp:159,512,531-551, Source/Core/Core/HW/DVD/DVDInterface.cpp:292-294, Source/Core/Core/System.h:147"
source_ref: "Source/Core/Core/HW/DVD/AMMediaboard.cpp:160, 512, 531-551, Source/Core/Core/HW/DVD/DVDInterface.cpp:292-294, Source/Core/Core/System.h:147"
# -- GBA BIOS (for GC-GBA link) --
# Used by integrated mGBA core for GameCube-GBA connectivity.
@@ -217,7 +217,7 @@ files:
required: false
mode: standalone
note: "Realtek 8723A BT firmware for Wiimote passthrough"
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:387"
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:414"
- name: "rtl8723b_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8723b_fw.bin"
@@ -231,7 +231,7 @@ files:
required: false
mode: standalone
note: "Realtek 8723D BT firmware for Wiimote passthrough"
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:391"
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:418"
- name: "rtl8761a_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8761a_fw.bin"
@@ -259,14 +259,14 @@ files:
required: false
mode: standalone
note: "Realtek 8821C BT firmware for Wiimote passthrough"
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:399"
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:426"
- name: "rtl8822b_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8822b_fw.bin"
required: false
mode: standalone
note: "Realtek 8822B BT firmware for Wiimote passthrough"
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:403"
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:430"
- name: "rtl8822cu_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8822cu_fw.bin"
+13 -13
View File
@@ -3,7 +3,7 @@ type: standalone
core_classification: enhanced_fork
source: "https://github.com/dosbox-staging/dosbox-staging"
upstream: "https://github.com/dosbox-staging/dosbox-staging"
source_commit: "cd81dcbc72773a4bd559b305c8b6ad3196cd09dc"
source_commit: "639aba29163f5acff84774bf4397dcfe53a4986d"
profiled_date: "2026-08-08"
core_version: "0.84.0-alpha"
display_name: "DOS (DOSBox Staging)"
@@ -26,27 +26,27 @@ notes: |
No system BIOS: the PC BIOS, video BIOS fonts, keyboard layouts and codepage
tables are implemented in code.
ref: int10_memory.cpp:160, dos_keyboard_layout_data.h
ref: src/ints/int10_memory.cpp:160, dos_keyboard_layout_data.h
MIDI devices that need external data are mt32, soundcanvas and fluidsynth.
A device that fails to initialise throws, MIDI_Init warns and retries with
mididevice = port, then disables MIDI output. Emulation continues either way.
ref: midi.cpp:794-850
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
directory holds and logs anything unrecognised.
ref: mt32_lasynth_model.cpp:36-97, munt ROMInfo.cpp:206-213
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
image (addROMFile) or as the two chip dumps merged in memory
(mergeAndAddROMFiles): control halves are byte-interleaved, PCM halves are
concatenated.
ref: mt32_lasynth_model.cpp:114-151, munt ROMInfo.cpp:312-331
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
restrict that list. MIXER /LISTMIDI prints what was found.
ref: mt32.cpp:278-331, 504-557
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;
~/Library/Audio/Sounds/MT32-Roms and /usr/{local/,}share/mt32-rom-data on
@@ -54,7 +54,7 @@ notes: |
$XDG_DATA_DIRS/mt32-rom-data and $XDG_CONFIG_HOME/dosbox/mt32-roms on Linux).
A relative romdir resolves against the working directory, so a game folder
can carry its own set.
ref: mt32.cpp:385-396, 416-485
ref: src/midi/mt32.cpp:385-396, 416-485
Sound Canvas: the SC-55 is emulated by the Nuked SC55 CLAP plugin, loaded
from a plugins directory next to the executable, in the configuration
@@ -62,7 +62,7 @@ notes: |
directory candidates, canonicalises the ones that exist and exports them as
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: soundcanvas.cpp:326-373, support.cpp:351-379,
ref: src/midi/soundcanvas.cpp:326-373, src/misc/support.cpp:351-379,
Nuked-SC55-CLAP nuked_sc55.cpp:117-215,
Nuked-SC55-CLAP rom_loader.cpp:32-63,
Nuked-SC55-CLAP rom_io.cpp:271-564
@@ -70,22 +70,22 @@ notes: |
sc55_200, sc55mk2_101, sc55mk2_100 in that order by matching plugin names.
The plugin publishes six descriptors: SC-55 v1.00, v1.10, v1.20, v1.21,
v2.00 and SC-55mk2 v1.01.
ref: soundcanvas.cpp:55-71, 80-147, Nuked-SC55-CLAP plugin.cpp:23-90
ref: src/midi/soundcanvas.cpp:55-71, 80-147, Nuked-SC55-CLAP plugin.cpp:23-90
FluidSynth: the soundfont setting names a file, tried as given and with .sf2
appended, in soundfont_dir, then soundfonts in the configuration directory,
then the platform locations. fluid_synth_sfload is the only check. The
SoundFont name from the RIFF INFO chunk and the file stem select reverb,
chorus and filter presets for four known banks.
ref: fluidsynth.cpp:107-230, 672-689, 816-883, 1229-1252
ref: src/midi/fluidsynth.cpp:107-230, 672-689, 816-883, 1229-1252
Bundled data ships with the program and is read from the resources directory
next to the executable: FreeDOS codepages and keyboard layouts, translations,
shaders and shader presets, CGA colour presets, drive noise samples, the
mounted Y: drive utilities, the web interface and the manual pages.
ref: support.cpp:300-320, dos_code_page.cpp:1828, dos_keyboard_layout.cpp:70,
messages.cpp:1073, shader_manager.cpp:236,404, int10_modes.cpp:2302,
disk_noise.cpp:187, autoexec.cpp:759
ref: src/misc/support.cpp:300-320, src/dos/dos_code_page.cpp:1828, src/dos/dos_keyboard_layout.cpp:70,
src/misc/messages.cpp:1073, src/gui/render/shader_manager.cpp:236,404, src/ints/int10_modes.cpp:2302,
src/audio/disk_noise.cpp:187, src/shell/autoexec.cpp:759
BIOSTEST.COM loads an arbitrary BIOS image at F000:0 and is compiled only
when the debugger is enabled, which is off by default.
+32 -32
View File
@@ -25,13 +25,13 @@ notes: |
olivetti/m24/att6300, pc3270, ega, ega200, jega, mcga, vgaonly, the S3,
Tseng, Paradise and ATI SVGA cards, the vesa variants, and pc98/pc9801/pc9821.
fm_towns is marked STUB in the same list.
ref: dosbox.cpp:1526-1562
ref: src/dosbox.cpp:1530-1566
No system BIOS: the PC BIOS, VGA BIOS, video fonts, keyboard layouts, codepage
tables, the Z: drive utilities including GLIDE2X.OVL, and the TTF text font are
compiled in.
ref: int10_memory.cpp, dos_keyboard_layout_data.h, dos_codepages.h,
src/builtin/glide2x.cpp:2861, output_ttf.cpp:664
src/builtin/glide2x.cpp:2861, src/output/output_ttf.cpp:664
Files named without a directory are searched in the working directory, the
program directory, the user configuration directory and the resource
@@ -39,37 +39,37 @@ notes: |
or ~/.config/dosbox-x, and the resource directory is $XDG_DATA_HOME/dosbox-x,
then /usr/local/share/dosbox-x, then /usr/share/dosbox-x. Windows uses
C:\DOSBox-X.
ref: int10.cpp:1442-1485, cross.cpp:120-167
ref: src/ints/int10.cpp:1442-1485, src/misc/cross.cpp:128-175
MT-32: libmt32emu is built from src/libs/mt32. Only four file names are ever
opened, and each candidate is identified by exact file size then SHA1, so the
name says nothing about the contents. addROMFile matches against the full
image list only, which rejects the interleaved chip dumps.
ref: midi_mt32.h:74-109, c_interface.cpp:442-462, ROMInfo.cpp:206-215
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
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: midi_mt32.h:246-275, dosbox.cpp:3571-3576
ref: src/gui/midi_mt32.h:246-275, src/dosbox.cpp:3577-3582
FluidSynth reads fluid.soundfont; 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.
ref: midi_synth.h:342-384, 462-480
ref: src/gui/midi_synth.h:342-384, 462-480
PC-98 character generator, tried in order: FONT.ROM as generated by T98Tools,
then the FONTX2 files named by pc-98 fontx sbcs and pc-98 fontx dbcs, then the
file named by pc-98 anex86 font or ANEX86.BMP followed by FREECG98.BMP, then
the built-in FREECG single-byte font and the built-in Japanese double-byte
font. Each stage fills only what the previous one left empty.
ref: int10.cpp:1882-1893, 1652-1675
ref: src/ints/int10.cpp:1882-1893, 1652-1675
PC-98 sound board BIOS: with pc-98 sound bios set, SOUND.ROM is read from the
working directory into CC000h. Without it a callback Sound BIOS is installed
at CEE0:0000 answering INT D2h.
ref: pc98_fm.cpp:367-385, 416-434
ref: src/hardware/pc98_fm.cpp:367-385, 416-434
DOS/V and CJK text: fontxsbcs, fontxsbcs16, fontxsbcs24, fontxdbcs,
fontxdbcs14 and fontxdbcs24 name font files. LoadFontxFile reads a FONTX2
@@ -77,28 +77,28 @@ notes: |
identified by its size, which covers ASC16 and ASCFONT.15 from UCDOS and ETen
Chinese DOS, ASC24, HZK14, HZK16, HZK24 and STDFONT.15 and STDFONT.24.
Unset settings fall back to the built-in font data.
ref: int_dosv.cpp:654-749, 1631-1710, dosbox.cpp:2533-2568
ref: src/ints/int_dosv.cpp:654-749, 1631-1710, src/dosbox.cpp:2539-2574
BOOT -bios loads a BIOS image at the top of the first megabyte, truncated to
128 KB, or 96 KB on PC-98 where it also looks for <image>.itf.rom, <image>.ITF.ROM,
itf.rom and ITF.ROM to serve the bank switched Initial Firmware Test region
through port 43Dh.
ref: dos_programs.cpp:2244-2332
ref: src/dos/dos_programs.cpp:2250-2338
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
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: dos_programs.cpp:3581-3640, bios.cpp:13142-13215
ref: src/dos/dos_programs.cpp:3587-3646, src/ints/bios.cpp:13280-13353
Glide passthrough loads glide2x.dll, libglide2x.so or libglide2x.dylib.
ref: glide.cpp:353-359, dosbox.cpp:3471-3473
ref: src/hardware/glide.cpp:353-359, src/dosbox.cpp:3477-3479
ttf.font, ttf.fontbold, ttf.fontital and ttf.fontboit name a TTF, OTF, FON or
TTC font resolved through the same search order plus the system font
directories. Unset, the TTF output uses the built-in font, except on PC-98 or
a double-byte code page where SarasaGothicFixed.ttf is tried first.
ref: output_ttf.cpp:318-473, 653-668
ref: src/output/output_ttf.cpp:318-473, 653-668
Shipped in the resource directory: FREECG98.BMP, wqy_11pt.bdf, wqy_12pt.bdf,
Nouveau_IBM.ttf, SarasaGothicFixed.ttf and the two reference configuration
@@ -109,9 +109,9 @@ notes: |
the customcodepage translation table, .kl layout files and the KEYBOARD.SYS
to KEYBRD4.SYS libraries read from a mounted drive, the glshaders directory
and the .lng translations.
ref: bios.cpp:11389-11398, sdlmain.cpp:7001-7008,
dos.cpp:4397-4420, dos_keyboard_layout.cpp:300-340,
render.cpp:1538-1545, messages.cpp:294-320
ref: src/ints/bios.cpp:11463-11472, src/gui/sdlmain.cpp:7010-7017,
src/dos/dos.cpp:4402-4425, src/dos/dos_keyboard_layout.cpp:300-340,
src/gui/render.cpp:1538-1545, src/misc/messages.cpp:294-320
files:
# -- MT-32 and CM-32L control ROMs --
@@ -260,7 +260,7 @@ files:
note: >
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-384, src/gui/midi_synth.h:462-473, src/dosbox.cpp:3710"
source_ref: "src/gui/midi_synth.h:346-384, src/gui/midi_synth.h:462-473, src/dosbox.cpp:3716"
# -- PC-98 character generator --
@@ -274,7 +274,7 @@ files:
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
pc-98 try font rom, on by default
source_ref: "src/ints/int10.cpp:1487-1549, src/dosbox.cpp:2477-2478"
source_ref: "src/ints/int10.cpp:1487-1549, src/dosbox.cpp:2483-2484"
- name: "ANEX86.BMP"
description: "PC-98 character generator, Anex86 bitmap"
@@ -285,7 +285,7 @@ files:
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:2481-2484"
source_ref: "src/ints/int10.cpp:1555-1647, src/dosbox.cpp:2487-2490"
- name: "FREECG98.BMP"
description: "PC-98 character generator, free generated bitmap"
@@ -335,32 +335,32 @@ files:
description: "Printer Roman typeface"
required: false
note: "also the fallback typeface for any unmapped LQ selection"
source_ref: "src/hardware/parport/printer.cpp:320-321, src/hardware/parport/printer.cpp:336-337, src/dosbox.cpp:4597"
source_ref: "src/hardware/parport/printer.cpp:320-321, src/hardware/parport/printer.cpp:336-337, src/dosbox.cpp:4621"
- name: "sansserif.ttf"
path: "FONTS/sansserif.ttf"
description: "Printer Sans Serif typeface"
required: false
source_ref: "src/hardware/parport/printer.cpp:323-324, src/dosbox.cpp:4597"
source_ref: "src/hardware/parport/printer.cpp:323-324, src/dosbox.cpp:4621"
- name: "courier.ttf"
path: "FONTS/courier.ttf"
description: "Printer Courier typeface"
required: false
source_ref: "src/hardware/parport/printer.cpp:326-327, src/dosbox.cpp:4597"
source_ref: "src/hardware/parport/printer.cpp:326-327, src/dosbox.cpp:4621"
- name: "script.ttf"
path: "FONTS/script.ttf"
description: "Printer Script typeface"
required: false
source_ref: "src/hardware/parport/printer.cpp:329-330, src/dosbox.cpp:4597"
source_ref: "src/hardware/parport/printer.cpp:329-330, src/dosbox.cpp:4621"
- name: "ocra.ttf"
path: "FONTS/ocra.ttf"
description: "Printer OCR-A typeface"
required: false
note: "serves both the OCR-A and OCR-B selections"
source_ref: "src/hardware/parport/printer.cpp:332-334, src/dosbox.cpp:4597"
source_ref: "src/hardware/parport/printer.cpp:332-334, src/dosbox.cpp:4621"
# -- PC-98 sound board BIOS --
@@ -373,7 +373,7 @@ files:
note: >
16 KB read into CC000h from the working directory only, when
pc-98 sound bios and pc-98 load sound bios rom file are both set
source_ref: "src/hardware/pc98_fm.cpp:367-385, src/dosbox.cpp:2378-2386"
source_ref: "src/hardware/pc98_fm.cpp:367-385, src/dosbox.cpp:2384-2392"
# -- Video BIOS ROM images --
# Loaded in place of the built-in INT 10h when vga bios use rom image is set.
@@ -387,7 +387,7 @@ files:
max_size: 65536
validation: [size]
note: "default file name for machine = svga_et4000"
source_ref: "src/dosbox.cpp:938-982, src/dosbox.cpp:2745-2757"
source_ref: "src/dosbox.cpp:942-986, src/dosbox.cpp:2751-2763"
- name: "TRIO64 (Ver. 1.5-07) [VGA] (S3 Incorporated).bin"
description: "S3 Trio64 video BIOS"
@@ -398,7 +398,7 @@ files:
max_size: 65536
validation: [size]
note: "default file name for machine = svga_s3"
source_ref: "src/dosbox.cpp:943-945, src/dosbox.cpp:2745-2757"
source_ref: "src/dosbox.cpp:947-949, src/dosbox.cpp:2751-2763"
- name: "ibm-vga.bin"
description: "IBM VGA option ROM of 10/27/86, laid out as mapped at C000:0"
@@ -411,7 +411,7 @@ files:
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:3523-3549, src/dos/dos_programs.cpp:3560-3565"
source_ref: "src/dos/dos_programs.cpp:3529-3555, src/dos/dos_programs.cpp:3566-3571"
# -- IBM ROM BASIC --
@@ -428,7 +428,7 @@ files:
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:13074-13094, src/dos/dos_programs.cpp:3550-3554, src/dosbox.cpp:1931-1933"
source_ref: "src/ints/bios.cpp:13212-13232, src/dos/dos_programs.cpp:3556-3560, src/dosbox.cpp:1937-1939"
# -- PCjr --
@@ -443,7 +443,7 @@ files:
read during PCjr cartridge boot; 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:3061-3070"
source_ref: "src/dos/dos_programs.cpp:3067-3076"
# -- Whole system BIOS images --
@@ -454,7 +454,7 @@ files:
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
rather than rejected
source_ref: "src/dos/dos_programs.cpp:2244-2293"
source_ref: "src/dos/dos_programs.cpp:2250-2299"
- name: "ITF.ROM"
description: "PC-98 Initial Firmware Test BIOS"
@@ -465,4 +465,4 @@ files:
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:2295-2326"
source_ref: "src/dos/dos_programs.cpp:2301-2332"
+3 -3
View File
@@ -12,11 +12,11 @@ systems: [dos]
notes: |
No BIOS required. MT-32 and SoundFont support is optional for MIDI music.
MT-32 ROMs loaded by exact filename from system directory.
mt32.romdir = system_dir (libretro.cpp:652). CM-32L is default type.
mt32.romdir = system_dir (libretro/src/libretro.cpp:653). CM-32L is default type.
ref: src/gui/midi_mt32.cpp:35,51-66
MUNT identifies ROMs by SHA1+size (ROMInfo.cpp:171-180).
MUNT identifies ROMs by SHA1+size (libretro/deps/munt/mt32emu/src/ROMInfo.cpp:171-180).
FluidSynth reads .sf2/.sf3/.dls/.gig from system/soundfonts/.
ref: libretro/src/libretro.cpp:1086-1097
ref: libretro/src/libretro.cpp:1099-1110
BASSMIDI reads .sf2/.sfz from system/soundfonts/, requires BASS +
BASSMIDI shared libs in system dir (dlopen'd at runtime).
ref: libretro/src/midi_bassmidi.cpp:232-254
+3 -3
View File
@@ -14,13 +14,13 @@ notes: |
(WITH_FAKE_SDL=1) instead of real SDL, for broader platform compat.
ref: libretro/Makefile.libretro, libretro/fakesdl/
No MT-32 emulation. src/midi/munt referenced in Makefile.common:15
No MT-32 emulation. src/midi/munt referenced in libretro/Makefile.common:15
does not exist, no MUNT submodule. MIDI is hardware-only
(ALSA, CoreAudio, CoreMIDI, Win32, OSS) + retro_midi_interface.
ref: src/gui/midi.cpp
system_directory set and logged (libretro.cpp:1399-1401), never used
to load files. Config uses retro_save_directory (cross.cpp:61-71).
system_directory set and logged (libretro/libretro.cpp:1411-1413), never used
to load files. Config uses retro_save_directory (src/misc/cross.cpp:61-71).
Keyboard layouts and codepages embedded in binary.
ref: dos_keyboard_layout_data.h, dos_codepages.h
+4 -4
View File
@@ -12,15 +12,15 @@ systems: [dos]
notes: |
Same codebase as dosbox_svn, builds against real SDL 1.2 + SDL_net
instead of the fake SDL shim (WITH_FAKE_SDL not set).
ref: libretro/Makefile.libretro:238
ref: libretro/Makefile.libretro:244
No MT-32 emulation. src/midi/munt referenced in Makefile.common:15
No MT-32 emulation. src/midi/munt referenced in libretro/Makefile.common:15
does not exist, no MUNT submodule. MIDI is hardware-only
(ALSA, CoreAudio, CoreMIDI, Win32, OSS) + retro_midi_interface.
ref: src/gui/midi.cpp
system_directory set and logged (libretro.cpp:1399-1401), never used
to load files. Config uses retro_save_directory (cross.cpp:61-73).
system_directory set and logged (libretro/libretro.cpp:1411-1413), never used
to load files. Config uses retro_save_directory (src/misc/cross.cpp:61-73).
Keyboard layouts and codepages embedded in binary.
ref: dos_keyboard_layout_data.h, dos_codepages.h
+2 -2
View File
@@ -19,7 +19,7 @@ notes: |
Accepts PS1 (512 KB), PS2 (4 MB), and PS3 (0x3E66F0) BIOS images.
ref: src/core/bios.h:24-26 (BIOS_SIZE, BIOS_SIZE_PS2, BIOS_SIZE_PS3)
Only the first 512 KB are mapped (bios.cpp:212).
Only the first 512 KB are mapped (src/core/bios.cpp:212).
105 known BIOS entries: 24 PS1 + 80 PS2 (identified by MD5) + 1 OpenBIOS (by signature).
ref: src/core/bios.cpp:34-139 (s_image_info_by_hash)
@@ -30,7 +30,7 @@ notes: |
only by the two settings screens, which fall back to the real filename when it
is null.
ref: src/core/bios.h:41-43 (field declarations)
ref: src/duckstation-qt/biossettingswidget.cpp:150, src/core/fullscreenui_settings.cpp:3219
ref: src/duckstation-qt/biossettingswidget.cpp:150, src/core/fullscreenui_settings.cpp:3239
Lower priority = preferred. PS2 deprioritized (>= 100) for dynamic fast boot.
Late PAL deprioritized (>= 150) due to additional regional checks.
OpenBIOS detected by signature at offset 0x78, not by hash.
+3 -3
View File
@@ -24,11 +24,11 @@ notes: |
"embedded" when that fails. The system directory is still passed to SelectGame,
but for the game data search, not for the engine package.
ref: src/libretro/ecwolf_pk3_data.c, src/wl_iwad.cpp:664-672,
src/libretro/libretro.cpp:990-992
src/libretro/libretro.cpp:1009-1011
Standalone: ecwolf.pk3 searched in progdir (binary directory).
ref: wl_main.cpp:1295 (progdir passed to SelectGame)
Also: INSTALL_PREFIX/share/ecwolf/ on Linux (wl_iwad.cpp:648)
ref: src/libretro/wl_main.cpp:1271 (progdir passed to SelectGame)
Also: INSTALL_PREFIX/share/ecwolf/ on Linux (src/wl_iwad.cpp:648)
Game data files (vswap, gamemaps, vgagraph, audiot) loaded from content
directory, not system directory. Auto-detects game variant by scanning
+3
View File
@@ -3,6 +3,9 @@ type: standalone
core_classification: community_fork
source: "https://git.eden-emu.dev/eden-emu/eden"
upstream: "https://git.eden-emu.dev/eden-emu/eden"
# git.eden-emu.dev answers 403 to anything that is not a browser, so the
# Codeberg copy is what keeps this profile checkable.
source_mirror: "https://codeberg.org/eden-emu/eden"
profiled_date: "2026-03-26"
source_commit: "c0ffc900cdf19b9373549c59a7e6b22c33615ea4"
core_version: "0.1.1"
+2 -2
View File
@@ -3,7 +3,7 @@ type: standalone
source: "https://github.com/EKA2L1/EKA2L1"
upstream: "https://github.com/EKA2L1/EKA2L1"
profiled_date: "2026-03-26"
source_commit: "46ef1ebdcfbd7454c080d0f1efb5fb54cfa7f622"
source_commit: "f8a9a0a380d62f82a463bcc299f2b9250b819674"
core_version: "continuous"
display_name: "EKA2L1 (Symbian OS / N-Gage)"
cores:
@@ -51,4 +51,4 @@ files:
required: true
mode: standalone
description: "Symbian OS phone ROM dump. One per device, placed in roms/{firmware_code}/ subdirectory."
source_ref: "src/emu/system/src/epoc.cpp:1225,754-759, src/emu/system/include/system/consts.h:23-25"
source_ref: "src/emu/system/src/epoc.cpp:1288, src/emu/system/src/epoc.cpp:794-799, src/emu/system/include/system/consts.h:23-25"
+63 -14
View File
@@ -4,8 +4,8 @@ core_classification: community_fork
source: "https://github.com/sashkinbro/EmuCoreX"
upstream: "https://github.com/PCSX2/pcsx2"
author: "Oleksandr (sashkinbro)"
profiled_date: "2026-08-11"
source_commit: "7d103230adfa671a3e66b090b8a7fe8f44edc09c"
profiled_date: "2026-09-04"
source_commit: "f32393ae0dc1df81834e58873145cff5b8bc8175"
upstream_commit: "53e3838c1dd59f611fa3d2fd36915903a1304c6e"
core_version: "0.3.3"
display_name: "Sony - PlayStation 2 (EmuCoreX)"
@@ -55,22 +55,34 @@ notes: |
A BIOS image is required and boot stops without one: LoadBIOS returning false
makes VMManager report that a PlayStation 2 BIOS is needed. Only a GS dump
replay skips the load. Detection is by content: the folder scan keeps files
between 4 and 8 MB and accepts an image whose romdir carries a RESET entry
between 2 and 8 MB and accepts an image whose romdir carries a RESET entry
followed by a readable ROMVER, the fifth ROMVER character giving the zone among
Japan, USA, Europe, Asia, China, T10K, COH-H, Test and Free, with EXTINFO
supplying the serial. An image named in the configuration is opened at its own
path without the size filter. No name and no hash is matched.
MIN_BIOS_SIZE was halved to 2 MB to admit the Namco System 246/256 chip dumps,
which are 2 MB where a console image is 4. Three other changes came with it:
a COH-H board is region 11 rather than 8, its description is built from the
EXTINFO serial because Sony left the version and date fields identical across
those BIOSes, and the ROM window is zero-filled before the read so the unused
upper half cannot retain the previous image.
ref: app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17,
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:80-197,
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:258-294,
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:317-369,
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:80-217,
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:150-151 (COH-H region),
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:176-190 (serial description),
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:278-314,
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:337-391,
app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:365-367 (ROM window cleared),
app/src/main/cpp/pcsx2/pcsx2/VMManager.cpp:1487-1499
The app runs its own gate over the same test before launching. A candidate is
a .bin or .rom between 512 KB and 8 MB whose name carries scph, ps2, bios or
rom, and it is confirmed by isBiosPath or isBiosFd, both of which call the
core's IsBIOS on the path or on /proc/self/fd.
ref: app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:13-19,
a .bin, .rom, .7d or .8g between 512 KB and 8 MB whose name carries scph, ps2,
bios, rom or r27v1602f, and it is confirmed by isBiosPath or isBiosFd, both of
which call the core's IsBIOS on the path or on /proc/self/fd. The two extra
extensions are the board positions the Namco dumps carry instead of a
conventional one.
ref: app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:13-21,
app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:110-137,
app/src/main/cpp/ARM_ANDROID/src/jni/native_app_jni.cpp:414-436
@@ -119,16 +131,53 @@ files:
system: sony-playstation-2
agnostic: true
required: true
min_size: 4194304
min_size: 2097152
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 that range. Read into the 4 MB ROM region and truncated
to it. Shorter than 2465792 bytes disables the OSDSys parameter HLE.
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:80-197, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:258-294, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:317-369"
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.
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:80-217, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:278-314, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:337-391"
- name: r27v1602f.7d
path: bios/r27v1602f.7d
system: sony-playstation-2
agnostic: true
required: false
size: 2097152
md5: 52cca0058626569c7a9699838baab2d8
sha1: f0a74bbcaf801f3fd0b7002ebd0118564aae3528
crc32: 2b2e41a2
description: "Namco System 246 COH-H BIOS chip dump"
note: >-
Admitted since MIN_BIOS_SIZE fell to 2 MB. The board position is the
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
comes from the EXTINFO serial. Byte-identical to the r27v1602f.7d member
of the MAME sys246 set.
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:150-151, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:176-190, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:365-367, app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:13-21"
- name: r27v1602f.8g
path: bios/r27v1602f.8g
system: sony-playstation-2
agnostic: true
required: false
size: 2097152
md5: a58676c6bd79229bda967d07b4ec2e16
sha1: bc4fb4e1e53adbd92385f1726bd69663ff870f1e
crc32: b2a8eeb6
description: "Namco System 256 COH-H BIOS chip dump"
note: >-
The System 256 counterpart, taken by the same path and the same widened
size gate. Byte-identical to the r27v1602f.8g member of the MAME sys256
set.
source_ref: "app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:16-17, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:150-151, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:176-190, app/src/main/cpp/pcsx2/pcsx2/ps2/BiosTools.cpp:365-367, app/src/main/java/com/sbro/emucorex/core/BiosValidator.kt:13-21"
- name: ps2-0230a-20080220.rom1
path: bios/ps2-0230a-20080220.rom1
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/emux"
upstream: "https://github.com/sronsse/emux"
profiled_date: "2026-03-23"
source_commit: "120362977493765032cba7bed9c7aee1ff5b8579"
source_commit: "3e558cb15157fcb1944846a845547d369605c963"
core_version: "0.1"
display_name: "CHIP-8 (Emux CHIP-8)"
cores:
+6 -6
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/emux"
upstream: "https://github.com/sronsse/emux"
profiled_date: "2026-03-23"
source_commit: "02f7ba42bedad6882ce47f24c8fc3af7eaac79ae"
source_commit: "3e558cb15157fcb1944846a845547d369605c963"
core_version: "0.1"
display_name: "Nintendo - Game Boy / Color (Emux GB)"
cores:
@@ -14,13 +14,13 @@ systems:
notes: |
emux is a multi-system emulator by Sebastien Ronsse. The libretro port
renamed the boot ROM from DMG_ROM.bin (upstream, gb_mapper.c:32) to
dmg_boot.bin (libretro, gb_mapper.c:35) to match RetroArch conventions.
renamed the boot ROM from DMG_ROM.bin (upstream, controllers/mapper/gb_mapper.c:32) to
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 (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, gb_mapper.c:97-106).
is written non-zero (lock_writeb, controllers/mapper/gb_mapper.c:97-106).
No hash validation. Code accepts any 256+ byte file.
is_experimental=true. No save states, rewind, or netplay.
@@ -33,4 +33,4 @@ files:
required: true
size: 256
source_ref: "controllers/mapper/gb_mapper.c:35 (bootrom_path), controllers/mapper/gb_mapper.h:13 (BOOTROM_SIZE=256), controllers/mapper/gb_mapper.c:225-232 (file_map + error)"
note: "Upstream name DMG_ROM.bin, renamed by libretro port (gb_mapper.c:33-34)."
note: "Upstream name DMG_ROM.bin, renamed by libretro port (controllers/mapper/gb_mapper.c:33-34)."
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/emux"
upstream: "https://github.com/sronsse/emux"
profiled_date: "2026-03-23"
source_commit: "120362977493765032cba7bed9c7aee1ff5b8579"
source_commit: "3e558cb15157fcb1944846a845547d369605c963"
core_version: "0.1"
display_name: "Nintendo - NES / Famicom (Emux NES)"
cores:
+4 -4
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/emux"
upstream: "https://github.com/sronsse/emux"
profiled_date: "2026-03-23"
source_commit: "02f7ba42bedad6882ce47f24c8fc3af7eaac79ae"
source_commit: "3e558cb15157fcb1944846a845547d369605c963"
core_version: "0.1"
display_name: "Sega - Master System (Emux SMS)"
cores:
@@ -18,9 +18,9 @@ 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 (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 (sms_mapper.c:79-82).
set in slot control register (controllers/mapper/sms_mapper.c:79-82).
No hash validation. Code accepts any file >= 8192 bytes.
is_experimental=true. No save states, rewind, or netplay.
@@ -33,4 +33,4 @@ files:
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)"
note: "Mapped at 0x0000, overlays cartridge ROM until bios_disable bit set. file_map rejects files < 8192 bytes (file.c:59)."
note: "Mapped at 0x0000, overlays cartridge ROM until bios_disable bit set. file_map rejects files < 8192 bytes (main/file.c:59)."
+3 -3
View File
@@ -232,7 +232,7 @@ files:
system: videoton-tvc
has_builtin: true
note: "TVC extension ROM v2.2. Loaded alongside tvc22_sys.rom."
source_ref: "core/core.cpp:366-367"
source_ref: "core/core.cpp:330"
- name: tvcfileio.rom
path: ep128emu/roms/tvcfileio.rom
@@ -243,7 +243,7 @@ files:
has_builtin: true
bundled: true
note: "TVC direct file I/O extension. Used for TVC64_FILE mode. Source included in roms/ directory."
source_ref: "core/core.cpp:370-371"
source_ref: "core/core.cpp:334"
- name: tvc_dos12d.rom
path: ep128emu/roms/tvc_dos12d.rom
@@ -253,7 +253,7 @@ files:
system: videoton-tvc
has_builtin: true
note: "TVC DOS 1.2d. Loaded for TVC64_DISK mode."
source_ref: "core/core.cpp:375-376"
source_ref: "core/core.cpp:339"
# ============================================================
# Amstrad CPC
+5 -5
View File
@@ -4,7 +4,7 @@ core_classification: game_engine
source: "https://github.com/jtothebell/fake-08"
upstream: "https://github.com/jtothebell/fake-08"
profiled_date: "2026-03-23"
source_commit: "3e89519ca4b4eaf65be9e8cb982ea2c1ccd34e5d"
source_commit: "814991a2571ad3970e386cef48f3b148aa1c27b9"
core_version: "v0.0.2.19"
display_name: "PICO-8 (FAKE-08)"
cores:
@@ -18,17 +18,17 @@ notes: |
available (3DS, Vita, Switch, Wii U, various handhelds).
The core retrieves RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY in
retro_set_environment() (libretro.cpp:162-163) but never uses the value.
retro_set_environment() (platform/libretro/libretro.cpp:162-163) but never uses the value.
No file is loaded from the system directory. The PICO-8 boot sequence,
global Lua functions, and default cart menu are compiled directly into the
binary as string constants (p8GlobalLuaFunctions.h, DefaultCart.h).
When no ROM is passed (supports_no_game = true), the core queues its
built-in BIOS cart "__FAKE08-BIOS.p8" (libretro.cpp:751). This is not
built-in BIOS cart "__FAKE08-BIOS.p8" (platform/libretro/libretro.cpp:751). This is not
an external file -- it is generated internally by the VM.
The core accepts .p8 (text) and .png (cartridge-as-image) formats
(libretro.cpp:258). Content is loaded either via the libretro data buffer
(platform/libretro/libretro.cpp:258). Content is loaded either via the libretro data buffer
or full path depending on the _NEED_FULL_PATH_ compile flag.
exclusion_note: "all engine resources compiled into binary via include_bytes!"
@@ -49,4 +49,4 @@ platform_details:
The FAKE-08 VM reimplements the PICO-8 API (128x128 screen, 16 colors,
4-channel audio, Lua scripting) entirely in C++. The built-in BIOS
provides a cart browser and error display. Audio runs at 22050 Hz
with save state support via custom serialization (libretro.cpp:517-736).
with save state support via custom serialization (platform/libretro/libretro.cpp:517-736).
+3 -3
View File
@@ -4,7 +4,7 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/fbalpha2012_neogeo"
upstream: "https://www.fbalpha.com"
profiled_date: "2026-03-23"
source_commit: "ce4949b1557cc7134e736342801ed25b2f3bd790"
source_commit: "e092097037d494c50d17c5144a2758d68538061b"
core_version: "v0.2.97.29"
display_name: "Arcade (FB Alpha 2012 Neo Geo)"
cores:
@@ -17,7 +17,7 @@ notes: |
Exists for RAM-constrained platforms. Most users should use FBNeo.
Neo Geo requires a BIOS ROM set (neogeo.zip) placed alongside game ROMs.
The BIOS set contains ~35 variants (d_neogeo.cpp:903-981), all BRF_BIOS:
The BIOS set contains ~35 variants (src/burn/drv/neogeo/d_neogeo.cpp:903-981), all BRF_BIOS:
68K main BIOS (BRF_SELECT, one active at a time):
asia-s3.rom 0x91b64be3 MVS Asia/Europe ver. 6 (default)
@@ -50,7 +50,7 @@ notes: |
neocd.bin 0xdf9de490 Neo Geo CD BIOS
neogeo.zip is a parent ROM set, loaded from g_rom_dir alongside game ZIPs.
g_system_dir is set (libretro.cpp:3016) but never used for file loading.
g_system_dir is set (src/burner/libretro/libretro.cpp:3016) but never used for file loading.
The .info note "BIOS files must be inside the ROM directory" is accurate here:
neogeo.zip must be in the same directory as game ROM ZIPs.
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/FBNeo"
upstream: "https://github.com/finalburnneo/FBNeo"
profiled_date: "2026-03-23"
source_commit: "ef1f64b7023bc511858e96b8961f99c18a09f112"
source_commit: "a251c76229f1637e433b93e29845039752771b6d"
core_version: "v1.0.0.2"
display_name: "Arcade (FinalBurn Neo) (CPS-1 / CPS-2)"
cores:
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/libretro-fceumm"
upstream: "https://sourceforge.net/projects/fceumm/"
profiled_date: "2026-03-23"
source_commit: "b5e3566515c27dc66c9c20572171673126532e06"
source_commit: "236ccdfc911e84c60fea6b9d0699c2d440a8de14"
core_version: "SVN"
display_name: "Nintendo - NES / Famicom (FCEUmm)"
cores:
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/fixGB"
upstream: "https://github.com/FIX94/fixGB"
profiled_date: "2026-03-23"
source_commit: "ecbaee13b64a0308539e73d0eec1847925898e5d"
source_commit: "3ab80f3ebf600664c81fa2b0f163ba3f558cf52e"
core_version: "Alpha v0.8.2"
display_name: "Nintendo - Game Boy / Color (fixGB)"
cores:
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/fixNES"
upstream: "https://github.com/FIX94/fixNES"
profiled_date: "2026-03-23"
source_commit: "d5d8cba579e139fec823f64636a972d1acdf782c"
source_commit: "a692bda786a5c6f3cdc10d5a263830990d25c627"
core_version: "Alpha v1.3.1"
display_name: "Nintendo - NES / Famicom (fixNES)"
cores:
+3 -3
View File
@@ -16,7 +16,7 @@ notes: |
contributed by Joe Zbiciak (jzIntv), mask ROM embedded in source
(src/ivoice.c:337-510, 4097-byte static array). No external ivoice ROM.
BIOS loading in retro_init() (src/libretro.c:1166-1174). Paths joined
BIOS loading in retro_init() (src/libretro.c:1175-1183). Paths joined
directly to system directory, no subdirectory.
loadExec() reads exec.bin as big-endian 16-bit words into 0x1000-0x1FFF.
@@ -35,11 +35,11 @@ files:
required: true
size: 8192
note: "Executive ROM. Big-endian 16-bit words loaded at 0x1000-0x1FFF."
source_ref: "src/intv.c:47-71, src/libretro.c:1169"
source_ref: "src/intv.c:51-96, src/libretro.c:1178"
- name: "grom.bin"
system: intellivision
required: true
size: 2048
note: "Graphics ROM. Raw bytes loaded at 0x3000-0x37FF."
source_ref: "src/intv.c:73-98, src/libretro.c:1173"
source_ref: "src/intv.c:98-144, src/libretro.c:1182"
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/hex007/freej2me"
upstream: "https://github.com/hex007/freej2me"
profiled_date: "2026-03-23"
source_commit: "b1c4cf13e012938f9d5270621fddea60e5554858"
source_commit: "fae9304b85ac1c61d0117f6c8efe528612388278"
core_version: "GIT"
display_name: "Mobile - J2ME (FreeJ2ME)"
cores:
+1 -1
View File
@@ -5,7 +5,7 @@ cores: [frodo]
source: "https://github.com/libretro/frodo-libretro"
upstream: "https://github.com/cebix/frodo4"
profiled_date: "2026-03-23"
source_commit: "29dd1864b89d903ed93f1d86d85636ef9e194359"
source_commit: "9fb971b072215632f94ba86406c429dd8965dd93"
core_version: "v4.2"
display_name: "Commodore - C64 (Frodo)"
systems: [commodore-c64]
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/galaxy-libretro"
upstream: "https://github.com/nikp123/Galaksija-Emulator"
profiled_date: "2026-03-23"
source_commit: "4e197680d2dc9f8159d3a5565fcc4bbdd0e905ea"
source_commit: "185758296c17f59cba832511139381a197986474"
core_version: "v0.1"
display_name: "Elektronika Inženjering - Galaksija (Galaksija)"
cores:
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: pure_libretro
source: "https://github.com/ThisBoringWorld/gam4980"
upstream: "https://codeberg.org/iyzsong/gam4980"
profiled_date: "2026-03-23"
source_commit: "2fbed643f61c6bde758f179c93d6f0595ef0a7e6"
source_commit: "eeaa531b55e7127ab4b5e0bdc5ceba686df59c6a"
core_version: "0.2"
display_name: "GAM4980"
cores:
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/gambatte-libretro"
upstream: "https://github.com/sinamas/gambatte"
profiled_date: "2026-03-23"
source_commit: "96174369b3c30d9fc57c926fa3379c273dc6a9a5"
source_commit: "d9d6cd06382d1ced30de34d56d3609452323dab1"
core_version: "v0.5.0"
display_name: "Nintendo - Game Boy / Color (Gambatte)"
cores:
+3 -3
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/drhelius/Gearboy"
upstream: "https://github.com/drhelius/Gearboy"
profiled_date: "2026-03-23"
source_commit: "5cb627121bc01e9704545d436f8393453bbc479f"
source_commit: "88226e000896890d5b847f51e7fb9754317ae5f0"
core_version: "3.4.1"
display_name: "Nintendo - Game Boy / Color (Gearboy)"
cores:
@@ -27,7 +27,7 @@ files:
required: false
hle_fallback: true
validation: [size]
source_ref: "platforms/libretro/libretro.cpp:828, platforms/libretro/libretro.cpp:359, platforms/libretro/libretro.cpp:359"
source_ref: "platforms/libretro/libretro.cpp:833, platforms/libretro/libretro.cpp:365, platforms/libretro/libretro.cpp:365"
- name: cgb_boot.bin
description: Game Boy Color bootrom
@@ -35,4 +35,4 @@ files:
required: false
hle_fallback: true
validation: [size]
source_ref: "platforms/libretro/libretro.cpp:829, platforms/libretro/libretro.cpp:360, platforms/libretro/libretro.cpp:360"
source_ref: "platforms/libretro/libretro.cpp:834, platforms/libretro/libretro.cpp:366, platforms/libretro/libretro.cpp:366"
+4 -4
View File
@@ -18,13 +18,13 @@ notes: |
Without it, the core renders a static placeholder image (kNoBiosImage from
no_bios.h) and games do not execute.
The libretro wrapper (libretro.cpp:293-306) tries "colecovision.rom" first,
The libretro wrapper (platforms/libretro/libretro.cpp:295-308) tries "colecovision.rom" first,
then falls back to "coleco.rom". Both resolve to the same LoadBios() call
in Memory.cpp:228-259 which validates size == 0x2000 (8192 bytes) only.
in src/Memory.cpp:256-287 which validates size == 0x2000 (8192 bytes) only.
No hash check is performed.
On reset, BIOS byte at offset 0x69 is patched for region selection:
0x3C for NTSC, 0x32 for PAL (Memory.cpp:178-181).
0x3C for NTSC, 0x32 for PAL (src/Memory.cpp:206-209).
SGM (Super Game Module) expanded RAM requires no additional BIOS files.
@@ -35,4 +35,4 @@ files:
required: true
size: 8192
validation: [size]
source_ref: "platforms/libretro/libretro.cpp:446-468, src/Memory.cpp:202-255"
source_ref: "platforms/libretro/libretro.cpp:448-470, src/Memory.cpp:230-283"
+6 -6
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/drhelius/Geargrafx"
upstream: "https://github.com/drhelius/Geargrafx"
profiled_date: "2026-03-23"
source_commit: "b6a81478b54e27af7076b57fd6a8974a1c3f7137"
source_commit: "0a68ce8f6d3d787e84d7bc9efa30e982fa3d4c77"
core_version: "1.6.0"
display_name: "NEC - PC Engine / SuperGrafx / CD (Geargrafx)"
cores:
@@ -41,7 +41,7 @@ files:
size: 262144
required: true
validation: [size, crc32]
source_ref: "platforms/libretro/libretro.cpp:581, platforms/libretro/libretro.cpp:599-601, src/media.cpp:339-436, src/defines.h:52, src/game_db.h:50, src/game_db.h:52"
source_ref: "platforms/libretro/libretro.cpp:632, platforms/libretro/libretro.cpp:647-649, src/media.cpp:435-532, src/defines.h:52, src/game_db.h:50, src/game_db.h:54"
note: >
Default BIOS for CD-ROM games (cdrom_bios Auto or System Card 3).
game_db.h recognizes Japan (CRC32 6D9A73EF) and USA (CRC32 2B5B75FE)
@@ -52,7 +52,7 @@ files:
size: 262144
required: false
validation: [size, crc32]
source_ref: "platforms/libretro/libretro.cpp:580, platforms/libretro/libretro.cpp:590-591, src/media.cpp:339-436, src/game_db.h:48-49, src/game_db.h:51"
source_ref: "platforms/libretro/libretro.cpp:631, platforms/libretro/libretro.cpp:641-642, src/media.cpp:435-532, src/game_db.h:48-49, src/game_db.h:53"
note: >
cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h
recognizes three variants: v2.0 Japan (CRC32 52520BC6), v2.1 Japan
@@ -63,7 +63,7 @@ files:
size: 262144
required: false
validation: [size, crc32]
source_ref: "platforms/libretro/libretro.cpp:579, platforms/libretro/libretro.cpp:587-588, src/media.cpp:339-436, src/game_db.h:47"
source_ref: "platforms/libretro/libretro.cpp:630, platforms/libretro/libretro.cpp:638-639, src/media.cpp:435-532, src/game_db.h:47"
note: >
cdrom_bios = 'System Card 1'. Very early CD-ROM2 games only.
CRC32 3F9F95A4.
@@ -73,9 +73,9 @@ files:
size: 32768
required: false
validation: [size, crc32]
source_ref: "platforms/libretro/libretro.cpp:582, platforms/libretro/libretro.cpp:596-597, platforms/libretro/libretro.cpp:481-482, src/media.cpp:339-436, src/defines.h:53, src/game_db.h:53-54"
source_ref: "platforms/libretro/libretro.cpp:633, platforms/libretro/libretro.cpp:633-634, platforms/libretro/libretro.cpp:535-536, src/media.cpp:435-532, src/defines.h:53, src/game_db.h:55-56"
note: >
Always loaded alongside the selected System Card BIOS (libretro.cpp:618).
Always loaded alongside the selected System Card BIOS (platforms/libretro/libretro.cpp:642).
Required for Game Express CD-ROM titles. game_db.h recognizes Blue Version
(CRC32 51A12D90) and Green Version (CRC32 16AAF05A).
+5 -5
View File
@@ -34,17 +34,17 @@ files:
- name: "bios.sms"
system: sega-mastersystem
required: false
source_ref: "platforms/libretro/libretro.cpp:534, platforms/libretro/libretro.cpp:537 (load_bootroms)"
source_ref: "platforms/libretro/libretro.cpp:568, platforms/libretro/libretro.cpp:571 (load_bootroms)"
- name: "bios.gg"
system: sega-gamegear
required: false
source_ref: "platforms/libretro/libretro.cpp:814, platforms/libretro/libretro.cpp:537 (load_bootroms)"
source_ref: "platforms/libretro/libretro.cpp:858, platforms/libretro/libretro.cpp:571 (load_bootroms)"
platform_details:
mastersystem:
bios_filename: "bios.sms"
source_ref: "src/Memory.cpp:223-228"
source_ref: "src/Memory.cpp:225-230"
note: |
Boot ROM loaded via LoadBootromSMS() -> LoadBootroom(path, false).
Raw binary read, stored in m_pBootromSMS. Bank count computed as
@@ -52,7 +52,7 @@ platform_details:
gamegear:
bios_filename: "bios.gg"
source_ref: "src/Memory.cpp:230-235"
source_ref: "src/Memory.cpp:232-237"
note: |
Boot ROM loaded via LoadBootromGG() -> LoadBootroom(path, true).
Raw binary read, stored in m_pBootromGG. Same bank computation.
@@ -61,5 +61,5 @@ platform_details:
sg1000:
bios_filename: null
note: |
No BIOS support. Memory.cpp:379 returns false from IsBootromEnabled()
No BIOS support. src/Memory.cpp:381 returns false from IsBootromEnabled()
when IsSG1000() or IsGameGearInSMSMode() is true.
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/Genesis-Plus-GX"
upstream: "https://github.com/ekeeke/Genesis-Plus-GX"
profiled_date: "2026-03-23"
source_commit: "84fcf2ec8e6b8d901c2fec55c884f285f93a1679"
source_commit: "a7985a9c4278ac352f8ca7bb4d3cc6b36e9e3e7d"
core_version: "v1.7.4"
display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX)"
cores:
+13 -13
View File
@@ -21,13 +21,13 @@ notes: |
from MAME-format ZIP archives in the system directory.
Cartridge content opens aes.zip (System Type = AES, default) or neogeo.zip
(MVS and Universe BIOS) (libretro/libretro.c:1231-1234). CD content opens
(MVS and Universe BIOS) (libretro/libretro.c:1243-1246). CD content opens
neocd.zip (Front/Top Loader) or neocdz.zip (CDZ, default, and CD Universe
BIOS) (libretro/libretro.c:1222-1230); Front/Top Loader additionally reads
BIOS) (libretro/libretro.c:1234-1242); Front/Top Loader additionally reads
000-lo.lo from neocdz.zip, so neocdz.zip is needed in every CD mode
(libretro/libretro.c:1241-1248). The Irritating Maze in MVS mode loads
(libretro/libretro.c:1253-1260). The Irritating Maze in MVS mode loads
236-bios.sp1 from irrmaze.zip for trackball support; without it the game
runs but the trackball does not work (libretro/libretro.c:1300-1311).
runs but the trackball does not work (libretro/libretro.c:1312-1323).
Inside the opened archive, members are extracted by exact filename
(src/geo.c:174-271). One 68K BIOS is selected by system type and region
@@ -50,9 +50,9 @@ notes: |
The core performs no hash or size validation on System ROMs. CD BIOS family
detection and the optional CD speed hack patches use byte patterns and
apply only when the 68K BIOS is at least 512 KiB (src/geo_cd.c:1837-1859,
apply only when the 68K BIOS is at least 512 KiB (src/geo_cd.c:1888-1910,
1904-1924). Upstream declares the expected archive MD5s through the Jolly
Good API BIOS list (jg.c:212-223); the md5 fields on the archives below
Good API BIOS list (jg.c:220-231); the md5 fields on the archives below
are copied from it.
files:
@@ -64,35 +64,35 @@ files:
required: true
md5: "ad9585c72130c56f04ae26aae87c289d"
note: "Neo Geo AES System ROMs. Opened when System Type is AES (default)."
source_ref: "libretro/libretro.c:1231-1234, jg.c:213-214"
source_ref: "libretro/libretro.c:1243-1246, jg.c:221-222"
- name: "neogeo.zip"
system: snk-neogeo-mvs
required: true
md5: "00dad01abdbf8ea9e79ad2fe11bdb182"
note: "Neo Geo MVS System ROMs. Opened for MVS and Universe BIOS modes."
source_ref: "libretro/libretro.c:1231-1234, jg.c:215-216"
source_ref: "libretro/libretro.c:1243-1246, jg.c:223-224"
- name: "neocd.zip"
system: snk-neogeo-cd
required: false
md5: "006a881532f2caffc3fe9fb5593f2ed5"
note: "Neo Geo CD Front/Top Loader System ROMs. Opened only when CD System is front or top loader."
source_ref: "libretro/libretro.c:1222-1229, jg.c:217-218"
source_ref: "libretro/libretro.c:1234-1241, jg.c:225-226"
- name: "neocdz.zip"
system: snk-neogeo-cd
required: true
md5: "b31a246b69493c35194fe0bac120dc37"
note: "Neo Geo CDZ System ROMs. Opened for CDZ (default) and CD Universe BIOS; also supplies 000-lo.lo to Front/Top Loader mode."
source_ref: "libretro/libretro.c:1222-1248, jg.c:219-220"
source_ref: "libretro/libretro.c:1234-1260, jg.c:227-228"
- name: "irrmaze.zip"
system: snk-neogeo-mvs
required: false
md5: "0e369df30a70e45547cef9e4078dc511"
note: "The Irritating Maze auxiliary BIOS. Loaded in MVS mode for trackball support; on failure the game runs without trackball."
source_ref: "libretro/libretro.c:1300-1311, jg.c:221-222"
source_ref: "libretro/libretro.c:1312-1323, jg.c:229-230"
# -----------------------------------------------------------
# aes.zip members
@@ -249,7 +249,7 @@ files:
size: 131072
crc32: "5a86cff2"
note: "Zoom lookup table. Read from neocdz.zip in every CD mode, including Front/Top Loader."
source_ref: "src/geo.c:234-243, 273-285, libretro/libretro.c:1241-1248"
source_ref: "src/geo.c:234-243, 273-285, libretro/libretro.c:1253-1260"
# -----------------------------------------------------------
# irrmaze.zip member
@@ -259,4 +259,4 @@ files:
system: snk-neogeo-mvs
required: false
note: "The Irritating Maze auxiliary 68K BIOS, replaces the MVS BIOS to enable trackball input."
source_ref: "src/geo.c:286-299, libretro/libretro.c:1300-1311"
source_ref: "src/geo.c:286-299, libretro/libretro.c:1312-1323"
+11 -11
View File
@@ -19,32 +19,32 @@ notes: |
with nothing supplied.
Supercharger emulation is the only path that reads a BIOS. NewSupercharger
branches three ways (supercharger.go:93-119). A tape held as WAV or MP3 sets
branches three ways (hardware/memory/cartridge/supercharger/supercharger.go:93-119). A tape held as WAV or MP3 sets
Loader.IsSoundData and calls loadBIOS, and the error is returned, so the
cartridge fails to attach without the file. A demo unit image calls loadBIOS
and substitutes fastloadOnlyBIOS() on failure. Everything else, including the
usual Supercharger BIN, takes fastloadOnlyBIOS() without ever looking for the
file: a 2048 byte stub holding a touch of the tape load register and the CPU
jump table (bios.go:151-166).
jump table (hardware/memory/cartridge/supercharger/bios.go:151-166).
loadBIOS reads the current working directory, then the directory holding the
tape or BIN, then the configuration directory (bios.go:53-116). Each candidate
tape or BIN, then the configuration directory (hardware/memory/cartridge/supercharger/bios.go:53-116). Each candidate
name is tried in turn and the content is gated on MD5 before the caller checks
the 2048 byte length, so a file under the right name with the wrong content is
refused. ReqSpec selects the PAL table and the PAL hash (bios.go:56-59);
refused. ReqSpec selects the PAL table and the PAL hash (hardware/memory/cartridge/supercharger/bios.go:56-59);
ReqSpec comes from the television specification, the stella.pro entry or the
filename (cartridgeloader/loader.go:194-201).
The demo unit is recognised by MD5 of the 256 bytes at 0x300 of the loaded
image (demounit.go:58,78). When that image carries more than 2048 bytes it
image (hardware/memory/cartridge/supercharger/demounit.go:58,78). When that image carries more than 2048 bytes it
holds the Schweber chip and the carousel together; otherwise the eight ROMs
are read from the directory of the loaded file (demounit_controller.go:
178-200). A read error or a length other than 8192 logs and returns nil, and
the peripheral is left unplugged.
stella.pro is Stella's cartridge properties database, read from the
configuration directory (properties.go:28,48-58). It is loaded by
NewDebugger (debugger.go:356), which drives play as well as debug
configuration directory (properties/properties.go:28,48-58). It is loaded by
NewDebugger (debugger/debugger.go:356), which drives play as well as debug
(gopher2600.go:261,307,326), so it applies to the plain `gopher2600 <rom>`
invocation. A missing file is logged and start-up continues; the ROM selector
then falls back to the filename and no television specification is inferred
@@ -52,10 +52,10 @@ notes: |
The ROM selector also reads a Named_Boxarts directory from the configuration
directory, listing it at start-up and fuzzy matching the cartridge name
against the entries before reading one image (win_rom_select.go:92,127-138,
against the entries before reading one image (gui/sdlimgui/win_rom_select.go:92,127-138,
678-689). It holds the box art of the libretro-thumbnails Atari 2600 set,
pinned upstream at commit 4ea759821724d6c7bcf2f46020d79fc4270ed2f6
(win_rom_select.go:91). Its content is whatever the user copies in and no
(gui/sdlimgui/win_rom_select.go:91). Its content is whatever the user copies in and no
name is fixed by the code, so it carries no file entry here.
Fonts, shaders, bevels, the CPU instruction table and the Movie Cart core are
@@ -65,7 +65,7 @@ notes: |
elf_nvram, regression, patches and setupDB. ARM map files and DWARF sources
are read from a project build tree beside the ROM. AtariVox speech calls the
festival binary as a process, with the path taken from preferences
(atarivox_preferences.go:51).
(hardware/preferences/atarivox_preferences.go:51).
files:
- name: "Supercharger BIOS.bin"
@@ -107,7 +107,7 @@ files:
Recognised by the MD5 of the 256 bytes at 0x300, so the name is the one the
dump carries rather than one the code fixes. The carousel ROMs are only
read once this image has been accepted.
source_ref: "hardware/memory/cartridge/supercharger/demounit.go:56-78, hardware/memory/cartridge/supercharger/supercharger.go:107,115, hardware/memory/cartridge/fingerprint.go:333"
source_ref: "hardware/memory/cartridge/supercharger/demounit.go:56-78, hardware/memory/cartridge/supercharger/supercharger.go:107, 115, hardware/memory/cartridge/fingerprint.go:346"
- name: "Starpath Demonstration Unit 1P.bin"
system: atari-2600
+3 -3
View File
@@ -48,21 +48,21 @@ notes: |
Everything else under the configuration, data and cache directories is written
by the emulator: config.json and cheats.json (src/ui/config.rs:99-111,134-146),
retroachievements.json (src/lib.rs:209; src/retroachievements.rs:37,61),
ice_config.json from the netplay server response (src/ui/netplay.rs:713-716,
ice_config.json from the netplay server response (src/ui/netplay.rs:715-718,
src/netplay.rs:419), the eeprom, sram, flash, mempak, sdcard and romsave saves
and the savestates (src/ui/storage.rs:212-232; src/savestates.rs:179,236). For
a netplay launch the GUI serialises the cheats to the cache directory, passes
them to a re-exec of itself through the hidden --cheats flag and deletes the
file afterwards (src/ui/gui.rs:583-593,600-615,630; src/lib.rs:141-147).
portable.txt is tested for existence only, to move those three directories
beside the executable (src/ui.rs:164-178).
beside the executable (src/ui.rs:186-200).
Compiled-in data: the cheat database (src/cheats.rs:31), the No-Intro
Nintendo 64 export that names entries in the ROM browser
(src/ui/gui.rs:688-690), the RobotoMono face handed to SDL_ttf from memory
(src/ui/video.rs:109, src/ui/input_profile.rs:99), the parallel-rdp SPIR-V
modules (parallel-rdp/spirv.hpp and parallel-rdp/spirv_crt.hpp, used at
parallel-rdp/interface.cpp:4-5,615) and the Slint translations bundled at
parallel-rdp/interface.cpp:4-5,619) and the Slint translations bundled at
build time (build.rs:11).
files: []
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/gpsp"
upstream: "https://github.com/davidgfnet/gpsp"
profiled_date: "2026-03-23"
source_commit: "5b6e751f4abf368509146cd143c949c1946ac1ae"
source_commit: "8d268a6bb2cd799f8f2791ebb544a7ef550cfc6f"
core_version: "Git"
display_name: "Nintendo - Game Boy Advance (gpSP)"
cores:
+2 -2
View File
@@ -1499,7 +1499,7 @@ files:
required: true
category: bios_zip
system: konami-twinkle
source_ref: "src/mame/konami/twinkle.cpp:1360"
source_ref: "src/mame/konami/twinkle.cpp:1655"
contents:
- name: 863a03.7b
size: 524288
@@ -2121,7 +2121,7 @@ files:
- name: aristmk5.zip
required: true
category: bios_zip
source_ref: "src/mame/acorn/aristmk5.cpp:2631"
source_ref: "src/mame/acorn/aristmk5.cpp:9293"
contents:
- name: setchip v4.04.09.u7
size: 524288
+2 -2
View File
@@ -31,7 +31,7 @@ files:
aliases: [ROM.01, ROM.03, APPLE2GS.ROM, APPLE2GS.ROM2, xgs.rom, XGS.ROM, Rom03gd, 342-0077-b]
required: true
description: "Apple IIGS system ROM"
source_ref: "gsplus/src/config.c:131,403-406,1092-1149"
source_ref: "gsplus/src/config.c:136, gsplus/src/config.c:477-480, gsplus/src/config.c:1260-1317"
note: "Accepted sizes: 32768 (Apple //e), 131072 (ROM 01), 262144 (ROM 03)"
validation: [size]
@@ -42,5 +42,5 @@ files:
size: 256
description: "Disk II controller PROM (slot 6)"
validation: [size]
source_ref: "gsplus/src/config.c:414-415,1168-1220"
source_ref: "gsplus/src/config.c:488-489, gsplus/src/config.c:1336-1388"
note: "Built-in PROM generated from XOR diffs against main ROM"
+3 -3
View File
@@ -4,7 +4,7 @@ core_classification: pure_libretro
source: "https://github.com/libretro/gw-libretro"
upstream: "http://www.madrigaldesign.it/sim/"
profiled_date: "2026-03-25"
source_commit: "435e5cfd4bf6aea03a84259e9b8dba3daf3ff5bd"
source_commit: "91d599b951e7bfe7e040347f58667cba20074adc"
core_version: "Git"
display_name: "Handheld Electronic (GW)"
cores:
@@ -17,11 +17,11 @@ notes: |
source code via pas2lua. Each game is a self-contained .mgw archive (bzip2
compressed tar v7) containing Lua scripts, sprites, and sound data.
retro_get_system_info (libretro.c:187-194) sets valid_extensions to "mgw",
retro_get_system_info (src/libretro.c:187-194) sets valid_extensions to "mgw",
need_fullpath to false, and block_extract to false. The core reads content
entirely from the retro_game_info buffer passed by the frontend.
retro_load_game (libretro.c:256-310) passes the content buffer to
retro_load_game (src/libretro.c:256-310) passes the content buffer to
gwrom_init() which decompresses and parses the tar archive in memory.
gwlua_create() then initializes the Lua VM from the archive entries.
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: embedded_hle
source: "https://github.com/ivanizag/izapple2"
upstream: "https://github.com/ivanizag/izapple2"
profiled_date: "2026-08-08"
source_commit: "01deea8a97b19ac782a1d11fe1e8d07f07b6c835"
source_commit: "1b563d7668b331bc06d6d11c093ee1a14fe242be"
core_version: "v2.4.0"
display_name: "Apple - Apple II (izapple2)"
cores:
+2 -2
View File
@@ -61,7 +61,7 @@ notes: |
the JVM default soundbank in place. VlcDir points at a VLC installation that
vlcj scans for libvlc.
ref: src/media/emulator/media/EmulatorMIDI.java:26-36,
src/main/emulator/ui/swt/Property.java:1864-1905
src/main/emulator/ui/swt/Property.java:1860-1901
files:
- name: M7_EmuSmw7.dll
@@ -190,7 +190,7 @@ files:
validation: [existence]
description: "Device presets: screen sizes, key maps, platform identities"
note: "Devices.load reads the PresetsPath setting, /res/presets.xml by default, as a jar resource and falls back to a disk read when the resource is absent, which is how a user-supplied preset file is picked up."
source_ref: "src/main/emulator/Settings.java:133, src/main/emulator/Devices.java:25-50, src/main/emulator/Emulator.java:641"
source_ref: "src/main/emulator/Settings.java:131, src/main/emulator/Devices.java:25-50, src/main/emulator/Emulator.java:638"
- name: en.txt
system: j2me
+8 -8
View File
@@ -5,7 +5,7 @@ source: "https://git.ryujinx.app/projects/Kenji-NX"
source_branch: libryujinx_bionic
upstream: "https://git.ryujinx.app/projects/Ryubing"
profiled_date: "2026-08-11"
source_commit: "8d7d8f344cb01257c5bc59bb02a74bb89ab9bb5f"
source_commit: "53d32a761e61dc8e9b5c0744199a890fc8d934d5"
core_version: "2.1.0-pr.2"
display_name: "Nintendo - Switch (Kenji-NX)"
cores:
@@ -35,7 +35,7 @@ notes: |
~/.switch fallback that ReloadKeySet consults in UserProfile mode never fires
there. games, profiles and system are created under the root on every start.
ref: src/Ryujinx.Common/Configuration/AppDataManager.cs:11-17,47,50-104,223-230,
src/LibKenjinx/LibKenjinx.cs:54-95,
src/LibKenjinx/LibKenjinx.cs:59-100,
src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/MainActivity.kt:264-298
Firmware is installed rather than placed. ContentManager takes a directory, a
@@ -46,7 +46,7 @@ notes: |
homebrew NRO goes through ProcessLoader without touching the key set, and the
failure is deferred to the first service that needs a system archive.
ref: src/Ryujinx.HLE/FileSystem/ContentManager.cs:431-498,675-749,893-903,
src/LibKenjinx/Android/JniExportedMethods.cs:459-495,
src/LibKenjinx/Android/JniExportedMethods.cs:462-498,
src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs:189-205
Two read paths belong to the desktop build alone, because the Android build
@@ -59,7 +59,7 @@ notes: |
key_retail.bin, while the Android entry buffers the raw tag in
KenjinxAmiiboShim and INfp reads the figure id straight out of offset 0x1DC.
ref: src/LibKenjinx/LibKenjinx.csproj:11-13,
src/LibKenjinx/Android/JniExportedMethods.cs:347-348,1046-1060,
src/LibKenjinx/Android/JniExportedMethods.cs:350-351,1049-1063,
src/LibKenjinx/LibKenjinx.Input.cs:28-39,
src/Ryujinx.HLE/Kenjinx/AmiiboBridge.cs:10-44,
src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/KenjinxAmiiboShim.cs:15-41,
@@ -79,7 +79,7 @@ notes: |
under the Nintendo notice of 2026-02-12, and both the source and the builds
are served by the Forgejo instance, which is where ES-DE points as well.
ref: https://github.com/github/dmca/blob/master/2026/02/2026-02-12-nintendo.md,
tmp/es-de/ANDROID.md:470-474
es-de ANDROID.md:470-474
files:
- name: prod.keys
@@ -142,7 +142,7 @@ files:
of title 0100000000000809. The NCAs are then registered under
bis/system/Contents/registered and read from there, never as loose files.
No digest of the package itself is compared against anything.
source_ref: "src/Ryujinx.HLE/FileSystem/ContentManager.cs:431-498,675-749,751-1045, src/LibKenjinx/Android/JniExportedMethods.cs:459-495, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/SettingsViewModel.kt:308-364"
source_ref: "src/Ryujinx.HLE/FileSystem/ContentManager.cs:431-498, 675-749, 751-1045, src/LibKenjinx/Android/JniExportedMethods.cs:462-498, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/SettingsViewModel.kt:308-364"
- name: key_retail.bin
required: false
@@ -183,7 +183,7 @@ files:
Android slots read the bytes through the content resolver and buffer them
for the NFP service, which takes the figure id from offset 0x1DC without
decrypting anything.
source_ref: "src/Ryujinx.HLE/HOS/Horizon.cs:355-363, src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboBinReader.cs:22-44,151-283, src/LibKenjinx/LibKenjinx.cs:700-729, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/views/GameViews.kt:328-349"
source_ref: "src/Ryujinx.HLE/HOS/Horizon.cs:355-363, src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboBinReader.cs:22-44, 151-283, src/LibKenjinx/LibKenjinx.cs:705-734, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/views/GameViews.kt:328-349"
- name: "<CaCertificateId>.der"
required: false
@@ -211,7 +211,7 @@ files:
because the external filesystem cannot carry an executable mapping, loaded
through the rootless Adreno driver loader, and the resulting handle is
passed to the Vulkan loader. An empty selection uses the system loader.
source_ref: "src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/VulkanDriverViewModel.kt:13-167, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/MainViewModel.kt:202-243, src/LibKenjinx/Android/JniExportedMethods.cs:532-555, src/LibKenjinx/VulkanLoader.cs:27-29"
source_ref: "src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/VulkanDriverViewModel.kt:13-167, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/MainViewModel.kt:202-243, src/LibKenjinx/Android/JniExportedMethods.cs:535-558, src/LibKenjinx/VulkanLoader.cs:27-29"
# System archives read out of the installed firmware, never as loose files.
firmware_titles:
+22 -22
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/yabause"
upstream: "https://github.com/FCare/Kronos"
profiled_date: "2026-03-24"
source_commit: "65af22e96beb6d9b0b9a50a81a39c86a6d604c1c"
source_commit: "8926b0c6c347f8c5c755911ddb0ac695420ffbf8"
core_version: "v2.6.0"
display_name: "Sega - Saturn/ST-V (Kronos)"
cores:
@@ -37,7 +37,7 @@ notes: |
ROM cartridge DB: utils/src/db.c lines 43-45.
Standalone supports MPEG card ROM loading (Video CD card); disabled in
libretro port (mpegpath = NULL in libretro.c:1578).
libretro port (mpegpath = NULL in yabause/src/libretro/libretro.c:1578).
archive_prefix: kronos
@@ -53,7 +53,7 @@ files:
size: 524288
validation: [size]
note: "Primary Saturn BIOS. Any region accepted. Searched in kronos/ subdir first."
source_ref: "libretro.c:1619-1623"
source_ref: "yabause/src/libretro/libretro.c:1619-1623"
# -----------------------------------------------------------
# Saturn BIOS - Japan v1.01 (fallback)
@@ -66,7 +66,7 @@ files:
size: 524288
validation: [size]
note: "Saturn BIOS v1.01 (Japan). Fallback if saturn_bios.bin missing."
source_ref: "libretro.c:1627"
source_ref: "yabause/src/libretro/libretro.c:1627"
# -----------------------------------------------------------
# Saturn BIOS - NA/EU (fallback)
@@ -79,7 +79,7 @@ files:
size: 524288
validation: [size]
note: "Saturn BIOS (NA/EU). Last fallback for Saturn mode."
source_ref: "libretro.c:1631"
source_ref: "yabause/src/libretro/libretro.c:1631"
# -----------------------------------------------------------
# ST-V Arcade BIOS (stvbios.zip) - MAME romset
@@ -88,7 +88,7 @@ files:
system: sega-stv
required: true
note: "MAME-style ZIP containing ST-V region BIOS EPROMs. Searched in kronos/ subdir first."
source_ref: "libretro.c:1608-1617, ctrl/src/stv.c:112-136"
source_ref: "yabause/src/libretro/libretro.c:1608-1617, yabause/src/ctrl/src/stv.c:112-136"
# -----------------------------------------------------------
# ST-V BIOS blobs inside stvbios.zip
@@ -103,7 +103,7 @@ files:
size: 524288
crc32: "f688ae60"
validation: [crc32]
source_ref: "stv.c:120"
source_ref: "yabause/src/ctrl/src/stv.c:120"
- name: "epr-20091.ic8"
archive: stvbios.zip
@@ -113,7 +113,7 @@ files:
size: 524288
crc32: "59ed40f4"
validation: [crc32]
source_ref: "stv.c:121"
source_ref: "yabause/src/ctrl/src/stv.c:121"
- name: "epr-19730.ic8"
archive: stvbios.zip
@@ -123,7 +123,7 @@ files:
size: 524288
crc32: "d0e0889d"
validation: [crc32]
source_ref: "stv.c:122"
source_ref: "yabause/src/ctrl/src/stv.c:122"
- name: "epr-17951a.ic8"
archive: stvbios.zip
@@ -133,7 +133,7 @@ files:
size: 524288
crc32: "2672f9d8"
validation: [crc32]
source_ref: "stv.c:123"
source_ref: "yabause/src/ctrl/src/stv.c:123"
- name: "epr-17740a.ic8"
archive: stvbios.zip
@@ -143,7 +143,7 @@ files:
size: 524288
crc32: "3e23c81f"
validation: [crc32]
source_ref: "stv.c:124"
source_ref: "yabause/src/ctrl/src/stv.c:124"
- name: "epr-17740.ic8"
archive: stvbios.zip
@@ -153,7 +153,7 @@ files:
size: 524288
crc32: "5c5aa63d"
validation: [crc32]
source_ref: "stv.c:125"
source_ref: "yabause/src/ctrl/src/stv.c:125"
# Europe
- name: "epr-17954a.ic8"
@@ -164,7 +164,7 @@ files:
size: 524288
crc32: "f7722da3"
validation: [crc32]
source_ref: "stv.c:126"
source_ref: "yabause/src/ctrl/src/stv.c:126"
# USA
- name: "epr-17952a.ic8"
@@ -175,7 +175,7 @@ files:
size: 524288
crc32: "d1be2adf"
validation: [crc32]
source_ref: "stv.c:127"
source_ref: "yabause/src/ctrl/src/stv.c:127"
- name: "epr-17741a.ic8"
archive: stvbios.zip
@@ -185,7 +185,7 @@ files:
size: 524288
crc32: "4166c663"
validation: [crc32]
source_ref: "stv.c:128"
source_ref: "yabause/src/ctrl/src/stv.c:128"
# Taiwan
- name: "epr-19854.ic8"
@@ -196,7 +196,7 @@ files:
size: 524288
crc32: "e09d1f60"
validation: [crc32]
source_ref: "stv.c:129"
source_ref: "yabause/src/ctrl/src/stv.c:129"
- name: "epr-17953a.ic8"
archive: stvbios.zip
@@ -206,7 +206,7 @@ files:
size: 524288
crc32: "a4c47570"
validation: [crc32]
source_ref: "stv.c:130"
source_ref: "yabause/src/ctrl/src/stv.c:130"
- name: "epr-17742a.ic8"
archive: stvbios.zip
@@ -216,7 +216,7 @@ files:
size: 524288
crc32: "02daf123"
validation: [crc32]
source_ref: "stv.c:131"
source_ref: "yabause/src/ctrl/src/stv.c:131"
# Debug / Dev
- name: "stv110.bin"
@@ -226,7 +226,7 @@ files:
size: 524288
crc32: "3dfeda92"
validation: [crc32]
source_ref: "stv.c:132"
source_ref: "yabause/src/ctrl/src/stv.c:132"
- name: "stv1061.bin"
archive: stvbios.zip
@@ -235,7 +235,7 @@ files:
size: 524288
crc32: "728dbca3"
validation: [crc32]
source_ref: "stv.c:133"
source_ref: "yabause/src/ctrl/src/stv.c:133"
# -----------------------------------------------------------
# ROM Cartridges (game-specific, loaded from system_dir)
@@ -246,7 +246,7 @@ files:
size: 2097152
validation: [size]
note: "ROM cartridge for The King of Fighters '95. Auto-detected via game DB."
source_ref: "utils/src/db.c:43-44, yabause/src/cs0.c:1207-1216"
source_ref: "yabause/src/utils/src/db.c:43-44, yabause/src/cs0.c:1207-1216"
- name: "mpr-19367-mx.ic1"
system: sega-saturn
@@ -254,4 +254,4 @@ files:
size: 2097152
validation: [size]
note: "ROM cartridge for Ultraman: Hikari no Kyojin Densetsu. Auto-detected via game DB."
source_ref: "utils/src/db.c:45, yabause/src/cs0.c:1207-1216"
source_ref: "yabause/src/utils/src/db.c:45, yabause/src/cs0.c:1207-1216"
+3 -3
View File
@@ -24,7 +24,7 @@ notes: |
Startup reads nothing. The two GLSL shaders sit in the tree as
src/lightspark.frag and src/lightspark.vert but the preprocessor pulls them
into string literals, "directly include shader source to avoid filesystem
access" (src/backends/rendering.cpp:1042-1045,1062-1065), which is also how
access" (src/backends/rendering.cpp:1039-1042,1059-1062), which is also how
0.8.7 builds them. The face given to nanoVG for text is Roboto Medium, decoded
at runtime from a base85 array in the binary (src/launcher.cpp:1567,
src/platforms/engineutils.cpp:500-502), and the launcher icon face is embedded
@@ -35,7 +35,7 @@ notes: |
Fonts named by the content go through fontconfig, which answers with whatever
face the host has installed: FcFontMatch then FcPatternGetString(FC_FILE) hands
a path straight to nvgCreateFont (src/backends/cachedsurface.cpp:135-156). No
a path straight to nvgCreateFont (src/backends/cachedsurface.cpp:147-168). No
name, path, size or hash is fixed anywhere, README:27-30 marks fontconfig
itself optional, and an unmatched family leaves nanoVGFontID at -1 and falls
back to the embedded face.
@@ -44,7 +44,7 @@ notes: |
commit and at 0.8.7 (src/parsing/textfile.cpp:74-106). fontPath holds
"TimesNewRoman.ttf" on Windows (src/backends/rendering.cpp:102) but reaches
only cairo_select_font_face, which takes a family name rather than a path, and
only under ENABLE_CAIRO (src/backends/rendering.cpp:1277), left FALSE by
only under ENABLE_CAIRO (src/backends/rendering.cpp:1274), left FALSE by
CMakeLists.txt.
Files the player writes rather than expects: lightspark.conf, an INI carrying
+208 -107
View File
@@ -3,9 +3,9 @@ type: standalone
core_classification: community_fork
source: "https://github.com/linappleii/linapple"
upstream: "https://github.com/AppleWin/AppleWin"
profiled_date: "2026-08-08"
source_commit: "b7a26b46773996130a602b9ac7ac2ebeae5c0b11"
core_version: "2.3.0"
profiled_date: "2026-09-04"
source_commit: "be9d1d2f3e26c1ef1f1bdc13455ea02954cd2109"
core_version: "3.0.0"
display_name: "Apple - Apple II (LinApple)"
cores:
- linapple
@@ -16,45 +16,59 @@ mode: standalone
notes: |
SDL port of AppleWin for Linux. The tree was taken off SourceForge by
maxolasersquad, forked further by several users, and now sits under the
linappleii namespace (README.md:8-22). Machine types are Apple ][,
Apple ][+, Apple //e and Enhanced Apple //e.
linappleii namespace (README.md:8-22). Five frontends build from one core:
sdl1, sdl2, sdl3, tui and headless (src/frontends/).
Every ROM is compiled into the binary as a C string literal. MemInitialize
picks one of four system ROM arrays by g_Apple2Type and copies it into
memrom, splitting off the first 4 KB as internal Cx ROM for the two //e
types (Memory.cpp:1012-1052). The four IDR_APPLE2*_ROM macros defined just
above that switch hold .rom filenames and are never referenced. Peripheral
firmware is embedded the same way and installed by MemInitialize: parallel
printer in slot 1, Super Serial Card in slot 2, mouse in slot 4, Disk II in
slot 6, hard disk in slot 7 (Memory.cpp:1057-1062). Slot 4 is filled only
when g_Slot4 is CT_MouseInterface, slot 7 only when the hard disk is
enabled (Harddisk.cpp:279-281).
Every ROM is still compiled into the binary, but no longer as a hand-written
byte array. scripts/generate_roms.sh turns res/roms/*.rom into EmbeddedRoms.h
and EmbeddedRoms.cpp at build time (CMakeLists.txt:280-297), each image behind
an ENABLE_ROM_* macro. The relocation preserved the bytes: every hash this
profile recorded against the old string literals matches the .rom file that
replaced it.
Character generators are res/charset40*.png, converted to XPM arrays by the
Makefile and included at Video.cpp:43-47. One of five is chosen from the
machine type and g_KeyboardLanguage (Video.cpp:1264-1291). The window icon,
status font and splash screen are XPM arrays as well (asset.cpp:29-31,61-75).
What that macro is set to decides whether a machine model runs at all.
CMakeLists.txt:43-148 leaves the Apple ][, ][+, J-Plus, //e and Enhanced //e
system ROMs ON, along with the Disk II, Super Serial Card, mouse,
Mockingboard, printer and clock firmware. The three clone options are OFF:
ENABLE_ROM_CLONE_BASE64A, ENABLE_ROM_CLONE_PRAVETS and
ENABLE_ROM_CLONE_TK3000E (CMakeLists.txt:81-83). Selecting one of those
machine types on a default build reaches mem_initialize with no rom_data,
which prints the model name and its cmake flag, destroys the context and
returns -1 (src/apple2/Memory.cpp:1252-1261). The message offers two ways
out, and the second is a file: -R, --rom <file> loads a system ROM at
runtime (src/frontends/common/AppArgs.cpp:87).
Master.dsk is the only data file the emulator searches for. Path::FindDataFile
walks ~/.local/share/linapple, the XDG config directory, the executable
directory, the compiled-in ASSET_DIR and the two share paths
(Util_Path.h:43-68). ImageOpen rejects an image that no format detector
claims, and for a .dsk the detector that runs first is DoDetect, which gates
on file size (DiskImage.cpp:424-427,977-1034).
A custom ROM takes precedence over anything embedded. mem_initialize accepts
it at exactly 16384 or 12288 bytes, or larger, taking the trailing 16384 for
the //e-class types and the trailing 12288 otherwise
(src/apple2/Memory.cpp:1165-1186). Below 12288 nothing is selected and the
machine fails to start. No hash or name is checked; the file is whatever the
user points at.
The debugger reads its symbol tables through g_sProgramDir, a buffer declared
empty at Applewin.cpp:87 and never assigned anywhere in the tree, so the
names resolve against the working directory. g_sFileNameSymbols lists nine
tables (Debugger_Symbols.cpp:48-58) and DebugInitialize preloads three with
missing-file reporting suppressed (Debug.cpp:8676-8696); the other six load
from the matching SYM command. A table that is absent leaves the debugger
running without its symbols (Debugger_Symbols.cpp:576-584).
Character generators are res/charset40*.png, converted to XPM by CMake and
included at src/apple2/Video.cpp:37-41. One of five is chosen from the
machine type and the keyboard language (src/apple2/Video.cpp:1242-1266).
The status font is an XPM as well (src/core/Asset.cpp:22,44).
linapple.conf carries preferences only, and is searched over ./, the XDG
config and data directories, every $XDG_CONFIG_DIRS entry and /etc
(Applewin.cpp:803-815). Each accessor returns a compiled-in default when a
key is missing (Registry.cpp:87-116), and Configuration::Save is compiled
out unless REGISTRY_WRITEABLE is defined (Registry.cpp:63-85).
Master.dsk is inserted into slot 6 drive 1 at startup. asset_find_master_disk
resolves it through Path::find_data_file (src/core/Asset.cpp:80-93), which
walks the user data and config directories, the executable directory and its
res/ neighbours, the share and etc prefixes, the compiled-in SOURCE_RES_DIR,
ASSET_DIR, SYSCONF_DIR and SYS_DIR, then every XDG_CONFIG_DIRS entry
(src/core/Util_Path.h:86-130). The same search serves icon.bmp.
The debugger reads its symbol tables through g_state.program_dir, declared at
src/core/LinAppleCore.h:159 and read in four places without ever being
assigned, so the names resolve against the working directory.
g_file_name_symbols lists nine tables (src/Debugger/Debugger_Symbols.cpp:64-74)
and CmdSymbolsLoad preloads a table when the debugger calls it with no
arguments (src/Debugger/Debugger_Symbols.cpp:664-681). ParseSymbolTable opens
the file with fopen and a missing one leaves the debugger running without its
symbols (src/Debugger/Debugger_Symbols.cpp:524).
linapple.conf carries preferences only (src/core/Registry.cpp,
src/frontends/common/AppEnvironment.cpp). Each accessor returns a compiled-in
default when a key is missing.
files:
- name: Master.dsk
@@ -63,120 +77,218 @@ files:
min_size: 143105
max_size: 143364
validation: [size]
source_ref: "src/asset.cpp:33, src/asset.cpp:101-128, src/Applewin.cpp:626-633, src/DiskImage.cpp:424-427"
source_ref: "src/core/Asset.cpp:25,80-93,96-99"
note: >
Inserted only when the Slot 6 Autoload preference is off; when it is on,
the two configured disk images are loaded instead. Asset_FindMasterDisk
prints a warning and returns 255 when no search path holds the file, and
the emulator starts with an empty drive. No hash or content check is
performed. DoDetect also accepts the discrete sizes 143403 and 143488 for
DOS-order images. LinApple and Batocera ship different images under this
name, both 143360 bytes.
asset_find_master_disk warns and returns non-zero when no search path
holds the file, and the emulator starts with an empty drive. No hash or
content check is performed. LinApple and Batocera ship different images
under this name, both 143360 bytes.
- name: icon.bmp
required: false
description: "Window icon read from disk by the SDL frontends"
size: 2102
md5: be7a389c5aa678f5e6ce4748593b0a29
sha1: 5aee3a718f3d541122b61b9b8203e8a28db97a34
source_ref: "src/frontends/sdl2/SDL_Asset.cpp:10-25,34-40"
note: >
asset_load_bmp resolves the name through Path::find_data_file, prints a
warning to stderr when no search path holds it and returns nullptr. The
sdl1 and sdl2 frontends load it; sdl3 declares the same helper. Absence
costs the window its icon and nothing else.
- name: APPLE2E.SYM
required: false
description: "Debugger symbol table for the main ROM"
source_ref: "src/Debugger/Debugger_Symbols.cpp:49, src/Debugger/Debugger_Symbols.cpp:553-584, src/Debugger/Debugger_Symbols.cpp:751-767, src/Debugger/Debug.cpp:8679-8680"
source_ref: "src/Debugger/Debugger_Symbols.cpp:64-74,664-681"
note: >
Preloaded into the Main table when the debugger initialises. Parsed as
text lines of address and symbol name, with no size or hash check.
Preloaded into the Main table when the debugger calls CmdSymbolsLoad with
no arguments. Parsed as text lines of address and symbol name, with no
size or hash check.
- name: A2_BASIC.SYM
required: false
description: "Debugger symbol table for Applesoft BASIC"
source_ref: "src/Debugger/Debugger_Symbols.cpp:50, src/Debugger/Debugger_Symbols.cpp:553-584, src/Debugger/Debugger_Symbols.cpp:751-767, src/Debugger/Debug.cpp:8682-8683"
source_ref: "src/Debugger/Debugger_Symbols.cpp:64-74,664-681"
note: >
Preloaded into the Basic table when the debugger initialises. Parsed as
text lines of address and symbol name, with no size or hash check.
Preloaded into the Basic table when the debugger calls CmdSymbolsLoad with
no arguments. Parsed as text lines of address and symbol name, with no
size or hash check.
# System ROMs the default build leaves out. ENABLE_ROM_CLONE_BASE64A,
# ENABLE_ROM_CLONE_PRAVETS and ENABLE_ROM_CLONE_TK3000E are OFF in
# CMakeLists.txt:81-83, so these machine types refuse to start unless the
# user passes the image with --rom. The names are the ones upstream gives
# the images in res/roms; the option takes a path and checks no name.
- name: Base64A.rom
required: false
description: "Copam Base 64A clone system ROM, supplied with --rom"
min_size: 12288
validation: [size]
size: 49152
md5: 352fdbcae14c6a8c0398822c7a273309
sha1: f1c779af480b5bda2bdd03950c1201a5c5143bea
source_ref: "CMakeLists.txt:81,85-89; src/apple2/Memory.cpp:96-97,1165-1186,1252-1261"
note: >
Larger than a system ROM: mem_initialize takes the trailing 12288 bytes
for this machine type.
- name: PRAVETS82.ROM
required: false
description: "Pravets 82 clone system ROM, supplied with --rom"
min_size: 12288
validation: [size]
size: 12288
md5: c619b7edfcf021f3b8fd20d9386676ba
sha1: 8bd7ced83e209a15e9b19a05a5ef4b8e996dc1a5
source_ref: "CMakeLists.txt:82,91-95; src/apple2/Memory.cpp:98-99,1165-1186,1252-1261"
- name: PRAVETS8M.ROM
required: false
description: "Pravets 8M clone system ROM, supplied with --rom"
min_size: 12288
validation: [size]
size: 12288
md5: 76c79535f7cf77973e2c711aa977a124
sha1: f1b4ff018acf95f3355f0d575b66a188d728b687
source_ref: "CMakeLists.txt:82,91-95; src/apple2/Memory.cpp:100-101,1165-1186,1252-1261"
- name: PRAVETS8C.ROM
required: false
description: "Pravets 8C clone system ROM, supplied with --rom"
min_size: 12288
validation: [size]
size: 16384
md5: 1896d7b98dd940c89f7c8ea899b71006
sha1: c976fe56e57706c161f513a82ba3e0d8cda83904
source_ref: "CMakeLists.txt:82,91-95; src/apple2/Memory.cpp:102-103,1165-1186,1252-1261"
note: >
A //e-class type: mem_initialize takes the trailing 16384 bytes when the
file is larger.
- name: TK3000e.rom
required: false
description: "Microdigital TK-3000 //e clone system ROM, supplied with --rom"
min_size: 12288
validation: [size]
size: 16384
md5: 8d84b614b545d4eec8799d3f325332cb
sha1: f163e5753c18ff0e812a448e8da406f102600edf
source_ref: "CMakeLists.txt:83,97-101; src/apple2/Memory.cpp:104-105,1165-1186,1252-1261"
note: >
A //e-class type: mem_initialize takes the trailing 16384 bytes when the
file is larger.
analysis:
embedded_roms:
mechanism: "C string literals compiled into the binary, installed with memcpy"
extraction: "hashes computed from the decoded hex-escape literals"
mechanism: >
res/roms/*.rom compiled into EmbeddedRoms.cpp by scripts/generate_roms.sh
at build time, each behind an ENABLE_ROM_* macro
source_ref: "CMakeLists.txt:43-148,280-297; scripts/generate_roms.sh"
extraction: "hashes computed from the res/roms images the generator reads"
system_roms:
- symbol: Apple2_rom
- symbol: g_rom_apple2
machine: "Apple ]["
machine_type: A2TYPE_APPLE2
source_ref: "inc/resource.h:3; Memory.cpp:1015-1018"
image: res/roms/Apple2.rom
cmake_option: ENABLE_ROM_APPLE2
default: on
source_ref: "src/apple2/Memory.cpp:1189-1193"
size: 12288
md5: 3c406514b9806a7c57ee65fb0b0c39b4
sha1: 09288be705464b608ff190519ab008d3dfcd1b05
- symbol: Apple2plus_rom
- symbol: g_rom_apple2_plus
machine: "Apple ][+"
machine_type: A2TYPE_APPLE2PLUS
source_ref: "inc/resource.h:774; Memory.cpp:1019-1022"
image: res/roms/Apple2_Plus.rom
cmake_option: ENABLE_ROM_APPLE2PLUS
default: on
source_ref: "src/apple2/Memory.cpp:1195-1199"
size: 12288
md5: 572b3005a4fa49bc54917b069b82c1ab
sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7
- symbol: Apple2e_rom
machine: "Apple //e"
- symbol: g_rom_apple2_jplus
machine: "Apple ][ J-Plus"
machine_type: A2TYPE_APPLE2JPLUS
image: res/roms/Apple2_JPlus.rom
cmake_option: ENABLE_ROM_APPLE2_JPLUS
default: on
source_ref: "src/apple2/Memory.cpp:1201-1205"
size: 12288
md5: f3e8237eca3809bec2a42b984a1332a8
sha1: ad200b3263d08e7235d0871c8595963a07adc905
- symbol: g_rom_apple2e
machine: "Apple //e Unenhanced"
machine_type: A2TYPE_APPLE2E
source_ref: "inc/resource.h:1545; Memory.cpp:1023-1026"
image: res/roms/Apple2e.rom
cmake_option: ENABLE_ROM_APPLE2E
default: on
source_ref: "src/apple2/Memory.cpp:1207-1211"
size: 16384
md5: 346bc782c6a08a531c460e33bc03daf4
sha1: 61fa9254628e5bb7236fb474006116d67684d747
note: "First 4 KB loaded as internal Cx ROM, remaining 12 KB at $D000"
- symbol: Apple2eEnhanced_rom
machine: "Enhanced Apple //e"
machine_type: A2TYPE_APPLE2EEHANCED
source_ref: "inc/resource.h:2573; Memory.cpp:1027-1030"
- symbol: g_rom_apple2e_enhanced
machine: "Apple //e Enhanced"
machine_type: A2TYPE_APPLE2EENHANCED
image: res/roms/Apple2e_Enhanced.rom
cmake_option: ENABLE_ROM_APPLE2ENHANCED
default: on
source_ref: "src/apple2/Memory.cpp:1213-1217"
size: 16384
md5: 38063e08c778503fc03ecebb979769e9
sha1: b8ea90abe135a0031065e01697c4a3a20d51198b
note: "First 4 KB loaded as internal Cx ROM, remaining 12 KB at $D000"
peripheral_firmware:
- symbol: Parallel_bin
device: "Parallel printer card"
- device: "Parallel printer card"
slot: 1
source_ref: "src/ParallelPrinter.cpp:33,61-65"
image: res/roms/Parallel.rom
cmake_option: ENABLE_ROM_PRINTER
default: on
source_ref: "CMakeLists.txt:134,136-140"
size: 256
md5: 5902996f16dc78fc013f6e1db14805b3
sha1: c75c751589cbcc1ad4ab4f63676af7abadd86f5b
- symbol: SSC_rom
device: "Super Serial Card"
- device: "Super Serial Card"
slot: 2
source_ref: "src/SerialComms.cpp:53,774-794"
image: res/roms/SSC.rom
cmake_option: ENABLE_ROM_SSC
default: on
source_ref: "CMakeLists.txt:105,112-116"
size: 2048
md5: 67c0d61ab0911183faf05270f881a97e
sha1: 6dab633470c6bc4cb3e81d09fda46597caf8ee57
note: "Slot firmware taken from offset 0x700, full 2 KB kept as expansion ROM"
- symbol: MouseInterface_rom
device: "Mouse interface card"
- device: "Mouse interface card"
slot: 4
source_ref: "src/MouseInterface.cpp:39,207-224"
image: res/roms/MouseInterface.rom
cmake_option: ENABLE_ROM_MOUSE
default: on
source_ref: "CMakeLists.txt:119,122-126"
size: 2048
md5: 22563ab338024dac7b03510371d49c57
sha1: 3a9d881a8a8d30f55b9719aceebbcf717f829d6f
note: "Installed only when g_Slot4 is CT_MouseInterface"
- symbol: Disk2_rom
device: "Disk II controller, 16 sector"
- device: "Disk II controller, 16 sector"
slot: 6
source_ref: "src/Disk.cpp:44,832-846"
image: res/roms/DISK2.rom
cmake_option: ENABLE_ROM_DISK2
default: on
source_ref: "CMakeLists.txt:104,107-111"
size: 256
md5: 2020aa1413ff77fe29353f3ee72dc295
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
note: "Three bytes at $C64C are patched after the copy to drop a wait routine"
- symbol: Hddrvr_dat
device: "Hard disk controller"
slot: 7
source_ref: "src/Harddisk.cpp:108,279-288"
size: 256
md5: 9e5b56c2daf2a10bd8fd76db60273e08
sha1: b2430836d5fedb11ae9a680f14dedef0d41ed92e
note: "Installed only when the hard disk is enabled. Differs from the firmware carried by current AppleWin"
character_generators:
mechanism: "PNG converted to XPM by the Makefile, included at Video.cpp:43-47"
selection: "machine type, then g_KeyboardLanguage (Video.cpp:1264-1291)"
mechanism: "PNG converted to XPM by CMake, included at src/apple2/Video.cpp:37-41"
selection: "machine type, then keyboard language (src/apple2/Video.cpp:1242-1266)"
accepted_geometry: "128x128, or 128x256 for the Euro ROMs carrying a second language"
images:
- filename: charset40.png
@@ -206,8 +318,8 @@ analysis:
sha1: f86bd5238604247e04d616850f244b489daef18d
symbol_tables:
source_ref: "src/Debugger/Debugger_Symbols.cpp:48-58"
lookup: "g_sProgramDir + filename, and g_sProgramDir is never assigned"
source_ref: "src/Debugger/Debugger_Symbols.cpp:64-74"
lookup: "g_state.program_dir + filename, and g_state.program_dir is never assigned"
preloaded_at_init:
- APPLE2E.SYM
- A2_BASIC.SYM
@@ -220,17 +332,8 @@ analysis:
- A2_DOS33.SYM
- A2_PRODOS.SYM
note: >
Only APPLE2E.SYM and A2_BASIC.SYM are distributed with the emulator and
copied to the build output by the Makefile (:98-99,205-206). The user
slots and the remaining tables have no shipped counterpart.
debugger_scripts:
- filename: DebuggerAutoRun.txt
source_ref: "src/Debugger/Debug.cpp:8745-8755"
note: >
Run once through CmdOutputRun when the debugger first initialises, with
g_bReportMissingScripts cleared so absence is silent. Holds debugger
commands written by the user and has no counterpart in the source tree.
Only APPLE2E.SYM and A2_BASIC.SYM are distributed with the emulator, in
res/. The user slots and the remaining tables have no shipped counterpart.
generated_files:
written_only:
@@ -248,8 +351,6 @@ analysis:
unused_resources:
- filename: font.bmp
reason: "Asset_LoadBMP (asset.cpp:37-51) has no call sites and is not declared in asset.h"
- filename: icon.bmp
reason: "Asset_LoadBMP (asset.cpp:37-51) has no call sites and is not declared in asset.h"
reason: "shipped in res/ and named by no source file at this revision"
- filename: fixedsys-excelsior-regular.ttf
reason: "no TTF symbol in the tree and no SDL_ttf in the Makefile link line"
reason: "shipped in res/ and named by no source file at this revision"
+3 -3
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/timoinutilis/lowres-nx"
upstream: "https://github.com/timoinutilis/lowres-nx"
profiled_date: "2026-03-25"
source_commit: "85c80181d26bb5c2147ebc76bfc48bce9f8d73a8"
source_commit: "35adc1a215e975be964b2ef4b652117acd7beba1"
core_version: "v1.2"
display_name: "LowRes NX"
cores:
@@ -19,8 +19,8 @@ notes: |
the same repository.
retro_load_game() copies the .nx source code into memory
(libretro_main.c:490-493) and compiles it with the built-in interpreter.
The boot intro is a string constant embedded in boot_intro.c:26. Default
(libretro/libretro_main.c:490-493) and compiles it with the built-in interpreter.
The boot intro is a string constant embedded in core/boot_intro.c:26. Default
characters and charsets are compiled-in C arrays. The core never calls
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No BIOS, firmware, or external
files required.
+4 -4
View File
@@ -9,7 +9,7 @@ bios_mode: agnostic
source: "https://github.com/libretro/ps2"
upstream: "https://github.com/PCSX2/pcsx2"
profiled_date: "2026-03-25"
source_commit: "60c9c5793efc46ddca70736f30f639a1d22674b8"
source_commit: "0e9057b73bd128a775aa9e59310d68692838e96c"
core_version: "Git"
display_name: "Sony - PlayStation 2 (LRPS2)"
cores: [lrps2, pcsx2]
@@ -89,7 +89,7 @@ files:
path: "pcsx2/resources/GameIndex.yaml"
required: false
description: "game compatibility database"
source_ref: "pcsx2/GameDatabase.cpp:47, pcsx2/GameDatabase.cpp:904"
source_ref: "pcsx2/GameDatabase.cpp:48, pcsx2/GameDatabase.cpp:981"
note: >
YAML database of per-game patches, settings overrides, and compatibility fixes.
OSD warning shown if missing. Some games may not boot or have issues without it.
@@ -98,7 +98,7 @@ files:
path: "pcsx2/resources/cheats_ws.zip"
required: false
description: "widescreen patches archive"
source_ref: "pcsx2/VMManager.cpp:357-370"
source_ref: "pcsx2/VMManager.cpp:375-388"
note: >
ZIP archive of per-game widescreen (16:9) patches in pnach format.
Only loaded when widescreen patches are enabled via core options.
@@ -108,7 +108,7 @@ files:
path: "pcsx2/resources/cheats_ni.zip"
required: false
description: "no-interlacing patches archive"
source_ref: "pcsx2/VMManager.cpp:392-405"
source_ref: "pcsx2/VMManager.cpp:410-423"
note: >
ZIP archive of per-game no-interlacing patches in pnach format.
Only loaded when no-interlacing patches are enabled via core options.
+6 -1
View File
@@ -17,9 +17,14 @@ notes: |
standalone upstream.
retro_load_game() calls lutro_load(info->path) to load the game
directory or archive (libretro.c:216). The core exposes
directory or archive (libretro.c:241). The core exposes
love.filesystem.getAppdataDirectory to games as the system_dir
(filesystem.c:296) but does not load any files from it itself.
No BIOS, firmware, or system files required.
exclusion_note: >
The system directory is not read by the core but handed to the Lua game
through fs_getAppdataDirectory, so whatever is loaded from it is the game's
own content, not a file this core names (filesystem.c:291-303).
files: []
+70 -70
View File
@@ -269,7 +269,7 @@ files:
required: true
category: bios_zip
system: igs-pgm
source_ref: "src/mame/igs/pgm.cpp:5545"
source_ref: "src/mame/igs/pgm.cpp:5519"
contents:
- name: pgm_p02s.u20
size: 131072
@@ -552,7 +552,7 @@ files:
required: true
category: bios_zip
system: sammy-atomiswave
source_ref: "src/mame/sega/dc_atomiswave.cpp:1519"
source_ref: "src/mame/sega/dc_atomiswave.cpp:1480"
contents:
- name: bios0.ic23
size: 131072
@@ -689,7 +689,7 @@ files:
required: true
category: bios_zip
system: sega-stv
source_ref: "src/mame/sega/stv.cpp:4068"
source_ref: "src/mame/sega/stv.cpp:3949"
contents:
- name: epr-23603.ic8
size: 524288
@@ -907,7 +907,7 @@ files:
required: true
category: bios_zip
system: sega-triforce
source_ref: "src/mame/sega/triforce.cpp:1310"
source_ref: "src/mame/sega/triforce.cpp:1304"
contents:
- name: triforce_bootrom.bin
size: 2097152
@@ -917,7 +917,7 @@ files:
- name: shtzone.zip
required: true
category: bios_zip
source_ref: "src/mame/sega/shtzone.cpp:376"
source_ref: "src/mame/sega/shtzone.cpp:378"
contents:
- name: epr10894a.20
size: 16384
@@ -927,7 +927,7 @@ files:
- name: sammymdl.zip
required: true
category: bios_zip
source_ref: "src/mame/sigma/sammymdl.cpp:1025"
source_ref: "src/mame/sigma/sammymdl.cpp:1027"
contents:
- name: vm1211l01.u2
description: IPL Ver. 5.0
@@ -950,7 +950,7 @@ files:
required: true
category: bios_zip
system: sega-megaplay
source_ref: "src/mame/sega/megaplay.cpp:1018"
source_ref: "src/mame/sega/megaplay.cpp:1016"
contents:
- name: ep15294.ic2
size: 131072
@@ -990,7 +990,7 @@ files:
required: true
category: bios_zip
system: sega-megatech
source_ref: "src/mame/sega/megatech.cpp:1430"
source_ref: "src/mame/sega/megatech.cpp:1442"
contents:
- name: epr-12664.20
description: Ver 1
@@ -1226,7 +1226,7 @@ files:
required: true
category: bios_zip
system: nintendo-playch10
source_ref: "src/mame/nintendo/playch10.cpp:2981"
source_ref: "src/mame/nintendo/playch10.cpp:2982"
contents:
- name: pch1-c__8t_e-2.8t
size: 16384
@@ -1402,7 +1402,7 @@ files:
required: true
category: bios_zip
system: commodore-cubo
source_ref: "src/mame/amiga/cubo.cpp:1435"
source_ref: "src/mame/amiga/cubo.cpp:1433"
contents:
- name: 391640-03.u6a
size: 1048576
@@ -1436,7 +1436,7 @@ files:
required: true
category: bios_zip
system: namco-system573
source_ref: "src/mame/konami/ksys573.cpp:6415"
source_ref: "src/mame/konami/ksys573.cpp:6289"
contents:
- name: 700a01.22g
description: Standard
@@ -1473,7 +1473,7 @@ files:
- name: konamigx.zip
required: true
category: bios_zip
source_ref: "src/mame/konami/konamigx.cpp:4191"
source_ref: "src/mame/konami/konamigx.cpp:4193"
contents:
- name: 300a01.34k
size: 131072
@@ -1484,7 +1484,7 @@ files:
required: true
category: bios_zip
system: konami-gv
source_ref: "src/mame/konami/konamigv.cpp:1447"
source_ref: "src/mame/konami/konamigv.cpp:1444"
contents:
- name: 999a01.7e
size: 524288
@@ -1494,7 +1494,7 @@ files:
- name: kviper.zip
required: true
category: bios_zip
source_ref: "src/mame/konami/viper.cpp:3213"
source_ref: "src/mame/konami/viper.cpp:3267"
contents:
- name: 941b01.u25
size: 262144
@@ -1513,12 +1513,12 @@ files:
required: true
category: bios_zip
system: konami-twinkle
source_ref: "src/mame/konami/twinkle.cpp:1636"
source_ref: "src/mame/konami/twinkle.cpp:1655"
- name: bubsys.zip
required: true
category: bios_zip
source_ref: "src/mame/konami/nemesis.cpp:3140"
source_ref: "src/mame/konami/nemesis.cpp:3246"
contents:
- name: boot.bin
size: 480
@@ -1540,7 +1540,7 @@ files:
- name: konendev.zip
required: true
category: bios_zip
source_ref: "src/mame/konami/konendev.cpp:909"
source_ref: "src/mame/konami/konendev.cpp:914"
contents:
- name: 2v02s502_ifu.u190
size: 524288
@@ -1572,7 +1572,7 @@ files:
required: true
category: bios_zip
system: capcom-zn1
source_ref: "src/mame/sony/zn.cpp:5969"
source_ref: "src/mame/sony/zn.cpp:5967"
contents:
- name: m534002c-13.ic353
description: japan
@@ -1593,7 +1593,7 @@ files:
required: true
category: bios_zip
system: capcom-zn2
source_ref: "src/mame/sony/zn.cpp:6055"
source_ref: "src/mame/sony/zn.cpp:6053"
contents:
- name: m534002c-59.ic353
size: 524288
@@ -1607,7 +1607,7 @@ files:
- name: coh1000t.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/zn.cpp:5989"
source_ref: "src/mame/sony/zn.cpp:5987"
contents:
- name: m534002c-14.ic353
size: 524288
@@ -1621,7 +1621,7 @@ files:
- name: coh1000a.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/zn.cpp:6015"
source_ref: "src/mame/sony/zn.cpp:6013"
contents:
- name: m534002c-15.ic353
size: 524288
@@ -1635,7 +1635,7 @@ files:
- name: coh1000w.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/zn.cpp:6024"
source_ref: "src/mame/sony/zn.cpp:6022"
contents:
- name: msm27c402zb.ic353
size: 524288
@@ -1649,7 +1649,7 @@ files:
- name: coh1001l.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/zn.cpp:6028"
source_ref: "src/mame/sony/zn.cpp:6026"
contents:
- name: m534002c-17.ic353
size: 524288
@@ -1663,7 +1663,7 @@ files:
- name: coh1002v.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/zn.cpp:6032"
source_ref: "src/mame/sony/zn.cpp:6030"
contents:
- name: coh-1002v.ic353
size: 524288
@@ -1677,7 +1677,7 @@ files:
- name: coh1002e.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/zn.cpp:6038"
source_ref: "src/mame/sony/zn.cpp:6036"
contents:
- name: m27c402cz-54.ic353
size: 524288
@@ -1691,7 +1691,7 @@ files:
- name: coh1002m.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/zn.cpp:6089"
source_ref: "src/mame/sony/zn.cpp:6087"
contents:
- name: m534002c-61.ic353
size: 524288
@@ -1706,7 +1706,7 @@ files:
- name: coh3002t.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/taitogn.cpp:1341"
source_ref: "src/mame/sony/taitogn.cpp:1377"
contents:
- name: m534002c-60.ic353
size: 524288
@@ -1748,7 +1748,7 @@ files:
- name: coh1002t.zip
required: true
category: bios_zip
source_ref: "src/mame/sony/taitogn.cpp:1342"
source_ref: "src/mame/sony/taitogn.cpp:1378"
contents:
- name: m534002c-14.ic353
size: 524288
@@ -1770,7 +1770,7 @@ files:
- name: taitotz.zip
required: true
category: bios_zip
source_ref: "src/mame/taito/taitotz.cpp:3016"
source_ref: "src/mame/taito/taitotz.cpp:3014"
contents:
- name: e68-05-1.ic6
size: 524288
@@ -1786,7 +1786,7 @@ files:
required: true
category: bios_zip
system: super-kaneko-nova
source_ref: "src/mame/kaneko/suprnova.cpp:2135"
source_ref: "src/mame/kaneko/suprnova.cpp:2085"
contents:
- name: sknsj1.u10
size: 524288
@@ -1883,7 +1883,7 @@ files:
required: true
category: bios_zip
system: hyper-neogeo64
source_ref: "src/mame/snk/hng64.cpp:3238"
source_ref: "src/mame/snk/hng64.cpp:3241"
contents:
- name: brom1.bin
size: 524288
@@ -2098,7 +2098,7 @@ files:
- name: maxaflex.zip
required: true
category: bios_zip
source_ref: "src/mame/atari/maxaflex.cpp:448"
source_ref: "src/mame/atari/maxaflex.cpp:450"
contents:
- name: atarixl.rom
size: 16384
@@ -2117,7 +2117,7 @@ files:
- name: crysbios.zip
required: true
category: bios_zip
source_ref: "src/mame/misc/crystal.cpp:845"
source_ref: "src/mame/misc/crystal.cpp:847"
contents:
- name: mx27l1000.u14
description: AMG0110B PCB
@@ -2140,7 +2140,7 @@ files:
- name: aristmk5.zip
required: true
category: bios_zip
source_ref: "src/mame/acorn/aristmk5.cpp:9303"
source_ref: "src/mame/acorn/aristmk5.cpp:9293"
- name: aristmk6.zip
required: true
@@ -2558,7 +2558,7 @@ files:
- name: allied.zip
required: true
category: bios_zip
source_ref: "src/mame/pinball/allied.cpp:772"
source_ref: "src/mame/pinball/allied.cpp:775"
contents:
- name: 6530-009.u5
size: 1024
@@ -2576,7 +2576,7 @@ files:
- name: gp_110.zip
required: true
category: bios_zip
source_ref: "src/mame/pinball/gp_1.cpp:575"
source_ref: "src/mame/pinball/gp_1.cpp:577"
contents:
- name: a-110.u12
size: 2048
@@ -2590,7 +2590,7 @@ files:
- name: gts1.zip
required: true
category: bios_zip
source_ref: "src/mame/pinball/gts1.cpp:1070"
source_ref: "src/mame/pinball/gts1.cpp:1074"
contents:
- name: a1752cf.u5
size: 2048
@@ -2604,7 +2604,7 @@ files:
- name: recel.zip
required: true
category: bios_zip
source_ref: "src/mame/pinball/recel.cpp:546"
source_ref: "src/mame/pinball/recel.cpp:547"
contents:
- name: a2361.b1
size: 1024
@@ -2618,7 +2618,7 @@ files:
- name: slvrball.zip
required: true
category: bios_zip
source_ref: "src/mame/misc/silverball.cpp:259"
source_ref: "src/mame/misc/silverball.cpp:258"
contents:
- name: bios47.bin
description: BIOS47 (Acorp 694XT/694XT1)
@@ -3018,7 +3018,7 @@ files:
- name: tourvis.zip
required: true
category: bios_zip
source_ref: "src/mame/pce/tourvis.cpp:448"
source_ref: "src/mame/pce/tourvis.cpp:451"
contents:
- name: v4-60.ic29
description: V4-60
@@ -3079,7 +3079,7 @@ files:
- name: v4bios.zip
required: true
category: bios_zip
source_ref: "src/mame/barcrest/mpu4vid.cpp:8698"
source_ref: "src/mame/barcrest/mpu4vid.cpp:8696"
contents:
- name: vid.p1
size: 65536
@@ -3099,7 +3099,7 @@ files:
- name: pumpitup.zip
required: true
category: bios_zip
source_ref: "src/mame/misc/xtom3d.cpp:997"
source_ref: "src/mame/misc/xtom3d.cpp:996"
contents:
- name: mk3_1.0_bios.u22
description: mk3 v1.0
@@ -3159,7 +3159,7 @@ files:
required: true
category: bios_zip
system: apple2gs
source_ref: "src/mame/apple/apple2gs.cpp:3868-3882"
source_ref: "src/mame/apple/apple2gs.cpp:3853-3867"
contents:
- name: 341s0632-2.bin
description: ADB microcontroller ROM (M50740/50741)
@@ -3321,7 +3321,7 @@ files:
required: true
category: bios_zip
system: entex-advision
source_ref: "src/mame/entex/advision.cpp:357"
source_ref: "src/mame/entex/advision.cpp:471"
contents:
- name: ins8048-11kdp_n.u5
description: Intel 8048 main CPU ROM
@@ -3337,7 +3337,7 @@ files:
required: true
category: bios_zip
system: apf-m1000
source_ref: "src/mame/apf/apf.cpp:613"
source_ref: "src/mame/apf/apf.cpp:642"
contents:
- name: apf_4000.rom
description: Standard BIOS
@@ -3373,7 +3373,7 @@ files:
required: true
category: bios_zip
system: bandai-rx78
source_ref: "src/mame/bandai/rx78.cpp:559"
source_ref: "src/mame/bandai/rx78.cpp:577"
note: "MACHINE_NOT_WORKING."
contents:
- name: ipl.rom
@@ -3714,7 +3714,7 @@ files:
required: true
category: bios_zip
system: fm7
source_ref: "src/mame/fujitsu/fm7.cpp:2188-2209"
source_ref: "src/mame/fujitsu/fm7.cpp:2186-2207"
contents:
- name: fbasic300.rom
description: F-BASIC 3.00 ROM
@@ -3741,7 +3741,7 @@ files:
required: true
category: bios_zip
system: fm7
source_ref: "src/mame/fujitsu/fm7.cpp:2207-2228"
source_ref: "src/mame/fujitsu/fm7.cpp:2209-2230"
contents:
- name: initiate.rom
description: Initiate ROM (boot sequencer)
@@ -3768,7 +3768,7 @@ files:
required: false
category: bios_zip
system: fm7
source_ref: "src/mame/fujitsu/fm7.cpp:2170-2186"
source_ref: "src/mame/fujitsu/fm7.cpp:2169-2184"
note: "FM-NEW7 clone, inherits shared ROMs from fm7.zip parent"
contents:
- name: fbasic302.rom
@@ -3830,7 +3830,7 @@ files:
required: true
category: bios_zip
system: pcw
source_ref: "src/mame/amstrad/pcw.cpp:1402"
source_ref: "src/mame/amstrad/pcw.cpp:1460"
note: |
Amstrad PCW8256 parent ROM set. Z80-based word processor/computer (1985).
6 machines: pcw8256 (parent), pcw8512, pcw9256, pcw9512, pcw9512+, pcw10.
@@ -3852,7 +3852,7 @@ files:
required: true
category: bios_zip
system: pcw
source_ref: "src/mame/amstrad/pcw.cpp:1429"
source_ref: "src/mame/amstrad/pcw.cpp:1462"
note: |
Amstrad PCW9512 clone ROM set. Daisywheel printer variant (1987).
Uses different printer MCU (40103.ic109) than 9-pin models.
@@ -4276,7 +4276,7 @@ files:
- name: ekara.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2930"
source_ref: "src/mame/tvgames/xavix.cpp:2878"
contents:
- name: ekara.bin
size: 1048576
@@ -4286,7 +4286,7 @@ files:
- name: ekaraa.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2905"
source_ref: "src/mame/tvgames/xavix.cpp:2879"
contents:
- name: ekara2.bin
size: 1048576
@@ -4296,7 +4296,7 @@ files:
- name: ekaraj.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2932"
source_ref: "src/mame/tvgames/xavix.cpp:2880"
contents:
- name: ekarajapan.bin
size: 1048576
@@ -4306,7 +4306,7 @@ files:
- name: ekarag.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2933"
source_ref: "src/mame/tvgames/xavix.cpp:2881"
contents:
- name: ekaragermany.bin
size: 2097152
@@ -4316,7 +4316,7 @@ files:
- name: ekaras.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2908"
source_ref: "src/mame/tvgames/xavix.cpp:2882"
contents:
- name: ekaraspanish.bin
size: 2097152
@@ -4326,7 +4326,7 @@ files:
- name: isinger.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2936"
source_ref: "src/mame/tvgames/xavix.cpp:2884"
contents:
- name: kr_isinger.bin
size: 1048576
@@ -4336,7 +4336,7 @@ files:
- name: ekaraphs.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2939"
source_ref: "src/mame/tvgames/xavix.cpp:2887"
contents:
- name: ekaraheadset.bin
size: 2097152
@@ -4346,7 +4346,7 @@ files:
- name: epitch.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:3027"
source_ref: "src/mame/tvgames/xavix.cpp:2890"
contents:
- name: ekarajapan.bin
size: 1048576
@@ -4356,7 +4356,7 @@ files:
- name: ekaramix.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2919"
source_ref: "src/mame/tvgames/xavix.cpp:2893"
contents:
- name: ekaramix.bin
size: 2097152
@@ -4366,7 +4366,7 @@ files:
- name: ddrfammt.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2948"
source_ref: "src/mame/tvgames/xavix.cpp:2896"
contents:
- name: ekara_ddr_ha010_81947.bin
size: 2097152
@@ -4376,7 +4376,7 @@ files:
- name: popira.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2951"
source_ref: "src/mame/tvgames/xavix.cpp:2899"
contents:
- name: popira.bin
size: 1048576
@@ -4386,7 +4386,7 @@ files:
- name: popirak.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2953"
source_ref: "src/mame/tvgames/xavix.cpp:2901"
contents:
- name: kr_main.u2
size: 1048576
@@ -4396,7 +4396,7 @@ files:
- name: popira2.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2956"
source_ref: "src/mame/tvgames/xavix.cpp:2904"
contents:
- name: popira2.bin
size: 2097152
@@ -4406,7 +4406,7 @@ files:
- name: taikodp.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2959"
source_ref: "src/mame/tvgames/xavix.cpp:2907"
contents:
- name: taikodepopira.bin
size: 2097152
@@ -4416,7 +4416,7 @@ files:
- name: jpopira.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2962"
source_ref: "src/mame/tvgames/xavix.cpp:2910"
contents:
- name: jumpingpopira.bin
size: 2097152
@@ -4430,7 +4430,7 @@ files:
- name: evio.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2965"
source_ref: "src/mame/tvgames/xavix.cpp:2913"
contents:
- name: evio.bin
size: 2097152
@@ -4440,7 +4440,7 @@ files:
- name: tak_daig.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2944"
source_ref: "src/mame/tvgames/xavix.cpp:2918"
contents:
- name: robottransformer_unit.bin
size: 2097152
@@ -4450,7 +4450,7 @@ files:
- name: gcslottv.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2972"
source_ref: "src/mame/tvgames/xavix.cpp:2920"
contents:
- name: sammyslotunit.bin
size: 2097152
@@ -4460,7 +4460,7 @@ files:
- name: hikara.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2951"
source_ref: "src/mame/tvgames/xavix.cpp:2925"
contents:
- name: hikara.u3
size: 1048576
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/mame2000-libretro"
upstream: "https://www.mamedev.org"
profiled_date: "2026-03-24"
source_commit: "f099ba44c7664906fd7e01cbed89d13a7e32dee1"
source_commit: "181b42e5da0d2f0c7a2e59244f23633ed594de2e"
core_version: "0.37b5"
display_name: "Arcade (MAME 2000)"
+6 -6
View File
@@ -4,7 +4,7 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/mame2003-libretro"
upstream: "https://www.mamedev.org"
profiled_date: "2026-03-24"
source_commit: "6c32fa9fc005d7e924909c6ff4684da9abb00ceb"
source_commit: "259339e92d5f63e4b293ce0d42a069f9e8ba2a6a"
core_version: "0.78"
display_name: "Arcade (MAME 2003)"
@@ -65,14 +65,14 @@ files:
path: "mame2003/history.dat"
required: false
category: game_data
source_ref: "src/datafile.c:327, src/datafile.c:578"
source_ref: "src/datafile.c:327, src/datafile.c:563"
note: "game history and information database"
- name: mameinfo.dat
path: "mame2003/mameinfo.dat"
required: false
category: game_data
source_ref: "src/datafile.c:327, src/datafile.c:637-641"
source_ref: "src/datafile.c:327, src/datafile.c:622-626"
note: "game technical information database"
# SNK Neo Geo MVS/AES
@@ -146,14 +146,14 @@ files:
required: true
category: bios_zip
system: sega-megaplay
source_ref: "src/drivers/segac2.c:4483"
source_ref: "src/drivers/segac2.c:4468"
# Sega Mega Tech
- name: megatech.zip
required: true
category: bios_zip
system: sega-megatech
source_ref: "src/drivers/segac2.c:4405"
source_ref: "src/drivers/segac2.c:4390"
# DECO Cassette
- name: decocass.zip
@@ -188,7 +188,7 @@ files:
required: true
category: bios_zip
system: konami-gx
source_ref: "src/drivers/konamigx.c:3392"
source_ref: "src/drivers/konamigx.c:3369"
# Century Electronics CVS
- name: cvs.zip
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/mame2003_midway"
upstream: "https://www.mamedev.org"
profiled_date: "2026-03-24"
source_commit: "52d8432b13fb2be032abccdf465b9fee94078080"
source_commit: "e657f70b6dc67b4f7f9255bc796c5d5ce168d69c"
core_version: "0.78"
display_name: "Arcade (MAME 2003 Midway)"
+1 -1
View File
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2003-plus-libretro"
upstream: "https://www.mamedev.org"
logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg"
profiled_date: "2026-03-24"
source_commit: "d6bf36f65f36853120d7e97cdf4fa3720de66728"
source_commit: "3a2f7f39b1733a8e6b2dca6f1197f18b9a74867b"
core_version: "2003-Plus"
display_name: "Arcade (MAME 2003-Plus)"
mame_version: "0.78 (plus backports)"
+1 -1
View File
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2010-libretro"
upstream: "https://github.com/mamedev/mame/tree/mame0139"
logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg"
profiled_date: "2026-03-22"
source_commit: "484456818393505dd4367e6e4c116c573c04a1ec"
source_commit: "dff8aadd1c3f38215af3955746d6e19abe0ddcea"
core_version: "0.139"
display_name: "Arcade (MAME 2010)"
mame_version: "0.139"
+1 -1
View File
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2015-libretro"
upstream: "https://github.com/mamedev/mame/tree/mame0160"
logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg"
profiled_date: "2026-03-24"
source_commit: "283e04b03c121db9be12632d6bad2fc3e8707248"
source_commit: "0eab132212b28896baeac7d8f2cd8ac25e227752"
core_version: "0.160"
display_name: "Arcade (MAME 2015)"
mame_version: "0.160"
+1 -1
View File
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2016-libretro"
upstream: "https://github.com/mamedev/mame/tree/mame0174"
logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg"
profiled_date: "2026-03-22"
source_commit: "3529f4e2cb8e74c88d83bc9fc9d695f78dc9a975"
source_commit: "e3d45e2ba59bac384aa1619687004e504f317b92"
core_version: "0.174"
cores:
+6 -6
View File
@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/mame"
upstream: "https://github.com/mamedev/mame"
profiled_date: "2026-03-24"
source_commit: "c1ff660dbddd5b134f549b4881499699cee1ebb6"
source_commit: "4fc9a9312baaf34963847f884961ad9793fbbc1d"
upstream_commit: "728d957663041fbc943806bf151584acd03e2160"
core_version: "0.287"
display_name: "Arcade (MAME/Arcade)"
@@ -502,7 +502,7 @@ files:
required: true
category: bios_zip
system: sammy-atomiswave
source_ref: "src/mame/sega/dc_atomiswave.cpp:1519"
source_ref: "src/mame/sega/dc_atomiswave.cpp:1480"
contents:
- name: bios0.ic23
size: 131072
@@ -643,7 +643,7 @@ files:
required: true
category: bios_zip
system: sega-stv
source_ref: "src/mame/sega/stv.cpp:4068"
source_ref: "src/mame/sega/stv.cpp:3948"
contents:
- name: epr-23603.ic8
size: 524288
@@ -1000,7 +1000,7 @@ files:
required: true
category: bios_zip
system: nintendo-playch10
source_ref: "src/mame/nintendo/playch10.cpp:2981"
source_ref: "src/mame/nintendo/playch10.cpp:2980"
contents:
- name: pch1-c__8t_e-2.8t
size: 16384
@@ -1247,7 +1247,7 @@ files:
required: true
category: bios_zip
system: konami-twinkle
source_ref: "src/mame/konami/twinkle.cpp:1636"
source_ref: "src/mame/konami/twinkle.cpp:1643"
- name: bubsys.zip
required: true
@@ -1754,7 +1754,7 @@ files:
required: true
category: bios_zip
system: exidy-maxaflex
source_ref: "src/mame/atari/maxaflex.cpp:448"
source_ref: "src/mame/atari/maxaflex.cpp:447"
contents:
- name: atarixl.rom
size: 16384
+32 -32
View File
@@ -251,7 +251,7 @@ files:
- name: ekara.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2930"
source_ref: "src/mame/tvgames/xavix.cpp:2878"
contents:
- name: ekara.bin
size: 1048576
@@ -261,7 +261,7 @@ files:
- name: ekaraa.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2905"
source_ref: "src/mame/tvgames/xavix.cpp:2879"
contents:
- name: ekara2.bin
size: 1048576
@@ -271,7 +271,7 @@ files:
- name: ekaraj.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2932"
source_ref: "src/mame/tvgames/xavix.cpp:2880"
contents:
- name: ekarajapan.bin
size: 1048576
@@ -281,7 +281,7 @@ files:
- name: ekarag.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2933"
source_ref: "src/mame/tvgames/xavix.cpp:2881"
contents:
- name: ekaragermany.bin
size: 2097152
@@ -291,7 +291,7 @@ files:
- name: ekaras.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2908"
source_ref: "src/mame/tvgames/xavix.cpp:2882"
contents:
- name: ekaraspanish.bin
size: 2097152
@@ -301,7 +301,7 @@ files:
- name: isinger.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2936"
source_ref: "src/mame/tvgames/xavix.cpp:2884"
contents:
- name: kr_isinger.bin
size: 1048576
@@ -311,7 +311,7 @@ files:
- name: ekaraphs.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2939"
source_ref: "src/mame/tvgames/xavix.cpp:2887"
contents:
- name: ekaraheadset.bin
size: 2097152
@@ -321,7 +321,7 @@ files:
- name: epitch.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:3027"
source_ref: "src/mame/tvgames/xavix.cpp:2890"
contents:
- name: ekarajapan.bin
size: 1048576
@@ -331,7 +331,7 @@ files:
- name: ekaramix.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2919"
source_ref: "src/mame/tvgames/xavix.cpp:2893"
contents:
- name: ekaramix.bin
size: 2097152
@@ -342,7 +342,7 @@ files:
- name: ddrfammt.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2948"
source_ref: "src/mame/tvgames/xavix.cpp:2896"
contents:
- name: ekara_ddr_ha010_81947.bin
size: 2097152
@@ -352,7 +352,7 @@ files:
- name: popira.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2951"
source_ref: "src/mame/tvgames/xavix.cpp:2899"
contents:
- name: popira.bin
size: 1048576
@@ -362,7 +362,7 @@ files:
- name: popirak.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2953"
source_ref: "src/mame/tvgames/xavix.cpp:2901"
contents:
- name: kr_main.u2
size: 1048576
@@ -372,7 +372,7 @@ files:
- name: popira2.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2956"
source_ref: "src/mame/tvgames/xavix.cpp:2904"
contents:
- name: popira2.bin
size: 2097152
@@ -382,7 +382,7 @@ files:
- name: taikodp.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2959"
source_ref: "src/mame/tvgames/xavix.cpp:2907"
contents:
- name: taikodepopira.bin
size: 2097152
@@ -392,7 +392,7 @@ files:
- name: jpopira.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2962"
source_ref: "src/mame/tvgames/xavix.cpp:2910"
contents:
- name: jumpingpopira.bin
size: 2097152
@@ -406,7 +406,7 @@ files:
- name: evio.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2965"
source_ref: "src/mame/tvgames/xavix.cpp:2913"
contents:
- name: evio.bin
size: 2097152
@@ -416,7 +416,7 @@ files:
- name: tak_daig.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2944"
source_ref: "src/mame/tvgames/xavix.cpp:2918"
contents:
- name: robottransformer_unit.bin
size: 2097152
@@ -426,7 +426,7 @@ files:
- name: gcslottv.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2972"
source_ref: "src/mame/tvgames/xavix.cpp:2920"
contents:
- name: sammyslotunit.bin
size: 2097152
@@ -436,7 +436,7 @@ files:
- name: hikara.zip
required: true
category: bios_zip
source_ref: "src/mame/tvgames/xavix.cpp:2951"
source_ref: "src/mame/tvgames/xavix.cpp:2925"
contents:
- name: hikara.u3
size: 1048576
@@ -482,7 +482,7 @@ files:
required: true
category: bios_zip
system: apple2
source_ref: "src/mame/apple/apple2.cpp:774"
source_ref: "src/mame/apple/apple2.cpp:1310"
contents:
- name: a2.chr
description: Character generator ROM
@@ -513,7 +513,7 @@ files:
required: true
category: bios_zip
system: apple2
source_ref: "src/mame/apple/apple2.cpp:900"
source_ref: "src/mame/apple/apple2.cpp:1311"
contents:
- name: 341-0036.chr
description: Character generator ROM
@@ -548,7 +548,7 @@ files:
required: true
category: bios_zip
system: apple2
source_ref: "src/mame/apple/apple2e.cpp:5563"
source_ref: "src/mame/apple/apple2e.cpp:6345"
contents:
- name: 342-0133-a.chr
description: Character generator ROM
@@ -571,7 +571,7 @@ files:
required: true
category: bios_zip
system: apple2
source_ref: "src/mame/apple/apple2e.cpp:5669"
source_ref: "src/mame/apple/apple2e.cpp:6352"
contents:
- name: 342-0265-a.chr
description: Enhanced character generator ROM
@@ -656,7 +656,7 @@ files:
required: true
category: bios_zip
system: apple2gs
source_ref: "src/mame/apple/apple2gs.cpp:3868-3882"
source_ref: "src/mame/apple/apple2gs.cpp:3853-3867"
contents:
- name: 341s0632-2.bin
description: ADB microcontroller ROM (M50740/50741)
@@ -818,7 +818,7 @@ files:
required: true
category: bios_zip
system: entex-advision
source_ref: "src/mame/entex/advision.cpp:357"
source_ref: "src/mame/entex/advision.cpp:471"
contents:
- name: ins8048-11kdp_n.u5
description: Intel 8048 main CPU ROM
@@ -834,7 +834,7 @@ files:
required: true
category: bios_zip
system: bandai-rx78
source_ref: "src/mame/bandai/rx78.cpp:559"
source_ref: "src/mame/bandai/rx78.cpp:577"
note: "MACHINE_NOT_WORKING."
contents:
- name: ipl.rom
@@ -1325,7 +1325,7 @@ files:
required: true
category: bios_zip
system: fm7
source_ref: "src/mame/fujitsu/fm7.cpp:2188-2209"
source_ref: "src/mame/fujitsu/fm7.cpp:2186-2207"
contents:
- name: fbasic300.rom
description: F-BASIC 3.00 ROM
@@ -1352,7 +1352,7 @@ files:
required: true
category: bios_zip
system: fm7
source_ref: "src/mame/fujitsu/fm7.cpp:2207-2228"
source_ref: "src/mame/fujitsu/fm7.cpp:2209-2230"
contents:
- name: initiate.rom
description: Initiate ROM (boot sequencer)
@@ -1379,7 +1379,7 @@ files:
required: false
category: bios_zip
system: fm7
source_ref: "src/mame/fujitsu/fm7.cpp:2170-2186"
source_ref: "src/mame/fujitsu/fm7.cpp:2169-2184"
note: "FM-NEW7 clone, inherits shared ROMs from fm7.zip parent"
contents:
- name: fbasic302.rom
@@ -1578,7 +1578,7 @@ files:
required: true
category: bios_zip
system: pc60
source_ref: "src/mame/nec/pc6001.cpp:1896-1916"
source_ref: "src/mame/nec/pc6001.cpp:1742-1765"
contents:
- name: basicrom.62
description: BASIC ROM
@@ -1632,7 +1632,7 @@ files:
required: true
category: bios_zip
system: pc60
source_ref: "src/mame/nec/pc6001.cpp:1938-1954"
source_ref: "src/mame/nec/pc6001.cpp:1793-1824"
contents:
- name: systemrom1.64
description: System ROM 1
@@ -1651,7 +1651,7 @@ files:
required: false
category: bios_zip
system: pc60
source_ref: "src/mame/nec/pc6001.cpp:1956-1987"
source_ref: "src/mame/nec/pc6001.cpp:1826-1870"
contents:
- name: systemrom1.68
description: System ROM 1
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/beetle-gba-libretro"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
source_commit: "145d4884ad246e3c16765f6d69decb2a4359b6ae"
source_commit: "b158166237b17253188cfdbe73a8a0b9fe4b3a8c"
core_version: "v0.9.36"
display_name: "Nintendo - Game Boy Advance (Beetle GBA)"
cores:
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/beetle-pce-fast-libretro"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
source_commit: "b211204c7026dff6e86e79b00185512e2421fff8"
source_commit: "95fbd9c51bf0e35aa376a7774e9c02ff927cd991"
core_version: "v1.31.0.0"
display_name: "NEC - PC Engine / CD (Beetle PCE FAST)"
cores: [mednafen_pce_fast, pce_fast, beetle_pce_fast]
+3 -3
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/supafaust"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
source_commit: "e25f66765938d33f9ad5850e8d6cd597e55b7299"
source_commit: "642d1d1b6684aa7e306a02a89885f3f5456a5157"
core_version: "1.29.0"
display_name: "Nintendo - SNES / SFC (Beetle Supafaust)"
cores: [mednafen_supafaust, supafaust]
@@ -19,7 +19,7 @@ systems: [nintendo-snes]
notes: >
Port of Mednafen's snes_faust module. All special chip firmware
emulated via HLE with synthesized data ROMs. No external firmware loading.
source_ref: dsp1.cpp:120-177, dsp2.cpp:118-140, cx4.cpp:1548-1656,
cart.cpp:129-584, libretro.cpp:496-742
source_ref: mednafen/snes_faust/cart/dsp1.cpp:120-177, mednafen/snes_faust/cart/dsp2.cpp:118-140, mednafen/snes_faust/cart/cx4.cpp:1548-1656,
mednafen/snes_faust/cart.cpp:129-584, libretro.cpp:496-742
files: []
+1 -1
View File
@@ -8,7 +8,7 @@ core_classification: official_port
source: "https://github.com/libretro/Mesen-S"
upstream: "https://github.com/SourMesen/Mesen-S"
profiled_date: "2026-03-24"
source_commit: "d4fca31a6004041d99b02199688f84c009c55967"
source_commit: "9e4fdeb9b336470bc96beb8765b2e79c86a2da1e"
core_version: "0.4.0"
cores: [mesen-s, mesen_s]
systems: [nintendo-snes, nintendo-gb, nintendo-gbc, nintendo-super-game-boy, nintendo-satellaview]
+5 -5
View File
@@ -4,7 +4,7 @@ core_classification: enhanced_fork
source: "https://github.com/nesdev-org/MesenCE"
upstream: "https://github.com/SourMesen/Mesen2"
profiled_date: "2026-08-06"
source_commit: "bec4fe632cb21ec97ad2b39cd6fdc826ecd02753"
source_commit: "af2342818ca81a93b346146802047760400fc7b1"
core_version: "2.2.1"
display_name: "Multi-System (MesenCE)"
cores: [mesence, mesen2]
@@ -47,21 +47,21 @@ notes: |
file listed below, or from a split pair <name>.program.rom + <name>.data.rom
(FirmwareHelper.h AttemptLoadDspFirmware). ROM dumps with the firmware
appended to the game ROM need no external file (LoadDspFirmware embedded
path, FirmwareHelper.h:131-135).
path, Core/Shared/FirmwareHelper.h:131-135).
GB/GBC/SGB boot ROM images are compiled into the core
(Core/Gameboy/GbBootRom.h:8,49,99); the external files below override them.
Super Game Boy mode falls back to the plain GB core when SGB1.sfc/SGB2.sfc
is missing (BaseCartridge.cpp:698-717).
is missing (Core/SNES/BaseCartridge.cpp:698-717).
Satellaview data broadcasts are read from <home>/Satellaview/ as
BSX<channel>-<index>.bin (BsxStream.cpp:67-74). Five stream files and
BSX<channel>-<index>.bin (Core/SNES/Coprocessors/BSX/BsxStream.cpp:67-74). Five stream files and
MesenNesDB.txt ship inside the application binary (Dependencies.zip) and
are extracted to the home folder at startup; user-provided replacements
are preserved (UI/Utilities/DependencyHelper.cs:14-66). NES and SNES
cheat databases (CheatDb.Nes.json, CheatDb.Snes.json) are read directly
from the embedded archive and never touch the filesystem
(DependencyHelper.cs GetFileContent, CheatDatabaseViewModel.cs:33).
(DependencyHelper.cs GetFileContent, UI/ViewModels/CheatDatabaseViewModel.cs:33).
HdPacks are per-game texture/audio replacements under <home>/HdPacks/,
game content rather than system files.
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: frozen_snapshot
source: "https://github.com/libretro/mame2015-libretro"
upstream: "https://github.com/mamedev/mame/tree/mame0160"
profiled_date: "2026-03-24"
source_commit: "283e04b03c121db9be12632d6bad2fc3e8707248"
source_commit: "0eab132212b28896baeac7d8f2cd8ac25e227752"
core_version: "0.160"
display_name: "Multi (MESS 2015)"
mame_version: "0.159"
+1 -1
View File
@@ -4,7 +4,7 @@ core_classification: community_fork
source: "https://github.com/libretro/meteor-libretro"
upstream: "https://github.com/blastrock/meteor"
profiled_date: "2026-03-24"
source_commit: "e533d300d0561564451bde55a2b73119c768453c"
source_commit: "9ea6c358eae6acd1a346647d96b832ccaffad0aa"
core_version: "v1.4"
display_name: "Nintendo - Game Boy Advance (Meteor)"
cores:
Loaded 100 of 187 files, more files were not shown because too many files have changed in this diff. Show more