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:
/opt/retropie/emulators/mame4all-pi/mame asteroid
- /home/pi/nessa
serve a far partire gioco NES / installazione super mario clouds
/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/
# # 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:
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.