Benvenuto Visitatore(Log In|Registrati)

 
Reply to this topicStart new topic
> Collegare un controller SNES al PC o smartphone Android
redice
messaggio12 Mar 2013, 01:59
Messaggio #1



Gruppo icone

Gruppo: SMod
Messaggi: 7.080
Iscritto il: 19 August 10
Utente Nr.: 17.671
BGE Day of the Tentacle
SO WinXP


Direttore (59)


Stanco di giocare all'emulatore NES/SNES con la tastiera del PC o con gli orribili comandi touch degli emu su Android ho ripreso in mano un vecchio progetto che avevo fatto per collegare un vero joypad SNES all'iPhone e lo ho convertito per funzionare tramite USB (cosa che magari esiste già biggrin2a.gif).
File Allegato  snes1.jpg ( 236.19k ) Numero di download: 14
File Allegato  snes2.jpg ( 141.51k ) Numero di download: 16

Il costo del convertitore SNES -> USB è di circa 6.72 euro . I componenti base sono:
- scheda seriale FTDI (4.22 euro)
- PIC16F88 (2.50 euro)

Il microcontrollore 16F88 lo uso da sempre perchè:
1) funziona in low power 3.3V (e quindi si può tranquillamente usare per applicazioni con smartphone)
2) ha una seriale interata (quasi tutti ne hanno una)
3) ha anche un oscillatore integrato, selezionabile via software (e quindi mi fa risparmiare i 0.10euro di un oscilallatore esterno, dei condesatori e devo fare qualche saldatura in meno)
E poi ne ho delle carrelate di scorta biggrin2a.gif
Questo per dire che può essere sostituito con praticamente qualsiasi altro microcontrollore si abbia in casa, se si vuole risparmare un paio d'euro.

Se poi si vuole fare i fighi roargh.gif si può anche smembrare un vecchio SNES rotto per fregare il connettore del joypad, altrimenti si deve tagliare un joypad messo bene per spelare i fili redcard.gif

Il circuito è molto semplice, preferendo il sw all'hw cerco sempre di far fare la maggior parte del lavoro al firmware e ai driver host:
File Allegato  snes_pcandroid.jpg ( 21.34k ) Numero di download: 21


Per adesso ho scritto solo il driver PC (driver=compatibile con qualsiasi software/emulatore), quello Android invece, anche se già pronto testato e funzionante, non è attualmente usabile in quando Android, per via delle (giuste) politiche di sicurezza, non permette alle applicazioni di terze parti di interagire tra loro.
Per questo motivo occorrerebbe scrivere un intero emu SNES per integrarci il supporto al joypad esterno. Ovviamente la strada è quella inversa, ovvero integrare il driver snes dentro un emu open source, ma per adesso non ho voglia di farlo. biggrin2a.gif

Il firmware del micro e il driver pc li allegherò più avanti.

Se qualcuno vuole farselo (e non è in grado di saldare/programmare un micrcontrollore etc) posso fornire il circuito di base io, quale va poi attaccata, a incastro, la scheda seriale FTDI e un proprio joypad.


--------------------
Il muto non si fa capire dal lama, il lama non si fa capire dal muto, il muto prova allora con una tromba, il lama invece perde la pazienza e comincia a prenderlo a sassate, il muto scappa e non sa cosa succede, voleva solo dire al lama che era muto, allora perchè il lama ha reagito così? Forse perchè in questa storia manca qualcosa, e questo qualcosa devi dirmelo tu.
 
DannyD
messaggio12 Mar 2013, 09:27
Messaggio #2





Gruppo: Gamer
Messaggi: 524
Iscritto il: 23 December 12
Da: Genova
Utente Nr.: 19.691
BGE Baldur's Gate / The X Series / Endless Space / Distant Worlds / The Ultima Series
SO Windows7




CITAZIONE (redice @ 12 Mar 2013, 01:59) *
Stanco di giocare all'emulatore NES/SNES con la tastiera del PC o con gli orribili comandi touch degli emu su Android ho ripreso in mano un vecchio progetto che avevo fatto per collegare un vero joypad SNES all'iPhone e lo ho convertito per funzionare tramite USB (cosa che magari esiste già biggrin2a.gif).
File Allegato  snes1.jpg ( 236.19k ) Numero di download: 14
File Allegato  snes2.jpg ( 141.51k ) Numero di download: 16

