It’s been a long week, and I am really glad I have a long weekend to sleep in.
When the Arduino Leonardo was announced I was really excited to see it have built in USB HID support and could act as a keyboard, mouse, or joystick. I was even more excited to find out that my year old Teensy++ (Arduino compatible board) was based on the same chipset that the Leonardo now uses, and is able to act as a keyboard as well!
This is a new feature that was introduced in the Arduino 1.0 IDE. You can now send keyboard presses with this simple line of code: Keyboard.write(‘a’); If I wanted the Up joystick to be the up arrow on the keyboard, I would just use: Keyboard.write(0x0E); .
My goal is to use my Neo Geo AES controllers as an input for MAME. The Neo Geo pads don’t have any control boards built into the unit. The console itself interprets each pin individually, just like an actual arcade board. The pad uses a standard midi gameport (DA-15) connector, with each pin representing one button.
My idea is to make a Neo Geo pad to usb adapter using the Teensy++ as go-between. The Neo Geo pins will be wired up to the digital pins on the Teensy, and the Teensy Arduino sketch will interpret each button press as a keyboard press.
I’m looking forward to working on this project. I hope everyone has a great weekend and a restful Labor Day.
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!
If you havent setup /dev/fb0 yet, just go ahead and do sudo chmod 777 /dev/fb0
Unzip the binaries. They should unzip to a folder called gneogeo
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.
On the command line go into the bin folder (cd ~/gneogeo/bin), and type ./gngeo -i ../roms/
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).
What this first run has done is create a hidden folder in your home folder called .gngeo.
Go into .gngeo (cd ~/.gngeo), and copy the config file you downloaded earlier. This setups the keys and some video stuffs.
Go back into the gneogeo/bin directory and run ./gngeo -i ../roms/
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.
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 🙂