Gli effetti HLSL (acronimo di HIGH LEVEL SHADING LANGUAGE) è una opzione grafica attivabile con le versioni di mame 142u4 o superiori.
Questi effetti non fanno altro che riprodurre sui moderni LCD un effetto visivo simile ai vecchi monitor arcade.
Simulano l'effetto cuscino, le scanlines, gli errori di focus e altro.
REQUISITI
- DirectX 9.0
- KIT SDK superiore all'8.0
- Scheda grafica shader model 3.0
- Mame 0.142u4 o superiore. Le versioni più stabili sono dalla 0.144 in su.
COME ATTIVARLI
Aprite il mame.ini e cambiate la seguente voce "hlsl_enable 0" in "hlsl_enable 1".
Le successive righe sono tutti i vari effetti che si potranno variare.
Un'alternativa è cambiare i parametri mentre il gioco è avviato. Basterà premere il
tasto TAB e accedere alla voce "sliders" e modificare così gli effetti in tempo reale.
- SI POSTANO LO SCREENSHOT E IL PRESET, CON UNA BREVE DESCRIZIONE
PROSSIMAMENTE APRIRÒ UN THREAD DOVE SARANNO PRESENTI SOLO I VOSTRI PRESET PULITI DA COMMENTI
QUESTA E' UNA BREVE DESCRIZIONE DEI PARAMETRI HLSL E IN SEGUITO UN ESEMPIO DI COME POSTARLI
ELENCO DEI PRESET HLSL E RELATIVA DESCRIZIONE
-------------------------------------------------------------------
PARAMETRI BASE :
hlsl_enable (0/1)
Abilita i filtri HLSL nella modalità Direct3d 9 (Fondamentale settare il valore a 1 o non funzionerà nulla!!)
yiq_enable (0/1)
Attiva lo spazio colore YIQ (può causare una certa riduzione delle prestazioni ma crea un autentico effetto simile a quello delle TV NTSC se configurato correttamente.
hlslpath [path]
Specifica il percorso dei file .fx necessari per l'HLSL (di default è \hlsl)
-------------------------------------------------------------------
PARAMETRI COLORE :
red_from_r, red_from_g, red_from_b (da -2.0 a 2.0)
green_from_r, green_from_g, green_from_b (da -2.0 a 2.0)
blue_from_r, blue_from_g, blue_from_b (da -2.0 a 2.0)
definiscono una matrice 3x3 che viene poi moltiplicata dal segnale RGB in arrivo. Può essere usata per ogni matrice di convoluzione, compresi H/S/V o semplicemente per la sola tinta "stile TV"
red_scale, green_scale, blue_scale (da -2.0 a 2.0)
definiscono un valore per ogni canale colore che viene moltiplicato con gli stessi canali dopo la convoluzione della matrice.
red_offset, green_offset, blue_offset (da -1.0 a 1.0)
definiscono un valore per ogni canale colore che è aggiunto ai canali stessi dopo lo scaling e dopo la convoluzione della matrice.
saturation (da 0.0 a 4.0)
definisce di quanto ogni canale colore è innalzato al di sopra del valore base della scala di grigi. Un valore pari a 0.0 fornisce un valore della gamma di grigi corretto, mentre con 1.0 otteniamo una saturazione totale con ogni canale supersaturato in modo uguale.
red_power, green_power, blue_power (da -4.0 a 4.0)
definiscono l'esponente per ogni canale colore applicato dopo lo scaling, l'offsetting, la saturazione e la convoluzione della matrice.
red_floor, green_floor, blue_floor (da 0.0 a 1.0)
definisce il limite inferiore di ogni valore di ogni canale colore; per esempio un valore di 0.05 aumenta il minimo a 0.05 ma ri-scala per lasciare il massimo a 1.0
-------------------------------------------------------------------
PARAMETRI DI CONVERGENZA :
red_converge_y, green_converge_y, blue_converge_y (da -150 a 150) (convergenza verticale)
red_converge_x, green_converge_x, blue_converge_x (da -150 a 150) (convergenza orizzontale)
definiscono la convergenza totale, misurando lo spazio in pixel, per ogni canale su entrambi gli assi (x e y ossia orizzontale e verticale)
red_radial_converge_y, green_radial_converge_y, blue_radial_converge_y (da -150 a 150) (convergenza radiale verticale)
red_radial_converge_x, green_radial_converge_x, blue_radial_converge_x (da -150 a 150) (convergenza radiale orizzontale)
definiscono la convergenza radiale, ossia relativa al centro dello schermo (quella dei parametri precedenti è invece assoluta)
defocus_x, defocus_y (da 0.0 a 32.0)
definiscono il defocus radiale totale per tutti e tre i raggi post-convertiti
-------------------------------------------------------------------
PARAMETRI DI SUPERFICIE FRONTALE :
red_phosphor_life, green_phosphor_life, blue_phosphor_life (da 0.0 a 1.0)
definiscono il tempo di vita (accensione) dei fosfori di ogni canale, con lo 0.0 che indica nessuna fosforescenza e l' 1.0 che li lascia accesi indefinitamente
scanline_alpha (da 0.0 a 1.0)
definisce l'oscurità complessiva del "solco" di ogni scanline
scanline_size (da 0.0 a 4.0)
definisce l'altezza complessiva di ogni scanline
scanline_bright_scale (da 0.0 a 2.0)
definisce il moltiplicatore totale di luminosità per ogni scanline
scanline_bright_offset (da 0.0 a 1.0)
definisce l'incremento del valore di luminosità per ogni scanline
scanline_jitter (da 0.0 a 2.0)
definisce il movimento relativo della scanline per ogni riga (field)
shadow_mask_alpha (da 0.0 a 1.0)
definisce l'oscurità totale di ogni maschera ombra (shadow mask) di ogni pixel
shadow_mask_texture [nomefile]
un file di tipo PNG che definische la shadow mask per ogni pixel. (solitamente sono gli stessi file usati pe i classici "effects" e si trovano nella cartella \artwork)
shadow_mask_x_count 1+
definisce il conteggio degli elementi della shadows mask sull'asse X (solitamente da 640)
shadow_mask_y_count 1+
definisce il conteggio degli elementi della shadows mask sull'asse Y (solitamente da 480)
shadow_mask_usize, shadow_mask_vsize (da 0.0 a 1.0)
definiscono il conteggio dei pixel "in uso" sugli assi X e Y della texture della shadow mask
curvature (da 0.0 a 1.0)
definisce la curvatura dello schermo; ha effetto sui bordi e sulla shadow mask
pincushion (da 0.0 a 1.0)
definisce la curvatura dell'immagine; ha effetto solo sull'immagine sorgente
oversample_x, oversample_y (da 1.0 to 4.0)
definiscono un moltiplicatore per ogni asse dell'obiettivo dell'internal render; richiede una GPU potente
-------------------------------------------------------------------
PARAMETRI DI TRASFORMAZIONE NTSC:
yiq_w 4.1187867 W parameter for: C(t) = Y(t) + I(t)sin(Wt) + Q(t)cos(Wt)
yiq_a 0.0 A parameter for: t = x + ay + b;
yiq_b 0.5 B parameter for: t = x + ay + b;
yiq_fsc 1.5 Relative color subcarrier frequency
yiq_fsc_scale 1.0 Color subcarrier frequency scale
yiq_phase_count 2 Numero di frame per la trasformazione NTSC (3 per il NES, altrimenti 2)
ESEMPIO -SCREENSHOT E CODICE-
"ARCADE IDEAL" DA JUST DESSERTS
Codice: Seleziona tutto
hlsl_enable 1
hlslpath hlsl
shadow_mask_alpha 0.1
shadow_mask_texture aperture.png
shadow_mask_x_count 512
shadow_mask_y_count 384
shadow_mask_usize 0.125
shadow_mask_vsize 0.125
oversample_x 1.0
oversample_y 1.0
curvature 0.05
screen_scale_top 1.0
screen_scale_bottom 1.0
pincushion 0.05
scanline_alpha 0.5
scanline_size 1.0
scanline_bright_scale 1.0
scanline_bright_offset 0.7
scanline_jitter 0.0
defocus_x 0.0
defocus_y 0.0
red_converge_x 0.0
red_converge_y 0.0
green_converge_x 0.0
green_converge_y 0.0
blue_converge_x 0.0
blue_converge_y 0.0
red_radial_converge_x 0.0
red_radial_converge_y 0.0
green_radial_converge_x 0.0
green_radial_converge_y 0.0
blue_radial_converge_x 0.0
blue_radial_converge_y 0.0
red_from_r 1.0
red_from_g 0.0
red_from_b 0.0
green_from_r 0.0
green_from_g 1.0
green_from_b 0.0
blue_from_r 0.0
blue_from_g 0.0
blue_from_b 1.0
saturation 1.5
red_offset 0.0
green_offset 0.0
blue_offset 0.0
red_scale 1.1
green_scale 1.1
blue_scale 1.1
red_power 2.2
green_power 2.2
blue_power 2.2
red_floor 0.05
green_floor 0.05
blue_floor 0.05
red_phosphor_life 0.45
green_phosphor_life 0.45
blue_phosphor_life 0.45
yiq_enable 0
yiq_w 4.1887902047863909846168578443727
yiq_a 0.5
yiq_b 0.5
yiq_fsc 1.5
yiq_fsc_scale 0.5
yiq_phase_count 2