MAMECAB

 

 
 
 

 

L'interfaccia comandi

switch Poichè i comandi del nostro cabinato fanno capo a dei volgarissimi switch (tipo quello qui a sinistra) si rende necessaria una interfaccia che faccia capire al PC cosa viene premuto in modo che lui possa eseguire il comando desiderato.

I modi per interfacciare i tasti sono sostanzialmente 3:

1) comprare una interfaccia bella e fatta (qui a destra) ovvero una schedina con delle morsettiere ed una interfaccia PS/2 o USB alla quale collegare i tasti di gioco. Il vantaggio delle interfacce è il funzionamento immediato senza alcun sbattimento, come svantaggio si ha un costo maggiore che con gli altri metodi.
Queste interfacce sono reperibili o dal sito della Ultimarc (prendono il nome di I-PAC) al costo di 34€ oppure dal negozio ebay di un progettista italiano al costo di 20€.
ipac

2) realizzare un joyhack, ovvero smontare uno o piu joystick collegando con dei fili i microswitch al posto dei pulsanti originali (foto sotto). Questa è una delle strade piu semplici ma i joystick necessitano di driver specifici e non mettono a disposizione tasti come INVIO oppure ESC, necessari per entrare ed uscire dai giochi quindi è richiesto un pò di ammattimento per la configurazione.
joyhack


3) Realizzare il keyhack di una tastiera, ovvero smontare una tastiera e collegare i microswitch al posto dei pulsanti.
A differenza dei joypad infatti la tastiera
(se con attacco PS/2) non necessita di alcun driver e può funzionare indipendentemente sotto qualunque ambiente operativo senza alcun problema. Putroppo nonostante le tastiere abbiano oltre 100 tasti con questa tecnica possiamo utilizzarne solo 25 – 30 senza che problemi di Ghosting e Blocking rendano i controlli inutilizzabili (di questo problema ne parleremo piu in seguito). Possiamo quindi affermare che il keyhack casereccio di una tastiera è utilizzabile per realizzare controller fino a 2 giocatori.

keyhack
Vantaggi del keyhack sono indubbiamente l'economicità ma a fronte di questo c'è da mettere in conto diverse ore di lavoro.


Guida al keyhack di una tastiera

1 – Come funziona una tastiera:
Una tastiera standard italiana ha 105 tasti e alla pressione di ognuno di essi un controller interno invia al PC un codice diverso; nell'istante in cui smettiamo di premere il nostro tasto il controller invia il segnale di fine pressione. Essendo i tasti 105 ci potremmo aspettare che all'interno della tastiera ci sia una miriade di collegamenti e che al controller arrivino almeno 106 fili! Grazie al cielo non è così infatti nelle tastiere viene utilizzata una configurazione dei tasti a matrice che permette di ridurre notevolmente il numero di fili necessari. Andiamo a fare un esempio con un tastierino a 12 numeri:

tastierino
A primo impatto la connessione qui a sinistra potrebbe sembrare quella più efficace per connettere tutti i pulsanti con meno fili possibile; usando un contatto comune per tutti otteniamo però un totale di 13 fili! Quindi il numero dei fili è pari al numero dei tasti + 1

Nella figua qui di fianco potete apprezzare la soluzione migliore per connettere i nostri 12 tasti; la connessione è denominata “a matrice” e consiste in tre colonne (A,B,C) e 4 linee.
Per poter funzionare questo tipo di
tastiere necessita di un controller; il
funzionamento è molto semplice:
Ciclicamente viene mandato un segnale alle 3 colonne (prima alla colonna A,poi alla B, poi alla C, poi nuovamente la A, ecc..).
Contemporaneamente sulle linee viene “ascoltato” se arriva qualcosa.
Quindi, ricapitolando: se ad esempio mentre è attiva la colonna “A” il controller rileva il segnale sulla riga 3 questo vorrà dire che inequivocabilmente è stato premuto il
tasto 7.
tastierino connesso a matrice