Il costo del convertitore SNES -> USB è di circa 6.72 euro . I componenti base sono:
- scheda seriale FTDI (4.22 euro)
- PIC16F88 (2.50 euro)

Il microcontrollore 16F88 lo uso da sempre perchè:
1) funziona in low power 3.3V (e quindi si può tranquillamente usare per applicazioni con smartphone)
2) ha una seriale interata (quasi tutti ne hanno una)
3) ha anche un oscillatore integrato, selezionabile via software (e quindi mi fa risparmiare i 0.10euro di un oscilallatore esterno, dei condesatori e devo fare qualche saldatura in meno)
E poi ne ho delle carrelate di scorta biggrin2a.gif
Questo per dire che può essere sostituito con praticamente qualsiasi altro microcontrollore si abbia in casa, se si vuole risparmare un paio d'euro.

Se poi si vuole fare i fighi roargh.gif si può anche smembrare un vecchio SNES rotto per fregare il connettore del joypad, altrimenti si deve tagliare un joypad messo bene per spelare i fili redcard.gif

Il circuito è molto semplice, preferendo il sw all'hw cerco sempre di far fare la maggior parte del lavoro al firmware e ai driver host:
File Allegato  snes_pcandroid.jpg ( 21.34k ) Numero di download: 21


Per adesso ho scritto solo il driver PC (driver=compatibile con qualsiasi software/emulatore), quello Android invece, anche se già pronto testato e funzionante, non è attualmente usabile in quando Android, per via delle (giuste) politiche di sicurezza, non permette alle applicazioni di terze parti di interagire tra loro.
Per questo motivo occorrerebbe scrivere un intero emu SNES per integrarci il supporto al joypad esterno. Ovviamente la strada è quella inversa, ovvero integrare il driver snes dentro un emu open source, ma per adesso non ho voglia di farlo. biggrin2a.gif

Il firmware del micro e il driver pc li allegherò più avanti.

Se qualcuno vuole farselo (e non è in grado di saldare/programmare un micrcontrollore etc) posso fornire il circuito di base io, quale va poi attaccata, a incastro, la scheda seriale FTDI e un proprio joypad.



la butto li, ma andare su kickstarter per un'idea del genero no?


--------------------
 
Diduz
messaggio12 Mar 2013, 09:55
Messaggio #3



Gruppo icone

Gruppo: Oldgame Editor
Messaggi: 1.640
Iscritto il: 4 April 02
Utente Nr.: 2.089
SO Linux




CITAZIONE (DannyD @ 12 Mar 2013, 11:27) *
la butto li, ma andare su kickstarter per un'idea del genero no?

Se non sbaglio devi essere americano per andare su Kickstarter, o avere un'azienda con sede fiscale in America.
Ci sono però degli equivalenti tipo Indiegogo con regole diverse, penso.


--------------------
"Fare una cacata è già abbastanza difficile, è il 75% del lavoro. Mi pare una follia non fare quel 25% di sforzo in più per darsi l'occasione di creare qualcosa di speciale." - Nick Herman, capo-progetto di Tales from the Borderlands (Telltale, 2014-2015)
 
redice
messaggio12 Mar 2013, 14:02
Messaggio #4



Gruppo icone

Gruppo: SMod
Messaggi: 7.080
Iscritto il: 19 August 10
Utente Nr.: 17.671
BGE Day of the Tentacle
SO WinXP


Direttore (59)


Qualcosa di simile esiste già: http://www.icontrolpad.com/
Era un progetto nato nel 2007 per collegare un controller SNES all'iPhone, poi è diventato un controller custom, poi è diventato bluetooth, poi è diventato compatibile con una infinità di dispositivi.
E qualche mese fa sono andati su kickstarter per finanziarsi icontrolpad2, e ci sono riusciti.

Questo è solo un progettino amatoriale che più o meno chiunque può assemblarsi in casa con pochi spiccioli, just for fun biggrin2a.gif
Ma sicuramente (sempre che non esista già) è un qualcosa che verrebbe clonato al volo dai cinesi e venduto ad un prezzo di 3$ dry.gif

