Neo Geo Emulation on the Raspberry Pi

UPDATE: New Raspbian Binaries Available

I’m going to start this with saying that the Neo Geo is one of my favorite systems EVER. Over the years I’ve owned multiple Neo Geo Arcade Cabinets, tons of Neo Geo boards, and a drawer full of cartridges for the system. It’s an amazing piece of hardware. The first games came out in 1989, and the system had games still coming out in 2004. There is even a homebrew scene that is still running which releases a game every couple of years.

Last week I started messing with Gngeo, an open source Neo Geo emulator. I have gotten it compiled and running. King of Fighters 98 is running at 60fps. It looks lovely. The configuration was kind of a pain, but I think I have everything working right. So without further ado, below is the guide for installing and running Gngeo on the Raspberry Pi!

  1. If you havent setup /dev/fb0 yet, just go ahead and do sudo chmod 777 /dev/fb0
  2. Download the Gngeo binaries here
  3. Download the Gngeo config file here
  4. Unzip the binaries. They should unzip to a folder called gneogeo
    1. You should have 3 folders, the ones that matter are “bin” and “roms”. Inside “roms” you need to put in a neogeo bios file as well as any legally obtained game files you have. I will not give any hints or tips on where to obtain these files.
  5. On the command line go into the bin folder (cd ~/gneogeo/bin), and type ./gngeo -i ../roms/
    1. The first time it may fail, crash, lockup your pi, or even get into a small gui looking menu. Immediately exit (this can also sometimes cause a crash).
    2. What this first run has done is create a hidden folder in your home folder called .gngeo.
  6. Go into .gngeo (cd ~/.gngeo), and copy the config file you downloaded earlier. This setups the keys and some video stuffs.
  7. Go back into the gneogeo/bin directory and run ./gngeo -i ../roms/
  8. You should now see a gui, press enter on “load game”. You should see a list of roms available to you. Press up and down to get to your desired game, then press enter to start it.
  9. Press 3 to give Player 1 a credit, 4 to give Player 2 a credit. Press 1 to start player 1, 2 to start player 2. Up down left and right control player 1, and z, x, a, and d map to the Neo Geo’s A B C and D buttons.

Press escape when done 🙂

So far I have played King of Fighters 98, Metal Slug X, and Samurai Shodown 2 at full speed with no issues 🙂

Let me know if anyone has any issues or tips.

Edit:  Here is a link to the official site of gngeo

