Why split Neo Geo system from Arcade in Retropie?

Main purpose of this article is to explain why I have a separate Neo Geo emulator setup and how it differs from arcade machines. Also the history gets covered briefly, so you understand how this unique system originated and why this question arises.

This tutorial is written in context to the advanced RetroPie user with an already working environment on a Raspberry Pi 3B. I will not explain how to install emulators or where to get roms. The reader should have experience with RetroPie and be able to edit text files to follow later instructions. Newcomers should look at the introduction page What is RetroPie? and Getting started with arcade emulation.

Disclaimer / Backup

Do your backup first. Mistakes happen and even the smallest change could fail a system boot or lead to weird unexplainable trouble. When something goes wrong, you can always recover by reverting the latest changes from a known working state. The most secure way is to make a full copy of your micro sd card (assuming you are using RetroPie on a Raspberry Pi and have access to a PC) with an imaging software. To help with that matter, read Making a Backup. Personally I use GNOME Disk Utility in Ubuntu for this task.

A word about fbneo and fbalpha. When I wrote this article, I was using Final Burn Alpha or FBA for short. Later the emulator was replaced with FB Neo, an active fork of it. More on this topic at Goodbye fbalpha, welcome fbneo.

Arcade or home console – Why it matters

Simply because there are fundamental differences; both are using the same Neo Geo core system, but for diverse audiences. MVS is designed as coin operating arcade machines and AES around the idea of a home console. Emulation wise these systems can be switched in the emulator settings, to run the games in arcade or console mode.

Key differences:

  • The arcade uses coin based mechanics to increase extra life or continues with each spent money; there is no logical limit. On the other hand, the console version don‘t have these coin mechanics. The amount of continues are usually pre defined and real world money can‘t change that.
  • Some games on the home console offer additional features, like an option menu or free training mode. And a few roms have specific home editions with slight differences to the base arcade version. More on that later.
  • A few Neo Geo based games are not officially released to the home console, even if they technically run on the same hardware. These roms are playable through the Neo Geo folder too, because it works with the same emulator. Strictly speaking those are still coin based and don‘t belong to a console.
  • The arcade cabinets had those joysticks and big buttons, whereas the console player could change to a gamepad. On my RetroPie setup I use a fightstick to play arcade games and a SNES like controller to play Neo Geo console. It is possible to have separate settings.

A brief history of the Neo Geo eco system

In a time when 8-bit ruled the world and 16-bit systems was about to arrive the market, SNK was already a successful company. Some of their popular creations, such as Vanguard, Ikari Warriors and Crystalis are remembered as remarkable entries in the history of videogames. These were developed before the Neo Geo era and therefore are not compatible with it.

SNK Headquarters

1990 is the year when SNK introduced the world a new unique system for coin based operating arcade machines, the NEO GEO MVS; short for Multi Video System. The specialty was its cartridge based concept, where each cabinet could hold up multiple swap able cartridges. SNK also released a home console for the end user with the same core under the hood and only one cartridge slot, the NEO GEO AES; short for Advanced Entertainment System. Due to the fact the technical specifications was identical to its arcade counter part, the whole system and its games got very expensive. The performance of this 24-bit marketed machine was far ahead of its time.

Multiple successors followed up, a CD based version and even a new system with 3D capabilities. The rest of the article talks about classic Neo Geo only.

How to setup separate MVS and AES emulation

The article covers the BIOS and provides instructions how to achieve the goal to get both systems running with different settings. A talk about the various ROM versions follow. I assume the reader have a RetroPie installation on a Raspberry Pi 3B and uses FB Neo (or previously FB Alpha) as its emulator to play Neo Geo games.

The problem

Because I am using the same emulator to play arcade and the home version of games, some settings are shared. Even if the ROMs are put in their respective system folders, fba and neogeo, the emulator is still the same for both. Run a Neo Geo based game through FB Neo system view in EmulationStation, open up RetroArch menu with Hotkey+X. In the submenu of options is an entry “Force Neo Geo mode”. Changing it to MVS will activate the arcade coin mechanics. When I want to play the console AES version, I copy the rom to neogeo ROMs folder and run it as Neo Geo system from EmulationStation. Now the setting “Force Neo Geo mode” can be set back to AES for that matter.

At this point you might realize this MVS/AES setting is shared. Regardless where you are starting your game, be it from FB Neo or from Neo Geo menu, only the last set of this mode will be saved. The fix is relatively easy, but requires editing text files.

The cure

One way to solve this dilemma is by having two independent configuration files for both systems. This approach comes with the side effect that all other settings are also independent too. First, create a file at

/opt/retropie/configs/neogeo/neogeo-core-options.cfg

and make sure it contains the line:

fbneo-neogeo-mode = "AES"

or if you are using FB Alpha (the emulator replaced by FB Neo), you might add this line instead:

fba-neogeo-mode = "AES"

Open the file at

/opt/retropie/configs/neogeo/retroarch.cfg 

and make sure it contains the line:

