Arcade coin-op machine with Raspberry Pi
Published on 1/19/2017 9:26:26 PM
Description
<style>.e_editor{font:14px/24px Arial,'microsoft yahei','Times New Roman','b8bf53';}.e_editor div,e_editor p,e_editor td,e_editor th,e_editor li{font-weight:inherit;font-size:inherit;font-style:inherit;font-family:inherit;}.e_editor ul{margin:-10px 0 20px;}.e_editor li{padding:5px 0;}.e_table{width:96%;border-collapse:collapse;empty-cells:show;}.e_table th,.e_table td{padding:5px;border:2px solid #eee;}.e_img{padding:10px 0;text-align:center;}.e_p{line-height:20px;padding:0 0 20px;text-indent:0em;}</style> <div class="e_editor"> <div class="e_img" style="text-align:left;"> <strong>We will rebuild a BarTop arcade coin-op machine to rediscover the charm of the 90s: just a Raspberry Pi, one shield described here, a LCD screen and a few buttons.</strong> </div> <div class="e_p"> What is an Arcade game? Probably you heard or read this term many times, but if you aren’t at least 35-40 years old, you may not know the meaning. An arcade game machine or simply<i>arcade game</i>, is a microprocessor based game rack, put in a public area, physically constituted by an electronic board (and later by personal computers) in a wood or plastic and metal cabin. These machines are also called<i>coin-op</i>, short for coin-operated (because you had to insert coins to play). </div> <div class="e_p"> The arcade games reached their greatest splendor, both in quality and popularity, from the late seventies to the late eighties. The most successful titles who have written the history of video games are Space Invaders (released in 1979), Pac-Man (1980), Donkey Kong (1981), Burger Time (1982) followed by many, many others. </div> <div class="e_p"> The first racks were produced specifically for the “hosted” game but that choice proved soon to be too expensive, because it was difficult to adapt the cabined to the players fast changing needs; that’s why a new generation of devices was build, hosting the Jamma standard connector (Japan Amusement Machinery Manufacturers Association, a Japanese association that collected the main arcade video games manufacturers). </div> <div class="e_p"> When the coin-op arcade game fashion went over, a lot of devotees have tried to grasp a sample and restore it to show it in the tavern or in their own room, like a hunting trophy; those who could not find an exemplar, looked for an alternative and we are sure they will appreciate this revival we are proposing, that takes advantage of the wide availability of a powerful but affordable embedded computing board like Raspberry Pi. Just one interface shield with buttons, joystick and coin holder to recreate a bartop cabinet: we give you the electronics scheme and few suggestions to build the box; you have to add your fantasy! </div> <div class="e_p"> The software used is based on the most popular Arcade emulators that have been existing already for over 10 years in the PC world: Mame is one example, but there are many other very valid. </div> <div class="e_p"> <b>The project</b> </div> <div class="e_p"> For the electronics, we have chosen Raspberry Pi 2 and Retropie 3.5 software, being the most complete Linux image in terms of arcade games emulation and very easy to use if compared to other “images” that can request a long and complex programming. With Retropie 3.5 you can emulate different types of past consoles, including Nintendo, Game Boy, Sega Master System, Amiga, Commodore etc. In this case, we will focus on MAME emulator ( Multiple Arcade Machine Emulator), famous throughout the world for its ability to emulate virtually every arcade from the 80s and 90s. </div> <div class="e_p"> In this project we will make a MAME rack, here is the bill of materials we need to start creating a piece of video game history. </div> <div class="e_p"> Here are the hardware specs: </div> <div class="e_p"> – Raspberry Pi 2 B; </div> <div class="e_p"> – SD Card, 8 Gb or greater; </div> <div class="e_p"> – Power supply for Raspberry Pi (5V 2A microUSB); </div> <div class="e_p"> – Arcade style joystick; </div> <div class="e_p"> – Arcade buttons; </div> <div class="e_p"> – Joystick and buttons cables to Raspberry Pi; </div> <div class="e_p"> – case to host joystick, buttons and Raspberry Pi; </div> <div class="e_p"> – HDMI cable; </div> <div class="e_p"> – Audio cable (optional, you can use the speakers of a normal TV with HDMI connection); </div> <div class="e_p"> – USB keyboard (for programming only). </div> <div class="e_p"> About the software: </div> <div class="e_p"> – Retro-Pie V3,5 optimized for Raspberry Pi (derived from Debian); </div> <div class="e_p"> – I²C customized to MCP23017 software for the input processing; </div> <div class="e_p"> – ROM Emulation software; </div> <div class="e_p"> – Game ROMs. </div> <div class="e_p"> Please note that “game ROMs” are the files containing the game for a certain emulator; that name, although improper, was adopted to commemorate the read-only memories containing the code that the microprocessor of the coin-op machine was running; so as in the old games you could re-program the unit by replacing the ROM, the emulators changes the game by loading a file called ROM. </div> <div class="e_p"> Once we have found all the stuffs listed above, we can start installing the image, and do some tests before starting playing. </div> <div class="e_p"> Before proceeding let’s focus on Retropie, saying first that the image can be downloaded for free from petrockblocksite. </div> <div class="e_p"> The RetroPie project began with the idea of turning the Raspberry Pi into a retro-gaming console and in a short time has evolved to version 3.5, giving to the retro gaming community a blast from the past, when younger we went to the arcade game place and we inserted a 100/200 lire coin into the machine to play. </div> <div class="e_p"> In addition to emulators, developers have built a front-end, a file system, a compact operating system dedicated to retrogaming. So the vintage arcade player can browse through different emulators and games by using a simple and intuitive interface. This is a great and immersive retrogaming experience, but the most nostalgic ones will have to make it even more realistic by building a “BarTop” rack. </div> <div class="e_p"> The project uses Raspbian as base operating system and integrates a broad set of emulators for a wide range of computer systems in recent decades. </div> <div class="e_p"> The RetroPie Setup Script is the core software for the installation and configuration of all components of the distribution. </div> <div class="e_p"> The RetroPie installation script lets you install and configure all emulators, the front-end, drivers and other components for our console. Technically, it is a “bash” script that consists of a few thousand lines of code and is run from the command line. The complete source code can be downloaded from Github to collaborate, give feedback, ask questions and have support, or to be able to create your own image based on their scripts. </div> <div class="e_p"> There is already an image with a complete RetroPie installation that comes with all emulators and supported features. </div> <div class="e_p"> The RetroPie SD Card image is ready to use, providing a full installation of all gaming systems and functions supported by RetroPie.Here are the main features: </div> <ul> <li> full installation of all available emulators that are supported by the installation script (see “Supported Systems / emulators for details”); </li> <li> automatic start of the emulation station, the front-end for ROM images navigation and execution. Emulation station is run by Aloshi, which also manages the sources in Github; </li> <li> pre-configured splash screen that can be customized with the RetroPie-setup script; </li> <li> SAMBA shares for each system to copy ROMs on the RPI via the network; </li> <li> USB daemon to copy the ROM RPI via USB drive </li> </ul> <div class="e_p"> <b>Emulators</b> </div> <div class="e_p"> With Retropie you can emulate many old consoles and games that you used to find in the beloved penny arcades or running on the old gaming platforms in the 90s. </div> <ul> <li> 3do (lr-4do) </li> <li> Amiga (UAE4ALL2), (UAE4ARM) </li> <li> Amstrad CPC (CapriceRPI), (lr-cap32) </li> <li> Apple II (Linapple) </li> <li> Atari 2600 (Stella), (lr-stella) </li> <li> Atari 5200, and Atari 8 bit series: 400, 800, 1200XL, 600XL, 800XL, 130XE, XEGS (Atari800) </li> <li> Atari 7800 (lr-prosystem) </li> <li> Atari Jaguar (lr-virtualjaguar) </li> <li> Atari Lynx (lr-handy) </li> <li> Atari ST/STE/TT/Falcon (Hatari) </li> <li> CoCo (XRoar) </li> <li> Colecovision </li> <li> Commodore 64 (Vice) </li> <li> Daphne (Daphne) </li> <li> Dragon 32 (XRoar) </li> <li> Dreamcast (Reicast) </li> <li> FinalBurn Alpha (PiFBA), (lr-fba), (lr-fba-next) </li> <li> Genesis/Megadrive (DGEN), (lr-Genesis-Plus-GX), (lr-picodrive) </li> <li> Game Gear (Osmose), (lr-Genesis-Plus-GX) </li> <li> Game Boy (lr-gambatte) </li> <li> Game Boy Color (lr-gambatte) </li> <li> Game Boy Advance (gpSP), (lr-gpSP), (lr-vba-next), (lr-mgba) </li> <li> Intellivision (jzIntv) </li> <li> Macintosh (BasiliskII) </li> <li> MAME (AdvanceMAME), (MAME4ALL-Pi), (lr-imame4all), (lr-mame2003), (lr-mame2010) </li> <li> MasterSystem (lr-Genesis-Plus-GX), (lr-picodrive), (Osmose) </li> <li> MSX (lr-fmsx), (lr-bluemsx) </li> <li> Neo Geo (GnGeo-Pi), (PiFBA), (lr-fba), (lr-fba-next) </li> <li> Neo Geo Pocket (lr-mednafen-ngp) </li> <li> Neo Geo Pocket Color (lr-mednafen-ngp) </li> <li> Nintendo 64 (Mupen64plus), (lr-mupen64plus) </li> <li> Nintendo DS (lr-desmume) </li> <li> Nintendo Entertainment System (lr-fceumm), (lr-nestopia) </li> <li> PC (DOSBox), (rpix86) </li> <li> PC Engine/TurboGrafx-16 (lr-mednafen-pce-fast) (lr-beetle-supergrafx) </li> <li> PlayStation 1 (lr-pcsx-rearmed), (pcsx-rearmed) </li> <li> PSP (lr-ppsspp), (ppsspp) </li> <li> ScummVM </li> <li> Sega 32X (lr-picodrive) </li> <li> Sega CD (lr-picodrive) </li> <li> Sega Saturn (lr-yabause) </li> <li> Sega SG-1000 (lr-Genesis-Plus-GX) </li> <li> Super Nintendo Entertainment System (PiSNES), (snes9x-rpi), (lr-armsnes), (lr-catsfc), (lr-pocketsnes), (lr-snes9x-next) </li> <li> Vectrex (lr-vecx) </li> <li> Videopac or Odyssey2 (lr-o2em) </li> <li> Virtual Boy (lr-beetle-vb) (EXPERIMENTAL) </li> <li> WonderSwan (lr-mednafen-wswan) </li> <li> WonderSwan Color (lr-mednafen-wswan) </li> <li> Zmachine (Frotz) </li> <li> ZX Spectrum (FBZX), (Fuse), (lr-fuse) </li> </ul> <div class="e_p"> In this project we’ll interface Raspberry Pi through a specially made shield hosting the MCP23017 chip. </div> <div class="e_p"> <b>MAME Shield</b> </div> <div class="e_p"> In addition to the software aspects, the RetroPie project consists of a hardware solution too, to connect a joystick or different gamepads to the controller (Raspberry Pi). </div> <div class="e_p"> The “MAME shield” is a small board that supports the connection of an arcade joystick having a “stick” for the 4 directions and up to 12 buttons.Remember that for most of MAME games you need 2 or 3 buttons, while if you want to emulate other platforms we recommend the use of 6 additional “game buttons” and 2 “start and select” buttons. </div> <div class="e_p"> Below we see the wiring diagram. The shield connects to Raspberry Pi I²C-Bus through the MCP23017 and closes a contact (connecting the high level to ground) to simulate a button pressing. </div> <div class="e_p"> L ‘MCP23017 is a 16-bit port-expander with I²C interface. As you can see from thedatasheet,there are 2 groups of 8 pins each. </div> <div class="e_p"> A0-A1-A2 are the pins to define the shield address;TheRaspberry Pi through this shield is capable of connecting 8 arcade joysticks with 12 buttons each.For the communication to work correctly you need to set the right lines combination to achieve the desired address;if you mount two shield you must clearly compose different addresses.The address is set through the dip switches on SW1, connected to the three lines, each of which has a pull-up resistor that maintains it at a high logic level when the corresponding dip is OFF (open). </div> <div class="e_p"> Instead, pins from GPB0 to GPB7 and GPBA0 to GPB7 will be connected to our buttons. </div> <div class="e_p"> From the diagram you can see that we have a pin (SIG) for the coin holder (find the details of this device in the box below) which is optional.If we do not want to insert coins we can replace it with a button bypassing the transistor T1, so connecting it between GPB7 and ground. </div> <div class="e_p"> All of the MCP23017 input lines are equipped with a pull-up resistor, thanks to RR1 and RR2 resistive networks. </div> <div class="e_p"> <b>Image installation</b> </div> <div class="e_p"> Once you have found all the necessary material and have assembled one of our cases you can create the image file to start using the emulators. First, download theRetroPieProject image filefrom our site, then unzip and install the .iso file to the SD card. On MS Windows you can useWin32DiskImager, on MacRPI-sd card builder, while on Linux you can use the command: </div> <div class="e_p"> sudo dd if = of =IMG_FILE_PATH SD_CARD_PATHbs = 1m </div> <div class="e_p"> We recommend to choose an 8GB+ SD Card, since the OS occupies about 4GB and you need enough space to store ROMs. </div> <div class="e_p"> For Windows users, here are the installation steps: </div> <div class="e_p"> <ol> <li> open Win32DiskImager </li> <li> select the image you want to write to the SD Card (you need to unzip it first) </li> <li> select the SD Card drive; make sure it is the correct device, because the procedure will completely erase all SD card data; </li> <li> click on “Write” and wait until the process ends </li> </ol> </div> <div class="e_p"> Now you have a bootable SD Card for your system. Once the installation is complete, insert the SD Card into the Raspberry Pi slot. </div> <div class="e_p"> From our site you can download the full and already configured Retropie image file, with buttons configured according to this layout: </div> <div class="e_p"> The button names shown in the figure are the original arcade games ones. Mame uses the first three top buttons, while Nintendo uses the first 6. Actually, when opening the games, the correspondence indicated on the instructions is A = A; B = X, C = TR. </div> <div class="e_p"> Then there are the Start (white, bottom left) and Select (black, top left), duplicated for the two possible players; pressing them both resets the system and forces the exit from game. </div> <div class="e_p"> For all the games, A selects and B exits; the Start and Select combo goes back to the emulator menu or to the system menu; pressing B in the emulator menu exits to the emulator selection menu, that can be browsed by the joystick. </div> <div class="e_p"> To make connections between shield and buttons follow the<b>Table.</b> </div> <div class="e_p"> <i>Correspondence between the shield GP I / O and the buttons;</i> </div> <div class="e_p"> <i>Retroarch buttons column indicates the value assigned in the Retroarch configuration file to the related button.</i> </div> <div class="e_p"> As you can see from the table, the Retroarch and the MAME emulators buttons have been configured already, so we just need to make the rack and insert the (original, beware of the copyright!) game ROM to start playing. If available we’ll activate the coin holder, otherwise we’ll simply connect a button to GPB7 input. </div> <div class="e_p"> For the real nerds, who would like to recreate the Retropie image from scratch, to change the number of players or the graphics settings etc, they will have to follow this procedure: </div> <div class="e_p"> – download the “Retropie” V3.x version fromhttp://blog.petrockblock.com/retropie/retropie-downloads/ </div> <div class="e_p"> – install the image on a SD-Card as described above; </div> <div class="e_p"> – insert the SD Card into Raspberry Pi and connect keyboard and LAN cable, you will get the screen in figure <b></b>after the boot. You can’t use the joystick yet, but only the keyboard; </div> <div class="e_p"> – double-press the F4 key to enter the command prompt and check the Raspberry Pi IP address; </div> <div class="e_p"> – with the keyboard, type this command that allows you to enter the distro advanced configurations:<i>Sudo raspi-config;</i> </div> <div class="e_p"> – Click “expand file system” to use all the SD Card size, otherwise we will have no space to install the various packages and ROMs<b>,</b>and then click OK when done; </div> <div class="e_p"> Use arrows to move down and click <Finish><b>,</b>then reboot when requested by selecting <Yes>. </div> <div class="e_p"> Reboot Raspberry Pi and disconnect the keyboard: pay attention to always keep the keyboard unplugged because after the two controllers have been configured, if you boot the Retropie with keyboard connected it will not recognize and configure properly the buttons. In that case, you need to unplug the keyboard and reboot. Viceversa, if you need the keyboard to make settings,you have to connect it only after Emulstation started. Later, this will help us to configure the MAME buttons. </div> <div class="e_p"> At this point install MobaXterm on your PC, a terminal emulator to remotely control Raspberry Pi; Launch it and click on “session” at the top left. In the newly opened window, click SSH: enter the IP address of your Raspberry Pi then click OK<b>.</b> </div> <div class="e_p"> Click the address you just created (it’s on the left in the window) and enter as user “pi” and password: “raspberry”. </div> <div class="e_p"> Now we can send commands to install and configure the drivers for the joystick (through MCP23017); install the DKMS (Dynamic Kernel Module Support) Linux kernel by running: </div> <div class="e_p"> <i>sudo apt-get install -y –force-yes dkms cpp-4.7 gcc-4.7 git joystick</i> </div> <div class="e_p"> If you will receive an error in the installation of a kernel component, simply repeat the command. Otherwise, jump directly to the next: </div> <div class="e_p"> <i>sudo apt-get install -f</i> </div> <div class="e_p"> We install the correct joystick drivers: </div> <div class="e_p"> <i>wget http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-`uname -r`_`uname -r`-2_armhf.deb</i> </div> <div class="e_p"> <i>sudo dpkg -i linux-headers-`uname -r`_`uname -r`-2_armhf.deb</i> </div> <div class="e_p"> <i>sudo rm linux-headers-`uname -r`_`uname -r`-2_armhf.deb</i> </div> <div class="e_p"> Now you’ll have to go on our site and download the “build” folder. In this folder you will find the necessary files for the joystick. Unzip the folder and copy it by using MobaXterm in the folder: </div> <div class="e_p"> <i>../home/pi</i> </div> <div class="e_p"> Enter the “DEBIAN” directory with the command: </div> <div class="e_p"> <i>cd /home/pi/build/mk-arcade-joystick-rpi-0.1.4/DEBIAN/</i> </div> <div class="e_p"> change the two files rights, otherwise during the installation you cannot configure the joystick: </div> <div class="e_p"> <i>chmod 775 postinst</i> </div> <div class="e_p"> <i>chmod 775 prerm</i> </div> <div class="e_p"> Go back to the main folder with the “cd” command and then launch the command: </div> <div class="e_p"> <i>cd build</i> </div> <div class="e_p"> Authorize the installation of the following drivers: </div> <div class="e_p"> <i>sed -i “s/\$MKVERSION/0.1.4/g” /home/pi/build/mk-arcade-joystick-rpi-0.1.4/usr/src/mk_arcade_joystick_rpi-0.1.4/* /home/pi/build/mk-arcade-joystick-rpi-0.1.4/DEBIAN/control /home/pi/build/mk-arcade-joystick-rpi-0.1.4/DEBIAN/prerm</i> </div> <div class="e_p"> create the two controllers’ management file: </div> <div class="e_p"> <i>sudo dpkg-deb –build “mk-arcade-joystick-rpi-0.1.4/”</i> </div> <div class="e_p"> <i>sudo dpkg -i mk-arcade-joystick-rpi-0.1.4.deb</i> </div> <div class="e_p"> Now create the two joysticks addresses: </div> <div class="e_p"> <i>sudo modprobe mk_arcade_joystick_rpi map=0x20,0x21</i> </div> <div class="e_p"> In this case we have considered two joysticks in the example, with addresses 0x20 and 0x21 respectively; the address is chosen by configuring the dip-switch mounted on the MAME shield, according to<b>Table.</b> </div> <div class="e_p"> We must edit the “modules” file with the command: </div> <div class="e_p"> <i>sudo nano /etc/modules</i> </div> <div class="e_p"> and insert the following strings: </div> <div class="e_p"> <i>mk_arcade_joystick_rpi map=0x20,0x21</i> </div> <div class="e_p"> <i>i2c-bcm2708</i> </div> <div class="e_p"> <i>i2c-dev</i> </div> <div class="e_p"> Save the file by pressing “CTRL + O” and overwrite the file. Press CTRL + X to exit. </div> <div class="e_p"> Edit “raspi-blacklist.conf” and insert the pound sign (#) in the string “i2c-bcm2708”: </div> <div class="e_p"> <i>sudo nano /etc/modprobe.d/raspi-blacklist.conf</i> </div> <div class="e_p"> #i2c-bcm2708 </div> <div class="e_p"> Save the file by pressing “CTRL + O” and overwrite the file. </div> <div class="e_p"> CTRL + X to exit </div> <div class="e_p"> Now we can test buttons and check that all installations are successful, with the command: </div> <div class="e_p"> <i>jstest /dev/input/js0</i> </div> <div class="e_p"> Typing JS1 you will test the other joystick. </div> <div class="e_p"> <i>CTRL + Z to exit</i> </div> <div class="e_p"> Restart Raspberry Pi with<i>sudo reboot</i>command. </div> <div class="e_p"> <b>First start and controller configuration</b> </div> <div class="e_p"> When Raspberry Pi is off, connect the arcade controller. Obviously insert the SD card. Turn on the Raspberry Pi; at the first boot it will display the screen in figure<b>.</b>This menu will setup both Emulationstation(operating system front-end)and RetroArch Emulators controls, system that manages the configuration of all the emulators except MAME, whose we will see later how to configure the buttons. </div> <div class="e_p"> The buttons used if compared to those required by the software are much less, so when you have configured the DIRECTION – A-B-X-Y-LB-LT-RB-LB-START and SELECT buttons, by holding down an already configured button it will show the message “hold for 2S to skip “, so the remaining buttons will be skipped and not configured since they are not needed in our project. The buttons that are not configured now can be configured later using the same procedure, by inserting a normal USB PC controller or DIY making an arcade controller with 12 buttons, but this is not our case because we are making a MAME cabinet. </div> <div class="e_p"> Let’s see what the various buttons do: </div> <div class="e_p"> – <strong>A button:</strong> allows us to confirm selections; </div> <div class="e_p"> – <strong>B button:</strong> it allows us to exit from emulators and go back on the config screens; </div> <div class="e_p"> – <strong>START:</strong> allows us to enter the menu to change buttons, or to reboot system; </div> <div class="e_p"> – <strong>SELECT</strong>: it allows us to enter the menu and make some less important settings, like inserting images for each Rom, or in case of a long ROM list, to choose the desired letter. </div> <div class="e_p"> The software also provides the key combinations to exit from the emulators, to save, etc. </div> <div class="e_p"> After you configured the controller, we will have access to the emulator selection screen, do not worry if you do not find anything because you will have to load the various ROM before start playing. </div> <div class="e_p"> We recommend using a keyboard for the configurations (much faster), otherwise you could use the newly installed arcade controller. Let’s see one by one the individual settings: </div> <div class="e_p"> <b>– Configure audio settings:</b>You can configure whether to force the audio output to HDMI or to analog jack, and select the output volume. The default setting is HDMI output. </div> <div class="e_p"> –<b>Configure retroarch / launch retroarch rgui:</b>you can change the various emulators, audio, video, controller etc. settings. Only the MAME emulator is not affected by these setting: you have to manually change its various settings. </div> <div class="e_p"> –<b>Configure retroarch / joystick:</b>settings to be changed only if you use a standard keyboard or a standard USB analog joystick (PS3 controller, PC, XBOX etc.) as game control. </div> <div class="e_p"> –<b>Configure retroarch net play:</b>you can change the network settings. </div> <div class="e_p"> <b>– Configure splashscreen:</b>Here you will find over 30 different themes, choose one and press enter twice.It is the initial image when you start your operating system. </div> <div class="e_p"> –<b>Configure access:</b>through a dongle, the Raspebrry Pi can be constantly connected to WiFi networks;Simply choose the desired connection and credentials to access network. </div> <div class="e_p"> –<b>Raspberry pi configuration (raspi-config),</b>it is the standard Raspberry pi config tool (sudo raspi-config) </div> <div class="e_p"> In the screen you will find the following items: </div> <ul> <li> <b>Expand Filesystem:</b>uses all the SD Card capacity, it is a must to have enough storage capacity for all the game ROMs </li> <li> <b>Internationalization Options:</b>to set location, keyboard layout and time-zones. </li> <li> <b>Advanced Options:</b>on <b>Memory Split</b>change the number to 192 or 256, 192 recommended for raspberry B and 256 for type B + and 2. </li> <li> <b>Overclock:</b>set the overclocking level. Select “medium”, a reasonable level. If the OC is too high, you can have temperature problems and damage the Pi. In our test we did not overclock the Raspberry Pi. </li> <li> <b>Advanced Options:</b>enable also the SSH access </li> <li> <b>Advanced Options> Audio:</b>decide whether to force audio to HDMI or to stereo jack. We have already chosen this in a previous setting </li> <li> <b>Finish:</b>exits </li> <li> <b>Reboot:</b>reboots </li> </ul> <div class="e_p"> The remaining settings will change linux kernel defaults, do not modify them. </div> <div class="e_p"> –<b>Show Ip addres: To</b>view the IP address assigned </div> <div class="e_p"> Finally, for those who have created their own image for a few emulators, they have to load the BIOSes they can find online on wiki-retropie </div> <div class="e_p"> and selecting the desired emulator. For example, the BIOSes to be added are PSX, Game Boy. </div> <div class="e_p"> Instead those who choose the full version (we are using in this project) will find all BIOSes already installed. </div> <div class="e_p"> <b>ROMs Transfer</b> </div> <div class="e_p"> At this point we must load the game ROMs. There are two ways to load them: </div> <div class="e_p"> -with a USB pendrive; </div> <div class="e_p"> -with an SSH connection with MobaXterm or PuTTY. </div> <div class="e_p"> Our tests were made with MobaXterm, being simpler and intuitive. </div> <div class="e_p"> <strong><i>With the pendrive</i></strong> </div> <div class="e_p"> On a formatted USB memory drive, create a folder named “retropie” At this point insert it into a Raspberry Pi port. </div> <div class="e_p"> Reboot Raspberry Pi and automatically it will create ROMS folders for each emulator. </div> <div class="e_p"> Remove the USB drive and plug it into your PC.When you access the USB drive you will notice that there is the ROMS folder containing subfolders for the various emulators. </div> <div class="e_p"> Get the mame romset 037b5. For other emulators you need to make your own tests.Transfer the ROM that you want in the appropriate folder (eg mame). </div> <div class="e_p"> You can find on internet many retro-gaming websites offering games files. Be always sure that the ROM is compatible with your emulator version otherwise it will not run. Be careful also about copyrighting issues! </div> <div class="e_p"> When the ROM copy is done, insert the USB drive into Raspberry Pi and turn it on. All the USB drive content will be transferred to the SD card.Wait until completed, it can take a long. You can check the flashing green light on the Pi.When it turns off, the process is finished. </div> <div class="e_p"> You just have to select the emulator and start a game. </div> <div class="e_p"> <strong><i>Through moba xterm</i></strong> </div> <div class="e_p"> The procedure is<i>:</i> </div> <div class="e_p"> <ol> <li> make sure that the Raspberry Pi is on and connected to the router; </li> </ol> <ol> <li> from the main PC runMobaXterm Personal Editionand then connect to Raspberry Pi, by typing the IP address (assigned by DHCP) and entering Username: “pi” and password “raspberry”; </li> <li> reach the RetroPie/roms folder; </li> <li> copy the ROMs to their respective emulators folders; </li> <li> restart Raspberry Pi to view and launch the available ROMs. </li> </ol> </div> <div class="e_p"> CAUTION: Some emulators may not recognize the ROMs because they need the right BIOS, like Playstation or NeoGeo. For the latter, just save the bios files “NeoGeo.zip” directly into the roms folder and you’re done. </div> <div class="e_p"> Other emulators such as NES needs rom with .NES extension, SNES ROM requires the .smc extension. </div> <div class="e_p"> If you don’t see a specific emulator on the Emulationstation list do not worry, just repeat the process by saving on the USB drive at least one ROM in the specified emulator folder. </div> <div class="e_p"> At the next boot it will be visible and selectable. In figureyou see Emulationstation graphical interface after loading the ROMs. </div> <div class="e_p"> With the joystick you can move left and right, while pressing “A” you select and emulator. Select a game and start it by pressing “A” button again. </div> <div class="e_p"> The “B” button is used by the Emulationstation to “go back”, so exits from an emulator and returns to the selection screen menu (main screen). </div> <div class="e_p"> On<i>www.mamedev.org</i>you can find the free ROMs released under free licenses (ROM use is allowed only if you own the original game and you use it for non-commercial purposes). </div> <div class="e_p"> To test the emulator, let’s download the STAR FIRE free ROM, after you have checked the option ” I understand That These ROM images are for non-commercial use only “. </div> <div class="e_p"> Many sites provide all the ROMs you want in compliance with copyrighting. </div> <div class="e_p"> MAME, ROMs AND COPYRIGHT </div> <div class="e_p"> MAME is a perfectly legal and free software. You can download it from the official website or other alternatives and use it freely because emulating another platform, in itself, it is not illegal. It is not illegal to have MAME on your computer, on your website or give it to your friends. The source code is freely available. </div> <div class="e_p"> It is illegal to sell MAME or its source code and take profit from its distribution. As for Web or other media distribution, there are restrictions: ”<i>The distribution of MAME on the same physical support hosting also illegal ROMs copies is strictly prohibited. You may not distribute MAME in any way if you sell or advertise illegal CD- ROMs or other mediums containing ROMs. Note that this restriction applies even if you do not receive directly or indirectly, a gain from the sale. It is allowed to make MAME and ROMs available on the same website, but only alerting users on ROMs copyright statements, and making it clear that users must not download any ROM if they are not entitled to do so. “</i> </div> <div class="e_p"> About the ROMs, it is a different matter. Possession of games memory image files belonging to logic boards that you do not own can be a violation of copyright. It’s like making a copy of a game or a musical CD purchased by a friend rather than buying it. </div> <div class="e_p"> About the Web distribution of ROMs, we must point out that many sites were kindly contacted by copyrights owners being asked to remove them. So far, we know, no site was forcedly closed or prosecuted. The policy of this site is clear: we insert only links to free ROMS in the<b>dedicated</b> <b>page</b>, and we give information on how to find other ROMS only for those entitled to have them. </div> <div class="e_p"> How can you acquire the right to use one or more ROMs? There are various ways. You can be authorized by the legitimate owners of copyright but this is a bit complicated. </div> <div class="e_p"> You can buy the original logic boards and legally use the corresponding ROM. Warning, you will acquire the rights even if a logic board is not functioning. Simply, then, buy the failed original board for few euros each and be legally allowed to download and use their ROMs. </div> <div class="e_p"> A third way is to buy the HotRod Joystick control panel produced by Hanaho, that is sold with absolutely legal Capcom’s ROMs. </div> <div class="e_p"> <b>Practical implementation</b> </div> <div class="e_p"> Years ago there were different types of Bartop racks (only dashboard and screen), the big cabinet we used to see in arcades coin-ops, then finally we have seen the first “consoles” or desktop PC as Commodore 64, Amiga, Nintendo etc. </div> <div class="e_p"> In this case we have prototyped two racks: the first is the prototype for the dashboard and the overall gaming system. It has a HDMI output to connect it to any TV, easily transportable and less bulky. </div> <div class="e_p"> The dashboard size is 70×21, we put eight game buttons. </div> <div class="e_p"> The second model is the classic Bartop rack, with a recess monitor for the most nostalgic ones! </div> <div class="e_p"> It is a bit more complex to make, but we are offering you the rack dimensions so you can easily make it. The frame can be made with MDF or chipboard wooden panels, 18mm thick. </div> <div class="e_p"> About the Raspberry Pi shield, the PCB layout is available at<i>openstore</i>and then you can easily mount all the traditional components on it. The chip socket has a reference mark for the right mounting as shown on these pages. The transistor T1 is only installed if you intend to connect the coin holder; the same for R5 resistance and the terminal marked “COIN”. </div> <div class="e_p"> The shield must be completed by assembling the requested terminal blocks and, where RPY is marked, a 20-pin female connector on two lines spaced 2,54×2,54 mm, which can be simply obtained from two 10-pin female 2,54 mm pitch strips. </div> <div class="e_p"> Once the shield is finished, insert it on the Raspberry Pi GPIO connector matching the contacts 1 and 2, then connect on the terminal blocks the game control buttons which meanwhile we have assembled on the console we made on purpose. Do the same for the joystick and the optional coin holder (or the “play again” button to be put on its place). </div> <div class="e_p"> <b><i>Installing the coin holder</i></b> </div> <div class="e_p"> <i>If you do not want to put a button on JPB7 to simulate the coin insertion, you need to make the coin holder device.</i> </div> <div class="e_p"> <i>The coin holder used in our project is a rack modular add-on to recreate the ‘80s-‘90s game rooms atmosphere, physically inserting coins to see credits increasing.</i> </div> <div class="e_p"> <i>The coin simulates the pushing of a button and sends to Raspberry Pi a number of pulses (i.e. button hits) corresponding to the value of the currency that we have set. For example, in this project we planned 3 coin sizes: 50 cent – 1 credit, 1 euro – 2 credits and 2 euro – 5 credits.</i> </div> <div class="e_p"> <i>Let’s see how to program the coin: it can work with RS232 or as a simple contact, the latter is the mode we want to use. On the left side, there are two buttons and a small 7-segment display that will allow us to program the coins at will and on top there is a “dip-switch” to decide how to use the coin, in our case we will have to put the dip number 1 to ON and the remaining to OFF.</i> </div> <div class="e_p"> <strong><i>Let’s program the first coin.</i></strong> </div> <div class="e_p"> <i>Press and hold the button “A” until you see “CP” on display, press the “A” button once and you will see “C1” (it means first coin), at this point we press the “B” button to increase a number, this number is the number of pulses that the coin will send when it is inserted. For example, we put 05 and insert the 2-euro coin, you will hear “beep” that means that the coin value has been accepted. Now every time you insert the 2-euro coin, Raspberry Pi receives 5 pulses, the equivalent of 5 credits.</i> </div> <div class="e_p"> <i>Repeat this process for all other currencies.</i><i>For example:</i> </div> <div class="e_p"> <i>C1: 01 is equivalent to 1 credit (50 cents)</i> </div> <div class="e_p"> <i>C2: 02 equals two credits (1 euro)</i> </div> <div class="e_p"> <i>C3: 05 equals five credits (2 EUR)</i> </div> <div class="e_p"> To recap, for those who want to start now to “play” without having to set up anything, they can download the full image, made for two players, the coin and a total of 12 buttons. </div> <div class="e_p"> In our project we configured 8 “Game” buttons and 2 for “START and SELECT”. </div> <div class="e_p"> All emulators are working, you need only to load the (original) ROMs to start using them, the sound will be set to HDMI output, so if you connect to a TV with HDMI connection, the sound will be played directly from it. </div> </div>
442
comment
All comments
Unknown
11613
0
442
Rules about cashback: 1. Valid time: ALLPCB cashback activity will end on April 1st. 2. Capped amount: The capped amount of cashback for each account is $5,000. Each order can get a maximum of $2,000 cashback. That means every author can get $5,000 max. 3. Cashback range: The cashback activity only covers the corresponding PCB order. The order amount for other combined payment products will be invalid. 4. Clicking your own promotional link will be invalid. The same email address, shipping address, contact information, and phone number are all recognized as the same account. 5. ALLPCB has the final interpretation right of the cashback activity.
ALLPCB will donate 2% to the author for this promotion link.