Ricapitolando questo espediente permette di risparmiare un notevole quantitativo di fili (nel nostro caso 7 anziché 13), infatti il prodotto tra numero di linee e numero di colonne fornisce quanti tasti la nostra matrice può gestire. Tuttavia il sistema della matrice mostra dei limiti notevoli che non potete sottovalutare nella realizzazione del vostro controller: questi limiti si chiamano Ghosting e Blocking.

2 – Ghosting e Blocking: i limiti di una tastiera

Allora, il ghosting è il fenomeno per cui alla pressione di 3 tasti disposti in punti critici
della matrice la tastiera “crede” che in realtà siano premuti 4 tasti.
Vediamo di capire meglio come è possibile tutto cio:

Nella qui di fianco sono stati premuti a titolo di esempio i tasti 1, 3 e 6.
La linea verde rappresenta il percorso
che compie il segnale in ingresso alla
colonna A: si vede che la pressione di questa combinazione di tasti fa si che quando il controller manda il segnale di check alla colonna A lo ritrovi sia sulla riga 1 che sulla riga 2; quindi lo interpreta come pressione
contemporanea dei tasti 1 e 4. Questo è un esempio di Ghosting! Gli altri tasti premuti vengono invece riconosciuti correttamente: infatti quando viene inviato il segnale alla colonna “C” questo viene ritrovato correttamente sulle linee 1 e 2.
tastierino ghosting

in linea generale possiamo dire che:
“Ogni qualvolta vengono premuti i tasti corrispondenti ai 3 lati di un rettangolo sulla
matrice viene generato il ghosting sul tasto corrispondente al quarto lato”.


Il blocking invece è una condizione di errore che genera il controller per prevenire il
ghosting: vengono infatti inabilitati alcuni tasti; nel nostro caso se premessimo 1, 3 e 6
contemporaneamente il controller restituirebbe al pc un messaggio di errore e
quest'ultimo non riconoscerebbe la pressione di nessun tasto.

Quindi in definitiva dobbiamo ricordarci di non creare mai una situazione di ghosting,
altrimenti il controller manderà in blocco i nostri tasti compromettendo la giocabilità
dei nostri videgames.

3 – Smontiamo una tastiera

Qui a destra potete apprezzare come si presenta una tastiera appena smontata: sulla sinistra c'è il controller mentre i tasti sono realizzati con dei contatti divisi su due fogli plastici; quando premo un tasto i due fogli (foto in basso) vanno a toccare assieme realizzando un contatto elettrico.
Dei due fogli uno contiene tutti i collegamenti inerenti alle colonne, l'altro quelli inerenti alle righe.
tastiera smontata

tastiera smontata



Nel mio caso il controller aveva 26 contatti di cui i primi 18 andavano ad un foglio mentre i restanti 8 andavano all'altro. Ho così deciso in maniera del tutto arbitraria che i primi 18 sarebbero stati le mie righe e i restanti delle colonne.

Ho quindi numerato i contatti (foto qui in basso) e i preparato una tabella per effettuare la mappatura.
controller tasti

4 - la mappatura

La mappatura consiste nell'appuntarsi su una tabella quale corrispondenza c'è tra i vari incroci linea-colonna e il carattere che la tastiera restituisce al pc; per fare questo lavoro c'è bisogno di un po' di pazienza e servono dei programmini di “keyscan” (ovvero che ti dicano quale/i tasto/i viene premuto sulla tastiera), io ho usato “Ghostkey” e “keyscan” ottenendo questa tabella:
mappatura


Vi faccio notare come nonostante la mia tastiera fosse un modello base le combinazioni possibili fossero 144 ed alcune corrispondessero a tasti che non erano nemmeno disponibili (tipo aprire Win media player, outlook, arrestare il pc, ecc..).
A questo punto c'è da scegliere quali tasti utilizzare nel nostro controller stando bene attenti a non causare il ghosting; in prima istanza possiamo dire che se io uso un tasto per ogni riga posso stare certo che non avrò mai ghosting.. quindi sono partito da questa considerazione ed ho colorato le caselle che avrei avuto intenzione di usare:
mappatura 2


