MAME .159 supports CRT simulation via Direct3D and HLSL.
Last year, Timothy Lottes created a great CRT simulation shader, and it was ported to GLSL for SDLMAME by SoltanGris42. The problem is that SDLMAME is a pile of turd, because it has horrible audio latency and doesn't support the Raw Input API in Windows, so it had more input lag than Windows MAME.
Couriersud, one of the brilliant MAME developers, has been aligning the different video APIs that MAME uses as part of a larger effort to eventually GPU accelerate 3D games in MAME crossplatform.
Due to his work, you can now run the Timothy Lottes Shader in Windows MAME and still get the low latency Raw Input API and low audio latency of Windows MAME while getting the superior CRT shader. It really is the best of both worlds.
This is the new de facto setup for high quality MAME builds using LCDs.
WOW Couriersud is awesome.
Here's a build of the latest MAME source with the Timothy Lottes shader included and the ini already configured; all you have to do is change the ROM path to match yours, and you're done.
https://www.dropbox.com/s/g75np6v6ad9s5jy/mamesvn.zipHere's a breakdown of the options you want in MAME's INI and why they're important:
sleep 0 -- If you enable sleep in MAME, you will get microstuttering. It is simply not reliable if you want perfect video.
audio_latency 1 -- This is the lowest latency audio setting in Windows MAME currently. The default, 2, sucks.
video opengl -- You need to use OpenGL to run the GLSL shader; this is a new option made available by Couriersud.
gl_forcepow2texture 1
gl_notexturerect 1
gl_vbo 1
gl_pbo 1
gl_glsl 1
gl_glsl_filter 0 -- If you enable filtering, you get a soft, ---smurfy--- picture.
glsl_shader_mame0 shader\Lottes_CRT -- This is where you tell it which shader to run (this is included in the archive).
I didn't change it in the INI because everyone's monitor is different, the chances are that you'll want to adjust the gamma setting to around 0.75 or so. It'll probably be too bright otherwise.
One more tip: Nvidia's OpenGL driver is buggy and has microstuttering unless you go into the Nvidia 3d settings and disable "Threaded Optimization" for this program (not that anyone other than me probably even notices).
So there you go: this is the best MAME has ever been on an LCD. You're welcome.™