Files
libretro/emulators/neocd.yml
Abdessamad Derraz a37bf11524 fix: add path fields for correct pack subdirectory placement
Cores that load files from system_dir subdirectories (same_cdi/bios/,
neocd/, cannonball/, Citra/sysdata/, mame2003/, etc.) need path: on
each file entry so cross-reference and pack generation place files at
the correct destination. Also fixes neocd.yml using non-standard dest:
field instead of path:.

Closes #41
2026-03-29 00:59:57 +01:00

123 lines
3.9 KiB
YAML

emulator: NeoCD
type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/neocd_libretro"
upstream: "https://github.com/libretro/neocd_libretro"
profiled_date: "2026-03-24"
core_version: "2022"
display_name: "SNK - Neo Geo CD (NeoCD)"
cores:
- neocd
systems:
- snk-neogeo-cd
notes: |
Complete rewrite of NeoCD in C++11. Scans {system_dir}/neocd/ for any .rom
or .bin file, also inside .zip archives (src/libretro_bios.cpp:69-105,
src/path.cpp:6 NEOCD_SYSTEM_SUBDIR = "neocd").
BIOS identified by binary pattern matching at fixed ROM addresses, not by
filename (src/bios.cpp:167-206). Files are auto byte-swapped if needed
(src/bios.cpp:148-160). Files smaller than 524288 bytes are skipped
(src/libretro_bios.cpp:42).
Three hardware families detected: Front Loader, Top Loader, CDZ. Modified
variants recognized: SMKDan 0.07, SMKDan 0.07b, Universe BIOS 3.2,
Universe BIOS 3.3 (src/bios.h:11-27). Any single valid BIOS is sufficient;
selection via core options dropdown sorted alphabetically.
Y-ZOOM ROM (ng-lo.rom / 000-lo.lo) listed in .info but generated
algorithmically, never loaded from file (src/memory.cpp:223-253
generateYZoomData, CRC32 E09E253C). These are phantom .info entries.
.info firmware_count=12 but 2 are phantoms (Y-ZOOM), effective count=10.
.info lists uni-bioscd.rom as "Universe BIOS 3.2" but SHA1 matches
Universe BIOS 3.3 (confirmed by GitHub README).
files:
# --- Front Loader family ---
- name: neocd_f.rom
path: "neocd/neocd_f.rom"
system: snk-neogeo-cd
required: false
size: 524288
note: "Front Loader BIOS (big-endian, NeoCD naming)"
source_ref: "src/bios.cpp:59 FRONT_LOADER_SEARCH_PATTERN at 0xC0006C"
- name: front-sp1.bin
path: "neocd/front-sp1.bin"
system: snk-neogeo-cd
required: false
size: 524288
note: "Front Loader BIOS (little-endian, MAME naming)"
source_ref: "src/bios.cpp:59 FRONT_LOADER_SEARCH_PATTERN, src/bios.cpp:148-160 autoByteSwap"
- name: neocd_sf.rom
path: "neocd/neocd_sf.rom"
system: snk-neogeo-cd
required: false
size: 524288
note: "Front Loader BIOS, SMKDan 0.07b"
source_ref: "src/bios.cpp:62 SMKDANBETA_FRONT_SEARCH_PATTERN at 0xC00004"
# --- Top Loader family ---
- name: neocd_t.rom
path: "neocd/neocd_t.rom"
system: snk-neogeo-cd
required: false
size: 524288
note: "Top Loader BIOS (big-endian, NeoCD naming)"
source_ref: "src/bios.cpp:60 TOP_LOADER_SEARCH_PATTERN at 0xC0006C"
- name: top-sp1.bin
path: "neocd/top-sp1.bin"
system: snk-neogeo-cd
required: false
size: 524288
note: "Top Loader BIOS (little-endian, MAME naming)"
source_ref: "src/bios.cpp:60 TOP_LOADER_SEARCH_PATTERN, src/bios.cpp:148-160 autoByteSwap"
- name: neocd_st.rom
path: "neocd/neocd_st.rom"
system: snk-neogeo-cd
required: false
size: 524288
note: "Top Loader BIOS, SMKDan 0.07b"
source_ref: "src/bios.cpp:63 SMKDANBETA_TOP_SEARCH_PATTERN at 0xC00004"
# --- CDZ family ---
- name: neocd_z.rom
path: "neocd/neocd_z.rom"
system: snk-neogeo-cd
required: false
size: 524288
note: "CDZ BIOS (big-endian, NeoCD naming)"
source_ref: "src/bios.cpp:61 CDZ_SEARCH_PATTERN at 0xC0006C"
- name: neocd.bin
path: "neocd/neocd.bin"
system: snk-neogeo-cd
required: false
size: 524288
note: "CDZ BIOS (little-endian, MAME naming)"
source_ref: "src/bios.cpp:61 CDZ_SEARCH_PATTERN, src/bios.cpp:148-160 autoByteSwap"
- name: neocd_sz.rom
path: "neocd/neocd_sz.rom"
system: snk-neogeo-cd
required: false
size: 524288
note: "CDZ BIOS, SMKDan 0.07b"
source_ref: "src/bios.cpp:64 SMKDANBETA_CDZ_SEARCH_PATTERN at 0xC00004"
- name: uni-bioscd.rom
path: "neocd/uni-bioscd.rom"
system: snk-neogeo-cd
required: false
size: 524288
note: "Universe BIOS 3.3, CDZ-based third-party multi-region BIOS"
source_ref: "src/bios.cpp:68 UNIVERSE33_SEARCH_PATTERN at 0xC00150"