I've searched the forums and have what I believe are the correct settings for the most lag free experience for running on a Hantarex 15K CRT with Groovymame and emudriver on a PC with ATI card:
1. Would a GM expert be able to sanity check these mame.ini settings please? I'm concerned some are only compatible for LCDs and not suitable for CRT
MAME.ini changes required:
#required for low latency D3D9ex and frame latency support.
#This is set to 'auto' in the default mame.ini file found in the groovymame download. change to d3d
video d3d
#let groovymame select the correct resolution
#This is set to 'auto' in the default mame.ini file found in the groovymame download. change to 2560x0
resolution 2560x0
#disable these otherwise groovymame low lag features will be silently disabled
#These are already set to 0 in the default mame.ini file found in the groovymame download.
syncrefresh 0
waitvsync 0
#disable this otherwise groovymame low lag features will be silently disabled
#This parameter does not exist in the default mame.ini file found in the groovymame download. Add it in.
triplebuffer 0
#Is this only required for LCD planed with fixed refresh? Turn off (0) for CRTs?
#This is set 1 in the default mame.ini file found in the groovymame download. Change it to 0?? (Might disable framedelay?)
autosync 0
#improve input lag with Frame Delay. According to
https://postimg.cc/z35RCrQT Frame delay of 2 is 15.67 ms of lag (less then 1 frame).
#May not be compatible with all games. Tap F11 in game to see the frame counter and if there are frame drops the PCU is too slow, lower this per game.
#This is set to 0 in the default mame.ini file found in the groovymame download. Change it to 2.
#Note: Some guides say this parameter is called frame_delay instead of framedelay??
framedelay 2
#give groovymame more resources
#This is set to 1 in the default mame.ini file found in the groovymame download. Change to 0
sleep 0
#give groovymame more resources
#This is set to 0 in the default mame.ini file found in the groovymame download. Change to 1
priority 1
#Allow games dynamically change their resolution. For disabling this feature, type 0 in place of 1.
#This is already set to 1 in the mame.ini file found in the groovymame download.
changeres 1
#readable fonts
#This is set to 'default' in the default mame.ini file found in the groovymame download. Change to uismall.bdf
uifont uismall.bdf
#low latency sound
#This is set to 'auto' in the mame.ini file found in the groovymame download. Change to portaudio
sound portaudio
#This is set to 2 in the mame.ini file found in the groovymame download. Change to 0
audio latency 0
#This is set to 'none' in the mame.ini file found in the groovymame download. Change to "Windows WDM-KS"
pa_api "Windows WDM-KS"
#This is already set to none in the mame.ini file found in the groovymame download.
pa_device none
#This is set to 0 in the mame.ini file found in the groovymame download. Change to 0.001
pa_latency 0.001
2. Also If I was to run this on another higher resolution Sanwa CRT (31K) I would like to have a scanline drawn for 15K games to make the 480p image look like 240p. How can I add a scanline to this in MAME.ini without disabling any GM features? (e.g. not using BGFX instead of d3d)
How about this:
hlsl_enable 1
scanline_alpha 1.0
scanline_size 1.0
scanline_height 1.0
3. Can these changes be added to a single custom "groovymame.ini" file within the INI sub folder? This would allow you to upgrade groovymame monthly overwriting the mame.ini file each time. The changes would be loaded from the \INI\groovymame.ini file. I read the syncrefresh 0 parameter being set in other place than mame.ini does actually disable this option so perhaps that means you can't use external ini files?