venerdì 17 novembre 2017

DRIVING ARCADE CAB - Tutto in un video

Bene!
Finalmente sono riuscito a realizzare un video decente sul funzionamento e una panoramica del progetto, che è stato molto lungo e laborioso.



Con i doverosi ringraziamenti finali ci tengo a precisare che non è stato un lavoro facilissimo, ma mi ha dato veramente grossissime soddisfazioni!
Ho acquisito moltissime competenze nuove ed interessanti, dal restauro di grafiche di grandi dimensioni (come si vede dalle sideart), alla configurazione degli output e controlli analogici.

Se dovessi ripartire il tempo di questi 6 o 7 mesi di lavoro devo dire che la parte software, che credevo semplice ed immediata, si è rivelata veramente ostica!
Ogni singolo gioco (si anche dalla parte MAME) deve essere configurato a parte e con molti settaggi: si passa dalla configurazione dei controlli analogici, gli outuput da gestire, fino ad interfacciare tutto con i controlli originali del gioco navigando per le impostazioni del gioco stesso tramite i DIP-SWITCHES, fino a regolare la sensibilità degli stessi tramite il menù del MAME per ottenere il più possibile un feeling simile a quello del cabinato.

Ora sò perchè pochissimi si avventurano in questo progetto, rimanendo sui classici cabinati-jamma generici o bartop.

Però devo dire che dà soddisfazioni e soprattuto permette di esplorare i giochi di guida e spinner, in maniera autentica risultando totalmente diverso da un cabinato standard; e ve lo dico io che avrò giocato si e no a 4 o 5 cabinati di guida in tutto il mo passato arcade! ma ovviamente avendone visti moltissimi...

Ricordo che con il mio progetto riesco ad emulare ed a giocare a giochi con volante a 270 e 380, compresi i giochi con spinner, giochi di moto ecc...quindi un range larghissimo di emulazione!
Questa cosa e perfetta per un cab di guida upright come ho sempre desiderato possedere!

Adesso continuo la configurazione dei giochi e i loro settaggi, che non sono mai noiosi ma anzi mi permetto di riscoprire nuovi giochi e avventurarmi nelle loro impostazioni originali.

Per esempio scoprire che esiste una versione di SCI (Special Criminal Investigation) tutta italiana (emulata perfettamente) della NEGRO TORINO (luogo dove vivo), che è totalmente diversa dalla versione originale e anche molto divertente!

Tornado al video....ho in previsione di realizzarne altri, magari spiegando la sua configurazione e i passaggi step by step, per chi come me, aveva l'idea e il sogno di realizzare un coin-op simile.

Ci sentiamo presto!

lunedì 9 ottobre 2017

DRIVING ARCADE CAB - L'interno del coin-op

Il progetto è praticamente ultimato....gli ultimi ritocchi in fase software e gli ultimi settaggi che poi spiegherò decentemente a parte con qualche esempio; infatti qui ogni gioco deve essere analizzato a parte ma è molto divertente perchè allo stesso momento si provano diversi giochi e si trova la soluzione migliore come controlli.
Purtroppo non ho moltissima esperienza in fase di giochi originali...molte volte semplicemente NON MI RICORDO che controlli o che volante utilizzavano in origine (per quello mi servirebbe anche una mano da quelli che hanno avuto la fortuna di giocare alle versioni DEDICATE) però con un pò di pazienza e qualche ricerca riesco a trovare video che mi aiutano a capire che OUTPUT usava e anche quale VOLANTE UTILIZZAVA un determinato gioco...di modo da assegnarli la configurazione appropriata e calibrarne i vari valori sui controlli analogici.
Comunque qusto lo vedremo in seguito...
Ora volevo mostrarmi come mi sono organizzato all'interno del mio cab...tuto l'hardware presente e a cosa serve.




Questa immagine denota il mio ordine maniacale :D che ho utilizzato per posizionare e connettere tutti i componenti HW del mio cabinato dedicato....tutto e stato fatto in corso d'opera, quindi mi sono arrangiato alla bene meglio....per fortuna che non mi mancava lo spazio!

A) PIEDINATURA JAMMA
Lo scopo di questo progetto era anche quello di preservare le connessioni e piadinature JAMMA, ho optato per un ADATTATORE JAMMA che mi consentisse di interfacciare i miei comandi pre-esistenti, permettendomi anche l'utilizzo in futuro di eventuali schede JAMMA (ne possiedo alcune).
Per utilizzare le schede JAMMA ORIGINALI, devo semplicemente staccare il morsetto che si vede collegato e attaccargli una JAMMA, poi scollegare il cavo RGB che parte dalla scheda grafica de pc e collegare quello che esce dal pettine JAMMA (il cavo si vede arrotolato vicino al pettine jamma) così facendo utilizzo la scheda jamma con i controlli agganciati dal cab originale (ossia VOLANTE, CAMBIO 2 posizioni, PULSANTE START, COIN, PEDALE a SWITCH)
In MODALITA PC invece posso utilizzare tutti i giochi che mi propone il PC (mame ecc...)....con in più DUE PULSANTI EXTRA e PEDALIERA CON POTENZIOMENTRO.

