mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 21:43:23 -05:00
Compare commits
178
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4599cd69e | ||
|
|
913ba09600 | ||
|
|
38655d1d23 | ||
|
|
9af89cb120 | ||
|
|
fbc92c99cf | ||
|
|
49b3cffa58 | ||
|
|
af4f980bab | ||
|
|
3582101af4 | ||
|
|
a4f3f016f8 | ||
|
|
a252e2d158 | ||
|
|
067d962210 | ||
|
|
0d81f19831 | ||
|
|
52d128bcf5 | ||
|
|
0b46880604 | ||
|
|
0f293b6c14 | ||
|
|
9ca14bb77e | ||
|
|
443639c33d | ||
|
|
0ea8840f14 | ||
|
|
53c5504330 | ||
|
|
7164e8a125 | ||
|
|
cea6e516a4 | ||
|
|
8d2df0b651 | ||
|
|
b20c38d1c1 | ||
|
|
45ede873b3 | ||
|
|
14e4dd919c | ||
|
|
dc5cdb8d70 | ||
|
|
87ef905c44 | ||
|
|
e3173b1fc5 | ||
|
|
514becd784 | ||
|
|
0cc6ab5990 | ||
|
|
4609102772 | ||
|
|
92594b1751 | ||
|
|
2499a0eabc | ||
|
|
91e113a7d3 | ||
|
|
e723f346f9 | ||
|
|
139bb99088 | ||
|
|
e35aa9a323 | ||
|
|
be2c325b53 | ||
|
|
b39b187243 | ||
|
|
6380a92e6c | ||
|
|
22f018995e | ||
|
|
5d5170dc12 | ||
|
|
64ed737ec6 | ||
|
|
87addda6e1 | ||
|
|
b8a7aa74ff | ||
|
|
d4ae1a76e8 | ||
|
|
eb8c7e5267 | ||
|
|
6748982d94 | ||
|
|
e335511b72 | ||
|
|
3088db7088 | ||
|
|
204637cfeb | ||
|
|
519c02646a | ||
|
|
72e47becb4 | ||
|
|
4a1a9dd861 | ||
|
|
d610aad990 | ||
|
|
a0af1b141e | ||
|
|
4d5340c5f4 | ||
|
|
4923873a7f | ||
|
|
ced7588d17 | ||
|
|
44cf638e06 | ||
|
|
a9b33484ed | ||
|
|
39d02b3b18 | ||
|
|
e5420a9dba | ||
|
|
9604e933ed | ||
|
|
dcc12e62b7 | ||
|
|
25e8eeb37b | ||
|
|
5d5befc002 | ||
|
|
c4e16e583e | ||
|
|
b0f2c3bb88 | ||
|
|
d89b193780 | ||
|
|
afdd38826c | ||
|
|
7ddb849c89 | ||
|
|
8e3f3fe057 | ||
|
|
af030fdd6d | ||
|
|
f159d35f18 | ||
|
|
dce43a1281 | ||
|
|
d7e7ec13ae | ||
|
|
098b2f0b70 | ||
|
|
6c9a41327b | ||
|
|
fb3c577521 | ||
|
|
821cbf4717 | ||
|
|
9c84b7990a | ||
|
|
4f8fbdfabb | ||
|
|
eccd0b0a28 | ||
|
|
8fe961a1ea | ||
|
|
ce239d32c1 | ||
|
|
13995047fc | ||
|
|
31e86b6db5 | ||
|
|
da5e95cd0f | ||
|
|
3dce7b5f09 | ||
|
|
97ccf9027b | ||
|
|
1caf5c4b5e | ||
|
|
acfd80c928 | ||
|
|
4d8ea05494 | ||
|
|
3df423e84f | ||
|
|
8a9924f1d8 | ||
|
|
52fbea5faa | ||
|
|
421a7afb3f | ||
|
|
0b7acf1e7f | ||
|
|
c4dab556e7 | ||
|
|
0390f2d19b | ||
|
|
e6afd06191 | ||
|
|
03929ddaf0 | ||
|
|
2b71e47510 | ||
|
|
cd90f46937 | ||
|
|
d02672c17b | ||
|
|
c6ba139493 | ||
|
|
f0bab9766c | ||
|
|
c55e3af5ac | ||
|
|
1c34503f4e | ||
|
|
72834837a5 | ||
|
|
ae0bbb9d3c | ||
|
|
e4cc978614 | ||
|
|
f51c3a3fc7 | ||
|
|
c62a34b1b2 | ||
|
|
ed18e61580 | ||
|
|
2cdb98239e | ||
|
|
623b0a6d47 | ||
|
|
82583fe17a | ||
|
|
85501c41e8 | ||
|
|
7273f5c8b9 | ||
|
|
e723c8c1b9 | ||
|
|
4db5866bbe | ||
|
|
dc3a35bdc8 | ||
|
|
0c881820c7 | ||
|
|
d839ce0a1c | ||
|
|
1b885632a6 | ||
|
|
ad9f834f55 | ||
|
|
49e0f83ce9 | ||
|
|
2b6dbb5e92 | ||
|
|
3d31a887cc | ||
|
|
e3f773dd82 | ||
|
|
c1b3e1fc33 | ||
|
|
b3c7e76adf | ||
|
|
b2208d889e | ||
|
|
af357a2931 | ||
|
|
1b40211366 | ||
|
|
a484754c76 | ||
|
|
46268bea47 | ||
|
|
0fbe99a14a | ||
|
|
16f4c071fe | ||
|
|
a8415c33c3 | ||
|
|
7e054fbcaf | ||
|
|
5784d45531 | ||
|
|
c526180351 | ||
|
|
36f7ee0b2b | ||
|
|
cf7d9ecb89 | ||
|
|
ccc51b861b | ||
|
|
3ae9729143 | ||
|
|
26ce416163 | ||
|
|
bd3bcc36ea | ||
|
|
f631174c85 | ||
|
|
22648e8a5f | ||
|
|
0de03b5e4c | ||
|
|
3bd19b9e97 | ||
|
|
ccf1a1573a | ||
|
|
ca86236c12 | ||
|
|
994836938c | ||
|
|
71cbbd9b21 | ||
|
|
65c0f5ddc1 | ||
|
|
ef16ed2af2 | ||
|
|
da0c843bdd | ||
|
|
e32df743d5 | ||
|
|
72d3654245 | ||
|
|
bdcf134877 | ||
|
|
aec1755c61 | ||
|
|
53ee1bfd0e | ||
|
|
d2d88cf6b8 | ||
|
|
fbdee43e6d | ||
|
|
284f1aa6b7 | ||
|
|
10f3379751 | ||
|
|
76387d1962 | ||
|
|
9465a250cc | ||
|
|
3bc80b2e06 | ||
|
|
dcdfe5936e | ||
|
|
ed47f437fc | ||
|
|
15abbec663 | ||
|
|
077dcda775 |
No files matched your search
@@ -8,11 +8,47 @@ on:
|
||||
- "emulators/**"
|
||||
- "provenance/**"
|
||||
- "wiki/**"
|
||||
- "scripts/generate_site.py"
|
||||
- "scripts/generate_readme.py"
|
||||
- "scripts/validate_site.py"
|
||||
- "scripts/verify.py"
|
||||
# Every script the build runs or imports (tests/test_workflow_paths.py).
|
||||
- "scripts/artifacts.py"
|
||||
- "scripts/auto_fetch.py"
|
||||
- "scripts/common.py"
|
||||
- "scripts/cross_reference.py"
|
||||
- "scripts/crypto_verify.py"
|
||||
- "scripts/deterministic_zip.py"
|
||||
- "scripts/dumpcatalog.py"
|
||||
- "scripts/generate_pack.py"
|
||||
- "scripts/generate_readme.py"
|
||||
- "scripts/generate_site.py"
|
||||
- "scripts/hashing.py"
|
||||
- "scripts/largefiles.py"
|
||||
- "scripts/list_platforms.py"
|
||||
- "scripts/nativemode.py"
|
||||
- "scripts/packextras.py"
|
||||
- "scripts/packpaths.py"
|
||||
- "scripts/packreadme.py"
|
||||
- "scripts/packresolve.py"
|
||||
- "scripts/packverify.py"
|
||||
- "scripts/profile_sync.py"
|
||||
- "scripts/provenance_report.py"
|
||||
- "scripts/refresh_data_dirs.py"
|
||||
- "scripts/region.py"
|
||||
- "scripts/release_record.py"
|
||||
- "scripts/restore_large_files.py"
|
||||
- "scripts/safeparse.py"
|
||||
- "scripts/sect233r1.py"
|
||||
- "scripts/siterender.py"
|
||||
- "scripts/sitesources.py"
|
||||
- "scripts/sitewrite.py"
|
||||
- "scripts/slot.py"
|
||||
- "scripts/slots.py"
|
||||
- "scripts/split_pack.py"
|
||||
- "scripts/truth.py"
|
||||
- "scripts/upstream.py"
|
||||
- "scripts/validate_schemas.py"
|
||||
- "scripts/validate_site.py"
|
||||
- "scripts/validation.py"
|
||||
- "scripts/verify.py"
|
||||
- "scripts/ziptools.py"
|
||||
- "schemas/**"
|
||||
- "tests/**"
|
||||
- "docs_assets/**"
|
||||
@@ -20,7 +56,6 @@ on:
|
||||
- "install.py"
|
||||
- "database.json"
|
||||
- "release.json"
|
||||
- "scripts/release_record.py"
|
||||
- "mkdocs.yml"
|
||||
- ".github/workflows/deploy-site.yml"
|
||||
workflow_dispatch:
|
||||
@@ -49,7 +84,7 @@ jobs:
|
||||
|
||||
# mkdocs-material >= 9.7.5 caps mkdocs < 2; the upper bound keeps a major
|
||||
# theme release from changing the site without a deliberate bump here.
|
||||
- run: pip install pyyaml jsonschema==4.26.0 "mkdocs-material>=9.7.5,<10" "pymdown-extensions>=10.14"
|
||||
- run: pip install pyyaml "jsonschema[format-nongpl]==4.26.0" "mkdocs-material>=9.7.5,<10" "pymdown-extensions>=10.14"
|
||||
|
||||
- name: Validate data contracts
|
||||
run: python scripts/validate_schemas.py
|
||||
|
||||
@@ -112,7 +112,7 @@ jobs:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install pyyaml jsonschema==4.26.0
|
||||
run: pip install pyyaml "jsonschema[format-nongpl]==4.26.0"
|
||||
|
||||
- name: Validate platform configs and emulator profiles
|
||||
run: python scripts/validate_schemas.py --source-only
|
||||
@@ -127,7 +127,7 @@ jobs:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install pyyaml jsonschema==4.26.0
|
||||
run: pip install pyyaml "jsonschema[format-nongpl]==4.26.0"
|
||||
|
||||
# The exporter fidelity cases compare what we hand back against the
|
||||
# file each platform publishes, so they need those files. They skip
|
||||
|
||||
@@ -55,9 +55,9 @@ Every release ships `SHA256SUMS.txt` and a detached signature of it, checkable a
|
||||
| RetroBat | 1,466 | 4.4 GB | `bios/` | [Download](../../releases/latest) |
|
||||
| RetroDECK | 3,519 | 6.2 GB | `~/retrodeck/` | [Download](../../releases/latest) |
|
||||
| RetroPie * | 4,525 | 5.5 GB | `~/RetroPie/BIOS/` | [Download](../../releases/latest) |
|
||||
| RomM | 617 | 1.3 GB | `bios/{platform_slug}/` | [Download](../../releases/latest) |
|
||||
| RomM | 617 | 1.3 GB | `library/bios/` | [Download](../../releases/latest) |
|
||||
|
||||
The RetroDECK pack already contains its own `bios/` folder, so it extracts into `~/retrodeck/` rather than into the BIOS folder.
|
||||
The RetroDECK pack already carries its own `bios/` folder, so it extracts into `~/retrodeck/` rather than into the BIOS folder.
|
||||
|
||||
\* Archived: the configuration is kept and packs are still built, but upstream is no longer scraped on a schedule.
|
||||
|
||||
@@ -72,9 +72,9 @@ Each file is checked the way your platform checks it. Most compare a checksum, t
|
||||
- **12 platforms** supported with platform-specific verification
|
||||
- **506 emulators** profiled from source (RetroArch cores + standalone)
|
||||
- **546 systems** handled by those emulators (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
|
||||
- **18,988 files in the collection**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,258 system files, 2,810 arcade ROM sets, 10,920 game and engine data files. That is every platform and emulator together, so no pack holds them all: each carries what its own emulators load, counted in the download table
|
||||
- **562 of 5,258 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index
|
||||
- **16670 MB** total collection size
|
||||
- **18,997 files in the collection**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,261 system files, 2,808 arcade ROM sets, 10,928 game and engine data files. That is every platform and emulator together, so no pack holds them all: each carries what its own emulators load, counted in the download table
|
||||
- **562 of 5,261 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index
|
||||
- **16677 MB** total collection size
|
||||
|
||||
## Supported systems
|
||||
|
||||
@@ -86,18 +86,18 @@ Full list with per-file details: **[https://abdess.github.io/retrobios/](https:/
|
||||
|
||||
| Platform | On its BIOS list | Files its emulators load | Checked by |
|
||||
|----------|-----------------:|-------------------------:|------------|
|
||||
| Batocera | 353/353 | 12,274/12,704 | MD5 hash |
|
||||
| BizHawk | 118/118 | 649/650 | SHA1 hash |
|
||||
| EmuDeck | 168/168 | 381/383 | MD5 hash |
|
||||
| Lakka | 527/527 | 5,263/5,293 | file presence |
|
||||
| Batocera | 353/353 | 12,306/12,737 | MD5 hash |
|
||||
| BizHawk | 118/118 | 806/807 | SHA1 hash |
|
||||
| EmuDeck | 168/168 | 431/433 | MD5 hash |
|
||||
| Lakka | 527/527 | 5,264/5,294 | file presence |
|
||||
| MiSTer FPGA | 81/81 | - | MD5 hash |
|
||||
| ROCKNIX | 38/38 | 5,700/5,730 | MD5 hash |
|
||||
| Recalbox | 351/351 | 2,727/2,735 | MD5 hash |
|
||||
| RetroArch | 527/527 | 5,263/5,293 | file presence |
|
||||
| RetroBat | 348/348 | 11,748/12,178 | MD5 hash |
|
||||
| RetroDECK | 2,008/2,008 | 5,280/5,330 | MD5 hash |
|
||||
| RetroPie * | 527/527 | 9,182/9,324 | file presence |
|
||||
| RomM | 381/381 | 624/630 | MD5 hash |
|
||||
| ROCKNIX | 38/38 | 5,698/5,728 | MD5 hash |
|
||||
| Recalbox | 351/351 | 2,730/2,738 | MD5 hash |
|
||||
| RetroArch | 527/527 | 5,264/5,294 | file presence |
|
||||
| RetroBat | 348/348 | 11,889/12,319 | MD5 hash |
|
||||
| RetroDECK | 2,008/2,008 | 5,407/5,457 | MD5 hash |
|
||||
| RetroPie * | 527/527 | 9,183/9,325 | file presence |
|
||||
| RomM | 381/381 | 751/757 | MD5 hash |
|
||||
|
||||
Each fraction is what the pack has over what is needed, counting required and optional files alike since both ship. The first column is the BIOS list the platform publishes. The second counts files its emulators load that this list never mentions, found by reading their source code, and it is routinely several times larger. A short fraction means files are still missing, and they are named in the [gap analysis](https://abdess.github.io/retrobios/gaps/).
|
||||
That second number is a floor, not a ceiling: an emulator that accepts any file handed to it names none in its code, so nothing there can be counted.
|
||||
@@ -180,4 +180,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-10-05T23:10:58Z*
|
||||
*Auto-generated on 2026-10-06T11:05:39Z*
|
||||
File renamed without changes.
File diff suppressed because it is too large.
Load diff
File renamed without changes.
File renamed without changes.
File diff suppressed because it is too large.
Load diff
Binary file not shown.
@@ -0,0 +1,498 @@
|
||||
// SPDX-FileCopyrightText: 2002-2025 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#ifndef FXAA_HLSL
|
||||
#define FXAA_HLSL 0
|
||||
#endif
|
||||
#ifndef FXAA_GLSL_130
|
||||
#define FXAA_GLSL_130 0
|
||||
#endif
|
||||
#ifndef FXAA_GLSL_VK
|
||||
#define FXAA_GLSL_VK 0
|
||||
#endif
|
||||
|
||||
#define UHQ_FXAA 1 //High Quality Fast Approximate Anti Aliasing. Adapted for GS from Timothy Lottes FXAA 3.11.
|
||||
#define FxaaSubpixMax 0.0 //[0.00 to 1.00] Amount of subpixel aliasing removal. 0.00: Edge only antialiasing (no blurring)
|
||||
#define FxaaEarlyExit 1 //[0 or 1] Use Fxaa early exit pathing. When disabled, the entire scene is antialiased(FSAA). 0 is off, 1 is on.
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[GLOBALS|FUNCTIONS]
|
||||
------------------------------------------------------------------------------*/
|
||||
#if (FXAA_GLSL_130 == 1)
|
||||
|
||||
in vec2 PSin_t;
|
||||
|
||||
layout(location = 0) out vec4 SV_Target0;
|
||||
layout(binding = 0) uniform sampler2D TextureSampler;
|
||||
|
||||
#elif (FXAA_GLSL_VK == 1)
|
||||
|
||||
layout(location = 0) in vec2 PSin_t;
|
||||
layout(location = 0) out vec4 SV_Target0;
|
||||
layout(set = 0, binding = 0) uniform sampler2D TextureSampler;
|
||||
|
||||
#elif (FXAA_HLSL == 1)
|
||||
Texture2D Texture : register(t0);
|
||||
SamplerState TextureSampler : register(s0);
|
||||
|
||||
struct VS_INPUT
|
||||
{
|
||||
float4 p : POSITION;
|
||||
float2 t : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct VS_OUTPUT
|
||||
{
|
||||
float4 p : SV_Position;
|
||||
float2 t : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct PS_OUTPUT
|
||||
{
|
||||
float4 c : SV_Target0;
|
||||
};
|
||||
|
||||
#elif defined(__METAL_VERSION__)
|
||||
static constexpr sampler MAIN_SAMPLER(coord::normalized, address::clamp_to_edge, filter::linear);
|
||||
#endif
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[FXAA CODE SECTION]
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
#if (FXAA_HLSL == 1)
|
||||
struct FxaaTex { SamplerState smpl; Texture2D tex; };
|
||||
#define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)
|
||||
#define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)
|
||||
#define FxaaDiscard clip(-1)
|
||||
#define FxaaSat(x) saturate(x)
|
||||
|
||||
#elif (FXAA_GLSL_130 == 1 || FXAA_GLSL_VK == 1)
|
||||
#define int2 ivec2
|
||||
#define float2 vec2
|
||||
#define float3 vec3
|
||||
#define float4 vec4
|
||||
#define FxaaDiscard discard
|
||||
#define FxaaSat(x) clamp(x, 0.0, 1.0)
|
||||
#define FxaaTex sampler2D
|
||||
#define FxaaTexTop(t, p) textureLod(t, p, 0.0)
|
||||
#define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)
|
||||
|
||||
#elif defined(__METAL_VERSION__)
|
||||
#define FxaaTex texture2d<float>
|
||||
#define FxaaTexTop(t, p) t.sample(MAIN_SAMPLER, p)
|
||||
#define FxaaTexOff(t, p, o, r) t.sample(MAIN_SAMPLER, p, o)
|
||||
#define FxaaDiscard discard_fragment()
|
||||
#define FxaaSat(x) saturate(x)
|
||||
#endif
|
||||
|
||||
#define FxaaEdgeThreshold 0.063
|
||||
#define FxaaEdgeThresholdMin 0.00
|
||||
#define FXAA_QUALITY_P0 1.0
|
||||
#define FXAA_QUALITY_P1 1.5
|
||||
#define FXAA_QUALITY_P2 2.0
|
||||
#define FXAA_QUALITY_P3 2.0
|
||||
#define FXAA_QUALITY_P4 2.0
|
||||
#define FXAA_QUALITY_P5 2.0
|
||||
#define FXAA_QUALITY_P6 2.0
|
||||
#define FXAA_QUALITY_P7 2.0
|
||||
#define FXAA_QUALITY_P8 2.0
|
||||
#define FXAA_QUALITY_P9 2.0
|
||||
#define FXAA_QUALITY_P10 4.0
|
||||
#define FXAA_QUALITY_P11 8.0
|
||||
#define FXAA_QUALITY_P12 8.0
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[GAMMA PREPASS CODE SECTION]
|
||||
------------------------------------------------------------------------------*/
|
||||
float RGBLuminance(float3 color)
|
||||
{
|
||||
const float3 lumCoeff = float3(0.2126729, 0.7151522, 0.0721750);
|
||||
return dot(color.rgb, lumCoeff);
|
||||
}
|
||||
|
||||
float3 RGBGammaToLinear(float3 color, float gamma)
|
||||
{
|
||||
color = FxaaSat(color);
|
||||
color.r = (color.r <= 0.0404482362771082) ?
|
||||
color.r / 12.92 : pow((color.r + 0.055) / 1.055, gamma);
|
||||
color.g = (color.g <= 0.0404482362771082) ?
|
||||
color.g / 12.92 : pow((color.g + 0.055) / 1.055, gamma);
|
||||
color.b = (color.b <= 0.0404482362771082) ?
|
||||
color.b / 12.92 : pow((color.b + 0.055) / 1.055, gamma);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
float3 LinearToRGBGamma(float3 color, float gamma)
|
||||
{
|
||||
color = FxaaSat(color);
|
||||
color.r = (color.r <= 0.00313066844250063) ?
|
||||
color.r * 12.92 : 1.055 * pow(color.r, 1.0 / gamma) - 0.055;
|
||||
color.g = (color.g <= 0.00313066844250063) ?
|
||||
color.g * 12.92 : 1.055 * pow(color.g, 1.0 / gamma) - 0.055;
|
||||
color.b = (color.b <= 0.00313066844250063) ?
|
||||
color.b * 12.92 : 1.055 * pow(color.b, 1.0 / gamma) - 0.055;
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
float4 PreGammaPass(float4 color)
|
||||
{
|
||||
const float GammaConst = 2.233;
|
||||
color.rgb = RGBGammaToLinear(color.rgb, GammaConst);
|
||||
color.rgb = LinearToRGBGamma(color.rgb, GammaConst);
|
||||
color.a = RGBLuminance(color.rgb);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[FXAA CODE SECTION]
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
float FxaaLuma(float4 rgba)
|
||||
{
|
||||
rgba.w = RGBLuminance(rgba.xyz);
|
||||
return rgba.w;
|
||||
}
|
||||
|
||||
float4 FxaaPixelShader(float2 pos, FxaaTex tex, float2 fxaaRcpFrame, float fxaaSubpix, float fxaaEdgeThreshold, float fxaaEdgeThresholdMin)
|
||||
{
|
||||
float2 posM = pos;
|
||||
float4 rgbyM = FxaaTexTop(tex, posM);
|
||||
rgbyM.w = RGBLuminance(rgbyM.xyz);
|
||||
#define lumaM rgbyM.w
|
||||
|
||||
float lumaS = FxaaLuma(FxaaTexOff(tex, posM, int2( 0, 1), fxaaRcpFrame.xy));
|
||||
float lumaE = FxaaLuma(FxaaTexOff(tex, posM, int2( 1, 0), fxaaRcpFrame.xy));
|
||||
float lumaN = FxaaLuma(FxaaTexOff(tex, posM, int2( 0,-1), fxaaRcpFrame.xy));
|
||||
float lumaW = FxaaLuma(FxaaTexOff(tex, posM, int2(-1, 0), fxaaRcpFrame.xy));
|
||||
|
||||
float maxSM = max(lumaS, lumaM);
|
||||
float minSM = min(lumaS, lumaM);
|
||||
float maxESM = max(lumaE, maxSM);
|
||||
float minESM = min(lumaE, minSM);
|
||||
float maxWN = max(lumaN, lumaW);
|
||||
float minWN = min(lumaN, lumaW);
|
||||
|
||||
float rangeMax = max(maxWN, maxESM);
|
||||
float rangeMin = min(minWN, minESM);
|
||||
float range = rangeMax - rangeMin;
|
||||
float rangeMaxScaled = rangeMax * fxaaEdgeThreshold;
|
||||
float rangeMaxClamped = max(fxaaEdgeThresholdMin, rangeMaxScaled);
|
||||
|
||||
#if (FxaaEarlyExit == 1)
|
||||
// Potential optimization, early exit.
|
||||
if (range < rangeMaxClamped)
|
||||
return rgbyM;
|
||||
#endif
|
||||
|
||||
float lumaNW = FxaaLuma(FxaaTexOff(tex, posM, int2(-1,-1), fxaaRcpFrame.xy));
|
||||
float lumaSE = FxaaLuma(FxaaTexOff(tex, posM, int2( 1, 1), fxaaRcpFrame.xy));
|
||||
float lumaNE = FxaaLuma(FxaaTexOff(tex, posM, int2( 1,-1), fxaaRcpFrame.xy));
|
||||
float lumaSW = FxaaLuma(FxaaTexOff(tex, posM, int2(-1, 1), fxaaRcpFrame.xy));
|
||||
|
||||
float lumaNS = lumaN + lumaS;
|
||||
float lumaWE = lumaW + lumaE;
|
||||
float subpixRcpRange = 1.0/range;
|
||||
float subpixNSWE = lumaNS + lumaWE;
|
||||
float edgeHorz1 = (-2.0 * lumaM) + lumaNS;
|
||||
float edgeVert1 = (-2.0 * lumaM) + lumaWE;
|
||||
float lumaNESE = lumaNE + lumaSE;
|
||||
float lumaNWNE = lumaNW + lumaNE;
|
||||
float edgeHorz2 = (-2.0 * lumaE) + lumaNESE;
|
||||
float edgeVert2 = (-2.0 * lumaN) + lumaNWNE;
|
||||
|
||||
float lumaNWSW = lumaNW + lumaSW;
|
||||
float lumaSWSE = lumaSW + lumaSE;
|
||||
float edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);
|
||||
float edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);
|
||||
float edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;
|
||||
float edgeVert3 = (-2.0 * lumaS) + lumaSWSE;
|
||||
float edgeHorz = abs(edgeHorz3) + edgeHorz4;
|
||||
float edgeVert = abs(edgeVert3) + edgeVert4;
|
||||
|
||||
float subpixNWSWNESE = lumaNWSW + lumaNESE;
|
||||
float lengthSign = fxaaRcpFrame.x;
|
||||
bool horzSpan = edgeHorz >= edgeVert;
|
||||
float subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;
|
||||
if(!horzSpan) lumaN = lumaW;
|
||||
if(!horzSpan) lumaS = lumaE;
|
||||
if(horzSpan) lengthSign = fxaaRcpFrame.y;
|
||||
float subpixB = (subpixA * (1.0/12.0)) - lumaM;
|
||||
|
||||
float gradientN = lumaN - lumaM;
|
||||
float gradientS = lumaS - lumaM;
|
||||
float lumaNN = lumaN + lumaM;
|
||||
float lumaSS = lumaS + lumaM;
|
||||
bool pairN = abs(gradientN) >= abs(gradientS);
|
||||
float gradient = max(abs(gradientN), abs(gradientS));
|
||||
if(pairN) lengthSign = -lengthSign;
|
||||
float subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);
|
||||
|
||||
float2 posB;
|
||||
posB.x = posM.x;
|
||||
posB.y = posM.y;
|
||||
float2 offNP;
|
||||
offNP.x = (!horzSpan) ? 0.0 : fxaaRcpFrame.x;
|
||||
offNP.y = ( horzSpan) ? 0.0 : fxaaRcpFrame.y;
|
||||
if(!horzSpan) posB.x += lengthSign * 0.5;
|
||||
if( horzSpan) posB.y += lengthSign * 0.5;
|
||||
|
||||
float2 posN;
|
||||
posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;
|
||||
posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;
|
||||
float2 posP;
|
||||
posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;
|
||||
posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;
|
||||
float subpixD = ((-2.0)*subpixC) + 3.0;
|
||||
float lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));
|
||||
float subpixE = subpixC * subpixC;
|
||||
float lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));
|
||||
|
||||
if(!pairN) lumaNN = lumaSS;
|
||||
float gradientScaled = gradient * 1.0/4.0;
|
||||
float lumaMM = lumaM - lumaNN * 0.5;
|
||||
float subpixF = subpixD * subpixE;
|
||||
bool lumaMLTZero = lumaMM < 0.0;
|
||||
lumaEndN -= lumaNN * 0.5;
|
||||
lumaEndP -= lumaNN * 0.5;
|
||||
bool doneN = abs(lumaEndN) >= gradientScaled;
|
||||
bool doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;
|
||||
bool doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;
|
||||
}}}}}}}}}}}
|
||||
|
||||
float dstN = posM.x - posN.x;
|
||||
float dstP = posP.x - posM.x;
|
||||
if(!horzSpan) dstN = posM.y - posN.y;
|
||||
if(!horzSpan) dstP = posP.y - posM.y;
|
||||
|
||||
bool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;
|
||||
float spanLength = (dstP + dstN);
|
||||
bool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;
|
||||
float spanLengthRcp = 1.0/spanLength;
|
||||
|
||||
bool directionN = dstN < dstP;
|
||||
float dst = min(dstN, dstP);
|
||||
bool goodSpan = directionN ? goodSpanN : goodSpanP;
|
||||
float subpixG = subpixF * subpixF;
|
||||
float pixelOffset = (dst * (-spanLengthRcp)) + 0.5;
|
||||
float subpixH = subpixG * fxaaSubpix;
|
||||
|
||||
float pixelOffsetGood = goodSpan ? pixelOffset : 0.0;
|
||||
float pixelOffsetSubpix = max(pixelOffsetGood, subpixH);
|
||||
if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;
|
||||
if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;
|
||||
|
||||
return float4(FxaaTexTop(tex, posM).xyz, lumaM);
|
||||
}
|
||||
|
||||
#if (FXAA_GLSL_130 == 1 || FXAA_GLSL_VK == 1)
|
||||
float4 FxaaPass(float4 FxaaColor, float2 uv0)
|
||||
#elif (FXAA_HLSL == 1)
|
||||
float4 FxaaPass(float4 FxaaColor : COLOR0, float2 uv0 : TEXCOORD0)
|
||||
#elif defined(__METAL_VERSION__)
|
||||
float4 FxaaPass(float4 FxaaColor, float2 uv0, texture2d<float> tex)
|
||||
#endif
|
||||
{
|
||||
|
||||
#if (FXAA_HLSL == 1)
|
||||
FxaaTex tex;
|
||||
tex.tex = Texture;
|
||||
tex.smpl = TextureSampler;
|
||||
|
||||
float2 PixelSize;
|
||||
Texture.GetDimensions(PixelSize.x, PixelSize.y);
|
||||
FxaaColor = FxaaPixelShader(uv0, tex, 1.0/PixelSize.xy, FxaaSubpixMax, FxaaEdgeThreshold, FxaaEdgeThresholdMin);
|
||||
|
||||
#elif (FXAA_GLSL_130 == 1 || FXAA_GLSL_VK == 1)
|
||||
vec2 PixelSize = vec2(textureSize(TextureSampler, 0));
|
||||
FxaaColor = FxaaPixelShader(uv0, TextureSampler, 1.0/PixelSize.xy, FxaaSubpixMax, FxaaEdgeThreshold, FxaaEdgeThresholdMin);
|
||||
#elif defined(__METAL_VERSION__)
|
||||
float2 PixelSize = float2(tex.get_width(), tex.get_height());
|
||||
FxaaColor = FxaaPixelShader(uv0, tex, 1.f/PixelSize, FxaaSubpixMax, FxaaEdgeThreshold, FxaaEdgeThresholdMin);
|
||||
#endif
|
||||
|
||||
return FxaaColor;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[MAIN() & COMBINE PASS CODE SECTION]
|
||||
------------------------------------------------------------------------------*/
|
||||
#if (FXAA_GLSL_130 == 1 || FXAA_GLSL_VK == 1)
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 color = texture(TextureSampler, PSin_t);
|
||||
color = PreGammaPass(color);
|
||||
color = FxaaPass(color, PSin_t);
|
||||
|
||||
SV_Target0 = float4(color.rgb, 1.0);
|
||||
}
|
||||
|
||||
#elif (FXAA_HLSL == 1)
|
||||
PS_OUTPUT main(VS_OUTPUT input)
|
||||
{
|
||||
PS_OUTPUT output;
|
||||
|
||||
float4 color = Texture.Sample(TextureSampler, input.t);
|
||||
|
||||
color = PreGammaPass(color);
|
||||
color = FxaaPass(color, input.t);
|
||||
|
||||
output.c = float4(color.rgb, 1.0);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
// Metal main function in in fxaa.metal
|
||||
#endif
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,470 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
//#version 420 // Keep it for text editor detection
|
||||
|
||||
layout(std140, binding = 1) uniform cb20
|
||||
{
|
||||
vec2 VertexScale;
|
||||
vec2 VertexOffset;
|
||||
|
||||
vec2 TextureScale;
|
||||
vec2 TextureOffset;
|
||||
|
||||
vec2 PointSize;
|
||||
|
||||
uint MaxDepth;
|
||||
float LineAA1Width;
|
||||
};
|
||||
|
||||
#ifdef VERTEX_SHADER
|
||||
|
||||
#ifndef VS_EXPAND_NONE
|
||||
#define VS_EXPAND_NONE 0
|
||||
#define VS_EXPAND_POINT 1
|
||||
#define VS_EXPAND_LINE 2
|
||||
#define VS_EXPAND_SPRITE 3
|
||||
#define VS_EXPAND_LINE_AA1 4
|
||||
#define VS_EXPAND_TRIANGLE_AA1 5
|
||||
#endif
|
||||
|
||||
out SHADER
|
||||
{
|
||||
vec4 t_float;
|
||||
vec4 t_int;
|
||||
#if VS_IIP != 0
|
||||
vec4 c;
|
||||
#else
|
||||
flat vec4 c;
|
||||
#endif
|
||||
float inv_cov; // We use the inverse to make it simpler to interpolate.
|
||||
flat uint interior; // 1 for triangle interior; 0 for edge.
|
||||
} VSout;
|
||||
|
||||
const float exp_min32 = exp2(-32.0f);
|
||||
|
||||
#if VS_EXPAND == VS_EXPAND_NONE
|
||||
|
||||
layout(location = 0) in vec2 i_st;
|
||||
layout(location = 2) in vec4 i_c;
|
||||
layout(location = 3) in float i_q;
|
||||
layout(location = 4) in uvec2 i_p;
|
||||
layout(location = 5) in uint i_z;
|
||||
layout(location = 6) in uvec2 i_uv;
|
||||
layout(location = 7) in vec4 i_f;
|
||||
|
||||
void texture_coord()
|
||||
{
|
||||
vec2 uv = vec2(i_uv) - TextureOffset;
|
||||
vec2 st = i_st - TextureOffset;
|
||||
|
||||
// Float coordinate
|
||||
VSout.t_float.xy = st;
|
||||
VSout.t_float.w = i_q;
|
||||
|
||||
// Integer coordinate => normalized
|
||||
VSout.t_int.xy = uv * TextureScale;
|
||||
#if VS_FST
|
||||
// Integer coordinate => integral
|
||||
VSout.t_int.zw = uv;
|
||||
#else
|
||||
// Some games uses float coordinate for post-processing effect
|
||||
VSout.t_int.zw = st / TextureScale;
|
||||
#endif
|
||||
}
|
||||
|
||||
void vs_main()
|
||||
{
|
||||
// Clamp to max depth, gs doesn't wrap
|
||||
highp uint z = min(i_z, MaxDepth);
|
||||
|
||||
// pos -= 0.05 (1/320 pixel) helps avoiding rounding problems (integral part of pos is usually 5 digits, 0.05 is about as low as we can go)
|
||||
// example: ceil(afterseveralvertextransformations(y = 133)) => 134 => line 133 stays empty
|
||||
// input granularity is 1/16 pixel, anything smaller than that won't step drawing up/left by one pixel
|
||||
// example: 133.0625 (133 + 1/16) should start from line 134, ceil(133.0625 - 0.05) still above 133
|
||||
gl_Position.xy = vec2(i_p) - vec2(0.05f, 0.05f);
|
||||
gl_Position.xy = gl_Position.xy * VertexScale - VertexOffset;
|
||||
|
||||
#if HAS_CLIP_CONTROL
|
||||
gl_Position.z = float(z) * exp_min32;
|
||||
#else
|
||||
gl_Position.z = (float(z) * exp_min32) * 2.0f - 1.0f;
|
||||
#endif
|
||||
|
||||
gl_Position.w = 1.0f;
|
||||
|
||||
texture_coord();
|
||||
|
||||
VSout.c = i_c;
|
||||
VSout.t_float.z = i_f.x; // pack for with texture
|
||||
|
||||
#if VS_POINT_SIZE
|
||||
gl_PointSize = PointSize.x;
|
||||
#endif
|
||||
}
|
||||
|
||||
#else // VS_EXPAND
|
||||
|
||||
struct RawVertex
|
||||
{
|
||||
vec2 ST;
|
||||
uint RGBA;
|
||||
float Q;
|
||||
uint XY;
|
||||
uint Z;
|
||||
uint UV;
|
||||
uint FOG;
|
||||
};
|
||||
|
||||
layout(std140, binding = 4) uniform cb22
|
||||
{
|
||||
uint BaseVertex;
|
||||
uint BaseIndex;
|
||||
uint pad_cb22_0;
|
||||
uint pad_cb22_1;
|
||||
};
|
||||
|
||||
layout(std140, binding = 2) readonly buffer VertexBuffer {
|
||||
RawVertex vertex_buffer[];
|
||||
};
|
||||
|
||||
// Warning: use std430 instead of std140 so that the ints are tightly packed.
|
||||
layout(std430, binding = 3) readonly buffer IndexBuffer {
|
||||
uint index_buffer[];
|
||||
};
|
||||
|
||||
struct ProcessedVertex
|
||||
{
|
||||
vec4 p;
|
||||
vec4 t_float;
|
||||
vec4 t_int;
|
||||
vec4 c;
|
||||
};
|
||||
|
||||
uint load_index(uint _i)
|
||||
{
|
||||
uint i = _i + BaseIndex;
|
||||
// i is even => load lower 16 bits; i odd => load upper 16 bits.
|
||||
uint shift = (i & 1u) << 4u;
|
||||
return (index_buffer[i >> 1u] >> shift) & 0xFFFFu;
|
||||
}
|
||||
|
||||
ProcessedVertex load_vertex(uint index)
|
||||
{
|
||||
RawVertex rvtx = vertex_buffer[BaseVertex + index];
|
||||
|
||||
vec2 i_st = rvtx.ST;
|
||||
vec4 i_c = vec4(uvec4(bitfieldExtract(rvtx.RGBA, 0, 8), bitfieldExtract(rvtx.RGBA, 8, 8),
|
||||
bitfieldExtract(rvtx.RGBA, 16, 8), bitfieldExtract(rvtx.RGBA, 24, 8)));
|
||||
float i_q = rvtx.Q;
|
||||
uvec2 i_p = uvec2(bitfieldExtract(rvtx.XY, 0, 16), bitfieldExtract(rvtx.XY, 16, 16));
|
||||
uint i_z = rvtx.Z;
|
||||
uvec2 i_uv = uvec2(bitfieldExtract(rvtx.UV, 0, 16), bitfieldExtract(rvtx.UV, 16, 16));
|
||||
vec4 i_f = unpackUnorm4x8(rvtx.FOG);
|
||||
|
||||
ProcessedVertex vtx;
|
||||
|
||||
uint z = min(i_z, MaxDepth);
|
||||
vtx.p.xy = vec2(i_p) - vec2(0.05f, 0.05f);
|
||||
vtx.p.xy = vtx.p.xy * VertexScale - VertexOffset;
|
||||
|
||||
#if HAS_CLIP_CONTROL
|
||||
vtx.p.z = float(z) * exp_min32;
|
||||
#else
|
||||
vtx.p.z = (float(z) * exp_min32) * 2.0f - 1.0f;
|
||||
#endif
|
||||
|
||||
vtx.p.w = 1.0f;
|
||||
|
||||
vec2 uv = vec2(i_uv) - TextureOffset;
|
||||
vec2 st = i_st - TextureOffset;
|
||||
|
||||
vtx.t_float.xy = st;
|
||||
vtx.t_float.w = i_q;
|
||||
|
||||
vtx.t_int.xy = uv * TextureScale;
|
||||
#if VS_FST
|
||||
vtx.t_int.zw = uv;
|
||||
#else
|
||||
vtx.t_int.zw = st / TextureScale;
|
||||
#endif
|
||||
|
||||
vtx.c = i_c;
|
||||
vtx.t_float.z = i_f.x;
|
||||
|
||||
return vtx;
|
||||
}
|
||||
|
||||
// Convert XY from NDC to GS pixel coordinates (i.e. 1.0 = 1 GS pixel).
|
||||
vec2 get_xy_unscaled(vec2 xy)
|
||||
{
|
||||
return round(xy / VertexScale) / 16.0f;
|
||||
}
|
||||
|
||||
// Get the XY deltas in GS pixel coordinates, using first vertex as the origin.
|
||||
mat2 get_xy_deltas_unscaled(ProcessedVertex v0, ProcessedVertex v1, ProcessedVertex v2)
|
||||
{
|
||||
vec2 xy0 = get_xy_unscaled(v0.p.xy);
|
||||
vec2 xy1 = get_xy_unscaled(v1.p.xy);
|
||||
vec2 xy2 = get_xy_unscaled(v2.p.xy);
|
||||
return mat2(xy1 - xy0, xy2 - xy0);
|
||||
}
|
||||
|
||||
// Get the AA1 outward expand direction to the edge formed by the first two vertices.
|
||||
// This is up or down for shallow (X dominant) edges, and right or left for steep (Y dominant) edges.
|
||||
// Similar expansion to line AA1 except instead of expanding on both sides of the line,
|
||||
// expand on on the side towards the outside of the triangle.
|
||||
vec2 get_aa1_triangle_expand_dir(ProcessedVertex v0, ProcessedVertex v1, ProcessedVertex v2)
|
||||
{
|
||||
mat2 xy_deltas = get_xy_deltas_unscaled(v0, v1, v2);
|
||||
vec2 line_delta = xy_deltas[0];
|
||||
vec2 line_opposite = xy_deltas[1];
|
||||
|
||||
vec2 line_normal = vec2(line_delta.y, -line_delta.x);
|
||||
vec2 line_expand = abs(line_delta.x) >= abs(line_delta.y) ? vec2(0.0f, 1.0f) : vec2(1.0f, 0.0f);
|
||||
|
||||
if ((dot(line_expand, line_normal) >= 0.0f) == (dot(line_opposite, line_normal) >= 0.0f))
|
||||
{
|
||||
// Expand direction point towards the interior so flip it.
|
||||
line_expand = -line_expand;
|
||||
}
|
||||
|
||||
return line_expand;
|
||||
}
|
||||
|
||||
mat2 get_inverse(mat2 mat, float det)
|
||||
{
|
||||
return mat2(mat[1][1], -mat[0][1], -mat[1][0], mat[0][0]) * (1.0f / det);
|
||||
}
|
||||
|
||||
// Extrapolate triangle attributes from the first vertex along the given direction.
|
||||
// dp_mat is derived from the input vertices, it is passed in to avoid recomputing.
|
||||
void extrapolate_aa1_triangle_edge(inout ProcessedVertex v0, ProcessedVertex v1, ProcessedVertex v2, mat2 dp_mat, vec2 dp)
|
||||
{
|
||||
// Get texture deltas
|
||||
#if VS_TME
|
||||
#if VS_FST
|
||||
mat2 dt = mat2(v1.t_int.zw - v0.t_int.zw, v2.t_int.zw - v0.t_int.zw);
|
||||
#else
|
||||
mat2 dt = mat2(v1.t_float.xy - v0.t_float.xy, v2.t_float.xy - v0.t_float.xy);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Get color delta if interpolating
|
||||
#if VS_IIP
|
||||
mat2x4 dc = mat2x4(v1.c - v0.c, v2.c - v0.c);
|
||||
#endif
|
||||
|
||||
vec2 dz = vec2(v1.p.z - v0.p.z, v2.p.z - v0.p.z); // Z deltas
|
||||
|
||||
vec2 df = vec2(v1.t_float.z - v0.t_float.z, v2.t_float.z - v0.t_float.z); // Fog deltas
|
||||
|
||||
vec2 dq = vec2(v1.t_float.w - v0.t_float.w, v2.t_float.w - v0.t_float.w); // Q deltas
|
||||
|
||||
// To prevent unstable extrapolation, do not extrapolate if the
|
||||
// minimum perpendicular length of the triangle is < 2 pixels.
|
||||
float dp_det = determinant(dp_mat); // Twice signed triangle area.
|
||||
float len0 = length(dp_mat[0]);
|
||||
float len1 = length(dp_mat[1]);
|
||||
float len2 = length(dp_mat[1] - dp_mat[0]);
|
||||
float min_perp_length = abs(dp_det) / max(max(len0, len1), len2);
|
||||
|
||||
// Get the position -> barycentric weight matrix
|
||||
mat2 inv_dp_mat = get_inverse(dp_mat, dp_det);
|
||||
|
||||
vec2 weights = min_perp_length < 2.0f ? vec2(0) : inv_dp_mat * dp;
|
||||
|
||||
v0.p.xy += dp * PointSize; // Extrapolate position
|
||||
|
||||
// Extrapolate texture coords
|
||||
#if VS_TME
|
||||
#if VS_FST
|
||||
v0.t_int.zw += dt * weights;
|
||||
v0.t_int.xy = v0.t_int.zw * TextureScale;
|
||||
#else
|
||||
v0.t_float.xy += dt * weights;
|
||||
v0.t_int.zw = v0.t_float.xy / TextureScale;
|
||||
v0.t_float.w += dot(dq, weights);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Extrapolate and clamp color
|
||||
#if VS_IIP
|
||||
v0.c += dc * weights;
|
||||
v0.c = clamp(v0.c, vec4(0), vec4(255));
|
||||
#endif
|
||||
|
||||
v0.p.z += dot(dz, weights); // Extrapolate depth
|
||||
|
||||
v0.t_float.z += dot(df, weights); // Extrapolate fog
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
ProcessedVertex vtx;
|
||||
|
||||
uint vid = uint(gl_VertexID);
|
||||
|
||||
#if VS_EXPAND == VS_EXPAND_POINT
|
||||
|
||||
vtx = load_vertex(vid >> 2);
|
||||
|
||||
vtx.p.x += ((vid & 1u) != 0u) ? PointSize.x : 0.0f;
|
||||
vtx.p.y += ((vid & 2u) != 0u) ? PointSize.y : 0.0f;
|
||||
|
||||
#elif (VS_EXPAND == VS_EXPAND_LINE) || (VS_EXPAND == VS_EXPAND_LINE_AA1)
|
||||
|
||||
uint vid_base = vid >> 2;
|
||||
bool is_bottom = (vid & 2u) != 0u;
|
||||
bool is_right = (vid & 1u) != 0u;
|
||||
uint vid_other = is_bottom ? vid_base - 1u : vid_base + 1u;
|
||||
vtx = load_vertex(vid_base);
|
||||
ProcessedVertex other = load_vertex(vid_other);
|
||||
|
||||
// Use bottom minus top for delta regardless of which vertex we are expanding.
|
||||
vec2 line_delta = is_bottom ? (vtx.p.xy - other.p.xy) : (other.p.xy - vtx.p.xy);
|
||||
vec2 line_vector = normalize(line_delta / VertexScale);
|
||||
vec2 line_expand = vec2(line_vector.y, -line_vector.x);
|
||||
#if VS_EXPAND == VS_EXPAND_LINE_AA1
|
||||
line_expand *= 2.0f * LineAA1Width;
|
||||
#endif
|
||||
vec2 line_width = (line_expand * PointSize) / 2.0f;
|
||||
vec2 offset = is_right ? line_width : -line_width;
|
||||
vtx.p.xy += offset;
|
||||
|
||||
#if VS_EXPAND == VS_EXPAND_LINE_AA1
|
||||
VSout.inv_cov = is_right ? 1.0f : -1.0f;
|
||||
#endif
|
||||
|
||||
// Lines will be run as (0 1 2) (1 2 3)
|
||||
// This means that both triangles will have a point based off the top line point as their first point
|
||||
// So we don't have to do anything for !IIP
|
||||
|
||||
#elif VS_EXPAND == VS_EXPAND_SPRITE
|
||||
|
||||
// Sprite points are always in pairs
|
||||
uint vid_base = vid >> 1;
|
||||
uint vid_lt = vid_base & ~1u;
|
||||
uint vid_rb = vid_base | 1u;
|
||||
|
||||
ProcessedVertex lt = load_vertex(vid_lt);
|
||||
ProcessedVertex rb = load_vertex(vid_rb);
|
||||
vtx = rb;
|
||||
|
||||
bool is_right = ((vid & 1u) != 0u);
|
||||
vtx.p.x = is_right ? lt.p.x : vtx.p.x;
|
||||
vtx.t_float.x = is_right ? lt.t_float.x : vtx.t_float.x;
|
||||
vtx.t_int.xz = is_right ? lt.t_int.xz : vtx.t_int.xz;
|
||||
|
||||
bool is_bottom = ((vid & 2u) != 0u);
|
||||
vtx.p.y = is_bottom ? lt.p.y : vtx.p.y;
|
||||
vtx.t_float.y = is_bottom ? lt.t_float.y : vtx.t_float.y;
|
||||
vtx.t_int.yw = is_bottom ? lt.t_int.yw : vtx.t_int.yw;
|
||||
|
||||
#elif VS_EXPAND == VS_EXPAND_TRIANGLE_AA1
|
||||
|
||||
// Triangles with AA1 are expanded as follows:
|
||||
// - Vertices 0-2: Interior of triangle (1 triangle).
|
||||
// - Vertices 3-8: First edge expanded (2 triangles).
|
||||
// - Vertices 9-14: Second edge expanded (2 triangles).
|
||||
// - Vertices 15-20: Third edge expanded (2 triangles).
|
||||
// - Vertices 21-26: First corner cap (2 triangles).
|
||||
// - Vertices 27-32: Second corner cap (2 triangles).
|
||||
// - Vertices 33-38: Third corner cap (2 triangles).
|
||||
|
||||
uint prim_id = vid / 39u;
|
||||
uint prim_offset = vid - 39u * prim_id; // range: 0-38
|
||||
bool interior = prim_offset < 3u;
|
||||
bool edge = 3u <= prim_offset && prim_offset < 21u;
|
||||
|
||||
if (interior)
|
||||
{
|
||||
vtx = load_vertex(load_index(3u * prim_id + prim_offset));
|
||||
VSout.inv_cov = 0.0f; // Full coverage
|
||||
VSout.interior = 1u;
|
||||
}
|
||||
else if (edge)
|
||||
{
|
||||
// Vertex indices for this edge. We need all 3 for determining exterior/interior.
|
||||
uint prim_offset_edges = prim_offset - 3u; // range: 0-17
|
||||
uint i0 = prim_offset_edges / 6u;
|
||||
uint i1 = (i0 >= 2u) ? i0 - 2u : i0 + 1u;
|
||||
uint i2 = (i0 >= 1u) ? i0 - 1u : i0 + 2u;
|
||||
uint edge_offset = prim_offset_edges - 6u * i0; // range: 0-5
|
||||
|
||||
// Note: order of top/bottom, inside/outside is arbitrary,
|
||||
// as long as it assembles into two triangles forming a quad.
|
||||
bool is_bottom = (2u <= edge_offset) && (edge_offset <= 4u);
|
||||
bool is_outside = (edge_offset & 1u) != 0u;
|
||||
|
||||
vtx = load_vertex(load_index(3u * prim_id + (is_bottom ? i1 : i0)));
|
||||
ProcessedVertex other = load_vertex(load_index(3u * prim_id + (is_bottom ? i0 : i1)));
|
||||
ProcessedVertex opposite = load_vertex(load_index(3u * prim_id + i2));
|
||||
|
||||
mat2 pos_deltas = get_xy_deltas_unscaled(vtx, other, opposite);
|
||||
|
||||
vec2 expand_dir = is_outside ? get_aa1_triangle_expand_dir(vtx, other, opposite) : vec2(0);
|
||||
|
||||
// Do actual extrapolation, or no-op if expand_dir == 0.
|
||||
extrapolate_aa1_triangle_edge(vtx, other, opposite, pos_deltas, expand_dir);
|
||||
|
||||
VSout.inv_cov = is_outside ? 1.0f : 0.0f; // No coverage on outside, otherwise full.
|
||||
|
||||
VSout.interior = 0u;
|
||||
}
|
||||
else // Corner cap
|
||||
{
|
||||
// Vertex indices for this cap. We need all 3 for determining exterior/interior.
|
||||
uint prim_offset_cap = prim_offset - 21u; // range: 0-17
|
||||
uint i0 = prim_offset_cap / 6u;
|
||||
uint i1 = (i0 >= 2u) ? i0 - 2u : i0 + 1u;
|
||||
uint i2 = (i0 >= 1u) ? i0 - 1u : i0 + 2u;
|
||||
uint cap_offset = prim_offset_cap - 6u * i0; // range: 0-5
|
||||
|
||||
bool is_near_corner = cap_offset == 0u || cap_offset == 3u;
|
||||
bool is_far_corner = cap_offset == 2u || cap_offset == 5u;
|
||||
bool is_first_tri = cap_offset < 3u;
|
||||
|
||||
// First triangle is on the side of vertex i1 and second is on the side of vertex i2.
|
||||
vtx = load_vertex(load_index(3u * prim_id + i0));
|
||||
ProcessedVertex other = load_vertex(load_index(3u * prim_id + (is_first_tri ? i1 : i2)));
|
||||
ProcessedVertex opposite = load_vertex(load_index(3u * prim_id + (is_first_tri ? i2 : i1)));
|
||||
|
||||
mat2 pos_deltas = get_xy_deltas_unscaled(vtx, other, opposite);
|
||||
|
||||
// Get the edge expansion directions of both incident edges.
|
||||
vec2 edge_expand_dir_0 = get_aa1_triangle_expand_dir(vtx, other, opposite);
|
||||
vec2 edge_expand_dir_1 = get_aa1_triangle_expand_dir(vtx, opposite, other);
|
||||
|
||||
// Check if the corner is already filled by the expanded edges.
|
||||
// This happens if the expand directions are the same.
|
||||
// If so we output a degenerate triangle at this corner.
|
||||
bool corner_filled = all(equal(edge_expand_dir_0, edge_expand_dir_1));
|
||||
|
||||
// Nothing if corner is filled, otherwise opposite to the bisector of the corner angle.
|
||||
vec2 far_corner_dir = corner_filled ? vec2(0) : -normalize((pos_deltas[0] + pos_deltas[1]) / 2.0f);
|
||||
|
||||
// Determine the expand direction.
|
||||
vec2 expand_dir = is_near_corner ? vec2(0) : // No extrapolation
|
||||
is_far_corner ? far_corner_dir : // Opposite to the angle bisector of corner
|
||||
edge_expand_dir_0; // Standard AA1 edge expansion
|
||||
|
||||
// Do the actual extrapolation (no-op if expand_dir == 0).
|
||||
extrapolate_aa1_triangle_edge(vtx, other, opposite, pos_deltas, expand_dir);
|
||||
|
||||
VSout.inv_cov = is_near_corner ? 0.0f : 1.0f; // Full coverage at near corner, otherwise none.
|
||||
|
||||
VSout.interior = 0u;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
gl_Position = vtx.p;
|
||||
VSout.t_float = vtx.t_float;
|
||||
VSout.t_int = vtx.t_int;
|
||||
VSout.c = vtx.c;
|
||||
}
|
||||
|
||||
#endif // VS_EXPAND
|
||||
|
||||
#endif // VERTEX_SHADER
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
Binary file not shown.
+1183
-157
File diff suppressed because it is too large.
Load diff
@@ -93,7 +93,6 @@ files:
|
||||
- name: colecovision.rom
|
||||
system: colecovision
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "990bf1956f10207d8781b619eb74f89b00d921c8d45c95c334c16c8cceca09ad"
|
||||
validation: [sha256]
|
||||
description: "ColecoVision BIOS"
|
||||
@@ -103,7 +102,6 @@ files:
|
||||
- name: disksys.rom
|
||||
system: famicom-disk-system
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "fdc1a76e654feea993fcb38366e05ee5f4eb641f86fe6bebaeefd412e112dd72"
|
||||
validation: [sha256]
|
||||
description: "Famicom Disk System BIOS"
|
||||
@@ -113,7 +111,6 @@ files:
|
||||
- name: gba_bios.bin
|
||||
system: game-boy-advance
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570"
|
||||
validation: [sha256]
|
||||
description: "GBA BIOS"
|
||||
@@ -123,7 +120,6 @@ files:
|
||||
- name: bios.gg
|
||||
system: game-gear
|
||||
required: false
|
||||
mode: standalone
|
||||
sha256: "8c8a21335038285cfa03dc076100c1f0bfadf3e4ff70796f11f3dfaaab60eee2"
|
||||
validation: [sha256]
|
||||
description: "Game Gear BIOS"
|
||||
@@ -134,7 +130,6 @@ files:
|
||||
system: master-system
|
||||
region: [north-america]
|
||||
required: false
|
||||
mode: standalone
|
||||
sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50"
|
||||
validation: [sha256]
|
||||
description: "Master System BIOS (US)"
|
||||
@@ -144,7 +139,6 @@ files:
|
||||
system: master-system
|
||||
region: [japan]
|
||||
required: false
|
||||
mode: standalone
|
||||
sha256: "67846e26764bd862f19179294347f7353a4166b62ac4198a5ec32933b7da486e"
|
||||
validation: [sha256]
|
||||
description: "Master System BIOS (Japan)"
|
||||
@@ -154,7 +148,6 @@ files:
|
||||
system: master-system
|
||||
region: [europe]
|
||||
required: false
|
||||
mode: standalone
|
||||
sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50"
|
||||
validation: [sha256]
|
||||
description: "Master System BIOS (Europe), same binary as US"
|
||||
@@ -166,7 +159,6 @@ files:
|
||||
system: mega-cd
|
||||
region: [north-america]
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "fb477cdbf94c84424c2feca4fe40656d85393fe7b7b401911b45ad2eb991258c"
|
||||
validation: [sha256]
|
||||
description: "Mega CD / Sega CD BIOS (US)"
|
||||
@@ -176,7 +168,6 @@ files:
|
||||
system: mega-cd
|
||||
region: [japan]
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "7133fc2dd2fe5b7d0acd53a5f10f3d00b5d31270239ad20d74ef32393e24af88"
|
||||
validation: [sha256]
|
||||
description: "Mega CD BIOS (Japan)"
|
||||
@@ -186,7 +177,6 @@ files:
|
||||
system: mega-cd
|
||||
region: [europe]
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "fe608a2a07676a23ab5fd5eee2f53c9e2526d69a28aa16ccd85c0ec42e6933cb"
|
||||
validation: [sha256]
|
||||
description: "Mega CD BIOS (Europe)"
|
||||
@@ -197,7 +187,6 @@ files:
|
||||
system: mega-ld
|
||||
region: [north-america]
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "e89b5a319f66406611ec82fe5c4aa6827c175a05135bd7bd177366cba0465021"
|
||||
validation: [sha256]
|
||||
description: "LaserActive SEGA PAC BIOS (US), v1.04"
|
||||
@@ -207,7 +196,6 @@ files:
|
||||
system: mega-ld
|
||||
region: [japan]
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "dca942d977217f703d8d1c6eb1aeb6b32c78ecc421486bbb46c459d385161c94"
|
||||
validation: [sha256]
|
||||
description: "LaserActive SEGA PAC BIOS (Japan), v1.02"
|
||||
@@ -217,7 +205,6 @@ files:
|
||||
- name: MSX.ROM
|
||||
system: msx
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "413a2b601a94b3792e054be2439cc77a1819cceadbfa9542f88d51c7480f2ef0"
|
||||
validation: [sha256]
|
||||
description: "MSX BIOS ROM (Japan)"
|
||||
@@ -227,7 +214,6 @@ files:
|
||||
- name: MSX2.ROM
|
||||
system: msx2
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "0c672d86ead61a97f49a583b88b7c1905da120645cd44f0c9f2baf4f4631e0b1"
|
||||
validation: [sha256]
|
||||
description: "MSX2 main BIOS ROM (Japan)"
|
||||
@@ -236,7 +222,6 @@ files:
|
||||
- name: MSX2EXT.ROM
|
||||
system: msx2
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "6c6f421a10c428d960b7ecc990f99af1c638147f747bddca7b0bf0e2ab738300"
|
||||
validation: [sha256]
|
||||
description: "MSX2 sub ROM (Japan)"
|
||||
@@ -246,7 +231,6 @@ files:
|
||||
- name: neo-epo.bin
|
||||
system: neo-geo
|
||||
required: true
|
||||
mode: standalone
|
||||
description: "Neo Geo AES BIOS. Accepts neogeo.zip (extracts neo-epo.bin) or direct file. Byte-swapped on load."
|
||||
source_ref: "desktop-ui/emulator/neo-geo-aes.cpp:14, mia/system/neo-geo-aes.cpp:16"
|
||||
|
||||
@@ -254,7 +238,6 @@ files:
|
||||
- name: sp-45.sp1
|
||||
system: neo-geo
|
||||
required: true
|
||||
mode: standalone
|
||||
description: "Neo Geo MVS BIOS. Accepts neogeo.zip (extracts sp-45.sp1) or direct file. Byte-swapped on load."
|
||||
source_ref: "desktop-ui/emulator/neo-geo-mvs.cpp:15, mia/system/neo-geo-mvs.cpp:16"
|
||||
|
||||
@@ -262,7 +245,6 @@ files:
|
||||
- name: ngp_bios.rom
|
||||
system: neo-geo-pocket
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "0293555b21c4fac516d25199df7809b26beeae150e1d4504a050db32264a6ad7"
|
||||
validation: [sha256]
|
||||
description: "Neo Geo Pocket BIOS"
|
||||
@@ -272,7 +254,6 @@ files:
|
||||
- name: ngpc_bios.rom
|
||||
system: neo-geo-pocket-color
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "8fb845a2f71514cec20728e2f0fecfade69444f8d50898b92c2259f1ba63e10d"
|
||||
validation: [sha256]
|
||||
description: "Neo Geo Pocket Color BIOS"
|
||||
@@ -283,7 +264,6 @@ files:
|
||||
system: nintendo-64dd
|
||||
region: [japan]
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "806400ec0df94b0755de6c5b8249d6b6a9866124c5ddbdac198bde22499bfb8b"
|
||||
validation: [sha256]
|
||||
description: "Nintendo 64DD IPL ROM (Japan retail)"
|
||||
@@ -293,7 +273,6 @@ files:
|
||||
system: nintendo-64dd
|
||||
region: [north-america]
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "e9fec87a45fba02399e88064b9e2f8cf0f2106e351c58279a87f05da5bc984ad"
|
||||
validation: [sha256]
|
||||
description: "Nintendo 64DD IPL ROM (US dev kit)"
|
||||
@@ -302,7 +281,6 @@ files:
|
||||
- name: 64dd_ipl_DEV.bin
|
||||
system: nintendo-64dd
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "9c2962a8b994a29e4cd04b3a6e4ed730a751414655ab6a9799ebf5fc08b79d44"
|
||||
validation: [sha256]
|
||||
description: "Nintendo 64DD IPL ROM (development)"
|
||||
@@ -312,7 +290,6 @@ files:
|
||||
- name: syscard1.pce
|
||||
system: pc-engine-cd
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "afe9f27f91ac918348555b86298b4f984643eafa2773196f2c5441ea84f0c3bb"
|
||||
validation: [sha256]
|
||||
description: "PC Engine CD-ROM2 System Card v1.0 (Japan). Also used by PC Engine LD."
|
||||
@@ -321,7 +298,6 @@ files:
|
||||
- name: syscard3.pce
|
||||
system: pc-engine-cd
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce"
|
||||
validation: [sha256]
|
||||
description: "Super CD-ROM2 System Card v3.0 (Japan). Also used by SuperGrafx CD as Arcade Card."
|
||||
@@ -330,7 +306,6 @@ files:
|
||||
- name: syscard3u.pce
|
||||
system: pc-engine-cd
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "cadac2725711b3c442bcf237b02f5a5210c96f17625c35fa58f009e0ed39e4db"
|
||||
validation: [sha256]
|
||||
description: "TurboGrafx-CD Super System Card v3.0 (US)"
|
||||
@@ -339,7 +314,6 @@ files:
|
||||
- name: games_express.pce
|
||||
system: pc-engine-cd
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "4b86bb96a48a4ca8375fc0109631d0b1d64f255a03b01de70594d40788ba6c3d"
|
||||
validation: [sha256]
|
||||
description: "Games Express CD Card (Japan). Also used by PC Engine LD."
|
||||
@@ -349,7 +323,6 @@ files:
|
||||
- name: pac-n10.pce
|
||||
system: pc-engine-ld
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "0e87a3385a27b3a4cac51934819b7eefa5b3d690768d2495633838488cd0e2e4"
|
||||
validation: [sha256]
|
||||
description: "NEC PAC-N10 LaserActive module (US)"
|
||||
@@ -358,7 +331,6 @@ files:
|
||||
- name: pac-n1.pce
|
||||
system: pc-engine-ld
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "459325690a458baebd77495c91e37c4dddfdd542ba13a821ce954e5bb245627f"
|
||||
validation: [sha256]
|
||||
description: "NEC PAC-N1 LaserActive module (Japan)"
|
||||
@@ -367,7 +339,6 @@ files:
|
||||
- name: pce-lp1.pce
|
||||
system: pc-engine-ld
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "3f43b3b577117d84002e99cb0baeb97b0d65b1d70b4adadc68817185c6a687f0"
|
||||
validation: [sha256]
|
||||
description: "NEC PCE-LP1 LaserActive module (Japan)"
|
||||
@@ -377,7 +348,6 @@ files:
|
||||
- name: scph5501.bin
|
||||
system: sony-playstation
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef"
|
||||
validation: [sha256]
|
||||
description: "PlayStation BIOS (US)"
|
||||
@@ -386,7 +356,6 @@ files:
|
||||
- name: scph5500.bin
|
||||
system: sony-playstation
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb"
|
||||
validation: [sha256]
|
||||
description: "PlayStation BIOS (Japan)"
|
||||
@@ -395,7 +364,6 @@ files:
|
||||
- name: scph5502.bin
|
||||
system: sony-playstation
|
||||
required: true
|
||||
mode: standalone
|
||||
sha256: "1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09"
|
||||
validation: [sha256]
|
||||
description: "PlayStation BIOS (Europe)"
|
||||
@@ -406,7 +374,6 @@ files:
|
||||
system: saturn
|
||||
region: [north-america]
|
||||
required: true
|
||||
mode: standalone
|
||||
description: "Sega Saturn BIOS (US)"
|
||||
source_ref: "desktop-ui/emulator/saturn.cpp:14"
|
||||
|
||||
@@ -414,7 +381,6 @@ files:
|
||||
system: saturn
|
||||
region: [japan]
|
||||
required: true
|
||||
mode: standalone
|
||||
description: "Sega Saturn BIOS (Japan)"
|
||||
source_ref: "desktop-ui/emulator/saturn.cpp:15"
|
||||
|
||||
@@ -422,7 +388,6 @@ files:
|
||||
system: saturn
|
||||
region: [europe]
|
||||
required: true
|
||||
mode: standalone
|
||||
description: "Sega Saturn BIOS (Europe)"
|
||||
source_ref: "desktop-ui/emulator/saturn.cpp:16"
|
||||
|
||||
@@ -430,7 +395,6 @@ files:
|
||||
- name: SGB1.sfc
|
||||
system: super-famicom
|
||||
required: false
|
||||
mode: standalone
|
||||
category: game_data
|
||||
description: "Super Game Boy cartridge ROM. Loaded via CLI as SFC cartridge alongside GB game."
|
||||
source_ref: "EmuDeck emuDeckares.sh (launcher)"
|
||||
@@ -438,7 +402,6 @@ files:
|
||||
- name: SGB2.sfc
|
||||
system: super-famicom
|
||||
required: false
|
||||
mode: standalone
|
||||
category: game_data
|
||||
description: "Super Game Boy 2 cartridge ROM. Loaded via CLI as SFC cartridge alongside GB game."
|
||||
source_ref: "EmuDeck emuDeckares.sh (launcher)"
|
||||
@@ -446,7 +409,6 @@ files:
|
||||
- name: STBIOS.bin
|
||||
system: super-famicom
|
||||
required: false
|
||||
mode: standalone
|
||||
category: game_data
|
||||
description: "SuFami Turbo adapter BIOS. Loaded via CLI as SFC cartridge alongside SuFami games."
|
||||
source_ref: "EmuDeck emuDeckares.sh (launcher)"
|
||||
@@ -454,7 +416,6 @@ files:
|
||||
- name: BS-X.bin
|
||||
system: super-famicom
|
||||
required: false
|
||||
mode: standalone
|
||||
category: game_data
|
||||
description: "Satellaview BS-X Town cartridge ROM. Loaded via CLI as SFC cartridge for BS games."
|
||||
source_ref: "EmuDeck emuDeckares.sh (launcher)"
|
||||
+10
-8
@@ -110,7 +110,8 @@ files:
|
||||
md5: 5daed103918277e2065dd7e8d23e57a5
|
||||
sha1: 7e3c536baeae84d6498a14e8405319e01ee78232
|
||||
max_size: 131072
|
||||
source_ref: "Src/RomConfigFile.cpp:45, Src/BeebMem.cpp:1322-1356"
|
||||
note: "Paged ROM slot, read by the BeebReadRoms bank loop (Src/BeebMem.cpp:1322-1356)."
|
||||
source_ref: "Src/RomConfigFile.cpp:45"
|
||||
|
||||
- name: OS12.map
|
||||
path: BeebFile/BBC/OS12.map
|
||||
@@ -293,8 +294,8 @@ files:
|
||||
md5: 9087f772447038a00178488b3591347b
|
||||
sha1: 04d5876999f93fc61a18f172b1fbb3b75db733ac
|
||||
validation: [size]
|
||||
note: "OS ROM slot for Model::Master128."
|
||||
source_ref: "Src/RomConfigFile.cpp:103, Src/BeebMem.cpp:1291-1308"
|
||||
note: "OS ROM slot for Model::Master128, read into 0xC000 by BeebReadRoms (Src/BeebMem.cpp:1291-1308)."
|
||||
source_ref: "Src/RomConfigFile.cpp:103"
|
||||
|
||||
- name: Terminal.rom
|
||||
path: BeebFile/M128/Terminal.rom
|
||||
@@ -550,8 +551,8 @@ files:
|
||||
validation: [size]
|
||||
note: >
|
||||
512 KB on-board flash carrying the system software and BASIC. Rejected as
|
||||
InvalidROM unless the file is exactly 0x80000 bytes.
|
||||
source_ref: "Src/SprowCoPro.cpp:51-90, Src/SprowCoPro.h:49, Src/BeebWin.cpp:1058-1088"
|
||||
InvalidROM unless the file is exactly 0x80000 bytes (Src/SprowCoPro.h:49).
|
||||
source_ref: "Src/SprowCoPro.cpp:51-90, Src/BeebWin.cpp:1058-1088"
|
||||
|
||||
# -- Program directory files --
|
||||
|
||||
@@ -685,8 +686,8 @@ files:
|
||||
size: 6716
|
||||
md5: 07b0e1d4cb329185a8a52c48db00bcf9
|
||||
sha1: 5817277bcb110b747432b8716a0ffbe0c1e13de2
|
||||
note: "Read at ApplyPreferences. The return value is ignored, leaving the built-in map."
|
||||
source_ref: "Src/BeebWin.cpp:560-563, Src/KeyMap.cpp:65-78"
|
||||
note: "Read at ApplyPreferences by ReadKeyMap (Src/KeyMap.cpp:65-123). The return value is ignored, leaving the built-in map."
|
||||
source_ref: "Src/BeebWin.cpp:560-563"
|
||||
|
||||
- name: Default.kmap
|
||||
description: "Default keyboard mapping"
|
||||
@@ -696,7 +697,8 @@ files:
|
||||
size: 6716
|
||||
md5: 199de64bdb59a176d102f03cca4eadf9
|
||||
sha1: 63c72e11f6ce8cd9dc5ebb96b4938010f4b2e4f0
|
||||
source_ref: "Src/BeebWin.cpp:565-567, Src/KeyMap.cpp:65-78"
|
||||
note: "Parsed by ReadKeyMap (Src/KeyMap.cpp:65-123)."
|
||||
source_ref: "Src/BeebWin.cpp:565-567"
|
||||
|
||||
- name: DefaultUser.kmap
|
||||
description: "Fallback user keyboard mapping"
|
||||
|
||||
@@ -23,7 +23,6 @@ notes: >
|
||||
files:
|
||||
- name: "syscard3.pce"
|
||||
description: "CD-ROM System Card 3.0 (Japan)"
|
||||
region: [japan]
|
||||
required: true
|
||||
sha1: "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c"
|
||||
md5: "38179df8f4ac870017db21ebcbf53114"
|
||||
@@ -32,7 +31,6 @@ files:
|
||||
|
||||
- name: "syscard3u.pce"
|
||||
description: "CD-ROM System Card 3.0 (US / TurboGrafx-CD)"
|
||||
region: [north-america]
|
||||
required: false
|
||||
sha1: "d02611d99921986147c753df14c7349b31d71950"
|
||||
md5: "0754f903b52e3b3342202bdafb13efa5"
|
||||
@@ -41,7 +39,6 @@ files:
|
||||
|
||||
- name: "syscard2.pce"
|
||||
description: "CD-ROM System Card 2.0 (Japan)"
|
||||
region: [japan]
|
||||
required: false
|
||||
sha1: "88da02e2503f7c32810f5d93a34849d470742b6d"
|
||||
md5: "3cdd6614a918616bfc41c862e889dd79"
|
||||
@@ -50,7 +47,6 @@ files:
|
||||
|
||||
- name: "syscard2u.pce"
|
||||
description: "CD-ROM System Card 2.0 (US / TurboGrafx-CD)"
|
||||
region: [north-america]
|
||||
required: false
|
||||
sha1: "2bea3dac98f84b2f2f469fa77ea720b8770d598d"
|
||||
md5: "94279f315e8b52904f65ab3108542afe"
|
||||
@@ -59,7 +55,6 @@ files:
|
||||
|
||||
- name: "syscard1.pce"
|
||||
description: "CD-ROM System Card 1.0 (Japan)"
|
||||
region: [japan]
|
||||
required: false
|
||||
sha1: "a39a66da7de6ba94ab84d04eef7afeec7d4ee66a"
|
||||
md5: "2b7ccb3d86baa18f6402c176f3065082"
|
||||
@@ -68,7 +63,6 @@ files:
|
||||
|
||||
- name: "gexpress.pce"
|
||||
description: "Games Express CD Card"
|
||||
region: [japan]
|
||||
required: false
|
||||
sha1: "014881a959e045e00f4db8f52955200865d40280"
|
||||
md5: "6d2cb14fc3e1f65ceb135633d1694122"
|
||||
|
||||
@@ -81,7 +81,7 @@ files:
|
||||
|
||||
- name: "scph5502.bin"
|
||||
description: "SCPH-5502, 5552 (v3.0 01-06-97 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: true
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
@@ -101,7 +101,6 @@ files:
|
||||
|
||||
- name: "psxonpsp660.bin"
|
||||
description: "PSP embedded PS1 BIOS (region-free override)"
|
||||
region: [world]
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "96880d1ca92a016ff054be5159bb06fe03cb4e14"
|
||||
@@ -114,7 +113,6 @@ files:
|
||||
|
||||
- name: "ps1_rom.bin"
|
||||
description: "PS3 embedded PS1 BIOS, first 512KB extracted (region-free override)"
|
||||
region: [world]
|
||||
required: false
|
||||
sha1: "c40146361eb8cf670b19fdc9759190257803cab7"
|
||||
md5: "81bbe60ba7a3d1cea1d48c14cbcc647b"
|
||||
@@ -126,7 +124,6 @@ files:
|
||||
|
||||
- name: "openbios.bin"
|
||||
description: "OpenBIOS (open-source PS1 HLE BIOS, region-free override)"
|
||||
region: [world]
|
||||
required: false
|
||||
size: 524288
|
||||
mode: libretro
|
||||
|
||||
+6
-5
@@ -14,13 +14,14 @@ notes: >
|
||||
Doom 3 source port based on dhewm3 (GPL Doom 3 engine). The core accepts
|
||||
.pk4 extensions (retro_get_system_info sets valid_extensions = "pk4").
|
||||
Content is loaded directly from the .pk4 file path - the engine extracts
|
||||
the grandparent directory as fs_basepath (libretro.cpp:1097,1135-1136
|
||||
the grandparent directory as fs_basepath (libretro.cpp:2381,2449-2450
|
||||
via extract_directory called twice on info->path) and expects the standard
|
||||
Doom 3 directory layout with base/ containing pak000.pk4 through pak008.pk4.
|
||||
BASE_GAMEDIR is hardcoded to "base" (Licensee.h:58). The boom3_xp variant
|
||||
compiles with _D3XP defined, which passes "+set fs_game d3xp" at startup
|
||||
(libretro.cpp:538-544) to load the Resurrection of Evil expansion from a
|
||||
d3xp/ subdirectory alongside base/. The filesystem code (FileSystem.cpp:2125)
|
||||
BASE_GAMEDIR is hardcoded to "base" (Licensee.h:58). One binary serves both
|
||||
games: content in a directory named d3xp, or the doom_game core option,
|
||||
passes "+set fs_game d3xp" (libretro.cpp:1635-1643, 2384-2405) to load the
|
||||
Resurrection of Evil expansion from a d3xp/ subdirectory alongside base/.
|
||||
The filesystem code (FileSystem.cpp:2207)
|
||||
scans for .pk4 files in the game directory and loads them in order, with
|
||||
higher-numbered paks overriding lower ones. The core requires OpenGL
|
||||
(RETRO_ENVIRONMENT_SET_HW_RENDER) and XRGB8888 pixel format. All required
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ files:
|
||||
md5: 25629dfe870d097469c217b95fdc1c95
|
||||
sha1: 39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb
|
||||
note: "AMSDOS disc ROM, shipped cap32.cfg sets slot07=DEFAULT, skipped on the 464; missing file clears the slot"
|
||||
source_ref: "src/cap32.cpp:1170-1178, src/cap32.cpp:1245-1249, cap32.cfg:215, rom/amsdos.rom"
|
||||
source_ref: "src/cap32.cpp:1170-1178, src/cap32.cpp:1245-1249, cap32.cfg:205-206, 215, rom/amsdos.rom"
|
||||
- name: system.cpr
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
|
||||
@@ -25,21 +25,18 @@ files:
|
||||
- name: "prod.keys"
|
||||
required: true
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:655-656"
|
||||
|
||||
- name: "title.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Per-title encryption keys (rights_id to titlekey mappings)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:659-660"
|
||||
|
||||
- name: "console.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Console-specific keys (BIS, SD seed)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:661-662"
|
||||
|
||||
@@ -47,7 +44,6 @@ files:
|
||||
required: false
|
||||
path: "switch/"
|
||||
size: 160
|
||||
mode: standalone
|
||||
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
|
||||
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:274-292"
|
||||
|
||||
|
||||
@@ -62,7 +62,6 @@ files:
|
||||
size: 2097152
|
||||
crc32: "54c0c963"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:58-65"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -75,7 +74,6 @@ files:
|
||||
crc32: "79434781"
|
||||
required: true
|
||||
aliases: [basic2.rom]
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:78-85"
|
||||
|
||||
- name: os12.rom
|
||||
@@ -84,7 +82,6 @@ files:
|
||||
size: 16384
|
||||
crc32: "3c14fc70"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:436-443"
|
||||
|
||||
- name: dfs09.rom
|
||||
@@ -94,7 +91,6 @@ files:
|
||||
crc32: "3ce609cf"
|
||||
required: false
|
||||
note: "Conditional: only when using 8271 disk interface"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:444-451"
|
||||
|
||||
- name: dfs-2.26.rom
|
||||
@@ -104,7 +100,6 @@ files:
|
||||
crc32: "5ae33e94"
|
||||
required: false
|
||||
note: "Conditional: needed for 1770 DFS or tube processor"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:452-459"
|
||||
|
||||
- name: adfs-1.30.rom
|
||||
@@ -114,7 +109,6 @@ files:
|
||||
crc32: "d3855588"
|
||||
required: false
|
||||
note: "Conditional: needed for ADFS support"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:460-467"
|
||||
|
||||
- name: ADT-1.40.rom
|
||||
@@ -124,7 +118,6 @@ files:
|
||||
crc32: "8314fed0"
|
||||
required: false
|
||||
note: "Optional: fetched separately, silently skipped if absent"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:468-475"
|
||||
|
||||
- name: TUBE110.rom
|
||||
@@ -134,7 +127,6 @@ files:
|
||||
crc32: "9ec2dbd0"
|
||||
required: false
|
||||
note: "Conditional: needed for 6502 tube processor"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:476-483"
|
||||
|
||||
- name: Z80_122.rom
|
||||
@@ -144,7 +136,6 @@ files:
|
||||
crc32: "b5851efc"
|
||||
required: false
|
||||
note: "Conditional: needed for Z80 tube processor"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:484-491"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -156,7 +147,6 @@ files:
|
||||
size: 16384
|
||||
crc32: "79434781"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:90-97"
|
||||
|
||||
- name: os.rom
|
||||
@@ -165,7 +155,6 @@ files:
|
||||
size: 16384
|
||||
crc32: "bf63fb1f"
|
||||
required: true
|
||||
mode: standalone
|
||||
note: >
|
||||
The catalogue accepts five images: 406a42ce, 0886741b, bf63fb1f, 6fea0978
|
||||
and d61135d7. They differ only in the credits text, which lives on the IO
|
||||
@@ -179,7 +168,6 @@ files:
|
||||
crc32: "51523993"
|
||||
required: false
|
||||
note: "Conditional: needed for PRES ADFS"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:98-105"
|
||||
|
||||
- name: ADFS-E00_2.rom
|
||||
@@ -189,7 +177,6 @@ files:
|
||||
crc32: "8d17de0e"
|
||||
required: false
|
||||
note: "Conditional: needed for PRES ADFS"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:106-113"
|
||||
|
||||
- name: adfs.rom
|
||||
@@ -199,7 +186,6 @@ files:
|
||||
crc32: "3289bdc6"
|
||||
required: false
|
||||
note: "Conditional: needed for Acorn ADFS"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:114-121"
|
||||
|
||||
- name: DFS-1770-2.20.rom
|
||||
@@ -209,7 +195,6 @@ files:
|
||||
crc32: "f3dc9bc5"
|
||||
required: false
|
||||
note: "Conditional: needed for DFS disk images"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:122-129"
|
||||
|
||||
- name: ELK130E.rom
|
||||
@@ -219,7 +204,6 @@ files:
|
||||
crc32: "a923368d"
|
||||
required: false
|
||||
note: "Conditional: needed for IDE interface"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:130-137"
|
||||
|
||||
- name: AP6v133.rom
|
||||
@@ -229,7 +213,6 @@ files:
|
||||
crc32: "e0013cfc"
|
||||
required: false
|
||||
note: "Conditional: needed for AP6 commands. The catalogue records crc32 e0013cfc, which is the 7772-byte RetroHardware Plus 1 Support 1.33c build of 16 Jun 2020, and declares 8 KiB: Request::Node::validate() resizes the loaded image to 8192 bytes and the fetcher reads any length."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:138-145, Machines/Utility/ROMCatalogue.cpp:1484-1499, OSBindings/SDL/main.cpp:756-783"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -241,7 +224,6 @@ files:
|
||||
size: 262144
|
||||
crc32: "c4f0f55f"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:193-200"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -255,7 +237,6 @@ files:
|
||||
crc32: "815752df"
|
||||
required: false
|
||||
note: "Built into binary. Required for CPC 464 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:261-268, Machines/Utility/ROMLibrary.cpp:14535"
|
||||
|
||||
- name: basic464.rom
|
||||
@@ -265,7 +246,6 @@ files:
|
||||
crc32: "7d9a3bac"
|
||||
required: false
|
||||
note: "Built into binary. Required for CPC 464 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:269-276, Machines/Utility/ROMLibrary.cpp:14532"
|
||||
|
||||
- name: os664.rom
|
||||
@@ -275,7 +255,6 @@ files:
|
||||
crc32: "3f5a6dc4"
|
||||
required: false
|
||||
note: "Built into binary. Required for CPC 664 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:277-283, Machines/Utility/ROMLibrary.cpp:14537"
|
||||
|
||||
- name: basic664.rom
|
||||
@@ -285,7 +264,6 @@ files:
|
||||
crc32: "32fee492"
|
||||
required: false
|
||||
note: "Built into binary. Required for CPC 664 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:284-291, Machines/Utility/ROMLibrary.cpp:14534"
|
||||
|
||||
- name: os6128.rom
|
||||
@@ -295,7 +273,6 @@ files:
|
||||
crc32: "0219bb74"
|
||||
required: false
|
||||
note: "Built into binary. Required for CPC 6128 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:292-299, Machines/Utility/ROMLibrary.cpp:14536"
|
||||
|
||||
- name: basic6128.rom
|
||||
@@ -305,7 +282,6 @@ files:
|
||||
crc32: "ca6af63d"
|
||||
required: false
|
||||
note: "Built into binary. Required for CPC 6128 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:300-307, Machines/Utility/ROMLibrary.cpp:14533"
|
||||
|
||||
- name: amsdos.rom
|
||||
@@ -315,7 +291,6 @@ files:
|
||||
crc32: "1fe22ecd"
|
||||
required: false
|
||||
note: "Built into binary. Needed for CPC 664/6128 disk support."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:253-260, Machines/Utility/ROMLibrary.cpp:14531"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -328,7 +303,6 @@ files:
|
||||
crc32: "ba210588"
|
||||
required: true
|
||||
note: "Required for original Apple II model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:336-343"
|
||||
|
||||
- name: apple2.rom
|
||||
@@ -338,7 +312,6 @@ files:
|
||||
crc32: "f66f9c26"
|
||||
required: true
|
||||
note: "Required for Apple II+ model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:328-335"
|
||||
|
||||
- name: apple2eu.rom
|
||||
@@ -348,7 +321,6 @@ files:
|
||||
crc32: "e12be18d"
|
||||
required: true
|
||||
note: "Required for Apple IIe model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:320-327"
|
||||
|
||||
- name: apple2e.rom
|
||||
@@ -358,7 +330,6 @@ files:
|
||||
crc32: "65989942"
|
||||
required: true
|
||||
note: "Required for Enhanced IIe model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:312-319"
|
||||
|
||||
- name: apple2-character.rom
|
||||
@@ -368,7 +339,6 @@ files:
|
||||
crc32: "64f415c6"
|
||||
required: true
|
||||
note: "Required for Apple II and II+ models"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:344-351"
|
||||
|
||||
- name: apple2eu-character.rom
|
||||
@@ -378,7 +348,6 @@ files:
|
||||
crc32: "816a86f1"
|
||||
required: true
|
||||
note: "Required for Apple IIe model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:352-359"
|
||||
|
||||
- name: apple2e-character.rom
|
||||
@@ -388,7 +357,6 @@ files:
|
||||
crc32: "2651014d"
|
||||
required: true
|
||||
note: "Required for Enhanced IIe model. Also used by Apple IIgs."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:360-367"
|
||||
|
||||
- name: scsi.rom
|
||||
@@ -398,7 +366,6 @@ files:
|
||||
crc32: "5aff85d3"
|
||||
required: false
|
||||
note: "Conditional: needed for SCSI controller"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:368-375"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -411,7 +378,6 @@ files:
|
||||
crc32: "42f124b0"
|
||||
required: true
|
||||
note: "Required for ROM01 model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:380-387"
|
||||
|
||||
- name: apple2gs.rom2
|
||||
@@ -421,7 +387,6 @@ files:
|
||||
crc32: "de7ddf29"
|
||||
required: true
|
||||
note: "Required for ROM03 model (default)"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:388-395"
|
||||
|
||||
- name: apple2gs.chr
|
||||
@@ -430,7 +395,6 @@ files:
|
||||
size: 4096
|
||||
crc32: "91e53cd8"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:396-403"
|
||||
|
||||
- name: "341s0632-2"
|
||||
@@ -439,7 +403,6 @@ files:
|
||||
size: 4096
|
||||
crc32: "e1c11fb0"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:404-411"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -451,7 +414,6 @@ files:
|
||||
size: 196608
|
||||
crc32: "1a586c64"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:416-423"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -463,7 +425,6 @@ files:
|
||||
size: 8192
|
||||
crc32: "3aa93ef3"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:496-503"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -477,7 +438,6 @@ files:
|
||||
crc32: "718d42b1"
|
||||
required: false
|
||||
note: "Conditional: needed when VIC-20 has 1540 drive"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:508-515"
|
||||
|
||||
- name: 1541.bin
|
||||
@@ -487,7 +447,6 @@ files:
|
||||
crc32: "fb760019"
|
||||
required: false
|
||||
note: "Conditional: needed when Plus/4 has 1541 drive"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:516-523"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -501,7 +460,6 @@ files:
|
||||
crc32: "ce7144f6"
|
||||
required: false
|
||||
note: "Conditional: needed for 16-sector disk controller"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:528-535"
|
||||
|
||||
- name: state-machine-16.rom
|
||||
@@ -518,7 +476,6 @@ files:
|
||||
other image is read as the unadulterated P6 PROM (9796a238), its address
|
||||
lines and the top nibble of each value remapped into that order. Both give
|
||||
the same internal table.
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:536-543, Components/DiskII/DiskII.cpp:187-239"
|
||||
|
||||
- name: boot-13.rom
|
||||
@@ -528,7 +485,6 @@ files:
|
||||
crc32: "d34eb2ff"
|
||||
required: false
|
||||
note: "Conditional: needed for 13-sector disk controller"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:544-551"
|
||||
|
||||
- name: state-machine-13.rom
|
||||
@@ -538,7 +494,6 @@ files:
|
||||
crc32: "62e22620"
|
||||
required: false
|
||||
note: "Conditional: needed for 13-sector disk controller"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:552-559"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -552,7 +507,6 @@ files:
|
||||
required: true
|
||||
aliases: ["Exos (198x)(Enterprise).bin"]
|
||||
note: "One EXOS version required. Selected by target or any available."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:600-607"
|
||||
|
||||
- name: exos20.bin
|
||||
@@ -563,7 +517,6 @@ files:
|
||||
required: true
|
||||
aliases: ["Expandible OS v2.0 (1984)(Intelligent Software).bin"]
|
||||
note: "Alternative EXOS version"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:611-618"
|
||||
|
||||
- name: exos21.bin
|
||||
@@ -574,7 +527,6 @@ files:
|
||||
required: true
|
||||
aliases: ["Expandible OS v2.1 (1985)(Intelligent Software).bin"]
|
||||
note: "Alternative EXOS version"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:622-629"
|
||||
|
||||
- name: exos23.bin
|
||||
@@ -585,7 +537,6 @@ files:
|
||||
required: true
|
||||
aliases: ["Expandible OS v2.3 (1987)(Intelligent Software).bin"]
|
||||
note: "Alternative EXOS version"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:633-640"
|
||||
|
||||
- name: basic10.bin
|
||||
@@ -595,7 +546,6 @@ files:
|
||||
crc32: "d62e4fb7"
|
||||
required: true
|
||||
note: "One BASIC version required. v1.0 single-file version."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:645-652"
|
||||
|
||||
- name: "BASIC 1.0 - EPROM 1-2 (198x)(Enterprise).bin"
|
||||
@@ -605,7 +555,6 @@ files:
|
||||
crc32: "37bf48e1"
|
||||
required: false
|
||||
note: "Alternative: both parts needed together as substitute for basic10.bin"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:653-660"
|
||||
|
||||
- name: "BASIC 1.0 - EPROM 2-2 (198x)(Enterprise).bin"
|
||||
@@ -615,7 +564,6 @@ files:
|
||||
crc32: "c5298c79"
|
||||
required: false
|
||||
note: "Alternative: both parts needed together as substitute for basic10.bin"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:661-668"
|
||||
|
||||
- name: basic11.bin
|
||||
@@ -625,7 +573,6 @@ files:
|
||||
crc32: "683cf455"
|
||||
required: true
|
||||
note: "Alternative BASIC version"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:669-676"
|
||||
|
||||
- name: "BASIC 1.1 - EPROM 1.1 (198x)(Enterprise).bin"
|
||||
@@ -635,7 +582,6 @@ files:
|
||||
crc32: "c96b7602"
|
||||
required: false
|
||||
note: "Alternative format of BASIC v1.1 with trailing byte"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:677-684"
|
||||
|
||||
- name: basic21.bin
|
||||
@@ -648,7 +594,6 @@ files:
|
||||
- "BASIC Interpreter v2.1 (1985)(Intelligent Software).bin"
|
||||
- "BASIC Interpreter v2.1 (1985)(Intelligent Software)[a].bin"
|
||||
note: "Alternative BASIC version"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:685-693"
|
||||
|
||||
- name: epdos.bin
|
||||
@@ -659,7 +604,6 @@ files:
|
||||
required: false
|
||||
aliases: ["EPDOS v1.7 (19xx)(Haluska, Laszlo).bin"]
|
||||
note: "Conditional: needed for EPDOS disk interface"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:698-705"
|
||||
|
||||
- name: exdos.bin
|
||||
@@ -670,7 +614,6 @@ files:
|
||||
required: false
|
||||
aliases: ["EX-DOS EPROM (198x)(Enterprise).bin"]
|
||||
note: "Conditional: needed when DOS is set to EXDOS"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:709-716"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -683,7 +626,6 @@ files:
|
||||
crc32: "6d0c8a28"
|
||||
required: true
|
||||
note: "Required for Macintosh 128k model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:724-731"
|
||||
|
||||
- name: mac512k.rom
|
||||
@@ -693,7 +635,6 @@ files:
|
||||
crc32: "cf759e0d"
|
||||
required: true
|
||||
note: "Required for Macintosh 512k model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:732-739"
|
||||
|
||||
- name: macplus.rom
|
||||
@@ -708,7 +649,6 @@ files:
|
||||
checksum 4D1F8172 of the third Mac Plus revision. The
|
||||
machine copies whichever is supplied into its 128 KiB ROM without
|
||||
reading the revision.
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:740-751, Machines/Apple/Macintosh/Macintosh.cpp:127-144"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -722,7 +662,6 @@ files:
|
||||
crc32: "0072ed54"
|
||||
required: false
|
||||
note: "Optional. Boots cartridge directly if absent."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:764-771"
|
||||
|
||||
- name: japanese-bios.sms
|
||||
@@ -733,7 +672,6 @@ files:
|
||||
crc32: "48d44a13"
|
||||
required: false
|
||||
note: "Optional. Used for Japan region. Boots without if absent."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:756-763"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -747,7 +685,6 @@ files:
|
||||
crc32: "94ee12f3"
|
||||
required: true
|
||||
note: "Required for MSX1. Region bytes patched in memory if regional BIOS absent."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:777-784"
|
||||
|
||||
- name: msx-japanese.rom
|
||||
@@ -758,7 +695,6 @@ files:
|
||||
crc32: "ee229390"
|
||||
required: false
|
||||
note: "Alternative to msx.rom for Japanese region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:785-792"
|
||||
|
||||
- name: msx-american.rom
|
||||
@@ -768,7 +704,6 @@ files:
|
||||
size: 32768
|
||||
required: false
|
||||
note: "Alternative to msx.rom for American region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:793-800"
|
||||
|
||||
- name: msx-european.rom
|
||||
@@ -778,7 +713,6 @@ files:
|
||||
size: 32768
|
||||
required: false
|
||||
note: "Alternative to msx.rom for European region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:801-808"
|
||||
|
||||
- name: disk.rom
|
||||
@@ -788,7 +722,6 @@ files:
|
||||
crc32: "721f61df"
|
||||
required: false
|
||||
note: "Conditional: needed for disk drive support"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:809-816"
|
||||
|
||||
- name: msx2.rom
|
||||
@@ -799,7 +732,6 @@ files:
|
||||
crc32: "6cdaf3a5"
|
||||
required: true
|
||||
note: "Required for MSX2"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:818-825"
|
||||
|
||||
- name: msx2ext.rom
|
||||
@@ -810,7 +742,6 @@ files:
|
||||
crc32: "66237ecf"
|
||||
required: true
|
||||
note: "Required for MSX2"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:826-833"
|
||||
|
||||
- name: fmpac.rom
|
||||
@@ -820,7 +751,6 @@ files:
|
||||
crc32: "0e84505d"
|
||||
required: false
|
||||
note: "Conditional: needed for MSX-Music support"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:834-841"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -833,7 +763,6 @@ files:
|
||||
crc32: "f18710b4"
|
||||
required: true
|
||||
note: "Required for Oric-1 model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:870-877"
|
||||
|
||||
- name: basic11.rom
|
||||
@@ -843,7 +772,6 @@ files:
|
||||
crc32: "c3a92bef"
|
||||
required: true
|
||||
note: "Required for Oric Atmos model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:878-885"
|
||||
|
||||
- name: pravetz.rom
|
||||
@@ -853,7 +781,6 @@ files:
|
||||
crc32: "58079502"
|
||||
required: true
|
||||
note: "Required for Pravetz 8D model"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:886-893"
|
||||
|
||||
- name: colour.rom
|
||||
@@ -863,7 +790,6 @@ files:
|
||||
crc32: "d50fca65"
|
||||
required: false
|
||||
note: "Optional. Enables colour video output."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:846-853"
|
||||
|
||||
- name: ORIC.PAL-PROM-TBP24S10-1ab9b572.bin
|
||||
@@ -873,7 +799,6 @@ files:
|
||||
crc32: "1ab9b572"
|
||||
required: false
|
||||
note: "Optional. Alternative colour ROM."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:854-861"
|
||||
|
||||
- name: PRAVETZ-8D.PAL-PROM-82S129-1576a69b.bin
|
||||
@@ -883,7 +808,6 @@ files:
|
||||
crc32: "1576a69b"
|
||||
required: false
|
||||
note: "Optional. Colour ROM for Pravetz model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:862-869"
|
||||
|
||||
- name: bd500.rom
|
||||
@@ -893,7 +817,6 @@ files:
|
||||
crc32: "61952e34"
|
||||
required: false
|
||||
note: "Conditional: needed for Byte Drive 500 disk interface"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:894-901"
|
||||
|
||||
- name: jasmin.rom
|
||||
@@ -903,7 +826,6 @@ files:
|
||||
crc32: "37220e89"
|
||||
required: false
|
||||
note: "Conditional: needed for Jasmin disk interface"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:902-909"
|
||||
|
||||
- name: microdisc.rom
|
||||
@@ -913,7 +835,6 @@ files:
|
||||
crc32: "a9664a9c"
|
||||
required: false
|
||||
note: "Conditional: needed for Microdisc disk interface"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:910-917"
|
||||
|
||||
- name: 8dos.rom
|
||||
@@ -923,7 +844,6 @@ files:
|
||||
crc32: "49a74c06"
|
||||
required: false
|
||||
note: "Conditional: needed for Pravetz 8-DOS disk interface"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:918-925"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -936,7 +856,6 @@ files:
|
||||
crc32: "9576944c"
|
||||
required: true
|
||||
note: "Required for XT-class emulation"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:930-937"
|
||||
|
||||
- name: GLaTICK_0.8.5_AT.ROM
|
||||
@@ -946,7 +865,6 @@ files:
|
||||
crc32: "371ea3f1"
|
||||
required: false
|
||||
note: "XT-class RTC option ROM"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:938-945"
|
||||
|
||||
- name: "Phoenix 80286 ROM BIOS Version 3.05.bin"
|
||||
@@ -956,7 +874,6 @@ files:
|
||||
crc32: "8d0d318a"
|
||||
required: true
|
||||
note: "Required for AT-class emulation (alternative to IBM AT BIOS)"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:946-953"
|
||||
|
||||
- name: at-bios.bin
|
||||
@@ -966,7 +883,6 @@ files:
|
||||
crc32: "674426be"
|
||||
required: true
|
||||
note: "AT-class: single-file IBM AT BIOS (alternative to split U27/U47)"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:954-961"
|
||||
|
||||
- name: BIOS_5170_15NOV85_U27_61X9266_27256.BIN
|
||||
@@ -976,7 +892,6 @@ files:
|
||||
crc32: "4995be7a"
|
||||
required: false
|
||||
note: "AT-class: split BIOS, used with U47 chip"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:962-969"
|
||||
|
||||
- name: BIOS_5170_15NOV85_U47_61X9265_27256.BIN
|
||||
@@ -986,7 +901,6 @@ files:
|
||||
crc32: "c32713e4"
|
||||
required: false
|
||||
note: "AT-class: split BIOS, used with U27 chip"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:970-977"
|
||||
|
||||
- name: CGA.F08
|
||||
@@ -996,7 +910,6 @@ files:
|
||||
crc32: "a362ffe6"
|
||||
required: true
|
||||
note: "Required for CGA video adapter"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:978-985"
|
||||
|
||||
- name: EUMDA9.F14
|
||||
@@ -1006,7 +919,6 @@ files:
|
||||
crc32: "7754882a"
|
||||
required: true
|
||||
note: "Required for MDA video adapter"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:986-993"
|
||||
|
||||
- name: ibm_6277356_ega_card_u44_27128.bin
|
||||
@@ -1016,7 +928,6 @@ files:
|
||||
crc32: "2f2fbc40"
|
||||
required: false
|
||||
note: "Needed for EGA video adapter"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:994-1001"
|
||||
|
||||
- name: ibm_vga.bin
|
||||
@@ -1026,7 +937,6 @@ files:
|
||||
crc32: "03b3f90d"
|
||||
required: false
|
||||
note: "Needed for VGA video adapter"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1002-1009"
|
||||
|
||||
- name: ibm-basic-1.10.rom
|
||||
@@ -1036,7 +946,6 @@ files:
|
||||
crc32: "ebacb791"
|
||||
required: false
|
||||
note: "Required for AT-class with IBM BIOS (not needed with Phoenix)"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1010-1017"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -1048,7 +957,6 @@ files:
|
||||
size: 16384
|
||||
crc32: "74eaae87"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1046-1053"
|
||||
|
||||
- name: kernal.318004-05.bin
|
||||
@@ -1058,7 +966,6 @@ files:
|
||||
crc32: "71c07bd4"
|
||||
required: true
|
||||
note: "Default kernel version requested by machine code"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1038-1045"
|
||||
|
||||
- name: kernal.318004-03.bin
|
||||
@@ -1068,7 +975,6 @@ files:
|
||||
crc32: "77bab934"
|
||||
required: false
|
||||
note: "Alternative kernel version (in catalogue but not default)"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1022-1029"
|
||||
|
||||
- name: kernal.318004-04.bin
|
||||
@@ -1078,7 +984,6 @@ files:
|
||||
crc32: "be54ed79"
|
||||
required: false
|
||||
note: "Alternative kernel version (in catalogue but not default)"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1030-1037"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -1090,7 +995,6 @@ files:
|
||||
size: 16384
|
||||
crc32: "f62d2f3a"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1157-1164"
|
||||
|
||||
- name: mo5-v1.1.rom
|
||||
@@ -1099,7 +1003,6 @@ files:
|
||||
size: 16384
|
||||
crc32: "237c60bf"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1165-1172"
|
||||
|
||||
- name: mo6-v1.rom
|
||||
@@ -1108,7 +1011,6 @@ files:
|
||||
size: 65536
|
||||
crc32: "45e859c6"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1173-1180"
|
||||
|
||||
- name: mo6-v2.rom
|
||||
@@ -1117,7 +1019,6 @@ files:
|
||||
size: 65536
|
||||
crc32: "b4430a3b"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1181-1188"
|
||||
|
||||
- name: mo6-v3.rom
|
||||
@@ -1126,7 +1027,6 @@ files:
|
||||
size: 65536
|
||||
crc32: "7a012322"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1189-1196"
|
||||
|
||||
- name: pc128.rom
|
||||
@@ -1135,7 +1035,6 @@ files:
|
||||
size: 65536
|
||||
crc32: "fc173504"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1197-1204"
|
||||
|
||||
- name: cd90-640.rom
|
||||
@@ -1145,7 +1044,6 @@ files:
|
||||
crc32: "5114c0a5"
|
||||
required: false
|
||||
note: "Requested on top of the machine ROM when a disk is attached."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1206-1213"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -1157,7 +1055,6 @@ files:
|
||||
size: 8192
|
||||
crc32: "db4c43c1"
|
||||
required: true
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1218-1225"
|
||||
|
||||
- name: characters-english.bin
|
||||
@@ -1168,7 +1065,6 @@ files:
|
||||
crc32: "83e032a6"
|
||||
required: true
|
||||
note: "Required for English region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1226-1233"
|
||||
|
||||
- name: kernel-pal.bin
|
||||
@@ -1179,7 +1075,6 @@ files:
|
||||
crc32: "4be07cb4"
|
||||
required: true
|
||||
note: "Required for English PAL region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1234-1241"
|
||||
|
||||
- name: kernel-ntsc.bin
|
||||
@@ -1190,7 +1085,6 @@ files:
|
||||
crc32: "e5e7c174"
|
||||
required: true
|
||||
note: "Required for English NTSC region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1242-1249"
|
||||
|
||||
- name: characters-danish.bin
|
||||
@@ -1201,7 +1095,6 @@ files:
|
||||
crc32: "7fc11454"
|
||||
required: false
|
||||
note: "Required for Danish region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1250-1257"
|
||||
|
||||
- name: kernel-danish.bin
|
||||
@@ -1212,7 +1105,6 @@ files:
|
||||
crc32: "02adaf16"
|
||||
required: false
|
||||
note: "Required for Danish region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1258-1265"
|
||||
|
||||
- name: characters-japanese.bin
|
||||
@@ -1223,7 +1115,6 @@ files:
|
||||
crc32: "fcfd8a4b"
|
||||
required: false
|
||||
note: "Required for Japanese region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1266-1273"
|
||||
|
||||
- name: kernel-japanese.bin
|
||||
@@ -1234,7 +1125,6 @@ files:
|
||||
crc32: "336900d7"
|
||||
required: false
|
||||
note: "Required for Japanese region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1274-1281"
|
||||
|
||||
- name: characters-swedish.bin
|
||||
@@ -1245,7 +1135,6 @@ files:
|
||||
crc32: "d808551d"
|
||||
required: false
|
||||
note: "Required for Swedish region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1282-1289"
|
||||
|
||||
- name: kernel-swedish.bin
|
||||
@@ -1256,7 +1145,6 @@ files:
|
||||
crc32: "b2a60662"
|
||||
required: false
|
||||
note: "Required for Swedish region"
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1290-1297"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -1270,7 +1158,6 @@ files:
|
||||
crc32: "ddee531f"
|
||||
required: false
|
||||
note: "Built into binary. Required for 16K/48K model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1302-1309, Machines/Utility/ROMLibrary.cpp:14539"
|
||||
|
||||
- name: 128.rom
|
||||
@@ -1280,7 +1167,6 @@ files:
|
||||
crc32: "2cbe8995"
|
||||
required: false
|
||||
note: "Built into binary. Required for 128K model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1310-1317, Machines/Utility/ROMLibrary.cpp:14540"
|
||||
|
||||
- name: plus2.rom
|
||||
@@ -1290,7 +1176,6 @@ files:
|
||||
crc32: "e7a517dc"
|
||||
required: false
|
||||
note: "Built into binary. Required for +2 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1318-1325, Machines/Utility/ROMLibrary.cpp:14541"
|
||||
|
||||
- name: plus3.rom
|
||||
@@ -1300,7 +1185,6 @@ files:
|
||||
crc32: "96e3c17a"
|
||||
required: false
|
||||
note: "Built into binary. Required for +2a/+3 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1326-1336, Machines/Utility/ROMLibrary.cpp:14542"
|
||||
|
||||
# -------------------------------------------------------
|
||||
@@ -1314,7 +1198,6 @@ files:
|
||||
crc32: "4c7fc597"
|
||||
required: false
|
||||
note: "Built into binary. Required for ZX80 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1341-1348, Machines/Utility/ROMLibrary.cpp:14544"
|
||||
|
||||
- name: zx81.rom
|
||||
@@ -1324,5 +1207,4 @@ files:
|
||||
crc32: "4b1dd6eb"
|
||||
required: false
|
||||
note: "Built into binary. Required for ZX81 model."
|
||||
mode: standalone
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:1349-1356, Machines/Utility/ROMLibrary.cpp:14545"
|
||||
@@ -169,7 +169,6 @@ files:
|
||||
- name: CPC6128.ROM.UK
|
||||
path: "ROM/National/CPC6128.ROM.UK"
|
||||
system: amstrad-cpc
|
||||
region: [uk]
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
@@ -183,7 +182,6 @@ files:
|
||||
- name: CPC6128.ROM.FR
|
||||
path: "ROM/National/CPC6128.ROM.FR"
|
||||
system: amstrad-cpc
|
||||
region: [france]
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
@@ -195,7 +193,6 @@ files:
|
||||
- name: CPC6128.ROM.ES
|
||||
path: "ROM/National/CPC6128.ROM.ES"
|
||||
system: amstrad-cpc
|
||||
region: [spain]
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
@@ -207,7 +204,6 @@ files:
|
||||
- name: CPC6128.ROM.DK
|
||||
path: "ROM/National/CPC6128.ROM.DK"
|
||||
system: amstrad-cpc
|
||||
region: [denmark]
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
@@ -219,7 +215,6 @@ files:
|
||||
- name: CPC6128.ROM.SE
|
||||
path: "ROM/National/CPC6128.ROM.SE"
|
||||
system: amstrad-cpc
|
||||
region: [sweden]
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
|
||||
@@ -28,11 +28,11 @@ notes: |
|
||||
- ROMEXT[0] (upper ROM slot 0, 16KB): second half of cpc6128_bin (BASIC)
|
||||
- ROMEXT[7] (upper ROM slot 7, 16KB): romdisc_bin (AMSDOS)
|
||||
|
||||
Called from HardResetCPC() (crocods-core/platform.c:1009-1020) using
|
||||
Called from HardResetCPC() (crocods-core/platform.c:1024-1035) using
|
||||
the extern byte arrays directly. No filesystem ROM loading exists in
|
||||
the libretro path.
|
||||
|
||||
A Multiface ROM loader exists (crocods-core/multiface.c:51-61) that
|
||||
A Multiface ROM loader exists (crocods-core/multiface.c:53-64) that
|
||||
reads LocRomMulti via fopen(), but InitMultiface() is never called
|
||||
from the libretro build or platform.c. Dead code in libretro context.
|
||||
|
||||
@@ -45,7 +45,7 @@ files: []
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
source_ref: "crocods-core/vga.c:185-200, crocods-core/platform.c:1009-1020"
|
||||
source_ref: "crocods-core/vga.c:185-200, crocods-core/platform.c:1024-1035"
|
||||
note: |
|
||||
All ROMs are embedded. InitMemCPC() copies cpc6128_bin and romdisc_bin
|
||||
into ROMINF and ROMEXT arrays via memcpy. No filesystem lookup occurs.
|
||||
|
||||
@@ -84,7 +84,8 @@ files:
|
||||
sha1: "69b3544d992a23e8b736c61837914a4d1b4e7bb5"
|
||||
description: "Gemei A330 firmware update archive, V1.1 build3 of 2011-02-13"
|
||||
note: >-
|
||||
Mounted when an A330 package loads: the content's directory is
|
||||
Mounted when an A330 package loads
|
||||
(crates/dingooemu-core/src/a330/runtime.rs:415-418): the content's directory is
|
||||
scanned and the first entry whose extension is hxf, in any case, is
|
||||
read whole. The file must start with WADF0100 and declare at offset
|
||||
20 a size within its own length; each record is a u32 name length,
|
||||
@@ -98,4 +99,4 @@ files:
|
||||
goes on. The image itself is never hashed, and the hashes here name
|
||||
the last firmware Gemei published; the V1.10 image of 2011-01-25
|
||||
indexes the same way.
|
||||
source_ref: "crates/dingooemu-core/src/a330/runtime.rs:415-418, crates/dingooemu-core/src/a330/firmware_archive.rs:16-50, 54-58, 63-96, 117-124, crates/dingooemu-core/src/a330/runtime/sdk_hle/files.rs:108-133"
|
||||
source_ref: "crates/dingooemu-core/src/a330/firmware_archive.rs:16-50, 54-58, 63-96, 117-124, crates/dingooemu-core/src/a330/runtime/sdk_hle/files.rs:108-133"
|
||||
@@ -188,7 +188,7 @@ files:
|
||||
adler32_byteswap: true
|
||||
description: "DSP coefficient ROM"
|
||||
note: "Read by DSP LLE alongside the instruction ROM, and by the AX ucode under HLE for polyphase resampling, which drops any file that is not 0x1000 bytes and plays on without it."
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:121, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:87-105, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:107-120, Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp:42-69, Source/Core/Core/DSP/DSPCore.h:58"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:121, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:87-120, Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp:42-69, Source/Core/Core/DSP/DSPCore.h:58"
|
||||
|
||||
- name: codehandler.bin
|
||||
path: null
|
||||
|
||||
@@ -148,7 +148,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: "BootMii NAND backup. Can be imported to populate Wii NAND with channels, saves, system menu"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:26-39,42-89"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:27-45,47-92"
|
||||
|
||||
- name: "keys.bin"
|
||||
path: null
|
||||
@@ -156,7 +156,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: "OTP/SEEPROM dump (Wii encryption keys). Needed if not appended to nand.bin for NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:20, Source/Core/DiscIO/NANDImporter.cpp:82-94, Source/Core/DiscIO/NANDImporter.h:46"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:20, Source/Core/DiscIO/NANDImporter.cpp:77-91, Source/Core/DiscIO/NANDImporter.h:35-38"
|
||||
|
||||
# -- Wii SD Card Image --
|
||||
- name: "WiiSD.raw"
|
||||
@@ -189,21 +189,21 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: "SSL client certificate. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:239-323"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:220-304"
|
||||
|
||||
- name: "clientcakey.pem"
|
||||
path: "Wii/clientcakey.pem"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: "SSL client private key. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:275"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:256"
|
||||
|
||||
- name: "rootca.pem"
|
||||
path: "Wii/rootca.pem"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: "SSL root CA certificate. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:276"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:257"
|
||||
|
||||
# -- Realtek Bluetooth firmware (Wiimote passthrough) --
|
||||
# Required for real Wiimote connectivity via USB Bluetooth adapters with Realtek chipsets.
|
||||
|
||||
+30
-30
@@ -67,7 +67,7 @@ files:
|
||||
|
||||
- name: "scph1002a.bin"
|
||||
description: "SCPH-1002, DTL-H1002 (v2.0 05-10-95 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "54847e693405ffeb0359c6287434cbef"
|
||||
region_check: false
|
||||
@@ -77,7 +77,7 @@ files:
|
||||
|
||||
- name: "scph1002b.bin"
|
||||
description: "SCPH-1002, DTL-H1102 (v2.1 07-17-95 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "417b34706319da7cf001e76e40136c23"
|
||||
region_check: false
|
||||
@@ -87,7 +87,7 @@ files:
|
||||
|
||||
- name: "scph1002c.bin"
|
||||
description: "SCPH-1002, DTL-H1202, H3002 (v2.2 12-04-95 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "e2110b8a2b97a8e0b857a45d32f7e187"
|
||||
region_check: false
|
||||
@@ -177,7 +177,7 @@ files:
|
||||
|
||||
- name: "scph5502.bin"
|
||||
description: "SCPH-5502, 5552 (v3.0 01-06-97 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: true
|
||||
md5: "32736f17079d0b2b7024407c39bd3050"
|
||||
region_check: false
|
||||
@@ -217,7 +217,7 @@ files:
|
||||
|
||||
- name: "scph7002.bin"
|
||||
description: "SCPH-7002, 7502, 9002 (v4.1 12-16-97 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "b9d9a0286c33dc6b7237bb13cd46fdee"
|
||||
region_check: false
|
||||
@@ -257,7 +257,7 @@ files:
|
||||
|
||||
- name: "scph102_v44.bin"
|
||||
description: "SCPH-102 (v4.4 03-24-00 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "b10f5e0e3d9eb60e5159690680b1e774"
|
||||
region_check: true
|
||||
@@ -267,7 +267,7 @@ files:
|
||||
|
||||
- name: "scph102_v45.bin"
|
||||
description: "SCPH-102 (v4.5 05-25-00 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "de93caec13d1a141a40a79f5c86168d6"
|
||||
region_check: true
|
||||
@@ -301,7 +301,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30003.bin"
|
||||
description: "PS2, SCPH-30003 (v5.0 09-02-00 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "71f50ef4f4e17c163c78908e16244f7d"
|
||||
region_check: true
|
||||
@@ -391,7 +391,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh30002.bin"
|
||||
description: "PS2, DTL-H30002 (v5.0 09/02/00 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "91c87cb2f2eb6ce529a2360f80ce2457"
|
||||
region_check: true
|
||||
@@ -401,7 +401,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh30102_0902.bin"
|
||||
description: "PS2, DTL-H30102 (v5.0 09/02/00 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "3016b3dd42148a67e2c048595ca4d7ce"
|
||||
region_check: true
|
||||
@@ -411,7 +411,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30002_0902.bin"
|
||||
description: "PS2, SCPH-30002/SCPH-30003/SCPH-30004 (v5.0 09/02/00 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "b7fa11e87d51752a98b38e3e691cbf17"
|
||||
region_check: true
|
||||
@@ -461,7 +461,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh30102_1228.bin"
|
||||
description: "PS2, DTL-H30102 (v5.0 12/28/00 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "6f9a6feb749f0533aaae2cc45090b0ed"
|
||||
region_check: true
|
||||
@@ -471,7 +471,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30002_1228.bin"
|
||||
description: "PS2, SCPH-30002/SCPH-30003/SCPH-30004/SCHP-35002/SCPH-35003/SCPH-35004 (v5.0 12/28/00 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "838544f12de9b0abc90811279ee223c8"
|
||||
region_check: true
|
||||
@@ -531,7 +531,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30002r_0704.bin"
|
||||
description: "PS2, SCPH-30002R/SCPH-30003R/SCPH-30004R (v5.0 07/04/01 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "491209dd815ceee9de02dbbc408c06d6"
|
||||
region_check: true
|
||||
@@ -551,7 +551,7 @@ files:
|
||||
|
||||
- name: "ps2_scph30002r_1004.bin"
|
||||
description: "PS2, SCPH-30002R/SCPH-30003R/SCPH-30004R (v5.0 10/04/01 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "8359638e857c8bc18c3c18ac17d9cc3c"
|
||||
region_check: true
|
||||
@@ -581,7 +581,7 @@ files:
|
||||
|
||||
- name: "ps2_scph39002.bin"
|
||||
description: "PS2, SCPH-39002/SCPH-39003/SCPH-39004 (v5.0 03/19/02 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "0d2228e6fd4fb639c9c39d077a9ec10c"
|
||||
region_check: true
|
||||
@@ -601,7 +601,7 @@ files:
|
||||
|
||||
- name: "ps2_scph39008.bin"
|
||||
description: "PS2, SCPH-39008 (v5.0 04/26/02 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "5b1f47fbeb277c6be2fccdd6344ff2fd"
|
||||
region_check: true
|
||||
@@ -641,7 +641,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh50002.bin"
|
||||
description: "PS2, DTL-H50002 (v5.0 02/27/03 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "666018ffec65c5c7e04796081295c6c7"
|
||||
region_check: true
|
||||
@@ -651,7 +651,7 @@ files:
|
||||
|
||||
- name: "ps2_scph50002_0227.bin"
|
||||
description: "PS2, SCPH-50002/SCPH-50003/SCPH-50004 (v5.0 02/27/03 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "6e69920fa6eef8522a1d688a11e41bc6"
|
||||
region_check: true
|
||||
@@ -731,7 +731,7 @@ files:
|
||||
|
||||
- name: "ps2_scph50002_0623.bin"
|
||||
description: "PS2, SCPH-50002/SCPH-50003/SCPH-50004 (v5.0 06/23/03 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "bd6415094e1ce9e05daabe85de807666"
|
||||
region_check: true
|
||||
@@ -761,7 +761,7 @@ files:
|
||||
|
||||
- name: "ps2_scph50008.bin"
|
||||
description: "PS2, SCPH-50008 (v5.0 06/23/03 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "b53d51edc7fc086685e31b811dc32aad"
|
||||
region_check: true
|
||||
@@ -791,7 +791,7 @@ files:
|
||||
|
||||
- name: "ps2_scph50004_0822.bin"
|
||||
description: "PS2, SCPH-50004 (v5.0 08/22/03 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "afde410bd026c16be605a1ae4bd651fd"
|
||||
region_check: true
|
||||
@@ -831,7 +831,7 @@ files:
|
||||
|
||||
- name: "ps2_scph70002.bin"
|
||||
description: "PS2, SCPH-70002/SCPH-70003/SCPH-70004/SCPH-70008 (v5.0 06/14/04 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "dc752f160044f2ed5fc1f4964db2a095"
|
||||
region_check: true
|
||||
@@ -841,7 +841,7 @@ files:
|
||||
|
||||
- name: "ps2_scph70002_alt.bin"
|
||||
description: "PS2, SCPH-70002 (v5.0 06/14/04 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "7ebb4fc5eab6f79a27d76ac9aad392b2"
|
||||
region_check: true
|
||||
@@ -851,7 +851,7 @@ files:
|
||||
|
||||
- name: "ps2_dtlh70002.bin"
|
||||
description: "PS2, DTL-H70002 (v5.0 06/14/04 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "63ead1d74893bf7f36880af81f68a82d"
|
||||
region_check: true
|
||||
@@ -921,7 +921,7 @@ files:
|
||||
|
||||
- name: "ps2_scph75002.bin"
|
||||
description: "PS2, SCPH-75002/SCPH-75003/SCPH-75004/SCPH-75008 (v5.0 06/20/05 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "573f7d4a430c32b3cc0fd0c41e104bbd"
|
||||
region_check: true
|
||||
@@ -961,7 +961,7 @@ files:
|
||||
|
||||
- name: "ps2_scph77002.bin"
|
||||
description: "PS2, SCPH-77002/SCPH-77003/SCPH-77004/SCPH-77008 (v5.0 02/10/06 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "af60e6d1a939019d55e5b330d24b1c25"
|
||||
region_check: true
|
||||
@@ -1021,7 +1021,7 @@ files:
|
||||
|
||||
- name: "ps2_scph79002_90002.bin"
|
||||
description: "PS2, SCPH-79002/SCPH-79003/SCPH-79004/SCPH-79008/SCPH-90002/SCPH-90003/SCPH-90004 (v5.0 09/05/06 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "80bbb237a6af9c611df43b16b930b683"
|
||||
region_check: true
|
||||
@@ -1061,7 +1061,7 @@ files:
|
||||
|
||||
- name: "ps2_scph90002_0220.bin"
|
||||
description: "PS2, SCPH-90002/SCPH-90003/SCPH-90004/SCPH-90008 (v5.0 02/20/08 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "dc69f0643a3030aaa4797501b483d6c4"
|
||||
region_check: true
|
||||
@@ -1081,7 +1081,7 @@ files:
|
||||
|
||||
- name: "ps2_kdl22px300.bin"
|
||||
description: "PS2, KDL-22PX300 (v5.0 04/15/10 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
md5: "93ea3bcee4252627919175ff1b16a1d9"
|
||||
region_check: true
|
||||
|
||||
@@ -28,28 +28,24 @@ files:
|
||||
- name: "prod.keys"
|
||||
required: true
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:574-575, 853"
|
||||
|
||||
- name: "dev.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Development-unit keys, read instead of prod.keys when use_dev_keys is set"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:570-571, 852"
|
||||
|
||||
- name: "title.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Per-title encryption keys (rights_id to titlekey mappings)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:577-578, 850"
|
||||
|
||||
- name: "console.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Console-specific keys (BIS, SD seed)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:579-580"
|
||||
|
||||
@@ -57,7 +53,6 @@ files:
|
||||
required: false
|
||||
path: "switch/"
|
||||
size: 160
|
||||
mode: standalone
|
||||
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
|
||||
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:281-302"
|
||||
|
||||
|
||||
@@ -701,6 +701,10 @@ files:
|
||||
mode: standalone
|
||||
required: false
|
||||
bundled: true
|
||||
size: 408885
|
||||
sha1: "8c272ae624c56d48d788fafe0397fab2e33d838f"
|
||||
md5: "b1586eb09b91f65c37a2f5e7c6ef7980"
|
||||
note: "src/external/SDL_GameControllerDB is a submodule pinned at a113e7fa"
|
||||
description: "SDL2 controller mapping database handed to SDL_GameControllerAddMappingsFromFile"
|
||||
source_ref: "src/emu/drivers/src/input/backend/emu_controller_sdl2.cpp:143-145, src/emu/qt/CMakeLists.txt:277"
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ source: "https://github.com/sashkinbro/EmuCoreX"
|
||||
upstream: "https://github.com/PCSX2/pcsx2"
|
||||
author: "Oleksandr (sashkinbro)"
|
||||
profiled_date: "2026-10-04"
|
||||
source_commit: "ed8d7dd721dc8da958f3149acdc4c72d77d5a685"
|
||||
source_commit: "9884c9f9a0c5d5df2f0c0c064ec41029a4528d72"
|
||||
upstream_commit: "c10a5c9ad951c517dc48b722b5b84eb9bf7fdb42"
|
||||
core_version: "0.4.6"
|
||||
core_version: "0.4.7"
|
||||
display_name: "Sony - PlayStation 2 (EmuCoreX)"
|
||||
cores:
|
||||
- emucorex
|
||||
|
||||
@@ -143,7 +143,7 @@ files:
|
||||
has_builtin: true
|
||||
size: 32768
|
||||
note: "EXDOS 1.4 + IS-DOS 1.0 (UK). Used for IS-DOS disk mode instead of exdos13.rom."
|
||||
source_ref: "core/core.cpp:255, roms/roms.hpp:30104 (built-in data, MD5 verified)"
|
||||
source_ref: "core/core.cpp:294-298, roms/roms.hpp:30104 (built-in data, MD5 verified)"
|
||||
|
||||
# ============================================================
|
||||
# Enterprise 64/128 - file I/O and extensions
|
||||
@@ -193,7 +193,7 @@ files:
|
||||
has_builtin: true
|
||||
size: 32768
|
||||
note: "EP-DOS 1.6f. Provides HFONT and CLKOFF for Hungarian locale. 32K across segments 0x06-0x07."
|
||||
source_ref: "core/core.cpp:238-239, roms/roms.hpp:43780 (built-in data, MD5 verified)"
|
||||
source_ref: "core/core.cpp:252-256, roms/roms.hpp:43780 (built-in data, MD5 verified)"
|
||||
|
||||
- name: brd.rom
|
||||
path: ep128emu/roms/brd.rom
|
||||
|
||||
@@ -221,7 +221,6 @@ files:
|
||||
source_ref: "fMSX/ROMs/CYRILLIC.FNT, libretro.c:1547"
|
||||
|
||||
- name: KOREAN.FNT
|
||||
region: [south-korea]
|
||||
required: false
|
||||
bundled: true
|
||||
md5: 73291e76638a2f5aa2eceb843df468f4
|
||||
@@ -229,7 +228,6 @@ files:
|
||||
source_ref: "fMSX/ROMs/KOREAN.FNT, libretro.c:1547"
|
||||
|
||||
- name: JAPANESE.FNT
|
||||
region: [japan]
|
||||
required: false
|
||||
bundled: true
|
||||
md5: aa28f0703b951a6be8df3e28e20d263d
|
||||
|
||||
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/geolith-libretro"
|
||||
upstream: "https://gitlab.com/jgemu/geolith"
|
||||
profiled_date: "2026-08-07"
|
||||
source_commit: "194024931935eff2092e36fc4f8e53e62ed11097"
|
||||
upstream_commit: "7ed2ef95a446ffb9bf17b6536d24c108310c94da"
|
||||
upstream_commit: "1bb5a84fbd87dc1f1c510cb3ff81332573e22452"
|
||||
core_version: "0.4.1"
|
||||
display_name: "SNK - Neo Geo AES/MVS (Geolith)"
|
||||
cores:
|
||||
@@ -52,7 +52,7 @@ notes: |
|
||||
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:1888-1910,
|
||||
1904-1924). Upstream declares the expected archive MD5s through the Jolly
|
||||
Good API BIOS list (jg.c:228-239); 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:1222-1225, jg.c:229-230"
|
||||
source_ref: "libretro/libretro.c:1222-1225, 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:1222-1225, jg.c:231-232"
|
||||
source_ref: "libretro/libretro.c:1222-1225, 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:1213-1220, jg.c:233-234"
|
||||
source_ref: "libretro/libretro.c:1213-1220, 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:1213-1239, jg.c:235-236"
|
||||
source_ref: "libretro/libretro.c:1213-1239, 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:1281-1292, jg.c:237-238"
|
||||
source_ref: "libretro/libretro.c:1281-1292, jg.c:229-230"
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# aes.zip members
|
||||
|
||||
@@ -238,9 +238,11 @@ files:
|
||||
description: "SoundFont for the MIDI devices"
|
||||
note: >-
|
||||
Collected by scanning a `soundfonts` directory added to the search paths of
|
||||
the config file; every .sf2 and zipped GUS patch set found there becomes a
|
||||
menu entry.
|
||||
source_ref: "Q3E/src/main/jni/zdoom/src/gameconfigfile.cpp:220, 258, Q3E/src/main/jni/zdoom/src/common/audio/music/i_soundfont.cpp:335-370"
|
||||
the config file (Q3E/src/main/jni/zdoom/src/gameconfigfile.cpp:220, 258);
|
||||
every .sf2 and zipped GUS patch set found there becomes a menu entry.
|
||||
fluid_patchset defaults to GAMENAMELOWERCASE, "uzdoom", which
|
||||
FindSoundFont matches against the file base name.
|
||||
source_ref: "Q3E/src/main/jni/zdoom/src/version.h:110, Q3E/src/main/jni/zdoom/src/common/audio/music/music_config.cpp:119, Q3E/src/main/jni/zdoom/src/common/audio/music/i_soundfont.cpp:335-370, 458-468"
|
||||
|
||||
- name: GENMIDI.GS.wopl
|
||||
required: false
|
||||
@@ -280,12 +282,12 @@ files:
|
||||
description: "ECWolf engine resource archive"
|
||||
note: >-
|
||||
Named by MAIN_PK3 and passed to the game selector with the program
|
||||
directory; failing to open it ends the process with "Could not open
|
||||
ecwolf.pk3!". It holds the IWADINFO rules that identify which Wolfenstein
|
||||
directory (Q3E/src/main/jni/ecwolf/src/wl_main.cpp:1294-1307); failing
|
||||
to open it ends the process with "Could not open ecwolf.pk3!". It holds the IWADINFO rules that identify which Wolfenstein
|
||||
data set is present, the palettes and the actor definitions. This build
|
||||
reads it from disk after extraction, unlike the libretro core which
|
||||
compiles it in.
|
||||
source_ref: "Q3E/src/main/jni/ecwolf/src/version.h:12, Q3E/src/main/jni/ecwolf/src/wl_iwad.cpp:604, Q3E/src/main/jni/ecwolf/src/wl_main.cpp:1294-1307, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:186-195"
|
||||
source_ref: "Q3E/src/main/jni/ecwolf/src/version.h:12, Q3E/src/main/jni/ecwolf/src/wl_iwad.cpp:604, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:186-195"
|
||||
|
||||
- name: glprogs.pk4
|
||||
required: true
|
||||
@@ -403,7 +405,7 @@ files:
|
||||
Unpacked into `files/` under the Source standalone directory. It carries
|
||||
the DejaVu, Droid Sans Fallback, Itim and Liberation faces the engine
|
||||
substitutes for the Windows fonts, and extras_dir.vpk.
|
||||
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:164-173, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:938-961, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:396"
|
||||
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:164-173, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:938-961, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:383, 396"
|
||||
|
||||
- name: d3_sabot_a7.pk4
|
||||
required: false
|
||||
|
||||
+29
-29
@@ -4,7 +4,7 @@ core_classification: game_engine
|
||||
source: "https://github.com/deathkiller/jazz2-native"
|
||||
upstream: "https://github.com/deathkiller/jazz2-native"
|
||||
profiled_date: "2026-10-04"
|
||||
source_commit: "cc06bdac1b957a069e1d05761c7437cd59886552"
|
||||
source_commit: "1e20466795d5074570fb057b41f56baefd24c629"
|
||||
core_version: "3.8.0"
|
||||
display_name: "Jazz Jackrabbit 2 (Jazz² Resurrection)"
|
||||
cores: [jazz2]
|
||||
@@ -15,18 +15,18 @@ notes: |
|
||||
ships its own Content/ tree (animations, metadata, translations) that
|
||||
sits next to the executable in a portable copy, or under
|
||||
<prefix>/share/<package>/ once installed.
|
||||
ref: Sources/Jazz2/ContentResolver.cpp:187-238 (GetContentPath per
|
||||
platform), Sources/Jazz2/ContentResolver.cpp:409-485 (Unix layouts)
|
||||
ref: Sources/Jazz2/ContentResolver.cpp:191-243 (GetContentPath per
|
||||
platform), Sources/Jazz2/ContentResolver.cpp:415-491 (Unix layouts)
|
||||
|
||||
Original Jazz Jackrabbit 2 data is read from Source/ and converted
|
||||
on first launch into the engine's own formats under Cache/: Anims.j2a
|
||||
and Data.j2d into a package, then every .j2e, .j2l and the tilesets
|
||||
the levels name. Music and cinematics are read from Source/ as they
|
||||
are.
|
||||
ref: Sources/Jazz2/ContentResolver.cpp:279-309 (GetSourcePath),
|
||||
Sources/Main.cpp:2224-2288 (RefreshCache),
|
||||
ref: Sources/Jazz2/ContentResolver.cpp:285-314 (GetSourcePath),
|
||||
Sources/Main.cpp:2226-2290 (RefreshCache),
|
||||
Sources/Jazz2/Compatibility/AssetConverter.cpp:152-168,
|
||||
Sources/Jazz2/Compatibility/AssetConverter.cpp:400-516
|
||||
Sources/Jazz2/Compatibility/AssetConverter.cpp:400-520
|
||||
|
||||
Content/ is the engine runtime, shipped with the release package.
|
||||
Source/ holds the user's own copy of the 1998 game data. Without
|
||||
@@ -51,7 +51,7 @@ files:
|
||||
standalone_path: "Content/Animations/"
|
||||
bundled: true
|
||||
required: true
|
||||
source_ref: "Sources/Jazz2/ContentResolver.cpp:1093, 1223, 2734-2735"
|
||||
source_ref: "Sources/Jazz2/ContentResolver.cpp:1164, 1294, 2837-2838"
|
||||
note: "Native graphics, sounds and the UI fonts, opened through OpenContentFile."
|
||||
|
||||
- name: "Metadata/"
|
||||
@@ -61,7 +61,7 @@ files:
|
||||
standalone_path: "Content/Metadata/"
|
||||
bundled: true
|
||||
required: true
|
||||
source_ref: "Sources/Jazz2/ContentResolver.cpp:839"
|
||||
source_ref: "Sources/Jazz2/ContentResolver.cpp:910"
|
||||
note: "Actor .res descriptors (Common, Enemy, Player, UI, Boss, ...)."
|
||||
|
||||
- name: "Translations/"
|
||||
@@ -71,7 +71,7 @@ files:
|
||||
standalone_path: "Content/Translations/"
|
||||
bundled: true
|
||||
required: false
|
||||
source_ref: "Sources/Main.cpp:2019-2025, Sources/Jazz2/UI/Menu/LanguageSelectSection.cpp:82-88"
|
||||
source_ref: "Sources/Main.cpp:2021-2027, Sources/Jazz2/UI/Menu/LanguageSelectSection.cpp:82-88"
|
||||
note: "Language .mo bundles, searched in Cache/Translations/ first. Built-in English is used when none is loaded."
|
||||
|
||||
# ================================================================
|
||||
@@ -85,7 +85,7 @@ files:
|
||||
path: "jazz2/Source/Anims.j2a"
|
||||
standalone_path: "Source/Anims.j2a"
|
||||
required: true
|
||||
source_ref: "Sources/Main.cpp:2224-2240, Sources/Jazz2/Compatibility/AssetConverter.cpp:156-159"
|
||||
source_ref: "Sources/Main.cpp:2226-2242, Sources/Jazz2/Compatibility/AssetConverter.cpp:156-159"
|
||||
note: "Main animation archive. The cache cannot be created without it and the game is not flagged playable."
|
||||
|
||||
- name: "AnimsSw.j2a"
|
||||
@@ -94,7 +94,7 @@ files:
|
||||
path: "jazz2/Source/AnimsSw.j2a"
|
||||
standalone_path: "Source/AnimsSw.j2a"
|
||||
required: false
|
||||
source_ref: "Sources/Main.cpp:2227-2229"
|
||||
source_ref: "Sources/Main.cpp:2229-2231"
|
||||
note: "Animation archive of the shareware demo, read when Anims.j2a is absent."
|
||||
|
||||
- name: "Data.j2d"
|
||||
@@ -108,7 +108,7 @@ files:
|
||||
|
||||
# Episode descriptors (.j2e) and level files (.j2l) are optional per
|
||||
# episode. Every one present in Source/ is converted.
|
||||
# ref: Sources/Jazz2/Compatibility/AssetConverter.cpp:400-516
|
||||
# ref: Sources/Jazz2/Compatibility/AssetConverter.cpp:400-520
|
||||
|
||||
- name: "prince.j2e"
|
||||
category: game_data
|
||||
@@ -252,8 +252,8 @@ files:
|
||||
# Tilesets. Only those a converted level names are converted. The name
|
||||
# is read from the level, lowercased and looked up in Source/ without
|
||||
# regard to case.
|
||||
# ref: Sources/Jazz2/Compatibility/JJ2Level.cpp:117, 724-727,
|
||||
# Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 575-596
|
||||
# ref: Sources/Jazz2/Compatibility/JJ2Level.cpp:124, 772-775,
|
||||
# Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 579-600
|
||||
|
||||
- name: "labrat1n.j2t"
|
||||
category: game_data
|
||||
@@ -261,7 +261,7 @@ files:
|
||||
path: "jazz2/Source/labrat1n.j2t"
|
||||
standalone_path: "Source/labrat1n.j2t"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:117, 724-727, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 575-596"
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:124, 772-775, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 579-600"
|
||||
note: "Tileset named by share1.j2l, sharect2.j2l and sharetrs.j2l."
|
||||
|
||||
- name: "psych2.j2t"
|
||||
@@ -270,7 +270,7 @@ files:
|
||||
path: "jazz2/Source/psych2.j2t"
|
||||
standalone_path: "Source/psych2.j2t"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:117, 724-727, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 575-596"
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:124, 772-775, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 579-600"
|
||||
note: "Tileset named by share2.j2l."
|
||||
|
||||
- name: "diam2.j2t"
|
||||
@@ -279,11 +279,11 @@ files:
|
||||
path: "jazz2/Source/diam2.j2t"
|
||||
standalone_path: "Source/diam2.j2t"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:117, 724-727, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 575-596"
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:124, 772-775, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 579-600"
|
||||
note: "Tileset named by share3.j2l and sharectf.j2l."
|
||||
|
||||
# Music, read from Content/Music/ then from Source/
|
||||
# ref: Sources/Jazz2/ContentResolver.cpp:2681-2691
|
||||
# ref: Sources/Jazz2/ContentResolver.cpp:2784-2794
|
||||
|
||||
- name: "menu.j2b"
|
||||
category: game_data
|
||||
@@ -291,7 +291,7 @@ files:
|
||||
path: "jazz2/Source/menu.j2b"
|
||||
standalone_path: "Source/menu.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:509-511, Sources/Jazz2/Compatibility/AssetConverter.cpp:535-538"
|
||||
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:509-511, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
||||
note: "Main menu music."
|
||||
|
||||
- name: "bonus2.j2b"
|
||||
@@ -300,7 +300,7 @@ files:
|
||||
path: "jazz2/Source/bonus2.j2b"
|
||||
standalone_path: "Source/bonus2.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:503-504, Sources/Jazz2/Compatibility/AssetConverter.cpp:535-538"
|
||||
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:503-504, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
||||
note: "Menu music of the reforged main menu, picked at random with bonus3.j2b."
|
||||
|
||||
- name: "bonus3.j2b"
|
||||
@@ -309,7 +309,7 @@ files:
|
||||
path: "jazz2/Source/bonus3.j2b"
|
||||
standalone_path: "Source/bonus3.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:503-504, Sources/Jazz2/Compatibility/AssetConverter.cpp:535-538"
|
||||
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:503-504, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
||||
note: "Menu music of the reforged main menu, picked at random with bonus2.j2b."
|
||||
|
||||
- name: "intro.j2b"
|
||||
@@ -318,7 +318,7 @@ files:
|
||||
path: "jazz2/Source/intro.j2b"
|
||||
standalone_path: "Source/intro.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/UI/Cinematics.cpp:255, Sources/Main.cpp:558, Sources/Jazz2/Compatibility/AssetConverter.cpp:535-538"
|
||||
source_ref: "Sources/Jazz2/UI/Cinematics.cpp:255, Sources/Main.cpp:558, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
||||
note: "Music of the intro cinematic."
|
||||
|
||||
- name: "ending.j2b"
|
||||
@@ -327,12 +327,12 @@ files:
|
||||
path: "jazz2/Source/ending.j2b"
|
||||
standalone_path: "Source/ending.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/UI/Cinematics.cpp:255, Sources/Main.cpp:964, Sources/Jazz2/Compatibility/AssetConverter.cpp:535-538"
|
||||
source_ref: "Sources/Jazz2/UI/Cinematics.cpp:255, Sources/Main.cpp:964, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
||||
note: "Music of the ending cinematic."
|
||||
|
||||
# Level music. The name is read from the level, lowercased and given
|
||||
# the .j2b extension when it has none.
|
||||
# ref: Sources/Jazz2/Compatibility/JJ2Level.cpp:121, 736-741
|
||||
# ref: Sources/Jazz2/Compatibility/JJ2Level.cpp:128, 784-789
|
||||
|
||||
- name: "labrat.j2b"
|
||||
category: game_data
|
||||
@@ -340,7 +340,7 @@ files:
|
||||
path: "jazz2/Source/labrat.j2b"
|
||||
standalone_path: "Source/labrat.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:121, 736-741, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2681-2685"
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:128, 784-789, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2784-2788"
|
||||
note: "Music named by share1.j2l, sharect2.j2l and sharetrs.j2l."
|
||||
|
||||
- name: "funkyg.j2b"
|
||||
@@ -349,7 +349,7 @@ files:
|
||||
path: "jazz2/Source/funkyg.j2b"
|
||||
standalone_path: "Source/funkyg.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:121, 736-741, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2681-2685"
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:128, 784-789, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2784-2788"
|
||||
note: "Music named by share2.j2l."
|
||||
|
||||
- name: "diamond.j2b"
|
||||
@@ -358,7 +358,7 @@ files:
|
||||
path: "jazz2/Source/diamond.j2b"
|
||||
standalone_path: "Source/diamond.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:121, 736-741, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2681-2685"
|
||||
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:128, 784-789, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2784-2788"
|
||||
note: "Music named by share3.j2l and sharectf.j2l."
|
||||
|
||||
- name: "boss2.j2b"
|
||||
@@ -367,8 +367,8 @@ files:
|
||||
path: "jazz2/Source/boss2.j2b"
|
||||
standalone_path: "Source/boss2.j2b"
|
||||
required: false
|
||||
source_ref: "Sources/Jazz2/Compatibility/EventConverter.cpp:356-362, Sources/Jazz2/LevelHandler.cpp:1397-1400, Sources/Jazz2/ContentResolver.cpp:2681-2685"
|
||||
note: "Boss music. The boss activation event carries a music index that is converted to boss1.j2b or boss2.j2b; share3.j2l carries index 1."
|
||||
source_ref: "Sources/Jazz2/Compatibility/EventConverter.cpp:360-370, Sources/Jazz2/Compatibility/AssetConverter.cpp:505-508, Sources/Jazz2/LevelHandler.cpp:1397-1400, Sources/Jazz2/ContentResolver.cpp:2784-2788"
|
||||
note: "Boss music. The boss activation event carries a music index that is converted to boss1.j2b or boss2.j2b and recorded as music the level uses; share3.j2l carries index 1."
|
||||
|
||||
# Cinematics, read from Content/Cinematics/ then from Source/
|
||||
|
||||
|
||||
@@ -79,7 +79,6 @@ files:
|
||||
description: "Sega CD BIOS (US)"
|
||||
region: [north-america]
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 131072
|
||||
validation: [size]
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:39-49 (read), frontend/jgenesis-native-driver/src/mainloop/genesis.rs:238-244 (bios_path_for_region), backend/segacd-core/src/api.rs:77-79 (BIOS_LEN check)"
|
||||
@@ -90,7 +89,6 @@ files:
|
||||
description: "Mega CD BIOS (Europe)"
|
||||
region: [europe]
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 131072
|
||||
validation: [size]
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:238-244 (eu_bios_path), backend/segacd-core/src/api.rs:77-79"
|
||||
@@ -100,7 +98,6 @@ files:
|
||||
description: "Mega CD BIOS (Japan)"
|
||||
region: [japan]
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 131072
|
||||
validation: [size]
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:238-244 (jp_bios_path), backend/segacd-core/src/api.rs:77-79"
|
||||
@@ -112,7 +109,6 @@ files:
|
||||
system: nintendo-gba
|
||||
description: "Game Boy Advance BIOS"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 16384
|
||||
validation: [size]
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/gba.rs:29-33 (GbaNoBios), backend/gba-core/src/memory.rs:10,102-107 (BIOS_ROM_LEN check)"
|
||||
@@ -126,7 +122,6 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD77C25 firmware for DSP-1"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 8192
|
||||
source_ref: "backend/snes-core/src/memory/cartridge.rs:336-353 (MissingDsp1Rom), backend/snes-coprocessors/src/upd77c25.rs:28-31,35-38,382-390"
|
||||
note: "0x1800 program plus 0x800 data. Also used by DSP-1B titles, which have no separate slot. Layout is sliced at a fixed offset, size is not checked."
|
||||
@@ -136,7 +131,6 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD77C25 firmware for DSP-2"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 8192
|
||||
source_ref: "backend/snes-core/src/memory/cartridge.rs:340-342 (MissingDsp2Rom), :929 (Dungeon Master CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390"
|
||||
|
||||
@@ -145,7 +139,6 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD77C25 firmware for DSP-3"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 8192
|
||||
source_ref: "backend/snes-core/src/memory/cartridge.rs:343-345 (MissingDsp3Rom), :931 (SD Gundam GX CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390"
|
||||
|
||||
@@ -154,7 +147,6 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD77C25 firmware for DSP-4"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 8192
|
||||
source_ref: "backend/snes-core/src/memory/cartridge.rs:346-348 (MissingDsp4Rom), :933 (Top Gear 3000 CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390"
|
||||
|
||||
@@ -163,7 +155,6 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD96050 firmware for ST010"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 53248
|
||||
source_ref: "backend/snes-core/src/memory/cartridge.rs:294-305 (MissingSt010Rom), :938-943 (variant detection), backend/snes-coprocessors/src/upd77c25.rs:28-31,35-38"
|
||||
note: "0xC000 program plus 0x1000 data. Used by F1 ROC II."
|
||||
@@ -173,7 +164,6 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD96050 firmware for ST011"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 53248
|
||||
source_ref: "backend/snes-core/src/memory/cartridge.rs:298-300 (MissingSt011Rom), :938-943 (Hayazashi Nidan Morita Shougi CRC32 match)"
|
||||
|
||||
@@ -182,7 +172,6 @@ files:
|
||||
system: nintendo-snes
|
||||
description: "ARM firmware for ST018"
|
||||
required: true
|
||||
mode: standalone
|
||||
min_size: 163840
|
||||
validation: [size]
|
||||
source_ref: "backend/snes-core/src/memory/cartridge.rs:310-320 (MissingSt018Rom), backend/snes-coprocessors/src/st018.rs:18-22,346-352 (TOTAL_ROM_LEN check)"
|
||||
@@ -195,7 +184,6 @@ files:
|
||||
system: sega-mastersystem
|
||||
description: "Master System BIOS"
|
||||
required: false
|
||||
mode: standalone
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/smsgg.rs:27-33,50-56,74-80,112-122, backend/smsgg-core/src/memory.rs:101-106,148-168"
|
||||
note: "Read only when sms_boot_from_bios is enabled or the emulator runs without a cartridge, both off by default. One slot accepts any regional dump, no size or content check."
|
||||
|
||||
@@ -203,7 +191,6 @@ files:
|
||||
system: sega-gamegear
|
||||
description: "Game Gear BIOS"
|
||||
required: false
|
||||
mode: standalone
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/smsgg.rs:27-33,50-56,74-80,112-122"
|
||||
note: "Read only when gg_boot_from_bios is enabled or the emulator runs without a cartridge, both off by default."
|
||||
|
||||
@@ -214,7 +201,6 @@ files:
|
||||
system: nintendo-gb
|
||||
description: "Game Boy boot ROM"
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 256
|
||||
validation: [size]
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/gb.rs:29-33,77-89, backend/gb-core/src/memory.rs:9,45-63 (DMG_BOOT_ROM_LEN check)"
|
||||
@@ -224,7 +210,6 @@ files:
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color boot ROM"
|
||||
required: false
|
||||
mode: standalone
|
||||
min_size: 2048
|
||||
max_size: 2304
|
||||
validation: [size]
|
||||
@@ -239,7 +224,6 @@ files:
|
||||
system: nintendo-nes
|
||||
description: "External NES color palette"
|
||||
required: false
|
||||
mode: standalone
|
||||
min_size: 192
|
||||
max_size: 1536
|
||||
validation: [size]
|
||||
|
||||
@@ -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:1860-1901
|
||||
src/main/emulator/ui/swt/Property.java:1863-1904
|
||||
|
||||
files:
|
||||
- name: M7_EmuSmw7.dll
|
||||
|
||||
@@ -2,9 +2,10 @@ emulator: Kronos
|
||||
type: libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/libretro/yabause"
|
||||
source_branch: kronos
|
||||
upstream: "https://github.com/FCare/Kronos"
|
||||
profiled_date: "2026-03-24"
|
||||
source_commit: "8926b0c6c347f8c5c755911ddb0ac695420ffbf8"
|
||||
source_commit: "3791ffb2221fda61d70aec5cca376418caf05669"
|
||||
core_version: "v2.6.0"
|
||||
display_name: "Sega - Saturn/ST-V (Kronos)"
|
||||
cores:
|
||||
@@ -60,7 +61,6 @@ files:
|
||||
# -----------------------------------------------------------
|
||||
- name: "sega_101.bin"
|
||||
system: sega-saturn
|
||||
region: [japan]
|
||||
priority: 2
|
||||
required: false
|
||||
size: 524288
|
||||
@@ -73,7 +73,6 @@ files:
|
||||
# -----------------------------------------------------------
|
||||
- name: "mpr-17933.bin"
|
||||
system: sega-saturn
|
||||
region: [north-america, europe]
|
||||
priority: 3
|
||||
required: false
|
||||
size: 524288
|
||||
@@ -246,7 +245,7 @@ files:
|
||||
size: 2097152
|
||||
validation: [size]
|
||||
note: "ROM cartridge for The King of Fighters '95. Auto-detected via game DB."
|
||||
source_ref: "yabause/src/utils/src/db.c:43-44, yabause/src/cs0.c:1207-1216"
|
||||
source_ref: "yabause/src/utils/src/db.c:43-44, yabause/src/sys/memory/src/cs0.c:1526-1535"
|
||||
|
||||
- name: "mpr-19367-mx.ic1"
|
||||
system: sega-saturn
|
||||
@@ -254,4 +253,4 @@ files:
|
||||
size: 2097152
|
||||
validation: [size]
|
||||
note: "ROM cartridge for Ultraman: Hikari no Kyojin Densetsu. Auto-detected via game DB."
|
||||
source_ref: "yabause/src/utils/src/db.c:45, yabause/src/cs0.c:1207-1216"
|
||||
source_ref: "yabause/src/utils/src/db.c:45, yabause/src/sys/memory/src/cs0.c:1526-1535"
|
||||
+35
-29
@@ -4,7 +4,7 @@ core_classification: community_fork
|
||||
source: "https://github.com/linappleii/linapple"
|
||||
upstream: "https://github.com/AppleWin/AppleWin"
|
||||
profiled_date: "2026-10-04"
|
||||
source_commit: "02f948d92b0c4df3272ff2ccb0dfcc4daac3e430"
|
||||
source_commit: "42e4321d60dc066470151f76c1cd3fe5e88a695c"
|
||||
core_version: "3.0.0"
|
||||
display_name: "Apple - Apple II (LinApple)"
|
||||
cores:
|
||||
@@ -16,24 +16,25 @@ mode: standalone
|
||||
notes: |
|
||||
SDL port of AppleWin for Linux. The SourceForge project was abandoned and
|
||||
its forks were gathered under the linappleii organization
|
||||
(README.md:163-170). Five frontends build from one core: sdl1, sdl2, sdl3,
|
||||
(README.md:166-173). Five frontends build from one core: sdl1, sdl2, sdl3,
|
||||
tui and headless (src/frontends/).
|
||||
|
||||
The ROMs the emulator runs are compiled into the binary.
|
||||
scripts/generate_roms.sh turns res/roms/*.rom into EmbeddedRoms.h and
|
||||
EmbeddedRoms.cpp, once at configure time and again at build time
|
||||
(CMakeLists.txt:308-346), each image behind an ENABLE_ROM_* macro
|
||||
(scripts/generate_roms.sh:97-119). Nineteen images go through the generator:
|
||||
ten system ROMs, four character generator ROMs and five card ROMs. The
|
||||
printer card and the clock card carry their firmware as arrays in their own
|
||||
source files (src/apple2/peripherals/printer/Printer.cpp:30,
|
||||
(CMakeLists.txt:301-338), each image behind an ENABLE_ROM_* macro
|
||||
(scripts/generate_roms.sh:97-118). Eighteen images go through the generator:
|
||||
ten system ROMs, four character generator ROMs and four card ROMs. The
|
||||
printer card, the Super Serial Card and the clock card carry their firmware
|
||||
as arrays in their own source files
|
||||
(src/apple2/peripherals/printer/Printer.cpp:30,
|
||||
src/apple2/peripherals/super_serial_card/SuperSerialRom.h:16,
|
||||
src/apple2/peripherals/clock/ClockCard.cpp:20), and the Mockingboard
|
||||
registers no ROM.
|
||||
|
||||
What a macro is set to decides whether a machine model runs at all.
|
||||
CMakeLists.txt:57-145 leaves the Apple ][, ][+, J-Plus, //e and Enhanced //e
|
||||
system ROMs ON, along with the Disk II, Super Serial Card and mouse
|
||||
firmware. The three clone options are OFF: ENABLE_ROM_CLONE_BASE64A,
|
||||
CMakeLists.txt:57-131 leaves the Apple ][, ][+, J-Plus, //e and Enhanced //e
|
||||
system ROMs ON, along with the Disk II and mouse firmware. The three clone options are OFF: ENABLE_ROM_CLONE_BASE64A,
|
||||
ENABLE_ROM_CLONE_PRAVETS and ENABLE_ROM_CLONE_TK3000E
|
||||
(CMakeLists.txt:95-97). Selecting one of those machine types on a default
|
||||
build reaches mem_initialize with no rom_data, which prints the model name
|
||||
@@ -45,14 +46,14 @@ notes: |
|
||||
A custom ROM takes precedence over anything embedded. load_custom_rom opens
|
||||
the path as given, then through Path::find_data_file, and refuses a file
|
||||
below 12288 or above 65536 bytes, which stops the start
|
||||
(src/frontends/common/AppController.cpp:104-148,228-230). mem_initialize
|
||||
(src/frontends/common/AppController.cpp:127-171,251-253). mem_initialize
|
||||
accepts the buffer 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:1038-1059). No hash or name is checked; the file is
|
||||
whatever the user points at.
|
||||
|
||||
Character generators are res/charset40*.png, converted to XPM by CMake
|
||||
(CMakeLists.txt:277-306) and included at src/apple2/Video.cpp:39-43. One of
|
||||
(CMakeLists.txt:270-299) and included at src/apple2/Video.cpp:39-43. One of
|
||||
five is chosen from the machine type and the keyboard language
|
||||
(src/apple2/Video.cpp:1228-1252). The status font and the splash screen are
|
||||
XPM as well (src/core/Asset.cpp:15-16,57,63). The four *_Video.rom images
|
||||
@@ -60,7 +61,7 @@ notes: |
|
||||
|
||||
Master.dsk is inserted into slot 6 drive 1 at startup unless the command
|
||||
line names a disk or the configuration autoloads one
|
||||
(src/frontends/common/AppController.cpp:171-192). asset_find_master_disk
|
||||
(src/frontends/common/AppController.cpp:194-215). asset_find_master_disk
|
||||
resolves it through Path::find_data_file (src/core/Asset.cpp:25-39), which
|
||||
walks the user data and config directories, the executable directory and its
|
||||
res/ neighbours, the share and etc prefixes beside it, the compiled-in
|
||||
@@ -80,8 +81,9 @@ notes: |
|
||||
debugger running without its symbols (src/Debugger/Debugger_Symbols.cpp:495).
|
||||
|
||||
Peripheral cards are linked into the executable by default. With
|
||||
BUILD_SHARED_PERIPHERALS, OFF at CMakeLists.txt:43, each card builds as a
|
||||
shared object, and peripheral_plugins_init opens every *.so found in the
|
||||
BUILD_SHARED_PERIPHERALS, OFF at CMakeLists.txt:43, each card that
|
||||
add_peripheral does not force built-in builds as a shared object
|
||||
(CMakeLists.txt:554-555,662-666), and peripheral_plugins_init opens every *.so found in the
|
||||
plugin search paths in either build
|
||||
(src/apple2/peripherals/Peripheral_Internal.cpp:192-219,
|
||||
src/core/Util_Path.h:102-114).
|
||||
@@ -149,7 +151,7 @@ files:
|
||||
size: 49152
|
||||
md5: 352fdbcae14c6a8c0398822c7a273309
|
||||
sha1: f1c779af480b5bda2bdd03950c1201a5c5143bea
|
||||
source_ref: "CMakeLists.txt:95,99-103; scripts/generate_roms.sh:107; src/frontends/common/AppController.cpp:125-136; src/apple2/Memory.cpp:99-100,1038-1059,1124-1134"
|
||||
source_ref: "CMakeLists.txt:95,99-103; scripts/generate_roms.sh:107; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:99-100,1038-1059,1124-1134"
|
||||
note: >
|
||||
Larger than a system ROM: mem_initialize takes the trailing 12288 bytes
|
||||
for this machine type.
|
||||
@@ -163,7 +165,7 @@ files:
|
||||
size: 12288
|
||||
md5: c619b7edfcf021f3b8fd20d9386676ba
|
||||
sha1: 8bd7ced83e209a15e9b19a05a5ef4b8e996dc1a5
|
||||
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:109; src/frontends/common/AppController.cpp:125-136; src/apple2/Memory.cpp:101-102,1038-1059,1124-1134"
|
||||
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:109; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:101-102,1038-1059,1124-1134"
|
||||
|
||||
- name: PRAVETS8M.ROM
|
||||
required: false
|
||||
@@ -174,7 +176,7 @@ files:
|
||||
size: 12288
|
||||
md5: 76c79535f7cf77973e2c711aa977a124
|
||||
sha1: f1b4ff018acf95f3355f0d575b66a188d728b687
|
||||
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:111; src/frontends/common/AppController.cpp:125-136; src/apple2/Memory.cpp:103-104,1038-1059,1124-1134"
|
||||
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:111; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:103-104,1038-1059,1124-1134"
|
||||
|
||||
- name: PRAVETS8C.ROM
|
||||
required: false
|
||||
@@ -185,7 +187,7 @@ files:
|
||||
size: 16384
|
||||
md5: 1896d7b98dd940c89f7c8ea899b71006
|
||||
sha1: c976fe56e57706c161f513a82ba3e0d8cda83904
|
||||
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:110; src/frontends/common/AppController.cpp:125-136; src/apple2/Memory.cpp:105-106,1038-1059,1124-1134"
|
||||
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:110; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:105-106,1038-1059,1124-1134"
|
||||
note: >
|
||||
A //e-class type: mem_initialize takes the trailing 16384 bytes when the
|
||||
file is larger.
|
||||
@@ -199,7 +201,7 @@ files:
|
||||
size: 16384
|
||||
md5: 8d84b614b545d4eec8799d3f325332cb
|
||||
sha1: f163e5753c18ff0e812a448e8da406f102600edf
|
||||
source_ref: "CMakeLists.txt:97,111-115; scripts/generate_roms.sh:112; src/frontends/common/AppController.cpp:125-136; src/apple2/Memory.cpp:107-108,1038-1059,1124-1134"
|
||||
source_ref: "CMakeLists.txt:97,111-115; scripts/generate_roms.sh:112; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:107-108,1038-1059,1124-1134"
|
||||
note: >
|
||||
A //e-class type: mem_initialize takes the trailing 16384 bytes when the
|
||||
file is larger.
|
||||
@@ -209,7 +211,7 @@ analysis:
|
||||
mechanism: >
|
||||
res/roms/*.rom compiled into EmbeddedRoms.cpp by scripts/generate_roms.sh
|
||||
at configure and build time, each behind an ENABLE_ROM_* macro
|
||||
source_ref: "CMakeLists.txt:57-145,308-346; scripts/generate_roms.sh:97-119"
|
||||
source_ref: "CMakeLists.txt:57-131,301-338; scripts/generate_roms.sh:97-118"
|
||||
extraction: "hashes computed from the res/roms images the generator reads"
|
||||
|
||||
system_roms:
|
||||
@@ -356,7 +358,7 @@ analysis:
|
||||
image: res/roms/DISK2.rom
|
||||
cmake_option: ENABLE_ROM_DISK2
|
||||
default: on
|
||||
source_ref: "CMakeLists.txt:118,121-125; scripts/generate_roms.sh:115; src/apple2/peripherals/disk/Disk.cpp:1125-1127"
|
||||
source_ref: "CMakeLists.txt:118,120-124; scripts/generate_roms.sh:115; src/apple2/peripherals/disk/Disk.cpp:1125-1127"
|
||||
size: 256
|
||||
md5: 2020aa1413ff77fe29353f3ee72dc295
|
||||
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
|
||||
@@ -367,7 +369,7 @@ analysis:
|
||||
image: res/roms/DISK2-P6.rom
|
||||
cmake_option: ENABLE_ROM_DISK2
|
||||
default: on
|
||||
source_ref: "scripts/generate_roms.sh:117; src/apple2/peripherals/disk/Disk.cpp:618-624; CMakeLists.txt:942-955"
|
||||
source_ref: "scripts/generate_roms.sh:117; src/apple2/peripherals/disk/Disk.cpp:618-624; CMakeLists.txt:957-970"
|
||||
size: 256
|
||||
md5: 5f1be0c1cdff26f5956eef9643911886
|
||||
sha1: bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4
|
||||
@@ -389,14 +391,18 @@ analysis:
|
||||
|
||||
- device: "Super Serial Card"
|
||||
slot: 2
|
||||
symbol: g_rom_ssc
|
||||
symbol: super_serial_rom
|
||||
image: res/roms/SSC.rom
|
||||
cmake_option: ENABLE_ROM_SSC
|
||||
default: on
|
||||
source_ref: "CMakeLists.txt:119,127-131; scripts/generate_roms.sh:118; src/apple2/peripherals/super_serial_card/SuperSerial.cpp:250-254"
|
||||
source_ref: "src/apple2/peripherals/super_serial_card/SuperSerialRom.h:8-16; src/apple2/peripherals/super_serial_card/SuperSerial.cpp:356-358; CMakeLists.txt:884-887"
|
||||
size: 2048
|
||||
md5: 67c0d61ab0911183faf05270f881a97e
|
||||
sha1: 6dab633470c6bc4cb3e81d09fda46597caf8ee57
|
||||
note: >
|
||||
Not generated and behind no cmake option: the card carries the 2048
|
||||
bytes as an array in SuperSerialRom.h, the last page mapped at $Cn00
|
||||
and the whole image at $C800. The generator does not read
|
||||
res/roms/SSC.rom; a build test pins its SHA-1 as the reference of
|
||||
that transcription.
|
||||
|
||||
- device: "Mouse interface card"
|
||||
slot: 4
|
||||
@@ -404,7 +410,7 @@ analysis:
|
||||
image: res/roms/MouseInterface.rom
|
||||
cmake_option: ENABLE_ROM_MOUSE
|
||||
default: on
|
||||
source_ref: "CMakeLists.txt:133,135-139; scripts/generate_roms.sh:119; src/apple2/peripherals/mouse/Mouse.cpp:537-541"
|
||||
source_ref: "CMakeLists.txt:126,128-132; scripts/generate_roms.sh:118; src/apple2/peripherals/mouse/Mouse.cpp:537-541"
|
||||
size: 2048
|
||||
md5: 22563ab338024dac7b03510371d49c57
|
||||
sha1: 3a9d881a8a8d30f55b9719aceebbcf717f829d6f
|
||||
@@ -413,7 +419,7 @@ analysis:
|
||||
slot: 1
|
||||
symbol: printer_rom
|
||||
image: res/roms/Parallel.rom
|
||||
source_ref: "src/apple2/peripherals/printer/Printer.cpp:30-53,215; CMakeLists.txt:881-883"
|
||||
source_ref: "src/apple2/peripherals/printer/Printer.cpp:30-53,215; CMakeLists.txt:872-874"
|
||||
size: 256
|
||||
md5: 5902996f16dc78fc013f6e1db14805b3
|
||||
sha1: c75c751589cbcc1ad4ab4f63676af7abadd86f5b
|
||||
|
||||
+5
-5
@@ -36,7 +36,7 @@ files:
|
||||
min_size: 4194304
|
||||
max_size: 8388608
|
||||
validation: [size]
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:231-254,267-322"
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:33-34,63-180,249-274,286-348"
|
||||
note: >
|
||||
Scans pcsx2/bios/ for any file between 4 MB and 8 MB. Validates via romdir
|
||||
structure parsing (RESET + ROMVER entries). User selects BIOS via core option
|
||||
@@ -47,7 +47,7 @@ files:
|
||||
required: false
|
||||
max_size: 4194304
|
||||
description: "DVD player ROM"
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:190-211,314"
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:189-229,339"
|
||||
note: >
|
||||
DVD player ROM. Tries <biospath>.rom1 (appended) then <biosbase>.rom1
|
||||
(extension replaced). Silently skipped if not found.
|
||||
@@ -57,7 +57,7 @@ files:
|
||||
required: false
|
||||
max_size: 524288
|
||||
description: "Chinese ROM extension"
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:190-211,315"
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:189-229,340"
|
||||
note: >
|
||||
Chinese region ROM extension. Same naming convention as rom1.
|
||||
Only present on Chinese region consoles.
|
||||
@@ -68,7 +68,7 @@ files:
|
||||
hle_fallback: true
|
||||
size: 1024
|
||||
description: "NVRAM / EEPROM data"
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:224-267"
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:196-227"
|
||||
note: >
|
||||
Console EEPROM data (language, timezone, region, iLink ID, OSD settings).
|
||||
Path derived from BIOS path with extension replaced to .nvm.
|
||||
@@ -80,7 +80,7 @@ files:
|
||||
hle_fallback: true
|
||||
size: 4
|
||||
description: "Mechacon version"
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:255-266"
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:229-245"
|
||||
note: >
|
||||
Mechacon (disc drive controller) version as u32.
|
||||
Auto-created with default 0x00020603 if missing.
|
||||
|
||||
+1
-1
@@ -3183,7 +3183,7 @@ files:
|
||||
required: true
|
||||
category: bios_zip
|
||||
system: casio-loopy
|
||||
source_ref: "src/mame/casio/casloopy.cpp:2105-2462"
|
||||
source_ref: "src/mame/casio/casloopy.cpp:2097-2105"
|
||||
contents:
|
||||
- name: hd6437021.lsi302
|
||||
description: SH-1 CPU internal mask ROM
|
||||
|
||||
@@ -680,7 +680,7 @@ files:
|
||||
required: true
|
||||
category: bios_zip
|
||||
system: casio-loopy
|
||||
source_ref: "src/mame/casio/casloopy.cpp:2105-2462"
|
||||
source_ref: "src/mame/casio/casloopy.cpp:2097-2105"
|
||||
contents:
|
||||
- name: hd6437021.lsi302
|
||||
description: SH-1 CPU internal mask ROM
|
||||
|
||||
@@ -292,7 +292,7 @@ files:
|
||||
- name: "scph5502.bin"
|
||||
system: sony-playstation
|
||||
description: "SCPH-5502 / v3.0E BIOS"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: true
|
||||
size: 524288
|
||||
sha256: "1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09"
|
||||
@@ -376,7 +376,7 @@ files:
|
||||
- name: "epr-17952a.ic8"
|
||||
system: sega-stv
|
||||
description: "ST-V BIOS (North America)"
|
||||
region: [north-america]
|
||||
region: [north-america, south-korea, asia-pal, brazil, latin-america]
|
||||
required: true
|
||||
size: 524288
|
||||
validation: [size]
|
||||
|
||||
@@ -25,28 +25,24 @@ notes: >
|
||||
files:
|
||||
- name: "syscard3.pce"
|
||||
description: "CD-ROM System Card 3.0 (Japan)"
|
||||
region: [japan]
|
||||
required: true
|
||||
source_ref: "libretro.cpp:1051-1052, mednafen/settings.cpp:40"
|
||||
note: "Default value for pce_cdbios option."
|
||||
|
||||
- name: "syscard2.pce"
|
||||
description: "CD-ROM System Card 2.0 (Japan)"
|
||||
region: [japan]
|
||||
required: false
|
||||
source_ref: "libretro.cpp:1053-1054"
|
||||
note: "pce_cdbios = 'System Card 2'."
|
||||
|
||||
- name: "syscard1.pce"
|
||||
description: "CD-ROM System Card 1.0 (Japan)"
|
||||
region: [japan]
|
||||
required: false
|
||||
source_ref: "libretro.cpp:1055-1056"
|
||||
note: "pce_cdbios = 'System Card 1'."
|
||||
|
||||
- name: "gexpress.pce"
|
||||
description: "Games Express CD Card"
|
||||
region: [japan]
|
||||
required: false
|
||||
aliases: ["gecard.pce"]
|
||||
source_ref: "libretro.cpp:1057-1058, mednafen/settings.cpp:41, mednafen/pce/pce.cpp:373-411"
|
||||
@@ -54,14 +50,12 @@ files:
|
||||
|
||||
- name: "syscard3u.pce"
|
||||
description: "CD-ROM System Card 3.0 (US / TurboGrafx-CD)"
|
||||
region: [north-america]
|
||||
required: false
|
||||
source_ref: "libretro.cpp:1059-1060"
|
||||
note: "pce_cdbios = 'System Card 3 US'. Not in .info."
|
||||
|
||||
- name: "syscard2u.pce"
|
||||
description: "CD-ROM System Card 2.0 (US / TurboGrafx-CD)"
|
||||
region: [north-america]
|
||||
required: false
|
||||
source_ref: "libretro.cpp:1061-1062"
|
||||
note: "pce_cdbios = 'System Card 2 US'. Not in .info."
|
||||
@@ -23,28 +23,24 @@ notes: >
|
||||
files:
|
||||
- name: "syscard3.pce"
|
||||
description: "CD-ROM System Card 3.0 (Japan)"
|
||||
region: [japan]
|
||||
required: true
|
||||
source_ref: "libretro.c:65, libretro.c:1896-1901"
|
||||
note: "Default value for pce_fast_cdbios option."
|
||||
|
||||
- name: "syscard2.pce"
|
||||
description: "CD-ROM System Card 2.0 (Japan)"
|
||||
region: [japan]
|
||||
required: false
|
||||
source_ref: "libretro.c:1903"
|
||||
note: "pce_fast_cdbios = 'System Card 2'."
|
||||
|
||||
- name: "syscard1.pce"
|
||||
description: "CD-ROM System Card 1.0 (Japan)"
|
||||
region: [japan]
|
||||
required: false
|
||||
source_ref: "libretro.c:1905"
|
||||
note: "pce_fast_cdbios = 'System Card 1'."
|
||||
|
||||
- name: "gexpress.pce"
|
||||
description: "Games Express CD Card"
|
||||
region: [japan]
|
||||
required: false
|
||||
aliases: ["gecard.pce"]
|
||||
source_ref: "libretro.c:1906-1907"
|
||||
@@ -52,14 +48,12 @@ files:
|
||||
|
||||
- name: "syscard3u.pce"
|
||||
description: "CD-ROM System Card 3.0 (US / TurboGrafx-CD)"
|
||||
region: [north-america]
|
||||
required: false
|
||||
source_ref: "libretro.c:1908-1909"
|
||||
note: "pce_fast_cdbios = 'System Card 3 US'. Not in .info."
|
||||
|
||||
- name: "syscard2u.pce"
|
||||
description: "CD-ROM System Card 2.0 (US / TurboGrafx-CD)"
|
||||
region: [north-america]
|
||||
required: false
|
||||
source_ref: "libretro.c:1910-1911"
|
||||
note: "pce_fast_cdbios = 'System Card 2 US'. Not in .info."
|
||||
+9
-9
@@ -30,7 +30,7 @@ notes: |
|
||||
mgba_skip_bios (default OFF) - skip the boot animation even if loaded
|
||||
|
||||
The libretro port resolves BIOS filenames in retro_load_game()
|
||||
(src/platform/libretro/libretro.c:2091-2148). It picks the filename
|
||||
(src/platform/libretro/libretro.c:2060-2118). It picks the filename
|
||||
based on detected model:
|
||||
GBA -> gba_bios.bin
|
||||
GB (DMG/MGB) -> gb_bios.bin
|
||||
@@ -38,7 +38,7 @@ notes: |
|
||||
SGB -> sgb_bios.bin
|
||||
SGB2 -> gb_bios.bin (falls to default, missing case)
|
||||
|
||||
The standalone core (src/gb/core.c:637-684) correctly maps SGB2 to
|
||||
The standalone core (src/gb/core.c:649-696) correctly maps SGB2 to
|
||||
sgb_bios.bin (marked TODO for a dedicated file). The libretro port
|
||||
omits GB_MODEL_SGB2 from its switch, so SGB2 falls to default.
|
||||
|
||||
@@ -57,7 +57,7 @@ files:
|
||||
size: 16384 # 16 KB (0x4000, GBA_SIZE_BIOS)
|
||||
validation: [size]
|
||||
note: "GBA BIOS. HLE replacement built in. Real BIOS adds boot logo and full SWI accuracy."
|
||||
source_ref: "src/platform/libretro/libretro.c:2099"
|
||||
source_ref: "src/platform/libretro/libretro.c:2068"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Game Boy - boot ROM (optional, skip fallback)
|
||||
@@ -68,7 +68,7 @@ files:
|
||||
size: 256 # 256 B (0x100)
|
||||
validation: [crc32]
|
||||
note: "DMG/MGB boot ROM. Scrolling Nintendo logo. Skipped if absent."
|
||||
source_ref: "src/platform/libretro/libretro.c:971"
|
||||
source_ref: "src/platform/libretro/libretro.c:2104"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Game Boy Color - boot ROM (optional, skip fallback)
|
||||
@@ -79,7 +79,7 @@ files:
|
||||
size: 2304 # 2304 B (0x900)
|
||||
validation: [crc32]
|
||||
note: "CGB boot ROM. Used for CGB, AGB (GBA in GB mode), and SCGB models."
|
||||
source_ref: "src/platform/libretro/libretro.c:2127"
|
||||
source_ref: "src/platform/libretro/libretro.c:2097"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Super Game Boy - boot ROM (optional, skip fallback)
|
||||
@@ -89,14 +89,14 @@ files:
|
||||
required: false
|
||||
size: 256 # 256 B (0x100)
|
||||
validation: [crc32]
|
||||
note: "SGB boot ROM. SGB2 maps here in standalone (src/gb/core.c:643) but falls to gb_bios.bin in libretro."
|
||||
source_ref: "src/platform/libretro/libretro.c:2130"
|
||||
note: "SGB boot ROM. SGB2 maps here in standalone (src/gb/core.c:655) but falls to gb_bios.bin in libretro."
|
||||
source_ref: "src/platform/libretro/libretro.c:2100"
|
||||
|
||||
platform_details:
|
||||
gba:
|
||||
bios_size: 16384 # 16 KB
|
||||
hle_bios: true
|
||||
source_ref: "src/gba/hle-bios.c, src/gba/gba.c:520-551"
|
||||
source_ref: "src/gba/hle-bios.c, src/gba/gba.c:513-552"
|
||||
note: |
|
||||
GBALoadBIOS() validates size (must be exactly 0x4000) then computes
|
||||
an internal checksum. Two official checksums are recognized:
|
||||
@@ -125,7 +125,7 @@ platform_details:
|
||||
sgb:
|
||||
bios_size: 256 # 256 B
|
||||
hle_bios: false
|
||||
source_ref: "src/gb/gb.c:570-605, src/gb/core.c:642-644"
|
||||
source_ref: "src/gb/gb.c:570-605, src/gb/core.c:654-656"
|
||||
note: |
|
||||
Accepted SGB CRC32 checksums:
|
||||
SGB = 0xEC8A83B9, SGB2 = 0x53D0DD63
|
||||
|
||||
+10
-8
@@ -98,7 +98,7 @@ notes: |
|
||||
MSX.emu/src/blueMSX/Memory/romMapperDRAM.c:88-99), and the Philips FDC, Panasonic
|
||||
FDC and MoonSound mappers test nothing at all
|
||||
(MSX.emu/src/blueMSX/Memory/romMapperPhilipsFdc.c:139-146,
|
||||
MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:236-262,
|
||||
MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:228-255,
|
||||
MSX.emu/src/blueMSX/Memory/romMapperMoonsound.c:129-158).
|
||||
|
||||
The ROM database is compiled in. mediaDbGuessRom matches a cartridge's SHA-1 against
|
||||
@@ -254,7 +254,7 @@ files:
|
||||
size: 408
|
||||
sha1: "483b2c34fcb3ddcf650314e45104f358ef74c98b"
|
||||
description: "MSX1 machine definition"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
|
||||
- name: "config.ini"
|
||||
path: "Machines/MSX2/config.ini"
|
||||
@@ -264,7 +264,8 @@ files:
|
||||
size: 649
|
||||
sha1: "460ded0dbfc0285490da87a446b0321b6496aa5b"
|
||||
description: "MSX2 machine definition, the default MSX machine"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
note: "Default of the machine name option (MSX.emu/src/main/system.ccm:75)."
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
|
||||
- name: "config.ini"
|
||||
path: "Machines/MSX2+/config.ini"
|
||||
@@ -274,7 +275,7 @@ files:
|
||||
size: 773
|
||||
sha1: "cb7d14a17c4f4632f17ba5a64160cdd876dd6010"
|
||||
description: "MSX2+ machine definition"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
|
||||
- name: "config.ini"
|
||||
path: "Machines/MSXturboR/config.ini"
|
||||
@@ -284,7 +285,7 @@ files:
|
||||
size: 941
|
||||
sha1: "9836d109ec7879374dcd044da149f1b5aafd4664"
|
||||
description: "MSX turbo R machine definition"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
|
||||
- name: "config.ini"
|
||||
path: "Machines/COL - ColecoVision/config.ini"
|
||||
@@ -294,7 +295,8 @@ files:
|
||||
size: 347
|
||||
sha1: "0f0b7b73ba6f8677dfc5c824bb3edf6df2ff653e"
|
||||
description: "ColecoVision machine definition, the default Coleco machine"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
note: "Default of the machine name option (MSX.emu/src/main/system.ccm:76)."
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||
|
||||
- name: "MSX.rom"
|
||||
path: "Machines/Shared Roms/MSX.rom"
|
||||
@@ -394,7 +396,7 @@ files:
|
||||
required: true
|
||||
size: 16384
|
||||
description: "Panasonic floppy disk ROM of the MSX2+ machine"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:236-262"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:228-255"
|
||||
|
||||
- name: "MSXTR.rom"
|
||||
path: "Machines/Shared Roms/MSXTR.rom"
|
||||
@@ -434,7 +436,7 @@ files:
|
||||
required: true
|
||||
size: 65536
|
||||
description: "MSX-DOS 2.3 disk ROM of the turbo R machine"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:236-262"
|
||||
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:228-255"
|
||||
|
||||
- name: "coleco.rom"
|
||||
path: "Machines/COL - ColecoVision/coleco.rom"
|
||||
|
||||
@@ -261,8 +261,9 @@ files:
|
||||
Named in the audio BIOS region by irrmaze, neogeo, svcboot, svcplus,
|
||||
svcplusa and svcsplus, and reached in this archive by the parent lookup of
|
||||
irrmaze. The region is exempt from the fatal path and the buffer it lands
|
||||
in is never read by the emulation.
|
||||
source_ref: "NEO.emu/res/romsets/irrmaze.drv, NEO.emu/src/gngeo/roms.c:1034-1039,1413-1418,1440-1461, NEO.emu/src/gngeo/roms.h:63"
|
||||
in is never read by the emulation
|
||||
(NEO.emu/src/gngeo/roms.c:1034-1039,1413-1418,1440-1461).
|
||||
source_ref: "NEO.emu/res/romsets/irrmaze.drv, NEO.emu/src/gngeo/roms.h:9,62"
|
||||
|
||||
- name: "gngeo_data.zip"
|
||||
system: snk-neogeo-mvs
|
||||
|
||||
@@ -151,16 +151,18 @@ files:
|
||||
source_ref: "cbus/ideio.c:1928-1930, cbus/ideio.c:1944-1981"
|
||||
|
||||
# -- SCSI BIOS ROM --
|
||||
# Loaded by scsiio.c:219. 16 KB (0x4000). Falls back to scsibios[] stub.
|
||||
# Read into a 0x4000 buffer; any non-empty read is kept. Falls back to the
|
||||
# scsibios[] stub.
|
||||
- name: "scsi.rom"
|
||||
path: "np2kai/scsi.rom"
|
||||
size: 16384
|
||||
max_size: 16384
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: >
|
||||
SCSI controller BIOS ROM (16 KB). The core includes a built-in
|
||||
SCSI controller BIOS ROM, up to 16 KB: the full-size test is commented
|
||||
out and a shorter file is used as read. The core includes a built-in
|
||||
SCSI BIOS stub as fallback.
|
||||
source_ref: "cbus/scsiio.c:214-231"
|
||||
source_ref: "cbus/scsiio.c:720-732"
|
||||
|
||||
# -- SASI BIOS ROM --
|
||||
# Loaded by sasiio.c:455. 4 KB (0x1000). Falls back to sasibios[] stub.
|
||||
|
||||
@@ -61,9 +61,10 @@ files:
|
||||
md5: "23bf80c259f182f582beeb368aba98f5"
|
||||
required: true
|
||||
bundled: true
|
||||
source_ref: "src/libretro.cpp:332-371, src/NuonEnvironment.cpp:595, src/NuonEnvironment.cpp:617-619, src/bios.cpp:566-582, src/coff.cpp:47-70"
|
||||
source_ref: "src/libretro.cpp:332-371, src/NuonEnvironment.cpp:595, src/NuonEnvironment.cpp:617-619, src/bios.cpp:566-582"
|
||||
note: >
|
||||
Loaded into MPE3 by InitBios. The 2007 build shipped in the release
|
||||
Loaded into MPE3 by InitBios through LoadCoffFile, which rejects a file
|
||||
whose magic is not 0x0120 (src/coff.cpp:47-71). The 2007 build shipped in the release
|
||||
archives (19410 bytes, sha1 4f42ed8f5e171cc79112d1c1e201381e83b1fc0d)
|
||||
loads the same way.
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ notes: |
|
||||
files:
|
||||
- name: "o2rom.bin"
|
||||
system: odyssey2
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 1024
|
||||
md5: "562d5ebf9e030a40d6fabfc2f33139fd"
|
||||
@@ -46,7 +45,6 @@ files:
|
||||
|
||||
- name: "c52.bin"
|
||||
system: videopac
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 1024
|
||||
md5: "f1071cdb0b6b10dde94d3bc8a6146387"
|
||||
@@ -58,7 +56,6 @@ files:
|
||||
|
||||
- name: "g7400.bin"
|
||||
system: videopac
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 1024
|
||||
md5: "c500ff71236068e0dc0d0603d265ae76"
|
||||
@@ -70,7 +67,6 @@ files:
|
||||
|
||||
- name: "jopac.bin"
|
||||
system: videopac
|
||||
region: [france]
|
||||
required: true
|
||||
size: 1024
|
||||
md5: "279008e4a0db2dc5f1c048853b033828"
|
||||
|
||||
@@ -41,7 +41,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "f47264dd47fe30f73ab3c010015c155b"
|
||||
@@ -54,7 +53,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1j.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "a496cfdded3da562759be3561317b605"
|
||||
@@ -67,7 +65,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1j-norsa.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "f6c71de7470d16abe4f71b1444883dc8"
|
||||
@@ -80,7 +77,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "51f2f43ae2f3508a14d9f56597e2d3ce"
|
||||
@@ -93,7 +89,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10-norsa.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "1477bda80dc33731a65468c1f5bcbee9"
|
||||
@@ -106,7 +101,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10e-anvil.bin"
|
||||
system: 3do
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "a48e6746bd7edec0f40cff078f0bb19f"
|
||||
@@ -119,7 +113,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10e-anvil-norsa.bin"
|
||||
system: 3do
|
||||
region: [europe]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "cf11bbb5a16d7af9875cca9de9a15e09"
|
||||
@@ -132,7 +125,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "goldstar.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "8639fd5e549bd6238cfee79e3e749114"
|
||||
@@ -145,7 +137,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "sanyotry.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "35fa1a1ebaaeea286dc5cd15487c13ea"
|
||||
@@ -158,7 +149,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "3do_arcade_saot.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: false
|
||||
size: 524288 # 512 KB
|
||||
md5: "8970fc987ab89a7f64da9f8a8c4333ff"
|
||||
@@ -171,7 +161,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1-kanji.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 933636
|
||||
md5: "b8dc97f778a6245c58e064b0312e8281"
|
||||
@@ -184,7 +173,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1j-kanji.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "c23fb5d5e6bb1c240d02cf968972be37"
|
||||
@@ -197,7 +185,6 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10ja-anvil-kanji.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "428577250f43edc902ea239c50d2240d"
|
||||
|
||||
@@ -78,7 +78,7 @@ files:
|
||||
note: "Any file in the BIOS folder whose romdir holds RESET and ROMVER is accepted, whatever its name or size. Naming convention ps2-VVVVr-YYYYMMDD.bin carries version, region and date."
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:261-323, pcsx2/ps2/BiosTools.cpp:74-167"
|
||||
|
||||
- name: rom1.bin
|
||||
- name: ps2-0230a-20080220.rom1
|
||||
system: sony-playstation-2
|
||||
required: false
|
||||
max_size: 262144
|
||||
@@ -86,7 +86,7 @@ files:
|
||||
note: "Tried as {bios}.rom1 then {biosbase}.rom1. Read into the 256 KB ROM1 region and truncated to it. Logged and skipped when absent."
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:190-229, pcsx2/ps2/BiosTools.cpp:298, pcsx2/MemoryTypes.h:22"
|
||||
|
||||
- name: ROM2.BIN
|
||||
- name: ps2-0230a-20080220.rom2
|
||||
system: sony-playstation-2
|
||||
required: false
|
||||
max_size: 524288
|
||||
@@ -94,7 +94,7 @@ files:
|
||||
note: "Tried as {bios}.rom2 then {biosbase}.rom2. Read into the 512 KB ROM2 region and truncated to it. Present on Chinese region consoles."
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:190-229, pcsx2/ps2/BiosTools.cpp:299, pcsx2/MemoryTypes.h:23"
|
||||
|
||||
- name: EROM.BIN
|
||||
- name: ps2-0230a-20080220.erom
|
||||
system: sony-playstation-2
|
||||
required: false
|
||||
max_size: 1835008
|
||||
@@ -102,6 +102,24 @@ files:
|
||||
note: "Tried as {bios}.erom then {biosbase}.erom. Read into the 1.75 MB EROM region and truncated to it."
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:190-229, pcsx2/ps2/BiosTools.cpp:300, pcsx2/MemoryTypes.h:24"
|
||||
|
||||
- name: ps2-0230a-20080220.nvm
|
||||
system: sony-playstation-2
|
||||
required: false
|
||||
hle_fallback: true
|
||||
min_size: 1024
|
||||
description: "Console NVRAM"
|
||||
note: "Read at the BIOS path with the extension set to nvm. A substitute is written when the file is shorter than 1024 bytes."
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:138-149"
|
||||
|
||||
- name: ps2-0230a-20080220.mec
|
||||
system: sony-playstation-2
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 4
|
||||
description: "Mechacon version"
|
||||
note: "Read at the BIOS path with the extension set to mec. A 4-byte substitute (03 06 02 00) is written when the file is shorter."
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:93-122"
|
||||
|
||||
- name: eeprom.dat
|
||||
system: sony-playstation-2
|
||||
required: false
|
||||
|
||||
+44
-26
@@ -15,7 +15,7 @@ systems: [sony-playstation-2]
|
||||
notes: |
|
||||
Filename-agnostic BIOS detection. Scans bios/ for any file between 4-8 MB
|
||||
with valid romdir structure (RESET + ROMVER entries). No hash validation.
|
||||
Companion files (.rom1, .rom2, .nvm, .mec) derive paths from selected BIOS.
|
||||
Companion files (.rom1, .rom2, .nvm, .mec) derive their names from the selected BIOS.
|
||||
ROM1 (DVD player) and ROM2 (Chinese extension) silently skipped if missing.
|
||||
NVM and MEC auto-created with defaults if missing.
|
||||
|
||||
@@ -25,26 +25,38 @@ files:
|
||||
min_size: 4194304
|
||||
max_size: 8388608
|
||||
validation: [size]
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:258-362"
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:16-17,80-197,258-283,317-370"
|
||||
note: "Accepts any file 4-8 MB with valid romdir (RESET + ROMVER). Naming convention ps2-VVVVr-YYYYMMDD.bin (version, region, date)."
|
||||
|
||||
- name: rom1.bin
|
||||
- name: ps2-0230a-20080220.rom1
|
||||
required: false
|
||||
max_size: 4194304
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241,366"
|
||||
note: "DVD player ROM. Tries {biospath}.rom1 then {biosbase}.rom1. Silently skipped if missing."
|
||||
description: "DVD player ROM"
|
||||
note: "Tried as {bios}.rom1 then {biosbase}.rom1, opened case-insensitively. Copied to the ROM1 region. Logged and skipped when absent."
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241, pcsx2/ps2/BiosTools.cpp:366"
|
||||
|
||||
- name: ROM2.BIN
|
||||
- name: ps2-0230a-20080220.rom2
|
||||
required: false
|
||||
max_size: 4194304
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241,367"
|
||||
note: "Chinese ROM extension. Same naming convention as rom1. Only present on Chinese region consoles."
|
||||
description: "Chinese ROM extension"
|
||||
note: "Same two-step naming as rom1. Only Chinese region consoles carry one."
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241, pcsx2/ps2/BiosTools.cpp:367"
|
||||
|
||||
- name: EROM.BIN
|
||||
- name: ps2-0230a-20080220.nvm
|
||||
required: false
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp"
|
||||
note: "Extended ROM. Present in some BIOS dumps but not loaded by PCSX2 code via LoadExtraRom."
|
||||
path: null
|
||||
hle_fallback: true
|
||||
size: 1024
|
||||
description: "Console NVRAM"
|
||||
note: "Read at the BIOS path with the extension replaced by nvm, opened case-insensitively. Built in memory from region defaults when absent or blank."
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:165-189"
|
||||
|
||||
- name: ps2-0230a-20080220.mec
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 4
|
||||
description: "Mechacon version"
|
||||
note: "Read at the BIOS path with the extension replaced by mec. Defaults to 0x00020603 and is written back when it cannot be read."
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:190-204"
|
||||
|
||||
- name: eeprom.dat
|
||||
required: false
|
||||
@@ -54,22 +66,28 @@ files:
|
||||
note: "DEV9 network adapter EEPROM. Falls back to built-in defaults if missing."
|
||||
|
||||
- name: GameIndex.yaml
|
||||
path: pcsx2/resources/GameIndex.yaml
|
||||
path: resources/GameIndex.yaml
|
||||
required: false
|
||||
mode: libretro
|
||||
source_ref: "pcsx2/GameDatabase.cpp:46, pcsx2/GameDatabase.cpp:896"
|
||||
note: "Game compatibility database. OSD warning if missing."
|
||||
bundled: true
|
||||
category: game_data
|
||||
description: "per-title compatibility and fix database"
|
||||
source_ref: "pcsx2/GameDatabase.cpp:39, pcsx2/GameDatabase.cpp:1026-1035"
|
||||
note: "Read from the resources directory shipped with the application. Console error and no per-title fixes if missing."
|
||||
|
||||
- name: cheats_ws.zip
|
||||
path: pcsx2/resources/cheats_ws.zip
|
||||
- name: RedumpDatabase.yaml
|
||||
path: resources/RedumpDatabase.yaml
|
||||
required: false
|
||||
mode: libretro
|
||||
source_ref: "pcsx2/VMManager.cpp:348-361"
|
||||
note: "Widescreen patches archive."
|
||||
bundled: true
|
||||
category: game_data
|
||||
description: "disc hash database"
|
||||
source_ref: "pcsx2/GameDatabase.cpp:1133, pcsx2/GameDatabase.cpp:1188-1197"
|
||||
note: "Read from the resources directory shipped with the application, used to name a disc from its dump."
|
||||
|
||||
- name: cheats_ni.zip
|
||||
path: pcsx2/resources/cheats_ni.zip
|
||||
- name: patches.zip
|
||||
path: resources/patches.zip
|
||||
required: false
|
||||
mode: libretro
|
||||
source_ref: "pcsx2/VMManager.cpp:383-396"
|
||||
note: "No-interlacing patches archive."
|
||||
bundled: true
|
||||
category: game_data
|
||||
description: "built-in game patch archive"
|
||||
source_ref: "pcsx2/Patch.cpp:117, pcsx2/Patch.cpp:289-318"
|
||||
note: "Opened read only from the resources directory shipped with the application and searched for the pnach matching the running serial and CRC. Widescreen and no-interlacing patches live inside it."
|
||||
@@ -29,7 +29,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
source_ref: "frontend/libretro.c:3737-3740 (listed_bios[0])"
|
||||
source_ref: "frontend/libretro.c:3864-3867 (listed_bios[0])"
|
||||
note: "Preferred JP BIOS, searched first by exact filename."
|
||||
|
||||
# -- Region: North America (PSX_REGION_US = 0) --
|
||||
@@ -41,19 +41,19 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
source_ref: "frontend/libretro.c:3737-3740 (listed_bios[1])"
|
||||
source_ref: "frontend/libretro.c:3864-3867 (listed_bios[1])"
|
||||
note: "Preferred US BIOS, searched first by exact filename."
|
||||
|
||||
# -- Region: Europe (PSX_REGION_EU = 2) --
|
||||
|
||||
- name: "scph5502.bin"
|
||||
description: "SCPH-5502 (v3.0 01-06-97 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
size: 524288
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
source_ref: "frontend/libretro.c:3737-3740 (listed_bios[2])"
|
||||
source_ref: "frontend/libretro.c:3864-3867 (listed_bios[2])"
|
||||
note: "Preferred EU BIOS, searched first by exact filename."
|
||||
|
||||
# -- Fallback BIOS filenames (searched in order after scph550x) --
|
||||
@@ -65,7 +65,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
source_ref: "frontend/libretro.c:3737-3740 (listed_bios[3])"
|
||||
source_ref: "frontend/libretro.c:3864-3867 (listed_bios[3])"
|
||||
note: "Region detected from content at runtime. Must be 512 KB in libretro context."
|
||||
|
||||
- name: "scph101.bin"
|
||||
@@ -75,7 +75,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
source_ref: "frontend/libretro.c:3737-3740 (listed_bios[4])"
|
||||
source_ref: "frontend/libretro.c:3864-3867 (listed_bios[4])"
|
||||
note: "PSone slim model."
|
||||
|
||||
- name: "scph7001.bin"
|
||||
@@ -85,7 +85,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
source_ref: "frontend/libretro.c:3737-3740 (listed_bios[5])"
|
||||
source_ref: "frontend/libretro.c:3864-3867 (listed_bios[5])"
|
||||
|
||||
- name: "scph1001.bin"
|
||||
description: "SCPH-1001 (v2.2 12-04-95 A)"
|
||||
@@ -94,7 +94,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
source_ref: "frontend/libretro.c:3737-3740 (listed_bios[6])"
|
||||
source_ref: "frontend/libretro.c:3864-3867 (listed_bios[6])"
|
||||
note: "Original US model. Last in the explicit filename search list."
|
||||
|
||||
# -- Dynamic scan fallback --
|
||||
|
||||
@@ -84,7 +84,7 @@ platform_details:
|
||||
size: 4096
|
||||
|
||||
load_priority:
|
||||
source_ref: "source/PokeMini.c:515-523"
|
||||
source_ref: "source/PokeMini.c:500-509"
|
||||
note: |
|
||||
During PokeMini_Reset(), the core first reloads FreeBIOS as a
|
||||
safe baseline, then attempts to load bios.min from disk. If
|
||||
|
||||
@@ -37,7 +37,6 @@ files:
|
||||
region: [north-america]
|
||||
size: 2097152
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:138, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:109-110"
|
||||
@@ -47,7 +46,6 @@ files:
|
||||
region: [europe]
|
||||
size: 2097152
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "GameCube PAL boot ROM"
|
||||
source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:184"
|
||||
@@ -57,7 +55,6 @@ files:
|
||||
region: [japan]
|
||||
size: 2097152
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "GameCube NTSC-J boot ROM. JAP is the legacy directory name"
|
||||
source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:186"
|
||||
@@ -70,7 +67,6 @@ files:
|
||||
path: "GC/dsp_rom.bin"
|
||||
size: 8192
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
known_hash_adler32: "0x66f334fe"
|
||||
@@ -82,7 +78,6 @@ files:
|
||||
path: "GC/dsp_coef.bin"
|
||||
size: 4096
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
known_hash_adler32: "0xf3b93527"
|
||||
@@ -98,7 +93,6 @@ files:
|
||||
path: "GC/font_western.bin"
|
||||
size: 9589
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "Windows-1252 font for GC/Wii text rendering. Free alternative bundled, real one from IPL dump preferred"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:132, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:131,203-218"
|
||||
@@ -107,7 +101,6 @@ files:
|
||||
path: "GC/font_japanese.bin"
|
||||
size: 303693
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "Shift-JIS font for Japanese text. Free alternative bundled, real one from IPL dump preferred"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:135, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:130"
|
||||
@@ -118,7 +111,6 @@ files:
|
||||
- name: "gba_bios.bin"
|
||||
path: "GBA/gba_bios.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "GBA BIOS for GC-GBA link feature (uses integrated mGBA). Path configurable in settings"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:144, Source/Core/Core/HW/GBACore.cpp:344-361"
|
||||
@@ -127,7 +119,6 @@ files:
|
||||
- name: "SYSCONF"
|
||||
path: "Wii/shared2/sys/SYSCONF"
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "Wii system configuration. Auto-generated by PrimeHack, can be imported from NAND backup"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:118, Source/Core/Core/WiiRoot.cpp:266"
|
||||
@@ -136,7 +127,6 @@ files:
|
||||
path: "Wii/title/00000001/00000002/data/setting.txt"
|
||||
size: 256
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "Wii region/language settings. Auto-generated during Wii boot emulation"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:152, Source/Core/Core/Boot/Boot_BS2Emu.cpp:377-454"
|
||||
@@ -145,7 +135,6 @@ files:
|
||||
- name: "nand.bin"
|
||||
path: null
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "BootMii NAND backup. Can be imported to populate Wii NAND with channels, saves, system menu"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:26-89"
|
||||
@@ -154,7 +143,6 @@ files:
|
||||
path: null
|
||||
size: 1024
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "OTP/SEEPROM dump (Wii encryption keys). Needed if not appended to nand.bin for NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:19,76-88"
|
||||
@@ -163,7 +151,6 @@ files:
|
||||
- name: "WiiSD.raw"
|
||||
path: "Load/WiiSD.raw"
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "Virtual SD card image for Wii homebrew. Auto-created, supports SD/SDHC up to 4GB"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:149"
|
||||
@@ -172,7 +159,6 @@ files:
|
||||
- name: "codehandler.bin"
|
||||
path: null
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "Gecko/Ocarina cheat code handler. Shipped with PrimeHack in Sys/"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:154, Source/Core/Core/GeckoCode.cpp:121"
|
||||
@@ -181,7 +167,6 @@ files:
|
||||
- name: "Wii System Menu"
|
||||
path: null
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "Wii System Menu WAD. Installed to NAND via Tools > Install WAD, needed for Wii Menu boot"
|
||||
source_ref: "Source/Core/DolphinQt/MenuBar.cpp:335, Source/Core/DolphinQt/MenuBar.cpp:1582-1590"
|
||||
@@ -190,7 +175,6 @@ files:
|
||||
- name: "clientca.pem"
|
||||
path: "Wii/clientca.pem"
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "SSL client certificate. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:201-285"
|
||||
@@ -198,7 +182,6 @@ files:
|
||||
- name: "clientcakey.pem"
|
||||
path: "Wii/clientcakey.pem"
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "SSL client private key. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:237"
|
||||
@@ -206,7 +189,6 @@ files:
|
||||
- name: "rootca.pem"
|
||||
path: "Wii/rootca.pem"
|
||||
required: false
|
||||
mode: standalone
|
||||
hle_fallback: true
|
||||
note: "SSL root CA certificate. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:238"
|
||||
@@ -220,105 +202,90 @@ files:
|
||||
- name: "rtl8723a_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8723a_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8723A BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:379"
|
||||
|
||||
- name: "rtl8723b_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8723b_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8723B BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:516-519"
|
||||
|
||||
- name: "rtl8723d_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8723d_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8723D BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:383"
|
||||
|
||||
- name: "rtl8761a_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8761a_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8761A BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:385"
|
||||
|
||||
- name: "rtl8761bu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8761bu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8761BU BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:387"
|
||||
|
||||
- name: "rtl8821a_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8821a_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8821A BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:389"
|
||||
|
||||
- name: "rtl8821c_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8821c_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8821C BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:391"
|
||||
|
||||
- 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:395"
|
||||
|
||||
- name: "rtl8822cu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8822cu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8822CU BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:393"
|
||||
|
||||
- name: "rtl8851bu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8851bu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8851BU BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:397"
|
||||
|
||||
- name: "rtl8852au_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8852au_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8852AU BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:399"
|
||||
|
||||
- name: "rtl8852bu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8852bu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8852BU BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:401"
|
||||
|
||||
- name: "rtl8852cu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8852cu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8852CU BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:403"
|
||||
|
||||
- name: "rtl8852btu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8852btu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8852BT/8852BE-VT BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:405"
|
||||
|
||||
- name: "rtl8922au_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8922au_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8922AU BT firmware for Wiimote passthrough"
|
||||
source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:407"
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ notes: |
|
||||
files:
|
||||
- name: "7800 BIOS (U).rom"
|
||||
system: atari-7800
|
||||
region: [north-america]
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 4096
|
||||
@@ -43,7 +42,6 @@ files:
|
||||
|
||||
- name: "7800 BIOS (E).rom"
|
||||
system: atari-7800
|
||||
region: [europe]
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 16384
|
||||
|
||||
@@ -50,7 +50,7 @@ files:
|
||||
|
||||
- name: "scph5502.bin"
|
||||
description: "SCPH-5502 (v3.0 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: true
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -183,7 +183,7 @@ files:
|
||||
# Europe alternatives
|
||||
- name: "scph1002.bin"
|
||||
description: "SCPH-1002 (v2.0 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -192,7 +192,7 @@ files:
|
||||
|
||||
- name: "scph1002b.bin"
|
||||
description: "SCPH-1002 (v2.1 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -201,7 +201,7 @@ files:
|
||||
|
||||
- name: "scph1002c.bin"
|
||||
description: "SCPH-1002 (v2.2 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -210,7 +210,7 @@ files:
|
||||
|
||||
- name: "scph7002.bin"
|
||||
description: "SCPH-7002 (v4.1 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -219,7 +219,7 @@ files:
|
||||
|
||||
- name: "scph102.bin"
|
||||
description: "SCPH-102 (v4.4 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
@@ -228,7 +228,7 @@ files:
|
||||
|
||||
- name: "scph102_v45.bin"
|
||||
description: "v4.5 E"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
size: 524288
|
||||
validation: [size, sha256]
|
||||
|
||||
@@ -21,21 +21,18 @@ files:
|
||||
- name: "prod.keys"
|
||||
required: true
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Switch production keys for NCA decryption"
|
||||
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:239"
|
||||
|
||||
- name: "title.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Per-title decryption keys, needed for specific game content"
|
||||
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:240"
|
||||
|
||||
- name: "console.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Console-specific keys for encrypted content"
|
||||
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:241"
|
||||
|
||||
|
||||
@@ -57,6 +57,10 @@ files:
|
||||
system: solarus
|
||||
category: game_data
|
||||
required: false
|
||||
bundled: true
|
||||
size: 600521
|
||||
sha1: "ab035b7804089690018318e4a05f9a8fc59421ff"
|
||||
md5: "1e70da4de91be79b9ccf47209a1fc73f"
|
||||
description: "SDL gamepad mappings applied on top of the built-in table"
|
||||
source_ref: "src/core/System.cpp:71-99, cmake/AddDefines.cmake:44-49, cmake/AddInstallTargets.cmake:23-28"
|
||||
note: >-
|
||||
|
||||
@@ -132,11 +132,11 @@ files:
|
||||
name and crc32 of every file that fills them, the stepping, the PCI bridge, the
|
||||
encryption key, the drive board, net board and MPEG board the machine carries, the
|
||||
patches to apply and the parent set to fall back on. Handed to the GameLoader
|
||||
constructor, parsed as XML, and a game load is refused outright when the file is
|
||||
not there. The Kotlin launcher parses the same copy out of the assets for its game
|
||||
constructor, parsed as XML (Src/GameLoader.cpp:492-502, 930-933), and a game
|
||||
load is refused outright when the file is not there. The Kotlin launcher parses the same copy out of the assets for its game
|
||||
list and its per-game input hints. Byte identical to the copy in the repository
|
||||
root Config directory.
|
||||
source_ref: "android/app/src/main/cpp/native-lib.cpp:568-580, 1096-1114, Src/GameLoader.cpp:492-502, 930-933, Src/Util/ConfigBuilders.cpp:60-73, android/app/src/main/java/com/izzy2lost/super3/GameXml.kt:23-24, android/app/src/main/java/com/izzy2lost/super3/MainActivity.kt:1211"
|
||||
source_ref: "android/app/src/main/cpp/native-lib.cpp:568-580, 1096-1114, Src/Util/ConfigBuilders.cpp:60-73, android/app/src/main/java/com/izzy2lost/super3/GameXml.kt:23-24, android/app/src/main/java/com/izzy2lost/super3/MainActivity.kt:1211"
|
||||
|
||||
- name: Supermodel.ini
|
||||
path: "Config/Supermodel.ini"
|
||||
|
||||
@@ -93,8 +93,8 @@ files:
|
||||
sha1: "6871a47de90ca67f9ff8e4e280416851a8164563"
|
||||
md5: "0c7cfc0cba2f2cd674d94e093936f9f8"
|
||||
description: "ROM set definitions"
|
||||
note: "Parsed at startup into the game database. Every ROM region, file name and CRC32 the loader matches against comes from here, so an unreadable file leaves no set to resolve and the launch returns before the emulator is built. The path is a config key, so -game-xml-file moves it. Nothing about the file is verified beyond parsing; the hash is that of the copy the pinned revision ships."
|
||||
source_ref: "Src/OSD/SDL/Main.cpp:117, Src/OSD/SDL/Main.cpp:1500, Src/OSD/SDL/Main.cpp:1957, Src/OSD/SDL/Main.cpp:2319-2329, Src/GameLoader.cpp:549-559, Src/GameLoader.cpp:1014-1017"
|
||||
note: "Parsed at startup into the game database (Src/GameLoader.cpp:549-559, 1014-1017). Every ROM region, file name and CRC32 the loader matches against comes from here, so an unreadable file leaves no set to resolve and the launch returns before the emulator is built. The path is a config key, so -game-xml-file moves it. Nothing about the file is verified beyond parsing; the hash is that of the copy the pinned revision ships."
|
||||
source_ref: "Src/OSD/SDL/Main.cpp:117, Src/OSD/SDL/Main.cpp:1500, Src/OSD/SDL/Main.cpp:1957, Src/OSD/SDL/Main.cpp:2319-2329"
|
||||
|
||||
- name: Games.xml
|
||||
path: "supermodel/Games.xml"
|
||||
@@ -110,8 +110,8 @@ files:
|
||||
- "2d16307ceb658636a05d34c7ba935b48"
|
||||
- "29fd5bc40cea222e040c1a1cfd60ea2e"
|
||||
description: "ROM set definitions, libretro copy"
|
||||
note: "Read through the VFS from {system}/supermodel/Games.xml, or Config/Games.xml under it, and parsed from memory. When the read yields nothing the bytes compiled in from Config/Games.xml are parsed instead, so the core identifies every set without a file on disk; a file that is present takes precedence. The second hash is the embedded array, which predates the indentation cleanup of the repository copy by one tab."
|
||||
source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:221-222, Src/OSD/libretro/LibretroWrapper.cpp:822, Src/OSD/libretro/LibretroWrapper.cpp:834-859, Src/GameLoader.cpp:1019-1030, Makefile:651-653"
|
||||
note: "Read through the VFS from {system}/supermodel/Games.xml, or Config/Games.xml under it, and parsed from memory (Src/GameLoader.cpp:1019-1030). When the read yields nothing the bytes compiled in from Config/Games.xml are parsed instead, so the core identifies every set without a file on disk; a file that is present takes precedence. The second hash is the embedded array, which predates the indentation cleanup of the repository copy by one tab."
|
||||
source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:221-222, Src/OSD/libretro/LibretroWrapper.cpp:822, Src/OSD/libretro/LibretroWrapper.cpp:834-859, Makefile:651-653"
|
||||
|
||||
- name: Supermodel.ini
|
||||
path: "supermodel/Supermodel.ini"
|
||||
|
||||
@@ -26,21 +26,18 @@ files:
|
||||
- name: "prod.keys"
|
||||
required: true
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:654"
|
||||
|
||||
- name: "title.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Per-title encryption keys (rights_id to titlekey mappings)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:657"
|
||||
|
||||
- name: "console.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Console-specific keys (BIS, SD seed)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:658"
|
||||
|
||||
@@ -48,7 +45,6 @@ files:
|
||||
required: false
|
||||
path: "switch/"
|
||||
size: 160
|
||||
mode: standalone
|
||||
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
|
||||
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:273-294"
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ files:
|
||||
|
||||
- name: "scph5502.bin"
|
||||
description: "SCPH-5502, 5552 (v3.0 01-06-97 E)"
|
||||
region: [europe]
|
||||
region: [europe, oceania]
|
||||
required: false
|
||||
hle_fallback: true
|
||||
md5: "32736f17079d0b2b7024407c39bd3050"
|
||||
|
||||
@@ -4,7 +4,7 @@ core_classification: game_engine
|
||||
source: "https://github.com/vpinball/vpinball"
|
||||
upstream: "https://github.com/vpinball/vpinball"
|
||||
profiled_date: "2026-10-04"
|
||||
source_commit: "a31565f1589c17afd0502a8c6a690f408ede14b2"
|
||||
source_commit: "8a9f36d227a0e71be33c36418e4e3ffc8c5c2723"
|
||||
core_version: "10.8.1"
|
||||
display_name: "Visual Pinball X"
|
||||
cores:
|
||||
@@ -17,13 +17,14 @@ mode: standalone
|
||||
notes: |
|
||||
Pinball table simulator. The table is the content: .vpx and .vpt files are
|
||||
OLE Compound Documents holding the geometry, textures, sounds and a VBScript
|
||||
program, read through POLE (src/parts/pintable.cpp:1424-1427). Every build
|
||||
program, read through POLE (src/parts/pintable.cpp:1427-1430). Every build
|
||||
other than the Windows editor compiles the shared source set with
|
||||
__STANDALONE__ and links libwinevbs, Wine's VBScript engine with its COM and
|
||||
ATL headers, beside SDL3, SDL3_ttf, FreeImage and hidapi; PinMAME, AltSound,
|
||||
ATL headers, beside SDL3, SDL3_ttf, FreeImage, hidapi, libspatialaudio and
|
||||
libmysofa with zlib; PinMAME, AltSound,
|
||||
DMDUtil, DOF, FlexDMD, B2S, PUP, Serum, VNI and ScoreView are plugins staged
|
||||
in plugins/ next to the binary (make/CMakeLists_app.txt:525-546,597-603,
|
||||
make/CMakeLists_sources.txt:809-815, make/CMakeLists_plugins.txt:21-25,39-56).
|
||||
in plugins/ next to the binary (make/CMakeLists_app.txt:533-554,605-615,
|
||||
make/CMakeLists_sources.txt:811-817, make/CMakeLists_plugins.txt:21-25,39-56).
|
||||
ES-DE finds VPinballX_BGFX or VPinballX_GL and
|
||||
runs `<binary> -play <rom>`, Batocera builds the standalone tree at
|
||||
3ec37c7f9a into /usr/bin/vpinball and runs `VPinballX_GL -PrefPath <dir> -Ini
|
||||
@@ -48,11 +49,11 @@ notes: |
|
||||
user/ and scripts/ beside it, then the installation folder with user/,
|
||||
scripts/ and tables/ under it, then the preferences folder with user/ and
|
||||
scripts/ under it (src/core/FileLocator.cpp:379-412,
|
||||
src/core/ScriptGlobalTable.cpp:346-375). The
|
||||
src/core/ScriptGlobalTable.cpp:352-381). The
|
||||
scripts/ directory the build ships carries the 71 .vbs files tables include
|
||||
by name, core.vbs and controller.vbs beside the per-manufacturer machine
|
||||
scripts (WPC.vbs, sam.vbs, s11.vbs, zac.vbs and the rest), copied from
|
||||
src/scripts (make/CMakeLists_app.txt:619-623). The Windows editor's
|
||||
src/scripts (make/CMakeLists_app.txt:631-635). The Windows editor's
|
||||
completion parser asks for core.vbs through the same search without a table,
|
||||
so in the seven installation and preferences locations, and shows a warning
|
||||
box when none holds it (src/ui/win/codeview.cpp:2068-2076,
|
||||
@@ -62,7 +63,7 @@ notes: |
|
||||
folder or the installation folder when SDL reports none, MusicDirectory the
|
||||
table's music folder with an optional subfolder, ScriptsDirectory scripts/
|
||||
under the installation folder; each fails when its directory does not exist
|
||||
(src/core/ScriptGlobalTable.cpp:377-418, src/core/FileLocator.cpp:251-259).
|
||||
(src/core/ScriptGlobalTable.cpp:383-424, src/core/FileLocator.cpp:251-259).
|
||||
In AppPrefData mode user/, music/, cache/ and autosave/ sit beside the table;
|
||||
a folder missing there on a read is looked up the AppOnly way, where user/
|
||||
hangs off the installation folder and music/ is tried under the installation
|
||||
@@ -83,10 +84,10 @@ notes: |
|
||||
blankTable.vpx, exampleTable.vpx, lightSeqTable.vpx and strippedTable.vpx:
|
||||
the live editor loads blankTable.vpx when started without a table or when
|
||||
the requested one fails to load, and its New Table menu loads any of the
|
||||
four (src/core/AppCommands.cpp:277-283, src/ui/live/EditorUI.cpp:334-353).
|
||||
four (src/core/AppCommands.cpp:277-283, src/ui/live/EditorUI.cpp:338-357).
|
||||
OpenGL builds also get shaders-10.8.1/, the .glfx and .fxh sources parsed at
|
||||
runtime (src/core/FileLocator.cpp:223, src/renderer/Shader.cpp:1827-1828,2234-2237,
|
||||
make/CMakeLists_app.txt:625-635); the directory is not copied for the BGFX
|
||||
runtime (src/core/FileLocator.cpp:223, src/renderer/Shader.cpp:1827-1828,2231-2234,
|
||||
make/CMakeLists_app.txt:637-647); the directory is not copied for the BGFX
|
||||
renderer. Three plugins carry resources of their own: plugins/flexdmd/assets/
|
||||
holds the bitmap fonts UltraDMD asks for by resource name, the
|
||||
FlexDMD.Resources. prefix being stripped before the lookup
|
||||
@@ -100,11 +101,11 @@ notes: |
|
||||
Two parts of that tree ship without a reader on the desktop targets.
|
||||
docs/Changelog.txt is read by the About dialog
|
||||
(src/ui/win/dialogs/AboutDialog.cpp:34), which sits in the Windows source
|
||||
list only (make/CMakeLists_sources.txt:491,540-541,
|
||||
list only (make/CMakeLists_sources.txt:493,542-543,
|
||||
make/CMakeLists_app.txt:78-80), and assets/web/, vpx.html with its scripts
|
||||
and style sheet, is served by the web server that only the iOS and Android
|
||||
library build compiles (lib/src/WebServer.cpp:92-99,
|
||||
make/CMakeLists_sources.txt:817-823, make/CMakeLists_app.txt:669).
|
||||
make/CMakeLists_sources.txt:819-825, make/CMakeLists_app.txt:679).
|
||||
|
||||
PinMAME is where the emulation happens. Tables that recreate a real solid
|
||||
state machine hand a ROM name to the controller, which resolves its root as
|
||||
@@ -340,7 +341,7 @@ files:
|
||||
category: game_data
|
||||
required: false
|
||||
description: "MAME high score memory map database, read once per machine start"
|
||||
source_ref: "pinmame src/hiscore.c:18,223-230, pinmame src/cpuexec.c:332-334,393,1755, src/core/player.cpp:457-459"
|
||||
source_ref: "pinmame src/hiscore.c:18, 223-230, pinmame src/cpuexec.c:332-334, 393, 1755, src/core/player.cpp:463-465"
|
||||
note: >-
|
||||
hs_open is called unconditionally at the top of cpu_run for every PinMAME
|
||||
machine, and the whole body sits behind `if (f)`, so an absent file is a
|
||||
@@ -364,23 +365,40 @@ files:
|
||||
absent file leaves the menu showing "cheat database not found"
|
||||
(pinmame src/cheat.c:2463). Same bare-filename resolution as hiscore.dat.
|
||||
|
||||
- name: fabian-hrir.sofa
|
||||
path: "assets/fabian-hrir.sofa"
|
||||
system: vpinball
|
||||
required: false
|
||||
size: 1766147
|
||||
sha1: "5bf46cfb6472b81f4aa7fb2c87bc79afc23109d7"
|
||||
md5: "b98b60a050e3c2edfa7a59863c625c61"
|
||||
description: "FABIAN full-sphere HRIR set, the HRTF of the binaural spatial audio renderer"
|
||||
source_ref: "src/audio/SpatialAudio.cpp:49-56,344-360, make/CMakeLists_app.txt:631-635"
|
||||
note: >-
|
||||
Read from assets/ under the installation folder when libspatialaudio is
|
||||
built with libmysofa, which every build script does; the headphone and VR
|
||||
binauralizer then runs second order ambisonics on it. A missing or
|
||||
unreadable file logs "Failed to load the binaural HRTF" and audio falls
|
||||
back to loudspeaker decoding. The file sits in the repository's top-level
|
||||
assets/ while the build copies src/assets, so no build output carries it.
|
||||
|
||||
analysis:
|
||||
shipped_with_the_binary:
|
||||
note: >-
|
||||
Copied into the build output next to the executable and installed as one
|
||||
unit by every distribution, so they arrive with the emulator rather than
|
||||
being sourced separately.
|
||||
source_ref: "make/CMakeLists_app.txt:619-623"
|
||||
source_ref: "make/CMakeLists_app.txt:631-635"
|
||||
entries:
|
||||
- what: "scripts/, the .vbs library tables include"
|
||||
source_ref: "src/core/FileLocator.cpp:379-412, src/core/ScriptGlobalTable.cpp:346-375, src/ui/win/codeview.cpp:2068-2076"
|
||||
source_ref: "src/core/FileLocator.cpp:379-412, src/core/ScriptGlobalTable.cpp:352-381, src/ui/win/codeview.cpp:2068-2076"
|
||||
- what: "assets/, textures, segment display maps, TableSizes.csv, the window icon, the fallback font, the editor icons"
|
||||
source_ref: "src/renderer/Renderer.cpp:176-188,1493-1510, src/parts/bumper.cpp:148,160,172,186, src/parts/kicker.cpp:198-239, src/core/TableDB.cpp:16, src/renderer/Window.cpp:280, src/parts/textbox.cpp:719-720, src/ui/live/editor/EditorChrome.cpp:200"
|
||||
- what: "assets/blankTable.vpx, exampleTable.vpx, lightSeqTable.vpx, strippedTable.vpx"
|
||||
source_ref: "src/core/AppCommands.cpp:277-283, src/ui/live/EditorUI.cpp:334-353"
|
||||
source_ref: "src/core/AppCommands.cpp:277-283, src/ui/live/EditorUI.cpp:338-357"
|
||||
note: "The live editor's default table and its four New Table templates."
|
||||
- what: "shaders-10.8.1/, .glfx and .fxh parsed at runtime by the OpenGL renderer"
|
||||
source_ref: "src/core/FileLocator.cpp:223, src/renderer/Shader.cpp:1827-1828,2234-2237, make/CMakeLists_app.txt:625-635"
|
||||
source_ref: "src/core/FileLocator.cpp:223, src/renderer/Shader.cpp:1827-1828, src/renderer/Shader.cpp:2231-2234, make/CMakeLists_app.txt:637-647"
|
||||
- what: "plugins/flexdmd/assets/, the bitmap fonts UltraDMD names as FlexDMD.Resources.*"
|
||||
source_ref: "plugins/flexdmd/UltraDMD.cpp:20-24,32-34, plugins/flexdmd/resources/AssetManager.cpp:103-109,252-272, make/CMakeLists_plugin_FlexDMD.txt:179-182"
|
||||
- what: "plugins/scoreview/layouts/, the default score view layouts"
|
||||
@@ -392,10 +410,10 @@ analysis:
|
||||
note: "Copied into the build output but unreachable in the desktop standalone binary"
|
||||
entries:
|
||||
- what: "docs/Changelog.txt"
|
||||
source_ref: "src/ui/win/dialogs/AboutDialog.cpp:34, make/CMakeLists_sources.txt:540-541, make/CMakeLists_app.txt:622"
|
||||
source_ref: "src/ui/win/dialogs/AboutDialog.cpp:34, make/CMakeLists_sources.txt:542-543, make/CMakeLists_app.txt:634"
|
||||
note: "The About dialog is in the Windows editor source list only."
|
||||
- what: "assets/web/, vpx.html and the files it pulls"
|
||||
source_ref: "lib/src/WebServer.cpp:92-99, make/CMakeLists_sources.txt:817-823"
|
||||
source_ref: "lib/src/WebServer.cpp:92-99, make/CMakeLists_sources.txt:819-825"
|
||||
note: "The web server is compiled into the iOS and Android library build only."
|
||||
|
||||
user_supplied_paths:
|
||||
@@ -432,12 +450,12 @@ analysis:
|
||||
- what: "score view layout, <table basename>.scv, else <table folder name>.scv, else the LayoutFolder setting"
|
||||
source_ref: "plugins/scoreview/ScoreViewPlugin.cpp:23,46-62"
|
||||
- what: "table music, music/ beside the table"
|
||||
source_ref: "src/core/ScriptGlobalTable.cpp:116-130, src/core/FileLocator.cpp:267-377"
|
||||
source_ref: "src/core/ScriptGlobalTable.cpp:122-136, src/core/FileLocator.cpp:267-377"
|
||||
note: "In the legacy layout, music/ under the installation folder, then the table folder, then the preferences folder."
|
||||
- what: "textbox fonts, <table folder>/<FontName>-<Style>.ttf"
|
||||
source_ref: "src/parts/textbox.cpp:701-722"
|
||||
- what: "table sidecars, the .vbs script override, the per-table .ini and the legacy .pov"
|
||||
source_ref: "src/parts/pintable.cpp:1322-1328,1380-1396, src/parts/pintable.h:562-589"
|
||||
source_ref: "src/parts/pintable.cpp:1325-1331, src/parts/pintable.cpp:1383-1399, src/parts/pintable.h:560-587"
|
||||
|
||||
generated_files:
|
||||
- what: "VPinballX.ini, the settings file"
|
||||
@@ -448,7 +466,7 @@ analysis:
|
||||
Batocera seeds it from the assets/Default_VPinballX.ini its pinned tree
|
||||
carries and rewrites it before every launch.
|
||||
- what: "VPReg.ini, values saved by table scripts in the table's user folder; vpinball.log in the preferences folder"
|
||||
source_ref: "src/core/ScriptGlobalTable.cpp:521-551, src/utils/Logger.cpp:164-165"
|
||||
source_ref: "src/core/ScriptGlobalTable.cpp:527-557, src/utils/Logger.cpp:164-165"
|
||||
- what: "PinMAME state: nvram/, cfg/, hi/, inp/, memcard/ and sta/"
|
||||
source_ref: "pinmame src/libpinmame/libpinmame.cpp:1081,1083-1087"
|
||||
note: "Written by PinMAME as the machine runs."
|
||||
@@ -4,8 +4,8 @@ core_classification: official_port
|
||||
source: "https://git.libretro.com/libretro/wqxemu"
|
||||
upstream: "https://github.com/AloysHF/WQXEmu"
|
||||
profiled_date: "2026-09-17"
|
||||
source_commit: "868b644df757379b15a04c7354f8f756d11076c3"
|
||||
upstream_commit: "7191df429042116e707ba68f5b2d2a8ae567b2ad"
|
||||
source_commit: "c41a6f26f6e1a5ff2b15f0b63e6103bd8889df22"
|
||||
upstream_commit: "c41a6f26f6e1a5ff2b15f0b63e6103bd8889df22"
|
||||
core_version: "0.1.0"
|
||||
display_name: "Wenquxing - Electronic Dictionary (WQXEmu)"
|
||||
cores:
|
||||
@@ -63,10 +63,12 @@ notes: |
|
||||
The standalone binary takes the same files as explicit --rom, --nor,
|
||||
--nand and --nand0 paths and has no default directory; --model selects
|
||||
the machine, otherwise detect_model guesses it from the file sizes
|
||||
(crates/wqxemu/src/main.rs:27-42, crates/wqxemu/src/main.rs:239-274,
|
||||
crates/wqxemu/src/main.rs:276-288,
|
||||
(crates/wqxemu/src/main.rs:27-42, crates/wqxemu/src/main.rs:243-278,
|
||||
crates/wqxemu/src/main.rs:280-292,
|
||||
crates/wqxemu-core/src/machines/mod.rs:38-87). Its device skins are
|
||||
include_bytes! PNGs (crates/wqxemu/src/keypad.rs:59-66).
|
||||
include_bytes! PNGs, or drawn by code_skin when --skin code is given
|
||||
(crates/wqxemu/src/main.rs:65-67, crates/wqxemu/src/keypad.rs:86-91,
|
||||
crates/wqxemu/src/keypad.rs:220-227).
|
||||
|
||||
The libretro-core-info file names the PC1000 NOR image pc1000.fls. The
|
||||
code opens pc1000.nor since commit 0a8f7a5 of 2026-08-23; the v0.1.0
|
||||
@@ -201,7 +203,7 @@ files:
|
||||
64 pages of the NAND array. No size check. The libretro core always
|
||||
puts it in the NC2000 set and the standalone binary requires
|
||||
--nand0 for this model, so a missing file stops the start.
|
||||
source_ref: "crates/wqxemu-libretro/src/lib.rs:232-237, crates/wqxemu-core/src/machines/nc2000.rs:24, crates/wqxemu-core/src/machines/nc2000.rs:283-288, crates/wqxemu-core/src/machines/nc2000.rs:298-301, crates/wqxemu/src/main.rs:260-265"
|
||||
source_ref: "crates/wqxemu-libretro/src/lib.rs:232-237, crates/wqxemu-core/src/machines/nc2000.rs:24, crates/wqxemu-core/src/machines/nc2000.rs:283-288, crates/wqxemu-core/src/machines/nc2000.rs:298-301, crates/wqxemu/src/main.rs:264-269"
|
||||
|
||||
- name: nc3000.nor
|
||||
path: WQXEmu/nc3000/nc3000.nor
|
||||
@@ -244,4 +246,4 @@ files:
|
||||
optional for this model. Without it the core writes the marker
|
||||
"ggv nc3000" at offset 528 of an erased first plane and the machine
|
||||
boots the same way.
|
||||
source_ref: "crates/wqxemu-libretro/src/lib.rs:238-246, crates/wqxemu-core/src/machines/nc3000.rs:27-31, crates/wqxemu-core/src/machines/nc3000.rs:290-297, crates/wqxemu-core/src/machines/nc3000.rs:342-350, crates/wqxemu/src/main.rs:266-270"
|
||||
source_ref: "crates/wqxemu-libretro/src/lib.rs:238-246, crates/wqxemu-core/src/machines/nc3000.rs:27-31, crates/wqxemu-core/src/machines/nc3000.rs:290-297, crates/wqxemu-core/src/machines/nc3000.rs:342-350, crates/wqxemu/src/main.rs:270-274"
|
||||
@@ -43,7 +43,6 @@ files:
|
||||
|
||||
- name: "sega_101.bin"
|
||||
system: sega-saturn
|
||||
region: [japan]
|
||||
priority: 2
|
||||
required: false
|
||||
hle_fallback: true
|
||||
@@ -52,7 +51,6 @@ files:
|
||||
|
||||
- name: "mpr-17933.bin"
|
||||
system: sega-saturn
|
||||
region: [north-america, europe]
|
||||
priority: 3
|
||||
required: false
|
||||
hle_fallback: true
|
||||
|
||||
@@ -44,7 +44,6 @@ files:
|
||||
|
||||
- name: "sega_101.bin"
|
||||
system: sega-saturn
|
||||
region: [japan]
|
||||
priority: 2
|
||||
required: false
|
||||
hle_fallback: true
|
||||
@@ -55,7 +54,6 @@ files:
|
||||
|
||||
- name: "mpr-17933.bin"
|
||||
system: sega-saturn
|
||||
region: [north-america, europe]
|
||||
priority: 3
|
||||
required: false
|
||||
hle_fallback: true
|
||||
|
||||
+8
-6
@@ -458,10 +458,11 @@ files:
|
||||
sha1: 0a16f66d7816d73af3b28dea2bb292415695f6f7
|
||||
description: "Vulkan texture function shader"
|
||||
note: >-
|
||||
Read into the device at creation and specialised per draw. A source
|
||||
that cannot be read fails GSDeviceVK::Create, and Vulkan is the backend
|
||||
the libretro core presents through.
|
||||
source_ref: "pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2308-2317, pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5349-5364, pcsx2/GS/Renderers/Common/GSDevice.cpp:372-375"
|
||||
Read from the resources directory into the device at creation
|
||||
(pcsx2/GS/Renderers/Common/GSDevice.cpp:372-375) and specialised per
|
||||
draw. A source that cannot be read fails GSDeviceVK::Create, and Vulkan
|
||||
is the backend the libretro core presents through.
|
||||
source_ref: "pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:2308-2317, pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp:5349-5364"
|
||||
|
||||
- name: convert.glsl
|
||||
path: pcsx2/resources/shaders/vulkan/convert.glsl
|
||||
@@ -828,7 +829,7 @@ files:
|
||||
Named as the placeholder texture when the fullscreen interface
|
||||
initialises; that initialisation fails without it and the interface
|
||||
stays closed.
|
||||
source_ref: "pcsx2/ImGui/FullscreenUI.cpp:335-341, pcsx2/ImGui/ImGuiFullscreen.cpp:292-300"
|
||||
source_ref: "pcsx2/ImGui/FullscreenUI.cpp:335-341, pcsx2/ImGui/ImGuiFullscreen.cpp:216-226, 292-300"
|
||||
|
||||
- name: no-save.png
|
||||
path: pcsx2/resources/fullscreenui/no-save.png
|
||||
@@ -1381,7 +1382,8 @@ files:
|
||||
size: 656
|
||||
sha1: d168d39632798f8be799d21bd0a0c9ca13533272
|
||||
description: "Flag icon, game list region unclassified"
|
||||
source_ref: "pcsx2/ImGui/FullscreenUI.cpp:2846, pcsx2/GameList.cpp:155-190, pcsx2-qt/GameList/GameListModel.cpp:486"
|
||||
note: "Opened as icons/flags/Other.svg by the fullscreen game list (pcsx2/ImGui/FullscreenUI.cpp:2846)."
|
||||
source_ref: "pcsx2/GameList.cpp:155-190, pcsx2-qt/GameList/GameListModel.cpp:486"
|
||||
|
||||
- name: pl.svg
|
||||
path: pcsx2/resources/icons/flags/pl.svg
|
||||
|
||||
@@ -27,21 +27,18 @@ files:
|
||||
- name: "prod.keys"
|
||||
required: true
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:655-656"
|
||||
|
||||
- name: "title.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Per-title encryption keys (rights_id to titlekey mappings)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:659-660"
|
||||
|
||||
- name: "console.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Console-specific keys (BIS, SD seed)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:661-662"
|
||||
|
||||
@@ -49,7 +46,6 @@ files:
|
||||
required: false
|
||||
path: "switch/"
|
||||
size: 160
|
||||
mode: standalone
|
||||
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
|
||||
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:273-294"
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ param(
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$defaultInstallUrl = "https://raw.githubusercontent.com/Abdess/retrobios/main/install.py"
|
||||
$defaultInstallSha256 = "3ea3a3e21012cc2dbf24c08a0ad314233ade04e62c0d2164b76146f1b361d714"
|
||||
$defaultInstallSha256 = "60e18da18b5a9a43b18d37020b676ad47babd6d12c5314e8fcc1370e4864c4e5"
|
||||
$maximumInstallerBytes = 2MB
|
||||
$installer = if ($PSScriptRoot) { Join-Path $PSScriptRoot "install.py" } else { $null }
|
||||
$temporary = $null
|
||||
|
||||
+47
-8
@@ -103,8 +103,35 @@ DEFAULT_DESTS = {
|
||||
"rocknix": Path("/storage/roms/bios"),
|
||||
"misterfpga": Path("/media/fat/games"),
|
||||
"retropie": Path.home() / "RetroPie" / "BIOS",
|
||||
"romm": Path("/romm/library/bios"),
|
||||
}
|
||||
|
||||
|
||||
def _os_default_dests(os_type: str) -> dict[str, Path]:
|
||||
"""Where a platform keeps its BIOS on this OS, when it is not detected.
|
||||
|
||||
The same folders the platform's detection looks for: a platform named on
|
||||
the command line but not found must not land in ~/bios, which none of
|
||||
them reads.
|
||||
"""
|
||||
home = Path.home()
|
||||
if os_type == "windows":
|
||||
profile = Path(os.environ.get("USERPROFILE", str(home)))
|
||||
appdata = Path(os.environ.get("APPDATA", str(home / "AppData" / "Roaming")))
|
||||
return {
|
||||
"retroarch": appdata / "RetroArch" / "system",
|
||||
"retrobat": profile / "RetroBat" / "bios",
|
||||
"bizhawk": profile / "BizHawk" / "Firmware",
|
||||
}
|
||||
if os_type == "darwin":
|
||||
return {
|
||||
"retroarch": home / "Library" / "Application Support" / "RetroArch" / "system",
|
||||
}
|
||||
return {
|
||||
"retroarch": home / ".config" / "retroarch" / "system",
|
||||
"bizhawk": home / ".config" / "BizHawk" / "Firmware",
|
||||
}
|
||||
|
||||
# Set when the run is interrupted, so queued downloads end instead of draining
|
||||
# the pool: every future is submitted before the first one completes.
|
||||
_stop = threading.Event()
|
||||
@@ -954,8 +981,13 @@ def fetch_manifest(plat: str) -> dict:
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def fetch_targets(plat: str) -> dict:
|
||||
"""Download target core list. Returns empty dict on 404."""
|
||||
def fetch_targets(plat: str) -> "dict | None":
|
||||
"""Download the target core list.
|
||||
|
||||
Empty on 404, where the platform publishes no targets. None when the list
|
||||
could not be read: a timeout says nothing about the platform, and
|
||||
answering "no targets" for it sent users to the full pack.
|
||||
"""
|
||||
url = TARGETS_URL.format(platform=plat)
|
||||
try:
|
||||
with urllib.request.urlopen(url, timeout=30) as resp:
|
||||
@@ -965,10 +997,11 @@ def fetch_targets(plat: str) -> dict:
|
||||
except urllib.error.HTTPError as exc:
|
||||
if exc.code == 404:
|
||||
return {}
|
||||
print(f" Warning: failed to fetch targets for {plat}: {exc}", file=sys.stderr)
|
||||
return {}
|
||||
except (urllib.error.URLError, OSError, ValueError):
|
||||
return {}
|
||||
print(f" Error: failed to fetch targets for {plat}: {exc}", file=sys.stderr)
|
||||
return None
|
||||
except (urllib.error.URLError, OSError, ValueError) as exc:
|
||||
print(f" Error: failed to fetch targets for {plat}: {exc}", file=sys.stderr)
|
||||
return None
|
||||
|
||||
|
||||
def _filter_by_target(
|
||||
@@ -1379,7 +1412,7 @@ def _prompt_manual_platform(os_type: str) -> list[tuple[str, Path]]:
|
||||
plat = AVAILABLE_PLATFORMS[int(choice) - 1]
|
||||
elif choice in AVAILABLE_PLATFORMS:
|
||||
plat = choice
|
||||
default_dest = DEFAULT_DESTS.get(plat, Path.home() / "bios")
|
||||
default_dest = _default_dest(os_type, plat)
|
||||
try:
|
||||
raw = input(f"BIOS directory [{default_dest}]: ").strip()
|
||||
except (EOFError, KeyboardInterrupt):
|
||||
@@ -1399,7 +1432,9 @@ def _default_dest(os_type: str, platform_name: str) -> Path:
|
||||
"""
|
||||
if os_type == "android" and platform_name == "retroarch":
|
||||
return _android_storage_root() / "RetroArch" / "system"
|
||||
return DEFAULT_DESTS.get(platform_name, Path.home() / "bios")
|
||||
return _os_default_dests(os_type).get(
|
||||
platform_name, DEFAULT_DESTS.get(platform_name, Path.home() / "bios")
|
||||
)
|
||||
|
||||
|
||||
def _manual_usage_hint(os_type: str) -> list[str]:
|
||||
@@ -1580,6 +1615,8 @@ def main() -> None:
|
||||
|
||||
if args.list_targets:
|
||||
targets = fetch_targets(plat_name)
|
||||
if targets is None:
|
||||
sys.exit(1)
|
||||
if not targets:
|
||||
print(f" No targets available for {plat_name}")
|
||||
else:
|
||||
@@ -1592,6 +1629,8 @@ def main() -> None:
|
||||
# Target filtering
|
||||
if args.target:
|
||||
targets = fetch_targets(plat_name)
|
||||
if targets is None:
|
||||
sys.exit(1)
|
||||
target_info = targets.get(args.target)
|
||||
if target_info is None:
|
||||
# Carrying on would install every file, which is the opposite
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ esac
|
||||
TEMP_INSTALLER=""
|
||||
TEMP_DIRECTORY=""
|
||||
DEFAULT_INSTALL_URL="https://raw.githubusercontent.com/Abdess/retrobios/main/install.py"
|
||||
DEFAULT_INSTALL_SHA256="3ea3a3e21012cc2dbf24c08a0ad314233ade04e62c0d2164b76146f1b361d714"
|
||||
DEFAULT_INSTALL_SHA256="60e18da18b5a9a43b18d37020b676ad47babd6d12c5314e8fcc1370e4864c4e5"
|
||||
MAX_INSTALLER_BYTES=2097152
|
||||
|
||||
cleanup() {
|
||||
|
||||
+420
-350
File diff suppressed because it is too large.
Load diff
+1583
-224
File diff suppressed because it is too large.
Load diff
+622
-232
File diff suppressed because it is too large.
Load diff
+251
-212
@@ -5,7 +5,7 @@
|
||||
"platform": "lakka",
|
||||
"display_name": "Lakka",
|
||||
"version": "1.0",
|
||||
"generated": "2026-10-05T22:37:20Z",
|
||||
"generated": "2026-10-06T06:50:25Z",
|
||||
"base_destination": "system",
|
||||
"detect": [
|
||||
{
|
||||
@@ -16,153 +16,12 @@
|
||||
}
|
||||
],
|
||||
"standalone_copies": [],
|
||||
"total_files": 5849,
|
||||
"total_size": 6395485306,
|
||||
"pack_files": 8492,
|
||||
"pack_size": 6436018470,
|
||||
"total_omitted": 14,
|
||||
"omitted_files": [
|
||||
{
|
||||
"dest": "SC-55/WAVEROM3.BIN",
|
||||
"name": "WAVEROM3.BIN",
|
||||
"system": "dos",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SufamiTurbo.sfc",
|
||||
"name": "SufamiTurbo.sfc",
|
||||
"system": "nintendo-sufami-turbo",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"name": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"system": "nec-pc-engine-cd",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"name": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"system": "nec-pc-engine-cd",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1.rom",
|
||||
"name": "dsp1.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1b.rom",
|
||||
"name": "dsp1b.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp2.rom",
|
||||
"name": "dsp2.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp3.rom",
|
||||
"name": "dsp3.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp4.rom",
|
||||
"name": "dsp4.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot.rom",
|
||||
"name": "jagboot.rom",
|
||||
"system": "atari-jaguar",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot_m.rom",
|
||||
"name": "jagboot_m.rom",
|
||||
"system": "atari-jaguar",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st010.rom",
|
||||
"name": "st010.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st011.rom",
|
||||
"name": "st011.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st018.rom",
|
||||
"name": "st018.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_files": 5867,
|
||||
"total_size": 6399839286,
|
||||
"pack_files": 8510,
|
||||
"pack_size": 6440372450,
|
||||
"total_omitted": 0,
|
||||
"omitted_files": [],
|
||||
"files": [
|
||||
{
|
||||
"dest": "3do_arcade_saot.bin",
|
||||
@@ -1102,10 +961,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "galaksija/ROM2.BIN",
|
||||
"sha1": "1bae895fbdd658cfb56c53cc2139282cc1e778de",
|
||||
"sha256": "9fc01e6beab84e61e0267fa39e23c649cdf2ccd25ad1cbfc2de0facfd160e723",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ROM2.BIN",
|
||||
"sha1": "5d5ab4313a2d0effe7572bb129193b64cab002c1",
|
||||
"sha256": "7d93fe474fcc98c06a6d96e533f8935e4e707edf0792d3e9d679ea68404375de",
|
||||
"size": 4096,
|
||||
"repo_path": "bios/Galaksija/ROM2.BIN",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
@@ -1912,10 +1771,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "dolphin-emu/Sys/GC/dsp_rom.bin",
|
||||
"sha1": "f4f683a49d7eb4155566f793f2c1c27e90159992",
|
||||
"sha256": "7f33e6600722791ccee5fd15d4330af8d8f74165f7d1ded6738684c0294aaffe",
|
||||
"sha1": "3c6cc6e04fdd0b2a392d7a6ed769455444846be7",
|
||||
"sha256": "49d987ee1eab29a157425b82d54516957a81e1bac247c8834e494642605c3e8c",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/GameCube/Sys/GC/dsp_rom.bin",
|
||||
"repo_path": "bios/Nintendo/GameCube/.variants/dsp_rom.bin.3c6cc6e0",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
@@ -4256,10 +4115,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/resources/GameIndex.yaml",
|
||||
"sha1": "40ecf6138c99a0aba775ef93240b295025a45500",
|
||||
"sha256": "483face8f50f5e96d89528059522be3766b44f5e07e854bae1fa92ff0111d0a7",
|
||||
"size": 2665743,
|
||||
"repo_path": "bios/Sony/PlayStation 2/resources/GameIndex.yaml",
|
||||
"sha1": "7efb2ed721cf0c0f0677324e09be311a8337e793",
|
||||
"sha256": "3bf3c54d6f16d88d3669be698179bb8c2fb981ee5ce71bcb952719429a838cc1",
|
||||
"size": 2693579,
|
||||
"repo_path": "bios/Other/yaps2/GameIndex.yaml",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
@@ -5892,10 +5751,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "Cemu/otp.bin",
|
||||
"sha1": "f0332b7252e9c01b30bf5d5a63ceb22dc47968aa",
|
||||
"sha256": "93c2e20cc377f2cb0fa9a2ee58c39be22e00baa94b890545e585e53b3eb4039f",
|
||||
"size": 256,
|
||||
"repo_path": "bios/Nintendo/3DS/Citra/sysdata/otp.bin",
|
||||
"sha1": "aa4ebc7f94c22b04945b6c9232547ada10b71f6f",
|
||||
"sha256": "a12993f7fe069098ab6fe1cdb43099a1dfb568223bef08ed5cb43ec93d9ff2de",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Nintendo/Wii U/otp.bin",
|
||||
"cores": [
|
||||
"cemu"
|
||||
]
|
||||
@@ -6162,6 +6021,16 @@
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/WAVEROM3.BIN",
|
||||
"sha1": "7454b817778179806f3f9d1985b3a2ef67ace76f",
|
||||
"sha256": "334b2d16be3c2362210fdbec1c866ad58badeb0f84fd9bf5d0ac599baf077cc2",
|
||||
"size": 1048576,
|
||||
"repo_path": "bios/Roland/sounddata/Nuked-SC55-Resources/ROMs/SC-55-v1.00/sc55_waverom3.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "CM32LN_CONTROL.ROM",
|
||||
"sha1": "dc1c5b1b90a4646d00f7daf3679733c7badc7077",
|
||||
@@ -25590,6 +25459,96 @@
|
||||
"mesen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1.rom",
|
||||
"sha1": "188d471fefea71eb53f0ee7064697ff0971b1014",
|
||||
"sha256": "91e87d11e1c30d172556bed2211cce2efa94ba595f58c5d264809ef4d363a97b",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp1.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1b.rom",
|
||||
"sha1": "78b724811f5f18d8c67669d9390397eb1a47a5e2",
|
||||
"sha256": "d789cb3c36b05c0b23b6c6f23be7aa37c6e78b6ee9ceac8d2d2aa9d8c4d35fa9",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp1b.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp2.rom",
|
||||
"sha1": "198c4b1c3bfc6d69e734c5957af3dbfa26238dfb",
|
||||
"sha256": "03ef4ef26c9f701346708cb5d07847b5203cf1b0818bf2930acd34510ffdd717",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp2.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp3.rom",
|
||||
"sha1": "558da7cb3bd3876a6ca693661ffc6c110e948cf9",
|
||||
"sha256": "0971b08f396c32e61989d1067dddf8e4b14649d548b2188f7c541b03d7c69e4e",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp3.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp4.rom",
|
||||
"sha1": "af6478aecb6f1b67177e79c82ca04c56250a8c72",
|
||||
"sha256": "752d03b2d74441e430b7f713001fa241f8bbcfc1a0d890ed4143f174dbe031da",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp4.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st010.rom",
|
||||
"sha1": "6472828403de3589433a906e2c3f3d274c0ff008",
|
||||
"sha256": "fa9bced838fedea11c6f6ace33d1878024bdd0d02cc9485899d0bdd4015ec24c",
|
||||
"size": 53248,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st010.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st011.rom",
|
||||
"sha1": "fecbae2cec76c710422486baa186ffa7ca1cf925",
|
||||
"sha256": "8b2b3f3f3e6e29f4d21d8bc736b400bc988b7d2214ebee15643f01c1fee2f364",
|
||||
"size": 53248,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st011.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st018.rom",
|
||||
"sha1": "91383b92745cc7cc4f15409ac5bc2c2f699a43f1",
|
||||
"sha256": "6df209ab5d2524d1839c038be400ae5eb20dafc14a3771a3239cd9e8acd53806",
|
||||
"size": 163840,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st018.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SufamiTurbo.sfc",
|
||||
"sha1": "ef86ea192eed03d5c413fdbbfd46043be1d7a127",
|
||||
"sha256": "edacb453da14f825f05d1134d6035f4bf034e55f7cfb97c70c4ee107eabc7342",
|
||||
"size": 262144,
|
||||
"repo_path": "bios/Nintendo/SuFami Turbo/STBIOS.bin",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ymf288_adpcm_rom.bin",
|
||||
"sha1": "50b6c3e288eaa12ad275d4f323267bb72b0445df",
|
||||
@@ -25620,6 +25579,26 @@
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"sha1": "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c",
|
||||
"sha256": "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce",
|
||||
"size": 262144,
|
||||
"repo_path": "bios/NEC/PC Engine/syscard3.pce",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"sha1": "014881a959e045e00f4db8f52955200865d40280",
|
||||
"sha256": "4b86bb96a48a4ca8375fc0109631d0b1d64f255a03b01de70594d40788ba6c3d",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/NEC/PC Engine/gecard.pce",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "Satellaview/BSX0120-0.bin",
|
||||
"sha1": "f51c52bb26f2546fb167ab1084a56457475ff0a0",
|
||||
@@ -55406,6 +55385,26 @@
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot.rom",
|
||||
"sha1": "af643900fea84234e08b616a6d27f03f0a61db96",
|
||||
"sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9",
|
||||
"size": 131072,
|
||||
"repo_path": "bios/Atari/Jaguar/boot.rom",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot_m.rom",
|
||||
"sha1": "af643900fea84234e08b616a6d27f03f0a61db96",
|
||||
"sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9",
|
||||
"size": 131072,
|
||||
"repo_path": "bios/Atari/Jaguar/boot.rom",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "WQXEmu/nc1020/obj_lu.bin",
|
||||
"sha1": "64b8a315ecbc420ae594ccced43498392988669e",
|
||||
@@ -56490,20 +56489,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/ROM1.BIN",
|
||||
"sha1": "aea7a4c0c7ffe1f212f7b9faecfd728862ac6904",
|
||||
"sha256": "d7f03bf65c1f98c9c1226f4e1d1ecd4ac778a2dc4a332568ab0d5fee7ede9042",
|
||||
"size": 4096,
|
||||
"repo_path": "bios/Galaksija/ROM1.BIN",
|
||||
"sha1": "b91bb1d9dccffe831b7cfde7800a3fe32b2fbda6",
|
||||
"sha256": "8a1eb33c7599b746c0c50283e4349a1bb1773b5c0ec0e9661219bf6c067d2042",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/Roland/soundcanvas-roms/SC-55mk2-v1.01/rom1.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/ROM2.BIN",
|
||||
"sha1": "1bae895fbdd658cfb56c53cc2139282cc1e778de",
|
||||
"sha256": "9fc01e6beab84e61e0267fa39e23c649cdf2ccd25ad1cbfc2de0facfd160e723",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ROM2.BIN",
|
||||
"sha1": "078cb5feea05e80bb9a1bb857a2163ee434fd053",
|
||||
"sha256": "a4c9fd821059054c7e7681d61f49ce6f42ed2fe407a7ec1ba0dfdc9722582ce0",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Roland/sounddata/Nuked-SC55-Resources/ROMs/SC-55mk2-v1.01/rom2.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
@@ -56570,10 +56569,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "np2/bios.rom",
|
||||
"sha1": "1f5f7013f18c08ff50d7942e76c4fbd782412414",
|
||||
"sha256": "863df0975a305110a7da4591b704e8f5dc7302f03c63603aa2dcd03e84c36ff9",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/IBM/PC/ibmpcjr/bios.rom",
|
||||
"sha1": "76a7360502fa0296ea93b4c537174610a834d367",
|
||||
"sha256": "d0f5b6d96a01295ab5436d7852d2c9eea1faa87fcf016b7e6599cdd689266cd2",
|
||||
"size": 98304,
|
||||
"repo_path": "bios/NEC/PC-98/bios.rom",
|
||||
"cores": [
|
||||
"nekop2"
|
||||
]
|
||||
@@ -56600,20 +56599,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "scummvm/extra/MT32_CONTROL.ROM",
|
||||
"sha1": "a439fbb390da38cada95a7cbb1d6ca199cd66ef8",
|
||||
"sha256": "08d68695e5bff6bbcbb751d6e4453db9f5ead0b5f41e86480798a04376dfe090",
|
||||
"sha1": "b083518fffb7f66b03c23b7eb4f868e62dc5a987",
|
||||
"sha256": "a73a06c23ed38370e58a11fb1b86f7ea4c547061a60d7aa62bae446235fd2dff",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/cm32l_control.rom",
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/mt32_control.rom",
|
||||
"cores": [
|
||||
"scummvm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "scummvm/extra/MT32_PCM.ROM",
|
||||
"sha1": "289cc298ad532b702461bfc738009d9ebe8025ea",
|
||||
"sha256": "0dc50190bb7ea3fb212c970346b771a511772b528801e7eda6d27efda8c40698",
|
||||
"size": 1048576,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_cm32l.rom",
|
||||
"sha1": "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252",
|
||||
"sha256": "d9164063f293410cf33f2f64cdcea6893b44723fe41938e07ec9aef58b406238",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_mt32.rom",
|
||||
"cores": [
|
||||
"scummvm"
|
||||
]
|
||||
@@ -57250,6 +57249,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-10000.MEC",
|
||||
"sha1": "3f8affbe07024ccd2f5b8374072d0928c583a862",
|
||||
"sha256": "fbbfc6c156266ac7e9afb37f0cc53fb78fadf2f09f580e56b2da57e6539e463b",
|
||||
"size": 4,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-10000.MEC",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-30004R.bin",
|
||||
"sha1": "8fa040852d4b8688f0c84bcfffc65eb208f2b432",
|
||||
@@ -57280,6 +57289,36 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"sha1": "3ffa2e74c8c8ce0e10e2069956f12d2407b91c65",
|
||||
"sha256": "5b255bce650e66efeeb3b0bebc0dff705600d05aa2e076a315d02c6a7ed6ac9a",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"sha1": "7aef1dd6de4b4f64f31daad615bbccdb3e62e79c",
|
||||
"sha256": "8dc012640186c46a39fcdd64a8ab9430080a220bd0630da58c977f35725de5cf",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"sha1": "b284280341f16b1581c28ff81934bfdf403da1f0",
|
||||
"sha256": "ad812eb36b8e7daa6106411e43840f70175f012a7a7dd289965872fe43933cc4",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70004.BIN",
|
||||
"sha1": "434bc0b4eb4827da0773ec0795aadc5162569a07",
|
||||
@@ -57290,6 +57329,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70004.ROM1",
|
||||
"sha1": "cc44355ded232a2ba5309bb24d4cd55af08696b2",
|
||||
"sha256": "b86fbccaa111ca7497630337dafea7da7320fc4f924ada22b92145ef806e7b42",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70004.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.BIN",
|
||||
"sha1": "cce6fac0f7e682ad167e1e828b2d53192c3d5051",
|
||||
@@ -57300,6 +57349,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"sha1": "6611151e8f599230cdf19a17318e7e5ddc781961",
|
||||
"sha256": "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/ps2-0160h-20030602.bin",
|
||||
"sha1": "f03bc2b7e7722d1788c9e7a341e43ac3ffe33a47",
|
||||
@@ -57550,16 +57609,6 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"sha1": "3ffa2e74c8c8ce0e10e2069956f12d2407b91c65",
|
||||
"sha256": "5b255bce650e66efeeb3b0bebc0dff705600d05aa2e076a315d02c6a7ed6ac9a",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70006_BIOS_V12_HK_200.NVM",
|
||||
"sha1": "06ccc54cdbe8b017a629155ccb66310cba9c4720",
|
||||
@@ -57570,16 +57619,6 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"sha1": "6611151e8f599230cdf19a17318e7e5ddc781961",
|
||||
"sha256": "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-75008_BIOS_V14_RUS_220.NVM",
|
||||
"sha1": "fff13c6e30c55df9d6241ee08e5d0026c6a5d618",
|
||||
@@ -57610,6 +57649,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-90006_BIOS_VX_HK _230.ROM1",
|
||||
"sha1": "b96cf94772f01b8434038285896467884a84b0c2",
|
||||
"sha256": "1b7c68be427e6f571596ef6b444e8b86d1b4e2a226d62f6bfc86717a798f2317",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/ps2-0230a-20080220.nvm",
|
||||
"sha1": "258ad0f26b0b269462bbd9acbb5506d5dfbcc3d5",
|
||||
@@ -57639,16 +57688,6 @@
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-10000.MEC",
|
||||
"sha1": "3f8affbe07024ccd2f5b8374072d0928c583a862",
|
||||
"sha256": "fbbfc6c156266ac7e9afb37f0cc53fb78fadf2f09f580e56b2da57e6539e463b",
|
||||
"size": 4,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-10000.MEC",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+159
-259
@@ -5,7 +5,7 @@
|
||||
"platform": "recalbox",
|
||||
"display_name": "Recalbox",
|
||||
"version": "1.0",
|
||||
"generated": "2026-10-05T22:37:20Z",
|
||||
"generated": "2026-10-06T06:50:25Z",
|
||||
"base_destination": "bios",
|
||||
"detect": [
|
||||
{
|
||||
@@ -237,22 +237,12 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"total_files": 3236,
|
||||
"total_size": 4205115053,
|
||||
"pack_files": 3238,
|
||||
"pack_size": 4205115053,
|
||||
"total_omitted": 4,
|
||||
"total_files": 3229,
|
||||
"total_size": 4193661699,
|
||||
"pack_files": 3231,
|
||||
"pack_size": 4193661699,
|
||||
"total_omitted": 1,
|
||||
"omitted_files": [
|
||||
{
|
||||
"dest": "SC-55/WAVEROM3.BIN",
|
||||
"name": "WAVEROM3.BIN",
|
||||
"system": "dos",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "geolith/neocd.zip",
|
||||
"name": "neocd.zip",
|
||||
@@ -260,26 +250,6 @@
|
||||
"required": true,
|
||||
"reason": "hash_mismatch",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
"dest": "jagboot.rom",
|
||||
"name": "jagboot.rom",
|
||||
"system": "atari-jaguar",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot_m.rom",
|
||||
"name": "jagboot_m.rom",
|
||||
"system": "atari-jaguar",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
}
|
||||
],
|
||||
"files": [
|
||||
@@ -1845,10 +1815,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "pcenginecd/syscard3.pce",
|
||||
"sha1": "1b4c260326d905bc718812dad0f68089977f427b",
|
||||
"sha256": "df4f75feebb95e53dfef72dea0787df743e3474ba046ff5a4cb88e34dda93ff1",
|
||||
"size": 262656,
|
||||
"repo_path": "bios/NEC/PC Engine/.variants/syscard3.pce.1b4c2603",
|
||||
"sha1": "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c",
|
||||
"sha256": "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce",
|
||||
"size": 262144,
|
||||
"repo_path": "bios/NEC/PC Engine/syscard3.pce",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
@@ -8867,20 +8837,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/ROM1.BIN",
|
||||
"sha1": "aea7a4c0c7ffe1f212f7b9faecfd728862ac6904",
|
||||
"sha256": "d7f03bf65c1f98c9c1226f4e1d1ecd4ac778a2dc4a332568ab0d5fee7ede9042",
|
||||
"size": 4096,
|
||||
"repo_path": "bios/Galaksija/ROM1.BIN",
|
||||
"sha1": "b91bb1d9dccffe831b7cfde7800a3fe32b2fbda6",
|
||||
"sha256": "8a1eb33c7599b746c0c50283e4349a1bb1773b5c0ec0e9661219bf6c067d2042",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/Roland/soundcanvas-roms/SC-55mk2-v1.01/rom1.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/ROM2.BIN",
|
||||
"sha1": "1bae895fbdd658cfb56c53cc2139282cc1e778de",
|
||||
"sha256": "9fc01e6beab84e61e0267fa39e23c649cdf2ccd25ad1cbfc2de0facfd160e723",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ROM2.BIN",
|
||||
"sha1": "078cb5feea05e80bb9a1bb857a2163ee434fd053",
|
||||
"sha256": "a4c9fd821059054c7e7681d61f49ce6f42ed2fe407a7ec1ba0dfdc9722582ce0",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Roland/sounddata/Nuked-SC55-Resources/ROMs/SC-55mk2-v1.01/rom2.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
@@ -8915,6 +8885,16 @@
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/WAVEROM3.BIN",
|
||||
"sha1": "7454b817778179806f3f9d1985b3a2ef67ace76f",
|
||||
"sha256": "334b2d16be3c2362210fdbec1c866ad58badeb0f84fd9bf5d0ac599baf077cc2",
|
||||
"size": 1048576,
|
||||
"repo_path": "bios/Roland/sounddata/Nuked-SC55-Resources/ROMs/SC-55-v1.00/sc55_waverom3.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "libbass.so",
|
||||
"sha1": "415365e930b4c7d33e9af3225bea230e15bdebe7",
|
||||
@@ -24205,20 +24185,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "dsi_bios9.bin",
|
||||
"sha1": "db61fa39ddbc5f5ed71fb19cda47609ef0201723",
|
||||
"sha256": "664c608bd6ccfe583e87b3b924afa00f8697dc7ca92eeb6d206d68abb03d2e10",
|
||||
"sha1": "719b9eef33692406d7170ff526069615759c4dfc",
|
||||
"sha256": "6e9f70b51dc4f26289b597f14e2513620c2af964374a95f4c5a62b5cad199afc",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/Nintendo/DS/dsi_bios9.bin",
|
||||
"repo_path": "bios/Nintendo/DS/NDS_Bios9i.bin",
|
||||
"cores": [
|
||||
"melonds"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsi_bios7.bin",
|
||||
"sha1": "d2b17224e156ee5e55b5d8d9f323b1c9b86dd951",
|
||||
"sha256": "28a13952901b4065ef3f08c3252b49a00b6525e301b7ddaa3a390b4c7cbef901",
|
||||
"sha1": "c7c7570bfe51c3c7c5da3b01331b94e7e7cb4f53",
|
||||
"sha256": "12a03016ba07cfd874fc002df49a2c6eb2414eb7cfa395c2043035ec5e9193e8",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/Nintendo/DS/dsi_bios7.bin",
|
||||
"repo_path": "bios/Nintendo/DS/NDS_Bios7i.bin",
|
||||
"cores": [
|
||||
"melonds"
|
||||
]
|
||||
@@ -28675,10 +28655,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "gamecontrollerdb.txt",
|
||||
"sha1": "446e3d7138becc17d3bc31401a241247318f42a9",
|
||||
"sha256": "d65433feb3602d056900016cda40cf581f00289f179da336613b55ae3136afe2",
|
||||
"size": 26890,
|
||||
"repo_path": "bios/Game Engines/C-Dogs SDL/cdogs/data/gamecontrollerdb.txt",
|
||||
"sha1": "ab035b7804089690018318e4a05f9a8fc59421ff",
|
||||
"sha256": "eb002773dc8a16aa96f9ee2609798e231a9deb60c45e21fbdd4e221c9e8b7d77",
|
||||
"size": 600521,
|
||||
"repo_path": "bios/Game Engines/Solarus/gamecontrollerdb.txt",
|
||||
"cores": [
|
||||
"solarus"
|
||||
]
|
||||
@@ -28953,6 +28933,26 @@
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot.rom",
|
||||
"sha1": "af643900fea84234e08b616a6d27f03f0a61db96",
|
||||
"sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9",
|
||||
"size": 131072,
|
||||
"repo_path": "bios/Atari/Jaguar/boot.rom",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot_m.rom",
|
||||
"sha1": "af643900fea84234e08b616a6d27f03f0a61db96",
|
||||
"sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9",
|
||||
"size": 131072,
|
||||
"repo_path": "bios/Atari/Jaguar/boot.rom",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pinmame/roms/gts1.zip",
|
||||
"sha1": "d4b0c8277c187a92279e2d2b71fc91b72d581257",
|
||||
@@ -29043,6 +29043,16 @@
|
||||
"visual-pinball"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "assets/fabian-hrir.sofa",
|
||||
"sha1": "5bf46cfb6472b81f4aa7fb2c87bc79afc23109d7",
|
||||
"sha256": "f22e921a6bc49a78c6d2eb3db963e9e12b4c4c5a77adeba2b786c38be37e6636",
|
||||
"size": 1766147,
|
||||
"repo_path": "bios/Other/visual-pinball/assets/fabian-hrir.sofa",
|
||||
"cores": [
|
||||
"visual-pinball"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "xmil/FNT0808.X1",
|
||||
"sha1": "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
|
||||
@@ -29945,20 +29955,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "scummvm/extra/MT32_CONTROL.ROM",
|
||||
"sha1": "a439fbb390da38cada95a7cbb1d6ca199cd66ef8",
|
||||
"sha256": "08d68695e5bff6bbcbb751d6e4453db9f5ead0b5f41e86480798a04376dfe090",
|
||||
"sha1": "b083518fffb7f66b03c23b7eb4f868e62dc5a987",
|
||||
"sha256": "a73a06c23ed38370e58a11fb1b86f7ea4c547061a60d7aa62bae446235fd2dff",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/cm32l_control.rom",
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/mt32_control.rom",
|
||||
"cores": [
|
||||
"scummvm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "scummvm/extra/MT32_PCM.ROM",
|
||||
"sha1": "289cc298ad532b702461bfc738009d9ebe8025ea",
|
||||
"sha256": "0dc50190bb7ea3fb212c970346b771a511772b528801e7eda6d27efda8c40698",
|
||||
"size": 1048576,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_cm32l.rom",
|
||||
"sha1": "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252",
|
||||
"sha256": "d9164063f293410cf33f2f64cdcea6893b44723fe41938e07ec9aef58b406238",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_mt32.rom",
|
||||
"cores": [
|
||||
"scummvm"
|
||||
]
|
||||
@@ -30727,6 +30737,16 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-10000.MEC",
|
||||
"sha1": "3f8affbe07024ccd2f5b8374072d0928c583a862",
|
||||
"sha256": "fbbfc6c156266ac7e9afb37f0cc53fb78fadf2f09f580e56b2da57e6539e463b",
|
||||
"size": 4,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-10000.MEC",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-30004R.bin",
|
||||
"sha1": "8fa040852d4b8688f0c84bcfffc65eb208f2b432",
|
||||
@@ -30757,6 +30777,36 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"sha1": "3ffa2e74c8c8ce0e10e2069956f12d2407b91c65",
|
||||
"sha256": "5b255bce650e66efeeb3b0bebc0dff705600d05aa2e076a315d02c6a7ed6ac9a",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"sha1": "7aef1dd6de4b4f64f31daad615bbccdb3e62e79c",
|
||||
"sha256": "8dc012640186c46a39fcdd64a8ab9430080a220bd0630da58c977f35725de5cf",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"sha1": "b284280341f16b1581c28ff81934bfdf403da1f0",
|
||||
"sha256": "ad812eb36b8e7daa6106411e43840f70175f012a7a7dd289965872fe43933cc4",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-70004.BIN",
|
||||
"sha1": "434bc0b4eb4827da0773ec0795aadc5162569a07",
|
||||
@@ -30767,6 +30817,16 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-70004.ROM1",
|
||||
"sha1": "cc44355ded232a2ba5309bb24d4cd55af08696b2",
|
||||
"sha256": "b86fbccaa111ca7497630337dafea7da7320fc4f924ada22b92145ef806e7b42",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70004.ROM1",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-70008_BIOS_V12_RUS_200.BIN",
|
||||
"sha1": "cce6fac0f7e682ad167e1e828b2d53192c3d5051",
|
||||
@@ -30777,6 +30837,16 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"sha1": "6611151e8f599230cdf19a17318e7e5ddc781961",
|
||||
"sha256": "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ps2-0100jd-20000117.bin",
|
||||
"sha1": "5b33170323ed6344e2363fed8115dc3918bb96a4",
|
||||
@@ -31517,6 +31587,16 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ps2-0230a-20080220.nvm",
|
||||
"sha1": "258ad0f26b0b269462bbd9acbb5506d5dfbcc3d5",
|
||||
"sha256": "e017efa804f1f7d4d3da82b67d7370c5be062b4860f1cff4f898f93437d691a0",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ps2-0230a-20080220.nvm",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ps2-0230e-20080220.bin",
|
||||
"sha1": "9915b5ba56798f4027ac1bd8d10abe0c1c9c326a",
|
||||
@@ -31567,46 +31647,6 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "GameIndex.yaml",
|
||||
"sha1": "57369df9ca82a460e596cea7835c5a0797dee668",
|
||||
"sha256": "efa94cb7b9208dc6812bb9407dc986560e523cce57f511eff30942f76b7288bf",
|
||||
"size": 1737799,
|
||||
"repo_path": "bios/Sony/PlayStation 2/.variants/GameIndex.yaml.57369df9",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ROM2.BIN",
|
||||
"sha1": "5d5ab4313a2d0effe7572bb129193b64cab002c1",
|
||||
"sha256": "7d93fe474fcc98c06a6d96e533f8935e4e707edf0792d3e9d679ea68404375de",
|
||||
"size": 4096,
|
||||
"repo_path": "bios/Sony/PlayStation 2/.variants/ROM2.BIN.5d5ab431",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH30004R.nvm",
|
||||
"sha1": "1d3caaed7411425c16aee8c35db47b928e31f60b",
|
||||
"sha256": "c598dea13e5bba2fcae69de5b051c15fcd5b25842978be1bb20a86cfff243eaf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/.variants/SCPH30004R.nvm.5e0200d0",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "patches.zip",
|
||||
"sha1": "2562e542d66db945ccf158d7a221c2a28e3b6be4",
|
||||
"sha256": "df2b384ec29221155e8151fa2ff2dc8f0eef2409a8dce5ee7f7514352ae4058a",
|
||||
"size": 2165576,
|
||||
"repo_path": "bios/Sony/PlayStation 2/.variants/patches.zip.5a4d0a00",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ps2-dvd-110u.bin",
|
||||
"sha1": "0bc9143cb6839471d62b8fdd0b2fc05e941527d3",
|
||||
@@ -31738,81 +31778,11 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "EROM.BIN",
|
||||
"sha1": "adb4dbb7feb8247811506a38896ddcb789c4b477",
|
||||
"sha256": "f7c4944e3001e3849cdead743e200e009d4d07bd5afb20fb937a7b201895f713",
|
||||
"size": 247968,
|
||||
"repo_path": "bios/Sony/PlayStation 2/EROM.BIN",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-10000.MEC",
|
||||
"sha1": "3f8affbe07024ccd2f5b8374072d0928c583a862",
|
||||
"sha256": "fbbfc6c156266ac7e9afb37f0cc53fb78fadf2f09f580e56b2da57e6539e463b",
|
||||
"size": 4,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-10000.MEC",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-50009_BIOS_V10_CHN_190.EROM",
|
||||
"sha1": "2ed11fd9333e62e36659565a744330a5902ed5e3",
|
||||
"sha256": "67a6b2779e9320abe24f75ce811acf29e54d6dc06ce65b11341b6d84103de7f8",
|
||||
"size": 3145728,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.EROM",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"sha1": "3ffa2e74c8c8ce0e10e2069956f12d2407b91c65",
|
||||
"sha256": "5b255bce650e66efeeb3b0bebc0dff705600d05aa2e076a315d02c6a7ed6ac9a",
|
||||
"dest": "SCPH30004R.nvm",
|
||||
"sha1": "1d3caaed7411425c16aee8c35db47b928e31f60b",
|
||||
"sha256": "c598dea13e5bba2fcae69de5b051c15fcd5b25842978be1bb20a86cfff243eaf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"sha1": "b284280341f16b1581c28ff81934bfdf403da1f0",
|
||||
"sha256": "ad812eb36b8e7daa6106411e43840f70175f012a7a7dd289965872fe43933cc4",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"sha1": "7aef1dd6de4b4f64f31daad615bbccdb3e62e79c",
|
||||
"sha256": "8dc012640186c46a39fcdd64a8ab9430080a220bd0630da58c977f35725de5cf",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-70004.EROM",
|
||||
"sha1": "ec0121bb8e2a209044309780d2efc2559c9a0ef1",
|
||||
"sha256": "e5bcd5925c1f22de48d49c3895dd421d167faddc033aac628f5facfba90ceef3",
|
||||
"size": 3145728,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70004.EROM",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-70004.ROM1",
|
||||
"sha1": "cc44355ded232a2ba5309bb24d4cd55af08696b2",
|
||||
"sha256": "b86fbccaa111ca7497630337dafea7da7320fc4f924ada22b92145ef806e7b42",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70004.ROM1",
|
||||
"repo_path": "bios/Sony/PlayStation 2/.variants/SCPH30004R.nvm.5e0200d0",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
@@ -31827,16 +31797,6 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"sha1": "6611151e8f599230cdf19a17318e7e5ddc781961",
|
||||
"sha256": "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-75008_BIOS_V14_RUS_220.NVM",
|
||||
"sha1": "fff13c6e30c55df9d6241ee08e5d0026c6a5d618",
|
||||
@@ -31857,16 +31817,6 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-90006_BIOS_VX_HK _230.EROM",
|
||||
"sha1": "6b357e8624095770952fc408cdc6647fa62e0d28",
|
||||
"sha256": "8801922f614b365d9d37557d7a375d06d385e936804943cb2c52abff55a3d254",
|
||||
"size": 3145728,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.EROM",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SCPH-90006_BIOS_VX_HK _230.NVM",
|
||||
"sha1": "465c2738c280eb1864f679c80b55e468bf670057",
|
||||
@@ -31887,66 +31837,6 @@
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "cheats_ni.zip",
|
||||
"sha1": "dec5e4f137890c338babe13cfb9d41ff869fa721",
|
||||
"sha256": "91d5ae704ff8b6d90165a65f69e9e2be8a9ab9c588c525dc1c9c4ecbbdef1ffd",
|
||||
"size": 42525,
|
||||
"repo_path": "bios/Sony/PlayStation 2/cheats_ni.zip",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "cheats_ws.zip",
|
||||
"sha1": "773b4279d8c8e182dc57e444dbf448a1d115e7e0",
|
||||
"sha256": "d07e3adde4da6a3220363b12d7b066168918225546122643ef7d19fece53b8b1",
|
||||
"size": 1273296,
|
||||
"repo_path": "bios/Sony/PlayStation 2/cheats_ws.zip",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "eeprom.dat",
|
||||
"sha1": "ffc6261e487efa8c7442069f71acfc4aa826993d",
|
||||
"sha256": "8667e718294e9e0df1d30600ba3eeb201f764aad2dad72748643e4a285e1d1f7",
|
||||
"size": 64,
|
||||
"repo_path": "bios/Sony/PlayStation 2/eeprom.dat",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ps2-0230a-20080220.nvm",
|
||||
"sha1": "258ad0f26b0b269462bbd9acbb5506d5dfbcc3d5",
|
||||
"sha256": "e017efa804f1f7d4d3da82b67d7370c5be062b4860f1cff4f898f93437d691a0",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ps2-0230a-20080220.nvm",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "message.wav",
|
||||
"sha1": "c54f04b63ac6f04e0a0944ef260b5497e4494dbd",
|
||||
"sha256": "dfd8035387a463722ad07af3c91934e0a685f2afa57e31d305f0602656d1edb1",
|
||||
"size": 15696,
|
||||
"repo_path": "bios/Sony/PlayStation 2/resources/sounds/achievements/message.wav",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "rom1.bin",
|
||||
"sha1": "47d2ec4b342649e4c391043ab915d4435f9d180d",
|
||||
"sha256": "41de2047af8382988bfd568035ff26eec5f1cabc3efe773680546aa00a82857d",
|
||||
"size": 199680,
|
||||
"repo_path": "bios/Sony/PlayStation 2/rom1.bin",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "scph30004fr.nvm",
|
||||
"sha1": "92ce9e739dcbfa0d6afb442620b71919d26bf283",
|
||||
@@ -31966,6 +31856,16 @@
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "eeprom.dat",
|
||||
"sha1": "ffc6261e487efa8c7442069f71acfc4aa826993d",
|
||||
"sha256": "8667e718294e9e0df1d30600ba3eeb201f764aad2dad72748643e4a285e1d1f7",
|
||||
"size": 64,
|
||||
"repo_path": "bios/Sony/PlayStation 2/eeprom.dat",
|
||||
"cores": [
|
||||
"pcsx2"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+251
-212
@@ -5,7 +5,7 @@
|
||||
"platform": "retroarch",
|
||||
"display_name": "RetroArch",
|
||||
"version": "1.0",
|
||||
"generated": "2026-10-05T22:37:20Z",
|
||||
"generated": "2026-10-06T06:50:25Z",
|
||||
"base_destination": "system",
|
||||
"detect": [
|
||||
{
|
||||
@@ -255,153 +255,12 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"total_files": 5849,
|
||||
"total_size": 6395485306,
|
||||
"pack_files": 8492,
|
||||
"pack_size": 6436018470,
|
||||
"total_omitted": 14,
|
||||
"omitted_files": [
|
||||
{
|
||||
"dest": "SC-55/WAVEROM3.BIN",
|
||||
"name": "WAVEROM3.BIN",
|
||||
"system": "dos",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SufamiTurbo.sfc",
|
||||
"name": "SufamiTurbo.sfc",
|
||||
"system": "nintendo-sufami-turbo",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"name": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"system": "nec-pc-engine-cd",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"name": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"system": "nec-pc-engine-cd",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1.rom",
|
||||
"name": "dsp1.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1b.rom",
|
||||
"name": "dsp1b.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp2.rom",
|
||||
"name": "dsp2.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp3.rom",
|
||||
"name": "dsp3.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp4.rom",
|
||||
"name": "dsp4.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot.rom",
|
||||
"name": "jagboot.rom",
|
||||
"system": "atari-jaguar",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot_m.rom",
|
||||
"name": "jagboot_m.rom",
|
||||
"system": "atari-jaguar",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st010.rom",
|
||||
"name": "st010.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st011.rom",
|
||||
"name": "st011.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st018.rom",
|
||||
"name": "st018.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_files": 5867,
|
||||
"total_size": 6399839286,
|
||||
"pack_files": 8510,
|
||||
"pack_size": 6440372450,
|
||||
"total_omitted": 0,
|
||||
"omitted_files": [],
|
||||
"files": [
|
||||
{
|
||||
"dest": "3do_arcade_saot.bin",
|
||||
@@ -1341,10 +1200,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "galaksija/ROM2.BIN",
|
||||
"sha1": "1bae895fbdd658cfb56c53cc2139282cc1e778de",
|
||||
"sha256": "9fc01e6beab84e61e0267fa39e23c649cdf2ccd25ad1cbfc2de0facfd160e723",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ROM2.BIN",
|
||||
"sha1": "5d5ab4313a2d0effe7572bb129193b64cab002c1",
|
||||
"sha256": "7d93fe474fcc98c06a6d96e533f8935e4e707edf0792d3e9d679ea68404375de",
|
||||
"size": 4096,
|
||||
"repo_path": "bios/Galaksija/ROM2.BIN",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
@@ -2151,10 +2010,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "dolphin-emu/Sys/GC/dsp_rom.bin",
|
||||
"sha1": "f4f683a49d7eb4155566f793f2c1c27e90159992",
|
||||
"sha256": "7f33e6600722791ccee5fd15d4330af8d8f74165f7d1ded6738684c0294aaffe",
|
||||
"sha1": "3c6cc6e04fdd0b2a392d7a6ed769455444846be7",
|
||||
"sha256": "49d987ee1eab29a157425b82d54516957a81e1bac247c8834e494642605c3e8c",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/GameCube/Sys/GC/dsp_rom.bin",
|
||||
"repo_path": "bios/Nintendo/GameCube/.variants/dsp_rom.bin.3c6cc6e0",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
@@ -4495,10 +4354,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/resources/GameIndex.yaml",
|
||||
"sha1": "40ecf6138c99a0aba775ef93240b295025a45500",
|
||||
"sha256": "483face8f50f5e96d89528059522be3766b44f5e07e854bae1fa92ff0111d0a7",
|
||||
"size": 2665743,
|
||||
"repo_path": "bios/Sony/PlayStation 2/resources/GameIndex.yaml",
|
||||
"sha1": "7efb2ed721cf0c0f0677324e09be311a8337e793",
|
||||
"sha256": "3bf3c54d6f16d88d3669be698179bb8c2fb981ee5ce71bcb952719429a838cc1",
|
||||
"size": 2693579,
|
||||
"repo_path": "bios/Other/yaps2/GameIndex.yaml",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
@@ -6131,10 +5990,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "Cemu/otp.bin",
|
||||
"sha1": "f0332b7252e9c01b30bf5d5a63ceb22dc47968aa",
|
||||
"sha256": "93c2e20cc377f2cb0fa9a2ee58c39be22e00baa94b890545e585e53b3eb4039f",
|
||||
"size": 256,
|
||||
"repo_path": "bios/Nintendo/3DS/Citra/sysdata/otp.bin",
|
||||
"sha1": "aa4ebc7f94c22b04945b6c9232547ada10b71f6f",
|
||||
"sha256": "a12993f7fe069098ab6fe1cdb43099a1dfb568223bef08ed5cb43ec93d9ff2de",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Nintendo/Wii U/otp.bin",
|
||||
"cores": [
|
||||
"cemu"
|
||||
]
|
||||
@@ -6401,6 +6260,16 @@
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/WAVEROM3.BIN",
|
||||
"sha1": "7454b817778179806f3f9d1985b3a2ef67ace76f",
|
||||
"sha256": "334b2d16be3c2362210fdbec1c866ad58badeb0f84fd9bf5d0ac599baf077cc2",
|
||||
"size": 1048576,
|
||||
"repo_path": "bios/Roland/sounddata/Nuked-SC55-Resources/ROMs/SC-55-v1.00/sc55_waverom3.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "CM32LN_CONTROL.ROM",
|
||||
"sha1": "dc1c5b1b90a4646d00f7daf3679733c7badc7077",
|
||||
@@ -25829,6 +25698,96 @@
|
||||
"mesen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1.rom",
|
||||
"sha1": "188d471fefea71eb53f0ee7064697ff0971b1014",
|
||||
"sha256": "91e87d11e1c30d172556bed2211cce2efa94ba595f58c5d264809ef4d363a97b",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp1.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1b.rom",
|
||||
"sha1": "78b724811f5f18d8c67669d9390397eb1a47a5e2",
|
||||
"sha256": "d789cb3c36b05c0b23b6c6f23be7aa37c6e78b6ee9ceac8d2d2aa9d8c4d35fa9",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp1b.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp2.rom",
|
||||
"sha1": "198c4b1c3bfc6d69e734c5957af3dbfa26238dfb",
|
||||
"sha256": "03ef4ef26c9f701346708cb5d07847b5203cf1b0818bf2930acd34510ffdd717",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp2.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp3.rom",
|
||||
"sha1": "558da7cb3bd3876a6ca693661ffc6c110e948cf9",
|
||||
"sha256": "0971b08f396c32e61989d1067dddf8e4b14649d548b2188f7c541b03d7c69e4e",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp3.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp4.rom",
|
||||
"sha1": "af6478aecb6f1b67177e79c82ca04c56250a8c72",
|
||||
"sha256": "752d03b2d74441e430b7f713001fa241f8bbcfc1a0d890ed4143f174dbe031da",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp4.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st010.rom",
|
||||
"sha1": "6472828403de3589433a906e2c3f3d274c0ff008",
|
||||
"sha256": "fa9bced838fedea11c6f6ace33d1878024bdd0d02cc9485899d0bdd4015ec24c",
|
||||
"size": 53248,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st010.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st011.rom",
|
||||
"sha1": "fecbae2cec76c710422486baa186ffa7ca1cf925",
|
||||
"sha256": "8b2b3f3f3e6e29f4d21d8bc736b400bc988b7d2214ebee15643f01c1fee2f364",
|
||||
"size": 53248,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st011.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st018.rom",
|
||||
"sha1": "91383b92745cc7cc4f15409ac5bc2c2f699a43f1",
|
||||
"sha256": "6df209ab5d2524d1839c038be400ae5eb20dafc14a3771a3239cd9e8acd53806",
|
||||
"size": 163840,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st018.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SufamiTurbo.sfc",
|
||||
"sha1": "ef86ea192eed03d5c413fdbbfd46043be1d7a127",
|
||||
"sha256": "edacb453da14f825f05d1134d6035f4bf034e55f7cfb97c70c4ee107eabc7342",
|
||||
"size": 262144,
|
||||
"repo_path": "bios/Nintendo/SuFami Turbo/STBIOS.bin",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ymf288_adpcm_rom.bin",
|
||||
"sha1": "50b6c3e288eaa12ad275d4f323267bb72b0445df",
|
||||
@@ -25859,6 +25818,26 @@
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"sha1": "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c",
|
||||
"sha256": "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce",
|
||||
"size": 262144,
|
||||
"repo_path": "bios/NEC/PC Engine/syscard3.pce",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"sha1": "014881a959e045e00f4db8f52955200865d40280",
|
||||
"sha256": "4b86bb96a48a4ca8375fc0109631d0b1d64f255a03b01de70594d40788ba6c3d",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/NEC/PC Engine/gecard.pce",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "Satellaview/BSX0120-0.bin",
|
||||
"sha1": "f51c52bb26f2546fb167ab1084a56457475ff0a0",
|
||||
@@ -55645,6 +55624,26 @@
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot.rom",
|
||||
"sha1": "af643900fea84234e08b616a6d27f03f0a61db96",
|
||||
"sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9",
|
||||
"size": 131072,
|
||||
"repo_path": "bios/Atari/Jaguar/boot.rom",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot_m.rom",
|
||||
"sha1": "af643900fea84234e08b616a6d27f03f0a61db96",
|
||||
"sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9",
|
||||
"size": 131072,
|
||||
"repo_path": "bios/Atari/Jaguar/boot.rom",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "WQXEmu/nc1020/obj_lu.bin",
|
||||
"sha1": "64b8a315ecbc420ae594ccced43498392988669e",
|
||||
@@ -56729,20 +56728,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/ROM1.BIN",
|
||||
"sha1": "aea7a4c0c7ffe1f212f7b9faecfd728862ac6904",
|
||||
"sha256": "d7f03bf65c1f98c9c1226f4e1d1ecd4ac778a2dc4a332568ab0d5fee7ede9042",
|
||||
"size": 4096,
|
||||
"repo_path": "bios/Galaksija/ROM1.BIN",
|
||||
"sha1": "b91bb1d9dccffe831b7cfde7800a3fe32b2fbda6",
|
||||
"sha256": "8a1eb33c7599b746c0c50283e4349a1bb1773b5c0ec0e9661219bf6c067d2042",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/Roland/soundcanvas-roms/SC-55mk2-v1.01/rom1.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/ROM2.BIN",
|
||||
"sha1": "1bae895fbdd658cfb56c53cc2139282cc1e778de",
|
||||
"sha256": "9fc01e6beab84e61e0267fa39e23c649cdf2ccd25ad1cbfc2de0facfd160e723",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ROM2.BIN",
|
||||
"sha1": "078cb5feea05e80bb9a1bb857a2163ee434fd053",
|
||||
"sha256": "a4c9fd821059054c7e7681d61f49ce6f42ed2fe407a7ec1ba0dfdc9722582ce0",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Roland/sounddata/Nuked-SC55-Resources/ROMs/SC-55mk2-v1.01/rom2.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
@@ -56809,10 +56808,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "np2/bios.rom",
|
||||
"sha1": "1f5f7013f18c08ff50d7942e76c4fbd782412414",
|
||||
"sha256": "863df0975a305110a7da4591b704e8f5dc7302f03c63603aa2dcd03e84c36ff9",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/IBM/PC/ibmpcjr/bios.rom",
|
||||
"sha1": "76a7360502fa0296ea93b4c537174610a834d367",
|
||||
"sha256": "d0f5b6d96a01295ab5436d7852d2c9eea1faa87fcf016b7e6599cdd689266cd2",
|
||||
"size": 98304,
|
||||
"repo_path": "bios/NEC/PC-98/bios.rom",
|
||||
"cores": [
|
||||
"nekop2"
|
||||
]
|
||||
@@ -56839,20 +56838,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "scummvm/extra/MT32_CONTROL.ROM",
|
||||
"sha1": "a439fbb390da38cada95a7cbb1d6ca199cd66ef8",
|
||||
"sha256": "08d68695e5bff6bbcbb751d6e4453db9f5ead0b5f41e86480798a04376dfe090",
|
||||
"sha1": "b083518fffb7f66b03c23b7eb4f868e62dc5a987",
|
||||
"sha256": "a73a06c23ed38370e58a11fb1b86f7ea4c547061a60d7aa62bae446235fd2dff",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/cm32l_control.rom",
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/mt32_control.rom",
|
||||
"cores": [
|
||||
"scummvm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "scummvm/extra/MT32_PCM.ROM",
|
||||
"sha1": "289cc298ad532b702461bfc738009d9ebe8025ea",
|
||||
"sha256": "0dc50190bb7ea3fb212c970346b771a511772b528801e7eda6d27efda8c40698",
|
||||
"size": 1048576,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_cm32l.rom",
|
||||
"sha1": "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252",
|
||||
"sha256": "d9164063f293410cf33f2f64cdcea6893b44723fe41938e07ec9aef58b406238",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_mt32.rom",
|
||||
"cores": [
|
||||
"scummvm"
|
||||
]
|
||||
@@ -57489,6 +57488,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-10000.MEC",
|
||||
"sha1": "3f8affbe07024ccd2f5b8374072d0928c583a862",
|
||||
"sha256": "fbbfc6c156266ac7e9afb37f0cc53fb78fadf2f09f580e56b2da57e6539e463b",
|
||||
"size": 4,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-10000.MEC",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-30004R.bin",
|
||||
"sha1": "8fa040852d4b8688f0c84bcfffc65eb208f2b432",
|
||||
@@ -57519,6 +57528,36 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"sha1": "3ffa2e74c8c8ce0e10e2069956f12d2407b91c65",
|
||||
"sha256": "5b255bce650e66efeeb3b0bebc0dff705600d05aa2e076a315d02c6a7ed6ac9a",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"sha1": "7aef1dd6de4b4f64f31daad615bbccdb3e62e79c",
|
||||
"sha256": "8dc012640186c46a39fcdd64a8ab9430080a220bd0630da58c977f35725de5cf",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"sha1": "b284280341f16b1581c28ff81934bfdf403da1f0",
|
||||
"sha256": "ad812eb36b8e7daa6106411e43840f70175f012a7a7dd289965872fe43933cc4",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70004.BIN",
|
||||
"sha1": "434bc0b4eb4827da0773ec0795aadc5162569a07",
|
||||
@@ -57529,6 +57568,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70004.ROM1",
|
||||
"sha1": "cc44355ded232a2ba5309bb24d4cd55af08696b2",
|
||||
"sha256": "b86fbccaa111ca7497630337dafea7da7320fc4f924ada22b92145ef806e7b42",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70004.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.BIN",
|
||||
"sha1": "cce6fac0f7e682ad167e1e828b2d53192c3d5051",
|
||||
@@ -57539,6 +57588,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"sha1": "6611151e8f599230cdf19a17318e7e5ddc781961",
|
||||
"sha256": "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/ps2-0160h-20030602.bin",
|
||||
"sha1": "f03bc2b7e7722d1788c9e7a341e43ac3ffe33a47",
|
||||
@@ -57789,16 +57848,6 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"sha1": "3ffa2e74c8c8ce0e10e2069956f12d2407b91c65",
|
||||
"sha256": "5b255bce650e66efeeb3b0bebc0dff705600d05aa2e076a315d02c6a7ed6ac9a",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70006_BIOS_V12_HK_200.NVM",
|
||||
"sha1": "06ccc54cdbe8b017a629155ccb66310cba9c4720",
|
||||
@@ -57809,16 +57858,6 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"sha1": "6611151e8f599230cdf19a17318e7e5ddc781961",
|
||||
"sha256": "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-75008_BIOS_V14_RUS_220.NVM",
|
||||
"sha1": "fff13c6e30c55df9d6241ee08e5d0026c6a5d618",
|
||||
@@ -57849,6 +57888,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-90006_BIOS_VX_HK _230.ROM1",
|
||||
"sha1": "b96cf94772f01b8434038285896467884a84b0c2",
|
||||
"sha256": "1b7c68be427e6f571596ef6b444e8b86d1b4e2a226d62f6bfc86717a798f2317",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/ps2-0230a-20080220.nvm",
|
||||
"sha1": "258ad0f26b0b269462bbd9acbb5506d5dfbcc3d5",
|
||||
@@ -57878,16 +57927,6 @@
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-10000.MEC",
|
||||
"sha1": "3f8affbe07024ccd2f5b8374072d0928c583a862",
|
||||
"sha256": "fbbfc6c156266ac7e9afb37f0cc53fb78fadf2f09f580e56b2da57e6539e463b",
|
||||
"size": 4,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-10000.MEC",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+1614
-404
File diff suppressed because it is too large.
Load diff
+1677
-417
File diff suppressed because it is too large.
Load diff
+364
-434
File diff suppressed because it is too large.
Load diff
+248
-209
@@ -5,7 +5,7 @@
|
||||
"platform": "rocknix",
|
||||
"display_name": "ROCKNIX",
|
||||
"version": "1.0",
|
||||
"generated": "2026-10-05T22:37:20Z",
|
||||
"generated": "2026-10-06T06:50:25Z",
|
||||
"base_destination": "bios",
|
||||
"detect": [
|
||||
{
|
||||
@@ -17,153 +17,12 @@
|
||||
}
|
||||
],
|
||||
"standalone_copies": [],
|
||||
"total_files": 5786,
|
||||
"total_size": 6566365388,
|
||||
"pack_files": 5788,
|
||||
"pack_size": 6566365388,
|
||||
"total_omitted": 14,
|
||||
"omitted_files": [
|
||||
{
|
||||
"dest": "SC-55/WAVEROM3.BIN",
|
||||
"name": "WAVEROM3.BIN",
|
||||
"system": "dos",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SufamiTurbo.sfc",
|
||||
"name": "SufamiTurbo.sfc",
|
||||
"system": "nintendo-sufami-turbo",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"name": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"system": "nec-pc-engine-cd",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"name": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"system": "nec-pc-engine-cd",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1.rom",
|
||||
"name": "dsp1.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1b.rom",
|
||||
"name": "dsp1b.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp2.rom",
|
||||
"name": "dsp2.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp3.rom",
|
||||
"name": "dsp3.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp4.rom",
|
||||
"name": "dsp4.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot.rom",
|
||||
"name": "jagboot.rom",
|
||||
"system": "atari-jaguar",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot_m.rom",
|
||||
"name": "jagboot_m.rom",
|
||||
"system": "atari-jaguar",
|
||||
"required": false,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st010.rom",
|
||||
"name": "st010.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st011.rom",
|
||||
"name": "st011.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st018.rom",
|
||||
"name": "st018.rom",
|
||||
"system": "nintendo-snes",
|
||||
"required": true,
|
||||
"reason": "not_found",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_files": 5804,
|
||||
"total_size": 6570724300,
|
||||
"pack_files": 5806,
|
||||
"pack_size": 6570724300,
|
||||
"total_omitted": 0,
|
||||
"omitted_files": [],
|
||||
"files": [
|
||||
{
|
||||
"dest": "xemu/bios/mcpx_1.0.bin",
|
||||
@@ -2555,10 +2414,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "Cemu/otp.bin",
|
||||
"sha1": "f0332b7252e9c01b30bf5d5a63ceb22dc47968aa",
|
||||
"sha256": "93c2e20cc377f2cb0fa9a2ee58c39be22e00baa94b890545e585e53b3eb4039f",
|
||||
"size": 256,
|
||||
"repo_path": "bios/Nintendo/3DS/Citra/sysdata/otp.bin",
|
||||
"sha1": "aa4ebc7f94c22b04945b6c9232547ada10b71f6f",
|
||||
"sha256": "a12993f7fe069098ab6fe1cdb43099a1dfb568223bef08ed5cb43ec93d9ff2de",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Nintendo/Wii U/otp.bin",
|
||||
"cores": [
|
||||
"cemu"
|
||||
]
|
||||
@@ -2877,20 +2736,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/ROM1.BIN",
|
||||
"sha1": "aea7a4c0c7ffe1f212f7b9faecfd728862ac6904",
|
||||
"sha256": "d7f03bf65c1f98c9c1226f4e1d1ecd4ac778a2dc4a332568ab0d5fee7ede9042",
|
||||
"size": 4096,
|
||||
"repo_path": "bios/Galaksija/ROM1.BIN",
|
||||
"sha1": "b91bb1d9dccffe831b7cfde7800a3fe32b2fbda6",
|
||||
"sha256": "8a1eb33c7599b746c0c50283e4349a1bb1773b5c0ec0e9661219bf6c067d2042",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/Roland/soundcanvas-roms/SC-55mk2-v1.01/rom1.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/ROM2.BIN",
|
||||
"sha1": "1bae895fbdd658cfb56c53cc2139282cc1e778de",
|
||||
"sha256": "9fc01e6beab84e61e0267fa39e23c649cdf2ccd25ad1cbfc2de0facfd160e723",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ROM2.BIN",
|
||||
"sha1": "078cb5feea05e80bb9a1bb857a2163ee434fd053",
|
||||
"sha256": "a4c9fd821059054c7e7681d61f49ce6f42ed2fe407a7ec1ba0dfdc9722582ce0",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Roland/sounddata/Nuked-SC55-Resources/ROMs/SC-55mk2-v1.01/rom2.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
@@ -2925,6 +2784,16 @@
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SC-55/WAVEROM3.BIN",
|
||||
"sha1": "7454b817778179806f3f9d1985b3a2ef67ace76f",
|
||||
"sha256": "334b2d16be3c2362210fdbec1c866ad58badeb0f84fd9bf5d0ac599baf077cc2",
|
||||
"size": 1048576,
|
||||
"repo_path": "bios/Roland/sounddata/Nuked-SC55-Resources/ROMs/SC-55-v1.00/sc55_waverom3.bin",
|
||||
"cores": [
|
||||
"dosbox"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "libbass.so",
|
||||
"sha1": "415365e930b4c7d33e9af3225bea230e15bdebe7",
|
||||
@@ -16743,10 +16612,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "galaksija/ROM2.BIN",
|
||||
"sha1": "1bae895fbdd658cfb56c53cc2139282cc1e778de",
|
||||
"sha256": "9fc01e6beab84e61e0267fa39e23c649cdf2ccd25ad1cbfc2de0facfd160e723",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Sony/PlayStation 2/ROM2.BIN",
|
||||
"sha1": "5d5ab4313a2d0effe7572bb129193b64cab002c1",
|
||||
"sha256": "7d93fe474fcc98c06a6d96e533f8935e4e707edf0792d3e9d679ea68404375de",
|
||||
"size": 4096,
|
||||
"repo_path": "bios/Galaksija/ROM2.BIN",
|
||||
"cores": [
|
||||
"galaksija"
|
||||
]
|
||||
@@ -23473,6 +23342,96 @@
|
||||
"mesen-s"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1.rom",
|
||||
"sha1": "188d471fefea71eb53f0ee7064697ff0971b1014",
|
||||
"sha256": "91e87d11e1c30d172556bed2211cce2efa94ba595f58c5d264809ef4d363a97b",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp1.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp1b.rom",
|
||||
"sha1": "78b724811f5f18d8c67669d9390397eb1a47a5e2",
|
||||
"sha256": "d789cb3c36b05c0b23b6c6f23be7aa37c6e78b6ee9ceac8d2d2aa9d8c4d35fa9",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp1b.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp2.rom",
|
||||
"sha1": "198c4b1c3bfc6d69e734c5957af3dbfa26238dfb",
|
||||
"sha256": "03ef4ef26c9f701346708cb5d07847b5203cf1b0818bf2930acd34510ffdd717",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp2.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp3.rom",
|
||||
"sha1": "558da7cb3bd3876a6ca693661ffc6c110e948cf9",
|
||||
"sha256": "0971b08f396c32e61989d1067dddf8e4b14649d548b2188f7c541b03d7c69e4e",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp3.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "dsp4.rom",
|
||||
"sha1": "af6478aecb6f1b67177e79c82ca04c56250a8c72",
|
||||
"sha256": "752d03b2d74441e430b7f713001fa241f8bbcfc1a0d890ed4143f174dbe031da",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_dsp4.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st010.rom",
|
||||
"sha1": "6472828403de3589433a906e2c3f3d274c0ff008",
|
||||
"sha256": "fa9bced838fedea11c6f6ace33d1878024bdd0d02cc9485899d0bdd4015ec24c",
|
||||
"size": 53248,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st010.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st011.rom",
|
||||
"sha1": "fecbae2cec76c710422486baa186ffa7ca1cf925",
|
||||
"sha256": "8b2b3f3f3e6e29f4d21d8bc736b400bc988b7d2214ebee15643f01c1fee2f364",
|
||||
"size": 53248,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st011.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "st018.rom",
|
||||
"sha1": "91383b92745cc7cc4f15409ac5bc2c2f699a43f1",
|
||||
"sha256": "6df209ab5d2524d1839c038be400ae5eb20dafc14a3771a3239cd9e8acd53806",
|
||||
"size": 163840,
|
||||
"repo_path": "bios/Nintendo/SNES/SNES_st018.rom",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "SufamiTurbo.sfc",
|
||||
"sha1": "ef86ea192eed03d5c413fdbbfd46043be1d7a127",
|
||||
"sha256": "edacb453da14f825f05d1134d6035f4bf034e55f7cfb97c70c4ee107eabc7342",
|
||||
"size": 262144,
|
||||
"repo_path": "bios/Nintendo/SuFami Turbo/STBIOS.bin",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "ymf288_adpcm_rom.bin",
|
||||
"sha1": "50b6c3e288eaa12ad275d4f323267bb72b0445df",
|
||||
@@ -23503,6 +23462,26 @@
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Super CD-ROM System (Japan) (v3.0).pce",
|
||||
"sha1": "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c",
|
||||
"sha256": "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce",
|
||||
"size": 262144,
|
||||
"repo_path": "bios/NEC/PC Engine/syscard3.pce",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "[BIOS] Games Express CD Card (Japan).pce",
|
||||
"sha1": "014881a959e045e00f4db8f52955200865d40280",
|
||||
"sha256": "4b86bb96a48a4ca8375fc0109631d0b1d64f255a03b01de70594d40788ba6c3d",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/NEC/PC Engine/gecard.pce",
|
||||
"cores": [
|
||||
"mesence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "bios.col",
|
||||
"sha1": "45bedc4cbdeac66c7df59e9e599195c778d86a92",
|
||||
@@ -44675,10 +44654,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "np2/bios.rom",
|
||||
"sha1": "1f5f7013f18c08ff50d7942e76c4fbd782412414",
|
||||
"sha256": "863df0975a305110a7da4591b704e8f5dc7302f03c63603aa2dcd03e84c36ff9",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/IBM/PC/ibmpcjr/bios.rom",
|
||||
"sha1": "76a7360502fa0296ea93b4c537174610a834d367",
|
||||
"sha256": "d0f5b6d96a01295ab5436d7852d2c9eea1faa87fcf016b7e6599cdd689266cd2",
|
||||
"size": 98304,
|
||||
"repo_path": "bios/NEC/PC-98/bios.rom",
|
||||
"cores": [
|
||||
"nekop2"
|
||||
]
|
||||
@@ -45625,10 +45604,10 @@
|
||||
},
|
||||
{
|
||||
"dest": "np2kai/bios.rom",
|
||||
"sha1": "1f5f7013f18c08ff50d7942e76c4fbd782412414",
|
||||
"sha256": "863df0975a305110a7da4591b704e8f5dc7302f03c63603aa2dcd03e84c36ff9",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/IBM/PC/ibmpcjr/bios.rom",
|
||||
"sha1": "76a7360502fa0296ea93b4c537174610a834d367",
|
||||
"sha256": "d0f5b6d96a01295ab5436d7852d2c9eea1faa87fcf016b7e6599cdd689266cd2",
|
||||
"size": 98304,
|
||||
"repo_path": "bios/NEC/PC-98/bios.rom",
|
||||
"cores": [
|
||||
"np2kai"
|
||||
]
|
||||
@@ -52261,20 +52240,20 @@
|
||||
},
|
||||
{
|
||||
"dest": "scummvm/extra/MT32_CONTROL.ROM",
|
||||
"sha1": "a439fbb390da38cada95a7cbb1d6ca199cd66ef8",
|
||||
"sha256": "08d68695e5bff6bbcbb751d6e4453db9f5ead0b5f41e86480798a04376dfe090",
|
||||
"sha1": "b083518fffb7f66b03c23b7eb4f868e62dc5a987",
|
||||
"sha256": "a73a06c23ed38370e58a11fb1b86f7ea4c547061a60d7aa62bae446235fd2dff",
|
||||
"size": 65536,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/cm32l_control.rom",
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/mt32_control.rom",
|
||||
"cores": [
|
||||
"scummvm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "scummvm/extra/MT32_PCM.ROM",
|
||||
"sha1": "289cc298ad532b702461bfc738009d9ebe8025ea",
|
||||
"sha256": "0dc50190bb7ea3fb212c970346b771a511772b528801e7eda6d27efda8c40698",
|
||||
"size": 1048576,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_cm32l.rom",
|
||||
"sha1": "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252",
|
||||
"sha256": "d9164063f293410cf33f2f64cdcea6893b44723fe41938e07ec9aef58b406238",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_mt32.rom",
|
||||
"cores": [
|
||||
"scummvm"
|
||||
]
|
||||
@@ -54939,6 +54918,26 @@
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot.rom",
|
||||
"sha1": "af643900fea84234e08b616a6d27f03f0a61db96",
|
||||
"sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9",
|
||||
"size": 131072,
|
||||
"repo_path": "bios/Atari/Jaguar/boot.rom",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "jagboot_m.rom",
|
||||
"sha1": "af643900fea84234e08b616a6d27f03f0a61db96",
|
||||
"sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9",
|
||||
"size": 131072,
|
||||
"repo_path": "bios/Atari/Jaguar/boot.rom",
|
||||
"cores": [
|
||||
"virtualjaguar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "WQXEmu/nc1020/obj_lu.bin",
|
||||
"sha1": "64b8a315ecbc420ae594ccced43498392988669e",
|
||||
@@ -56903,6 +56902,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-10000.MEC",
|
||||
"sha1": "3f8affbe07024ccd2f5b8374072d0928c583a862",
|
||||
"sha256": "fbbfc6c156266ac7e9afb37f0cc53fb78fadf2f09f580e56b2da57e6539e463b",
|
||||
"size": 4,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-10000.MEC",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-30004R.bin",
|
||||
"sha1": "8fa040852d4b8688f0c84bcfffc65eb208f2b432",
|
||||
@@ -56933,6 +56942,36 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"sha1": "3ffa2e74c8c8ce0e10e2069956f12d2407b91c65",
|
||||
"sha256": "5b255bce650e66efeeb3b0bebc0dff705600d05aa2e076a315d02c6a7ed6ac9a",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"sha1": "7aef1dd6de4b4f64f31daad615bbccdb3e62e79c",
|
||||
"sha256": "8dc012640186c46a39fcdd64a8ab9430080a220bd0630da58c977f35725de5cf",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM2",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"sha1": "b284280341f16b1581c28ff81934bfdf403da1f0",
|
||||
"sha256": "ad812eb36b8e7daa6106411e43840f70175f012a7a7dd289965872fe43933cc4",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70004.BIN",
|
||||
"sha1": "434bc0b4eb4827da0773ec0795aadc5162569a07",
|
||||
@@ -56943,6 +56982,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70004.ROM1",
|
||||
"sha1": "cc44355ded232a2ba5309bb24d4cd55af08696b2",
|
||||
"sha256": "b86fbccaa111ca7497630337dafea7da7320fc4f924ada22b92145ef806e7b42",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70004.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.BIN",
|
||||
"sha1": "cce6fac0f7e682ad167e1e828b2d53192c3d5051",
|
||||
@@ -56953,6 +57002,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"sha1": "6611151e8f599230cdf19a17318e7e5ddc781961",
|
||||
"sha256": "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/ps2-0100jd-20000117.bin",
|
||||
"sha1": "5b33170323ed6344e2363fed8115dc3918bb96a4",
|
||||
@@ -57893,16 +57952,6 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"sha1": "3ffa2e74c8c8ce0e10e2069956f12d2407b91c65",
|
||||
"sha256": "5b255bce650e66efeeb3b0bebc0dff705600d05aa2e076a315d02c6a7ed6ac9a",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-50009_BIOS_V10_CHN_190.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70006_BIOS_V12_HK_200.NVM",
|
||||
"sha1": "06ccc54cdbe8b017a629155ccb66310cba9c4720",
|
||||
@@ -57913,16 +57962,6 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"sha1": "6611151e8f599230cdf19a17318e7e5ddc781961",
|
||||
"sha256": "b1704c7da37f03db017ad7576508c61b250d9ed4f3ceda8732ea91a3034f6cbf",
|
||||
"size": 1024,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-70008_BIOS_V12_RUS_200.NVM",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-75008_BIOS_V14_RUS_220.NVM",
|
||||
"sha1": "fff13c6e30c55df9d6241ee08e5d0026c6a5d618",
|
||||
@@ -57953,6 +57992,16 @@
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-90006_BIOS_VX_HK _230.ROM1",
|
||||
"sha1": "b96cf94772f01b8434038285896467884a84b0c2",
|
||||
"sha256": "1b7c68be427e6f571596ef6b444e8b86d1b4e2a226d62f6bfc86717a798f2317",
|
||||
"size": 524288,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-90006_BIOS_VX_HK _230.ROM1",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/ps2-0230a-20080220.nvm",
|
||||
"sha1": "258ad0f26b0b269462bbd9acbb5506d5dfbcc3d5",
|
||||
@@ -57982,16 +58031,6 @@
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "pcsx2/bios/SCPH-10000.MEC",
|
||||
"sha1": "3f8affbe07024ccd2f5b8374072d0928c583a862",
|
||||
"sha256": "fbbfc6c156266ac7e9afb37f0cc53fb78fadf2f09f580e56b2da57e6539e463b",
|
||||
"size": 4,
|
||||
"repo_path": "bios/Sony/PlayStation 2/SCPH-10000.MEC",
|
||||
"cores": [
|
||||
"yaps2"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+1328
-18
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -65,6 +65,16 @@ data_directories:
|
||||
local_cache: data/pcsx2-resources
|
||||
description: "PCSX2 resources (GameIndex.yaml, RedumpDatabase.yaml, fonts, shaders, icons, sounds)"
|
||||
|
||||
# ref: pcsx2-libretro/Main.cpp:157-158 (yaps2) - system/pcsx2/resources/
|
||||
# yaps2's own bin/resources at the revision its profile is pinned to.
|
||||
yaps2-resources:
|
||||
source_url: "https://github.com/yaps2/yaps2/archive/{version}.tar.gz"
|
||||
source_type: tarball
|
||||
source_path: "yaps2-{version}/bin/resources"
|
||||
version: 57ea93c0ce8306063b31fe6658dab6b492bbedfe
|
||||
local_cache: data/yaps2-resources
|
||||
description: "yaps2 resources (GameIndex.yaml, RedumpDatabase.yaml, fonts, shaders, icons, sounds)"
|
||||
|
||||
# ref: src/Cafe/GameProfile/GameProfile.cpp:181-195 — Cemu/gameProfiles/default/
|
||||
cemu-gameprofiles:
|
||||
source_url: "https://github.com/cemu-project/Cemu/archive/{version}.tar.gz"
|
||||
|
||||
@@ -148,6 +148,7 @@ platforms:
|
||||
retroarch:
|
||||
config: retroarch.yml
|
||||
status: active
|
||||
extract_to: system/
|
||||
logo: https://raw.githubusercontent.com/libretro/RetroArch/master/media/retroarch-vector_invader-only.svg
|
||||
scraper: libretro
|
||||
source_url: https://raw.githubusercontent.com/libretro/libretro-database/master/dat/System.dat
|
||||
@@ -182,6 +183,7 @@ platforms:
|
||||
batocera:
|
||||
config: batocera.yml
|
||||
status: active
|
||||
extract_to: /userdata/bios/
|
||||
logo: https://raw.githubusercontent.com/batocera-linux/batocera-emulationstation/master/resources/splash_batocera.svg
|
||||
scraper: batocera
|
||||
source_url: https://raw.githubusercontent.com/batocera-linux/batocera.linux/master/package/batocera/core/batocera-scripts/scripts/batocera-systems
|
||||
@@ -407,6 +409,7 @@ platforms:
|
||||
recalbox:
|
||||
config: recalbox.yml
|
||||
status: active
|
||||
extract_to: /recalbox/share/bios/
|
||||
logo: https://raw.githubusercontent.com/homarr-labs/dashboard-icons/main/svg/recalbox.svg
|
||||
scraper: recalbox
|
||||
source_url: https://gitlab.com/recalbox/recalbox/-/raw/master/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml
|
||||
@@ -620,11 +623,14 @@ platforms:
|
||||
retrobat:
|
||||
config: retrobat.yml
|
||||
status: active
|
||||
extract_to: bios/
|
||||
logo: https://raw.githubusercontent.com/RetroBat-Official/retrobat/main/system/resources/retrobat_logo_notext.png
|
||||
scraper: retrobat
|
||||
source_url: https://raw.githubusercontent.com/RetroBat-Official/emulatorlauncher/master/batocera-systems/Resources/batocera-systems.json
|
||||
source_format: json
|
||||
hash_type: md5
|
||||
# Windows: names differing only by case land on one file.
|
||||
case_insensitive_fs: true
|
||||
schedule: weekly
|
||||
cores:
|
||||
- '81'
|
||||
@@ -806,12 +812,15 @@ platforms:
|
||||
emudeck:
|
||||
config: emudeck.yml
|
||||
status: active
|
||||
extract_to: ~/Emulation/bios/
|
||||
logo: https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/icons/EmuDeck.png
|
||||
scraper: emudeck
|
||||
source_url: https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/functions/checkBIOS.sh
|
||||
source_wiki: https://raw.githubusercontent.com/EmuDeck/emudeck.github.io/main/docs/tables/
|
||||
source_format: bash_script+csv
|
||||
hash_type: md5
|
||||
# Windows: names differing only by case land on one file.
|
||||
case_insensitive_fs: true
|
||||
schedule: weekly
|
||||
target_scraper: emudeck_targets
|
||||
target_source: https://github.com/dragoonDorise/EmuDeck
|
||||
@@ -834,6 +843,7 @@ platforms:
|
||||
lakka:
|
||||
config: lakka.yml
|
||||
status: active
|
||||
extract_to: /storage/system/
|
||||
logo: https://raw.githubusercontent.com/libretro/retroarch-assets/master/src/xmb/flatui/lakka.svg
|
||||
scraper: libretro
|
||||
inherits_from: retroarch
|
||||
@@ -850,6 +860,7 @@ platforms:
|
||||
retrodeck:
|
||||
config: retrodeck.yml
|
||||
status: active
|
||||
extract_to: ~/retrodeck/
|
||||
logo: https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/res/icon.svg
|
||||
scraper: retrodeck
|
||||
source_url: https://github.com/RetroDECK/components
|
||||
@@ -894,6 +905,7 @@ platforms:
|
||||
romm:
|
||||
config: romm.yml
|
||||
status: active
|
||||
extract_to: library/bios/
|
||||
logo: https://avatars.githubusercontent.com/u/168586850
|
||||
scraper: romm
|
||||
source_url: https://raw.githubusercontent.com/rommapp/romm/master/backend/models/fixtures/known_bios_files.json
|
||||
@@ -941,6 +953,7 @@ platforms:
|
||||
rocknix:
|
||||
config: rocknix.yml
|
||||
status: active
|
||||
extract_to: /storage/roms/bios/
|
||||
logo: https://avatars.githubusercontent.com/u/152618023
|
||||
scraper: rocknix
|
||||
cores: all_libretro
|
||||
@@ -955,6 +968,7 @@ platforms:
|
||||
retropie:
|
||||
config: retropie.yml
|
||||
status: archived
|
||||
extract_to: ~/RetroPie/BIOS/
|
||||
logo: https://avatars.githubusercontent.com/u/11378204
|
||||
scraper: retropie
|
||||
source: https://github.com/RetroPie/RetroPie-Setup
|
||||
@@ -971,11 +985,14 @@ platforms:
|
||||
bizhawk:
|
||||
config: bizhawk.yml
|
||||
status: active
|
||||
extract_to: Firmware/
|
||||
logo: https://avatars.githubusercontent.com/u/11743303
|
||||
scraper: bizhawk
|
||||
source_url: https://raw.githubusercontent.com/TASEmulators/BizHawk/master/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs
|
||||
source_format: csharp_firmware_database
|
||||
hash_type: sha1
|
||||
# Windows: names differing only by case land on one file.
|
||||
case_insensitive_fs: true
|
||||
schedule: monthly
|
||||
cores:
|
||||
- applewin
|
||||
@@ -1033,6 +1050,7 @@ platforms:
|
||||
misterfpga:
|
||||
config: misterfpga.yml
|
||||
status: active
|
||||
extract_to: /media/fat/games/
|
||||
logo: https://avatars.githubusercontent.com/u/47264183
|
||||
scraper: misterfpga
|
||||
source_url: https://raw.githubusercontent.com/ajgowans/BiosDB_MiSTer/db/bios_db.json.zip
|
||||
|
||||
@@ -25,6 +25,25 @@ cores:
|
||||
- vita3k
|
||||
- xemu
|
||||
- xroar
|
||||
standalone_cores:
|
||||
- azahar
|
||||
- cemu
|
||||
- dolphin
|
||||
- duckstation
|
||||
- gzdoom
|
||||
- mame
|
||||
- melonds
|
||||
- openbor
|
||||
- pcsx2
|
||||
- pico-8
|
||||
- ppsspp
|
||||
- primehack
|
||||
- rpcs3
|
||||
- ruffle
|
||||
- solarus
|
||||
- vita3k
|
||||
- xemu
|
||||
- xroar
|
||||
systems:
|
||||
triforce:
|
||||
files:
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -16,7 +16,7 @@ dependencies = [
|
||||
# and the CI contract check are the only callers, and no user path imports it.
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"jsonschema>=4.23",
|
||||
"jsonschema[format-nongpl]>=4.23",
|
||||
]
|
||||
# The site build the repo generates and documents. Both were hard
|
||||
# requirements of deploy-site.yml and of wiki/release-process.md while being
|
||||
|
||||
@@ -31,6 +31,37 @@
|
||||
"files"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"comment": "Per-file mode separates the two builds of a dual profile. A profile with only a standalone build has no libretro side to separate it from, and a file marked standalone there drops out of the gap analysis and of the packs of every platform that lists the emulator without standalone_cores.",
|
||||
"if": {
|
||||
"properties": {
|
||||
"type": {
|
||||
"const": "standalone"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type"
|
||||
]
|
||||
},
|
||||
"then": {
|
||||
"properties": {
|
||||
"files": {
|
||||
"items": {
|
||||
"not": {
|
||||
"properties": {
|
||||
"mode": {
|
||||
"const": "standalone"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"mode"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"sha1": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
||||
"md5": { "type": "string", "pattern": "^[a-f0-9]{32}$" },
|
||||
"size": { "type": "integer", "minimum": 0 },
|
||||
"status": { "enum": ["verified", "verified_md5", "verified_rebuild", "verified_data", "untracked"] },
|
||||
"status": { "enum": ["verified", "verified_md5", "verified_rebuild", "verified_data", "verified_members", "untracked"] },
|
||||
"name": { "type": "string" }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,6 +72,11 @@ def _strip_timestamps(text: str) -> str:
|
||||
class ArtifactLockBusy(RuntimeError):
|
||||
"""Raised when another process already holds the artifact directory."""
|
||||
|
||||
# A run that holds an artifact directory for its whole duration names it
|
||||
# here for the steps it spawns: they would otherwise be refused by it.
|
||||
HELD_LOCK_ENV = "RETROBIOS_HELD_ARTIFACT_DIR"
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def artifact_lock(directory: str, exclusive: bool = True):
|
||||
"""Serialize access to a shared artifact directory across processes.
|
||||
@@ -88,6 +93,9 @@ def artifact_lock(directory: str, exclusive: bool = True):
|
||||
return
|
||||
|
||||
os.makedirs(directory, exist_ok=True)
|
||||
if os.environ.get(HELD_LOCK_ENV) == os.path.realpath(directory):
|
||||
yield
|
||||
return
|
||||
lock_path = os.path.join(directory, ".lock")
|
||||
mode = fcntl.LOCK_EX if exclusive else fcntl.LOCK_SH
|
||||
with open(lock_path, "w") as handle:
|
||||
@@ -103,6 +111,26 @@ def artifact_lock(directory: str, exclusive: bool = True):
|
||||
finally:
|
||||
fcntl.flock(handle, fcntl.LOCK_UN)
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def hold_artifact_lock(directory: str):
|
||||
"""Hold a directory exclusively across several child steps.
|
||||
|
||||
A lock taken step by step frees the directory between them: another
|
||||
run can purge the packs one step built before the next step checks
|
||||
them. The children this process spawns inherit the hold.
|
||||
"""
|
||||
with artifact_lock(directory):
|
||||
previous = os.environ.get(HELD_LOCK_ENV)
|
||||
os.environ[HELD_LOCK_ENV] = os.path.realpath(directory)
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
if previous is None:
|
||||
os.environ.pop(HELD_LOCK_ENV, None)
|
||||
else:
|
||||
os.environ[HELD_LOCK_ENV] = previous
|
||||
|
||||
def _build_timestamp(db: dict | None = None) -> str:
|
||||
"""Timestamp for generated artifacts.
|
||||
|
||||
|
||||
+35
-18
@@ -54,6 +54,7 @@ import upstream # noqa: E402
|
||||
from common import ( # noqa: E402
|
||||
list_registered_platforms,
|
||||
load_emulator_profiles,
|
||||
upstream_profile_index,
|
||||
yaml_load,
|
||||
)
|
||||
from exporter import discover_exporters # noqa: E402
|
||||
@@ -156,6 +157,22 @@ def _core_names(config: dict) -> set[str]:
|
||||
return names
|
||||
|
||||
|
||||
def _keyed_files(files: list[dict]) -> dict[str, dict]:
|
||||
"""Each declaration under its own key.
|
||||
|
||||
A platform declares one destination several times (an archive once per
|
||||
inner ROM, MD5 alternatives): keyed by destination alone, the dict kept
|
||||
the last and a change to the others read as identical.
|
||||
"""
|
||||
keyed: dict[str, dict] = {}
|
||||
seen: dict[str, int] = {}
|
||||
for f in files:
|
||||
key = _file_key(f)
|
||||
seen[key] = seen.get(key, 0) + 1
|
||||
keyed[key if seen[key] == 1 else f"{key}#{seen[key]}"] = f
|
||||
return keyed
|
||||
|
||||
|
||||
def diff_platform(old: dict, new: dict) -> PlatformDiff:
|
||||
"""Compare two platform files the way a reviewer reads the diff.
|
||||
|
||||
@@ -171,12 +188,8 @@ def diff_platform(old: dict, new: dict) -> PlatformDiff:
|
||||
diff.systems_added = sorted(set(new_systems) - set(old_systems))
|
||||
diff.systems_removed = sorted(set(old_systems) - set(new_systems))
|
||||
for system in sorted(set(old_systems) & set(new_systems)):
|
||||
old_files = {
|
||||
_file_key(f): f for f in (old_systems[system] or {}).get("files") or []
|
||||
}
|
||||
new_files = {
|
||||
_file_key(f): f for f in (new_systems[system] or {}).get("files") or []
|
||||
}
|
||||
old_files = _keyed_files((old_systems[system] or {}).get("files") or [])
|
||||
new_files = _keyed_files((new_systems[system] or {}).get("files") or [])
|
||||
diff.files_added.extend(
|
||||
f"{system}/{k}" for k in sorted(set(new_files) - set(old_files))
|
||||
)
|
||||
@@ -364,14 +377,9 @@ def check_native(platforms_dir: Path, cache_dir: Path, truth_dir: Path) -> list[
|
||||
# --- targets ----------------------------------------------------------------
|
||||
|
||||
|
||||
def profile_name_index(profiles: dict[str, dict]) -> dict[str, str]:
|
||||
"""Upstream core name -> profile key, the index target filtering uses."""
|
||||
index: dict[str, str] = {}
|
||||
for key, profile in profiles.items():
|
||||
index.setdefault(key, key)
|
||||
for alias in profile.get("cores") or []:
|
||||
index.setdefault(str(alias), key)
|
||||
return index
|
||||
def profile_name_index(profiles: dict[str, dict]) -> dict[str, set[str]]:
|
||||
"""Upstream core name -> the profiles that claim it, as target filtering reads it."""
|
||||
return upstream_profile_index(profiles, include_aliases=True)
|
||||
|
||||
|
||||
def _removed_cores(overrides: dict, platform: str) -> dict[str, set[str]]:
|
||||
@@ -539,13 +547,20 @@ def coreinfo_gaps(
|
||||
Matching folds case: the buildbot serves lower-case names while a few
|
||||
.info files keep the project's own casing.
|
||||
"""
|
||||
index = {k.casefold(): v for k, v in profile_name_index(profiles).items()}
|
||||
index: dict[str, set[str]] = {}
|
||||
for key, claimants in profile_name_index(profiles).items():
|
||||
index.setdefault(key.casefold(), set()).update(claimants)
|
||||
unprofiled = [n for n in names if n.casefold() not in index]
|
||||
# A name only standalone profiles claim: libretro now builds a core
|
||||
# nothing in the collection describes as one.
|
||||
standalone = [
|
||||
(n, index[n.casefold()])
|
||||
(n, sorted(index[n.casefold()])[0])
|
||||
for n in names
|
||||
if n.casefold() in index
|
||||
and str(profiles[index[n.casefold()]].get("type", "")).strip() == "standalone"
|
||||
and all(
|
||||
str(profiles[c].get("type", "")).strip() == "standalone"
|
||||
for c in index[n.casefold()]
|
||||
)
|
||||
]
|
||||
return unprofiled, standalone
|
||||
|
||||
@@ -789,7 +804,9 @@ def _check_fbneo(cache_dir: str, offline: bool) -> Finding:
|
||||
|
||||
# --- CI toolchain -----------------------------------------------------------
|
||||
|
||||
_PIN_RE = re.compile(r'"?([A-Za-z0-9_.\-]+)((?:[<>=!~]=?[^,"\s]+)(?:,[<>=!~]=?[^,"\s]+)*)?"?')
|
||||
_PIN_RE = re.compile(
|
||||
r'"?([A-Za-z0-9_.\-]+)(?:\[[^\]]*\])?((?:[<>=!~]=?[^,"\s]+)(?:,[<>=!~]=?[^,"\s]+)*)?"?'
|
||||
)
|
||||
_USES_RE = re.compile(r"uses:\s*([\w.\-]+/[\w.\-]+)@([0-9a-f]{40})\s*(?:#\s*(\S+))?")
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import sys
|
||||
from collections.abc import Iterable
|
||||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
from common import load_database
|
||||
from common import composition_tier, load_database
|
||||
from largefiles import (
|
||||
LARGE_FILES_RELEASE,
|
||||
LARGE_FILES_REPO,
|
||||
@@ -129,7 +129,7 @@ def _section_for(path: str) -> str:
|
||||
return "Arcade"
|
||||
if top == "QEMU":
|
||||
return "Virtual machine firmware"
|
||||
if top in ("RPG Maker", "ScummVM"):
|
||||
if composition_tier(path) == "game_data":
|
||||
return "Game engine data"
|
||||
if top in ("Apple", "Commodore", "Atari", "Sinclair", "Amstrad"):
|
||||
return "Computer"
|
||||
|
||||
+109
-48
@@ -35,19 +35,23 @@ def load_database(db_path: str) -> dict:
|
||||
|
||||
|
||||
|
||||
_casefold_index_cache: dict[int, dict[str, list[str]]] = {}
|
||||
# One slot: the dict it was built from, its size then, and the folded view.
|
||||
# Keyed by id() alone, a database freed and replaced by another at the same
|
||||
# address got the old index back, and the case-insensitive step answered from
|
||||
# a collection that no longer existed.
|
||||
_casefold_index_cache: list[tuple[dict, int, dict[str, list[str]]]] = []
|
||||
|
||||
|
||||
def _casefold_name_index(by_name: dict) -> dict[str, list[str]]:
|
||||
"""Build (and cache) a casefolded view of the by_name index."""
|
||||
key = id(by_name)
|
||||
cached = _casefold_index_cache.get(key)
|
||||
if cached is not None:
|
||||
return cached
|
||||
if _casefold_index_cache:
|
||||
source, size, folded = _casefold_index_cache[0]
|
||||
if source is by_name and size == len(by_name):
|
||||
return folded
|
||||
folded: dict[str, list[str]] = {}
|
||||
for name, sha1s in by_name.items():
|
||||
folded.setdefault(name.casefold(), []).extend(sha1s)
|
||||
_casefold_index_cache[key] = folded
|
||||
_casefold_index_cache[:] = [(by_name, len(by_name), folded)]
|
||||
return folded
|
||||
|
||||
|
||||
@@ -476,24 +480,41 @@ def _affinity_tokens(text: str) -> set[str]:
|
||||
}
|
||||
|
||||
|
||||
def _by_affinity(paths: list[str], file_entry: dict, dest_hint: str) -> list[str]:
|
||||
"""Same-named candidates, the ones stored with the file's owner first.
|
||||
|
||||
A name step without a tie-break took whichever path sorted first: the
|
||||
TheXTech coin.ogg for Syobon Action, a Hurrican sound for ARMSX2. The
|
||||
destination's directories and the profile that asks name where its own
|
||||
copy lives; the order is otherwise kept.
|
||||
"""
|
||||
hint = dest_hint or file_entry.get("path") or file_entry.get("destination") or ""
|
||||
wanted = _affinity_tokens(hint.rsplit("/", 1)[0] if "/" in hint else "")
|
||||
def _owner_tokens(file_entry: dict) -> set[str]:
|
||||
"""Tokens naming the profile that asks for the file."""
|
||||
tokens: set[str] = set()
|
||||
for owner in (file_entry.get("source_profile"), file_entry.get("source_emulator")):
|
||||
if owner:
|
||||
wanted |= _affinity_tokens(str(owner).replace(" ", ""))
|
||||
if not wanted or len(paths) < 2:
|
||||
return paths
|
||||
tokens |= _affinity_tokens(str(owner).replace(" ", ""))
|
||||
return tokens
|
||||
|
||||
def score(path: str) -> int:
|
||||
return len(wanted & _affinity_tokens(path.rsplit("/", 1)[0]))
|
||||
|
||||
def _by_affinity(paths: list[str], file_entry: dict, dest_hint: str) -> list[str]:
|
||||
"""Same-named candidates, the likeliest first.
|
||||
|
||||
A name step without a tie-break took whichever path sorted first: the
|
||||
TheXTech coin.ogg for Syobon Action, a Hurrican sound for ARMSX2, the
|
||||
1 MB CM-32L PCM ROM for ScummVM's 512 KB MT32_PCM.ROM. A size the entry
|
||||
declares orders the candidates first (ordering rejects nothing, so an
|
||||
unvalidated size keeps its informative status); then the destination's
|
||||
directories and the profile that asks name where its own copy lives. The
|
||||
order is otherwise kept.
|
||||
"""
|
||||
if len(paths) < 2:
|
||||
return paths
|
||||
hint = dest_hint or file_entry.get("path") or file_entry.get("destination") or ""
|
||||
wanted = _affinity_tokens(hint.rsplit("/", 1)[0] if "/" in hint else "")
|
||||
owners = _owner_tokens(file_entry)
|
||||
sized = any(file_entry.get(k) for k in ("size", "min_size", "max_size"))
|
||||
|
||||
def score(path: str) -> tuple[int, bool, int]:
|
||||
fits = 0
|
||||
if sized and os.path.exists(path):
|
||||
fits = int(size_fits(file_entry, os.path.getsize(path)))
|
||||
tokens = _affinity_tokens(path.rsplit("/", 1)[0])
|
||||
# The owner's own copy ranks above any shared tree segment: NetherSX2's
|
||||
# shaders/common/ beat armsx2's own fxaa.fx on two directory tokens.
|
||||
return fits, bool(owners & tokens), len(wanted & tokens)
|
||||
|
||||
return sorted(paths, key=score, reverse=True)
|
||||
|
||||
@@ -710,12 +731,17 @@ def resolve_local_file(
|
||||
own_file_absent = True
|
||||
if len(candidates) > 1:
|
||||
depth = len(tail.split("/"))
|
||||
# At equal depth the owner's own copy: super3's Games.xml was
|
||||
# served to Supermodel-Dojo by index order alone.
|
||||
owners = _owner_tokens(file_entry)
|
||||
candidates = sorted(
|
||||
candidates,
|
||||
key=lambda h: len(
|
||||
files_db.get(h, {}).get("path", "").split("/")
|
||||
)
|
||||
- depth,
|
||||
key=lambda h: (
|
||||
len(files_db.get(h, {}).get("path", "").split("/")) - depth,
|
||||
not owners & _affinity_tokens(
|
||||
files_db.get(h, {}).get("path", "").rsplit("/", 1)[0]
|
||||
),
|
||||
),
|
||||
)
|
||||
for match_sha1 in candidates:
|
||||
if match_sha1 not in files_db:
|
||||
@@ -1065,6 +1091,7 @@ GAME_DATA_TOPS = (
|
||||
"Interplay",
|
||||
"Monolith",
|
||||
"Softdisk",
|
||||
"Toys for Bob",
|
||||
"Valve",
|
||||
)
|
||||
|
||||
@@ -1298,6 +1325,46 @@ def runs_standalone(
|
||||
)
|
||||
|
||||
|
||||
# What identifies a profile entry's content, carried unchanged wherever the
|
||||
# entry travels (cross-reference report, core extras, second-pass copies).
|
||||
# Each copy once kept its own subset: np2kai's bios.rom lost min_size and
|
||||
# validation on the way and resolved to an IBM PCjr ROM of the same name.
|
||||
PROFILE_IDENTITY_FIELDS = (
|
||||
"sha1", "md5", "sha256", "crc32", "size", "min_size", "max_size",
|
||||
"validation", "aliases", "unsourceable",
|
||||
)
|
||||
|
||||
|
||||
def upstream_profile_index(
|
||||
profiles: dict[str, dict], include_aliases: bool = False
|
||||
) -> dict[str, set[str]]:
|
||||
"""Every name a core is known by upstream -> the profiles that claim it.
|
||||
|
||||
A name can be claimed twice: the buildbot's `pcsx2` is the LRPS2 core,
|
||||
which lrps2.yml lists in `cores:`, and also the key of the standalone
|
||||
pcsx2 profile. A last-wins dict kept one of the two depending on file
|
||||
order, and a RetroArch target filter dropped LRPS2's files. Callers
|
||||
choose: a platform list prefers the exact key, a target filter keeps
|
||||
every claimant.
|
||||
"""
|
||||
index: dict[str, set[str]] = {}
|
||||
for name, profile in profiles.items():
|
||||
if not include_aliases and profile.get("type") == "alias":
|
||||
continue
|
||||
index.setdefault(name, set()).add(name)
|
||||
for core in profile.get("cores") or []:
|
||||
index.setdefault(str(core), set()).add(name)
|
||||
return index
|
||||
|
||||
|
||||
def preferred_profile(index: dict[str, set[str]], name: str) -> str | None:
|
||||
"""The profile a name designates: its own key first, else the first claimant."""
|
||||
claimants = index.get(name)
|
||||
if not claimants:
|
||||
return None
|
||||
return name if name in claimants else sorted(claimants)[0]
|
||||
|
||||
|
||||
def resolve_platform_cores(
|
||||
config: dict,
|
||||
profiles: dict[str, dict],
|
||||
@@ -1323,14 +1390,12 @@ def resolve_platform_cores(
|
||||
}
|
||||
elif isinstance(cores_config, list):
|
||||
core_set = {str(c) for c in cores_config}
|
||||
core_to_profile: dict[str, str] = {}
|
||||
for name, p in profiles.items():
|
||||
if p.get("type") == "alias":
|
||||
continue
|
||||
core_to_profile[name] = name
|
||||
for core_name in p.get("cores", []):
|
||||
core_to_profile[str(core_name)] = name
|
||||
result = {core_to_profile[c] for c in core_set if c in core_to_profile}
|
||||
index = upstream_profile_index(profiles)
|
||||
result = {
|
||||
profile
|
||||
for c in core_set
|
||||
if (profile := preferred_profile(index, c)) is not None
|
||||
}
|
||||
# Support "all_libretro" as a list element: combines all libretro
|
||||
# profiles with explicitly listed standalone cores (e.g. RetroDECK
|
||||
# ships RetroArch + standalone emulators)
|
||||
@@ -1355,13 +1420,10 @@ def resolve_platform_cores(
|
||||
# Upstream sources (buildbot, es_systems) may use different names
|
||||
# than our profile keys (e.g., mednafen_psx vs beetle_psx).
|
||||
# The profiles' cores: field lists these alternate names.
|
||||
upstream_to_profile: dict[str, str] = {}
|
||||
for name, p in profiles.items():
|
||||
upstream_to_profile[name] = name
|
||||
for alias in p.get("cores", []):
|
||||
upstream_to_profile[str(alias)] = name
|
||||
# Expand target_cores to profile keys
|
||||
expanded = {upstream_to_profile.get(c, c) for c in target_cores}
|
||||
index = upstream_profile_index(profiles, include_aliases=True)
|
||||
expanded = {
|
||||
profile for c in target_cores for profile in index.get(c, {c})
|
||||
}
|
||||
result = result & expanded
|
||||
return result
|
||||
|
||||
@@ -1467,12 +1529,10 @@ def filter_systems_by_target(
|
||||
return systems
|
||||
|
||||
# Build reverse index for target core name resolution
|
||||
upstream_to_profile: dict[str, str] = {}
|
||||
for name, p in profiles.items():
|
||||
upstream_to_profile[name] = name
|
||||
for alias in p.get("cores", []):
|
||||
upstream_to_profile[str(alias)] = name
|
||||
expanded_target = {upstream_to_profile.get(c, c) for c in target_cores}
|
||||
index = upstream_profile_index(profiles, include_aliases=True)
|
||||
expanded_target = {
|
||||
profile for c in target_cores for profile in index.get(c, {c})
|
||||
}
|
||||
|
||||
_norm_sid = _norm_system_id
|
||||
|
||||
@@ -1532,8 +1592,8 @@ def expand_platform_declared_names(config: dict, db: dict) -> set[str]:
|
||||
md5 = fe.get("md5", "")
|
||||
if not md5:
|
||||
continue
|
||||
# Skip multi-hash and zippedFile entries (inner ROM MD5, not file MD5)
|
||||
if "," in md5 or fe.get("zippedFile"):
|
||||
# Skip multi-hash and zipped_file entries (inner ROM MD5, not file MD5)
|
||||
if "," in md5 or fe.get("zipped_file"):
|
||||
continue
|
||||
sha1 = by_md5.get(md5.lower())
|
||||
if not sha1:
|
||||
@@ -1673,6 +1733,7 @@ from artifacts import ( # noqa: E402,F401
|
||||
write_if_changed,
|
||||
ArtifactLockBusy,
|
||||
artifact_lock,
|
||||
hold_artifact_lock,
|
||||
_TIMESTAMP_PATTERNS,
|
||||
_strip_timestamps,
|
||||
)
|
||||
|
||||
Loaded 100 of 223 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user