Skip to content

NeoCD - RetroBIOS

Type libretro
Classification pure_libretro
Source https://github.com/libretro/neocd_libretro
Version 2022
Profiled 2026-03-24
Cores neocd
Systems snk-neogeo-cd
Technical 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).

10 files | 0 required, 10 optional | 10 in repo, 0 missing

neocd_f.rom -optional

front-sp1.bin -optional

neocd_sf.rom -optional

neocd_t.rom -optional

top-sp1.bin -optional

neocd_st.rom -optional

neocd_z.rom -optional

neocd.bin -optional

neocd_sz.rom -optional

uni-bioscd.rom -optional

Generated on 2026-03-25T14:56:43Z