Rimozione warning e modifiche frequenze giochi
Prima di tutto vi spiego in poche parole cosa stiamo per fare nel codice sorgente del M.A.M.E.
Caricando un qualsiasi gioco del M.A.M.E. la prima volta viene caricata sempre e comunque
la schermata GAMEINFO che visualizza le caratteristiche di base del gioco risoluzione refresh ecc.
la mia guida non agirà su questa cosa visto che viene visualizzata solo la prima volta che un gioco viene
avviato poi selezionando l' opzione skipgameinfo non viene più ripetuta.
La mia guida invece interviene su quelle schermate che si ripetono all' infinito senza possibilità di
evitarle o skipparle queste schermate io le chiamo warning (non sò come si chiamano di preciso)
e ne esistono di diversi tipi eccone un pò di esempi
GAME_IMPERFECT_COLOR
GAME_NOT_WORKING
GAME_NO_SOUND
GAME_UNEMULATED_PROTECTION
GAME_NO_COCKTAIL
nella maggior parte dei casi eliminare queste schermate non conviene e non porta nessun beneficio per wsempio
GAME_NOT_WORKING
inutile toglierla tanto il gioco non funzionerà lostesso

GAME_NO_SOUND
inutile toglierla tanto l' audio non funzionerà lostesso

e via di questo passo
un warning che potrebbe essere eliminato per rendere più professionale il nostro cab è questo
GAME_NO_COCKTAIL
chiaramente se il nostro cab non è un COCKTAIL

a questo punto passiamo all' opera e cominciamo a eliminare quello che ci interessa
- PARTE I Rimozione WARNING
Procuriamoci una copia del SOURCE del mame facilmente reperibile in qualsiasi sito che tratta M.A.M.E. http://mamedev.org/oldrel.html quì possiamo
reperire le versioni più vecchie http://mamedev.org/release.html quì invece le ultime.
Estraiamo il contenuto dell SOURCE nella cartella C:\MAME poi ci servirà per la compilazione, una volta estratto il
contenuto all' interno della cartella dovrebbero esserci la cartella "src" SOURCE, entriamoci dentro poi andiamo
dentro la cartella "drivers" questa è la cartella che ci interessa all' interno ci ritroveremo un sacco di file ".c"
che possono essere aperti con il semplice notepad di win

