Keyboard Hack

Da wikicab.

Introduzione

Il Keyboard Hack è uno dei mezzi per riuscire interfacciare un cabinet arcade ad un PC. Si userà una tastiera (keyboard, per l'appunto) alla cui elettronica verranno collegati i contatti provenienti dai controlli del cab. Ai fini pratici, ogni volta che premeremo un pulsante, o muoveremo un joystick sul cabinet, sarà come se noi premessimo un tasto della tastiera. Il vantaggio di questa procedura, rispetto ad altre, è che è il risultato funzionerà indipendentemente da qualsiasi sistema operativo sia installato, senza bisogno di alcun tipo di driver. Uno dei più grossi svantaggi è invece che prevede la completa ricablatura dei controlli, che normalmente sono collegati in parallelo, mentre per questo uso dovranno venire collegati singolarmente.

Cosa serve

  • Una tastiera, possibilmente di tipo PS/2 in quanto sono stati riscontrati limiti nel numero massimo di tasti usando tastiere USB. Va bene anche una vecchia tastiera "non funzionante", in quanto quasi sempre i problemi nelle tastiere sono legati solo alla parte meccanica e non a quella elettronica.
  • Filo elettrico, piuttosto sottile, possibilmente multicolore.
  • Stagnatore con punta sottile e stagno
  • Un programma per la mappatura della tastiera (ne trovate alcuni in questa pagina).
  • Cacciaviti, forbici da elettricista ecc
  • Carta quadrettata ed una penna, oppure un programma di foglio elettronico (es Ms-Excel)
  • Una morsettiera (tipo "mammut")

Come fare

Preparazione
  • Decidete prima di tutto di quanti contatti avete bisogno, tenendo presente che ve ne serviranno 4 per ciascuna leva. Da un keyboard hack, si possono usare, con i dovuti accorgimenti, fino a 24/28 tasti
  • Installate il programma per la mappatura della tastiera, e verificate che mostri correttamente tutti i tasti che premete con la tastiera che avete normalmente in uso.
  • Smontate la tastiera completamente. Quello che troverete all'interno saranno alcuni fogli in plastica percorsi da tracce, e una scheda elettronica cui questi fogli si appoggeranno, e da cui parte il filo di collegamento al PC
  • Osservate con cura i fogli che avete tolto dalla tastiera. Vi serviranno solamente come riferimento per le fasi successive. Su ciascuno dei due fogli, le tracce seguiranno un determinato percorso, per andarsi poi a riunire nel punto dove entrerano in contatto con la scheda elettronica. Contate le tracce presenti su ciascun foglio, e disegnate sulla carta o sul programma di foglio elettronico una tabella con ascissa il numero di contatto su uno dei fogli, e come ordinata quelli dell'altro. La matrice più diffusa è 16x8, ma ci possono essere variazioni.
  • Sulla scheda elettronica sono presenti tanti contatti quanti quelli sui fogli. Ricostruite le assegnazioni, suddividendo i contatti sulla scheda in base al foglio di appartenenza. Qui di seguito una possibile soluzione, ma il risultato potrebbe variare enormementein base alla scheda reperita all'interno della tastiera. In alcuni casi, potrebbero anche alternarsi contatti di uno e dell'altro foglio.

Keyboard PCB.jpg

La mappatura

Il passo successivo è ricostruire la mappa della tastiera, ovvero assegnare ad ogni contatto una lettera. Le tastiere normalmente funzionano tramite matrice, ovvero una griglia dalle cui intersezioni si ottengono diversi risultati. In pratica, ogni contatto "ascissa" produrra una lettera diversa per ciascun contatto "ordinata" con cui verrà chiuso un circuito. Questo significa che esistono virtualmente (ascisse X ordinate) possibili tasti da usare. In realtà non tutte le combinazioni generano un risultato valido, per cui la lista di possibili risultati validi si affievolisce di molto.

  • Procuratevi un piccolo spezzione di filo elettrico, di cui spellerete entrambe le estremità. Vi servirà come ponticello per testare i possibili contatti. 15/20 cm di filo dovrebbero essere più che sufficienti.
  • Avviate il programma di keymapping
  • Collegate lo schedino della tastiera al PC.
  • Scegliete un contatto del gruppo ascisse, e con il filo di rame chiudete un circuito con uno dei contatti del gruppo ordinate. Sul programma di keymapping dovrebbe comparire il tasto che avete premuto.
  • Annotate il risultato sulla tabella che avete disegnato in precedenza, in corrispondenza delle coordinate corrispondenti ai due contatti che avete usato
  • Procedete in questo modo per tutte le combinazioni possibili, fino a completare la griglia. Vi dovreste trovare qualcosa come questo:

Keymap12.jpg

Assegnazione dei tasti e ghosting

Ora non vi resta che assegnare a ciascun tasto una funzione. La cosa potrebbe essere molto semplice se non ci fosse un grosso problema: il cosidetto ghosting, ovvero un effetto di mascheratura reciproca del segnale causato dalla pressione simultanea di più tasti. In pratica, vi sono dei tasti che, se premuti contemporaneamente, non producono nessun output. Questo è dovuto alla struttura a matrice del circuito: quando vengono premuti 3 tasti che si trovano sugli spigoli di un rettangolo virtuale sulla matrice, questi potrebbero bloccarsi a vicenda in quanto la scheda elettronica non è più in grado di capire quanti tasti sono stati premuti. Ad esempio, se nella combinazione seguente:

Ghost1.jpg

Non potremo usare tutti i tasti B1, B2, E1 ed E2, ma dovremo limitare la scelta a soli due tasti di questa combinazione. Questo problema virtualmente limita di moltissimo i tasti a disposizione. Formalmente, restano disponibili un solo contatto per ciascuna riga, per un massimo in questo caso di 18 contatti. Ci sono però degli accorgimenti paricolari che permettono di sfruttare un po' di contatti extra. Perpariamo una bella lista orindata dei controlli di cui abbiamo bisogno:

  • 4 - per ciascun joystick
  • 1 - per lo START di ciascun giocatore
  • 1 - per il COIN di ciascun giocatore
  • da 2 a 6 tasti di gioco per giocatore

Questo vuol dire che una postazione a due giocatori con 4 pulsanti per giocatore avrà bisogno di 20 contatti complessivamente. Si possono limitare al massimo tasti di funzione legati all'emulatore usando una corretta configurazione di MAME: ad esempio, non serve un tasto specifico per uscire da gioco, mi basterà configurare MAME in modo che esca dal gioco premendo contemporaneamente una determinata combinazione di tasti (es START1+START2+P1-SU). L'uso di combinazioni di tasti per tali funzioni ha anche il vantaggio di evitare l'uscita accidentale dal gioco. Ora, il ghosting si presenta quando vengono premuti più tasti assieme. Questo vuol dire che noi possiamo adesso individuare una serie di controlli che mai, o per lo meno, molto raramente, verranno premuti contemporaneamente. In particolare:

  • Le direzioni opposte non verranno MAI premute assieme: nessuno riesce a mettere il proprio joysticj contemporaneamente SU e GIU'
  • Controlli di funzione, come il COIN, difficilmente verranno premuti assieme ad altri tasti (se inserisci una moneta è perchè sei appena morto, QUINDI non stai di sicuro premendo tasti di gioco).

Quindi, se noi assegnamo, nel caso qui sopra, P1-SU al tasto UP (B1) e P1-GIU' al tasto TN + (E2), potrò tranquillamente usare uno qualsiasi dei tasti B2 ed E1 per altre funzioni. NOTA : se il vostro sistema prevede pochi controlli (es: due joystick, due start, due coin e due pulsanti per giocatore, totale 16 input) potreste usare una riga singola della matrice, evitando non solo il problema del ghosting, ma anche di dover ricablare il cabinet, in quanto potrete usare il contatto singolo come comune in parallelo su tutti i controli, e passare quindi direttamente tramite la fingerboard JAMMA.

Una volta assegnati tutti i tasti alle funzioni che ci interessano, siamo pronti a passare alla fase successiva.

Saldatura

Tagliate degli spezzoni di filo lunghi circa 30cm, spellatene ed affusolatene le estremità. Saldate una delle estremità su un contatto sulla scheda della tastiera, e fissate l'altra in uno dei poli della morsettiera. Alla fine dovreste trovarvi qualcosa di simile a questo:

Key hack.jpeg

Questo serve per poter lavorare poi sui collegamenti al cabinet senza rischiare di spezzare le tracce sulla scheda elettronica, per poter collegate con facilità più fili allo stesso contatto e per poter, se necessario, cambiare con facilità un controllo da un contatto all'altro.


Per chi non è bravo nelle piccole saldature vi è un altro sistema per collegare i contatti: prendete i fogli (senza staccarli dalla scheda) che trovate all'interno della tastiera, mappateli e poi con un pennarello scrivete a che contatto del chip corrispondono i vari punti del tracciato (ovviamente ci saranno più punti per ogni contatto sulla stessa linea di saldatura che porta alla scheda col chip) quindi con una macchinetta per fare i buchi sulle cinture, con la punta più piccola, forate i fogli in corrispondenza del punto che volete collegare quindi infilate una piccola vite mettete una rondella (che andrà a toccare il tracciato il filo e poi stringete il tutto con un bulloncino. fate questo per ogni contatto e poi verificate i collegamenti con un tester questo sistema forse più lungo da realizzare risulta essere però meno delicato


Ora non resta che collegare il tutto al cabinet. A meno che non abbiate usato una sola riga della matrice (vedi la nota riguardante un cabinet con pochi controlli), dovrete collegare due fili per ciascun controllo, in modo da chiudere un circuito tra uno dei contratti "ascissa" della morsettiera, ed uno dei contatti "ordinata". Procedete così per tutti i controlli, rispettando le coordinate che avevate scelto in fase di assegnazione dei tasti. In alcuni casi sarà necessario collegare anche più fili allo stesso contatto.

Schema di collegamento

Collegamento tastiera.gif

Una volta completata l'operazione di collegamento, scollegate il keyboard hack dal PC, collegate una tastiera normale ed accendete il cabinet. Avviate MAME, fate partire un gioco qualsiasi e premete TAB. Nel menù che comparirà, selezionate Input (general), ed usando la tastiera assegnate, secondo la vostra mappatura, tutte le funzioni. Scollegate la tastiera, collegate il keyboard hack, e siete pronti per giocare!