L'Officina delle Idee di Larocca Massimiliano - ultimo aggiornamento: 20.01.2004
Area Progetti
Retrogaming
Retrocomputing
Contattami


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).

28-pin 2-way 0.156" JAMMA fingerboard

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 in campo

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.


LP24, schema di principio


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)


Valid HTML 4.01!
 
Tutti i contenuti derivano dall'intelletto dell' Ing. Massimiliano Larocca, studente a tempo perso!
Tutti i loghi ed i nomi dei prodotti appartengono ai rispettivi proprietari.