FAQ
A lot of the recommendations here assume you are comfortable with editing files in Linux. If that isn’t the case, check out the documentation and then head over to the forums to ask questions. It isn’t difficult once you learn, but there is a learning curve.
Why so many versions of MAME?
Each version of MAME included has it’s strengths and weaknesses, to get the most out of the system a bit of mixing and matching is required.
MAME 0.172 is the latest recommended version and has the best emulation quality although it’s performance is highly variable between titles.
AdvanceMAME has many more options and more accurate emulation than MAME4All or MAME2003/MAME078 as well as better performance than MAME0172.
Mame4all has faster emulation and is useful for any games which run slow in the other emulators, although it has the least accurate emulation of the MAMEs included (it is based on 15 year old MAME).
MAME072 (MAME2003 Retroarch core) has hacks built in to speed up the emulation of some Midway DCS audio titles. This emulator is slowly improving and is still under active development. It is also very good at mapping analog controls to digital JAMMA controls.
Do I need to safely shutdown the board in any way?
I recommend exiting a game so as you are at the game menu before shutting down your cabinet. It should not be necessary to run a shutdown script as while at the game menu there are no writes to the SD card to be interrupted to corrupt the card. If you make changes to your systems settings I recommend a shutdown or reboot to ensure those changes are written to the SD card. (but have a backup just in case things go bad some day)
How do I do X with Y piece of software on the Pi?
Try Googling specific pieces of software you are working with because with the exception of some scripts and modifying the scaling code of mame4all & SDL1.2 I haven’t been a programmer on any of this software. The versions of software on this software compilation are publicly available and have much information online. If your query is to do with one of the scripts I have written get in contact and I’ll help if I can.
How do I change the software from low res to high res to use with my other cab?
You start by setting the Pi to the resolution you want in
/boot/config.txt
using the
hdmi_mode=
setting you desire. This will ensure the hardware boots at the resolution you want and is the first thing to do.
You will then need to edit the service menu launcher script
boot/launchers/servMenu.sh
to uncomment (remove the ‘#’ hash) the highres options. After a reboot the option will be available in the service menu. When the relevant option is selected the system will reconfigure itself and reboot in the selected settings.
How do I edit the game menu?
Fine tuning of the game list can be achieved through editing the file corresponding to the list you’re editing:
/home/pi/.attract/romlists/allGames.txt /home/pi/.attract/romlists/Arcade.txt /home/pi/.attract/romlists/Console.txt
to change resolution or edit emulators, etc. It is a good idea to switch off the rom scanning in /boot/run.sh to stop it overwriting any changes you’ve made.
Attract-Mode themes and features can be explored using a keyboard by pressing ‘tab’
How do I rotate the system for my vertical monitor?
If your cab has no service button you will need to plug in a USB keyboard before powering up. Once the system has booted press either ‘service'(cabside) or (on keyboard) ‘left’ or ‘right’ until you’re at the service menu. Use the joystick to select low res vertical and the system will reconfigure itself and reboot setup vertical. You will probably also want to change the theme in Attract-Mode to a vertical one.
If you need to flip the picture to suit your monitor mounting:
In the file
/boot/config.txt
change this setting
display_rotate=2
will flip the image should your monitor mounting be upside down.
How do I edit files on the Raspberry Pi?
Plug a USB keyboard into the Pi (best to do while powered off). When game menu has booted press “esc” to leave the menu (if a second menu loads do it again). You are now on a Linux command line and can edit files using the editor Nano
nano /path/to/file.extension
“ctrl” + “x” will exit nano after giving you the option to save your changes. If you need root access to save changes to a file launching nano with super user rights can be done with
sudo nano /path/to/file.extension
Be careful editing files with superuser privileges as you can render the system useless. It’s probably a good idea to Google ‘Linux command line basics’ and familiarise yourself a bit if you want to learn more about using Linux on RPi.
When you are done on the command line you can type ‘sudo reboot’ to reboot, ‘sudo poweroff’ to shutdown the pi safely, or ‘logout’ to restart Attract-Mode (logging out will cause you to be automatically logged back in which causes /boot/run.sh to be run again so however you have run.sh setup is what will happen after a logout).
How do I change the bootsplash?
Make the boot splash you want and copy it to the memory card in the boot partition as “splash.png”. Boot Pi with USB keyboard attached, wait for menu to load, press “esc” to exit menu and copy your new boot splash to the system as a super user:
$ sudo cp /boot/splash.png /etc/splash.png
Then reboot to see if it worked out how you wanted.
$ sudo reboot
This can also now be achieved from Attract-Mode (cab service button OR left or right on a keyboard to find the service menu) or advmenu using the F8 menu and the /boot/config-updater folder by placing the new picture you want in the folder as splash.png the pressing F8 in advmenu and using the option to update the splash.
How can I set FREEPLAY?
The games that originally had freeplay options in dip switches can be set using the mame menus or in AdvanceMAME only through the config file line:
misc_freeplay yes
however not all games had a freeplay mode and also a lot of games do not show an attract mode when set to freeplay so you will probably want a coin slot/button or button combo to add credits in mame.
Games which used test menus can have their test menus accessed by pressing the cabs Test button/switch or ‘F2’ on a keyboard during the game.
You can also use the shortcut P1 Start (long hold) + Button 1 for credits.
Why don’t my roms work?
Different versions of MAME use different romsets, some roms will work across many versions of MAME others won’t. You can convert romsets using programs like romcenter and datfiles for the emulators.
For guidance, check out the rom compatibility list here: Documentation
I’ve loaded a rom, but it isn’t appearing in the Attract-Mode list?
Some versions of roms require parent versions to work, but when you have a parent and a sibling, Attract-Mode will show both. So to “hide” the parent, there is a list maintained here:
/home/pi/.attract/noPornRoms.sh
Look for the line starting with
hide=
And then look through the list to make sure your rom isn’t being hidden. Either remove the name from this list, or if you are curious, there may be a more advanced rom set you should look to add.
The 3.7 image is sized smaller than the memory card I want to use how can I resize it?
The image is sized for an 8 gig card as it’s the minimum usable size. To use a bigger card you will need to use the partitioning program of your choice to move the 2nd partition to the end of the image and resize the first partition to fill the newly created space in the middle of the card. Before resizing the first partition copy it’s contents to your computer as resizing will destroy the contents, then copy it back when resized and you should have a working image.
Will this SD card image run on a standard RPi3 w/o the RaspberryJAMMA hardware?
Yes but it may require some setup.
You may need to adjust the resolution in /boot/config.txt if your HDMI monitor doesn’t like the signal (mine are fine with it), if you do need to change to high res also uncomment the change to highres options in /boot/launchers/servMenu.sh and adjust the system to highres in the Attract-Mode service menu (left/right on the keyboard or cab service button in the menu to find the service menu). Do not launch a game before changing the resolution like this or the launcher script could change the res to one unsuited to your monitor.
Keyboard use may be buggy as the system is intended for cabinet use.
What runs well in the 181 build? Cave?
Honestly I don’t really use 181 except for 2 games by Universal that run very slightly better than in 172. The rendering has changed somewhere between 172 and 181 and the results don’t match the rest of the system perfectly. Performance is similar to 172, maybe a little better in some titles but I didn’t look too much further into it. I mainly included because it was still the current version of MAME (at the time) and I don’t think anyone had released a current version in an image before.
Cave stuff is generally best in Advmame or FBA, depending on the title.
How do I stop the game list being generated every time I power up?
This can be disabled in
/boot/run.sh
(this is the file that controls what happens after the pi boots).
How do I enable hi-res the easy way?
You need to adjust the resolution in /boot/config.txt to high res also uncomment the change to highres options in /boot/launchers/servMenu.sh and adjust the system to highres in the Attract-Mode service menu (left/right on the keyboard or cab service button in the menu to find the service menu). Do not launch a game before changing the resolution like this or the launcher script could change the res to one unsuited to your monitor.
How can I use WiFi?
JessieWonka on KLOV posted this for how he got his wifi setup (wifi is blacklisted for boot speed):
Modify:
/etc/modprobe.d/raspi-blacklist.conf
and remove or comment out all lines, then reboot. This will get the RPi wifi adapter up and running.
How do I get my device to connect to a secure password protected WiFi AP?
There are several ways to add WPA2 support to begin with, but these steps worked for me:
-
$ wpa_passphrase wifinetworkname password (then copy what it creates)
-
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf (paste in this file, save)
- Create blank file called “ssh” in BOOT directory
- reboot