Files
libretro/emulators/neocd.yml
T
Abdessamad Derraz 37a5bd05ff docs: state .info facts in profile notes
Ten notes and comments called .info entries phantom, misleading or
incorrectly written. They now say what the .info declares and what
the code reads, and a prose test refuses those verdicts in profiles.
2026-10-21 05:10:45 +02:00

125 lines
4.0 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"
source_commit: "b1e04c738cb48a1dae0574b8877f6a116d270ca1"
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:70-106,
src/path.cpp:7 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:43).
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), so the core never opens these files.
.info declares firmware_count=12. The core reads 10 of them and builds
the two Y-ZOOM entries itself.
.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"