GUIDA - Pixel-perfect su Raspberry Pi con AdvanceMAME

Tutti gli emulatori che ci possono servire sul nostro cab con SO non Windows

Moderatore: Moderatore Raspberry

Avatar utente
Yami
Nostalgico
Nostalgico
Messaggi: 455
Iscritto il: 07/06/2006, 7:38
Reputation: 14
Città: Lecce

GUIDA - Pixel-perfect su Raspberry Pi con AdvanceMAME

Messaggio da Yami » 15/10/2017, 13:31

Premessa
Questa breve premessa è in realtà la sintesi di un post che ho scritto sempre qui su Arcade Italia il 05/12/2016.
Fino a qualche tempo fa l'emulazione su Raspberry era, a mio giudizio, piuttosto inconsistente a causa di due limiti tecnici non da poco: la scarsa potenza di calcolo e l'assenza di un'uscita video analogica di qualità (a meno di ricorrere ad adattatori che, oltre ad introdurre lag, invalidavano la compattezza, praticità e convenienza del Raspberry rispetto ad altre piattaforme). Un esempio è proprio questo.

Oggi tuttavia la situazione è radicalmente cambiata: la terza incarnazione del Raspberry Pi sembra finalmente avere la potenza di calcolo necessaria per emulare bene gran parte dei classici arcade fino ai primi anni '90, in alcuni casi anche con shaders e "optional" vari.
Per quanto riguarda l'uscita analogica, ci sono state di recente alcune "tappe evolutive" davvero fondamentali:
  1. il progetto Gert's VGA 666: una piccola scheda che, collegata alla porta GPIO del Raspberry, è in grado di fornire un segnale VGA diretto, ovvero un segnale video analogico in qualità RGB privo di lag!
  2. un binomio "esplosivo" di nuove funzionalità del firmware: la possibilità di creare delle modalità video non standard e addirittura di attivarle e modificarle "al volo".
A cosa ha portato tutto ciò?
Alla concreta possibilità di avere, oggi, un'emulazione pixel-perfect anche su Raspberry Pi (fino ad ora prerogativa di alcuni PC dotati di schede video opportunamente modificate). E non solo.
AdvanceMAME girava già piuttosto bene su Raspberry Pi 3, ma su PC era anche in grado di replicare precisamente le modalità video di ciascuna ROM emulata. Qualche tempo fa mi sono chiesto: perché non provare a contattare Andrea Mazzoleni (sviluppatore del progetto Advance) per informarlo di queste novità in ambito Raspberry? L'ho fatto, e il buon Andrea non solo non mi ha (ancora) denunciato per stalking, ma dopo una piacevole corrispondenza oggi con AdvanceMAME offre il pieno supporto al Raspberry Pi anche per la generazione delle modalità video pixel-perfect!

"Allora, bando alle ciance e dicci come fare!"
OK, lasciatemi solo dire però che il testo che segue include operazioni sul cui esito non mi assumo alcuna responsabilità. 8)


Perché il pixel-perfect?
Fatte le (doverose) premesse, ricordo quindi che il fine ultimo di questa guida è quello di compilare, installare e far girare su Raspberry Pi 3 l'ultima versione di AdvanceMAME con una configurazione tale da consentire, su TV catodico o monitor arcade, la replica di modalità video con risoluzione e refresh identici (o il più possibile fedeli) a quelle delle schede JAMMA originali. Ciò significa, ad esempio, fare in modo che sul Raspberry collegato a un TV catodico, la ROM Bad Dudes vs Dragon Ninja sia emulata in AdvanceMAME con risoluzione (256x240), profondità di colori, proporzioni e "velocità" (57.410000 Hz) esattamente corrispondenti a quelle della scheda JAMMA reale. Qualora non sia possibile replicare una determinata modalità video (ad esempio perché non supportata dal nostro TV) AdvanceMAME ne creerà automaticamente una il più possibile simile.
I vantaggi di questa soluzione rispetto ad un PC con ArcadeVGA potranno anche essere soggettivi (consumi, dimensioni, silenziosità ecc.) ma, date le dimensioni ridotte del Raspberry, finalmente è lecito sognare un bartop a tubo catodico in grado di riprodurre quasi alla perfezione il feeling da sala giochi. ;)

La modalità video della scheda JAMMA di "Bad Dudes vs Dragon Ninja" è 256x240 (H) 57.410000 Hz
Immagine

