Ringraziamenti:
Ringrazio me stesso ;-) per lo studio, il materiale
e la prototipazione, Marc Tulli per aver fornito qualche
software :-), Arttu Ylärakkola per il materiale informativo,
reperito presso il
suo sito Perche' aderire al progetto
PC2JAMMA?
Il mio scopo era quello di giocare qualche gioco (emulato)
non semplicemente via monitor e tastiera, ma nel suo
"habitat naturale", ovvero un cabinato arcade originale.
Ma NON ho occultato un PC dentro il cassone da
bar! (lo saprebbero fare tutti!) In prima analisi,
lo scopo di chi aderisce al progetto PC2JAMMA
e' quello di far eseguire i giochi da un PC, ma di
giocarli dentro un cabinato arcade originale, una
volta mappate le piedinature delle varie periferiche
di Input/Output (tastiera, altoparlanti e monitor)
del PC nella piedinatura dell'unico connettore (connettore
JAMMA) presente all'interno del cabinato.
In questo modo, infatti, il cabinato non risulta "violentato"
e, una volta in possesso di un qualunque videogioco
con connettore Jamma, esso potra' essere tranquillamente
giocato. Analogamente, il PC dedicato all'emulazione,
una volta disconnesso dal cabinato arcade e ricollegato
alle classiche periferiche di I/O, sara' utilizzabile
in maniera tradizionale.
Subito ci si rende conto che la spesa che comporta
il progetto PC2JAMMA non e' proprio minima, e forse
la cosa piu' dura e' proprio farsi coraggio in vista
delle spese che si vanno ad affrontare per sostenere
un hobby.
Ad ogni modo, sara' che sono un nostalgico, sara'
che sono incontentabile (irresponsabile?), fatto sta
che - per prima cosa - mi sono armato di soldi ed
ho acquistato a Pescara (da NOLOMATIC, via Balilla)
un cabinato in uno stato davvero buono, monitor da
22 pollici orientabile orizzontalmente e/o verticalmente,
per la modica (???) cifra di 500.000 delle (vecchie)
lire.
Una volta consegnatomi il cabinato a Sulmona, non
avevo piu' scuse: il grosso della spesa era gia' fatto,
dovevo mettermi di impegno e rimappare tra loro i
rispettivi connettori di I/O del PC e del cassone.
Prima di andare avanti, riassumo quale fosse il mio
scopo, quali nozioni ci sono da sapere e come ho realizzato
la mappatura dei segnali del PC in quelli del gioco
da bar.
L'acronimo JAMMA sta per Japanese Arcade
Machine Manufacturers Association, ed indica uno
standard per la piedinatura di schede-gioco per cabinati
da bar (Arcade).
| JAMMA
Pinouts |
| Solder Side
|
|
|
Parts Side
|
| GND |
A |
1 |
GND |
| GND |
B |
2 |
GND |
| +5 V |
C |
3 |
+5 V |
| +5 V |
D |
4 |
+5 V |
| +5 V |
E |
5 |
-5 V |
| +12 V |
F |
6 |
+12 V |
| KEY |
H |
7 |
KEY |
| coin counter #2 |
J |
8 |
coin counter #1 |
| lock out coil #2 |
K |
9 |
lock out coil
#1 |
| left speaker (-) |
L |
10 |
left speaker (+)
|
| right speaker (-) |
M |
11 |
right speaker
(+) |
| video green |
N |
12 |
video red |
| video sync |
P |
13 |
video blue |
| service switch |
R |
14 |
video gnd |
| tilt switch |
S |
15 |
test switch |
| coin switch #2 |
T |
16 |
coin switch #1 |
| 2p start |
U |
17 |
1p start |
| 2p up |
V |
18 |
1p up |
| 2p down |
W |
19 |
1p down |
| 2p left |
X |
20 |
1p left |
| 2p right |
Y |
21 |
1p right |
| 2p button 1 |
Z |
22 |
1p button 1 |
| 2p button 2 |
a |
23 |
1p button 2 |
| 2p button 3 |
b |
24 |
1p button 3 |
| 2p button 4 |
c |
25 |
1p button 4 |
| not used |
d |
26 |
not used |
| GND |
e |
27 |
GND |
| GND |
f |
28 |
GND |
Tale standard e' nato dalla necessita' di rendere
facilmente intercambiabili tra di loro i videogiochi;
infatti una scheda-gioco viene sostituita con una
nuova semplicemente rimuovendo la vecchia e inserendo
la nuova scheda-videogioco nell'apposito connettore
(JAMMA, appunto) ubicato all'interno del cassone
da bar.
(S)fortunatamente oggi i giochi si sono evoluti,
e lo standard JAMMA non e' piu' supportato, date
le sue pesanti limitazioni (non supporta piu' di
quattro pulsanti, ne' piu' di due giocatori). I
nuovi giochi da bar spesso contemplano piu' di due
giocatori, e adottano periferiche di controllo piu'
complicate del semplice joystick. Inoltre, sostituire
schede-gioco di diverso produttore significava spesso
dover ripocedere alla centratura dell'immagine sullo
schermo.
Conoscendo la piedinatura, ho acquistato un connettore
JAMMA maschio (è un connettore a doppia faccia,
28 poli per faccia) per mappare su esso i connettori
I/O delle periferiche del PC (il connettore femmina
raccoglie l'intera cablatura del cabinato, il connettore
maschio e' residente sulla scheda-videogioco).
Connettore JAMMA maschio, 28 poli x doppia faccia
AUDIO
E' stata la cosa più facile da fare, ed anche l'unica
che ha funzionato senza problemi. E' stato sufficiente
dotarmi di un classico cavo con jack stereo da 3.5
mm (quello delle cuffiette, per intenderci, visto
che noi andremo a prelevare i suoni elaborate dalla
scheda audio!) e saldare le due estremità (canali
audio sinistro e destro) nei rispettivi pin della
scheda JAMMA (pin 10 e 11). Se il cabinato fosse
MONO e non STEREO, semplicemente uno dei segnali
sarebbe andato perso. Per completezza, il mio cabinato
e' MONO. Il canale comune per i segnali audio è
stato mappato nei due pin come previsto (pin L e
M).
VIDEO
Non è stato difficile, anche se qui ho avuto un
problema, peraltro subito risolto. E' sufficiente
acquistare un connettore 15 poli su tre file maschio
(quello del monitor, visto che noi andremo a prelevare
le immagini elaborate dalla scheda video!) e saldare
solo i contatti che interessano per condurne i segnali
nei rispettivi pin della scheda JAMMA.
| MONITOR Pinouts
da
www.pin-outs.com |
| Pin #1 |
RED |
| Pin #2 |
GREEN |
| Pin #3 |
BLUE |
| Pin #4 |
Monitor ID Bit
2 |
| Pin #5 |
DIGITAL GND |
| Pin #6 |
RED GND |
| Pin #7 |
GREEN GND |
| Pin #8 |
BLUE GND |
| Pin #9 |
not used |
| Pin #10 |
SYNC RETURN (GND) |
| Pin #11 |
Monitor ID Bit
0 |
| Pin #12 |
Monitor ID Bit
1 |
| Pin #13 |
HORIZ Sync |
| Pin #14 |
VERT Sync |
| Pin #15 |
not used |
Bisogna saldare i segnali RGB (pin 1, 2, 3 del connettore
VGA) provenienti dal PC nei rispettivi pin (pin
12, N, 13 del connettore JAMMA) cablati nel cabinato.
Bisogna poi saldare le masse dei suddetti segnali
RGB (pin 6, 7, 8 del connettore VGA) nei rispettivi
pin nel cabinato (pin 14 del connettore JAMMA).
Il mio problema era che, nel mio cabinato, il pin
14 non era cablato; per questo motivo avevo una
massa fluttuante. Ho risolto il problema portando
il pin 14 del connettore JAMMA a terra (GND, pin
1 e 2 del connettore JAMMA)
A questo punto (non lo sapevo, per cui ringrazio
Arttu Ylärakkola per avermi fatto imparare una cosa
nuova!) applico il principio di sovrapposizione
degli effetti (tanta teoria all'universita' e poi
... la pratica grazie ai videogiochi!!!) ed ottengo
il segnale VIDEOCOMPOSITO come SOMMA dei segnali
di SINCRONISMO ORIZZONTALE e VERTICALE. In pratica
ho saldato i pin 13, 14 del connettore VGA nel pin
P del connettore JAMMA.
TASTIERA
Implementare la tastiera e' stata la cosa piu' dispendiosa
dal punto di vista temporale, visto che mi sono
avvalso di componentistica acquistata via Internet
da Hagstrom
Electronics, manifatturiera d'oltreoceano.
In pratica, come e' noto, in un gioco MAME ogni
azione (dall'inserire una monetina per ottenere
un credito all'iniziare una partita al governare
il proprio alter-ego sullo schermo) e' comandata
dall'utente attraverso la tastiera del proprio PC.
Il problema è quindi quello di tradurre i comandi
impartiti sul cabinato (joystick e pulsanti) nei
tasti previsti dal MAME.
Ebbene, tale traduzione e' fattibile in maniera
piuttosto semplice grazie ad una interfaccia programmabile
della suddetta ditta americana, che traduce i segnali
nei tasti configurati dall'utente. L'interfaccia
in questione e' l' LP24 programmable keyboard
encoder. Il suo costo è di 80$ circa, cui vanno
aggiunti circa 25$ di spedizione e, se siete sfigati
come me, anche un ulteriore 20% di tasse doganali.
LP24 programmable keyboard encoder
Tale encoder LP24 ha un connettore per connettersi
al PC come se esso fosse una tastiera edun secondo
connettore cui inserire (opzionalmente) una classica
tastiera: LP24 risulta passante per l'eventuale
tastiera collegata, e quindi la classica tastiera
puo' essere usata con continuita' col proprio PC.
Infine l'LP24 ha un connettore (2x25) per ricevere
segnali da altre periferiche. E' proprio questo
il connettore da usare per tradurre i segnali elettrici
provenienti dal cabinato arcade in "impulsi di tastiera"
esattamente corrispondenti ai comandi previsti dall'emulatore
MAME.
Al connettore 2x25 dell'interfaccia LP24, dunque,
il compito di creare la corrispondenza tra gli impulsi
elettrici del cabinato (mappati sul connettore JAMMA)
e la tastiera del PC.
In un cabinato con 2 giocatori, 3 pulsanti per giocatore,
4 direzioni di puntamento, i contatti da cablare
sono 16 (8 per giocatore):
Configurazione di default della tastiera per
MAME: |
| 1UP Start |
1 |
|
2UP Start |
2 |
| 1UP Up |
UP |
|
2UP Up |
R |
| 1UP Down |
DOWN |
|
2UP Down |
F |
| 1UP Left |
LEFT |
|
2UP Left |
D |
| 1UP Right |
RIGHT |
|
2UP Right |
G |
| 1UP Fire #1 |
L.CTRL |
|
2UP Fire #1 |
A |
| 1UP Fire #2 |
ALT |
|
2UP Fire #2 |
S |
| 1UP Fire #3 |
SHIFT |
|
2UP Fire #3 |
Q |
Chiamando da A a X i 25 pin del connettore 2x25
della LP24, e' chiaro che dei 25 segnali solo 16
(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O e P)
verranno utilizzati. Per comodita' si scelga l'ultimo
della fila (il pin X) quale massa per i 16 segnali
e lo si connetta al connettore JAMMA. Nel mio cabinato,
la massa dei controller e' mappata sul pin 27 del
connettore JAMMA; invece Arttu Ylärakkola la chiudeva
sul pin 28.
ATTENZIONE!! Non e' detto che i pin 27 e 28 siano
masse utilizzabili indifferentemente (le masse sono
riferimenti ma NON sono GND); prima fate una misura
col multimetro per vedere se c'e' una differenza
di potenziale tra i pin 27 e 28, e poi saldate.
Nel mio caso ci sono 0,4 V di differenza, e in microelettronica
possono essere fatali !!!
Se vi sentite smarriti, non preoccupatevi: e' tutto
chiaro leggendo il manuale del LP24.
L'applicativo per configurare l' LP24 e' reperibile
in rete col nome LP24CFG. Non ho autorizzazioni
per consentirvene il download, sorry. Provate a
farlo cercare da Google
:-)
Diciamo che adesso tutto e' pronto, e tra poco potrete
giocare giochi da bar emulati via MAME nel loro
habitat naturale !!!
Concludendo: una volta creata l'interfaccia PC2JAMMA,
lanciare da PC il gioco MAME con la sintassi
c:\mame> mame nome_gioco -monitor arcade
e, UNA VOLTA CARICATO IL GIOCO, accendete il cabinato
da bar e ... buon divertimento!!!
Un ultimo consiglio: una volta pronto il tutto,
e' un must istallare anche ArcadeOS,
un front-end di Brian Lewis molto funzionale che
consente di selezionare i giochi direttamente dal
cabinato attraverso joystick e pulsanti. L' ArcadeOS
puo' essere scaricato da qui.
Se si usa ArcadeOS, lanciare da PC il front-end
con la sintassi
c:\arcadeos> arcadeos
avendo avuto cura di settare il parametro incabinet=1
all'interno del file arcadeos.cfg
Clicca qui
per vedere qualche foto (di pessima qualità;
circa 200 kB) |