fix: correct type and path fields across 58 emulator profiles

49 libretro cores had type: game/utility/test instead of type: libretro,
breaking the all_libretro filtering in resolve_platform_cores and
excluding them from platform packs (e.g. cannonball missing from
RetroArch). core_classification already carries the descriptive role.

9 profiles with subdirectory-loading cores (cannonball/, nxengine/,
Citra/sysdata/, mame2003/, mame2003-plus/, mame2010/) now have path:
fields so cross-reference places files at the correct destination.

resolve_local_file now tries basename when name contains a path
separator (e.g. res/tilemap.bin -> tilemap.bin), fixing resolution
of files with subdirectory names.
This commit is contained in:
Abdessamad Derraz
2026-03-29 09:53:46 +02:00
parent 36f6ad1379
commit b7528a71e7
58 changed files with 125 additions and 49 deletions

View File

@@ -1,5 +1,5 @@
emulator: "00_example" emulator: "00_example"
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-core-info" source: "https://github.com/libretro/libretro-core-info"
profiled_date: "2026-03-22" profiled_date: "2026-03-22"

View File

@@ -1,5 +1,5 @@
emulator: "2048" emulator: "2048"
type: game type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-2048" source: "https://github.com/libretro/libretro-2048"
upstream: "https://github.com/gabrielecirulli/2048" upstream: "https://github.com/gabrielecirulli/2048"

View File

@@ -1,5 +1,5 @@
emulator: 3DEngine emulator: 3DEngine
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-3dengine" source: "https://github.com/libretro/libretro-3dengine"
upstream: "https://github.com/libretro/libretro-3dengine" upstream: "https://github.com/libretro/libretro-3dengine"

View File

@@ -1,5 +1,5 @@
emulator: advanced_tests emulator: advanced_tests
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: Anarch emulator: Anarch
type: game type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://codeberg.org/iyzsong/anarch-libretro" source: "https://codeberg.org/iyzsong/anarch-libretro"
upstream: "https://gitlab.com/drummyfish/anarch" upstream: "https://gitlab.com/drummyfish/anarch"

View File

