Un cab di guida non è un semplice mamecab
Ci sono piccoli dettagli e tante ore di configurazione per avere un cabinet perfettamente funzionante con pochi giochi
Qui faccio un veloce, e non esaustivo, resoconto del mio lavoro

- Scheda madre Asus P5KPro con mascherina
- Processore Inel Pentium D (non ricordo il modello esatto ma è da 3.2Ghz)
- 2x2Gb Ram Corsair XMS2-6400 (CM2X2048-6400C4DHX)
- Scheda grafica Radeon x300/x550 Series
- SSD Samsung 840Pro da 128Gb
tutto comprato qua sul forum.

Come interfacce ho usato una JammASD (viewtopic.php?f=43&t=25149) e una SmartASD (viewtopic.php?f=43&t=20198) . Volendo si poteva tranquillamente utilizzare solo la JammASD e un encoder usb per il volante oppure creare un pettine da cui andare alla SmartASD utilizzandola sia per il volante che per gestire start, secondo tasto, cambio e pedali.
In questo modo però ho la jammASD che mi semplifica il lavoro, mantengo il pettine che c'è con riduzione da Jamma al cablaggio esistente (mi pare 40 pin a memoria) e ho la protezione per il monitor.

Qui in fase di test

Lato software
Il funzionamento del volante, potenziometro, differenza fra 270' e 360' li ho scritti qua http://wp.arcadeitalia.net/encoder-e-interfaccia/
Il mio è un 270' con molle per il ritorno forzato e un potenziometro da 5K ohm

seguendo lo schema della SmartASD viewtopic.php?t=20198

Si va a collegare i cavi del potenziometro al A+, GND e ad un ingresso analogico a scelta che andrà attivato
È tutto molto semplice ma se si hanno dubbi basta chiedere a Picerno nel Topic della SmartASD e, se non lui direttamente, qualche utente risponderà.
Una volta che windows vede il volante come mouse o spinner, si può aggiustare il range dal programma della SmartASD e, come ho fatto io, dai vari menù del mame in cui si regola la deadzone e la sensibilità

Altro problema: il cambio
Esistono diversi tipi di cambio, come spiego nella pagina degli Encoders sul portale.
Il mio è un cambio ON OFF senza folle:

Per cui, pulsante premuto o non premuto
Questo non va tanto d'accordo con alcuni giochi in il cambio ha due micro, quindi premi un micro per Low e uno per Hi ma anche in quelli in cui, tipo outrun, MAME usa un solo pulsante per stabilire la posizione del cambio (ovvero premendo lo stesso pulsante cambiamo stato)
Per cui ci si ritrova a dover abilitare o meno il toggle
in outrun, ad esempio, ho aggiunto nel file .cfg di configurazione del gioco la parte toggle="no"
<system name=”outrun”>
<input>
<port tag=”:SERVICE” type=”P1_BUTTON1″ mask=”16″ defvalue=”0″ toggle=”no”>
</port>
</input>
</system>
In questo modo, quando hai il micro premuto il gioco avrà marcia low e quando sarà nella posizione di micro non premuto avrò la marcia Hi
*** Il File .cfg andrà impostato in sola lettura per evitare che venga riscritto per errore dal Mame
Il problema di un Cabinet di Corse è gestire una insieme di giochi che variano in base anche al tipo di volante e cambio che abbiamo.
Io non posso giocare a giochi a 360' come Super Sprint ad esempio, ma fatico a giocare anche a giochi come Sega Rally Championship in cui hai un cambio a 4 marce, in cui però posso usare il cambio automatico.
La mia lista di giochi è la seguente:
Great 1000 Mile Rally
AB cop
Big Run
Blomby Car
Chase Bombers
Chase H.Q.
Continental Circus
Dayton Usa
Daytona Usa to The Maxx
Drift Out '94
Drift Out
F1 Gran Prix
F1 Gran Prix II
F1 Gran Prix Star II
Ground Effects
Hot Chase
Indy 500
Mille Miglia 2
Neo Drift Out
Out Run
Out Runners
Over Top
Pocket Racer
Power Drift
Sega Rally Championship
Sega Touring Car Championship
Super GT24h
Top Speed
Turbo OutRun
Wec Le Mans 24
World Rally
World Rally 2
come Emulatori
Uso tre versioni di Mame e l'emulatore del model2
Le rom vanno suddivise in cartelle diverse
c:\mame\roms
c:\mame\romsmame105
c:\mame\romsmame160
c:\mame\romsmodel
la linea di comando del frontend sarà
Commandline=%rom% %path%
e il frontend dovrà avere tutte le cartelle come parametro dove cercare le roms
L'eseguibile del mame andrà sostituito da un mame.cmd con questa sintassi
mame.cmd %rom% %path%
il mame.cmd sarà
Codice: Seleziona tutto
if "%2" == "C:\romsmame105" goto mame105
if "%2" == "C:\romsmame160" goto mame160
if "%2" == "C:\mame\rommodel2 goto model2
mame0.190.exe %1
exit
:mame105
cd ..\mame105
mame0.106 %1
exit
:mame160
cd ..\mame160
mame0.160 %1
exit
:model2
cd ..\model2
launchmodel2 %1
exit
Codice: Seleziona tutto
; This section closes Sega Model 2 Emulator when pressing Escape
Run, Emulator_multicpu.exe %1%
$Esc::
{
Process, Close, emulator_multicpu.exe
ExitAPP
return
}
Il file .xml, nel mio caso, è generato dal mame più recente, il 190 in cui vi è World Rally 2: Twin Racing e riconosce anche i giochi del model2.
In questo modo ho potuto avere una sola lista giochi per più mame e model2.
La skin del frontend l'ho fatto io con varie immagini

.

Come titoli ho usato i marquee dei giochi, in alcuni casi li ho presi dai flyer quando non li ho trovati.. ora dovrebbero essere tutti disponibili su Arcade DataBase.
E come snap ho messo direttamente i video, tanto il caricamento è istantaneo. In basso a destra, sotto i video, qualche info del gioco preso dalle info del mame.
Tutto gestito da volante e pedali.
I due pulsanti sul volante sono Start, che funge anche da Turbo o Sparo, mentre quello rettangolare Giallo è il cambio visuale. Premuti assieme escono dai giochi.
Per l'audio ho usato una schedina amplificatrice da pochi euro, la stessa che avevo suggerito a TheBaro per il suo progetto: viewtopic.php?f=66&t=33646

.

Capisco che non sia il più esaustivo dei Topic ma almeno penso si abbiano un po' di basi per capire cosa si deve fare.
Un altro bellissimo Topic è quello di MarcoQWERTY viewtopic.php?f=66&t=27691
o quello di AndreIta viewtopic.php?f=66&t=32178