...e la modalità video generata da AdvanceMAME sul mio Raspberry collegato al TV catodico è esattamente la stessa!
Immagine


Componenti
  • Raspberry Pi 3 con tastiera e alimentatore
  • scheda micro-SD da almeno 4Gb
  • Gert's VGA 666
  • cavo VGA > SCART
  • TV a tubo catodico con ingresso SCART RGB, preferibilmente multistandard (PAL 50Hz e NTSC 60Hz) o monitor arcade
  • PC (o Mac) con lettore di schede micro-SD (solo per la prima configurazione)
  • Monitor con ingresso HDMI (solo per la prima configurazione)

Prima di iniziare
  • Questa guida è aggiornata per Raspbian Stretch LITE e AdvanceMAME 3.5.
  • Utilizzare la linea di comando per le operazioni descritte in questa guida potrebbe sembrare complicato per un utente alle prime armi, ma è un'ottima occasione per apprendere le basi di Linux (e Debian, una delle sue distribuzioni più diffuse, da cui è derivato lo stesso sistema operativo Raspbian); cercherò nei limiti del possibile di spiegare anche i comandi di base come il login, l'utilizzo del prompt ecc. ma il consiglio comunque è quello di partire da un'installazione pulita e di fare in piena libertà tutte le prove necessarie. Le operazioni descritte nella guida sono tutto sommato semplici e piuttosto brevi, a renderla "lunga" sono soprattutto i commenti, finalizzati però sia a prevenire (nei limiti del possibile) eventuali problemi, sia a spiegare davvero quello che stiamo facendo: dai un pesce a un uomo e lo nutrirai per un giorno; insegnagli a pescare e lo nutrirai per tutta la vita.
  • In ambito Linux (e quindi Raspberry) è frequente compilare il codice sorgente per ottenere l'eseguibile di un programma; dunque anche se sul sito ufficiale è disponibile l'eseguibile di AdvanceMAME, ho preferito ignorarlo descrivendo anche la procedura di compilazione dei sorgenti, dato che potrebbe tornarvi utile in futuro (magari anche per altri progetti). Naturalmente tutte le operazioni di configurazione restano invariate.
  • Raspberry Pi 3 richiede un alimentatore micro-USB in grado di erogare 5V e 2.5A per funzionare correttamente. Prima di acquistarlo, verifichiamo se in casa ce n'è già uno (magari di un tablet o di uno smartphone) con le stesse caratteristiche. Utilizzare un alimentatore di potenza inferiore potrebbe causare problemi: se durante le operazioni sul monitor in alto a destra dovesse apparire l'icona di un fulmine giallo, significherà che il Raspberry Pi 3 è sottoalimentato (e che potrebbe riavviarsi inavvertitamente!).

Installazione, configurazione e aggiornamento di Raspbian LITE
Scarichiamo il sistema operativo Raspbian in versione LITE dal sito ufficiale: https://www.raspberrypi.org/downloads/raspbian/.
Decomprimiamo l'archivio ZIP: all'interno troveremo l'immagine ISO.
Scriviamo (NON copiamo) l'immagine ISO sulla nostra scheda micro-SD: esistono vari software per tale scopo su Windows, Mac o Linux; possiamo fare riferimento al paragrafo WRITING AN IMAGE TO THE SD CARD in questa pagina della documentazione ufficiale.