@@ -1,5 +1,5 @@
emulator: Cannonball emulator: Cannonball
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/libretro/cannonball" source: "https://github.com/libretro/cannonball"
upstream: "https://github.com/djyt/cannonball" upstream: "https://github.com/djyt/cannonball"
@@ -40,6 +40,7 @@ files:
# Master CPU ROMs (68000, Rev B) # Master CPU ROMs (68000, Rev B)
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10381a.132" - name: "epr-10381a.132"
path: "cannonball/epr-10381a.132"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -51,6 +52,7 @@ files:
source_ref: "src/main/roms.cpp:29" source_ref: "src/main/roms.cpp:29"
- name: "epr-10383b.117" - name: "epr-10383b.117"
path: "cannonball/epr-10383b.117"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -61,6 +63,7 @@ files:
source_ref: "src/main/roms.cpp:38" source_ref: "src/main/roms.cpp:38"
- name: "epr-10380b.133" - name: "epr-10380b.133"
path: "cannonball/epr-10380b.133"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -71,6 +74,7 @@ files:
source_ref: "src/main/roms.cpp:39" source_ref: "src/main/roms.cpp:39"
- name: "epr-10382b.118" - name: "epr-10382b.118"
path: "cannonball/epr-10382b.118"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -84,6 +88,7 @@ files:
# Slave CPU ROMs (68000, Rev A) # Slave CPU ROMs (68000, Rev A)
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10327a.76" - name: "epr-10327a.76"
path: "cannonball/epr-10327a.76"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -94,6 +99,7 @@ files:
source_ref: "src/main/roms.cpp:44" source_ref: "src/main/roms.cpp:44"
- name: "epr-10329a.58" - name: "epr-10329a.58"
path: "cannonball/epr-10329a.58"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -104,6 +110,7 @@ files:
source_ref: "src/main/roms.cpp:45" source_ref: "src/main/roms.cpp:45"
- name: "epr-10328a.75" - name: "epr-10328a.75"
path: "cannonball/epr-10328a.75"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -114,6 +121,7 @@ files:
source_ref: "src/main/roms.cpp:46" source_ref: "src/main/roms.cpp:46"
- name: "epr-10330a.57" - name: "epr-10330a.57"
path: "cannonball/epr-10330a.57"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -127,6 +135,7 @@ files:
# Tile ROMs # Tile ROMs
# ------------------------------------------------------- # -------------------------------------------------------
- name: "opr-10268.99" - name: "opr-10268.99"
path: "cannonball/opr-10268.99"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -137,6 +146,7 @@ files:
source_ref: "src/main/roms.cpp:51" source_ref: "src/main/roms.cpp:51"
- name: "opr-10232.102" - name: "opr-10232.102"
path: "cannonball/opr-10232.102"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -147,6 +157,7 @@ files:
source_ref: "src/main/roms.cpp:52" source_ref: "src/main/roms.cpp:52"
- name: "opr-10267.100" - name: "opr-10267.100"
path: "cannonball/opr-10267.100"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -157,6 +168,7 @@ files:
source_ref: "src/main/roms.cpp:53" source_ref: "src/main/roms.cpp:53"
- name: "opr-10231.103" - name: "opr-10231.103"
path: "cannonball/opr-10231.103"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -167,6 +179,7 @@ files:
source_ref: "src/main/roms.cpp:54" source_ref: "src/main/roms.cpp:54"
- name: "opr-10266.101" - name: "opr-10266.101"
path: "cannonball/opr-10266.101"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -177,6 +190,7 @@ files:
source_ref: "src/main/roms.cpp:55" source_ref: "src/main/roms.cpp:55"
- name: "opr-10230.104" - name: "opr-10230.104"
path: "cannonball/opr-10230.104"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -190,6 +204,7 @@ files:
# Road ROMs (identical pair, one per road layer) # Road ROMs (identical pair, one per road layer)
# ------------------------------------------------------- # -------------------------------------------------------
- name: "opr-10185.11" - name: "opr-10185.11"
path: "cannonball/opr-10185.11"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -200,6 +215,7 @@ files:
source_ref: "src/main/roms.cpp:60" source_ref: "src/main/roms.cpp:60"
- name: "opr-10186.47" - name: "opr-10186.47"
path: "cannonball/opr-10186.47"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -213,6 +229,7 @@ files:
# Sprite ROMs (interleaved 4-way) # Sprite ROMs (interleaved 4-way)
# ------------------------------------------------------- # -------------------------------------------------------
- name: "mpr-10371.9" - name: "mpr-10371.9"
path: "cannonball/mpr-10371.9"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -223,6 +240,7 @@ files:
source_ref: "src/main/roms.cpp:65" source_ref: "src/main/roms.cpp:65"
- name: "mpr-10373.10" - name: "mpr-10373.10"
path: "cannonball/mpr-10373.10"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -233,6 +251,7 @@ files:
source_ref: "src/main/roms.cpp:66" source_ref: "src/main/roms.cpp:66"
- name: "mpr-10375.11" - name: "mpr-10375.11"
path: "cannonball/mpr-10375.11"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -243,6 +262,7 @@ files:
source_ref: "src/main/roms.cpp:67" source_ref: "src/main/roms.cpp:67"
- name: "mpr-10377.12" - name: "mpr-10377.12"
path: "cannonball/mpr-10377.12"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -253,6 +273,7 @@ files:
source_ref: "src/main/roms.cpp:68" source_ref: "src/main/roms.cpp:68"
- name: "mpr-10372.13" - name: "mpr-10372.13"
path: "cannonball/mpr-10372.13"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -263,6 +284,7 @@ files:
source_ref: "src/main/roms.cpp:69" source_ref: "src/main/roms.cpp:69"
- name: "mpr-10374.14" - name: "mpr-10374.14"
path: "cannonball/mpr-10374.14"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -273,6 +295,7 @@ files:
source_ref: "src/main/roms.cpp:70" source_ref: "src/main/roms.cpp:70"
- name: "mpr-10376.15" - name: "mpr-10376.15"
path: "cannonball/mpr-10376.15"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -283,6 +306,7 @@ files:
source_ref: "src/main/roms.cpp:71" source_ref: "src/main/roms.cpp:71"
- name: "mpr-10378.16" - name: "mpr-10378.16"
path: "cannonball/mpr-10378.16"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -296,6 +320,7 @@ files:
# Z80 Sound ROM # Z80 Sound ROM
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10187.88" - name: "epr-10187.88"
path: "cannonball/epr-10187.88"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -309,6 +334,7 @@ files:
# Sega PCM samples # Sega PCM samples
# ------------------------------------------------------- # -------------------------------------------------------
- name: "opr-10193.66" - name: "opr-10193.66"
path: "cannonball/opr-10193.66"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -319,6 +345,7 @@ files:
source_ref: "src/main/roms.cpp:80" source_ref: "src/main/roms.cpp:80"
- name: "opr-10192.67" - name: "opr-10192.67"
path: "cannonball/opr-10192.67"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -329,6 +356,7 @@ files:
source_ref: "src/main/roms.cpp:81" source_ref: "src/main/roms.cpp:81"
- name: "opr-10191.68" - name: "opr-10191.68"
path: "cannonball/opr-10191.68"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -339,6 +367,7 @@ files:
source_ref: "src/main/roms.cpp:82" source_ref: "src/main/roms.cpp:82"
- name: "opr-10190.69" - name: "opr-10190.69"
path: "cannonball/opr-10190.69"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -349,6 +378,7 @@ files:
source_ref: "src/main/roms.cpp:83" source_ref: "src/main/roms.cpp:83"
- name: "opr-10189.70" - name: "opr-10189.70"
path: "cannonball/opr-10189.70"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -359,6 +389,7 @@ files:
source_ref: "src/main/roms.cpp:84" source_ref: "src/main/roms.cpp:84"
- name: "opr-10188.71" - name: "opr-10188.71"
path: "cannonball/opr-10188.71"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: true required: true
@@ -372,6 +403,7 @@ files:
# Optional: fixed PCM sample # Optional: fixed PCM sample
# ------------------------------------------------------- # -------------------------------------------------------
- name: "opr-10188.71f" - name: "opr-10188.71f"
path: "cannonball/opr-10188.71f"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -385,6 +417,7 @@ files:
# Optional: widescreen tilemap patches # Optional: widescreen tilemap patches
# ------------------------------------------------------- # -------------------------------------------------------
- name: "res/tilemap.bin" - name: "res/tilemap.bin"
path: "cannonball/res/tilemap.bin"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -392,6 +425,7 @@ files:
source_ref: "src/main/engine/omusic.cpp:42-44" source_ref: "src/main/engine/omusic.cpp:42-44"
- name: "res/tilepatch.bin" - name: "res/tilepatch.bin"
path: "cannonball/res/tilepatch.bin"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -402,6 +436,7 @@ files:
# Japanese ROM variants (loaded when jap option enabled) # Japanese ROM variants (loaded when jap option enabled)
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10380.133" - name: "epr-10380.133"
path: "cannonball/epr-10380.133"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -412,6 +447,7 @@ files:
source_ref: "src/main/roms.cpp:104" source_ref: "src/main/roms.cpp:104"
- name: "epr-10382.118" - name: "epr-10382.118"
path: "cannonball/epr-10382.118"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -422,6 +458,7 @@ files:
source_ref: "src/main/roms.cpp:105" source_ref: "src/main/roms.cpp:105"
- name: "epr-10381.132" - name: "epr-10381.132"
path: "cannonball/epr-10381.132"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -432,6 +469,7 @@ files:
source_ref: "src/main/roms.cpp:106" source_ref: "src/main/roms.cpp:106"
- name: "epr-10383.117" - name: "epr-10383.117"
path: "cannonball/epr-10383.117"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -442,6 +480,7 @@ files:
source_ref: "src/main/roms.cpp:107" source_ref: "src/main/roms.cpp:107"
- name: "epr-10327.76" - name: "epr-10327.76"
path: "cannonball/epr-10327.76"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -452,6 +491,7 @@ files:
source_ref: "src/main/roms.cpp:110" source_ref: "src/main/roms.cpp:110"
- name: "epr-10329.58" - name: "epr-10329.58"
path: "cannonball/epr-10329.58"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -462,6 +502,7 @@ files:
source_ref: "src/main/roms.cpp:111" source_ref: "src/main/roms.cpp:111"
- name: "epr-10328.75" - name: "epr-10328.75"
path: "cannonball/epr-10328.75"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false
@@ -472,6 +513,7 @@ files:
source_ref: "src/main/roms.cpp:112" source_ref: "src/main/roms.cpp:112"
- name: "epr-10330.57" - name: "epr-10330.57"
path: "cannonball/epr-10330.57"
system: sega-outrun system: sega-outrun
category: game_data category: game_data
required: false required: false

