Skip to content

Geolith - RetroBIOS

Type libretro
Classification Official ports
Source https://github.com/libretro/geolith-libretro
Upstream https://gitlab.com/jgemu/geolith
Version 0.4.1
Profiled 2026-08-07
Cores geolith
Systems snk-neogeo-mvs, snk-neogeo-aes, snk-neogeo-cd
Technical notes

Geolith emulates the Neo Geo AES, MVS, CD, and CDZ. Cartridge systems use .NEO format ROMs; CD systems use .cue or .chd disc images. System ROMs come from MAME-format ZIP archives in the system directory.

Cartridge content opens aes.zip (System Type = AES, default) or neogeo.zip (MVS and Universe BIOS) (libretro/libretro.c:1243-1246). CD content opens neocd.zip (Front/Top Loader) or neocdz.zip (CDZ, default, and CD Universe BIOS) (libretro/libretro.c:1234-1242); Front/Top Loader additionally reads 000-lo.lo from neocdz.zip, so neocdz.zip is needed in every CD mode (libretro/libretro.c:1253-1260). The Irritating Maze in MVS mode loads 236-bios.sp1 from irrmaze.zip for trackball support; without it the game runs but the trackball does not work (libretro/libretro.c:1312-1323).

Inside the opened archive, members are extracted by exact filename (src/geo.c:174-271). One 68K BIOS is selected by system type and region (defaults: System Type AES, Region USA): - AES Japan: neo-po.bin - AES other regions: neo-epo.bin - MVS USA: sp-u2.sp1 - MVS Japan: japan-j3.bin - MVS Asia: sp-45.sp1 - MVS Europe: sp-s2.sp1 - Universe BIOS: uni-bios_4_0.rom - CD Front Loader: front-sp1.bin - CD Top Loader: top-sp1.bin - CDZ: neocd.bin - CD Universe BIOS: uni-bioscd33.rom 000-lo.lo is required in every mode; only the Front/Top Loader tolerates its absence from neocd.zip because it comes from neocdz.zip instead (src/geo.c:234-243, 273-285). sfix.sfix and sm1.sm1 are required for MVS and Universe BIOS modes only (src/geo.c:245-267).

The core performs no hash or size validation on System ROMs. CD BIOS family detection and the optional CD speed hack patches use byte patterns and apply only when the 68K BIOS is at least 512 KiB (src/geo_cd.c:1888-1910, 1904-1924). Upstream declares the expected archive MD5s through the Jolly Good API BIOS list (jg.c:220-231); the md5 fields on the archives below are copied from it.

23 files | 11 required, 12 optional | 23 in repo, 0 missing

aes.zip required in repo

  • System: snk-neogeo-aes
  • MD5: ad9585c72130...
  • Source: libretro/libretro.c:1243-1246, jg.c:221-222
  • Platforms: lakka, recalbox, retroarch, retrodeck, retropie
  • Neo Geo AES System ROMs. Opened when System Type is AES (default).

neogeo.zip required in repo

neocd.zip optional in repo

  • System: snk-neogeo-cd
  • MD5: 006a881532f2...
  • Source: libretro/libretro.c:1234-1241, jg.c:225-226
  • Platforms: recalbox
  • Neo Geo CD Front/Top Loader System ROMs. Opened only when CD System is front or top loader.

neocdz.zip required in repo

irrmaze.zip optional in repo

  • System: snk-neogeo-mvs
  • MD5: 0e369df30a70...
  • Source: libretro/libretro.c:1312-1323, jg.c:229-230
  • The Irritating Maze auxiliary BIOS. Loaded in MVS mode for trackball support; on failure the game runs without trackball.

neo-epo.bin required in repo in aes.zip

  • System: snk-neogeo-aes
  • Size: 128.0 KB
  • CRC32: d27a71f1
  • Source: src/geo.c:178-181
  • AES 68K BIOS, non-Japan regions. Default for Region USA.

neo-po.bin optional in repo in aes.zip

  • System: snk-neogeo-aes
  • Size: 128.0 KB
  • CRC32: 16d0c132
  • Source: src/geo.c:178-181
  • AES 68K BIOS, Japan region.

000-lo.lo required in repo in aes.zip

sp-u2.sp1 required in repo in neogeo.zip

  • System: snk-neogeo-mvs
  • Size: 128.0 KB
  • CRC32: e72943de
  • Source: src/geo.c:183-198
  • MVS 68K BIOS, USA. Default for Region USA.

japan-j3.bin optional in repo in neogeo.zip

  • System: snk-neogeo-mvs
  • Size: 128.0 KB
  • CRC32: dff6d41f
  • Source: src/geo.c:183-198
  • MVS 68K BIOS, Japan.

sp-45.sp1 optional in repo in neogeo.zip

  • System: snk-neogeo-mvs
  • Size: 512.0 KB
  • CRC32: 03cc9f6a
  • Source: src/geo.c:183-198
  • MVS 68K BIOS, Asia.

sp-s2.sp1 optional in repo in neogeo.zip

  • System: snk-neogeo-mvs
  • Size: 128.0 KB
  • CRC32: 9036d879
  • Source: src/geo.c:183-198
  • Platforms: misterfpga
  • MVS 68K BIOS, Europe.

uni-bios_4_0.rom optional in repo in neogeo.zip

  • System: snk-neogeo-mvs
  • Size: 128.0 KB
  • CRC32: a7aab458
  • Source: src/geo.c:200-203
  • Universe BIOS 4.0, loaded when System Type is Universe BIOS. Emulated hardware type set by the geolith_unibios_hw option.

000-lo.lo required in repo in neogeo.zip

sfix.sfix required in repo in neogeo.zip

  • System: snk-neogeo-mvs
  • Size: 128.0 KB
  • CRC32: c2ea0cfd
  • Source: src/geo.c:245-255
  • Platforms: misterfpga
  • System FIX layer tiles. Loaded for MVS and Universe BIOS modes.

sm1.sm1 required in repo in neogeo.zip

  • System: snk-neogeo-mvs
  • Size: 128.0 KB
  • CRC32: 94416d67
  • Source: src/geo.c:257-267
  • Z80 sound BIOS. Loaded for MVS and Universe BIOS modes.

front-sp1.bin optional in repo in neocd.zip

top-sp1.bin optional in repo in neocd.zip

000-lo.lo optional in repo in neocd.zip

neocd.bin required in repo in neocdz.zip

uni-bioscd33.rom optional in repo in neocdz.zip

  • System: snk-neogeo-cd
  • Source: src/geo.c:216-219
  • Universe BIOS CD 3.3, loaded when CD System is CD Universe BIOS.

000-lo.lo required in repo in neocdz.zip

236-bios.sp1 optional in repo in irrmaze.zip

  • System: snk-neogeo-mvs
  • Source: src/geo.c:286-299, libretro/libretro.c:1312-1323
  • The Irritating Maze auxiliary 68K BIOS, replaces the MVS BIOS to enable trackball input.

Generated on 2026-09-14T09:03:09Z