|
|
|
|
Strumenti |
23-02-2004, 09:16 | #1 |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
Guida: Come costruire un Joystick Arcade da una tastiera
Keyboard Hacking - joypad arcade con la tastiera
libera interpretazione della guida al keyboard hack di emuadvice Per chi è questa guida? Per chi vuole autocostruirsi un joypad arcade utilizzando una vecchia tastiera, Per rivivere le emozioni degli arcade a casa come al bar! Questa è una guida passo passo per studiare, utilizzare e configurare correttamente i circuiti di una vecchia tastiera per costruire un joypad arcade. Materiali: - Una tastiera da buttare, anche senza qualche tasto, ma con la parte elettonica funzionante; - Se la tastiera è vecchia ci sarà bisongo di un adattatore DIN-ps/2; - Un cacciavite, indispensabile per uno smanettone informatico (da tenere sempre vicino al mouse!); - un tester o qualcosa che gli somigli per misurare resistenze, o meglio verificare la chiusura di circuiti (esempio: batteria e lampadina...) - Software: keyscan - pulsanti e joystick arcade, pannello di legno e tutto quanto serve a costruire il joypad. Dunque, esponiamo bene quello che vogliamo fare: con una tastiera vogliamo ricavare un controller per videogiochi composto da 2 joystick a 4 o 8 vie e 6 bottoni ciascuno, senza che ci siano fastidiosi effetti tipo tasti bloccati o non premuti. Inoltre aggiungeremo i pulsanti utilizzati dal MAME per inserire i gettoni, scegliere il giocatore, mettere in pausa ed eventualmente altri tasti funzione.... Il tutto verrà poi configurato in mame32 creando un profilo di controller personalizzato, evitando così di dover impostare i tasti in ogni gioco. Cominciamo con un po' di teoria Le tastiere sono formate dai tasti, da una porta ps/2 o din, e da un chip di codifica. I tasti sono da considerarsi come degli interruttori: quando vengono premuti, viene chiuso un circuito sotto di loro, ossia viene creato un ponte tra due piste normalmente scollegate tra loro. Alla chiusura di tale circuito entra in gioco il chip di codifica, che elabora il segnale da spedire al pc attraverso la porta ps/2 o DIN. Immaginate che questo codificatore osservi sempre i tasti, e quando ne è stato premuto uno lui è pronto per gridare al pc "Hei, guarda che è stato premuto il tasto x", ovviamente in un linguaggio interpretabile dal computer. Per risparmiare sulla produzione, però, i chip hanno una caratteristica che rende il nostro lavoro un po' particolare: la struttura dei circuiti è a matrice. Cosa vuol dire? beh, che i tasti non sono indipendenti gli uni dagli altri, ma hanno parte delle loro piste in comune con altri tasti. Il chip possiede solo una trentina di piedini, e ne usa 16 o 18 per le righe e 8 per le colonne (o viceversa, dipende da come si guardano ). Ad ogni combinazione di coppie (riga,colonna) corrisponde un tasto. In realtà ciò non è sempre vero, perchè ad alcune coppie non è collegato nessun tasto (la matematica insegna... 16*8 > 105!) bene, il chip quindi si occuperà di osservare quale coppia di piste (piedini) è stata chiusa e tradurrà tale coppia nel formato interpretabile dal pc. I problemi di questo sistema nascono quando si vuole premere più di un pulsante, in quanto il controller potrebbe pensare che siano stati premuti tasti che non abbiamo mai toccato o che non riesca a leggere i tasti da noi premuti. Tali fenomeni prendono il nome di key ghosting e key blocking. E' abbastanza chiaro? questa spiegazione semplificata serve solo per farvi capire il perchè procederemo come segue. 1. Procuratevi una tastiera E' il punto più facile, visto che se avete letto il materiale occorrente dovreste averla già sotto mano. Vanno bene delle tastiere con attacco PS/2 o DIN, vecchie, nuove, meccanicamente rotte o perfette...poco importa, L'importante è che il chip di codifica sia intatto e funzionante. Ricordatevi che con queste operazioni la tastiera sarà poi inutilizzabile per gli scopi abituali, ossia scrivere. 2. Smanettare con la tastiera Questo passaggio non è obbligatorio, ma è per farvi un'idea di quanti tasti riuscite a premere contemporaneamente. Utilizzate il programma keyscan e premete quanti più tasti possibili senza sentire il solito beep, e provate a vedere se tutti i tasti sono riconosciuti correttamente. Poi spegnete il pc, staccate la tastiera, e dimenticatevi di quello che avete fatto: c'è un metodo più scentifico per decidere quali tasti vanno bene senza blocking o ghosting... 3. Aprite la tastiera A seconda delle tastiere, dovete arrangiarvi a capire come sono state chiuse. Di solito ci sono due o tre viti sul retro nella parte alta, mente il lato basso è agganciato con dei fermi o a pressione... insomma apritela senza danneggiare nulla... 4. Guardate com'è fatta una tastiera Ecco la spiegazione pratica di quanto ho cercato di dire teoricamente: ogni tasto ha un circuito di due piste, ma queste piste sono condivise con gli altri tasti, e terminano in due connettori separati che sono collegati ai piedini del chip integrato. L'interno delle tastiere non è sempre uguale; ci possiamo trovare infatti di fronte a: a. Circuito in bachelite, ossia tutte le piste stanno su una piastra; b. Fogli (mylar) separati: le piste sono su due fogli distinti separati da un foglio isolante; solo in prossimità dei tasti sono presenti dei fori, e alla pressione del taso i due fogli con le piste vengono a contatto, chiudendo il circuito. I tasti di solito sono bloccati sulla struttura esterna. c. Fogli separati chiusi tra i tasti e un supporto in metallo: è la soluzione che ho trovato io sulla tastiera olivetti, e sono stato fortunato: i tasti restano attaccati ai circuiti anche se si rimuove il coperchio, quindi la tastiera è utilizzabile anche aperta. A seconda del tipo di tastiera trovato, procederemo in diversi modi, in quanto alcuni sono più veloci per un tipo e altri più macchinosi. 5. Rilevazione matrice Ecco il lavoro che impegnerà un'oretta di tempo, magari di meno se siete in due! Ora dovete cercare quale circuito chiude ciascun tasto, ossia quale coppia (riga,colonna) fa capo ad ogni tasto. In caso di tastiera in bachelite non ho le idee molto chiare a riguardo, in quando non ho mai visto una di queste tastiere internamente. Per gli altri due tipi, invece, procediamo. C'è una schedina sulla quale sono alloggiati un chip e due connettori; i connettori fanno da collegamento ai fogli della tastiera e la schedina del chip. consiglio di numerare ogni pista di questi connettori, (in caso di matrice 16x8 o da 1 a 24 oppure da 1 a 16 e da 1 a 8), così da poter annotare la corrispondenza in una tabella. Probabilmente avrete visto una tabella del genere ribaltata, ma sono più comodo a orientarla così... Si può procedere in due modi a seconda del tipo di tastiera: a. Tastiera a fogli dato che in questa tastiera è possibile vedere le piste, basta focalizzare l'attenzione sui due contatti posti in corrispondenza di ogni tasto e seguirne la pista fino alla fine, ossia fino ai connettori: i numeri delle due piste saranno la coppia (riga,colonna) riservata a quel tasto. Annotate il tasto nella tabella sopra creata. b. Tastiera con fogli "bloccati" in questo caso le piste sono nascoste, e per non rovinare del tutto la tastiera (potrebbe servirci in una eventuale verifica) ci muniamo di tester o apparecchio simile e focalizziamo l'attenzione sule parti terminali dei fogli, ossia le linguette attaccate ai connettori del piccolo circuito interno alla tastiera. Utilizzando i punteruoli (se avete dei morsetti siete più fortunati!) del tester, rilevate la resistenza di ogni coppia di piste, e cominciate a premere un tasto alla volta. Quando verrà premuto il tasto corrispondente a quella coppia di piste, il tester segnerà 0 ohm. Badate bene che il valore deve essere esattamente 0ohm, non 0,6 o qualcosa del genere. se non disponete di un tester, utilizzate una batteria (una pila della radiolina) e una piccola lampadina: Codice:
batt.----lampa | | | | ------------- | tastiera..| ------------- Non ho sperimentato questo metodo, ma qualcuno l'ha fatto prima di me, e funziona. c. Un altro metodo vi fa risparmiare tester e lampadina, ma non mi assumo nessuna responsabilità per danni eventuali alle vostre attrezzature. Procuratevi un normale filo di materiale conduttore isolato (un cavetto elettrico...) e spellatelo alle estremità. Con la tastiera aperta collegatela al PC, o addirittura collegate solo il circuito senza i fogli e i tasti, e avviate keyscan. con il filo fate ponte tra ogni coppia di piste inserendo le parti spellate nei connettori, guardate il carattere rilevato da keyscan e annotatelo in tabella. non ho provato neppure questo sistema, e non so cosa succede quando si cortocircuitano le coppie che non hanno un tasto assegnato. 6. Guardate la tabella! Ecco a voi la matrice della vostra tastiera! Ora risulta facile capire perchè alla pressione di due o più tasti il nostro metal slug si inchiodava: un player continuava a sparare, un'altro ad andare avanti... Ora porteste buttare i fogli e la plastica della tastiera, per tenere solo il cicuito con il chip di codifica. Adesso dobbiamo trovare una combinazione di tasti adatta per far funzionare tasti direzione e pulsanti contemporaneamente. Per fare ciò dobbiamo scegliere un tasto per ogni colonna. Discorso diverso, invece, per i tasti direzionali: dato che i tasti su e giù non verranno mai premuuti contemporaneamente, possiamo utilizzare due tasti della stessa colonna; lo stesso dicasi per i tasti sinistra e destra, per tutti e due i giocatori. ci troveremo così con i 12 tasti (6 tasti per giocatore) divisi per 12 colonne, e gli 8 tasti direzionali in 4 colonne, per un totale di 16colonne utilizzate: esattamente il numero di colonne della nostra matrice! Attenzione: se si vogliono utilizzare 6 tasti per giocatore e la tastiera utilzza una matrice di 16x8, ci possono essere problemi per il caricamento dei crediti e i pulsanti di start: sarebbe poco carino se, mentre siete al mostro finale di blazing star e il vostro amico vi vuole venire in aiuto, il controller si blocchi perchè sono stati inseriti i crediti!!!! Per ovviare a questo inconveniente si può rinunciare al sesto bottone, oppure assengare l'inserimento dei crediti e i pulsanti di start ai tasti delle colonne dei pulsanti n°6, che vengono utilizzati raramente (qualche picchiaduro). Vediamo adesso quali possono essere, nell'esempio, i tasti da utilizzare: I tasti gialli saranno quelli del giocatore 1, con pgsu e pggiu per le direzioni alto/basso e a e z per destra/sinistra; I tasti rossi saranno quelli del giocatore 2, f e v saranno su e giù, n e m saranno sinistra e destra; 3,E e D saranno i tasti per i crediti e gli start; per sicurezza C sarà il serto tasto del giocatore 2, probabilmente il tasto meno utilizzato in assoluto... Si possono aggiungere altri tasti, come P per la pausa, f2 per entrare nella configurazione del gioco, il tasto tab (si possono comunque configurare diversamente), eccetera... oppure utilizzare la combinazione dei tre tasti "blu", in modo da non affollare il nostro joypad di tasti... Ultimo, dobbiamo prevedere di uilzzare anche il tasto esc, se vogliamo poter uscire dai giochi senza toccare la tastiera. Non preoccupatevi se i tasti così scelti sono diversi da quelli del mame, più avanti creeremo un file di configuraizone per il nostro controller. Purtroppo, però, tale procedimento sarà valido solo per il mame32 (e derivati). 7. Collegamenti! Eccoci qui, la parte più pratica, più "elettronica": dobbiamo effettuare i collegamenti tra i pulsanti/joytick e i connettori del pcb della tastiera... Io ho dissaldato i connettori originali per fare posto a una morsettiera a vite, in modo da velocizzare le operaizoni di collegamento e ridurre i danni in caso di errore. Se non siete esperti, fatevi aiutare da un amico pratico in saldature. 8. Configurazione controller sotto MAME32 Ok, avete il vostro bel controller, avete il romset completo del MAME, l'ultima versione del MAME32... non vorrete mica controllare e riconfigurare gli input per ogni gioco???? Ecco che ci viene in aiuto la cartella "ctrlr" e il file "std.ini" del MAME32. In questa cartella sono salvati i profili dei controller arcade più famosi: X-Arcade, HotRoad, SlikStik. Perchè il nostro non può comparire in questa cartella??? Dunque, cominciamo: -Create una sottocartella nella cartella "ctrlr" del MAME32 -Rinominate la sottocartella con il nome del vostro controller (lo avrete battezzato, o no?) -copiate il file "std.ini" nella sottocartella del vostro controller e rinominatelo in "default.ini" -aprite il file: all'interno trovate pressochè tutti i tasti configurabili del MAME. -quello che dovete fare è semplicemente cambiare le corrispondenze azione - tasto dei movimenti, dei pulsanti, dei crediti, dei pulsanti start e dei tasti che vi interessano. I tasti che non vi interessano o che non avete modificato possono essere cancellati dal file, in quanto saranno presi in considerazione i valori standard. Come avrete capito, le azioni che iniziano per "UI_" si riferiscono al menu che solitamente appare premendo tab, le azioni "P1_","P2_" eccetera sono riferiti ai tasti per i giocatori e gli altri sono tasti globali. Nel nostro esempio, quindi, dovremmo scrivere questo: Codice:
#Configurazione Esempio START1 "KEYCODE_E" START2 "KEYCODE_D" COIN1 "KEYCODE_3" UI_PAUSE "KEYCODE_E KEYCODE_D" P1_JOYSTICK_UP "KEYCODE_PGUP" P1_JOYSTICK_DOWN "KEYCODE_PGDN" P1_JOYSTICK_LEFT "KEYCODE_A" P1_JOYSTICK_RIGHT "KEYCODE_Z" P1_BUTTON1 "KEYCODE_L" P1_BUTTON2 "KEYCODE_RCTRL" P1_BUTTON3 "KEYCODE_RSHIFT" P1_BUTTON4 "KEYCODE_LALT" P1_BUTTON5 "KEYCODE_LEFT" P1_BUTTON6 "KEYCODE_RIGHT" P2_JOYSTICK_UP "KEYCODE_F" P2_JOYSTICK_DOWN "KEYCODE_V" P2_JOYSTICK_LEFT "KEYCODE_N" P2_JOYSTICK_RIGHT "KEYCODE_M" P2_BUTTON1 "KEYCODE_ENTER" P2_BUTTON2 "KEYCODE_K" P2_BUTTON3 "KEYCODE_X" P2_BUTTON4 "KEYCODE_MINUS" P2_BUTTON5 "KEYCODE_DOWN" P2_BUTTON6 "JOYCODE_C" tasto1 | tasto2 = tasto1 oppure tasto2 tasto1 ! tasto2 = tasto1 ma non tasto2 tasto1 tasto2 = tasto1 e tasto2 assieme Sbizzarritevi allora a configurare anche le altre azioni, come i paddle, il trackball eccetera. Fatto? passiamo allora all'attivazione del profilo. -Avviate MAME32 -Selezionate la voce "Default Game Options..." dal menu "Options" -Selezionate la scheda "Controllers" -Dal menu a tendina "Default input layout" selezionate il nome del vostro controller. -Cliccate sul pulsante "OK" FATTO!!! ora potete avviare qualsiasi gioco e utilizzare il vostro controller senza troppi sbattimenti!!! Ultima cosa: dobbiamo configurare anche i tasti per poter navigare nei menu del MAME32, ossia per sfogliare i giochi e avviarli. Per fare ciò basta aprire il file MAME32ui.ini presente nella directory radice dell'emulatore, e modificare le seguenti linee: Codice:
ui_key_up KEYCODE_UP ui_key_down KEYCODE_DOWN ui_key_left KEYCODE_LEFT ui_key_right KEYCODE_RIGHT ui_key_start "KEYCODE_ENTER ! KEYCODE_LALT" Codice:
ui_key_up "KEYCODE_PGUP | KEYCODE_F" ui_key_down "KEYCODE_PGDN | KEYCODE_V" ui_key_left "KEYCODE_A | KEYCODE_N" ui_key_right "KEYCODE_Z | KEYCODE_M" ui_key_start "KEYCODE_L | KEYCODE_ENTER" ora riavviate MAME32 e provate.... BUON DIVERTIMENTO!!!! |
24-02-2004, 15:17 | #2 |
Senior Member
Iscritto dal: May 2002
Messaggi: 2704
|
Anche se ho già il mio cabinato funzionante (con il relatico keyboard hack) non posso esimermi dal farti i miei complimeti per la guida
|
24-02-2004, 16:54 | #3 | |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
Quote:
ma mi sa che sei l'unico che la capisce visto che hai avuto modo di provarla in prima persona!!! più avanti, incrociando le dita, arricchiremo la guida con delle pics, se matro riesca a procurarle! o ne hai qualcuna tu, per caso? ciao e grazie! |
|
24-02-2004, 16:59 | #4 | |
Senior Member
Iscritto dal: May 2002
Messaggi: 2704
|
Quote:
|
|
24-02-2004, 17:13 | #5 | |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
Quote:
ciao! |
|
24-02-2004, 19:10 | #6 | |
Senior Member
Iscritto dal: May 2002
Messaggi: 2704
|
Quote:
Te lo ricordi il mio cabinato? |
|
25-02-2004, 11:45 | #7 |
Senior Member
Iscritto dal: Apr 2003
Città: Padova
Messaggi: 2920
|
Skazzo scusami se sto trascurando la guida relativa al joy ma sto costruendo un sito assieme a pabbelo di elettronica, sarebbe la sezione di elettronica non ufficiale di hwupgrade , dove si parlerà delle questioni anche tecniche relative ai joy, come ad es. eleiminare il ghosting con diodi, ecc.. il sito è sulla firma
ps: registratevi sul forum, eh |
25-02-2004, 16:15 | #8 | |
Senior Member
Iscritto dal: May 2002
Messaggi: 2704
|
Quote:
L'avete provata? A me non ha dato nessun effetto positivo... |
|
25-02-2004, 16:28 | #9 | |
Senior Member
Iscritto dal: Apr 2003
Città: Padova
Messaggi: 2920
|
Quote:
|
|
25-02-2004, 16:34 | #10 | |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
Quote:
per i diodi, avevo sentito che era una soluzione teorica, ma che in pratica può non essere vero... ciao! |
|
25-02-2004, 17:35 | #11 | |
Senior Member
Iscritto dal: Nov 2000
Messaggi: 678
|
Quote:
Ciao, io mi sono registrato, la trovo un'iniziativa utile, speriamo che il forum cresca presto ! Per lavoro generalmente scrivo Fw per microcontrollori ma me ne intendo un po' anche di Hw. [fine OT]
__________________
Adepto del "La polvere è vita" clan. |
|
25-02-2004, 17:36 | #12 | |
Senior Member
Iscritto dal: Apr 2003
Città: Padova
Messaggi: 2920
|
Quote:
|
|
25-02-2004, 19:47 | #13 | |
Senior Member
Iscritto dal: May 2002
Messaggi: 2704
|
Quote:
Ps:il cabinato era quello di Crystal Castles (assieme al keyboard hack posterò qualche altra foto) |
|
25-02-2004, 20:25 | #14 | |
Senior Member
Iscritto dal: Nov 2000
Messaggi: 678
|
Quote:
Yes,Grazie! La mini guida sul programmatore di pic l'ho terminata, mi manca solo l'host per lo schema elettrico. [Fine OT]
__________________
Adepto del "La polvere è vita" clan. |
|
28-02-2004, 22:59 | #15 |
Senior Member
Iscritto dal: Apr 2003
Città: Padova
Messaggi: 2920
|
scusa skazzo per caso hai il link della casa produttrice di millemila keyboard encoders e che faceva anche la sk. video apposta per il monitor arcade (non ricordo di preciso cosa facesse quella scheda..) ? vorrei informarmi un pò di più su come sono fatti gli encoders per provare a farmene uno tramite microcontrollore, 6000 tasti premibili contemporaneamente by matrotech
|
29-02-2004, 20:40 | #16 | |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
Quote:
dici che è meglio mettere un po' di link? tipo quello sopra menzionato e www.arcadecontrols.com ???? ciao! |
|
01-03-2004, 22:03 | #17 | |
Senior Member
Iscritto dal: Nov 2000
Messaggi: 678
|
Quote:
Questa è senzaltro una buona lettura per sapere da dove cominciare, è la descrizione del funzionamento della porta seriale PS/2, che a differenza della rs232 (com1 e com2 ad es.) è di tipo sincrono, ossia ha un clock insieme ai dati (quindi puoi usarla anche con il 16f84 che hai già): descrizione protocollo PS/2 PS. si potrebbe lanciare un progetto comune sul forum di easy Electronic
__________________
Adepto del "La polvere è vita" clan. Ultima modifica di ripsk : 01-03-2004 alle 22:06. |
|
01-03-2004, 22:57 | #18 | |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
Quote:
ciao! |
|
02-03-2004, 18:00 | #19 |
Senior Member
Iscritto dal: Apr 2003
Città: Padova
Messaggi: 2920
|
beh ripsk (Lastblade mi piace di più ) e skazzo... mi avete letto nel pensiero!! Penserete che sia un pazzo, però un keyboard encoder devo riuscire a farlo! Non perché me ne importi del lavoro finito (ho hackerato una tastiera con parecchi tasti premibili in simultanea, non ricordo la matrice ..), ma perché è professional farsi un joy completamente autocostruito (e se dico completamente è completamente... e se dico dico dico dico [Aldo Giovanni e Giacomo rulez ] ) con la mitica porta seriale dietro per "aggiornare il firmware" ..
Comunque la pagina sul funzionamento della porta è fantastica! Arrisentirci nella sezione "Elettronica & computer" del forum... ciao! |
03-03-2004, 14:25 | #20 |
Senior Member
Iscritto dal: Feb 2001
Città: Udine ma mi manca l'Australia
Messaggi: 383
|
Io ho già smontato la tastiera e mi sono armato di pazienza. Ma proprio tanta.
Il mio problema è che non ho capito come arrivare alla matrice!!! Io ho un chip con 40 piedini. Volendo potrei fare una matrice ... Come? 20*2? O che altro? Ho capito che, teoricamente, cortocircuitando due piedini dovrei avere la pressione di un tasto. MA... Sto leggendo su internet: ci sono una sacco di altre persone che stanno facendo questi lavori. Mi sembra ci sia un sito con in mezzo un concorso in merito...
__________________
Il regarde le soleil. . il coule comme un navire. . et dans l'esprit il me reporte en arrière. . . dans la terre lointaine de mes pères. . . meglio un brutto processo che un bel funerale |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:26.