View File

@@ -1,5 +1,5 @@
emulator: ChaiLove emulator: ChaiLove
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/libretro/libretro-chailove" source: "https://github.com/libretro/libretro-chailove"
upstream: "https://github.com/libretro/libretro-chailove" upstream: "https://github.com/libretro/libretro-chailove"

View File

@@ -23,6 +23,7 @@ notes: |
files: files:
- name: aes_keys.txt - name: aes_keys.txt
path: "Citra/sysdata/aes_keys.txt"
system: nintendo-3ds system: nintendo-3ds
description: "AES encryption keys" description: "AES encryption keys"
required: false required: false
@@ -30,6 +31,7 @@ files:
note: "needed for encrypted games" note: "needed for encrypted games"
- name: boot9.bin - name: boot9.bin
path: "Citra/sysdata/boot9.bin"
system: nintendo-3ds system: nintendo-3ds
description: "ARM9 bootrom" description: "ARM9 bootrom"
required: false required: false
@@ -38,6 +40,7 @@ files:
note: "expected size 65536 bytes, provides AES and RSA keys" note: "expected size 65536 bytes, provides AES and RSA keys"
- name: shared_font.bin - name: shared_font.bin
path: "Citra/sysdata/shared_font.bin"
system: nintendo-3ds system: nintendo-3ds
description: "system shared font (legacy format)" description: "system shared font (legacy format)"
required: false required: false
@@ -46,6 +49,7 @@ files:
note: "fallback to embedded open-source replacement font" note: "fallback to embedded open-source replacement font"
- name: seeddb.bin - name: seeddb.bin
path: "Citra/sysdata/seeddb.bin"
system: nintendo-3ds system: nintendo-3ds
description: "game seed database" description: "game seed database"
required: false required: false

