Here is my modeline.txt after running vmmaker set with ModeTableMethod_XML = 2
Modeline "192x224_60 15.66KHz 59.98Hz" 4.000 192 200 224 256 224 234 237 261 -hsync -vsync
Modeline "224x240_60 15.67KHz 60.05Hz" 4.760 224 240 264 304 240 242 245 261 -hsync -vsync
Modeline "240x224_60 15.66KHz 60.00Hz" 5.010 240 256 280 320 224 234 237 261 -hsync -vsync
Modeline "240x240_60 15.66KHz 60.00Hz" 5.010 240 256 280 320 240 242 245 261 -hsync -vsync
Modeline "240x256_59 16.21KHz 58.50Hz" 5.310 240 256 280 328 256 258 261 277 -hsync -vsync
Modeline "248x256_59 16.21KHz 58.52Hz" 5.570 248 264 296 344 256 258 261 277 -hsync -vsync
Modeline "256x224_60 15.66KHz 60.00Hz" 5.510 256 272 304 352 224 234 237 261 -hsync -vsync
Modeline "256x240_60 15.66KHz 60.00Hz" 5.510 256 272 304 352 240 242 245 261 -hsync -vsync
Modeline "256x256_59 16.21KHz 58.51Hz" 5.700 256 272 304 352 256 258 261 277 -hsync -vsync
Modeline "256x288_52 16.21KHz 52.45Hz" 5.700 256 272 304 352 288 290 293 309 -hsync -vsync
Modeline "264x224_60 15.67KHz 60.02Hz" 5.630 264 280 312 360 224 234 237 261 -hsync -vsync
Modeline "264x240_60 15.67KHz 60.02Hz" 5.630 264 280 312 360 240 242 245 261 -hsync -vsync
Modeline "280x240_60 15.64KHz 59.92Hz" 5.880 280 296 328 376 240 242 245 261 -hsync -vsync
Modeline "288x224_60 15.66KHz 59.98Hz" 6.010 288 304 336 384 224 234 237 261 -hsync -vsync
Modeline "288x240_60 15.66KHz 59.98Hz" 6.010 288 304 336 384 240 242 245 261 -hsync -vsync
Modeline "296x240_60 15.65KHz 59.98Hz" 6.130 296 312 344 392 240 242 245 261 -hsync -vsync
Modeline "304x224_60 15.66KHz 59.99Hz" 6.380 304 320 352 408 224 234 237 261 -hsync -vsync
Modeline "304x240_60 15.66KHz 59.99Hz" 6.380 304 320 352 408 240 242 245 261 -hsync -vsync
Modeline "312x288_53 16.23KHz 52.51Hz" 6.730 312 328 360 416 288 290 293 309 -hsync -vsync
Modeline "320x224_60 15.65KHz 59.98Hz" 6.630 320 336 368 424 224 234 237 261 -hsync -vsync
Modeline "320x240_60 15.65KHz 59.98Hz" 6.630 320 336 368 424 240 242 245 261 -hsync -vsync
Modeline "320x256_58 16.18KHz 58.43Hz" 6.860 320 336 368 424 256 258 261 277 -hsync -vsync
Modeline "320x448_60 15.61KHz 59.94Hz" 6.620 320 336 368 424 448 466 471 521 interlace -hsync -vsync
Modeline "320x480_60 15.61KHz 59.94Hz" 6.620 320 336 368 424 480 482 487 521 interlace -hsync -vsync
Modeline "328x224_60 15.62KHz 59.86Hz" 6.760 328 344 376 432 224 234 237 261 -hsync -vsync
Modeline "328x256_58 16.18KHz 58.42Hz" 6.990 328 344 376 432 256 258 261 277 -hsync -vsync
Modeline "336x240_60 15.66KHz 60.00Hz" 6.890 336 352 384 440 240 242 245 261 -hsync -vsync
Modeline "336x256_58 16.19KHz 58.45Hz" 7.380 336 352 392 456 256 258 261 277 -hsync -vsync
Modeline "344x240_60 15.66KHz 60.01Hz" 7.010 344 360 392 448 240 242 245 261 -hsync -vsync
Modeline "344x256_58 16.20KHz 58.48Hz" 7.510 344 360 400 464 256 258 261 277 -hsync -vsync
Modeline "352x240_60 15.68KHz 60.06Hz" 7.390 352 368 408 472 240 242 245 261 -hsync -vsync
Modeline "352x256_58 16.19KHz 58.46Hz" 7.640 352 368 408 472 256 258 261 277 -hsync -vsync
Modeline "360x224_60 15.66KHz 60.00Hz" 7.510 360 376 416 480 224 234 237 261 -hsync -vsync
Modeline "360x240_60 15.66KHz 60.00Hz" 7.510 360 376 416 480 240 242 245 261 -hsync -vsync
Modeline "368x240_60 15.66KHz 60.01Hz" 7.640 368 384 424 488 240 242 245 261 -hsync -vsync
Modeline "368x256_58 16.20KHz 58.47Hz" 7.900 368 384 424 488 256 258 261 277 -hsync -vsync
Modeline "368x448_60 15.63KHz 60.00Hz" 7.620 368 384 424 488 448 466 471 521 interlace -hsync -vsync
Modeline "376x256_59 16.23KHz 58.58Hz" 8.030 376 392 432 496 256 258 261 277 -hsync -vsync
Modeline "376x272_55 16.23KHz 55.38Hz" 8.030 376 392 432 496 272 274 277 293 -hsync -vsync
Modeline "384x224_60 15.65KHz 59.97Hz" 7.880 384 400 440 504 224 234 237 261 -hsync -vsync
Modeline "384x240_60 15.65KHz 59.97Hz" 7.880 384 400 440 504 240 242 245 261 -hsync -vsync
Modeline "384x256_58 16.18KHz 58.42Hz" 8.160 384 400 440 504 256 258 261 277 -hsync -vsync
Modeline "384x288_52 16.18KHz 52.37Hz" 8.160 384 400 440 504 288 290 293 309 -hsync -vsync
Modeline "400x240_60 15.64KHz 59.91Hz" 8.130 400 416 456 520 240 242 245 261 -hsync -vsync
Modeline "400x248_60 16.15KHz 60.03Hz" 8.510 400 416 456 528 248 250 253 269 -hsync -vsync
Modeline "400x256_59 16.21KHz 58.51Hz" 8.540 400 416 456 528 256 258 261 277 -hsync -vsync
Modeline "400x264_57 16.21KHz 56.87Hz" 8.540 400 416 456 528 264 266 269 285 -hsync -vsync
Modeline "400x272_55 16.21KHz 55.32Hz" 8.540 400 416 456 528 272 274 277 293 -hsync -vsync
Modeline "400x280_54 16.21KHz 53.85Hz" 8.540 400 416 456 528 280 282 285 301 -hsync -vsync
Modeline "400x288_52 16.21KHz 52.45Hz" 8.540 400 416 456 528 288 290 293 309 -hsync -vsync
Modeline "416x224_60 15.66KHz 59.99Hz" 8.500 416 432 472 544 224 234 237 261 -hsync -vsync
Modeline "416x256_58 16.20KHz 58.48Hz" 8.820 416 432 472 544 256 258 261 277 -hsync -vsync
Modeline "432x224_60 15.67KHz 60.04Hz" 8.760 432 448 488 560 224 234 237 261 -hsync -vsync
Modeline "432x240_60 15.67KHz 60.04Hz" 8.760 432 448 488 560 240 242 245 261 -hsync -vsync
Modeline "432x256_58 16.18KHz 58.42Hz" 9.460 432 456 504 584 256 258 261 277 -hsync -vsync
Modeline "432x264_57 16.18KHz 56.78Hz" 9.460 432 456 504 584 264 266 269 285 -hsync -vsync
Modeline "432x272_55 16.18KHz 55.23Hz" 9.460 432 456 504 584 272 274 277 293 -hsync -vsync
Modeline "432x280_54 16.18KHz 53.76Hz" 9.460 432 456 504 584 280 282 285 301 -hsync -vsync
Modeline "448x224_60 15.67KHz 60.04Hz" 9.390 448 472 520 600 224 234 237 261 -hsync -vsync
Modeline "448x240_60 15.67KHz 60.04Hz" 9.390 448 472 520 600 240 242 245 261 -hsync -vsync
Modeline "456x240_60 15.66KHz 60.01Hz" 9.530 456 480 528 608 240 242 245 261 -hsync -vsync
Modeline "456x256_58 16.19KHz 58.45Hz" 9.850 456 480 528 608 256 258 261 277 -hsync -vsync
Modeline "464x224_60 15.65KHz 59.98Hz" 9.650 464 488 536 616 224 234 237 261 -hsync -vsync
Modeline "464x256_59 16.21KHz 58.51Hz" 9.990 464 488 536 616 256 258 261 277 -hsync -vsync
Modeline "480x240_60 15.64KHz 59.92Hz" 9.890 480 504 552 632 240 242 245 261 -hsync -vsync
Modeline "480x480_60 15.64KHz 60.03Hz" 9.870 480 504 552 632 480 482 487 521 interlace -hsync -vsync
Modeline "496x240_60 15.69KHz 60.13Hz" 10.150 496 520 568 648 240 242 245 261 -hsync -vsync
Modeline "496x480_60 15.62KHz 59.98Hz" 10.140 496 520 568 648 480 482 487 521 interlace -hsync -vsync
Modeline "512x224_60 15.65KHz 59.95Hz" 10.520 512 536 584 672 224 234 237 261 -hsync -vsync
Modeline "512x240_60 15.65KHz 59.95Hz" 10.520 512 536 584 672 240 242 245 261 -hsync -vsync
Modeline "512x256_58 16.20KHz 58.49Hz" 11.000 512 536 592 680 256 258 261 277 -hsync -vsync
Modeline "512x288_52 16.20KHz 52.44Hz" 11.000 512 536 592 680 288 290 293 309 -hsync -vsync
Modeline "512x448_60 15.62KHz 59.98Hz" 10.510 512 536 584 672 448 466 471 521 interlace -hsync -vsync
Modeline "512x480_60 15.62KHz 59.98Hz" 10.510 512 536 584 672 480 482 487 521 interlace -hsync -vsync
Modeline "544x256_58 16.19KHz 58.46Hz" 11.660 544 568 624 720 256 258 261 277 -hsync -vsync
Modeline "544x480_60 15.64KHz 60.05Hz" 11.120 544 568 624 712 480 482 487 521 interlace -hsync -vsync
Modeline "576x224_60 15.65KHz 59.97Hz" 11.780 576 600 656 752 224 234 237 261 -hsync -vsync
Modeline "640x240_60 15.67KHz 60.05Hz" 13.040 640 664 728 832 240 242 245 261 -hsync -vsync
Modeline "640x256_58 16.20KHz 58.50Hz" 13.720 640 672 736 848 256 258 261 277 -hsync -vsync
Modeline "640x480_60 15.62KHz 59.95Hz" 12.980 640 664 728 832 480 482 487 521 interlace -hsync -vsync
Modeline "640x480_62 16.17KHz 61.83Hz" 13.710 640 672 736 848 480 483 488 523 interlace -hsync -vsync
Modeline "648x240_60 15.67KHz 60.04Hz" 13.140 648 672 736 840 240 242 245 261 -hsync -vsync
Modeline "664x496_59 15.91KHz 59.04Hz" 13.860 664 696 760 872 496 499 504 539 interlace -hsync -vsync
Modeline "664x496_60 16.18KHz 60.06Hz" 14.090 664 696 760 872 496 499 504 539 interlace -hsync -vsync
Modeline "672x240_60 15.66KHz 60.00Hz" 13.760 672 704 768 880 240 242 245 261 -hsync -vsync
Modeline "672x272_55 16.20KHz 55.28Hz" 14.530 672 704 776 896 272 274 277 293 -hsync -vsync
Modeline "688x512_57 15.82KHz 57.01Hz" 14.150 688 720 784 896 512 515 520 555 interlace -hsync -vsync
Modeline "688x512_58 16.10KHz 58.01Hz" 14.660 688 720 792 912 512 515 520 555 interlace -hsync -vsync
Modeline "704x240_60 15.64KHz 59.92Hz" 14.530 704 736 808 928 240 242 245 261 -hsync -vsync
Modeline "704x272_55 16.20KHz 55.29Hz" 15.040 704 736 808 928 272 274 277 293 -hsync -vsync
Modeline "704x480_60 15.64KHz 60.03Hz" 14.490 704 736 808 928 480 482 487 521 interlace -hsync -vsync
Modeline "704x528_56 16.00KHz 56.05Hz" 14.830 704 736 808 928 528 531 536 571 interlace -hsync -vsync
Modeline "720x480_60 15.64KHz 60.04Hz" 14.740 720 752 824 944 480 482 487 521 interlace -hsync -vsync
Modeline "728x544_54 15.85KHz 54.02Hz" 15.110 728 760 832 952 544 547 552 587 interlace -hsync -vsync
Modeline "728x544_55 16.15KHz 55.02Hz" 15.350 728 760 832 952 544 547 552 587 interlace -hsync -vsync
Modeline "736x272_55 16.21KHz 55.33Hz" 15.690 736 768 840 968 272 274 277 293 -hsync -vsync
Modeline "768x224_60 15.67KHz 60.04Hz" 15.640 768 800 872 1000 224 234 237 261 -hsync -vsync
Modeline "768x576_52 16.11KHz 52.06Hz" 16.240 768 800 880 1008 576 579 584 619 interlace -hsync -vsync
Modeline "792x592_50 15.88KHz 50.03Hz" 16.360 792 824 904 1032 592 595 600 635 interlace -hsync -vsync
For good measure, here is my Vmmaker.ini as well
; VideoModeMaker - Options
; ------------------------
; 1. MAME
; -------
; Path for Mame executable, in case we want to extract xml information from it.
MameExe = "C:\hyperspin\EMULATORS\mame\mame.exe"
; Path for Mame ini folder, in case we want to create an ini file for each game.
; Important: existing ini files will be overwritten.
IniPath = "C:\hyperspin\EMULATORS\mame\ini\"
; Mame options.
ListFromXML = 1 ; Processes Mame XML and get video mode list from it
GenerateXML = 1 ; Extracts XML from Mame (only needed once)
GenerateInis = 0 ; Creates an ini file for each Mame game, in the IniPath folder
SDLMame = 0 ; Use SDLMame specific options
; Monitor orientation
MonitorHorizontal = 1 ; 0 = Rotating monitor: horizontal and vertical games at their native resolution
; Suitable for users that physically rotate their CRTs
; 1 = Horizontal monitor: horizontal games run at their native resolution and
; vertical games are rotated to fit in horizontal monitor
RotatingDesktop = 0 ; Specifies if both desktop and monitor are rotated
; Aspect ratio for vertical games on horizontal monitor
; 4:3 (keeps original aspect ratio)
; 3:3 (stretches to square format)
; 3:4 (stretches to full screen)
; h:v (custom aspect ratio)
VerticalAspect = "4:3"
; 2. MONITOR
; ----------
; Monitor Type. Valid types: D9800, D9400, D9200, EGA, VGA, MULTI, H9110, PAL, NTSC, GENERIC, CUSTOM
MonitorType = "CUSTOM"
; Monitor CUSTOM. These values will be used if MonitorType = "CUSTOM"
;
; monitor_specs_0-6 = "HfreqMin-HfreqMax, VfreqMin,VfreqMax, HFrontPorch, HSyncPulse, HBackPorch, VfrontPorch, VSyncPulse, VBackPorch, HSyncPol, VSyncPol, ActiveLinesLimit, VirtualLinesLimit"
;
; * HfreqMin-HfreqMax: Minimum and maximum horizontal frequency, in Hz. Defines the range of horizontal frequencies the monitor is capable to sync.
; The higher the horizontal frequency, the higher the vertical resolution available for the same vertical refresh.
; The higher the horizontal frequency, the higher the vertical refresh available for the same vertical resolution.
; The higher the horizontal frequency, the lower the horizontal amplitude of active video (narrower picture).
;
; * VFreqMin-VfreqMax: Minimum and maximum vertical frequency, in Hz, Defines the range of vertical frequencies the monitor is capable to sync.
;
; * HFrontPorch, HSyncPulse, HBackPorch: Horizontal timing and geometry, values in µs
;
; * VfrontPorch, VSyncPulse, VBackPorch: Vertical timing and geometry, values in ms
;
; * HSyncPol,VSyncPol: polarities, not in use! defaults to negative.
;
; * ActiveLinesLimit: Vertical resolutions until ActiveLinesLimit value included, are generated as progressive, regardless the possibility
; of obtaining the required vertical refresh value.
;
; * VirtualLinesLimit: Vertical resolutions above ActiveLinesLimit and below VirtualLinesLimit are virtualized, that is, an interlaced resolution
; bigger that the native one is generated, with the right refresh, and "hardware stretch" is applied.
; Vertical resolutions above VirtulaLinesLimit are generated as interlaced, without any stretching.
monitor_specs_0 = "15625-16200, 49.50-65.00, 2.000, 4.700, 8.000, 0.064, 0.160, 1.056, 0, 0, 288, 448"
; Tolerance for horizontal frequency, in kHz, enables extending the range defined by [ HfreqMin, HfreqMax ]
; The resulting allowed frequency range will be [ HfreqMin - HfreqTolerance, HfreqMax + HfreqTolerance ]
HfreqTolerance = 0.010
; 3. MODELINE GENERATOR
; ---------------------
; Total number of modelines to generate. Here are the recommended values for each driver version:
; CRT_Emudriver, based on Catalyst 6.5 XP32: 160 modes (accepts up to 200, but above 160 HyperSpin will refuse to load)
; CRT_Emudriver, based on Catalyst 6.5 XP64: 120 modes
; CRT_Emudriver, based on Catalyst 9.3 XP32/64: 120 modes (accepts some more but above 120 you can get some blue screens)
; Regular Catalyst: 60 modes (won't accept any more)
TotalModes = 99
; Method for mode table generation. If Mame xml is processed, that will create a lot of different video modes, so the mode table
; will be optimized keeping the most relevant ones, and dropping the rest, to keep below the TotalModes value.
ModeTableMethod = 2 ; 0 = Static table: modelines are generated keeping their original vertical refresh. This
; method is intended to be used in combination with ini files for each game.
; 1 = Dynamic table: a table of dummy modes is created using xres and yres values while ignoring
; vfreq. This method is intended to be used in combination with Switchres or Groovymame. No ini
; files are required using this method (you should disable the GenerateInis option).
; Minimum resolution values (these will be used instead of lower values)
XresMin = 184
YresMin = 192
; Minimum dotclock value allowed by the video card, in MHz (i.e. DotClockMin = 7.010)
DotClockMin = 0
; Number of iterations used by the mode generator [0,5]. The higher the number of iterations, the bigger the accuracy of the vertical
; refreshed obtained, normally at the cost of increasing the horizontal frequency strictly required.
Iterations = 0
; Specifies if the refresh label is multiplied by 10 before rounding (experimental).
VFreqLabelx10 = 0
; 4. DRIVER
; ---------
; Path for the driver folder
DriverPath = ".\Driver\"
; If UpdateRegistry is enabled, UpdateDriver will only work if the driver version found in DriverPath matches the one installed
; in the system.
UpdateRegistry = 1 ; Specifies if the video card registry section will be updated with the new video modes
; (will only work in combination with CRT_EMUDriver).
UpdateDriver = 0 ; Specifies if the driver files in DriverPath will be updated with the new video modes, for
; future installations.
AnyCatalyst = 0 ; Allows modelines to be installed for any Catalyst version. This option is experimental and
; known to produce some problems.