core_options_path = "/opt/retropie/configs/neogeo/neogeo-core-options.cfg"

That’s it. Now you should be able to setup both systems individually. Running a game through FB Neo system will have different emulator settings than running them through Neo Geo system. Thank you to mediamogul for providing the solution. And thank you to CapNinja for reporting about the deprecated FBA issue.

What about Unibios and what is neogeo.zip?

You may have read or encountered the term Unibios. What is this thing and how is it related to Neo Geo? See, the Neo Geo needs a BIOS file called neogeo.zip to boot up and function. In that firmware file the MVS and AES system functionalities are stored. Then there is another third party developed BIOS, the Unibios. Not always included in the neogeo.zip file, but it is free and you can add it yourself if you want.

The UNIVERSE BIOS is for owners of MVS or AES hardware that want an easy way to change country region or between Arcade or Console mode on boot. Also included are other features that are not possible using the standard MVS bios.
The UNIVERSE BIOS is also designed to give easy access to things like inserting coins, test mode and memory card management when using the joystick ports only. Of course the BIOS still allows standard operation too.

Source: http://unibios.free.fr/whatisit.html

Then why not using it?

You can think of the Unibios as the ultimate firmware with most options under a single hood. My problem with it is, that settings are saved per single game and not system wide. In order to have two independent and consistent default behavior for both systems, the Unibios does not deliver this functionality (at least in my experience, if you disagree, please let me know). If you want read more about how to setup BIOS, look in the documentation to Neo Geo BIOS.

Finding the “right” games

Running the correct system version is only half the story. The other part is about the games itself. As mentioned earlier, there are arcade machines utilizing the Neo Geo engine, without ever getting an official console release. Those titles would work in the Neo Geo systems folder as well, but if you are like me, then you can go one step further and pick up those console releases only. My goal is to have the MVS and AES versions split up into respectively FB Neo arcade (fba ROMs folder) and Neo Geo console (neogeo ROMs folder) systems.

Wikipedia have a complete list of all Neo Geo games including the desired information. In my first step, I look up a title in question, in example “Shock Troopers”. According to the page, the game got a MVS cartridge release only. So I exclude it from my Neo Geo console and put the base ROM to my FB Neo folder instead. The next game is more interesting. Looking up “King of Fighters ‘95” reveals a console release.

After that, I head over to the FB Neo compatibility list and use CTRL+F shortcut to start the search for the page in my browser. There are 4 different entries of the same game:

kof95 The King of Fighters '95 (NGM-084)
kof95a The King of Fighters '95 (NGH-084, alternate board)
kof95h The King of Fighters '95 (NGH-084)
kof95sp The King of Fighters '95 (Special 2017, hack) [Hack]

The first entry is usually the regular MVS ROM, in this case kof95. Because this game got a home version, we are interested in that particular ROM. You can tell it by NGH in the title, which means NEO GEO HOME (AES) and NGM means NEO GEO MVS. In this case kof95h is what I want. Be aware, many games don’t have dedicated AES ROMs, so you can use the standard ROM. I did this research with every title in my library to ensure including the correct version and console only games.

Solution to unintentional parents

Quick note: Parent ROMs are the main of a family of ROMs. Specific derived versions of a game may need at least it’s parent, depending on how the files were build.

And that leads to our next problem. Each special version of a ROM still need its parent to function. In case of kof95h its parent kof95 would be required too. But I only want the home version to appear in my list, so it looks clean. One solution is to treat the base kof95 ROM like a BIOS file and put it into a dedicated BIOS folder outside of the ROM folder. For this, I created in my RetroPie base BIOS directory a subfolder for Neo Geo:

/home/pi/RetroPie/BIOS/neogeo

and put all my BIOS files and unintentional parent ROMs there. Also you need to tell your emulator about this location. Selecting folder can be done through GUI in the emulator or by editing the corresponding file directly in text editor. Open up the file located at

/opt/retropie/configs/neogeo/retroarch.cfg

and make sure this line is found:

system_directory = "~/RetroPie/BIOS/neogeo"

which will point to the previously created folder. This way the emulator can still find the parent ROM without showing them up in my list of official games. Perfect!

My list of Neo Geo AES roms

My personal selection contains 90 titles and is not a complete set. If you are interested, you can download the list as text files. Update: I added links to Github, for those who don’t like Google.

Closing words

So, that’s it. Hopefully you enjoyed the small ride and that everything worked out for you. I wrote more than expected and had ton of fun. If you think about it, the article follows a simple idea, yet faced a lot of problems and complications than initially thinking. My main language is German, so apologize if there are some confusing or strange texts. Just don’t forget to make backups before doing anything.

I want to thank the RetroPie community for the help whenever I had a problem. Amazing folks over there. If you need help, don’t hesitate to ask your question in the Help and Support section. And lastly, this article is based on a forum post I wrote earlier, Why separate Neo Geo system from Arcade?.

Weblinks

Relevant discussions:

Documentary articles and sites:

Video documentation at YouTube:

Video reviews or other game based content at YouTube:

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.