View File

@@ -22,12 +22,14 @@ notes: |
files: files:
- name: aes_keys.txt - name: aes_keys.txt
path: "Citra/sysdata/aes_keys.txt"
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "AES encryption keys for decrypting 3DS content" note: "AES encryption keys for decrypting 3DS content"
source_ref: "src/core/hw/aes/key.cpp:72-76" source_ref: "src/core/hw/aes/key.cpp:72-76"
- name: shared_font.bin - name: shared_font.bin
path: "Citra/sysdata/shared_font.bin"
system: nintendo-3ds system: nintendo-3ds
required: false required: false
hle_fallback: true hle_fallback: true

View File

@@ -27,12 +27,14 @@ notes: |
files: files:
- name: aes_keys.txt - name: aes_keys.txt
path: "Citra/sysdata/aes_keys.txt"
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "AES encryption keys for decrypting 3DS content" note: "AES encryption keys for decrypting 3DS content"
source_ref: "src/core/hw/aes/key.cpp:71-131" source_ref: "src/core/hw/aes/key.cpp:71-131"
- name: shared_font.bin - name: shared_font.bin
path: "Citra/sysdata/shared_font.bin"
system: nintendo-3ds system: nintendo-3ds
required: false required: false
hle_fallback: true hle_fallback: true

View File

@@ -1,5 +1,5 @@
emulator: Craft emulator: Craft
type: game type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/Craft" source: "https://github.com/libretro/Craft"
upstream: "https://github.com/fogleman/Craft" upstream: "https://github.com/fogleman/Craft"

View File

@@ -1,5 +1,5 @@
emulator: Dinothawr emulator: Dinothawr
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/libretro/Dinothawr" source: "https://github.com/libretro/Dinothawr"
upstream: "https://github.com/libretro/Dinothawr" upstream: "https://github.com/libretro/Dinothawr"

View File

@@ -1,5 +1,5 @@
emulator: FFmpeg emulator: FFmpeg
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/FFmpeg" source: "https://github.com/libretro/FFmpeg"
upstream: "https://www.ffmpeg.org/" upstream: "https://www.ffmpeg.org/"

View File

@@ -1,5 +1,5 @@
emulator: Game Music Emu emulator: Game Music Emu
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-gme" source: "https://github.com/libretro/libretro-gme"
upstream: "https://github.com/libgme/game-music-emu" upstream: "https://github.com/libgme/game-music-emu"

View File