62 thoughts on “Neo Geo Emulation on the Raspberry Pi

    • Hey William, next time you get on IRC msg me and I will try and help sort it out. I’d love to try and get this working.

      If you are getting a Z80 error, it may be the BIOS you are using. Yours might be corrupted.

  1. Pingback: Un émulateur NeoGeo pour le Raspberry Pi | Geek in your face |

  2. followed step by step, runs ok but doesn’t create hidden folder in home folder (i’ve got ‘show hidden’ flagged) i tried to do this manually but not permitted

    • this is working great now, I made some newb mistakes the first time. When is there anyway to make it full screen? i saw in the command line scale is set to 2, is there a way to change that to make the gameplay are larger?

      thanks again for all your help!

  3. Hey, thanks! I can get Metal Slug 3 game loaded, but keyboard won’t work.. hmm.. what is the problem? btw, I am using raspbian pisces.. is there any requirement I should install?

  4. Pingback: Neogeo files | Auctivastoreen

  5. Could someone please give me step by step directions. how to download and unzip the files where to unzip the files to. ive tried everything and cant get it to work.

  6. I downloaded MetalSlug X ROM (which works with Kawaks, not NeorageX) and tried again. I also copied the neogeo.rom in the roms directory. When i select the rom and start loading it, “GnGeo can’t init mslugx, Maybe the romset you’re using is too old”.

    Now what is wrong! :S

    • Actually, I was copied “” from my NeorageX emulator, but i don’t think that is the problem. The same bios file works for any emulator right?

  7. Pingback: Raspberry Pi Türkiye Topluluğu Raspberry Pi ile Neo Geo Oyunlarını Açmak | Raspberry Pi Türkiye Topluluğu

  8. Hi,

    I’ve found this right now… but my RPi is compiling the gngeo source code for a while…
    So, I’m waiting…and will use my compilation..

    I think that not all bios works with gngeo, and the same applies to the ROM files. ROM files must “agree” with the romrc file. I recommend the Universe BIOS 😉

    When I get something I’ll come back here. As my keyboard is a flexible one from China 😛 I’ll try to use my NGS GamePad… with KOF 2003 😀

  9. All I get is a black screen now. When I first ran the new binaries it gave me the gui and saw the roms. I quit out and pasted in the gngeorc stuff into the file that was in .gngeo and now when I run it all I get is a black screen. I’m using the composite out going to a old TV.

  10. When I run it on composite all I get is a black screen. If I run it on hdmi I see the interface and it sees the roms. When I select one (metal slug) and try to run it, the top half of the interface is blacked out and then nothing. no error message, no nothing. Seems to be locked up. I can exit out. I’ve tried installing this 3 times using the old build and the new build. Will some kind person please help me find out what I’m doing wrong? It’s really frustrating.

  11. This is really cool. But I can’t get it to work… I can get a game to load, but the keyboard won’t work, nothing happens when I press keys… Any ideas?

  12. Hey man, great blog. I have managed to learn allot about Linux and the Pi from here. I have Quake 3 and some old MAME games running sweet. Can’t get the Neo Geo to run though. I get the GUI and the rom list but if I try to boot say Metal Slug, the loading screen fills up and then just stops. Any ideas? Probably making a noob mistake but any and all help greatly appreciated. Cheers.

  13. Hi, all is working well, what gngeo version have you used? Colud you give us some instructions for compiling? With my compiled version there are some roms loading, missing sprites, backrounds, poping… but with yours the same rom worked fine without any error. I looked into your and found the rom drivers, tried to import them to my compiled version but they are in .drv format, and it works only with the .rc format…. any idea?

  14. Nice tutorial!!! I have a problem, i want to change the keyboard configuration, but i didn’t know the code (like DOWN=K261, ecc…), where i can find them?

    I’ve found a FAQ on gngeo site that say:

    The easiest way to configure your keyboard is with the folowing method:

    start gngeo with a game (no matter wich one)
    press the F4 key.
    Now, every time you press a key, its scancode is print one the screen.
    So, you just have to press successively the press you want to use, and note the associated scancode somewhere.
    Now edit your gngeorc file at the line p1key (or p2key), and modify the default scancode with yours

    …but when i press F4 nothing happen!!

    Tnx for the help 😉

  15. Hi! many thanks for this great blog and all the work done.

    I’ve manually created the ~/.gngeo and then putted the “gngeorc” within.
    This avoid the error message when the emulator is launched for the first time.

    Anyway, is there anyone who knows how tu use the “~/gneogeo/share/gngeo/” ?
    This can be filled in the “gngeorc” (as the different paths) but when it’s done the emulator complains that the path was already given, even if you launch it without any option 🙁

  16. Hi
    i was albe to run metalslug and others game. terrific.
    just a copuple of things:
    – how to have it full scrreen. righrt now is something like 300×200
    – how to enable the joypad.


  17. Pingback: Authentic Neo Geo experience on the Raspberry Pi « gothi

  18. Hi to all,
    Gneogeo works fine without X and… go FULLSCREEN 🙂
    Simple start gneogeo and you must set vsync = false in the option menu. (differently black screen and freeze).

    No way to enable and configure the joypad (PS2)?


    • if fullscreen doesn’t work you can add these lines in /etc/fb.modes

      mode “320×240”
      geometry 320 240 656 512 16
      timings 0 0 0 0 0 0 0
      rgba 5/11,6/5,5/0,0/16


  19. Hello there. thanks a lot for the binaries and the tutorial. A few weeks ago I got it working perfectly, but yesterday my SD card got corrupted and I had to install everything again. Now I got it working except for the sound from the analog output (there is no sound, or sometimes, some cracking noise). I am using the new binaries and I haven’t done anything different (both times I used the latest Raspbian image from 16-12-2012). Do you know what could be causing this? I checked the sound works with other applications.

  20. Hi, I finished installing and everything runs fine however there is no sound and I can’t get it to go full screen. Any help?

  21. i was able to get gngeo running with sound great in x but through commandline text doesnt show up and there are lines in the screen and through either i cant get the controls to work

  22. Hello,
    most of the errors i had were from the rom/bios, i neede to use the latest for mame, not the old one of my psp, but now its work fine, with an average of 30 fps.
    However i can’t use a joystick as the F4 key don’t show anynthing (sadly). So i don’t know the button of my generic controller. Even worse with a xbox360 controller which isn’t map to /dev/js0…
    Does someone already manage to use a joystick with this emulator? it would make a wonderfull neogeo emulator !

  23. Hi, I am having a bit of trouble. After entering the ./gngeo -i ../roms/ command the gui starts ups without issue, I exit but no .gngeo folder is being created. This leaves me without a directory to put the config file, also when I start the emulator there are no roms listed under load game, is this likely to be related to the aforementioned problem?

    Any help would be greatly appreciated.


  24. Pingback: 라즈베리파이에 네오지오 설치하기(How to install neogeo on R-Pi)

  25. Pingback: 공대팬더의 좌충우돌 이야기 – 네오지오 설치 하기

  26. Pingback: 라즈베리파이 네오지오 에뮬 설치 및 구동하기 - 1부 - |

  27. Pingback: Une mini borne d’arcade avec un Raspberry Pi – Part 1 | thibsert

  28. Hmm. Got up to the part where I have to run the executable, and got this error: “error while loading shared libraries: /usr/lib/arm-linux-gnueabihf/ unexpected PLT reloc type 0x20”. So I tried to install libasound2, and was told I already have the latest version.

  29. Pingback: How To Fix Neo Geo Mame Error Missing Files in Windows

Leave a Reply

Your email address will not be published. Required fields are marked *