B) SISTEMA AUDIO (WIP accetto consigli)
Ho voluto dare particolare risalto all'audio, di sicuro potevo semplicemente utilizzare le tipiche casse del cabinato senza troppi problemi; qui invece ho voluto aggiungere un sub di medie dimensioni...visto che il mio primo obbiettivo era quello di utilizzare anche uno schedino che gestisse l'audio del sub separatamente.
Purtroppo mi sono scontrato con il classico problema di BUMP in ACCENSIONE...tipico problema da me ignorato delle casse passive, in cui in fase di spegnimento assisto alla classica BOTTA DI RITORNO nelle casse, il mio schedino che gestiva il basso (ed in modo ottimale) purtroppo generava questo piccolo inconveniente; ho cercato una soluzione ma invano....quindi temporaneamente ho dovuto optare per un classico amplificatore (credo cinese), che pur lavorando benissimo non garantisce le prestazioni dell'aplificatore con uscite dedicate che utilizzavo in precedenza. Quest'ultimo (chissà come mai) non produce nessun EFFETT BUMP e quindi allo spegnimento del sistema non ho nessuna botta di ritorno che potrebbe bucarmi le casse....e fidatevi che prima la botta era violentissima!
Le casse superiori sono collegate in parallelo sia ai piedini JAMMA che ALL'USCITA DELL?AMPI per quanto riguarda la parte PC.

C) PC con SCHEDA GRAFICA
Eccoci alla parte PC....brevemente vi rimando alle specifiche della prima pagina : http://supercoin.blogspot.it/2017/04/driving-arcade-progetto-cabinato-di.html da segnalare che ho optato per un buon trasformatore (silenzioso) anche per il semplice fatto che di cose ne deve alimentare...e la stabilità e tutto per un mamepc....manca la parte HD dove ho installato un SSD per il sistema operativo (windows 7 64bit PRO) e un meccanico per il contenitore di giochi.
La scheda grafica è una HD5450 ATI che si trova comodamente per 35 euro da tutte le parti...con gli emudriver si installa in 10 minuti e non crea grossi problemi, l'unica pecca che non sono riuscito a mettere una risoluzione minima valida per molti giochi da pc....ossia 800x600 ma devo ancora documentarmi meglio.
Ho anche installato una ciabatta da cui parte l'alimentazione per il PC e quella diretta al monitor CRT.
L'accensione del pc avviene tramite un pulsante occultato sotto la plancia (così ho coperto anche un piccolo segno di usura presente in quella zona).

D) SMARTASD by PICERNO
Il cuore del cabinato dove vengono smistati tutti gli INPUT e OUTPUT una scheda veramente multifunzionale....che è stata testata brutalmente in questo progetto....e spero anche un pò migliorata!
La SMARTASD non è semplicemente un'encoder DIGITALE...ma gestisce anche diversi INPUT ANALOGICI, fondamentali per un ovvio progetto di guida (volante ottico e pedale con potenziomentro), il settaggio e configurazione della scheda e veramente molto flessibile, permette il RESET AL VOLO e la configurazione di DIVERSE CONFIGURAZIONI sempre ON FLY tramite riga di comando; infatti in questo progetto bisogna essere flessibili!
Nel mio cabinato ho gestito gli OUTPUT e alcuni INPUT che non erano presenti nel cab originale tramite JAMMA....ossia: UN PULSANTE SULLA LEVA DEL CAMBIO, IL POT EXTRA DEL PEDALE e DUE PULSANTI SULLA PLANCIA.
Come brevemente schematizzato qualche post più in alto, bisogna continuamente giocare sulle configurazioni, che avolte possono essere MOUSE a volte JOY e con determinate impostazioni configurate sopra.
Un mondo totalmente nuovo che non comprende esclusivamente la classica calibrazione al volante, tramite il software (veramente ben fatto!) e possibile applicare OFFSET e variare il RANGE di funzionamento...per avvicinarsi in modo quasi perfetto all'emulazione dell'hardware originale.
E non solo...con un piccolo circuitino esterno si possono gestire fino a 8 OUTPUT, per rendere ancora più coinvolgente l'esperienza di gioco; inclusi il RUMBLE (vibrazione volante) led posteriori e luci dei pulsanti.
Ovviamente questa è stata la parte più difficile...trovare un sistema che permettesse di variare i settaggi per ogni singolo gioco presente sul pc, interfacciarlo con gli output e rendere tutto questo fluido e invisibile tramite interfaccia FRONT-END....i problemi che si sono presentati sono stati molteplici, questo argomento magari lo tratterò a parte perchè è veramente intricato!
TUtti i settaggi analogici viaggiano in parallelo ai settaggi analogici deii vari software (MAME e altri giochi) perchè non serve solo un corretto settagio dell'encoder ma anche un'ottima conscenza dei giochi e della loro sensibilità e funzionamento.
Non smetterò mai di ringraziare PICERNO perchè senza di lui non sarai mai riuscito a far funzionare il tutto, credo che per un pò si ricorderà di me e di questo progetto... <-whistling->

E) ULN PER LA GESTIONE OUTPUT
Il curcuitino che in parallelo alla SMARTASD mi permette di gestire 8 OUTPUT.
Il circuito si trova qualche pagina addietro e servono veramente due lire (e scarse conoscenze tecniche come le mie) per realizzarlo, se ne possono creare anche due in parallelo per gestire più uscite; ovviamente più uscite prendiamo più uscite occupiamo dall'encoder SMARTASD, il che cmq non comporta grossi problemi perche ne abbiamo per interfacciare una marea di controlli, tantomeno su un cab di guida dove le periferiche di input sono veramente ridotte.
Io ho deciso di aggiungere una coppia di STRISCE LED posteriore (dotata di 3 colori a testa), un RUMBLE e due pulsanti illuminati frontali; facendo due calcoli mi rimaneva un colore fuori che ho messo in serie ad un'altro preesistente (usando la stessa uscita), per evitare di rifarmi un'altro circuito per un'OUTPUT SOLO.
Tutte le uscite devono essere prima settate dalla SMARTASD (come output appunto), e poi gestite da MAMEHOOKER, un software che mi permette di GRABBARE le uscite dei giochi del mame (e non solo!), dove mi dilungheò in seguido in un post dedicato ai SOFTWARE UTILIZZATI.

F) RELAY PER IL RUMBLE
Componente extra per il circuito del RUMBLE è un piccolo RELAY che finisce in serie subito dopo il circuito dell'ULN.
Questo mi permette di pilotare un piccolo motore a 12v (non quelle baracche microscopiche dei controller) in grado di generare un vibrazione potente ma non fastidiosa, ottima per far vibrare il volante e non tutta la plancia.
Per lo schema e la sua costruzione vi rimando al post affrontato precendetemente http://supercoin.blogspot.it/2017/06/driving-arcade-cab-rumble-risultato.html. L'unica pecca e che non posso gestire l'intensità della vibrazione, ma considerate che vibra per qualche secondo di solito e anche se continua non è mai fastidiosa, generando un curva molto morbida come se l'attivazione fosse graduale e non di picco; il rumble è utilissimo e può essere usato in modi molto fantasiosi e divertenti....io per esempio l'ho aggiunto come output tutte le volte che SPARO con la macchina in SPYHUNTER, danto una bella sensazione di mitragliatrice e aumentando il feeling arcade al gioco.
Anche la sistemazione del rumble e stata una sfida vinta, infatti le dimesioni e la tipologia del volante (360 gradi) non mi permettevano un'installazione diretta sul volante....considerate che sto manipolando un volante originale del cab e non un volante con il force feedback da PC; dopo svariate prove e test ho trovato una posizione ottimale proprio sul telaio porteriore al volante stesso!
Ah attenzione ai cavi...un'errore mio e stato che il perno facente asse per la vibrazione, ruotando, mi ha AGGANCIATO tutti i cavi che erano sotto la plancia; accortomi che il rumble girava la minimo senza spiegazioni, ho aperto la plancia.....e ho scoperto il DISASTRO....tutti i cavi attorcigliati e aggrovigliati nel perno fuoriasse del motorino (che ancora girava!!!!), per fortuna nessun danno ai cavi che ho porntamente districato e fascettato lontano dal motore stesso.
Giusto per darvi un'idea di quanti errori prove ed ostacoli ho dovuto sorpassare....

La prossima parte...(oltre a qualche video sul suo funzionamento) vi parlerò dai vari software che devono danzare all'unisono all'interno del cab. <-ciao->

lunedì 18 settembre 2017

DRIVING ARCADE CAB - Le grafiche

Dal tunnel riesco finalmente a vedere la fine...almeno per quanto riguarda le Sideart....che mi hanno fatto penare in lungo e in largo per la loro forma particolare....






Stella sistemata...diciamo che la differenza si vede e forse era meglio che l'applicavo dopo aver messo il sideart...
 






Bezel sistemato....prma ho incollato la parte interna e poi con dei pezzi bianchi ho dato il colore bianco alle zone trasparenti, lasciato asciugare (sono spariti tutti gli aloni) e il risultato è rimasto perfetto!








E finalmente le SIDEART....dopo settimane di restauro con PHOTOSHOP (meticoloso restauro) e tantissime stampe...dovute alla forma irregolare che mi dava problemi nel calcolo esatto delle dimensioni; sono riuscito ad ottenere una quadra decente! sono molto soddisfatto e devo dire che il risultato e ben visibile.
Per l'applicazione mi sono servito di acqua e sapone con uno spruzzino...praticamente le ho lavate ovunque anche nella parte adesiva, questo mi ha permesso di sistemarle più e più volte....fino a trovare la posizione perfetta. poi con la spatola ho rimosso acqua e imperfezioni.

sabato 2 settembre 2017

DRIVING ARCADE CAB - La calibrazione del POTENZIOMETRO con SmartASD

Eccoci giunti ad una fase critica dei settaggi nei giochi in questo caso mame (ma la regolazione si effettua sul range del potenziomentro quindi valida per tutti i giochi): La calibrazione del potenziometro pedale (acceleratore) in accoppata con la SmartASD.

Quando installeremo il potenziometro sicuramente non prenderemo tutto il range fisico dello stesso ma nemmeno ci preoccuperemo di come regolarlo manualmente, posizionando un limite al minimo ed uno al massimo.

Questa regolazione ci permette di sistemare correttamente il range di utilizzo del potenziometro di modo da dargli il range più ampio possibile nei limiti della periferica.

E' più semplice a fare che a dirsi.

Per fare questo dovremmo avere aperti:

- Schermata SmartASD con settaggio su JOY digitale
- MAME con un gioco per i vari test (molto utile OUTRUN)
- Periferiche JOY USB WINDOWS attivabili tramite pannello di controllo, digitanto nella ricerca in alto a destra GAMES (verranno subito fuori le periferiche)...ne selezioniamo una, la prima se si parla di JOY 1 alle Y e prememdno il pot vedremo la croce muoversi




L'obbiettivo e far scorrere la CROCE del test dal punto più alto del quadrato in cui e circoscritta....fino al punto più basso rimanendo comunque in un range di movimento.
Per fare questo dovremmo agire in TEMPO REALE con la schermata dell SMARTASD come si vede qui sotto



Prima di tutto selezioniamo JOY 1 asse Y ossia il valore che abbiamo assegnato al nostro pedale, poi ci spostiamo nella sezione CALIBRATION e giochiamo con i valori OFFSET (che ci permette di muovere la croce, a riposo, più in ato o più in basso per toccare al meglio il bordo superiore) e il valore SCALE (che ci permette di arrivare, con il POTENZIOMETRO PREMUTO, a toccare la parte bassa del quadrato di test)
Man mano che cambiamo i valori possiamo, tramite ALT+TAB, spostarci nella schermata di test per vedere in tempo reale i risultati....infatti non necessitano di essere salvati.

Una volta raggiunto un compromesso soddisfacente (i valori da me proposti sono funzionanti su MIO SISTEMA E NON POSSONO ESSERE PRESI DI ESEMPIO) ci muoviamo sul MAME e facciamo una prova di gioco con OUTRUN.




Se la prova sarà soddisfacente, a riposo la nostra macchina sarà perfettamente ferma...e a pieno fondoscala raggiungeremo una velocità di 190 con la prima marcia (sgommando).
Se il ciò non accade dovremmo ricalibrare il potenziometro di modo che la SCALA sia più ampia di modo che arrivi fino al fondo del quadrato di test.

Ripeto...e molto più semplice arrivarci facendo delle prove...e una volta trovato il meccanismo ci si impiegherà veramente poco per trovare la situazione ottimale.

Se in alcuni giochi noterete che la macchina schizza veloce e quando premete il potenziometro rallenta fino a fermarsi.....significa che il potenziometro nel gioco originale era INVERTITO...non serve mettere mano ai controlli SmartASD ma solo invertire i senso di orientamento del potenziometro tramite MAME.
L'opzione la trovate facendo:

TAB > ANALOG CONTROLS > PEDAL 1 REVERSE (mettere ON)





domenica 9 luglio 2017

DRIVING ARCADE CAB - Il settaggio controlli analogici della SMARTASD

Come mi avevo anticipato precedentemente io ho seguito la via della SmartASD, una comodissima e semplicissima interfaccia in vendita su Arcadeitalia.net per la configurazione di tutti i controlli non sono digitali ma anche e soprattutto analogici.

