Slot Machine Emulator Raspberry Pi
Cory Rylan
Of course you can! Part of the huge popularity of playing online comes from the many ways players can win real cash fast. From the big name progressive jackpots that run to thousands and millions, classic Raspberry Pi Slot Machine Emulator table games online, and the bingo and lotteries games, you'll find a game to suit your taste. I can plug it into my Linux computer at home and it pops up exactly as it should: as a single 4TB hard drive. But the Raspberry Pi doesn't see it. Lsblk (or any of the other commands designed to show attached drives) will show me the two partitions on the SD Card, but this ridiculous $700+ drive just isn't there.
- 25 minutes
Building a home retro arcade table has never been easier. With fantastic open-source projects like Retro Pie and low-cost computers like the Raspberry Pi, we can build custom arcade machines in any number of ways. Recently I created my own Arcade table and wanted to share the process and steps I took.
First, I wanted to build something compact and blend in a bit more than a full-size arcade cabinet. Luckily there is a large community in the maker space around hacking Ikea furniture into all sorts of uses. The Ikea Lack table is one of the most popular options being cheap and easy to work with. With the Ikea Lack table, I achieved the look and simplicity I was hoping for.
So first, let's go through some of the prep work and materials needed to get started!
Setup Raspberry Pi
Note, some links are affiliate links but only to the materials/products I personally used on this project and recommend.
We will want to do before putting the table together is set up our Raspberry Pi computer with Retro Pie. The Raspberry Pi is a low-cost computer that is great for education and hacking fun projects. For optimal performance and the ability to emulate most consoles N64 and below, you will want to get the newest Pi version 4. I got the 4g model, but a 2g would work as well.
Make sure to get a Pi starter kit that contains a power supply, case, micro HDMI cable, and micro SD card. I would recommend a case that has a built-in fan for active cooling. Once the Pi is in the table, the fan will help keep things nice and cool. This is the Raspberry Pi starter kit I have been using for my projects since it provides everything to get started.
Retro Pie will be the software we use to run the software for the arcade. Retro Pie is an open-source project that provides a suite of emulators. Emulators are programs that emulate the original hardware the game was designed to run on. This allows games to run on almost any computer today without the original console/arcade hardware. Emulators use ROMs (Read Only Memory) files, which contain a copy of the game which the emulator will run. ROMs should only be used for games which you have a legally purchased copy for. There are also many homebrew free ROMs available online built by a growing retro gaming community.
Your kit likely will have Raspberry Pi OS pre-installed on your SD Card. Raspberry Pi OS is similar to an Operating System like Windows and macOS, providing a simple interface to use. You can install Retro Pie on top of this, or I would recommend a clean new install of Retro Pie. This will ensure RetroPie runs at the default settings without issue.
To install RetroPie or your OS choice, use the Raspberry Pie Imager. This tool will allow you to install RetroPie to the micro SD card.
Once installed, I recommend going through the Retro Pie beginners setup to ensure you have everything up and running. Once you complete this step, you can now play any ROMs you may own right on your Pi and TV. However, if you want to build an Arcade table, continue reading!
Table and Monitor
Most of the table can be made with only a few common tools. First, we will need to have the Ikea Lack table and appropriate monitor to embed in our table.
I built two tables in this project; one used a widescreen monitor, while another used a 3:4 aspect ratio monitor. While the widescreen was visually impressive, it made the table more difficult to put together as there was limited space left for the electronics. So I would recommend a 3:4 aspect ratio monitor around 17in. I found an old Dell monitor at a local resale shop in excellent condition for only $7.
The Ikea lack table is around 22 inches in both directions, so be sure your monitor will leave adequate space. Once you have a monitor, you will want to remove it from the plastic casing down to the LCD itself. This will save space but also give an accurate outline that you will need to cut.
Testing Electronics
Before constructing your table, you will want to test all the electronics. Along with the monitor and Raspberry Pi, there are a few more parts for the arcade electronics. First are the arcade buttons and joysticks. You can find any number of USB based arcade kits on Amazon. I got this Arcade button starter kit that came with two sets of buttons and joysticks. You can get single-player kits as well. Be sure to get a kit that provides a USB controller board, as this will save a lot of time from having to do custom wiring work.
There are a lot of styles with arcade buttons. I decided to go with labeled buttons and a layout that mimics more of the classic Super Nintendo feel. There are other layouts to consider, such as fighting style arcades. Once you have your kit, use cardboard and any number of online templates to determine what button layout works best for you. Think about comfort and the types of games you will play.
Once you have decided on your layout, you can plug it into your Raspberry Pi and set up the controller kit as a new player.
Here is a rough diagram I drew out of the electronics used in the table.
Monitor Cutout
One of the nice things working with the Ikea Lack table is not only is it cheap but easy to cut. Using a standard razor blade, you can cut out the monitor opening. First, outline the monitor with a pencil and tape off the edges. This will help protect the table's finish if the knife slides out of the desired path. You will want this to be a snug fit, so the monitor does not shift around in the table.
With the razor blade and a straight edge or ruler, glide over the line, repeatedly slowly cutting into the table. Take your time with this, as you don't want to scratch the surface.
Once cut, you should pry off the top, and inside, you will find a honeycomb-like structure. You can cut this out but only what is needed for the monitor. Keep the excess and the cutout of the table as they will be required later. Do not place the monitor on the table yet, as it will be tough to remove!
Drilling Button Placement
Once the monitor opening is complete, we can move onto our buttons. Using a template, mark out where the buttons should be drilled into the table. Ensure the placement is ina comfortable spot leaving the room so the palms of your hands can rest on the table. Also, be sure not to place them too far in so the table remains structurally sound between the monitor and buttons.
To drill the holes, use a special dry wall/hole saw drill bit. This will quickly create a hollow hole with any standard power drill.
Plastic Clear Top
I added a clear top to the table to make it sturdy and protect the monitor. There are a couple of options for clear tabletops. You can use Acrylic (Plexiglass) or Polycarbonate (Lexan). Acrylic is typically cheaper and more scratch-resistant but more likely to crack. Polycarbonate is more flexible and stronger but is more likely to scratch.
For this project, I chose Lexan (Polycarbonate) as it's easier to drill the buttonholes into. You can get either type at most local hardware stores. Most hardware stores will also pre-cut the plastic for you. To drill the holes, lay the Lexan over the table, mark your positions and use the paper template to align them. To drill the holes, you will want to use a step drill bit. This bit will allow you to drill the hole without cracking the plastic slowly.
When you dill into the plastic, go slow to prevent cracking or melting. Do not remove the protective plastic until you are ready to mount the tabletop.
Test the buttons properly fit into the plastic top and the table but do not yet attach them.
Because I chose Lexan, it is prone to scratching, I also added a protective layer of clear vinyl on top.
This is a plastic that is used for protecting tabletops. It's thick and provides a nice grip texture. You can find the vinyl roll here. When you apply the vinyl, you will want to try to be in a dust-free area. Any dust caught under the vinyl will cause bubbles and are a lot of work to get out.
Set aside the plastic top in a safe place for now as we will be attaching it last.
Service Pannel and External Ports
Once the monitor and buttonholes have been cut, carefully flip the table over. We will now cut a pannel open towards the front of the table so we can easily access it beneath the buttons. This is where we will be able to thread the buttons and wire up our Raspberry Pi.
For my tables, I added the player select and start buttons on the front edge. I also added two additional ports. One port added two USB ports that connect to the Raspberry Pi, allowing me to connect additional USB controllers or a keyboard and mouse. The second port I added was an HDMI extension port. This will enable you to connect the table to an external TV.
Both of the external ports are automotive external addons. They are straightforward to install and simply plugin into the Pi. This is the USB extention I used. It was a bit on the long side but was very sturdy.
HDMI Out
For the HDMI out, it was a bit trickier. The Raspberry Pi 4 has two HDMI mini ports. However, I found them pretty unreliable for dual setup and very flimsy overall, so be careful. At the time of the build, the only way to mirror was to run Raspberry Pi OS first, then Retro Pie.
The best solution I have found is to use a single HDMI port on the Pi but split it with an HDMI splitter. This made it very reliable to split the monitor output to the HDMI extension so I could plug the table into the TV without issue. The only downside is the TV's resolution will be whatever the resolution of the tablet monitor is. I used this HDMI extender with this HDMI splitter. This splitter was nice because it did not require an external power supply like many others.
Power Supply
I wanted the tables to be fully enclosed. To do this, I added a 220v power switch to the table. The table needs at least two power outlets, one for the monitor and another for the Pi. You can splice a small power strip to wire to the 220v switch.
I used a small three-slot power strip, so I had adequate space but compact enough to place inside the table. I used a 220v power switch commonly used for 3d printing, which uses an IEC320 inlet. This is the common inlet standard for many monitors and computers, making power cables easy to find and replace. This particular switch has a built-in fuse as well and fits nicely along the side of the table.
I recommend watching this Youtube tutorial on how to wire the switch to a power extension cable.
You will need wire connectors to connect the two ends together. Once wired, be sure to wrap the joined cables in insulative electrical tape.
Internal Wiring and Button Placement
Next is attaching the Joysticks and buttons. This step will take the most patience and time. Clean wiring will make it easier to fix or adjust in the future. Funnel the wires along the sides of the table. This will help save space for the Raspberry Pi, which will be placed between the two-player buttons.
The Joysticks come with a countersink plate to screw the Joystick into. However, using the place would cause the plate to sit on the top of the table and not be flush. So to keep the table look clean, I opted to find longer screws to screw the top-down to hold the Joystick into place.
The screws need to be just long enough to get through the table and grab the Joystick mount under it. If it is too long, it will sit too high above the table, and the clear top will not sit flush. I was able to find these screws at my local hardware store that seemed to do the trick.
Be careful not to over-tighten the screws as there is not much material to work with between the screw and Joystick. For additional strength, I added a layer of gel superglue on the plate under the table. This helps distribute the force on the Joystick across a wider surface area on the table.
When wiring the buttons, add labeled tape to each, so you know which button belongs to which wire. This is important as you will have to disconnect the buttons later to place the acrylic top.
Test the wires and connect to your Pi to make certain everything powers up correctly.
I added black electrical tape around the monitor's edges, so it blended in a bit better than the silver casing.
Carefully lower the monitor into place. Be careful and wires as you don't want to cause any shorts. Slowly thread each button wire through the table and tabletop.
Once threaded, you will be able to place the buttons in and lock them into place.
Speaker
Adding an external speaker to the table is relatively easy, and there are many options. I chose a small USB powered speaker. While not the loudest, it does not require an external power supply. Also, most USB powered speakers work automatically with the Raspberry Pi, and volume can be controlled directly in Retro Pi. You may need a USB hub to have enough ports for the Pi and arcade controls.
Using the excess material from the prior cutouts, drill several holes to create an opening to allow the speaker to play through the bottom of the table and cover the rest of the bottom electronics.
Test that everything powers up before attaching the legs as it will be easier to adjust any issues without the legs in the way.
Smooth Corners and Clear Top
Once assembled, you will want to round off any excess Lexan on the corners as they may be sharp from the original cut. Once placed, you can use any standard wood screw to tighten down the top. Place the screw in the far corners and edges to catch the thickest parts of the table structure.
External USB Controllers
If you opt to have the external USB ports, you can add any available USB controllers to the arcade. This is great for multiplayer and certain consoles with unique controller layouts.
I purchased two of these USB Game Controller kits, which have a Super Nintendo and Nintendo 64 controller. I was able to sync them without issue to Retro Pie, and they work quite well. There are wireless controllers available, but I found wired USB typically was more reliable and easier to connect.
Towards the end, I added a small removable basket to the bottom to store the controllers. Any basket should work; it helped keep the wired controllers contained and a clean look for the table.
Final Output
The final result I was pretty happy with overall. Some of the biggest challenges were around the micro HDMI ports being very fragile. They tend to short easily, so I highly recommend being careful and not unplugging/plugging them infrequently. I'll continue to add additional updates to this post as I gather more of my past notes and make new mods.
Secondary Stack Risers
Recently I started getting into 3d printing and was able to print stacker blocks for the Ikea Lack table. This brings the arcade table to standing height and provides additional storage beneath. You can find all kinds of designs on Thingverse.
MAME stands for Multiple Arcade Machine Emulator. MAME can emulate thousands of games that otherwise would have been lost in the ash-heaps of history.
See Also: FinalBurn-Neo, Neo Geo
There are a variety of arcade emulator versions available in RetroPie. There are significant differences in performance, compatibility, and configuration between them. If you're getting started with an arcade emulation project, begin by reading the Arcade page.
This page is a resource for additional details on RetroPie's MAME emulators including configuration paths, controls, and the ROM sets which each emulator requires.
Emulator | ROM Folder(s) | Extension | Required ROM Set Version |
---|---|---|---|
mame4all-pi | arcade or mame-mame4all | .zip | MAME 0.37b5 |
lr-mame2000 | arcade or mame-libretro | .zip | MAME 0.37b5 |
lr-mame2003 | arcade or mame-libretro | .zip | MAME 0.78 |
lr-mame2003-plus | arcade or mame-libretro | .zip | MAME 0.78-MAME 0.188 |
lr-mame2010 | arcade or mame-libretro | .zip | MAME 0.139 |
lr-mame2015 | arcade or mame-libretro | .zip .7z | MAME 0.160 |
lr-mame2016 | arcade or mame-libretro | .zip .7z | MAME 0.174 |
AdvanceMAME 0.94 | arcade or mame-advmame | .zip | MAME 0.94 |
AdvanceMAME 1.4 | arcade or mame-advmame | .zip | MAME 0.106 |
AdvanceMAME 3 | arcade or mame-advmame | .zip | MAME 0.106 |
MAME | arcade or mame | .zip .7z | same as MAME version |
lr-mame | arcade or mame-libretro | .zip .7z | same as MAME version |
MAME ROM paths
Three of the available MAME ROM paths in RetroPie are shared directories which are used by more than one emulator: arcade
, mame-libretro
, mame-advmame
. In order to successfully load zipped ROM sets in these locations you must specify the arcade emulator version which matches your ROMs.
To avoid having several menus for different arcade emulators, all arcade-based ROMs can be placed in the arcade
ROM folder, but you will have to specify which emulator each zipped ROM set will use from the Runcommand Menu.
Emulators
mame4all-pi
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-mame4all |
Binary | /opt/retropie/emulators/mame4all |
Configuration | /opt/retropie/configs/mame-mame4all |
Samples | /home/pi/RetroPie/mame4-all/samples/ |
MAME Version: 0.37b5 (July 2000)
Active Sets: 2241
- BIOS: 1
- CHDs: 0
- Samples: 35
- 1126 Parent Roms
- 1025 Clones Roms
- 129 NeoGeo Roms (Parent+Clone)
MAME 0.37b5 DAT File: mame4all-037b5-RetroPie-260.dat
MAME 0.37b5 XML File: mame4all-no-clones-no-neogeo Does not include clones or NeoGeo romsets.
Controls
While in a game press Tab to open the menu to set up controls. The MAME4ALL configuration is saved in:
Other files in the cfg
directory are ROM specific configs.
Note: If configuration or other aspect of the configuration need resetting to defaults, remove the default.cfg
or ROM specific .cfg
file, and it will be re-created with default values next time MAME4ALL is started or the ROM configuration modified.
lr-mame2000 (MAME 2000)
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-mame4all /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2000 |
Configuration | /opt/retropie/configs/mame-mame4all/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2000/samples/ |
MAME Version: 0.37b5 (July 2000)
Active Sets: 2241
- BIOS: 1
- CHDs: 0
- Samples: 35
MAME 0.37b5 DAT File: mame4all-037b5-RetroPie-260.zip
MAME 0.37b5 'Lite' DAT File: mame4all-no-clones-no-neogeo - Does not include clones or NeoGeo romsets.
Controls
MAME 2000 uses RetroArch control configuration. Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
lr-mame2003 (MAME 2003)
Please see MAME 2003 on RetroPie for information on how to configure specific features of this emulator.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2003 |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2003/samples/ |
MAME Version: 0.78 (December 2003)
Active Sets: 4705
- BIOS: 15
- CHDs: 30
- Samples: 56
MAME 0.78 XML DAT File: MAME 0.78.dat
MAME 0.78u5 DAT File: mame2003-lr-working-no-clones - Working romsets only. Does not include clones.
MAME 0.78u5 'Lite' DAT File: mame2003-lr-lite - Working romsets only. Does not include: clones, NeoGeo, PlayChoice NES/multiplay, romsets with rotary/dial/trackball/light gun controls, or romsets classified as casino/quiz/mahjong/fruit_machines/rhythm/mature.
Mame 2003 catver.ini also contains data on games definitively known not to work, as well as sorting data for mature games and other, less desirable, romsets.
Controls
MAME 2003-Plus uses both RetroArch control configuration and the MAME input configuration menu (accessible by pressing Tab). Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
lr-mame2003-plus (MAME 2003-Plus)
MAME 2003-Plus (also referred to as MAME 2003+ and mame2003-plus) is a libretro arcade system emulator core with an emphasis on high performance and broad compatibility with mobile devices, single board computers, embedded systems, and similar platforms.
In order to take advantage of the performance and lower hardware requirements of an earlier MAME architecture, MAME 2003-Plus began with the MAME 2003 codebase, which is itself derived from xmame 0.78. Upon that base, MAME 2003-Plus contributors have back-ported support for several hundred additional games as well as other functionality not originally present in MAME 0.78.
Please see the libretro MAME 2003-Plus core documentation for information on how to configure specific features of this emulator.
Folder/File | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2003-plus |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg /opt/retropie/configs/arcade/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2003-plus/samples/ |
MAME Version: 0.78-0.188 (MAME 0.78 as a baseline with other ROMs back-ported from later MAME romsets)
Active Sets: 4850
- BIOS: 15
- CHDs: 30
- Samples: 66 + 6 Optional 'Soundtrack Samples'
MAME 2003-Plus DAT File: Github project page. An XML 'DAT' file can be generated from the emulator, directly from the MAME menu.
The MAME 2003-Plus catver.ini also contains data on games definitively known not to work, as well as sorting data for mature games or other, less desirable, romsets.
Controls
MAME 2003-Plus uses both RetroArch control configuration and the MAME input configuration menu (accessible by pressing Tab). Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
Some notes about extra controls options and configuration available in MAME 2003-Plus:
- MAME 2003-Plus can use different RetroPad layouts, chosen with the Device Type configuration option in the Controls menu in RetroArch:
- Classic Gamepad, based on mainline MAME's default Xbox 360 controller layout, likely to suit DualShock or SNES-style gamepads.
- Modern Fightstick, a fight stick and pad layout popularised by Street Fighter IV and assumes an 8+ button controller.
- 6-Button, a layout intended for SNES-type RetroPad controls as well as 6-button arcade panels arcade panels.
- 8-Button, a layout intended for an arcade panel (8 buttons)
- MAME 2003-Plus maps the analog controls to joystick control by default, instead of the D-Pad. This can be changed from the Core Options, switching the Control mapping option to digital.
- MAME 2003-Plus disables the MAME menu by default (usually mapped to Tab). It can be enabled by changing the Input interfaceCore Option to
simultaneous
.
lr-mame2010 (MAME 2010)
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2010 |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2010/samples |
MAME Version: 0.139 (August 2010)
Active Sets: 8782
- BIOS: 67
- CHDs: 406
- Samples: 70 (4 more samples are not in circulation)
MAME 0.139 DAT File: MAME 0.139.dat
Controls
MAME 2010 uses RetroArch control configuration. Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
Default Player 1 and 2 Controls
Default Player 3 and 4 Controls
Native MAME UI Controls
Note: these controls are only operational for Player 1
lr-mame2015 (MAME 2015)
Note: This emulator is considered 'experimental' in RetroPie and has limited functionality. It requires more processing power than earlier MAME versions and will not run as many games at full speed on Raspberry Pi hardware.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2015 |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2010/samples |
MAME Version: 0.160
Active Sets: ??
- BIOS: ??
- CHDs: ??
- Samples: ?? (4 more samples are not in circulation)
MAME 0.160 DAT File: ProgettoSnaps MAME .dat page
Controls
MAME 2015 uses RetroArch control configuration. Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
lr-mame2016 (MAME 2016)
Note: This emulator is considered 'experimental' in RetroPie and has limited functionality. It requires more processing power than earlier MAME versions and will not run as many games at full speed on Raspberry Pi hardware.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2016 |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg |
MAME Version: 0.174
Active Sets: ??
Raspberry Pi Game Emulator
- BIOS: ??
- CHDs: ??
- Samples: ?? (4 more samples are not in circulation)
MAME 0.174 DAT File: ProgettoSnaps MAME .dat page
Controls
MAME 2016 uses RetroArch control configuration. Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
AdvanceMAME 0.94
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-advmame /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/emulators/advmame/bin |
Configuration | /opt/retropie/configs/mame-advmame |
Samples | /home/pi/RetroPie/roms/mame-advmame/samples |
MAME Version: MAME 0.94 (March 2005)
Active Sets: 5563
- BIOS: 25
- CHDs: ?
- Samples: ?
AdvanceMAME 0.94 DAT File: advmame-0.94-RetroPie-260.7z
Controls
While in a game, press Tab to open the menu and set up controls. AdvanceMAME configuration for controls is stored in /opt/retropie/configs/mame-advmame/advmame-0.94.0.rc
. Changes to specific games result in .rc
file entries with a prefix for the ROM (i.e. bwidow/input_map[p1_doubleleft_up] keyboard[0,up]
for the bwidow
game).
Raspberry Pi Emulator Download
Note: The .rc
file can also be edited manually, with a text editor. Any config can be made ROM-specific using a romname/
prefix which is handy for overriding a setting for a specific ROM or class of ROMs, such as vertical/
. However, a single mistake in the .rc file will stop AdvanceMAME from launching. It is always best to make a backup of the configuration file before manual edits.
AdvanceMAME 1.4
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-advmame /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/emulators/advmame/bin |
Configuration | /opt/retropie/configs/mame-advmame |
Samples | /home/pi/RetroPie/roms/mame-advmame/samples |
MAME Version: MAME 0.106 (May 2006)
Active Sets: 6166
- BIOS: 26
- CHDs: 86
- Samples: 64 (3 more samples are not in circulation)
AdvanceMAME 1.4 DAT File: advmame12-106.7z
Controls
While in a game press Tab to open the menu to set up controls. AdvanceMAME configuration for controls is stored in /opt/retropie/configs/mame-advmame/advmame-1.4.rc
. Changes to specific games result in .rc
file entries with a prefix for the ROM (i.e. bwidow/input_map[p1_doubleleft_up] keyboard[0,up]
)
Note: The .rc
file can also be edited manually. Any config can be made ROM-specific using a romname/
prefix which is handy for overriding a setting for a specific ROM or class of ROMs, such as vertical/
. However, a single mistake in the .rc
file will stop AdvanceMAME from launching. It is always best to make a backup of the configuration file before manual edits.
AdvanceMAME 3
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-advmame /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/emulators/advmame/bin |
Configuration | /opt/retropie/configs/mame-advmame |
Samples | /home/pi/RetroPie/roms/mame-advmame/samples |
MAME Version: MAME 0.106 (May 2006)
Active Sets: 6166
- BIOS: 26
- CHDs: 86
- Samples: 64 (3 more samples are not in circulation)
AdvanceMAME 3 DAT File: same as AdvanceMAME 1.4, see above.
Controls
While in a game, press Tab to open the menu and set up the controls. AdvanceMAME configuration for controls is stored in /opt/retropie/configs/mame-advmame/advmame.rc
. Changes to specific games result in .rc
file entries with a prefix for the ROM (i.e. bwidow/input_map[p1_doubleleft_up] keyboard[0,up]
)
Note: The .rc file can be edited manually. Any config can be made ROM-specific using a romname/
prefix, which is handy for overriding a setting for a specific ROM or class of ROMs, such as vertical/
. However, a single mistake in the .rc
file will stop AdvanceMAME from launching. It is always best to make a backup of the advmame.rc
file before manual edits.
MAME
Note: This emulator is considered 'experimental' in RetroPie. It requires more processing power than earlier MAME versions and will not run as many games at full speed on Raspberry Pi hardware.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/emulators/mame/bin |
Configuration | /opt/retropie/configs/mame |
BIOS | /home/pi/RetroPie/BIOS/mame |
Samples | /home/pi/RetroPie/roms/mame/samples |
MAME Version: MAME has monthly versioned releases, there is no single version. Version 0.221
was released for May 2020, 0.222
for June 2020, etc.
Installing from binary will probably get a version that's a little behind the current MAME, installing from source will always get the latest monthly release.
NOTE: installing from source requires a lot of RAM and CPU power, on Pi3 and lower end systems could take more than one day - use the binary release when available, instead of installing from source.
MAME Dat Files: ProgettoSnaps MAME .dat page has versions for each MAME release.
Active Sets: ???
Controls
While in a game, press Tab to open the MAME menu, then choose the Input configuration. MAME controls configuration is saved in /home/pi/RetroPie/roms/mame/cfg
:
- default/general input configuration file is
default.cfg
- per-game configurations are saved in
<romname>.cfg
lr-mame
Note: This emulator is considered 'experimental' in RetroPie. It requires more processing power than earlier MAME versions and will not run as many games at full speed on Raspberry Pi hardware.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame /home/pi/RetroPie/roms/mame-libretro |
Binary | /opt/retropie/libretrocores/lr-mame |
Configuration | /opt/retropie/configs/arcade |
BIOS | /home/pi/RetroPie/BIOS/mame |
Samples | /home/pi/RetroPie/roms/mame/samples |
MAME Version: Similar to MAME, lr-mame
follows the monthtly MAME releases, so there is no single version. Installing from binary will probably get a version that's a little behind the current MAME, but the upstream Libretro repository tries to keep up with MAME's monthly releases, so installing from source
NOTE: installing from source requires a lot of RAM and CPU power, on Pi3 and lower end systems could take more than a day. Use the binary release when available.
MAME Dat Files: ProgettoSnaps MAME .dat page has versions for each MAME release.
Active Sets: ???
Controls
lr-mame
uses the RetroArch control configuration.
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg