I recently purchased a RaspberryJAMMA’s (or two) from the good man dee2eR and have been very impressed with the hardware he’s designed & manufactured, not forgetting ArPiCade which is without doubt the simplest & customisable method I’ve seen to multi-game your existing arcade cabinet. Just brilliant!
I’ve been a long time MAME/emulation enthusiast with two cabinets at home, one upright and one cocktail. Love them both. Even more so now as I installed my first RaspberryJAMMA in the upright earlier this week which has given it a new life (normally has my Tekken Tag PCB within).
Very impressed from the start with the solution combination, though I had mild concerns with the power of the RPi 3 and how well it could emulate like a real board. Especially as I’ve never used any RPi’s in existence in any way before this week.
My experience with the setup has been nothing short of positive. I’ve been testing and tweaking away to try improve the appearance of the end product on-screen which I’d thought I share with you all now so you call all get the best of your RaspberryJAMMA setup.
The first and only ArPiCade I have downloaded and used is 3.811. Though much of what you’ll read below should work fine in an earlier releases of ArPiCade with MAME 0.181 for example.
While performing these tests I used:
- My Sega Astro City cabinet with its 29” Nanao monitor mounted horizontally,
- a wireless keyboard & mouse connected to the RPi 3,
- all while being Wi-Fi connected to ArPiCade via a secure shell (ssh pi@ipaddress) to allow me to make quick and easy configuration changes and reboot the Pi if required to scan new roms I decided to test.
### BENCHMARKING GAMES ###
Starting with the default ArPiCade mame.ini in either pi@ipaddress:~/mame172 or ~/mame192, change (disable) the following values from 1 to 0 using nano. Use ^X, then Y & [Enter] to exit and save the changes when done.
autoframeskip 0 # automatic frameskip selection
throttle 0 # throttling to keep game running in sync with real time
sleep 0 # sleeping, which gives time back to other applications when idle
rotate 0 # only if you are planning to also benchmark vertical games even on if your monitor like mine is horizontally mounted!
Now launch the game you want to benchmark from your cabinet. Once it has loaded press F11 on your wireless keyboard to toggle the speed display. Hopefully the games should run over 100% proving the RPi you have installed can emulate it adequately in that version of MAME. If its already under 100% (e.g. mk or mk2), don’t ever expect the game to run smooth in that version of MAME unless you gamble over-clocking your RPi (which even I have not yet personally tried).
Here are the results of a few of my own tests.
The % figures I recorded is the lowest value I noticed (with the speed display toggled on) while playing each game for 30 seconds or so within each version of MAME. It can obviously fluctuate a lot depending on enemies and/or level etc. on-screen.
Code: Select all
rom name 0.172 0.192 Slower
-------- ----- ----- ------
demonwld 132% 104% 78.79%
ghoulsu 173% 133% 76.88%
mpatrol 348% 182% 52.30%
sf2 160% 132% 82.50%
sgemf 139% 110% 79.14%
snowbros 211% 155% 73.46%
suprmrio 167% 117% 70.06%
wardner 170% 114% 67.06%
wbmlb 134% 114% 85.07%
wboy 138% 115% 83.33%
wwfsstar 172% 137% 79.65%I also tested the Mortal Kombat roms mk and mk2 in 0.172. Both emulated well under 80% so I didn’t bother testing them in 0.192 looking at the trend above.
## SYNC TWEAKS FOR YOUR ARCADE CRT! ##
Benchmarking aside, let’s now get your favorite games scrolling flawlessly smooth on your CRT!
Head back to the mame.ini in either pi@ipaddress:~/mame172 or ~/mame192 and change (enable) the following value from 0 to 1 using nano. Use ^X, then Y & [Enter] to exit and save the changes when done.
waitvsync 1 # enable waiting for the start of VBLANK before flipping screens; reduces tearing effects
While there, if paranoid (doesn’t seem to matter as games run in fullscreen mode) ensure the following settings are disabled...
window 0 # window mode; otherwise, full screen mode is assumed
maximize 0 # default to maximized windows; otherwise, windows will be minimized
syncrefresh 0 # using the start of VBLANK for throttling instead of the game time
Now head back to your cabinet and start testing some games to see if you can notice a difference!
Where do personally see improvements?
- A fast scrolling games like Wonder Boy (rom name matching my member name wboy - my favorite) appears to slow down on occasion as I run or skateboard fast forward across the screen (not always, but it’s there.)
- Pass a level on Snow Bros (snowbros), and the animation when you fly up to the next level is without it 2 or 3 apparent sync stutters. You notice a similar improvement on the Street Fighter 2 (sf2) intro when it scrolls up the building to the SFII advertising banner at the top.
- Even less common resolution games likes Moon Patrol (mpatrol) horizontally scrolls smoother. Do not enable syncrefresh together with waitvsync as it only destroys it again (subtlety I’d admit, but it’s there)
For those running their ArPiCade in HDMI mode (HiRes mode) trying to achieve a similar smoothness, I’d recommend you try...
throttle 1
waitvsync 0
syncrefresh 1
I have not tried this myself with ArPiCade (and don’t plan too) but this is very similar to a mame.ini configuration I’ve used on a laptop’s LCD screens or PC connected TVs in the past to get an optimal look.
Anyone reading this using a Windows based device/mame compile should also mame.ini enable Triple Buffering.
triplebuffer 1
I hope all you fellow RaspberryJAMMA owner’s try it out soon and report back also noticing the scrolling and sync improvements.
Happy emulating!
wboy.