Con l'ausilio di un piccolo circuitino, veramente semplice da costruire (un integrato e qualche saldatura), possiamo anche controllare le luci e dispositivi esterni tramite MAMEHOOKER un software che permette la gestione degli OUTPUN in MAME.

Per il momento mi occuperò esclusivamente dei controlli analogici e come interfacciarli correttamente per essere letti dal MAME.

Piccolo riassunto dei collegamenti possibili con la SMARTASD:


Ax............Segnali ANALOGICI (compreso A+)

Dx............Segnali DIGITALI

Ex.............Segnali DIGITALI con la possibilità di gestire i segnali in quadratura per le trackball, gli spinner e gli encoder in genere.

GND.........Comune classico

+5V...........+5Volt

I file di installazione SOFTWARE li trovate qui:

Software di installazione e settaggi

Runtime necessaria per l'installazione della SmartASD

EXTRA script MAMEHOOLKER:

Script da caricare su MAMEHOOKER


Considerando che io dovevo interfacciare:

- Un pedale acceleratore CON POTENZIOMETRO
- Un volante OTTICO A 360 gradi
- Vari switch per i crediti e altro.

Ecco i miei collegamenti dedicati con la SMARTASD e i relativi pin (e possibile seguire la mia numerazione per arrivare ai miei stessi risultati e comprendere meglio gli screenshot successivi...ma non è strettamente necessario seguire questo ordine):


POTENZIOMETRO PEDALE :



- A+  : va collegato un'estremo del potenziometro
- A0  : oppure A1 o A2 o altri a seconda della disponibilità
- GND : va collegato all'altro estremo del potenziometro

GENERANO IL SEGNALE A0 NELLA FINESTRA DI CHECKING DELLA SMARTASD



IL SEGNALE DI USCITA LO ANDREMO AD IMPOSTARE SELEZIONANDO IL PIN A0 DALLA SEZIONE RULES


Per il pedale io ho impostato un asse Y del JOYSTICK 2 diciamo che è ottimo per i giochi di guida.
Abilitiamo la rules con il flag ENABLED.
Le regole possono essere caricate al volo tramite riga di comando dal nostro FRONTEND prima del lancio dell'emulatore, esempio:

ESEMPIO:

c:\SmartASD\SmartASD.exe   c:\SmartASD\configurazioneSALVATA1.dat

EVITARE SPAZI NEL PERCORSO, METTERE IL PERCORSO COMPLETO DEL FILE


Esattamente andremo ad utilizzare le USER FUNCTIONS di ROCKETLAUNCHER


Brevemente le USER FUNCTIONS ci permettono di eseguire un comando o file in apertura o chiusura di un SINGOLO emulatore oppure GIOCO, dipende dal nove del file e dalla cartella di quale emulatore si trovano; un'immagine vale più di mille parole, ecco un'esempio di radice in cui annidare i files con lo stesso nome della roms, per lanciare comandi differenti come nel mio caso il cambio di script della SMARTASD.



Qui sotto un'esempio di codice all'interno di un file AHK

; Code in this file will only be run for the game whose name matches the filename of this file and whose system name matches the folder name this file is located in
; Do not change the line with the class declaration! The class name must always be GameUserFunction and extend GameFunction
; This is just a sample file, you only need to implement the methods you will use the others can be deleted

class GameUserFunction extends GameFunction {

; Use this function to define any code you want to run on initialization
InitUserFeatures() {
RLLog.Info(A_ThisFunc . " - Starting")
RunWait, C:\SmartASD\smartasd.exe C:\SmartASD\BreakoutMouse.dat, , Hide
RLLog.Info(A_ThisFunc . " - Ending")
}

; Use this function to define any code you want to run in every module on start
StartUserFeatures() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

; Use this function to define any code you may need to stop or clean up in every module on exit
StopUserFeatures() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

; Use this function to define any code you want to run before Pause starts
StartPauseUserFeatures() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

; Use this function to define any code you may need to stop or clean up after Pause ends
StopPauseUserFeatures() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

; These functions can be used to run custom code at certain points in each module

; This function gets ran right before the primaryExe
PreLaunch() {
RLLog.Info(A_ThisFunc . " - Starting")
;RunWait, C:\SmartASD\smartasd.exe C:\SmartASD\BreakoutMouse.dat, , Hide
RLLog.Info(A_ThisFunc . " - Ending")
}

; This function gets ran right after the primaryExe
PostLaunch() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

; This function gets ran right after FadeInExit(), after the emulator is loaded
PostLoad() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

; This function gets ran after the module thread ends and before RL exits
PostExit() {
RLLog.Info(A_ThisFunc . " - Starting")
RunWait, C:\SmartASD\smartasd.exe C:\SmartASD\ConfigGiochiMame.dat, , Hide
        RunWait, C:\SmartASD\SmartASD.exe -enc 4, , Hide
RLLog.Info(A_ThisFunc . " - Ending")
}

; This method gets ran right before Bezel is draw on the screen
PreBezelDraw() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}