vengono raccolte tutte le info e le impostazioni per l' emulazione della macchina specificata.
Prendiamo come esempio la macchina "ace.c" che serve per il funzionamento del gioco "Allied Leisure"
apriamo il file (sempre con il notepad) e andiamo alla fine del testo dovremmo trovare una scritta tipo questa
GAME( 1976, ace, 0, ace, ace, 0, ROT0, "Allied Leisure", "Ace", GAME_NO_SOUND | GAME_IMPERFECT_COLORS )
a questo punto possiamo notare che il giocoha 2 "WARNING" "GAME_NO_SOUND | GAME_IMPERFECT_COLORS "
quindi il gioco in questione presenta seri problemi nell' emulazione "niente suono e colori non precisi"
i casi sono 2 o lasciamo stare e passiamo a un' altro driver o comunque rimuoviamo il "WARNING"
se scegliamo di rimuovere il "WARNING" non dobbiamo fare altro che eliminare le scritte e al loro posto aggiungere uno "0" (ZERO)
esempio
"WARNING attivo"
GAME( 1976, ace, 0, ace, ace, 0, ROT0, "Allied Leisure", "Ace", GAME_NO_SOUND | GAME_IMPERFECT_COLORS )
"WARNING eliminato"
GAME( 1976, ace, 0, ace, ace, 0, ROT0, "Allied Leisure", "Ace", 0 )
Altro esempio prendiamo il driver "docastle.c" lo apriamo (sempre con notepad) e andiamo in fondo dovremmo trovare una cosa simile
GAME( 1983, docastle, 0, docastle, docastle, 0, ROT270, "Universal", "Mr. Do's Castle (set 1)", 0 )
GAME( 1983, docastl2, docastle, docastle, docastle, 0, ROT270, "Universal", "Mr. Do's Castle (set 2)", 0 )
GAME( 1983, docastlo, docastle, docastle, docastle, 0, ROT270, "Universal", "Mr. Do's Castle (older)", 0 )
GAME( 1983, douni, docastle, docastle, docastle, 0, ROT270, "Universal", "Mr. Do vs. Unicorns", 0 )
GAME( 1984, dorunrun, 0, dorunrun, dorunrun, 0, ROT0, "Universal", "Do! Run Run (set 1)", 0 )
GAME( 1984, dorunru2, dorunrun, dorunrun, dorunrun, 0, ROT0, "Universal", "Do! Run Run (set 2)", 0 )
GAME( 1984, dorunruc, dorunrun, docastle, dorunrun, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 1)", 0 )
GAME( 1984, dorunrca, dorunrun, docastle, dorunrun, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 2)", 0 )
GAME( 1987, spiero, dorunrun, dorunrun, dorunrun, 0, ROT0, "Universal", "Super Pierrot (Japan)", 0 )
GAME( 1984, dowild, 0, dorunrun, dowild, 0, ROT0, "Universal", "Mr. Do's Wild Ride", 0 )
GAME( 1984, jjack, 0, dorunrun, jjack, 0, ROT270, "Universal", "Jumping Jack", 0 )
GAME( 1984, kickridr, 0, dorunrun, kickridr, 0, ROT0, "Universal", "Kick Rider", 0 )
GAME( 1985, idsoccer, 0, idsoccer, idsoccer, 0, ROT0, "Universal", "Indoor Soccer", GAME_NO_COCKTAIL )
questo driver è stato scritto per far funzionare tutti questi giochi visto che gli stessi funzionavano sullo stesso hardware
come possiamo notare i giochi funzionao tutti correttamente visto che tutti alla fine hanno lo "0" (ZERO) l' unico è "Indoor Soccer"
che presenta problemi nella visualizzazione "COCKTAIL" a questo punto visto che a noi non interessa la visualizzazione "COCKTAIL"
non faremo altro che eliminare la scritta e aggiungere uno "0" (ZERO) così
GAME( 1983, docastle, 0, docastle, docastle, 0, ROT270, "Universal", "Mr. Do's Castle (set 1)", 0 )
GAME( 1983, docastl2, docastle, docastle, docastle, 0, ROT270, "Universal", "Mr. Do's Castle (set 2)", 0 )
GAME( 1983, docastlo, docastle, docastle, docastle, 0, ROT270, "Universal", "Mr. Do's Castle (older)", 0 )
GAME( 1983, douni, docastle, docastle, docastle, 0, ROT270, "Universal", "Mr. Do vs. Unicorns", 0 )
GAME( 1984, dorunrun, 0, dorunrun, dorunrun, 0, ROT0, "Universal", "Do! Run Run (set 1)", 0 )
GAME( 1984, dorunru2, dorunrun, dorunrun, dorunrun, 0, ROT0, "Universal", "Do! Run Run (set 2)", 0 )
GAME( 1984, dorunruc, dorunrun, docastle, dorunrun, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 1)", 0 )
GAME( 1984, dorunrca, dorunrun, docastle, dorunrun, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 2)", 0 )
GAME( 1987, spiero, dorunrun, dorunrun, dorunrun, 0, ROT0, "Universal", "Super Pierrot (Japan)", 0 )
GAME( 1984, dowild, 0, dorunrun, dowild, 0, ROT0, "Universal", "Mr. Do's Wild Ride", 0 )
GAME( 1984, jjack, 0, dorunrun, jjack, 0, ROT270, "Universal", "Jumping Jack", 0 )
GAME( 1984, kickridr, 0, dorunrun, kickridr, 0, ROT0, "Universal", "Kick Rider", 0 )
-----------------------------------------------------------------------------------------------------------------------------
GAME( 1985, idsoccer, 0, idsoccer, idsoccer, 0, ROT0, "Universal", "Indoor Soccer", 0 )
-----------------------------------------------------------------------------------------------------------------------------
Questo e quanto semplice no ???
molto noioso visto che chi usa il romset completo dovrà passarsi manualmente più di 800 file

cmq molto semplice

tutto questo serve per eliminare i "WARNING"
Passiamo ora alla modifica della frequenza di aggiornamento.
Come molti di noi sanno buona parte dei giochi M.A.M.E. lavora con frequenze di aggiornamento di 60hz il problema però e che molti altri
invece lavorano con le frequenze più disparate che possono partire da 30Hz (Green Beret) fino a 85.449219Hz (Spiders)
premetto una cosa cambiare la frequenza per esempio a green beret (30Hz) e portarla a (60Hz) renderà ingiocabile il gioco visto che
funzionerà il doppio più veloce quindi regolatevi subito per evitare di creare casini