@@ -1,5 +1,5 @@
emulator: Gong emulator: Gong
type: game type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/gong" source: "https://github.com/libretro/gong"
upstream: "https://danzaidan.itch.io/" upstream: "https://danzaidan.itch.io/"

View File

@@ -1,5 +1,5 @@
emulator: Image Viewer emulator: Image Viewer
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/RetroArch/tree/master/cores/libretro-imageviewer" source: "https://github.com/libretro/RetroArch/tree/master/cores/libretro-imageviewer"
profiled_date: "2026-03-24" profiled_date: "2026-03-24"

View File

@@ -1,5 +1,5 @@
emulator: Jump 'n Bump emulator: Jump 'n Bump
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/libretro/jumpnbump-libretro" source: "https://github.com/libretro/jumpnbump-libretro"
upstream: "https://github.com/fabiangreffrath/jumpnbump" upstream: "https://github.com/fabiangreffrath/jumpnbump"

View File

@@ -1,5 +1,5 @@
emulator: Lutro emulator: Lutro
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/libretro/libretro-lutro" source: "https://github.com/libretro/libretro-lutro"
upstream: "https://github.com/libretro/libretro-lutro" upstream: "https://github.com/libretro/libretro-lutro"

View File

@@ -47,24 +47,28 @@ notes: |
files: files:
# Data files (system_dir/mame2003/) # Data files (system_dir/mame2003/)
- name: hiscore.dat - name: hiscore.dat
path: "mame2003/hiscore.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/hiscore.c:14,248" source_ref: "src/hiscore.c:14,248"
note: "high score definitions, auto-generated if missing" note: "high score definitions, auto-generated if missing"
- name: cheat.dat - name: cheat.dat
path: "mame2003/cheat.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/cheat.c:383,8249-8255" source_ref: "src/cheat.c:383,8249-8255"
note: "cheat definitions, requires cheats core option enabled" note: "cheat definitions, requires cheats core option enabled"
- name: history.dat - name: history.dat
path: "mame2003/history.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/datafile.c:327,608" source_ref: "src/datafile.c:327,608"
note: "game history and information database" note: "game history and information database"
- name: mameinfo.dat - name: mameinfo.dat
path: "mame2003/mameinfo.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/datafile.c:327,638" source_ref: "src/datafile.c:327,638"

View File

@@ -25,24 +25,28 @@ notes: |
files: files:
- name: hiscore.dat - name: hiscore.dat
path: "mame2003/hiscore.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/hiscore.c:18,225" source_ref: "src/hiscore.c:18,225"
note: "high score definitions, loaded from system_dir/mame2003/" note: "high score definitions, loaded from system_dir/mame2003/"
- name: cheat.dat - name: cheat.dat
path: "mame2003/cheat.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/cheat.c:839,8597-8607" source_ref: "src/cheat.c:839,8597-8607"
note: "cheat definitions, loaded from system_dir/mame2003/" note: "cheat definitions, loaded from system_dir/mame2003/"
- name: history.dat - name: history.dat
path: "mame2003/history.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/datafile.c:51,619-623" source_ref: "src/datafile.c:51,619-623"
note: "game history database, loaded from system_dir/mame2003/" note: "game history database, loaded from system_dir/mame2003/"
- name: mameinfo.dat - name: mameinfo.dat
path: "mame2003/mameinfo.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/datafile.c:52,649-653" source_ref: "src/datafile.c:52,649-653"

View File

@@ -62,24 +62,28 @@ notes: |
files: files:
# Data files (system_dir/mame2003-plus/) # Data files (system_dir/mame2003-plus/)
- name: hiscore.dat - name: hiscore.dat
path: "mame2003-plus/hiscore.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/hiscore.c:15,248" source_ref: "src/hiscore.c:15,248"
note: "high score definitions, compiled into binary and spawned on first run" note: "high score definitions, compiled into binary and spawned on first run"
- name: cheat.dat - name: cheat.dat
path: "mame2003-plus/cheat.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/cheat.c:383,8249-8255" source_ref: "src/cheat.c:383,8249-8255"
note: "cheat definitions, requires cheats core option enabled" note: "cheat definitions, requires cheats core option enabled"
- name: history.dat - name: history.dat
path: "mame2003-plus/history.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/datafile.c:327,608" source_ref: "src/datafile.c:327,608"
note: "game history and information database" note: "game history and information database"
- name: mameinfo.dat - name: mameinfo.dat
path: "mame2003-plus/mameinfo.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/datafile.c:327,638" source_ref: "src/datafile.c:327,638"

