#acl FreaknetGroup:read,write,admin,delete,revert All:read = Mamestation = Vedi anche [[Museo/RaspberrySetup]] Realizzazione di una mini console per giochi emulati MAME, a scopo esposizione o autofinanziamento utilizzando Raspberry PI, joystick e tasti * Punto di partenza: https://learn.adafruit.com/retro-gaming-with-raspberry-pi/overview * Distro provata: RetroPie http://blog.petrockblock.com/retropie/ == Note tecniche RetroPie == File di config utili: * /etc/profile qui dentro, per decidere cosa far partire: {{{ #[ -n "${SSH_CONNECTION}" ] || emulationstation # lancia la stazione con tutti gli emulatori x giocare #[ -n "${SSH_CONNECTION}" ] || /home/pi/asteroida # lancia asteroids come gioco mame [ -n "${SSH_CONNECTION}" ] || /home/pi/nessa # lancia super mario clouds #[ -n "${SSH_CONNECTION}" ] II /home/pi/ponta # lancia emulatore giochi pontaccio }}} * /home/pi/asteroida serve a far partire mame con asteroid: {{{ #!/bin/bash /opt/retropie/emulators/mame4all-pi/mame asteroid }}} * /home/pi/nessa serve a far partire gioco NES / installazione super mario clouds {{{ #!/bin/bash /opt/retropie/emulators/RetroArch/installdir/bin/retroarch -L /opt/retropie/emulatorcores/fceu-next/fceumm-code/fceumm_libretro.so --config /opt/retropie/configs/all/retroarch.cfg --appendconfig /opt/retropie/configs/nes/retroarch.cfg /home/pi/RetroPie/roms/nes/SuperMarioClouds.nes }}} == VICE Emulatore C64 per giochi Pontaccio == da dentro Retropie-setup: * prima installi il pacchetto vice da retropie_packages.sh * poi installi i BINARI (opzione 1) da retropie_setup.sh cosi' ti trovi l'emulatore che funziona ma va lanciato a mano: Il menu di gestione dell'emulatore si apre con F12. da qui gli dici di emulare un mouse, e magicamente il cursore sparisce (!!!). Poi devi dargli save configuration. === ti da' segmentation fault? === devi lanciarlo con opzione -sdlbitdepth 16 altrimenti con 32 segfaulta. ;) === Preparazione giochi === * Attacca il tape all'emulatore da menu (Attach tape) clickando sul loader del gioco, cosi lui carica e lancia * Appena lanciato crea snapshot sotto forma di file .vsf ;) === Lanciare emulatore COMMODORE 64 su raspberry === {{{ /opt/retropie/emulators/vice-2.4/installdir/bin/x64 -sdlbitdepth 16 -1 /home/pi/pontaccio/superg4/SUPERG_4.tap -autostart /home/pi/pontaccio/superg4/mani.vsf }}} === file di autoavvio pontaccio, da lanciare dentro /etc/profile === Si chiama "ponta" e sta in /home/pi/ {{{ #!/bin/bash # # asbesto 11/8/2014 aklab # ritardo=5m comando="/opt/retropie/emulators/vice-2.4/installdir/bin/x64" opzione="-sdlbitdepth 16" nascondi=" 1>/dev/null 2>/dev/null &" # nastro1="/home/pi/pontaccio/superg1/superg1.tap" snapshot11="/home/pi/pontaccio/superg1/cactus.vsf" snapshot12="/home/pi/pontaccio/superg1/flags.vsf" snapshot13="/home/pi/pontaccio/superg1/lifts.vsf" # nastro2="/home/pi/pontaccio/superg4/superg4.tap" snapshot21="/home/pi/pontaccio/superg4/alfabetopazzo.vsf" snapshot22="/home/pi/pontaccio/superg4/ammazzamedia.vsf" snapshot23="/home/pi/pontaccio/superg4/compleanno.vsf" snapshot24="/home/pi/pontaccio/superg4/mani.vsf" # nastro3="/home/pi/pontaccio/superg5/superg5.tap" # snapshot31="/home/pi/pontaccio/superg5/jessica.vsf" snapshot32="/home/pi/pontaccio/superg5/superg.vsf" # sleppa="sleep 2m" $comando $opzione -1 $nastro1 -autostart $snapshot11 & $sleppa ; killall x64 $comando $opzione -1 $nastro1 -autostart $snapshot12 & $sleppa ; killall x64 $comando $opzione -1 $nastro1 -autostart $snapshot13 & $sleppa ; killall x64 $comando $opzione -1 $nastro2 -autostart $snapshot21 & $sleppa ; killall x64 $comando $opzione -1 $nastro2 -autostart $snapshot22 & $sleppa ; killall x64 $comando $opzione -1 $nastro2 -autostart $snapshot23 & $sleppa ; killall x64 $comando $opzione -1 $nastro2 -autostart $snapshot24 & $sleppa ; killall x64 $comando $opzione -1 $nastro3 -autostart $snapshot31 & $sleppa ; killall x64 $comando $opzione -1 $nastro3 -autostart $snapshot32 & $sleppa ; killall x64 sleep 10 /home/pi/ponta #/opt/retropie/emulators/vice-2.4/installdir/bin/x64 -sdlbitdepth 16 \ #-1 /home/pi/pontaccio/superg4/SUPERG_4.tap \ #-autostart /home/pi/pontaccio/superg4/mani.vsf & }}} BRUTALE, ma fa. == Joypad USB con piu' di sei tasti == Problema: http://blog.petrockblock.com/forums/topic/mame4all-pi-with-ps3-controller/#post-7163 MAME va ricompilato: {{{ There was a issue raised at mame4all-pi repository that resolved the problem. Apparently there is code that rejects controllers with more than 6 axes. Here is what I did. In a terminal, type sudo nano home/pi/RetroPie/emulators/mame4all-pi/src/rpi/minimal.cpp Comment out lines 168 to 174 so it appears as below. // if (SDL_JoystickNumAxes(myjoy) > 6) // { // SDL_JoystickClose(myjoy); // myjoy=0; // logerror("Error detected invalid joystick/keyboard\n"); // break; // } Save and exit. Next you need to recompile the code so type in the terminal. cd home/pi/RetroPie/emulators/mame4all-pi/ make Reboot and your PS3 controller should now work. }}} === Configurazione Joypad === Per configurare il joypad devi farlo sia dai menu di emulationstation, sia da MAME premendo TAB. e' un macello ma poi funziona tutto, compresi insert coin e 1 player start. == Emulazione tastiera tramite contatti GPIO su raspberry == Serve per avere dei pulsanti esterni che corrispondono a tasti sulla tastiera, senza doverne collegare o modificare una. === Il programmino === E' retrogame.c in allegato che si trova in fondo alla pagina nel pacchetto retrotasti.tar.gz. Li i tasti sono programmati cosi: {{{ ioStandard[] = { // This pin/key table is used when the PiTFT isn't found // (using HDMI or composite instead), as with our original // retro gaming guide. // Input Output (from /usr/include/linux/input.h) // usiamo i gpio in sequenza numerica, non a cazzo. // codice colori come le resistenze. // GND cavetto NERO. { 2, KEY_LEFT }, // marrone Joystick (4 pins) { 3, KEY_RIGHT }, // rosso { 4, KEY_DOWN }, // arancio { 7, KEY_UP }, // giallo { 8, KEY_LEFTCTRL }, // verde A/Fire/jump/primary { 9, KEY_LEFTALT }, // blu B/Bomb/secondary { 10, KEY_SPACE }, // viola C/SPACE/BUTTON 3 { 11, KEY_1 }, // grigio START joy START { 17, KEY_5 }, // bianco COIN { 18, KEY_ESC }, // altro nero, joy SELECT // For credit/start/etc., use USB keyboard or add more buttons. { -1, -1 } }; // END OF LIST, DO NOT CHANGE }}} Schema dei collegamenti: {{http://zaverio.com/~asbesto/gaming_gpio-rev2-new.png}} === Configurazione per udev di merda === Va creato il file /etc/udev/rules.d/10-retrogame.rules con dentro: {{{ SUBSYSTEM=="input", ATTRS{name}=="retrogame", ENV{ID_INPUT_KEYBOARD}="1" }}} === start automatico del gestore dei tasti esterni === retrogame eseguibile va compilato ("make retrogame" da dentro la cartella del pacchetto retrotasti.tar.gz), poi va lanciato in automatico aggiungendo a /etc/rc.local, prima di "exit 0", la seguente riga: {{{ /home/pi/Adafruit-Retrogame/retrogame & }}} basta riavviare e tutto deve funzionare a dovere. I tasti configurati in retrogame.c sono 1, 5, control sinistro, alt sinistro, spazio, esc, e le 4 freccette. Questi tasti vanno configurati a loro volta dentro MAME e dentro, eventualmente, gli altri emulatori. == Lasciare solo UN emulatore (mame) o disabilitarne alcuni dalla lista di emulationstation == si deve editare es_systems.cfg che sta in /etc/emulationstation/ CANCELLANDO (non commentando!) quelli non voluti. Prima fatti una copia di sicurezza! :) {{{ root@raspberrypi:/etc/emulationstation# ls -la total 64 drwxr-xr-x 3 root root 4096 Aug 14 10:16 . drwxr-xr-x 101 root root 4096 Aug 14 09:57 .. -rwxr-xr-x 1 root root 15279 Aug 14 10:16 es_systems.cfg -rw-r--r-- 1 root root 16420 Aug 14 10:14 es_systems.cfg.originale }}} == Problema Bianco e Nero se connesso a tv/monitor == Succede perche' va a 60 Hz anziche' 50. C'e' un settaggio da toccare in /boot/config.txt, e' abbastanza intuitivo, riguarda PAL. == Allegati == * http://zaverio.com/~asbesto/retrotasti.tar.gz * http://zaverio.com/~asbesto/gaming_gpio-rev2-new.png * http://zaverio.com/~asbesto/retrogame.c ---- CategoryMuseo