; Game Specific Functions


; Use this method to set fullscreen after the game is running (Used by PCLauncher only)
; Use this function if fullscreen mode can only be set AFTER the game is running
SetFullscreenPostLaunch(fs) {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

; Use this method to set fullscreen before the game is running (Used by PCLauncher only)
; Use this function if fullscreen mode can be set BEFORE the game is running, if fullscreen mode is set through CLI then this should return the cli switch necessary to run it windowed or fullscreen
SetFullscreenPreLaunch(fs) {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
Return ""
}

; Use this method to write any code necessary to halt the game so that Pause can be supported (Used by PCLauncher only)
HaltGame() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

; Use this method to write any code necessary to restore the game so that Pause can be supported (Used by PCLauncher only)
RestoreGame() {
RLLog.Info(A_ThisFunc . " - Starting")
; INSERT CODE HERE
RLLog.Info(A_ThisFunc . " - Ending")
}

}





VOLANTE OTTICO 360:

Per il volante ci sono 2 segnali in quadratura più un GND e l'ALIMENTAZIONE che bisogna verificare se sia 12v o 5v (nel mio caso 5v e posso prenderla direttamente dalla SmartASD)
Io ho verificato i cavi che entravano nella scheda jamma e li ho fatti arrivare direttamente alla SmartASD:

