21/12/2016
Il file mame.ini è un file di testo che usualmente si trova nella cartella dove risiede l'eseguibile del mame.exe.
Normalmente deve essere creato e permette di configurare alcuni parameti essenziali del mame.
Il file mame.ini deve diventare il vostro alleato e conoscere il suo "funzionamento" può permettervi di avere un controllo ancora maggiore sul mame e di risolvervi diversi grattacapo, soprattutto su pc vecchiotti.
Attualmente il mio cabinato (che spero di utilizzare a breve per le mie video recensioni di giochi sul mame) è composto da un pc con processore.....AMD Duron 600 mhz..... circa 300 mb di ram ed una scheda grafica, udite udite.... ATI Radeon 7000 da 32 mb ram e gira che è una cannonata. Ovviamente non pretendo di emulare la PS2 o Carnevil su Mame, ma per la grandissima maggioranza di giochi, compresi quelli del Neo Geo, il mio sistema, grazie ad un settaggio corretto del mame.ini, una versione del mame senza fronzoli e giusta per il sistema dell'epoca, ed al fatto che uso il tutto a 15 khz, rende possibile questo miracolo pur disponendo di un pc che fa letteralmente cagare.
Come vedete, per divertirsi, non serve spendere una barca di soldi con un super pc......anzi, ricicliamo!
Il Mame utilizza principalmente la CPU per emulare. Mi sembra normale che 600 mhz siano più che sufficienti per emulare 2 cpu MC 68000 a 12mhz e uno Zilog Z80 a 4mhz (e sto parlando del Neo Geo).
Ovviamente la mia situazione è piuttosto "borderline", diciamo estrema. Ma vi ho raccontato questo per farvi capire che non serve un pc workstation con schedona video per giocare ai vecchi giochi di un tempo.
Ma veniamo al benedetto e oscuro mame.ini e cerchiamo di analizzarlo.
Ho preso come riferimento quello della 0.180b con l'aggiunta in rosso dei commenti per cercare di spiegare ogni singola voce...
Normalmente deve essere creato e permette di configurare alcuni parameti essenziali del mame.
Il file mame.ini deve diventare il vostro alleato e conoscere il suo "funzionamento" può permettervi di avere un controllo ancora maggiore sul mame e di risolvervi diversi grattacapo, soprattutto su pc vecchiotti.
Attualmente il mio cabinato (che spero di utilizzare a breve per le mie video recensioni di giochi sul mame) è composto da un pc con processore.....AMD Duron 600 mhz..... circa 300 mb di ram ed una scheda grafica, udite udite.... ATI Radeon 7000 da 32 mb ram e gira che è una cannonata. Ovviamente non pretendo di emulare la PS2 o Carnevil su Mame, ma per la grandissima maggioranza di giochi, compresi quelli del Neo Geo, il mio sistema, grazie ad un settaggio corretto del mame.ini, una versione del mame senza fronzoli e giusta per il sistema dell'epoca, ed al fatto che uso il tutto a 15 khz, rende possibile questo miracolo pur disponendo di un pc che fa letteralmente cagare.
Come vedete, per divertirsi, non serve spendere una barca di soldi con un super pc......anzi, ricicliamo!
Il Mame utilizza principalmente la CPU per emulare. Mi sembra normale che 600 mhz siano più che sufficienti per emulare 2 cpu MC 68000 a 12mhz e uno Zilog Z80 a 4mhz (e sto parlando del Neo Geo).
Ovviamente la mia situazione è piuttosto "borderline", diciamo estrema. Ma vi ho raccontato questo per farvi capire che non serve un pc workstation con schedona video per giocare ai vecchi giochi di un tempo.
Ma veniamo al benedetto e oscuro mame.ini e cerchiamo di analizzarlo.
Ho preso come riferimento quello della 0.180b con l'aggiunta in rosso dei commenti per cercare di spiegare ogni singola voce...
mame.ini (versione 0.180b)
valore 0= disattivato valore 1= attivato
(OSD = Operating System Dependent- livello di mame che contine codice per specifiche piattaforme)
valore 0= disattivato valore 1= attivato
(OSD = Operating System Dependent- livello di mame che contine codice per specifiche piattaforme)
# (gli hashtag (#) riguardano il commento/descrizione delle funzioni sottoelencate)
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS (qui bisogna inserire i percorsi di ricerca delle directory)
#
homepath .
rompath roms (percorso cartella delle rom del mame)
hashpath hash
samplepath samples
artpath artwork
ctrlrpath ctrlr
inipath .;ini;ini/presets
fontpath .
cheatpath cheat (percorso cartella dei cheat/trucchi dei giochi, es. vite infinite etc.)
crosshairpath crosshair (percorso cartella dei "mirini" dei giochi con la pistola)
pluginspath plugins (percorso cartella dei plugin)
languagepath language (percorso cartella lingue)
swpath software
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory cfg
nvram_directory nvram
input_directory inp
state_directory sta
snapshot_directory snap
diff_directory diff
comment_directory comments
#
# CORE STATE/PLAYBACK OPTIONS
#
state
autosave 0
playback
record
record_timecode 0
exit_after_playback 0
mngwrite
aviwrite
wavwrite
snapname %g/%i
snapsize auto
snapview internal
snapbilinear 1
statename %g
burnin 0
#
# CORE PERFORMANCE OPTIONS (settaggi delle performance relative alla velocità di refresh dei giochi)
#
autoframeskip 0 (automaticamente vengono saltati dei frames quando il gioco rallenta)
frameskip 0 (fotogrammi che vengono "saltati" per aumentare la velocità di esecuzione, pena la scattosità - da zero a 11)
seconds_to_run 0 (indica il tempo di esecuzione di una rom del mame in secondi, in caso di testing)
throttle 1 (velocità di esecuzione della rom in real time. Se disattivato la rom viene eseguita a velocità "sballata")
sleep 1 (la cpu ottimizza il proprio carico di lavoro da mame verso gli altri task di window quando non è occupata)
speed 1.0 (velocità di esecuzione in real time della rom da parte della cpu)
refreshspeed 0 (regola automaticamente la velocità di gioco in relazione al refresh dello schermo)
#
# CORE RENDER OPTIONS
#
keepaspect 1 (mantieni l'aspect ratio originale del gioco)
unevenstretch 1
unevenstretchx 0
unevenstretchy 0
autostretchxy 0
intoverscan 0
intscalex 0
intscaley 0
#
# CORE ROTATION OPTIONS (rotazione dello schermo - le rotazioni avvngono sempre di 90°)
#
rotate 1 (rotazione attiva)
ror 0 (ruota lo schermo a destra)
rol 0 (ruota lo schermo a sinistra)
autoror 0 (rotazione automatica dello schermo a destra)
autorol 0 (rotazione automatica dello schermo a sinistra)
flipx 0 (capovolgi lo schermo sull'asse X - destra/sinistra)
flipy 0 (capovolgi lo schermo sull'asse Y - sopra/sotto)
#
# CORE ARTWORK OPTIONS (opzioni degli artwork che si sovrappongono alla schermata del gioco, per simulare l'estetica del cabinato)
#
artwork_crop 0 (taglio/adattamento dell'artwork)
use_backdrops 1 (usa backdrops - una maschera grafica che si trova prima dello schermo del cabinato e che fa da cornice al gioco)
use_overlays 1 (usa overlay per colorare i vecchi giochi in bianco e nero - simula il gel che si usava per i monitor b/n)
use_bezels 1 (usa bezel per simulare graficamente, ad esempio, una vista reale e frontale del cabinato in una stanza)
use_cpanels 1 ( usa cpanel, la grafica che copre la plancia dei joystick e pulsanti del cabinato)
use_marquees 1 (usa marquees, la grafica/titolo del gioco della parte superiore del cabinato, di solito su un plexiglas retroilluminato)
#
# CORE SCREEN OPTIONS (opzioni dello schermo)
#
brightness 1.0 (luminosità)
contrast 1.0 (contrasto)
gamma 1.0 (gamma)
pause_brightness 0.65 (luminosità dello schermo in pausa tramite pressione del tasto P)
effect none (possibilità di indicare il file dell'effetto PNG della cartella Artwork - es. nome.png)
#
# CORE VECTOR OPTIONS
#
beam_width_min 1.0
beam_width_max 1.0
beam_intensity_weight 0
flicker 0
#
# CORE SOUND OPTIONS (opzioni audio)
#
samplerate 48000 (setta gli Hz di uscita dell'audio)
samples 1 (abilita file audio aggiuntivi per rom non perfettamente emulate dal punto di vista sonoro)
volume 0 (attenuazione volume in decibel)
#
# CORE INPUT OPTIONS (opzioni input periferiche)
#
coin_lockout 1
ctrlr (qui si può inserire il nome di un controller specifico per abilitarlo (es. hotrod, slikstick...) che si trovano nella cartella ctrlr del mame)
mouse 0 (disabilita l'utilizzo del mouse)
joystick 1 (abilita l'utilizzo del joystick/joypad)
lightgun 0 (disabilita l'utilizzo di una pistola)
multikeyboard 0 (utilizzo di più tastiere contemporaneamente)
multimouse 0 (utilizzo di più mouse contemporaneamente, ottimo per giochi con più pistole)
steadykey 0
ui_active 0
offscreen_reload 0 (disabilita il "ricaricamento" dei proiettili della pistola sparando fuori dallo schermo)
joystick_map auto
joystick_deadzone 0.3
joystick_saturation 0.85
natural 0
joystick_contradictory 0
coin_impulse 0
#
# CORE INPUT AUTOMATIC ENABLE OPTIONS (abilita automaticamente periferiche di gioco - scelta possibile keyboard/mouse/joystick)
#
paddle_device keyboard (abilita tastiera per usare il paddle)
adstick_device keyboard (abilita tastiera per usare joystick analogico)
pedal_device keyboard (abilita tastiera per usare pedale)
dial_device keyboard (abilita tastiera per usare dial/spinner)
trackball_device keyboard (abilita tastiera per usare una trackball)
lightgun_device keyboard (abilita tastiera per usare pistola/lightgun)
positional_device keyboard (abilita tastiera come positionl device di default (spinner/lightgun etc.) - per abilitare il mouse farlo anche in core input
mouse_device mouse (abilita mouse per usare il mouse)
#
# CORE DEBUGGING OPTIONS (opzioni di debug)
#
verbose 0
log 0
oslog 0
debug 0
update_in_pause 0
debugscript
#
# CORE COMM OPTIONS
#
comm_localhost 0.0.0.0
comm_localport 15112
comm_remotehost 127.0.0.1
comm_remoteport 15112
#
# CORE MISC OPTIONS (opzioni varie)
#
drc 1
drc_use_c 0
drc_log_uml 0
drc_log_native 0
bios
cheat 0 (abilita/disabilita i cheat/trucchi)
skip_gameinfo 0 (salta/mostra la schermata iniziale di info della rom)
uifont default
ui cabinet
ramsize
confirm_quit 0
ui_mouse 1
autoboot_command
autoboot_delay 0
autoboot_script
console 0
plugins 1
plugin
noplugin
language English (scelta della lingua)
# (OSD = Operating System Dependent- livello di mame che contine codice per specifiche piattaforme)
# OSD KEYBOARD MAPPING OPTIONS (opzioni input periferiche OSD Operating System Dependent- livello di mame che contine codice per specifiche piattaforme)
#
uimodekey SCRLOCK
#
# OSD FONT OPTIONS
#
uifontprovider auto
#
# OSD OUTPUT OPTIONS
#
output auto
#
# OSD INPUT OPTIONS (opzioni input periferiche OSD)
#
keyboardprovider auto (provider input per tastiera - rawinput, dinput, win32) windows
mouseprovider auto (provider input per mouse - rawinput, dinput, win32) windows
lightgunprovider auto (provider input per pistola - win32) windows
joystickprovider auto (provider input per joystick - winhybrid, dinput, xinput) windows
#
# OSD DEBUGGING OPTIONS (opzioni di debugging OSD)
#
debugger auto
debugger_font auto
debugger_font_size 0
watchdog 0
#
# OSD PERFORMANCE OPTIONS (opzioni di performance OSD)
#
numprocessors auto
bench 0
#
# OSD VIDEO OPTIONS (opzioni video OSD)
#
video auto
numscreens 1
window 0
maximize 1
waitvsync 0
syncrefresh 0
monitorprovider auto
#
# OSD PER-WINDOW VIDEO OPTIONS (opzioni video multischermo OSD)
#
screen auto (numero schermo)
aspect auto (aspect ratio dello schermo)
resolution auto (risoluzione dello schermo)
view auto
screen0 auto
aspect0 auto
resolution0 auto
view0 auto
screen1 auto
aspect1 auto
resolution1 auto
view1 auto
screen2 auto
aspect2 auto
resolution2 auto
view2 auto
screen3 auto
aspect3 auto
resolution3 auto
view3 auto
#
# OSD FULL SCREEN OPTIONS (opzioni fullscreen OSD)
#
switchres 0 (cambio automatico della risoluzione dello schermo a seconda della risoluzione della rom)
#
# OSD ACCELERATED VIDEO OPTIONS (opzioni accelerazione video OSD)
#
filter 1 (abilita bilinear filter)
prescale 1
#
# OpenGL-SPECIFIC OPTIONS (opzioni OpenGL e realitivi shader per effetti video - richiesta scheda video con almeno OpenGL 3.0)
#
gl_forcepow2texture 0
gl_notexturerect 0
gl_vbo 1
gl_pbo 1
gl_glsl 0 (disabilita glsl shader)
gl_glsl_filter 1
glsl_shader_mame0 none (inserire, al posto di none, il path dello shader da utilizzare)
glsl_shader_mame1 none
glsl_shader_mame2 none
glsl_shader_mame3 none
glsl_shader_mame4 none
glsl_shader_mame5 none
glsl_shader_mame6 none
glsl_shader_mame7 none
glsl_shader_mame8 none
glsl_shader_mame9 none
glsl_shader_screen0 none
glsl_shader_screen1 none
glsl_shader_screen2 none
glsl_shader_screen3 none
glsl_shader_screen4 none
glsl_shader_screen5 none
glsl_shader_screen6 none
glsl_shader_screen7 none
glsl_shader_screen8 none
glsl_shader_screen9 none
#
# OSD SOUND OPTIONS (opzioni audio OSD)
#
sound auto
audio_latency 2
#
# BGFX POST-PROCESSING OPTIONS
#
bgfx_path bgfx
bgfx_backend auto
bgfx_debug 0
bgfx_screen_chains default
bgfx_shadow_mask slot-mask.png
bgfx_avi_name auto
#
# WINDOWS PERFORMANCE OPTIONS
#
priority 0
profile 0
#
# WINDOWS VIDEO OPTIONS (opzioni video)
#
menu 0 (abilità il menu delle opzioni video)
#
# DIRECT3D POST-PROCESSING OPTIONS (opzioni Direct 3D di post processing)
#
hlslpath hlsl (percorso della cartella dei filtri hlsl)
hlsl_enable 0 (abilita/disabilita filtri hlsl)
hlsl_oversampling 0
hlsl_write auto
hlsl_snap_width 2048 (dimensioni orizzontali in pixel della snapshot)
hlsl_snap_height 1536 (dimensioni verticali in pixel della snapshot)
shadow_mask_tile_mode 0
shadow_mask_alpha 0.0
shadow_mask_texture shadow-mask.png
shadow_mask_x_count 6
shadow_mask_y_count 4
shadow_mask_usize 0.1875
shadow_mask_vsize 0.25
shadow_mask_uoffset 0.0
shadow_mask_voffset 0.0
distortion 0.0 (distorsione)
cubic_distortion 0.0 (distorsione cubica)
distort_corner 0.0 (distorsione degli angoli dello schermo)
round_corner 0.0 (curvatura degli angoli dello schermo)
smooth_border 0.0 (sfumatura dei bordi)
reflection 0.0 (crea un riflesso tipo il riflesso di una luce di una stanza sul vetro del cabinato)
vignetting 0.0 (vignettatura, crea un alone scuro ovale partendo dagli angoli dello schermo che si schiarisce verso il centro)
scanline_alpha 0.0
scanline_size 1.0
scanline_height 1.0
scanline_variation 1.0 (variazione dello scanline)
scanline_bright_scale 1.0
scanline_bright_offset 0.0
scanline_jitter 0.0 (simula il tremolio dello scanline)
hum_bar_alpha 0.0
defocus 0.0,0.0 (sfocatura sugli assi X e Y)
converge_x 0.0,0.0,0.0 (convergenza asse X)
converge_y 0.0,0.0,0.0 (convergenza asse Y)
radial_converge_x 0.0,0.0,0.0
radial_converge_y 0.0,0.0,0.0
red_ratio 1.0,0.0,0.0
grn_ratio 0.0,1.0,0.0
blu_ratio 0.0,0.0,1.0
saturation 1.0 (saturazione)
offset 0.0,0.0,0.0
scale 1.0,1.0,1.0
power 1.0,1.0,1.0
floor 0.0,0.0,0.0
phosphor_life 0.0,0.0,0.0 (simula la "vita" dei fosfori del crt arcade , valori R,G,B)
#
# NTSC POST-PROCESSING OPTIONS
#
yiq_enable 0
yiq_jitter 0.0
yiq_cc 3.57954545
yiq_a 0.5
yiq_b 0.5
yiq_o 0.0
yiq_p 1.0
yiq_n 1.0
yiq_y 6.0
yiq_i 1.2
yiq_q 0.6
yiq_scan_time 52.6
yiq_phase_count 2
#
# VECTOR POST-PROCESSING OPTIONS
#
vector_beam_smooth 0.0
vector_length_scale 0.5
vector_length_ratio 0.5
#
# BLOOM POST-PROCESSING OPTIONS (bloom, il bagliore di luce dei luminofori dei monitor crt arcade usati - la scheda video si "sforza" di più)
#
bloom_blend_mode 0
bloom_scale 0.0
bloom_overdrive 1.0,1.0,1.0
bloom_lvl0_weight 1.0
bloom_lvl1_weight 0.64
bloom_lvl2_weight 0.32
bloom_lvl3_weight 0.16
bloom_lvl4_weight 0.08
bloom_lvl5_weight 0.06
bloom_lvl6_weight 0.04
bloom_lvl7_weight 0.02
bloom_lvl8_weight 0.01
#
# FULL SCREEN OPTIONS (opzioni visualizzazione a schermo intero - full screen)
#
triplebuffer 0 (abilità il triplo buffer, che serve a velocizzare il "ridisegno" delle schermate, utile per evitare l'effetto tearing)
full_screen_brightness 1.0 (luminosità full screen)
full_screen_contrast 1.0 (contrasto full screen)
full_screen_gamma 1.0 (gamma full screen)
#
# INPUT DEVICE OPTIONS (periferiche di input)
#
global_inputs 0 (imput globali)
dual_lightgun 0 (doppia pistola)