El HLSL del MAME es lo mejor y mas real si tienes una buena configuracion.
En vivo aun se ve mejor.
Por si alguien lo quiere probar, dejo una configuracion de John IV de mameworld.
#
# DIRECT3D POST-PROCESSING OPTIONS
#
hlsl_enable 0
hlslpath hlsl
hlsl_ini_read 0
hlsl_ini_write 0
hlslini foo
hlsl_prescale_x 0
hlsl_prescale_y 0
hlsl_preset -1
hlsl_write
hlsl_snap_width 2048
hlsl_snap_height 1536
shadow_mask_alpha 0.05
shadow_mask_texture aperture.png
shadow_mask_x_count 320
shadow_mask_y_count 240
shadow_mask_usize 0.093750
shadow_mask_vsize 0.109375
curvature 0.000000
pincushion 0.030000
scanline_alpha 0.600000
scanline_size 1.000000
scanline_height 1.000000
scanline_bright_scale 1.000000
scanline_bright_offset 0.600000
scanline_jitter 0.000000
defocus 1.500000,1.500000
converge_x -0.400000,0.000000,0.000000
converge_y -0.700000,0.000000,0.000000
radial_converge_x 0.000000,0.000000,0.000000
radial_converge_y 0.000000,0.000000,0.000000
red_ratio 1.000000,0.000000,0.000000
grn_ratio 0.000000,1.000000,0.000000
blu_ratio 0.000000,0.000000,1.000000
saturation 1.050000
offset 0.000000,0.000000,0.000000
scale 1.020000,1.020000,1.020000
power 1.300000,1.300000,1.300000
floor 0.020000,0.020000,0.020000
phosphor_life 0.100000,0.100000,0.100000
yiq_enable 0
yiq_cc 3.597545
yiq_a 0.500000
yiq_b 0.500000
yiq_o 0.000000
yiq_p 1.000000
yiq_n 1.000000
yiq_y 6.000000
yiq_i 1.200000
yiq_q 0.600000
yiq_scan_time 52.599998
yiq_phase_count 2
Teneis que ir a la carpeta ini, una vez dentro vamos al archivo mame y dentro buscamos DIRECT3D POST-PROCESSING OPTIONS, quitamos lo que habia y pegamos esta nueva. Luego, dentro del MAME, en opciones avanzadas, se habilita el HLSL.