- GND  : alla GND della SmartASD
- STEERLING DIRECTION    : E3A   (va benissimo anche un'altro ExA)
- STEERLING CLOCK  :  E3B       (va benissimo anche un'altro ExB)
- 5V    :  5V della SmartASD


GENERANO IL SEGNALE ENC3 NELLA FINESTRA DI CHECKING DELLA SMARTASD



IL SEGNALE DI USCITA LO ANDREMO AD IMPOSTARE SELEZIONANDO IL PIN ENC3 DALLA SEZIONE RULES




Per il volante io ho impostato un asse X del JOYSTICK 1 diciamo che è ottimo per i giochi che richiedono un ritorno al centro (non proprio per i volanti a 360)....ma rimane un'ottimo compromesso.
Per il giochi che utilizzano il PADDLE come ARKANOID invece dobbiamo settare un MOUSE asse X.
Altra soluzione possibile per evitare di ruotare un volante 360 gradi finche non si trova il centro e quella di impostare MOUSE ma in forma ASSOLUTA, che ci permetterà di trovare immediatamente il centro ad ogni rotazione opposta del volante.
Abilitiamo la rules con il flag ENABLED.
Le regole possono essere caricate al volo tramite riga di comando dal nostro FRONTEND prima del lancio dell'emulatore, esempio:


ESEMPIO:

c:\SmartASD\SmartASD.exe   c:\SmartASD\configurazioneSALVATA1.dat

EVITARE SPAZI NEL PERCORSO, METTERE IL PERCORSO COMPLETO DEL FILE






OUTPUT PER LA GESTIONE LUCI E  RUMBLE:

Per la gestione delle luci e il rumble...insomma tutti gli output di cui avete bisogno, avete a disposizione SOLO (la gran parte delle volte sufficienti) 8 INGRESSI e di conseguenza 8 USCITE
Io le ho usate nella maniera seguente:



E1A :  Output per luce ROSSA lato Destro
E1B :  Output per luce BLU lato Destro
E2A :  Output per luce GIALLO lato Destro
E2B :  Output per luce ROSSA lato Sinistro
D1 :  Output per luce BLU lato Sinistro
D2 :  Output per luce Pulsante OPZIONI\ARMI
D3 :  Output per luce Pulsante CHANGE VIEW
D4 :  Output per RUMBLE  (Vedi schema post su questo blog)
GND :  Connessione al GND della SmartASD

RICORDATE DI COLLEGARE IL PIN 10 AI RISPETTIVI 12V, E IL PIN 9 AL GND

Fatto questo dovrete selezione per tutti i PIN UTILIZZATI, l'opzione OUTPUT nella sezione MISCELLANEOUS nell'interfaccia della SMARTASD.





PULSANTI DIGITALI E MICROSWITCHES:

Per tutti i pulsanti classici ossia quelli dotati di micro (compreso il cambio), potete tranquillamente settare i valori e collegare i fili nei connettori con Dx oppure Ex


Nel prossimo articolo capire come tarare i vari controlli analogici e vedere come effettivamente ESCONO dalla periferica, infatti il percorso che fanno i nostri segnali è il seguente (dall'alto verso il basso):

CONTROLLO JAMMA (cavi in uscita dal volante, pedale,ecc...) >  
INTERFACCIA ENCODER (SmartASD)
PERIFERICA WINDOWS (Effettivo risultato della calibrazione in windows) > 
CONTROLLI MAME (Assegnazione dei controlli tramite il menù TAB del mame) > 
CONTROLLI GIOCO SPECIFICO (Comportamento nel gioco dei valori dati nel MAME tasto F2)















giovedì 1 giugno 2017

DRIVING ARCADE CAB - RUMBLE risultato finale


Rieccomi dopo aver installato il RUMBLE ed aver effettuato alcune prove, devo dire che il risultato e superiore alle mie aspettative....infatti il RUMBLE con il piccolo motorino a 12v installato direttamente dietro al volante (come avete potuto notare nei miei precedenti post), si comporta egregiamente!!!
Una vibrazione ed un rumore fantastico....non troppo invadente e non troppo esagerato da far vibrare tutto il mobile.
La plancia vibra discretamente e il movimento seppur installato con metodi molto artigianali, tiene perfettamente e si trasmette interamente al volante....dando una bellissima sensazione di VIBRAZIONE.

In questo brevissimo post vedremo i dttagli della connessione, siccome non è sempre immediata...e come testarlo in caso avreste preso la decisione di utilizzare come me la SMARTASD di PICERNO.

I componenti e il piccolo circuito da costruire sono già stati approfonditi in altri post...cmq ne faò un breve riassunto qui sotto:

  1. SmartaASD o equivalente
  2. Circuito con integrato ULN2803 (i collegamenti sono visibili anche da foto sotto)
  3. SOLID STATE RELAY (acquistato su ebay 3-32V)
  4. Motore Elettrico 12 v (acquistato su AMAZON)

Tutti i componenti sono identici a quelli rappresentati in figura...per i pin di uscita possiamo utilizzare quelli in figura oppure equivalenti, non e' necessario utisizzare lo stesso pin di uscita che uso io...anche gli altri vanno benissimo!




Successivamente....dopo aver installato il software della SMARTASD, potete testarlo in questa sezione; abilitando o disabilitando l'apertura del contatto in questione.


 
Credo non ci siano ulteriori dubbi da approfondire...ora avete un bellissimo RUMBLE pronto per essere configurato con MAMEHOOKER.
Ma questo lo vedremo in seguito!

lunedì 8 maggio 2017

DRIVING ARCADE CAB - Il RUMBLE


Rieccomi al lavoro dopo un po' di pausa dovuto a trasferte e ferie...

Inanzitutto ho reperito due pulsanti quadrati che andranno a finire dietro il volante per i controlli EXTRA...ho modificato anche una scritta di un pulsante con lo stesso identico carattere; la posizione mi sembrava la più ottimale per l'utilizzo con un volante a 360 e in più non stravolge l'aspetto del cabinato...


Il volante si troverà al posto di quel grande e ovvio buco centrale, i tasti sono uno per la visuale e l'altro per armi ed extra varie...


Ed ecco il prmo imprevisto quando si va ad "ispirazione" insomma i pulsanti mi piacevano lì ma....da dietro battevano contro il supporto del volante...


Ho risolto disassembrando tutto e tagliando le parti che mi davano problemi..


Nella foto sopra avevo gia' girato il motorino perche la punta del motore fuori asse batteva contro il microswitches del pulsante.

Risolto anche questo....girando il motorino, posso ritenermi soddisfatto della posizione dei pulsanti.

Qui sotto si nota anche la nuova LABEL del pulsante giallo con lo stesso carattere di quella con la visuale: SELECT WEAPONS





Mi sono dedicato anche all'aggiunta del pulsante di avvio PC...un piccolo pulsante che deve essere presente in tutti i MAMECAB per avviare anche il pc...(opzionale ovviamente, ma io lo preferisco!), ho preso la palla al balzo per coprire un piccolo problema al legno del mobile, proprio sopra il subwoofer, che non potevo occultare in altra maniera.




Successivamente mi sono dedicato al motorino effetto RUMBLE...

Come sapete nei cabinati, soprattutto in quelli sit-down esiste un'effetto di FORCE FEEDBACK dove se per esempio finiamo fuori pista il volante restituirsce un effetto realistico al volante tramite un motore; questo accade per i volanti a 270° ossia a quelli in cui non è possibile effettuare una rotazione completa perche sono limitati al movimento.


Il mio meccanismo e' di un volante a 360° ossia un volante senza limitazioni che permette una rotazione libera ed infinita; il fatto complica le cose perchè non posso applicare un motore (o due come nella foto) sui rispettivi lati perchè non ho un gioco dedicato ma deve interfacciarsi con più tipi di giochi.

La soluzione è appunto usare il motore posteriore per creare un'effetto di vibrazione sullo chassis e "simulare" la funzione di vibrazione (come nei cellulari), questa e stata la mia opzione...ovviamente non è mai stata fatta una cosa simile quindi devo provare a cavarmela da solo...
Motorini se ne trovano in quantità la mia opzione (prendendo esempio dal RUMBLE DEI FLIPPER) e caduta per un 12v a singolo albero.

Qui sopra possiamo vedere come si presenta uno SHAKER RUMBLE da PINBALL, al di là della struttura di supporto vediamo il motorino centrale e un doppio albero con dei pesi fuori asse; siccome il motorino di un pinball deve scuotere un'intero cassone, io ho optato per una soluzione più "leggera" con un motorino a singolo albero.



Arrivatomi tramite AMAZON il motorino e' un 12v con singolo albero...anche perche a doppio non l'ho trovato, dal ferramenta mi sono fatto consigliare un metodo per fissarlo, mi ha suggerito dei ganci che usano per i tubi...purtroppo non erano della stessa dimensione del diametro del motorino, quindi con un po' di fil di ferro ho optato per la soluzione "arrangiamoci in casa"....fatti i buchi e fissato non sembra un brutto lavoro...la mia unica paura e che caschi di sotto finendo sulla scheda madre... nella notte mi studieto' qualcosa per evitare che anche se si stacca non casca rovinosamente da qualche parte.

Il motore cmq e ben fissato e seppure puo' sembrare grosso non fà tutto sto casino, con il piccolo morsetto in metallo che ho messo a simulare il "motore fuori asse", devo dire che la vibrazione e' perfetta....con 2A di un trasformatorino dava una sensazione forte ma non eccessiva....tanto che anche se installato nel blocco "retro" volante, e non direttamente sul perno volante, secondo me l'effetto sara fantastico!






Ora non resta che testarlo direttamente sul supporto in metallo...l'unica mia paura e ovvimanete quella che si possa staccare....o il motore oppure il peso fuoriasse (anche se fissati più che bene...), per questo ho una mezza intenzione di mettere una rete o una protezione extra che mi raccoglie tutto.
Altra paura e che la vibrazione 12V sia troppo forte...e alla lunga possa darmi problemi con il meccanismo ottico e le due ruote dentate...anche questo si potrebbe ovviare acquistando un variatore di tensione per motorini elettrici e metterlo a monte regolando di conseguenza la vibrazione con un dimmer.
Tutte soluzioni che valuterò in seguito.


Ora sono ancora in attesa del famigerato CAMBIO A T CON PULSANTE TURBO...apparentemente introvabile usato e a prezzi notevoli nuovo....mi dò ancora questa settimana di ricerca poi andro all'acquisto nuovo (70 euro) e chissenefrega!

martedì 18 aprile 2017

DRIVING ARCADE CAB - Considerazioni Jamma

Il progetto va avanti... ancora sono alla RICERCA del CAMBIO CON TURBO, come quello in figura qui sotto (switch o normale UP/DOWN) .... (fatevi avanti se ne avete uno o sapete dove reperirlo!!!!)





Nel frattempo volevo spiegare come nel mio caso ho dovuto interfacciare alla jamma i dispositivi presenti nel mio cab....
La diversità maggione era dovuta al fatto che nel mio cab è presente un dispositivo OTTICO e quindi mi sono dovuto regolare di conseguenza, ho tenuto presente che nel mio cabinato era installato fisso il gioco WORD RALLY CHAMPIONSHIP della GAELCO e di conseguenza ho dovuto reperire la documentazione relativa a quel cablaggio jamma.




  

Come si vede in foto nella piedinatura jamma era collegato un cavo che era assente normalmente nel manuale del gioco.
Nelle indicazioni tale piedino era collegato al +5V quindi si presume (ed e' stato confermato dai cavi) l'effettiva presenza di questo +5v che arrivava dall'alimentazione dello schedino di controllo ottico volante.

Quindi questi 4 controlli che arrivavano dal volante:

GND
STEERLING WHEEL
STEERLING CLOCK
+5v  (alimentazione circuitino)

sono stati collegati alla SMARTASD rispettivamente a:

GND ----->  GND
STEERLING WHEEL ----->  E1A 
STEERLING CLOCK ----->  E1B
+5v  (alimentazione circuitino) ----->  +5v SMARTASD

Questa è l'unica particolarita di questo cablaggio jamma!