Many consumer TVs, even some pro video monitors, are incapable of handling refresh rates in the mid-50's, like MK has.(54.7hz). They are designed primarily for ~60hz (NTSC) and/or 50hz (PAL). MK is just too far out of range.
Unfortunately the default monitor presets available for 15khz do not really accommodate this, for example the "generic_15" just gives a single range from 49.5-65hz.
You use this and all seems sweet until you want to play MK or something similar. GM thinks your TV can handle 54.7hz, right in the middle of the range, you said that it could in the monitor presets, but obviously it can't. So your picture goes out of sync.
For these situations I use a custom monitor preset with two sets of crt_range values. For modes up to 240p it automatically uses the 60hz range, and for modes with more lines it uses the 50hz range. You can open up or restrict the ranges as much as you want to suit your TV. The following example will keep the modes pretty tightly to 50hz and 60hz only.
It will choose from the 60hz range for modes with up to 248 lines (progressive), and beyond that uses the 50hz range.
monitor "NTSC/PAL only", "PAL/NTSC 50/60hz only", "4:3"
crt_range0 15600-15900, 49.50-50.00, 2.000, 4.700, 4.700, 0.064, 0.192, 1.056, 0, 0, 192, 288, 448, 576
crt_range1 15600-15900, 59.50-61.00, 2.000, 4.700, 5.800, 0.064, 0.192, 0.898, 0, 0, 192, 248, 448, 480
The numbers in
bold are the maximum number of
progressive lines possible, and the numbers in
italics are the max number of
interlaced lines possible.
Then when you want to play MK, GM will choose one of the 50hz modes and work it's magic to make everything sync up. Example attached! I have no idea what Calamity thinks about all these shenanigans, but it seems to work for me.
Still using MameWAH? I gave up trying to get it to play nicely in Windows 7 and migrated to Attract-Mode.