Grazie comunque dell'idea.


--------------------
Il muto non si fa capire dal lama, il lama non si fa capire dal muto, il muto prova allora con una tromba, il lama invece perde la pazienza e comincia a prenderlo a sassate, il muto scappa e non sa cosa succede, voleva solo dire al lama che era muto, allora perchè il lama ha reagito così? Forse perchè in questa storia manca qualcosa, e questo qualcosa devi dirmelo tu.
 
TheRuler
messaggio23 Mar 2013, 10:15
Messaggio #5



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Carino il tuo progetto red! Anche l'icontrolpad!

Su Kickstarter c'è stato anche questo: KADE.
Bruno freitas lo conoscerete (almeno gli smanettoni), si trovano sempre progettini molto interessanti sul suo sito.


--------------------
 
simone90
messaggio20 Apr 2013, 09:40
Messaggio #6





Gruppo: Gamer
Messaggi: 9
Iscritto il: 25 June 06
Utente Nr.: 3.263
SO Windows7




Ciao, mi sto interessando per collegare il joypad dello snes al mio smartphone android.

Lo avevo gia collegato al pc qualche anno fa, ora mi piacerebbe giocare con l'emulatore e il mio bel joypad (sono un nostalgico biggrin2a.gif ) sul mio smartphone con android 4.2.1


Ho esperienza sia in elettronica che in informatica ma non ho capito il discorso dei driver per android, non è possibile collegare il joypad via usb allo smatphone e farlo riconoscere come tastiera alternativa ? per poi andare all'interno dell'emulatore a mappare i tasti ?


--------------------
 
redice
messaggio27 Apr 2013, 00:23
Messaggio #7



Gruppo icone

Gruppo: SMod
Messaggi: 7.080
Iscritto il: 19 August 10
Utente Nr.: 17.671
BGE Day of the Tentacle
SO WinXP


Direttore (59)


CITAZIONE (simone90 @ 20 Apr 2013, 10:40) *
non è possibile collegare il joypad via usb allo smatphone e farlo riconoscere come tastiera alternativa ? per poi andare all'interno dell'emulatore a mappare i tasti ?

Ti direi di no, ma non sono sicuro al 100%. In teoria ci sono due strade per fare questo che dici te:
- creare un driver che stia sopra al sistema e faccia lui un mapping tra l'input via usb e un touch su android (per intenterci, l'equivalente della SendInput() su pc Windows) -- NON fattibile per via della chiusura di Android
- usare un driver esistente per far riconoscere automaticamente dal sistema la periferica esterna come keyboard alternativa (per intenderci, quello che sui pc windows sono le periferiche HID) -- NON so se esite questa possibilità su android

Per questo secondo me non è fattibile...la mia idea era di prendere l'emu snes open soruce e aggiungergli la parte di driver per la lettura da seriale.
Se ti interessa:
- qui i sorgenti dell'emu snes
- qui un driver android per leggere via usb usando l'ftdi

Comunque la cosa è compatibile solo con sistemi Android 4.x che supprtino l'usb otg, e non sono tutti (sono una decina mi pare, come il galaxy tab2, il nexus...)


--------------------
Il muto non si fa capire dal lama, il lama non si fa capire dal muto, il muto prova allora con una tromba, il lama invece perde la pazienza e comincia a prenderlo a sassate, il muto scappa e non sa cosa succede, voleva solo dire al lama che era muto, allora perchè il lama ha reagito così? Forse perchè in questa storia manca qualcosa, e questo qualcosa devi dirmelo tu.
 
simone90
messaggio27 Apr 2013, 14:02
Messaggio #8





Gruppo: Gamer
Messaggi: 9
Iscritto il: 25 June 06
Utente Nr.: 3.263
SO Windows7




Intendevo proprio implementare con il pic la classe HID, in modo da far riconoscere al sistema android (funzionante dal android 3.1 in poi) il joypad come un normale dispositivo keyboard.

Cosi da mappare i tasti del joypad con delle lettere/tasti della tastiera fittizi per utilizzarlo su quasi tutti gli emulatori che danno la possibilità di configurare i tasti all'interno dell'applicazione.


