RetroASD = JammASD (versione usb) + Mini PC!
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
JammASD+RetroPie... nome del progetto da ora in poi sarà RetroASD.
Oggi voglio concentrarmi sulla mappatura dei tasti.
JammASD emula una tastiera, il pdf di riferimento della mappatura risulta essere https://www.webasd.com/public/doc/ASD27 ... Pinout.pdf
Ovviamente dovremo mappare i giusti tasti sia sul frontend che su ogni emulatore. Iniziamo dal frontend.
Emulation Sattion salva i propri tasti nel seguente file:
/opt/retropie/configs/all/emulationstation/es_input.cfg
Lo standard scelto da emulation station è il valore decimale ritornato dalla libreria SDL 2.0, troviamo quindi i valori da inserire nel file: https://wiki.libsdl.org/SDLKeycodeLookup
Facciamo un esempio pratico...
Il tasto LEFT che viene mappato da JammASD con il cursore a sinistra, avrà codice SDL 1073741904, quindi nel file dovremo inserire:
<input name="left" type="key" id="1073741904" value="1"/>
Il tasto pagedown che invece per ora vorrei associare al tasto 6 del player 1 dobbiamo guardare il PDF di ASD che riporta come tasto X, quindi dovremo inserire 120:
<input name="pagedown" type="key" id="120" value="1"/>
Per praticità ora prima di compilare il file farò un piccolo Excel con tutte le decodifiche... appena pronto lo condivido!
Riflessione personale i tasti scelti da Picerno potrebbero necessitare di alcune personalizzazioni, sarebbe molto cool se al primo boot la scheda venisse riprogrammata in funzione delle necessità di RetroASD. Ovviamente questo per ora non è fattibile, ho chiesto a Picerno se è disponibile darmi le specifiche per riprogrammare i tasti della scheda, e appena avrà tempo dovrebbe fornirmi il tutto... poi da capire quando implementerò il tutto ma lo metto intanto nella lista della spesa.
Oggi voglio concentrarmi sulla mappatura dei tasti.
JammASD emula una tastiera, il pdf di riferimento della mappatura risulta essere https://www.webasd.com/public/doc/ASD27 ... Pinout.pdf
Ovviamente dovremo mappare i giusti tasti sia sul frontend che su ogni emulatore. Iniziamo dal frontend.
Emulation Sattion salva i propri tasti nel seguente file:
/opt/retropie/configs/all/emulationstation/es_input.cfg
Lo standard scelto da emulation station è il valore decimale ritornato dalla libreria SDL 2.0, troviamo quindi i valori da inserire nel file: https://wiki.libsdl.org/SDLKeycodeLookup
Facciamo un esempio pratico...
Il tasto LEFT che viene mappato da JammASD con il cursore a sinistra, avrà codice SDL 1073741904, quindi nel file dovremo inserire:
<input name="left" type="key" id="1073741904" value="1"/>
Il tasto pagedown che invece per ora vorrei associare al tasto 6 del player 1 dobbiamo guardare il PDF di ASD che riporta come tasto X, quindi dovremo inserire 120:
<input name="pagedown" type="key" id="120" value="1"/>
Per praticità ora prima di compilare il file farò un piccolo Excel con tutte le decodifiche... appena pronto lo condivido!
Riflessione personale i tasti scelti da Picerno potrebbero necessitare di alcune personalizzazioni, sarebbe molto cool se al primo boot la scheda venisse riprogrammata in funzione delle necessità di RetroASD. Ovviamente questo per ora non è fattibile, ho chiesto a Picerno se è disponibile darmi le specifiche per riprogrammare i tasti della scheda, e appena avrà tempo dovrebbe fornirmi il tutto... poi da capire quando implementerò il tutto ma lo metto intanto nella lista della spesa.
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
Creato un piccolo repository, dentro troverete l'Excel che ho creato per creare velocemente configurazioni di Emulation Station per JammASD.
https://github.com/zanac/RetroASD/tree/master
https://github.com/zanac/RetroASD/tree/master
-
Tox Nox Fox
- Moderatore
- Messaggi: 11793
- Iscritto il: 14/01/2007, 23:35
- Medaglie: 3
- Grazie Inviati: 161 volte
- Grazie Ricevuti: 276 volte
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
Non so, devo fare delle prove... non mi torna perfettamente di poter fare un bel lavoroTox Nox Fox ha scritto: ↑18/10/2019, 12:57 Posso chiederti come mai vorresti rimappare alcuni tasti ?
Però appunto poter personalizzarli direttamente dalla mia immagine sarebbe il top, ad oggi tocca avere un windows, poterlo fare dal cab... è un sogno.
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
Guarda, te ne dico già una... se prendo la mappatura dei tasti così come è documentata: https://www.webasd.com/public/doc/ASD27 ... Pinout.pdfTox Nox Fox ha scritto: ↑18/10/2019, 12:57 Posso chiederti come mai vorresti rimappare alcuni tasti ?
Nella seconda pagina riporta che il tasto "Coin" spedisce il numero 5, ma il numero 5 è usato anche come tasto shiftato del Pulsante 1 del primo giocatore... la cosa non mi piace, così mi perdo una combinazione... Picerno, se sei in ascolto, come mai questa scelta? Forse per i cab che non ha gettoniera? Cmq come dicevo poco male... l'idea sarebbe di personalizzare la mappatura in funzione dei settaggi che predispongo, al primo avvio (e solo al primo avvio), spedisco una sequenza di programmazione e preparo la JammASD "come piace a RetroASD"... così sarebbe tutto trasparente ed immediato per l'utente finale!
-
Tox Nox Fox
- Moderatore
- Messaggi: 11793
- Iscritto il: 14/01/2007, 23:35
- Medaglie: 3
- Grazie Inviati: 161 volte
- Grazie Ricevuti: 276 volte
Re: RetroASD = JammASD + Mini PC!
La mappatura della JammASD seguendo standard del Mame
Il Coin del p1 è sempre il 5
Il Coin del p2 è sempre il 6
Il Coin del p1 è sempre il 5
Il Coin del p2 è sempre il 6
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
Si, ma io parlavo delle combo "shifted" che è una caratteristica della JammASD davvero fica, che a mio parere però non è sfruttata al 100% per i tasti impostati... cmq se Picerno mi darà supporto ho in mente grandi cose anche su questo fronte.Tox Nox Fox ha scritto: ↑19/10/2019, 13:45 La mappatura della JammASD seguendo standard del Mame
Il Coin del p1 è sempre il 5
Il Coin del p2 è sempre il 6
Cmq oggi un passo indietro... e due avanti.
vanni@domon:~$ gcc -march=native -Q --help=target | grep march
-march= haswell
vanni@domon:~$ logout
Connection to 192.168.2.18 closed.
vanni@harlock:~$ gcc -march=native -Q --help=target | grep march
-march= sandybridge
ok, questo non è per tutti. Cosa significa? Che il PC che ho collegato al cab ha architettura haswell (è abbastanza recente)... dopo aver preparato tutti i core su quel sistema e ottimizzati per haswell, ho fatto il boot con la chiavetta sul PC di casa (un vecchiotto sandybridge) e... porcaccia, non funzionava! Il codice era ottimizzato per un'architettura errata e tutto andava in core dump!
Mi sono messo di sana pianta a ricompilare tutto per sandybridge, ora gli emulatori e il sistema gira perfettamente su tutti i PC prodotti da 7-8 anni a questa parte!!!
Le richieste hardware saranno quindi: un PC Sandybrige o superiore con bios UEFI (praticamente un PC appunto di massimo 7 anni fa). Detto questo anche gamecube rulla alla grande sulla "misera" Intel 630!
-
alucard
- Affezionato
- Messaggi: 277
- Iscritto il: 02/12/2017, 16:19
- Medaglie: 1
- Città: Ceprano
- Grazie Inviati: 5 volte
- Grazie Ricevuti: 15 volte
Re: RetroASD = JammASD + Mini PC!
Si, va liscio anche su miniPC con Intel UHD Graphics 605zanac ha scritto:...anche gamecube rulla alla grande sulla "misera" Intel 630!
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
Oggi affronterò il tema dell'utilizzo dell'emulatore Supermodel (vedi https://www.supermodel3.com) su RetroASD.
Abbiamo sostanzialmente due problemi da affrontare... il primo è mappare l'emulatore con i tasti della JammASD, per fare questo ho iniziato a creare il file corretto sul git, lo trovate su https://github.com/zanac/RetroASD/tree/ ... supermodel
Il problema più spinoso riguarda l'utilizzo di una risoluzione superwide-15-khz (1920x240) per far girare un gioco che è nato per 496x384 (24 khz)... Potremmo scegliere di usare una "bella" interlacciata, ma personalmente sono dell'avviso di usare la superwide e accontentarsi di una risoluzione progressiva ma con qualche artefatto dovuto a filtri di interpolazione.
Stranamente supermodel non ne vuole sapere però di partire e si blocca quando viene lanciato in fullscreen sulla nostra superwide... dopo uno studio del codice sorgente ho scoperto che il bug non è di supermodel ma bensì della libreria grafica utilizzata: SDL. Supermodel fa infatti uso della vetusta SDL1.2, ormai superata da anni dalla 2.0... abbiamo nuovamente due soluzioni.
1. Creare una patch di SDL 1.2 che permetta di utilizzare il fullscreen di risoluzioni anomale (strada più difficile ma "pulita", ora non ho tempo quindi per ora la lasciamo nella todo list).
2. Patchare supermodel per avviarsi in finestra e fare una patch del codice perchè non visualizzi il titolo della finestra (questa è più facile).
La soluzione 2 è stata banale approntarla, basta nella chiamata a SDL_SetVideoMode aggiungere il flag SDL_NOFRAME (più una forzatura alla risoluzione di destinazione desiderata), lavorando poi sulla variabile SDL_VIDEO_CENTERED è possibile posizionare la finestra nell'angolo 0,0! Ok, ci siamo... gira, e pure bene! Prima di rilasciare la patch su git tenterò di perseguire la strada dalla patch di SDL nel tempo libero, nel caso non sia fattibile tenterò anche di contattare gli autori di supermodel per capire se sono interessati a includere questo hack in modo "più ufficiale". E' rimasto un piccolo glitch (ovvero il cursore del mouse visibile), ma è una baggianata risolverlo e lo farò una di queste sere.
edito ed aggiungo, forse forse c'è una terza soluzione, ho scoperto l'esistenza di un wrapper che mappa chiamate SDL 1.2 verso la nuova SDL 2.0: https://github.com/MrAlert/sdlcl, in coda a tutto farò un tentativo... una volta fatto tutte le prove vi aggiorno con l'opzione che reputerò la migliore.
Abbiamo sostanzialmente due problemi da affrontare... il primo è mappare l'emulatore con i tasti della JammASD, per fare questo ho iniziato a creare il file corretto sul git, lo trovate su https://github.com/zanac/RetroASD/tree/ ... supermodel
Il problema più spinoso riguarda l'utilizzo di una risoluzione superwide-15-khz (1920x240) per far girare un gioco che è nato per 496x384 (24 khz)... Potremmo scegliere di usare una "bella" interlacciata, ma personalmente sono dell'avviso di usare la superwide e accontentarsi di una risoluzione progressiva ma con qualche artefatto dovuto a filtri di interpolazione.
Stranamente supermodel non ne vuole sapere però di partire e si blocca quando viene lanciato in fullscreen sulla nostra superwide... dopo uno studio del codice sorgente ho scoperto che il bug non è di supermodel ma bensì della libreria grafica utilizzata: SDL. Supermodel fa infatti uso della vetusta SDL1.2, ormai superata da anni dalla 2.0... abbiamo nuovamente due soluzioni.
1. Creare una patch di SDL 1.2 che permetta di utilizzare il fullscreen di risoluzioni anomale (strada più difficile ma "pulita", ora non ho tempo quindi per ora la lasciamo nella todo list).
2. Patchare supermodel per avviarsi in finestra e fare una patch del codice perchè non visualizzi il titolo della finestra (questa è più facile).
La soluzione 2 è stata banale approntarla, basta nella chiamata a SDL_SetVideoMode aggiungere il flag SDL_NOFRAME (più una forzatura alla risoluzione di destinazione desiderata), lavorando poi sulla variabile SDL_VIDEO_CENTERED è possibile posizionare la finestra nell'angolo 0,0! Ok, ci siamo... gira, e pure bene! Prima di rilasciare la patch su git tenterò di perseguire la strada dalla patch di SDL nel tempo libero, nel caso non sia fattibile tenterò anche di contattare gli autori di supermodel per capire se sono interessati a includere questo hack in modo "più ufficiale". E' rimasto un piccolo glitch (ovvero il cursore del mouse visibile), ma è una baggianata risolverlo e lo farò una di queste sere.
edito ed aggiungo, forse forse c'è una terza soluzione, ho scoperto l'esistenza di un wrapper che mappa chiamate SDL 1.2 verso la nuova SDL 2.0: https://github.com/MrAlert/sdlcl, in coda a tutto farò un tentativo... una volta fatto tutte le prove vi aggiorno con l'opzione che reputerò la migliore.
- xbrunox
- Affezionato
- Messaggi: 285
- Iscritto il: 06/07/2017, 15:36
- Città: castellanza
- Grazie Inviati: 35 volte
- Grazie Ricevuti: 31 volte
Re: RetroASD = JammASD + Mini PC!
Se ti torna utile io il supermodel a 15 kHz lo faccio girare a 640x240 che é sicuramente più normale della tua 1920x240 e poi per sistemare le cose con il rapporto 4:3 nell'ini del supermodel abilito il parametro stretch=1
Ma se nn ricordo male forse mi andava anche con la 2560x240
Ma se nn ricordo male forse mi andava anche con la 2560x240