SNK - Neo Geo AES / MVS / CD / CDZ (Geolith)¶
Background¶
Geolith is a highly accurate Neo Geo AES/MVS/CD/CDZ emulator written in ISO C11. Geolith takes a different approach to Neo Geo emulation than most existing emulators, aiming for a home-console-first experience and using single file ROMs (which never need to be updated) similar to a typical home console emulator. Despite the focus on the home experience, Geolith also fully supports arcade mode.
Cartridge systems support TerraOnion's .neo file format only. CD systems support .bin/.cue and .chd disc images.
The Geolith core has been authored by
- Rupert Carmichael (carmiker)
- Romain Tisserand (Neo Geo CD)
The Geolith core is licensed under
A summary of the licenses behind RetroArch and its cores can be found here.
BIOS¶
Geolith requires a BIOS. Which BIOS archive is required depends on the system being emulated.
Required or optional firmware files go in the frontend's system directory.
Attention
Geolith requires BIOS files to function. Place the following files from a recent MAME set in RetroArch's system directory:
| Filename | Description |
|---|---|
| aes.zip | Neo Geo AES BIOS - Required for AES (Home Console) mode |
| neogeo.zip | Neo Geo MVS BIOS - Required for MVS (Arcade) and Universe BIOS |
| neocd.zip | Neo Geo CD BIOS - Required for CD Front Loader and Top Loader |
| neocdz.zip | Neo Geo CDZ BIOS - Required for all CD systems |
| irrmaze.zip | The Irritating Maze BIOS - Optional, required for trackball input |
Notes on BIOS contents:
- AES mode loads
neo-po.bin(Japan) orneo-epo.bin(all other regions) from aes.zip. - MVS mode loads the region-appropriate System ROM from neogeo.zip:
sp-u2.sp1(USA),japan-j3.bin(Japan),sp-45.sp1(Asia),sp-s2.sp1(Europe). - Universe BIOS mode loads
uni-bios_4_0.romfrom neogeo.zip. This file is not part of a standard MAME set and must be added to the archive. - CD Front Loader loads
front-sp1.binand CD Top Loader loadstop-sp1.bin, both from neocd.zip. Both also require000-lo.lo, which is read from neocdz.zip, so both archives are required for Front Loader and Top Loader modes. - CDZ mode loads
neocd.binfrom neocdz.zip, and CD Universe BIOS mode loadsuni-bioscd33.romfrom neocdz.zip.
Extensions¶
Content that can be loaded by the Geolith core have the following file extensions:
- .neo
- .cue
- .chd
Features¶
Frontend-level settings or features that the Geolith core respects.
| Feature | Supported |
|---|---|
| Restart | ✔ |
| Screenshots | ✔ |
| Saves | ✔ |
| States | ✔ |
| Rewind | ✔ |
| Netplay | ✔ |
| Core Options | ✔ |
| Memory Monitoring (achievements) | ✔ |
| RetroArch Cheats | ✔ |
| Native Cheats | ✕ |
| Controls | ✔ |
| Remapping | ✔ |
| Multi-Mouse | ✕ |
| Rumble | ✕ |
| Sensors | ✕ |
| Camera | ✕ |
| Location | ✕ |
| Subsystem | ✕ |
| Softpatching | ✕ |
| Disk Control | ✕ |
| Username | ✕ |
| Language | ✕ |
| Crop Overscan | ✔ |
| LEDs | ✕ |
Note
Softpatching is unavailable because the core sets need_fullpath, which is required for CHD support.
Directories¶
The Geolith core's library name is 'Geolith'
The Geolith core saves/loads to/from these directories.
Frontend's Save directory
| File | Description |
|---|---|
| *.nv | NVRAM save |
| *.mcr | Memory Card save |
| *.srm | Cartridge battery save |
| *.brm | CD Backup RAM save |
Frontend's State directory
| File | Description |
|---|---|
| *.state# | State |
Geometry and timing¶
- The Geolith core's core provided FPS is 59.599484 for AES and 59.185606 for MVS. CD systems use 59.599484.
- The Geolith core's core provided sample rate is 55943.49Hz for AES and 55555Hz for MVS. On CD systems the chip audio is resampled to match CDDA at 44100Hz.
- The Geolith core provides adjustable overscan masking and aspect ratio options
Core options¶
The Geolith core has the following options that can be tweaked from the core options menu. The default setting is bolded.
Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch.
Options are grouped into System, Video and Hacks categories. Cartridge-only and CD-only options are shown or hidden automatically depending on the content that is loaded.
System¶
-
System Type (Restart) [geolith_system_type] (Neo Geo AES (Home Console)|Neo Geo MVS (Arcade)|Universe BIOS (Community-enhanced BIOS))
Specify the System Type: AES, MVS, or Universe BIOS System
Cartridge content only.
-
Universe BIOS Hardware (Restart) [geolith_unibios_hw] (Neo Geo AES (Home Console)|Neo Geo MVS (Arcade))
Specify the hardware the Universe BIOS should detect
Cartridge content only.
-
CD System Type (Restart) [geolith_cd_system_type] (Neo Geo CD (Front Loader)|Neo Geo CD (Top Loader)|Neo Geo CDZ|Neo Geo CDZ (Universe BIOS))
Specify the CD System Type when loading Neo Geo CD disc images
CD content only.
-
Region (Restart) [geolith_region] (USA|Japan|Asia|Europe)
Specify the Region: USA, Japan, Asia, Europe
-
Memory Card [geolith_memcard] (Off|On)
Enable or Disable the Memory Card
Cartridge content only.
-
Memory Card Write Protect [geolith_memcard_wp] (Off|On)
Enable or Disable the Memory Card Write Protect pin
Cartridge content only.
-
Setting Mode (Restart, DIP Switch) [geolith_settingmode] (Off|On)
Bring up the System ROM menu at boot on arcade systems
Cartridge content only.
-
Four Player Mode (Restart, Asia/Japan MVS Only) [geolith_4player] (Off|On)
Set Four Player (dual MVS cabinet) mode for Asia/Japan MVS systems
Cartridge content only. For use with Kizuna Encounter or homebrew with four player support.
-
Freeplay (DIP Switch) [geolith_freeplay] (Off|On)
Play MVS games without the need to insert coins
Cartridge content only.
Video¶
-
Mask Overscan (Top) [geolith_overscan_t] (16|12|8|4|0)
Mask off pixels hidden by a bezel or border on original CRTs (top)
-
Mask Overscan (Bottom) [geolith_overscan_b] (16|12|8|4|0)
Mask off pixels hidden by a bezel or border on original CRTs (bottom)
-
Mask Overscan (Left) [geolith_overscan_l] (16|12|8|4|0)
Mask off pixels hidden by a bezel or border on original CRTs (left)
-
Mask Overscan (Right) [geolith_overscan_r] (16|12|8|4|0)
Mask off pixels hidden by a bezel or border on original CRTs (right)
-
Palette [geolith_palette] (Resistor Network|Raw)
Set the Palette
-
Aspect Ratio [geolith_aspect] (Perfectly Square Pixels (1:1 PAR)|Ostensibly Accurate NTSC Aspect Ratio (45:44 PAR)|Very Traditional NTSC Aspect Ratio (4:3 DAR))
Set the Aspect Ratio
Hacks¶
-
Sprites-per-line limit (Hack) [geolith_sprlimit] (Hardware Accurate (96)|Double (192)|Triple (288)|MAX 381 MEGA PRO-GEAR SPEC)
Set the sprites-per-line limit - increasing causes glitches in some games
-
Overclocking (Hack) [geolith_oc] (Off|On)
Annihilate your accuracy with The 24MHz Shock - expect glitches
-
Disable ADPCM Accumulator Wrap (Hack) [geolith_disable_adpcm_wrap] (Off|On)
ADPCM Accumulator Wrap may be disabled to fix sound effects in buggy games, for example Ganryu and Nightmare in the Dark. This is a hack, and should remain Off for most games.
-
CD Speed Hack [geolith_cd_speed_hack] (Enabled|Disabled)
Patch BIOS busy-wait loops to reduce loading times (Does not work for Universe BIOS)
CD content only.
-
CD DMA Length Limit [geolith_cd_dma_len_limit] (Enabled|Disabled)
Correct the BIOS upload pointers when a CD buffer DMA is larger than one sector, fixing corrupted sound in Art of Fighting's bonus stage. This is a hack, and real hardware behaviour is unconfirmed.
CD content only.
-
Skip CD Loading [geolith_cd_skip_loading] (Enabled|Disabled)
Fast-forward through CD loading screens
CD content only.
Input Devices¶
| Player ½/¾ Joysticks | RetroPad Inputs |
|---|---|
| Up | ![]() |
| Down | ![]() |
| Left | ![]() |
| Right | ![]() |
| A | ![]() |
| B | ![]() |
| C | ![]() |
| D | ![]() |
| Select/Coin | ![]() |
| Start | ![]() |
| C+D | ![]() |
| A+B | ![]() |
| B+C | ![]() |
| A+B+C | ![]() |
| Test (Arcade, Player 1 Only) | ![]() |
| Service (Arcade, Player 1 Only) | ![]() |
| V-Liner | RetroPad Inputs |
|---|---|
| Up | ![]() |
| Down | ![]() |
| Left | ![]() |
| Right | ![]() |
| Payout Table/Big | ![]() |
| Bet/Small | ![]() |
| Stop/Double-Up | ![]() |
| Start/Collect | ![]() |
| Operator Menu | ![]() |
| Clear Credit | ![]() |
| Coin 1 | ![]() |
| Coin 2 | ![]() |
| Hopper Out | ![]() |
The Irritating Maze uses a trackball, which is mapped to the left analog stick. This input is only available in MVS mode, and requires irrmaze.zip in the system directory. It is also possible to play The Irritating Maze using the Universe BIOS with a cheat enabled for joystick controls.
| The Irritating Maze | RetroPad Inputs |
|---|---|
| Trackball X | Left Analog X |
| Trackball Y | Left Analog Y |
| Left A | ![]() |
| Left B | ![]() |
| Right A | ![]() |
| Right B | ![]() |
| Start | ![]() |
| Coin | ![]() |
| Service | ![]() |
Compatibility¶
- Geolith is compatible with 100% of the commercially released Neo Geo AES and MVS libraries. Most games work in both modes, but some require MVS mode.
- Geolith is compatible with 100% of the commercially released Neo Geo CD library.
- All bootlegs and hacks from the MAME set are compatible, the majority of which require being run in MVS mode.
- Some MVS releases will exhibit glitches when run on an AES BIOS. Home console releases are preferred when running in AES mode.
- Dedicated JAMMA PCB systems and PAL mode are not currently supported.
External Links¶
- Upstream Geolith Repository
- Libretro Geolith Core info file
- Libretro Geolith Repository
- Report Geolith Core Issues Here















