Pi2jamma hardware and software info
From falz.net
Info
I recently picked up a pi2jamma, which is a JAMMA compatible arcade board made to interface with a Raspberry PI 3. This is in use as an alternate JAMMA board in my Neo Geo Arcade Cabinet.
The other comparable device to this is the RaspberryJAMMA / Arpicade. This uses the HDMI video output and converts to VGA.
Hardware
The pi2jamma was created by Jochen Zurborg. Its design is fairly simple, you simply mount the Pi3 on its GPIO pins and connect the audio from the headaphone jack out of the Pi in to the pi2jamma. Power is provided over GPIO, no additional connections are required outside of your JAMMA harness.
it contains these primary components:
- Integrated VGA 666 adapter circuitry which uses GPIO pins 4 - 21 and requires at least a Pi3.
- 3 74LS165 shift registers to allow for a total of 24 inputs over the few remaining GPIO pins (todo: which pins exactly?). This method is used because there are very few remaining GPIO pins to use. Todo: determine exactly which GPIO pins are used. Other JAMMA/Pi solutions tend to use [https://github.com/recalbox/mk_arcade_joystick_rpi mk_arcade_joystick_pi but this utilizes overlapping GPIO pins with the VGA666.
- Integrated audio amp
Software
Regamebox is the official software distribution. Work has been done to make Retropie work as well.
I have been working on porting the Arpicade software (intended for RaspberryJAMMA) which is just changing a few modules and script settings.
First give yourself access to the pi over ssh since you won't initially have functioning video. With the SD card mounted to your PC, create a blank filed /boot/ssh, enable wifi driver by commenting the contents of /etc/modprobe.d/raspi-blacklist.conf, and put your SSID/psk combo into /etc/wpa_supplicant/wpa_supplicant.conf:
Contents of /etc/modprobe.d/raspi-blacklist.conf after modifications:
todo
For example, executing this on a linux machine: `wpa_passphrase yourssid hunter22` will spit out this text, which you place at the end of wpa_supplicant.conf:
network={ ssid="yourssid" #psk="hunter22" psk=8a06b4578aa024328c74a94a217fa430b24fdb2d7c6796ce9bae8ff69ed91102 }
- modify /boot/config.txt to load VGA666 drviers. This will have a lot of defaults in it, this is the full output of my file after some modifications:
todo
- Disable the mk_arcade_controls GPIO driver by commenting it out from /etc/modprobe.d/blah. The pi will not boot with this and the vga666 drivers loading.
todo
- Copy the pikeyd165 binary and pikeyd165.conf' to Arpicade. The conf file must go in /etc/ but the binary can go wherever you'd like. I created a subdir in /etc/ and just tossed them both there:
mkdir /etc/regamebox/ ln -s /etc/regamebox/pikeyd165.conf /etc/pikeyd165.conf
pwd ls -al
- Tell pikeyd165 to start at boot by creating/updating a service. Create the file /etc/init.d/pikeyd165 with these contents:
todo
.. and then tell it to start the service upon boot:
todo
- Modify pikeyd165.conf for any required button mappings. By default it is coded to work with MAME's defaults, but may not have buttons mapped to escape out of a game back to your frontend.
todo
At this point you should have a functional Arpicade image on pi2jamma. Note that all of these things should work equally on a fresh Raspbian install as well, you'll just have to do extra work to get a frontend to work. Arpicade uses the Attract Mode frontend by default.