Come configurare attractmode
Abbiamo principalmente 2 file da configurare, quello globale attract.cfg situato nella directory insieme all'eseguibile del frontend e quello relativo agli emulatori, in questo caso mame.cfg che troviamo nella sottocartella emulators.
In questo esempio vedremo come configurare oltre al frontend anche il mame.
La forza di questo software sta nall'utilizzo di filtri e regole, il che consente di utilizzare un romset puro avendo però la possibilità di poter visualizzare solo i titoli che noi sceglieremo, con l'aiuto di un file aggiuntivo, il catver.ini scaricabile dal sito che lo ospita da anni progetto-snaps
Al primo avvio del frontend ci verrà chiesto di configurare almeno un emulatore, scegliamo mame e verrà creata una prima impostazione di default.
Da ora in poi lavoreremo sui file di configurazione, ometterò volontariamente la GUI in quanto non la trovo un'opzione rapida ed efficace come l'editor di testo.
Iniziamo dal file mame.cfg il suo contenuto standard è questo
# Generated by Attract-Mode v2.6.0
#
executable mame
args [name]
rompath $HOME/mame/roms/
romext .zip;.7z
system Arcade
info_source listxml
artwork marquee $HOME/mame/marquee
artwork snap $HOME/mame/video;$HOME/mame/snap
ed andrà completato con alcuni percorsi:
# Generated by Attract-Mode v2.6.0
#
executable c:\mame\mame.exe (inseriremo quindi il percorso dell'eseguibile mame, compresa l'estensione)
args [name] (questo non lo tocchiamo, è quello che il frontend metterà dopo l'eseguibile mame per avviare il gioco)
workdir c:\mame (possiamo lasciare questo campo vuoto o inserire la directory nella quale si trova l'eseguibile dell'emulatore)
rompath $HOME/mame/roms/ (quì dobbiamo indicare il percorso della cartella contenente le roms)
romext .zip;.7z (lasciamolo così, indica quali estensioni considerare per la creazione della lista roms)
system Arcade (indica il sistema per lo scraping delle snap etc. per mame va bene così)
info_source listxml (indica da cosa reperire le informazioni, il file xml di mame che verrà creato dal frontend stesso)
import_extras c:\mame\catver.ini (una linea aggiunta ex novo nella quale dobbiamo indicare il percorso di catver.ini per utilizzare le categorie nei filtri)
artwork marquee $HOME/mame/marquee (la cartella dove sono i marquee)
artwork snap $HOME/mame/video;$HOME/mame/snap (la cartella dove sono snap e video)
artwork flyers (possiamo aggiungere a mano altre cartelle per i flyer ad esempio o qualunque altro file utile per il tema che vorremo utilizzare, quindi sempre il percorso alla directory)
Dopo aver completato questa configurazione, apriamo il frontend, andiamo nelle impostazioni dell'emulatore e scegliamo di generare la romlist, verranno lette tutte le roms contenite nella cartella indicata e categorizzate in base al file catver.ini che gli abbiamo fatto caricare, se vogliamo possiamo anche fare lo scraping delle immagini, ci vorrà un pochetto.
La parte relativa all'emulatore è configurata, ora passiamo al pezzo forte, configuriamo il frontend con le liste ed i filtri.
Lavoreremo nel file attract.cfg, in particolare nella prima parte relativa al display del mame (il display non è nient'altro che il menu dell'emulatore mame creato prima)
la parte iniziale si presenta così:
# Generated by Attract-Mode v2.6.0
#
display arcade
layout Attrac-Man
romlist arcade
in_cycle yes
in_menu yes
filter All
filter Favourites
rule Favourite equals 1
sound
.
.
.
ed è proprio quì che andremo ad aggiungere un po' di roba
Si lavorerà per logica, quindi basta capire il meccanismo che tutto risulterà semplicissimo.
Avendo caricato e creato la lista con il catver.ini abbiamo raggruppato per categoria tutte le roms, in più grazie all'xml del mame abbiamo moltissimi parametri con i quali poter creare filtri sempre per raggruppare le roms.
aggiungiamo la voce global filter ed applichiamo delle regole base, avremo quanto segue
# Generated by Attract-Mode v2.6.1
#
display mame
layout Attrac-Man
romlist mame
in_cycle yes
in_menu yes
global_filter
rule FileIsAvailable equals 1 (vedremo il titolo del gioco solo se la rom è nella cartella, se il file è disponibile quindi)
rule CloneOf not_equals .* (i file visualizzati non devono essere contrassegnati come cloni)
rule Status equals good|imperfect (vedremo solo i file con statu del driver good o imperfect, che saranno quindi giocabili)
rule Status not_equals preliminary (escludiamo tutte le roms il cui driver è in stato preliminare, che quindi potrebbe non funzionare)
rule DisplayType equals raster (visualizziamo solo le roms con questo tipo di display)
filter All
filter Favourites
.
.
.
.
il global filter viene eseguito per primo al caricamento del display (la lista insomma), in questo caso abbiamo appilcato le regole che vedete e gli abbiamo dato già una bella scremata.
Possiamo aggiungere un sacco di "regole" per affinare la nostra ricerca e decidere se includerle in una lista per poi accedere dal tasto filtri (che dovremo configurare) o se creare altri display che chiameremo ad esempio Platform orizzontali, nei quali faremo mostrare solo le roms orizzontali con una regola sotto il global filter
rule Rotation equals 0|180
ed una sotto un altro filtro che chiameremo "Platform" ad esempio
filter Platform
rule Category contains Platform
possiamo anche raggruppare per Manufacturer ad esempio, scrivendo
filter "SNK Collection"
rule Manufacturer contains SNK
o ancora crearci una collection degli Street Figlter ordinati per anno
filter "Street Fighter Collection"
sort_by Year
rule Title contains Street Fighter
il sort by come vedrete indica come ordinare i titoli trovati.
Aggiungo una configurazione tipo per un cab verticale, con categorie in inglese (catver.ini in inglese appunto)
global_filter
exception Name equals batsugunsp|cyvernj|driftout|ddpdojblk|dkongjrj|dogosokb|downtownj|ghoxj|gwarb|ikarijpb|omegafs
rule Rotation equals 90|270
rule DisplayType equals raster
rule DisplayCount equals 1
rule Control contains joystick|dial
rule Control not_contains gambling|positional
rule Category not_contains Mature|Casino|MultiGame|Redemption
rule Status not_equals preliminary
rule Title not_contains bootleg|internal build|\(prototype|prototype\)|China|Raiden II New
rule Manufacturer not_contains bootleg|Promat
rule CloneOf not_contains .
rule AltRomname not_equals decocass|cedmag
rule Year not_contains ?
rule Name not_equals batsugun|cyvern|ddp3|ddpdojt|dkongjr|ghox|ikari|gwar|mjleague|metlhawk|alleymas|omegaf
filter "All Games"
filter "Most Played"
sort_by PlayedTime
reverse_order true
list_limit 25
filter "Breakout Games"
rule Category contains Breakout
filter "Driving Games"
rule Category equals Driving.+
filter "Fighting Games"
rule Category equals Fight.+
filter "Maze Games"
rule Category equals Maze.+
filter "Platform Games"
rule Category equals Platform.+
filter "Puzzle Games"
rule Category equals Puzzle.+
filter "Shooting Games"
rule Category equals Shooter.+
filter "Sports Games"
rule Category equals Sport.+
filter "© Alpha Denshi"
rule Manufacturer equals (Alpha.Densh.*)|(.*/.Alpha.Densh.*)
filter "© Bally/Midway"
rule Manufacturer equals (Ball.*)|(Midwa.*)|(.*/.Ball.*)|(.*/.Midwa.*)
filter "© Capcom"
rule Manufacturer equals (Capco.*)|(.*/.Capco.*)
filter "© Cave"
rule Manufacturer equals (Cav.*)|(.*/.Cav.*)
filter "© Data East"
rule Manufacturer equals (Data.Eas.*)|(.*/.Data.Eas.*)
filter "© Irem"
rule Manufacturer equals (Ire.*)|(.*/.Ire.*)
filter "© Jaleco"
rule Manufacturer equals (Jalec.*)|(.*/.Jalec.*)
filter "© Kaneko"
rule Manufacturer equals (Kanek.*)|(.*/.Kanek.*)
filter "© Konami"
rule Manufacturer equals (Konam.*)|(.*/.Konam.*)
filter "© Namco"
rule Manufacturer equals (Namc.*)|(.*/.Namc.*)
filter "© Nintendo"
rule Manufacturer equals (Nintend.*)|(.*/.Nintend.*)
filter "© Psikyo"
rule Manufacturer equals (Psiky.*)|(.*/.Psiky.*)
filter "© Raizing / Eighting"
rule Manufacturer equals (Raizin.*)|(Eightin.*)|(.*/.Raizin.*)|(.*/.Eightin.*)
filter "© Seibu Kaihatsu"
rule Manufacturer equals (Seibu.Kaihats.*)|(.*/.Seibu.Kaihats.*)
filter "© Sega"
rule Manufacturer equals (Seg.*)|(.*/.Seg.*)
filter "© SNK"
rule Manufacturer equals (SN.*)|(.*/.SN.*)
filter "© Taito"
rule Manufacturer equals (Tait.*)|(.*/.Tait.*)
filter "© Technos"
rule Manufacturer equals (Techno.*)|(.*/.Techno.*)
filter "© Tecmo"
rule Manufacturer equals (Tecm.*)|(.*/.Tecm.*)
filter "© Toaplan"
rule Manufacturer equals (Toapla.*)|(.*/.Toapla.*)
filter "© Universal"
rule Manufacturer equals (Universa.*)|(.*/.Universa.*)
filter "© Video System Co."
rule Manufacturer equals (Visc.*)|(Video.System.Co.*)|(.*/.Visc.*)|(.*/.Video.System.C.*)
filter "© Zaccaria"
rule Manufacturer equals (Zaccari.*)|(.*/.Zaccari.*)
filter "Released 1970 - 1979"
rule Year equals 197.
filter "Released 1980"
rule Year equals 1980
filter "Released 1981"
rule Year equals 1981
filter "Released 1982"
rule Year equals 1982
filter "Released 1983"
rule Year equals 1983
filter "Released 1984 - 1985"
rule Year equals 1984|1985
filter "Released 1986 - 1987"
rule Year equals 1986|1987
filter "Released 1988 - 1989"
rule Year equals 1988|1989
filter "Released 1990 - 1994"
rule Year equals 1990|1991|1992|1993|1994
filter "Released 1995 - 1999"
rule Year equals 1995|1996|1997|1998|1999
filter "Released 2000 - 2020"
rule Year equals 20..
Le possibilità sono veramente tante, non resta che provare.
Buona configurazione.