View File

@@ -56,12 +56,14 @@ notes: |
files: files:
# Data files (system_dir/mame2010/) # Data files (system_dir/mame2010/)
- name: hiscore.dat - name: hiscore.dat
path: "mame2010/hiscore.dat"
required: false required: false
category: game_data category: game_data
source_ref: "src/emu/hiscore.c:25,353-358" source_ref: "src/emu/hiscore.c:25,353-358"
note: "high score definitions, embedded in binary by default, external via core option mame-external_hiscore" note: "high score definitions, embedded in binary by default, external via core option mame-external_hiscore"
- name: cheat.zip - name: cheat.zip
path: "mame2010/cheat.zip"
required: false required: false
category: game_data category: game_data
source_ref: "src/emu/cheat.c:1027" source_ref: "src/emu/cheat.c:1027"

View File

@@ -1,5 +1,5 @@
emulator: MCSoftserve emulator: MCSoftserve
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/JesseTG/McSoftServe" source: "https://github.com/JesseTG/McSoftServe"
profiled_date: "2026-03-24" profiled_date: "2026-03-24"

View File

@@ -1,5 +1,5 @@
emulator: Moonlight emulator: Moonlight
type: utility type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/rock88/moonlight-libretro" source: "https://github.com/rock88/moonlight-libretro"
upstream: "https://github.com/moonlight-stream/moonlight-embedded" upstream: "https://github.com/moonlight-stream/moonlight-embedded"

View File

@@ -1,5 +1,5 @@
emulator: mpv emulator: mpv
type: utility type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/libretro-mpv" source: "https://github.com/libretro/libretro-mpv"
upstream: "https://github.com/mpv-player/mpv" upstream: "https://github.com/mpv-player/mpv"

View File

@@ -1,5 +1,5 @@
emulator: Mr.Boom emulator: Mr.Boom
type: game type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/libretro/mrboom-libretro" source: "https://github.com/libretro/mrboom-libretro"
upstream: "https://github.com/libretro/mrboom-libretro" upstream: "https://github.com/libretro/mrboom-libretro"

View File

@@ -36,6 +36,7 @@ notes: |
files: files:
- name: "Doukutsu.exe" - name: "Doukutsu.exe"
path: "nxengine/Doukutsu.exe"
category: game_data category: game_data
system: cave-story system: cave-story
description: "Cave Story freeware executable (data source for music, sfx, bitmaps, wavetable)" description: "Cave Story freeware executable (data source for music, sfx, bitmaps, wavetable)"
@@ -47,6 +48,7 @@ files:
notes: "Placed in system/nxengine/. The core extracts ORG music, PXT sounds, stage tile attributes, BMP graphics, and wavetable from this binary at each launch." notes: "Placed in system/nxengine/. The core extracts ORG music, PXT sounds, stage tile attributes, BMP graphics, and wavetable from this binary at each launch."
- name: "data/" - name: "data/"
path: "nxengine/data/"
category: game_data category: game_data
system: cave-story system: cave-story
description: "Full game asset directory tree (399 files: sprites, NPC sheets, stage maps, scripts, backgrounds)" description: "Full game asset directory tree (399 files: sprites, NPC sheets, stage maps, scripts, backgrounds)"
@@ -55,6 +57,7 @@ files:
notes: "Must contain root assets (Arms.pbm, MyChar.pbm, etc.), Npc/ (36 sprite sheets), and Stage/ (333 map/script/tileset files). All files from the original freeware release." notes: "Must contain root assets (Arms.pbm, MyChar.pbm, etc.), Npc/ (36 sprite sheets), and Stage/ (333 map/script/tileset files). All files from the original freeware release."
- name: "data/npc.tbl" - name: "data/npc.tbl"
path: "nxengine/data/npc.tbl"
category: game_data category: game_data
system: cave-story system: cave-story
description: "NPC attribute table (entity behavior flags, HP, damage, display rect offsets)" description: "NPC attribute table (entity behavior flags, HP, damage, display rect offsets)"
@@ -63,6 +66,7 @@ files:
notes: "Located in system/nxengine/data/. Used to validate data directory presence and to load NPC behavior attributes." notes: "Located in system/nxengine/data/. Used to validate data directory presence and to load NPC behavior attributes."
- name: "data/sprites.sif" - name: "data/sprites.sif"
path: "nxengine/data/sprites.sif"
category: game_data category: game_data
system: cave-story system: cave-story
description: "Sprite information file (sprite positions, sizes, animation data)" description: "Sprite information file (sprite positions, sizes, animation data)"
@@ -72,6 +76,7 @@ files:
notes: "Not shipped in the freeware distribution. If missing, the core uses a compiled-in copy (sprites_sif.h)." notes: "Not shipped in the freeware distribution. If missing, the core uses a compiled-in copy (sprites_sif.h)."
- name: "tilekey.dat" - name: "tilekey.dat"
path: "nxengine/tilekey.dat"
category: game_data category: game_data
system: cave-story system: cave-story
description: "Tile attribute lookup table (maps tile codes to collision/behavior attributes)" description: "Tile attribute lookup table (maps tile codes to collision/behavior attributes)"