Molto bene, in questo modo siamo arrivati a 16 tasti disponibili; peccato che a me ne
servissero 25! (6 tasti per giocatore + 2 manopole direzionali da 4 contatti l'una + i
due contatti delle gettoniere + i due pulsanti per selezionare 1 o 2 player + il bottone
per far avviare il gioco selezionato nel menù) quindi son dovuto scendere a
compromessi:

– innanzitutto nei joystick c'è da considerare che tasti come “destra” e “sinistra” o “su” e “giu” non possono fisicamente essere premuti contemporaneamente

– poi c'è da considerare che alcuni tasti, tipo il contatto della gettoniera per aumentare i credits, è decisamente improbabile che vengano premuti in contemporanea ad altri tasti.

Nella figura che segue ho applicato questi concetti ed ho colorato in rosa le caselle da dare ai comandi che si autoescludono: ad esempio F3 e D potrebbero essere affibiati ai pulsanti DX e SX mentre H e M potrebbero essere UP e DOWN nel joystick 1.
Ho inoltre spostato un paio di caselle rosse che erano capitate su incroci che non fornivano nulla.
In ogni caso, potete facilmente apprezzare che nel peggiore dei casi sarebbe premuto
al più un tasto per ogni riga quindi stiamo certi che non si possa creare ghosting.
mappatura 3


Ok il lavoro è quasi completato; ci mancano solo altri 5 tasti.
Purtroppo la mappa non ci da molte possibilità quindi i 5 tasti che assegneremo ora avranno qualche possibilità di avere ghosting. Per fortuna ormai tutti e 12 i tasti di gioco ed entrambe le manopole sono state mappate quindi quelli che rimangono sono tasti di servizio che non verranno mai premuti contemporaneamente ad altri. Qui sotto potete apprezzare l'assegnazione completa dei tasti: ho colorato di verde le caselle che possono dare problemi infatti a titolo di esempio fo notare che Z genera ghosting se premuto assieme a Q e a un tasto a scelta tra M INVIO o la virgola.
Stessa cosa pure per F1, 4, U, O. però questo non rappresenta un problema, l'importante è che i tasti di gioco non diano noie e con la nostra mappa possiamo stare tranquilli di poter giocare anche un doppio a Street Fighter senza che i tasti che diano ghosting!
mappatura 4

5 – Realizzazione e montaggio

Questa è forse la parte un po' piu pratica e nella quale dovrete eseguire qualche saldatura; in sostanza si tratta di collegare i contatti del controller ad una morsettiera. I modi per fare ciò sono molteplici, piu o meno ordinati.
Io personalmente ho realizzato il mio controller come nella figura che segue in modo da ottenere una unica schedina e poter stare sicuro che eventuali movimenti non potessero staccare qualche saldatura
keyhack

6 – collegamento ai tasti di gioco

questa è la fase che richiede maggiore attenzione ma soprattutto maggiore ordine; è facile sbagliare un filo e toppare tutto il cablaggio.
In pratica i microswitch che avevamo visto all'inizio non sono altro che dei deviatori (figura qui di fianco); dei tre contatti disponibili il primo è comune, il secondo è normalmente aperto mentre il terzo è normalmente chiuso, noi useremo quindi i contatti 1 e 2 cablati in modo che alla pressione del tasto vengano messi in corto la riga e la colonna da noi prescelti.
schema microswitch
Prima di iniziare i collegamenti occorre decidere dove disporremo il nostro controller, dopodiché dovremo procurarci un filo colorato per ogni riga e colonna.
controller con fili

Una volta posizionato il controller e fatti arrivare i fili alla plancia dovrete iniziare a collegare i fili ai rispettivi interruttori; praticamente tutti i fili dovranno andare ad almeno un paio di switch, ad esempio dalla tabella della mappatura si vede chiaramente che il filo della colonna A dovrà andare a due pulsanti di gioco e a due di servizio, il filo della colonna B invece andrà a due pulsanti di gioco e a uno switch del joystick, ecc... il risultato finale dovrebbe essere come segue:
cablaggio


INDICE DEL PROGETTO

pacman

Monitor
interfaccia monitor (con qualche modifica possiamo collegare un monitor Arcade all'uscita vga di un pc.. lo avreste mai detto?)

codice
configurazione (la parte piu lunga e noiosa.. :( )


links