Colleghiamo il Raspberry ad Internet: il collegamento cablato, che consiglio a chi è alle prime armi, non dovrebbe richiedere configurazioni particolari (mentre per il WiFi bisogna armeggiare un po'). Siamo pronti per il primo avvio: inseriamo la scheda SD con il sistema operativo nel Raspberry e colleghiamo tastiera (niente mouse), monitor HDMI ed alimentatore. Il Raspberry si accenderà e vedremo scorrere la sequenza di boot del sistema operativo Raspbian.

Immagine

Dopo questa sequenza in perfetto stile "Matrix" ci verrà chiesto di effettuare l'accesso tramite username (pi) e password (raspberry).

Al primo avvio è buona prassi ricorrere all'utility raspi-config per espandere il filesystem, configurare la tastiera italiana ed impostare data e ora (per non incorrere in anomalie di aggiornamento o compilazione). Quindi come indicato nella documentazione ufficiale di raspi-config digitiamo

Codice: Seleziona tutto

sudo raspi-config
Si aprirà un menu con varie opzioni di configurazione del sistema (per i millennials: si naviga con le frecce e con il tasto TAB, SPAZIO per selezionare, INVIO per confermare, ESC per annullare).
La prima cosa da fare è espandere il filesystem per sfruttare tutto lo spazio disponibile sulla scheda SD: per fare ciò selezioniamo l'opzione EXPAND FILESYSTEM e seguiamo le istruzioni.
Conviene poi impostare il layout della tastiera italiana, altrimenti sarà quasi impossibile lavorare correttamente: selezioniamo INTERNATIONALISATION OPTIONS > CHANGE KEYBOARD LAYOUT e seguiamo tutte le istruzioni a monitor.
Verifichiamo infine che la data e l'ora del Raspberry siano corrette in INTERNATIONALISATION OPTIONS > CHANGE TIMEZONE.
Ora usciamo dal programma (pulsante Finish a fondo pagina) e, qualora non ci venga proposto, riavviamo il Raspberry con

Codice: Seleziona tutto

sudo reboot
(avrete ormai intuito che il comando "sudo" consente di effettuare operazioni da Amministratore in Raspbian).
Effettuato nuovamente l'accesso, prima di proseguire è bene verificare se vi sono aggiornamenti importanti per il sistema operativo o i suoi componenti. Per questo digitiamo

Codice: Seleziona tutto

sudo apt-get update
e poi aggiorniamo con

Codice: Seleziona tutto

sudo apt-get upgrade
Se vi sono aggiornamenti disponibili ci verrà chiesto di confermarne l'installazione (con "Y" in maiuscolo). Al termine ci ritroveremo nuovamente con il cursore lampeggiante del prompt.

ATTENZIONE - AGGIORNAMENTO DEL FIRMWARE: per generare e cambiare "al volo" le modalità video (il fine principale di questa guida) AdvanceMAME ha bisogno che il firmware del Raspberry sia aggiornato. Effettuare questa operazione è piuttosto semplice ma si tratta anche dell'unica vera parte "rischiosa" del procedimento, che una volta avviata NON dovrà essere interrotta. Per aggiornare il firmware si usa l'utility rpi-update digitando

Codice: Seleziona tutto

sudo rpi-update
Lo script scaricherà automaticamente il firmware più aggiornato per il nostro Raspberry e lo installerà: questa operazione NON dovrà essere interrotta per nessun motivo, pena il rischio di brickare il Raspberry (sgrat sgrat). Al termine dell'installazione il programma ci suggerirà di fare un reboot e tornerà al prompt.
Lanciamo quindi

Codice: Seleziona tutto

sudo reboot
...per riavviare il Raspberry con il nuovo firmware.
Se siete arrivati fin qui senza fare danni: congratulazioni, ve la state cavando bene. <-clap->


Iniziamo davvero: compilazione ed installazione di AdvanceMAME (e AdvanceMESS e AdvanceMENU)
Installiamo innanzitutto gli strumenti necessari per il download e la compilazione del codice sorgente di AdvanceMAME sul nostro Raspberry, facendo attenzione a digitare correttamente tutti i nomi dei vari pacchetti (git, autoconf ecc.) seguiti da un carattere di spazio:

Codice: Seleziona tutto

sudo apt-get install git autoconf automake libsdl2-dev libasound2-dev libfreetype6-dev zlib1g-dev libexpat1-dev libslang2-dev libncurses5-dev
Se abbiamo digitato tutto correttamente ci verrà chiesto di confermare l'installazione dei pacchetti (sempre con "Y" maiuscolo).
Finita l'installazione, possiamo finalmente procedere con il download del codice sorgente di AdvanceMAME direttamente dal repository GitHub ufficiale, utilizzando lo strumento git che abbiamo appunto installato poc'anzi:

Codice: Seleziona tutto

git clone https://github.com/amadvance/advancemame.git
Il codice sorgente è stato così scaricato nella cartella advancemame della nostra Home. Entriamo in questa cartella per proseguire.

Codice: Seleziona tutto

cd advancemame
Prima di avviare la compilazione vera e propria del codice sorgente, che genererà gli eseguibili di AdvanceMAME, AdvanceMESS e AdvanceMENU, dobbiamo effettuare due operazioni preliminari.
Innanzitutto lanciamo lo script che predispone automaticamente il file di configurazione necessario per la compilazione dei sorgenti sul nostro Raspberry:

Codice: Seleziona tutto

sh autogen.sh
Configuriamo ora, sempre in automatico, tutti i parametri di compilazione:

Codice: Seleziona tutto

./configure
...e finalmente avviamo la compilazione vera e propria!

Codice: Seleziona tutto

make -j3 
Il parametro -j3 consente di utilizzare tre processi di calcolo in parallelo, velocizzando non di poco la compilazione (che in ogni caso impiegherà circa una mezz'oretta, quindi è il momento giusto per un bel tè, caffè, biscotti ecc.).

Se la compilazione è andata a buon fine, ad un certo punto vedremo il prompt lampeggiare senza particolari messaggi di errore. Ciò significa che nella cartella dei codici sorgenti sono stati creati i file binari di AdvanceMAME, AdvanceMESS e AdvanceMENU che possono essere eseguiti sul nostro Raspberry (equivalenti ai .EXE su DOS o Windows, per intenderci).
Lanciamo ora lo script di installazione, che copierà tutti i file eseguibili nelle cartelle giuste per far funzionare tutto correttamente.

Codice: Seleziona tutto

sudo make install
Possiamo finalmente verificare se tutto è filato liscio digitando

Codice: Seleziona tutto

cd ..
advmame robby
Se si avvia il MAME, congratulazioni: avete appena compilato ed installato l'ultima versione di AdvanceMAME su Raspberry Pi! <-gogogo->


Configurazione di AdvanceMAME per il pixel-perfect (ovvero: dove avviene la magia)
È arrivato il momento di specificare il tipo di monitor (TV o arcade) utilizzeremo, affinché AdvanceMAME possa sapere entro quali limiti tecnici (risoluzione, refresh ecc.) dovrà attenersi per la somministrazione delle modalità video il più possibile fedeli a quelli delle schede originali.

<-preved-> Siamo quindi arrivati alla WARP ZONE:


a) se utilizziamo un TV catodico con cavo VGA-SCART
Se vogliamo utilizzare il Raspberry con AdvanceMAME su un vecchio televisore a tubo catodico, sarà preferibile selezionare manualmente prima tutte le modalità video effettivamente supportate dal nostro TV: tra queste AdvanceMAME proporrà poi automaticamente quella migliore per la ROM emulata, variando se necessario risoluzione orizzontale e clock al fine di garantire l'esperienza visiva più fedele possibile.

Entriamo nella cartella nascosta di configurazione di AdvanceMAME

Codice: Seleziona tutto

cd .advance
Apriamo con l'editor di testo (su Raspbian si chiama nano) il file di configurazione di AdvanceMAME

Codice: Seleziona tutto

sudo nano advmame.rc
Ipotizzando dunque di utilizzare il Raspberry sul nostro fido TV catodico multistandard (in grado cioè di supportare sia i 50Hz PAL che i 60Hz NTSC) con ingresso SCART RGB, aggiungiamo al file di configurazione questa riga:

Codice: Seleziona tutto

device_video_clock 4-100 / 15-16 / 50-60
Cerchiamo poi la riga con l'opzione display_adjust e modifichiamola come segue

Codice: Seleziona tutto

display_adjust xclock
Salviamo le modifiche (CTRL + X e poi Y) e, una volta tornati al prompt, spegniamo il Raspberry con

Codice: Seleziona tutto

sudo poweroff
Finalmente è arrivato il momento di collegare il Raspberry al TV catodico: scolleghiamo tutto, ma facciamo prima un'altra operazione.
Rimuoviamo la scheda micro-SD dal Raspberry e colleghiamola al nostro PC. Si apriranno due volumi:
  • per uno dei due, Windows (non riconoscendo il filesystem di Linux) chiederà la formattazione: noi ovviamente NON procederemo, e da bravi ragazzi cliccheremo su ANNULLA.
  • sull'altra partizione della scheda SD, perfettamente leggibile in Windows (o Mac) troveremo il file di configurazione principale chiamato config.txt.
    Apriamolo con un editor di testo (meglio con Notepad++ o BBedit) ed alla fine del file aggiungiamo

    Codice: Seleziona tutto

    device_tree=bcm2710-rpi-3-b.dtb
    dtparam=i2c_arm=off
    dtparam=i2s=off
    dtparam=spi=off
    dtparam=uart0=off
    dtparam=uart1=off
    dtoverlay=vga666
    enable_dpi_lcd=1
    display_default_lcd=1
    
    hdmi_timings=320 1 20 30 35 204 1 12 12 16 0 0 0 60 0 6400000 1
    dpi_group=2
    dpi_mode=87
    
    Un momento, ma che stiamo facendo?
    Semplificando: con le prime 6 righe "liberiamo" i pin del connettore GPIO del Raspberry dalle altre risorse, per consentire alla scheda VGA 666 di funzionare correttamente; il comando dtoverlay=vga666 ne abilita il driver e le successive due righe lo impostano come periferica video principale.
    Le ultime tre righe sono molto importanti: con hdmi_timings impostiamo un modo video "personalizzato" di 240p che ci consentirà di vedere correttamente il Raspberry sul TV catodico, mentre con le successive diciamo al Raspberry di utilizzare il modo video personalizzato che abbiamo creato poco sopra.
    Queste funzionalità video avanzate sono state introdotte solo di recente (vabé, ormai quasi un annetto fa, comunque al tempo della creazione del mio topic) e per questo richiedono che il firmware del Raspberry sia un minimo aggiornato per funzionare.
    Vedete come tutto torna? Proseguiamo! ;)
Salviamo le modifiche al file config.txt, espelliamo correttamente la scheda micro-SD (entrambe le partizioni) dal PC e, finalmente, colleghiamo il Raspberry al televisore: agganciamo lo schedino VGA 666 alla porta GPIO (la direzione giusta dovrebbe essere con il connettore VGA molto sporgente rispetto al corpo principale). Colleghiamo il cavo VGA-SCART rispettivamente al VGA 666 ed al televisore, l'alimentazione USB dello stesso cavo (se presente) ad una delle porte del Raspberry, la tastiera, ed accendiamo il tutto collegando anche l'alimentatore.

Immagine

Se tutto è filato liscio, dovremmo vedere la sequenza di accensione del Raspberry sul canale AV-1 del nostro televisore!
Ci siamo quasi, dobbiamo fare un'ultima configurazione di AdvanceMAME: sul TV sarà un po' scomodo, ma in questo caso non abbiamo alternative.
Dopo il login apriamo l'utility di configurazione dei modi video di AdvanceMAME digitando

Codice: Seleziona tutto

advv
Immagine

Ci ritroveremo davanti ad un lungo elenco di modalità video (tutte quelle possibili su AdvanceMAME): le modalità indicate in rosso saranno certamente NON supportate dal nostro TV e per questo le potremo ignorare, mentre quelle in blu dovrebbero essere supportate (sulla base dei valori di massima impostati con l'opzione device_video_clock nel file di configurazione dell'emulatore, ricordate?). Spostandoci dunque con i tasti direzionali (frecce) su uno dei modi video supportati, con il tasto INVIO vedremo "la magia": il Raspberry cambierà risoluzione (e refresh rate) al volo riproducendo la modalità video selezionata, lasciandoci anche la possibilità di centrare un minimo l'inquadratura con le frecce direzionali. Un altro INVIO salverà le impostazioni per tale modalità.
Ritornati all'elenco principale, selezioniamo (spuntiamo) con la BARRA SPAZIATRICE la modalità appena testata, marcandola come effettivamente valida e funzionante sul nostro televisore.

È molto importante ripetere queste operazioni per OGNI modalità video supportata dal nostro TV: più modalità avremo prima testato e poi selezionato, migliore sarà la resa a schermo con le varie ROM (perché AdvanceMAME avrà più scelta nella proposizione della modalità video più adeguata). Prendiamoci dunque tutto il tempo necessario per effettuare queste operazioni con calma!

Al termine premiamo il tasto F2: in questo modo salveremo l'elenco di tutte le modalità video selezionate e supportate dalla nostra configurazione, dando appunto ad AdvanceMAME la possibilità di "attingervi" per proporre, a seconda della ROM caricata, quella più fedele al gioco originale (con gli opportuni aggiustamenti di risoluzione orizzontale e clock, come dichiarato prima nel file di configurazione con l'opzione display_adjust xclock).

Ritornati al prompt digitiamo nuovamente

Codice: Seleziona tutto

advmame robby
...e questa volta AdvanceMAME farà partire il gioco con risoluzione e refresh identici (pixel-perfect!) o il più possibile fedeli a quelli originali (supportati dal nostro TV).

Immagine


b) se siamo felici possessori di un cabinato con monitor arcade
Se intendiamo utilizzare il Raspberry all'interno di un cabinato e quindi su un vero monitor arcade, non sarà necessario selezionare manualmente prima le modalità video supportate, ma potremo lasciare che sia direttamente AdvanceMAME a generarle al volo.

Finalmente è arrivato il momento di collegare il Raspberry al monitor! Spegniamo il Raspberry con

Codice: Seleziona tutto

sudo poweroff
...scolleghiamo tutto, ma facciamo prima un'altra operazione.
Rimuoviamo la scheda micro-SD dal Raspberry e colleghiamola al nostro PC. Si apriranno due volumi:
  • per uno dei due, Windows (non riconoscendo il filesystem di Linux) chiederà la formattazione: noi ovviamente NON procederemo, e da bravi ragazzi cliccheremo su ANNULLA.
  • sull'altra partizione della scheda SD, perfettamente leggibile in Windows (o Mac) troveremo il file di configurazione principale chiamato config.txt.
    Apriamolo con un editor di testo (meglio con Notepad++ o BBedit) ed alla fine del file aggiungiamo

    Codice: Seleziona tutto

    device_tree=bcm2710-rpi-3-b.dtb
    dtparam=i2c_arm=off
    dtparam=i2s=off
    dtparam=spi=off
    dtparam=uart0=off
    dtparam=uart1=off
    dtoverlay=vga666
    enable_dpi_lcd=1
    display_default_lcd=1
    
    hdmi_timings=320 1 20 30 35 204 1 12 12 16 0 0 0 60 0 6400000 1
    dpi_group=2
    dpi_mode=87
    
    Un momento, ma che stiamo facendo?
    Semplificando: con le prime 6 righe "liberiamo" i pin del connettore GPIO del Raspberry dalle altre risorse, per consentire alla scheda VGA 666 di funzionare correttamente; il comando dtoverlay=vga666 ne abilita il driver e le successive due righe lo impostano come periferica video principale.
    Le ultime tre righe sono molto importanti: con hdmi_timings impostiamo un modo video "personalizzato" di 240p che ci consentirà di vedere correttamente il Raspberry sul TV catodico, mentre con le successive diciamo al Raspberry di utilizzare il modo video personalizzato che abbiamo creato poco sopra.
    Queste funzionalità video avanzate sono state introdotte solo di recente (vabé, ormai quasi un annetto fa, comunque al tempo della creazione del mio topic) e per questo richiedono che il firmware del Raspberry sia un minimo aggiornato per funzionare.
    Vedete come tutto torna? Proseguiamo! ;)
Salviamo le modifiche al file config.txt, espelliamo correttamente la scheda micro-SD (entrambe le partizioni) dal PC e, finalmente, colleghiamo il Raspberry al monitor arcade: agganciamo lo schedino VGA 666 alla porta GPIO (la direzione giusta dovrebbe essere con il connettore VGA molto sporgente rispetto al corpo principale). Colleghiamo il monitor arcade, la tastiera, ed accendiamo il tutto collegando anche l'alimentatore.

Se tutto è filato liscio, dovremmo vedere la sequenza di accensione del Raspberry sul nostro monitor!
Ci siamo quasi, dobbiamo fare un'ultima configurazione di AdvanceMAME: invece di inserire le frequenze-limite manualmente (come faranno i possessori di TV multistandard per "spingere" il più possibile) possiamo ricorrere direttamente all'utility

Codice: Seleziona tutto

advcfg 
Immagine

Selezioniamo il tipo di monitor arcade in nostro possesso e seguiamo le istruzioni a video.
Potremo fare riferimento ai valori standard per le varie tipologie di monitor arcade (15 kHz, 16 kHz, 25 kHz o 31.5 kHz) oppure inserire manualmente (opzione custom) all'interno del programma l'intervallo di frequenze supportate dal nostro monitor (in tal caso consultiamo le specifiche tecniche sul manuale).

Al termine, advcfg inserirà automaticamente nel file di configurazione advmame.rc le frequenze del monitor arcade e l'opzione display_adjust generate_yclock. Come anticipato, questa opzione farà sì che sia direttamente AdvanceMAME a generare automaticamente la modalità video più fedele a quella originale ("generate"), adattando, se proprio necessario, la risoluzione verticale ("y") e poi il refresh ("clock").

(Naturalmente è possibile adottare questo stesso approccio anche sul TV catodico, ma sulla base della mia esperienza la preselezione manuale di tutte le modalità video supportate porta a risultati più efficaci per i televisori).

Ritornati al prompt digitiamo nuovamente

Codice: Seleziona tutto

advmame robby
...e se tutto è andato per il meglio AdvanceMAME farà partire il gioco con risoluzione e refresh identici a quelli della scheda JAMMA originale (pixel-perfect)!

Immagine