Pagina 1 di 1

Effetti GLSL in SDLMAME (Linux e Mac)

Inviato: 05/04/2012, 15:54
da eldiau
Usando Mame sul pc con schermo LCD la resa grafica dei giochi e' molto diversa dal feeling originale di un CRT, su windows Mame usa il linguaggio di DirectX hlsl per simulare i difetti di uno schermo a tubo.

visto che da bravo linuxaro uso mame compilato con SDL quindi senza Directx e quindi senza effetti hlsl volevo segnalare che anche con lo shader language fratello in OpenGL che si chiama glsl di ottengono ottimi risultati, potete trovare uno script che simula molto bene un crt qui:

http://www.sendspace.com/file/gctlod

Lo ha fatto cgwg, questo e' il thread di riferimento:

http://forums.bannister.org/ubbthreads. ... 39&page=12

Ovviamente serve una scheda grafica accelerata 3D e discretamente moderna

- Perche' funzioni bene serve mame 0.145
- Io ho creato una cartella in ~/.mame/CRT dentro alla quale ho scompattato CRT-geom-20120130.zip
- poi ho scaricato i sorgenti di mame da http://mamedev.org e ho cpiato la cartella mame/src/osd/sdl/shader sempre in ~/.mame/CRT/
- a questo punto basta lanciare mame con la linea di comando:

Codice: Seleziona tutto

mame -gl_glsl -glsl_shader_mame0 ~/.mame/CRT/shader/glsl_plain -glsl_shader_mame1 ~/.mame/CRT/CRT-geom nomegioco
in alternativa basta inserire in mame.ini queste righe:

Codice: Seleziona tutto

gl_glsl                   1
glsl_shader_mame0         /home/nomeuser/.mame/CRT/shader/glsl_plain
glsl_shader_mame1         /home/nomeuser/.mame/CRT/CRT-geom
Per qualche arcano motivo mame non sostituisce ~ o $HOME nel file mame.ini quindi dovete sostituire /home/nomeuser/ con il path della vostra home directory

Per personalizzare l'effetto ci sono una serie di variabili in CRT-geom.vsh, io ho ridotto l'overscan perche' secondo me tagliava troppa grafica:

Codice: Seleziona tutto

overscan = vec2(1.00,1.00);
poi ho ridotto la curvatura (aumentandone il raggio)

Codice: Seleziona tutto

R = 3.0;
e infine ho tolto il tilt (va bene in vecchio crt ma non esageriamo!):

Codice: Seleziona tutto

const vec2 angle = vec2(0.0,0.0);
Ecco un esempio da wonder boy "normale":
wboy.png
e con gli effetti GLSL attivi:
wboy_glsl.png
P.S.
HLSL e GLSL sono moooolto simili e gil sviluppatori stanno discutendo di unificare gli effetti in maniera da avere consistenza fra Windows/Linux/Mac speriamo!

Re: Effetti GLSL in SDLMAME (Linux e Mac)

Inviato: 05/04/2012, 20:15
da bisus
Eldiau ma non c'e ' niente di simile per Windows ?

Re: Effetti GLSL in SDLMAME (Linux e Mac)

Inviato: 05/04/2012, 20:34
da eldiau
Certo! Dalla versione .142 c'e' HLSL, josef 1975 ha scritto un ottima guida su mameitalia http://www.mameitalia.net/index.php?showtopic=14189