se invece vogliamo andare sul sicuro bisogna restare in un range accettabile diciamo dai (54HZ) fino ad un massimo di (61.973315HZ) poi si
passa a (68.933824) e credo sia davvero troppa la differenza cmq siete voi a decidere

- PARTE II Modifica REFRESH GIOCHI
Dobbiamo seguire le stesse procedure che abbiamo effettuato per eliminare i WARNING quindi dobbiamo portarci nella cartella drivers e selezionare
il driver che ci interessa o passarli tutti uno per uno questa volta però non dobbiamo andare in fondo alla pagina ma dobbiamo eseguire una ricerca
con questa parola chiave "MDRV_FRAMES_PER_SECOND" a queasto punto il risultato della ricerca ci troverà una cosa simile
"MDRV_FRAMES_PER_SECOND(60)"
dove il valore fra parentesi specifica la frequenza di aggiornamento del gioco (quindi i frames per secondo) in questo caso non dobbiamo fare
assolutamente niente visto che il framerate è già a 60Hz possiamo quindi continuare la ricerca "SEMPRE NELLO STESSO DRIVER" si perche moti driver
contengono le specifiche frequenze per ogni gioco supportato dallo stesso non è detto che se un gioco che funziona in un driver lavora a 60Hz tutti
i giochi che utilizzano lo stesso funzionino a 60Hz quindi una volta aperto il driver (sempre con notepad) bisogna utilizzare la funzione ricerca fino
a quando non viene trovata più la parola chiave "MDRV_FRAMES_PER_SECOND"
altro esempio con un driver un pelo più incasinato "midwunit.c"
questo driver serve per far funzionare i seguenti giochi
* Mortal Kombat 3
* Ultimate Mortal Kombat 3
* NBA Hangtime
* NBA Maximum Hangtime
* 2 On 2 Open Ice Challenge
* WWF Wrestlemania
* Rampage World Tour
facendo una ricerca su MAWS (http://www.mameworld.net/maws/) possiamo facilmente vedere a che frequenza lavora il gioco per esempio "Mortal Kombat 3"
che lavora a 54.815170Hz quindi quasi 55Hz è abbastanza vicino a 60Hz quindi possiamo modificare la frequenza senza perdere esageratamente in fedeltà
chiaramente un maniaco dell' emulazione perfetta storcerà il naso sentendo dire questa cosa ma come si dice il mondo è bello perchè è vario

tornano a "Mortal Kombat 3" dicevamo che lavora a una frequenza di 54.815170Hz apriamo il driver "midwunit.c" e facciamo la ricerca di
"MDRV_FRAMES_PER_SECOND" e dovremmo trovare questo
"MDRV_FRAMES_PER_SECOND(MKLA5_FPS)" questo driver richiama la frequenza "MKLA5_FPS" che sinceramente non sò cosa significhi resta il fatto che
richiama una frequenza di 54.815170Hz o la più simile in poche parole il gioco funziona a 54HZ ma non andiamo a complicarci la vita quello che ci interessa
è sempre rendere migliori i nostri giochi no ???
come sempre dobbiamo modificare il valore tra le parentesi () ecco l' esempio pratico
- Originale
"MDRV_FRAMES_PER_SECOND(MKLA5_FPS)"
- Modificato
"MDRV_FRAMES_PER_SECOND(60)"
tutto quì

spero di essere stato chiaro ed esaustivo nella mia guida

un consiglio che posso darvi è questo io ho utilizzato la versione 0.105 del mame che contiene la bellezza di 862 drivers 8o
tutti da ripassare e modificare per le varie modifiche un lavoro davvero considerevole se fatto da una persona sola
tornando al consiglio io sul mio cab non ho il romset completo visto che non mi interessa ma ho solo i giochi che mi interessano
con la versione di mame32 è possibile verificare il driver utilizzato da ogni singolo gioco nel mio caso 358 roms del mame equivalgono
a 195 driver

i driver a seconda degli interessati l' unica cosa in questo caso la versione del mame da modificare deve essere la stessa
io i miei 195 li posso mettere a disposizione sempre che a qualcuno interessi la 0.105
a questo punto non ci resta che ricompilare tutto il nostro lavoro e per questo vi rimando alla pagina
http://web.tiscali.it/velmadda/compwin.htm (per la ricompilazione della versione a riga di comando)
http://web.tiscali.it/velmadda/comp32.htm (per la ricompilazione della versione con GUI)
e con questo termino la mia guida
un saluto dal vostro bllpla

ciaooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo