Raspberry Pi Powered Bar-top Arcade Machine




Howdy, I am a bit of a tinker gnome. I like playing with hardware/technology along with making s...

Howdy Instructable readers.

I have moved over to Steemit. Please follow my future projects over there. Thank You https://steemit.com/@motinkergnome

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Remix Contest

Second Prize in the
Remix Contest

Microcontroller Contest

Participated in the
Microcontroller Contest

Tech Contest

Participated in the
Tech Contest

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    34 Discussions

    I also forgot to mention that the coolest thing is that the emulators the Image supports is quite lengthy

    Amiga (UAE4All)
    Apple II (LinApple)

    Apple Macintosh (Basilisk II)
    Armstrad CPC (CPC4RPi)
    Arcade (PiFBA, Mame4All-RPi)
    Atari 800
    Atari 2600 (RetroArch)
    Atari ST/STE/TT/Falcon
    C64 (VICE)
    CaveStory (NXEngine)
    Doom (RetroArch)
    Duke Nukem 3D
    Final Burn Alpha (RetroArch)
    Game Boy Advance (gpSP)
    Game Boy Color (RetroArch)
    Game Gear (Osmose)
    Intellivision (RetroArch)
    MAME (RetroArch)
    MAME (AdvMAME)
    NeoGeo (GnGeo)
    NeoGeo (Genesis-GX, RetroArch)
    Sega Master System (Osmose)
    Sega Megadrive/Genesis (DGEN, Picodrive)
    Sega Mega-CD (Picodrive)
    Sega 32X (Picodrive)
    Nintendo Entertainment System (RetroArch)
    N64 (Mupen64Plus-RPi)
    PC Engine / Turbo Grafx 16 (RetroArch)
    Playstation 1 (RetroArch)
    Super Nintendo Entertainment System (RetroArch, PiSNES, SNES-Rpi)
    Sinclair ZX Spectrum (Fuse)
    PC / x86 (rpix86)

    Z Machine emulator (Frotz)

    5 replies

    Oh and yes Metal Slug is awesome. :) due to copyright issues and licensing there are no Roms included with the software image however they do exist and fairly easy to find... And for the legalease I do have a copy of metal slug, Actually come to think of it I have quite a few JAMMA boards in my Moms basement....

    I wanted to give credit where credit is due, As I used a premade software image by rbates4 I did not want to take away from his work. If not for his image and the work done by the Retropie project on bringing everything together into an easy to use package, I would probably still have the stick in my basement closet taking up space.

    I downloaded the 2.3 version of retropie last night and configured it for everything there are a couple steps that need to be done.


    First off. Download the new SD image from the Petrock blog, insert it into your pie and boot. Press f4 to drop to your terminal then type the following.

    git clone https://github.com/petrockblog/Xarcade2Jstick

    cd Xarcade2Jstick


    sudo make install

    sudo make installservice

    That will install the Xarcade2Jstick driver. The next step is to perform the following
    Reboot and configure the ES controlls to match how you want to play.

    press f4 to drop back ot the terminal and perform the following.

    cd RetroPie-Setup

    sudo ./retropie_setup.sh

    Select "Setup," select "Register RetroArch Controller," and follow the on-screen directions to set up your button inputs. If your controller doesn't have the buttons it's asking for, wait a couple of seconds for the prompt to continue. When you're done back out and select "Perform Reboot."

    That will get you the basic config. To config for MAME you will need to launch a ROM then press the ~ key. Select the configuration for all emulators and set up the controls for your joystick and make sure to map insert coin.

    Once again Keep Tinkering on.


    Question 1 year ago on Introduction

    Where can I find the plans for this arcade? Thanks.


    3 years ago

    I'm not sure if you're still maintaining this post, but do you know if the RetroPie 3.0 works on the Raspberry Pi3? I bought one for this project before reading the details.

    Hey, first I just want to say this is a really cool project and it's great that you shared it. I got my cabinet together before seeing this and I'm also using an Xarcade dual stick, and I was having an issue getting it to work in NES and TG16 emulators for some reason(damn two button controllers!). Anyway, you gave me the answer I've been looking for(thank you!), but I have one other question. How do you configure an ESC combo key bind so you can exit a game without the need for a keyboard? I want to do everything using the xarcade stick. Thanks!

    1 reply


    I shuffled through the notes for my backseat emulator. And I enabled just the thing you are looking for. Keep in mind that the button combos are for a USB SNES controller so just change the values to for the keybinding that you want on the xarcade stick.

    Open leafpad then open home/pi/RetroPie/configs/all/retroarch.cfg

    I wanted to add the following hotkeys
    Select+Start will exit the ROM (or any 2 button combos on the Xarcade I use the right side button to function as select to enable the hotkeys. left is coin in)
    Select+LB will save
    Select+RB will load save states

    Scroll down in the retroarch.cfg to this code:

    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_a_btn = 1
    input_player1_y_btn = 3
    input_player1_x_btn = 0
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_y_plus = -1
    input_player1_up_axis = -1
    input_player1_l_y_minus = +1
    input_player1_down_axis = +1
    input_player1_l_x_minus = -0
    input_player1_left_axis = -0
    input_player1_l_x_plus = +0
    input_player1_right_axis = +0

    (so the above is the player controlls the below are the hot keys you are looking for)

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    input_enable_hotkey_btn = 8
    input_save_state_btn = 4

    input_enable_hotkey_btn = 8
    input_load_state_btn = 5

    You may have to tinker around with it for some emulators I cannot get the buttons to work properly for the gameboy advance emulator but I keep a keyboard velcroed to the back just in case the kids get into one of those games.


    4 years ago on Introduction

    Dude this is wicked. Fantastic work. I'm going to try and follow your instructions to build a similar one hopefully. Thx for sharing this :)

    1 reply

    Reply 4 years ago on Introduction

    Thanks for the comment. I would love to see a picture of your finished cabinet. If you get hung up in any point shoot me a message and Ill be more then happy to help.

    If you are making your own control panel I would highly suggest using a teensy and interface via the USB if you are a beginner to Linux and micro controllers. If you are up for a little code writing the GPIO's work well for mechanical switches.

    Analog inputs are a bit more difficult and I am waiting on some boards to arrive but Ill have a Instructable up for those soon too. I have been writing the drivers and config scripts but I am not a coder and I am learning as I go along taking notes LOL.


    5 years ago on Introduction

    How responsive is the An X-arcade Joystick? Is there any delay with the controls going through USB as opposed to GPIO? I'm trying to decide whether I should use something like this or wire my own controls.

    1 reply

    Reply 5 years ago on Introduction

    Sorry I didn't see your question, I have not noticed any delay. However I am not a hardcore fighter player so I am not 100% on that but i have noticed that if there is an issue it is with the particular ROM and not the overall system.

    I am working on a portable that will use the GPIO's so when it is done ill be able to compare them and let you know.


    Reply 5 years ago on Introduction

    I picked up the X- Arcade stick off of Ebay a couple years back. If you are interested in making your own controller layout and using the GPIO's You can get the sticks and buttons and switches from Amazon Ebay etc. Sanwa, Happ, ETC