View File

@@ -1,5 +1,5 @@
emulator: ONScripter Yuri emulator: ONScripter Yuri
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/YuriSizuku/OnscripterYuri" source: "https://github.com/YuriSizuku/OnscripterYuri"
upstream: "https://github.com/YuriSizuku/OnscripterYuri" upstream: "https://github.com/YuriSizuku/OnscripterYuri"

View File

@@ -1,5 +1,5 @@
emulator: Pascal Pong emulator: Pascal Pong
type: game type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/pascal-pong-libretro" source: "https://github.com/libretro/pascal-pong-libretro"
upstream: "https://github.com/libretro/pascal-pong-libretro" upstream: "https://github.com/libretro/pascal-pong-libretro"

View File

@@ -1,5 +1,5 @@
emulator: PocketCDG emulator: PocketCDG
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-pocketcdg" source: "https://github.com/libretro/libretro-pocketcdg"
upstream: "https://github.com/redbug26/libretro-pocketcdg" upstream: "https://github.com/redbug26/libretro-pocketcdg"

View File

@@ -1,5 +1,5 @@
emulator: PuzzleScript emulator: PuzzleScript
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/nwhitehead/pzretro" source: "https://github.com/nwhitehead/pzretro"
upstream: "https://github.com/increpare/PuzzleScript" upstream: "https://github.com/increpare/PuzzleScript"

View File

@@ -1,5 +1,5 @@
emulator: Redbook emulator: Redbook
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/redbook" source: "https://github.com/libretro/redbook"
profiled_date: "2026-03-25" profiled_date: "2026-03-25"

View File

@@ -1,5 +1,5 @@
emulator: RemoteJoy emulator: RemoteJoy
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-remotejoy" source: "https://github.com/libretro/libretro-remotejoy"
upstream: "https://github.com/akiraink/RemoteJoyLite" upstream: "https://github.com/akiraink/RemoteJoyLite"

View File

@@ -1,5 +1,5 @@
emulator: ROM Cleaner emulator: ROM Cleaner
type: utility type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/JesseTG/rom-cleaner" source: "https://github.com/JesseTG/rom-cleaner"
upstream: "https://github.com/JesseTG/rom-cleaner" upstream: "https://github.com/JesseTG/rom-cleaner"

View File

@@ -1,5 +1,5 @@
emulator: Stone Soup emulator: Stone Soup
type: game type: libretro
core_classification: frozen_snapshot core_classification: frozen_snapshot
source: "https://github.com/libretro/crawl-ref" source: "https://github.com/libretro/crawl-ref"
upstream: "https://github.com/crawl/crawl" upstream: "https://github.com/crawl/crawl"

View File

@@ -1,5 +1,5 @@
emulator: Super Bros War emulator: Super Bros War
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/libretro/superbroswar-libretro" source: "https://github.com/libretro/superbroswar-libretro"
upstream: "https://github.com/mmatyas/supermariowar" upstream: "https://github.com/mmatyas/supermariowar"

View File

@@ -1,5 +1,5 @@
emulator: Syobon Action emulator: Syobon Action
type: game type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/iyzsong/syobonaction-libretro" source: "https://github.com/iyzsong/syobonaction-libretro"
upstream: "https://github.com/akemin-dayo/OpenSyobonAction" upstream: "https://github.com/akemin-dayo/OpenSyobonAction"

View File

@@ -1,5 +1,5 @@
emulator: test emulator: test
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: test_netplay emulator: test_netplay
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
profiled_date: "2026-03-25" profiled_date: "2026-03-25"
core_version: "1" core_version: "1"

View File

@@ -1,5 +1,5 @@
emulator: testaudio_callback emulator: testaudio_callback
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: testaudio_no_callback emulator: testaudio_no_callback
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: testaudio_playback_wav emulator: testaudio_playback_wav
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: testgl emulator: testgl
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: testgl_compute_shaders emulator: testgl_compute_shaders
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: testgl_ff emulator: testgl_ff
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: null upstream: null

View File

@@ -1,5 +1,5 @@
emulator: testinput_buttontest emulator: testinput_buttontest
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: testretroluxury emulator: testretroluxury
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/retroluxury" source: "https://github.com/libretro/retroluxury"
upstream: "https://github.com/leiradel/retroluxury" upstream: "https://github.com/leiradel/retroluxury"

View File

@@ -1,5 +1,5 @@
emulator: testsw emulator: testsw
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
source_ref: "video/software/rendering/libretro-test.c" source_ref: "video/software/rendering/libretro-test.c"

View File

@@ -1,5 +1,5 @@
emulator: testsw_vram emulator: testsw_vram
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: testvulkan emulator: testvulkan
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: testvulkan_async_compute emulator: testvulkan_async_compute
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples"

View File

@@ -1,5 +1,5 @@
emulator: The Powder Toy emulator: The Powder Toy
type: game type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/ThePowderToy" source: "https://github.com/libretro/ThePowderToy"
upstream: "https://github.com/ThePowderToy/The-Powder-Toy" upstream: "https://github.com/ThePowderToy/The-Powder-Toy"

View File

@@ -2,7 +2,7 @@ emulator: MicroW8
profiled_date: "2026-03-25" profiled_date: "2026-03-25"
core_version: "0.2.2" core_version: "0.2.2"
display_name: "MicroW8" display_name: "MicroW8"
type: game type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: https://github.com/libretro/uw8-libretro source: https://github.com/libretro/uw8-libretro
upstream: https://github.com/exoticorn/microw8 upstream: https://github.com/exoticorn/microw8

View File

@@ -1,5 +1,5 @@
emulator: vidtest emulator: vidtest
type: test type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/schellingb/vidtest_libretro" source: "https://github.com/schellingb/vidtest_libretro"
profiled_date: "2026-03-25" profiled_date: "2026-03-25"

View File

@@ -1,5 +1,5 @@
emulator: vitaQuakeIII emulator: vitaQuakeIII
type: game type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/vitaquake3" source: "https://github.com/libretro/vitaquake3"
upstream: "https://github.com/ioquake/ioq3" upstream: "https://github.com/ioquake/ioq3"

View File

@@ -1,5 +1,5 @@
emulator: vitavoyager emulator: vitavoyager
type: game type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/vitavoyager" source: "https://github.com/libretro/vitavoyager"
upstream: "https://github.com/zturtleman/lilium-voyager" upstream: "https://github.com/zturtleman/lilium-voyager"

View File

@@ -1,5 +1,5 @@
emulator: WASM-4 emulator: WASM-4
type: game type: libretro
core_classification: game_engine core_classification: game_engine
source: "https://github.com/aduros/wasm4" source: "https://github.com/aduros/wasm4"
upstream: "https://github.com/aduros/wasm4" upstream: "https://github.com/aduros/wasm4"

View File

@@ -313,6 +313,13 @@ def resolve_local_file(
aliases = file_entry.get("aliases", []) aliases = file_entry.get("aliases", [])
names_to_try = [name] + [a for a in aliases if a != name] names_to_try = [name] + [a for a in aliases if a != name]
# When name contains a path separator (e.g. "res/tilemap.bin"), also
# try the basename since by_name indexes filenames without directories
if "/" in name:
name_base = name.rsplit("/", 1)[-1]
if name_base and name_base not in names_to_try:
names_to_try.append(name_base)
# When dest_hint contains a path, also try its basename as a name # When dest_hint contains a path, also try its basename as a name
# (handles emulator profiles where name: is descriptive and path: is # (handles emulator profiles where name: is descriptive and path: is
# the actual filename, e.g. name: "MDA font ROM", path: "mda.rom") # the actual filename, e.g. name: "MDA font ROM", path: "mda.rom")