-
Notifications
You must be signed in to change notification settings - Fork 2
Neo Geo
Neo Geo has its own dedicated section in the library, separate from Arcade.
Geolith uses .neo ROM files — a self-contained format that doesn't require the split/merged ROM sets typical of MAME or FBNeo. If you also have a standard arcade romset with Neo Geo .zip files, those import under Arcade (via FBNeo) as usual. The two collections are independent and don't conflict.
I think I smell garlic. 🧄 More information about this core and it's requirements can be found here https://github.com/libretro/geolith-libretro.
Requires neogeo.zip and aes.zip in the system folder.
Download the Neo Geo (Geolith) DAT file from Preferences → Cores / Extras for automatic game title and artwork detection during import.
Neo Geo achievements work in Emutastic via Geolith as of v1.6.7 — a first for any Neo Geo libretro core. RetroAchievements' Neo Geo sets live under the Arcade system and identify games by filename hash (the MD5 of the file's basename with extension stripped), matching the canonical MAME shortname (mslug3, kof98, garou, etc.). Two things need to be true for unlocks to fire:
-
The
.neofile's basename must be the MAME shortname. Geolith shipsrename-neo.sh -min its repo for converting verbose dump names. Pre-renamed romsets (e.g. LunaGarlic) are the easiest path — files are already namedmslug3.neo,kof98.neo, etc. If your.neofiles have verbose names likeMetal Slug 3 (NGM-2560).neoor hybrids likeMetal Slug 3 (mslug3).neo, the hash won't match RA's database. The filename basename is the entire hash input. -
You need a recent Geolith build with the byteswap shadow buffer. RetroAchievements' existing Neo Geo sets were authored against FBNeo's memory byte order, which differs from Geolith's by a 16-bit byteswap. Carmiker (Geolith's maintainer) added a libretro-side shadow buffer that exposes work RAM in the FBNeo-compatible layout to
retro_get_memory_data(RETRO_MEMORY_SYSTEM_RAM). The fix is on the libretro buildbot — refresh Geolith via Preferences → Cores → Update All if you don't already have it.
Once both are in place, identification triggers automatically at game launch and achievement unlocks fire during play, exactly the same way they do on any other supported system. Tested end-to-end against Metal Slug 3 (71 achievements).
The matching set lives under RA's Arcade system rather than as a separate Neo Geo console — RA conflates Neo Geo cart and arcade catalogues. Don't be alarmed if game IDs look "arcade" (e.g. Metal Slug 3 is game 11771 under Arcade); that's expected.
There's also a small upstream change pending in rcheevos to register the .neo extension as Arcade content — rcheevos PR #517. This is only relevant for libretro frontends that don't pass console_id explicitly to rcheevos; Emutastic passes it explicitly so identification already works without that PR landing. RetroArch users of Geolith would need it to merge before their builds will identify .neo files correctly.
As of v1.6.7 Neo Geo CD is its own library entry (sidebar: "Neo Geo CD"), separate from the cart side. Same core (Geolith handles both via cart/CD mode auto-detection from loaded content), separate UI section — the same pattern TG16 and TurboGrafx-CD use.
Geolith CD mode loads .chd (compressed, self-contained), .cue (with sidecar .bin and .mp3/.wav audio tracks), or .iso (data track alone, audio tracks optional). CHD is the cleanest if you have it — single file, no track-management.
Three files required, all in [DataRoot]/System/:
-
neogeo.zip— same cart BIOS Neo Geo uses, reused by Geolith in CD mode -
aes.zip— same AES BIOS as the cart side -
neocdz.zip— the CDZ BIOS archive, containingneocd.bin,000-lo.lo, and the uni-bioscd BIOS variants. This is the MAMEneocdzromset; if your copy ofneocdz.zipis missing000-lo.lo, Geolith will refuse to load withFailed to load 000-lo.lo from BIOS archive!. The canonical version contains it; some redistributions omit it because they assume000-lo.lowill be picked up fromneogeo.zip(it won't — Geolith expects it insideneocdz.zipspecifically).
Download the Neo Geo CD DAT file from Preferences → Cores / Extras for automatic title and artwork detection during import. The DAT is the libretro mirror of Redump's NGCD set — SHA1-indexed against the data track (Track 01) of each disc.
Neo Geo CD achievements are fully working as of v1.7.2. Identification routes through RC_CONSOLE_NEO_GEO_CD (rcheevos console 56) using content-hash of the data track. The CD-mode byteswap shadow buffer (carmiker's follow-up to the cart-side patch) exposes the 2 MB PRAM in FBNeo-compatible byte order so achievement triggers fire correctly.
All disc formats work for identification — .chd, .cue + .bin, and .iso. Emutastic's libchdr-backed cdreader handles CHD hashing natively, so unlike RetroArch there is no need to convert CHDs to cue+bin for achievement support.
The byteswap shadow buffer in Geolith was implemented by carmiker (Geolith's author) after a technical discussion about how RA's Neo Geo sets read memory. Emutastic's role was the empirical end-to-end validation against the new build.
Console Notes
- Nintendo 64
- Nintendo 3DS
- GameCube
- Sega Saturn
- Dreamcast
- PlayStation
- PlayStation 2
- PlayStation Portable
- TurboGrafx-CD
- Neo Geo
- Arcade
- Vectrex
- Philips CD-i
- Atari Jaguar
Features
- Artwork & Metadata
- Cheats
- Cloud Sync
- Disc-Based Systems
- Disk Swapping
- Portable Mode
- RetroAchievements
- ROM Hacks
- Hardcore Compliance
Technical
Platforms
Legal