Secondo me è fattibile e molto più rapido come metodo, sto facendo degli esperimenti proprio in questi giorni blush.gif

Messaggio modificato da simone90 il 27 Apr 2013, 14:03


--------------------
 
redice
messaggio27 Apr 2013, 15:24
Messaggio #9



Gruppo icone

Gruppo: SMod
Messaggi: 7.080
Iscritto il: 19 August 10
Utente Nr.: 17.671
BGE Day of the Tentacle
SO WinXP


Direttore (59)


Ok ma il discorso è questo:
Il dispositivo esterno (PIC e tutto il resto) può anche essere conforme al protocollo HID, ma il sistema Android supporta dispositivi di questo tipo?
Ovvero ha un driver build-in che lo riconosca e gestisca automaticamente come tastiera alternativa etc? Perchè se non è così HID o non HID occorre farsi comunque da soli il driver per l'hw esterno, e in questo caso sarebbe un driver "locale" alla applicazione realizzata, e non generico per tutto il sistema.

Questo intendevo..e secondo me purtroppo la realtà è la seconda, google sembra confermare.



--------------------
Il muto non si fa capire dal lama, il lama non si fa capire dal muto, il muto prova allora con una tromba, il lama invece perde la pazienza e comincia a prenderlo a sassate, il muto scappa e non sa cosa succede, voleva solo dire al lama che era muto, allora perchè il lama ha reagito così? Forse perchè in questa storia manca qualcosa, e questo qualcosa devi dirmelo tu.
 
simone90
messaggio28 Apr 2013, 12:03
Messaggio #10





Gruppo: Gamer
Messaggi: 9
Iscritto il: 25 June 06
Utente Nr.: 3.263
SO Windows7




Come ho scritto sopra, dalla versione 3.1 Android supporta queste tipo di periferiche nativamente, quindi non servirebbe fare nulla ! blush.gif (Ho provato sul mio samsung galaxy s2, collegando sia una tastiera che un mouse, il sistema li riconosce immediatamente )

Ovviamente dipende anche dall'hardware dello smartphone.


Ho fatto anche delle prove con "SuperGNES Lite" uno dei tanti emulatori dello SNES per Android, e collegando una tastiera usb al cellulare (e mappando i tasti dentro all'emulatore che ha un opzione apposta) riesco a giocare perfettamente ! blush.gif

Messaggio modificato da simone90 il 28 Apr 2013, 12:04


--------------------
 
redice
messaggio28 Apr 2013, 12:33
Messaggio #11



Gruppo icone

Gruppo: SMod
Messaggi: 7.080
Iscritto il: 19 August 10
Utente Nr.: 17.671
BGE Day of the Tentacle
SO WinXP


Direttore (59)


Ottimo, non lo sapevo.
Allora devi solo lavorare sulla parte hardware, perchè in questo caso il chip FTDI non va più bene perchè questo emula una connessione seriale e non supporta il protocollo HID.

La via più facile (ma costosa) sarebbe quella di usare della demo board con già tutto integrato, tipo qualche scheda arduino oppure la PICDemUSB.
Se hai dimestichezza con l'hw ti consiglio semplicemente di prendere un pic della microchip che supporti nativamente la connessione usb (una volta c'erano il pic18f4550 e il pic18f2550, ora sicuro ce ne sono di nuovi) dove la microchip stessa rende disponibili gratis dei template di firmware con già tutte le primitive usb disponibili, incluse quelle per implementare il protocollo HID.
Poi la parte di firmware per collegare il PIC al controller snes te la passo io, quella resta uguale.


--------------------
Il muto non si fa capire dal lama, il lama non si fa capire dal muto, il muto prova allora con una tromba, il lama invece perde la pazienza e comincia a prenderlo a sassate, il muto scappa e non sa cosa succede, voleva solo dire al lama che era muto, allora perchè il lama ha reagito così? Forse perchè in questa storia manca qualcosa, e questo qualcosa devi dirmelo tu.
 

Reply to this topicStart new topic
1 utenti stanno leggendo questa discussione (1 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


Versione Lo-Fi Oggi è il: 2nd November 2026 - 20:38