Ok...I'm back to working with this after repairing my monitor (lost vertical deflection).
I configured my setup to rotate the image for optimal performance with V games. I thought it worked great....V games looked just like they should....H games not so much. But the MALA layout I used (dkong) made it hard to read the titles that didn't have a marquee picture, so I changed it all back to H orientation. We need more MALA layouts for low res use!
Anyway...I added the modeline to interlace and resize the V games for H monitors and got that to work this time. I don't think V games look as good interlaced, but I can deal with it. Problem now is, alot of V games are coming up with bad H sync. Pacman, 1942 are fine...but a bunch are off freq (q-bert, qix, joust2, quarterback,etc).
Here's all my .ini settings. There must be something I did wrong (again)....
; VideoModeMaker - Options
; ------------------------
; 1. MAME
; -------
; Path for Mame executable, in case we want to extract xml information from it.
MameExe = "C:\Program Files\groovymame32\groovymame32_0143.013b.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:\Program Files\groovymame32\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, 256, 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 = 120
; 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 = 1 ; 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.
<UNADORNED0>
<UNADORNED1>
#
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS
#
rompath roms
hashpath hash
samplepath samples
artpath artwork
ctrlrpath ctrlr
inipath ini
fontpath .
cheatpath cheat
crosshairpath crosshair
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory cfg
nvram_directory nvram
memcard_directory memcard
input_directory inp
state_directory sta
snapshot_directory snap
diff_directory diff
comment_directory comments
#
# CORE OUTPUT DIRECTORY OPTIONS
#
hiscore_directory hi
#
# CORE STATE/PLAYBACK OPTIONS
#
state
autosave 0
playback
record
mngwrite
aviwrite
wavwrite
snapname %g/%i
snapsize auto
snapview internal
burnin 0
#
# CORE PERFORMANCE OPTIONS
#
autoframeskip 1
frameskip 0
seconds_to_run 0
throttle 0
sleep 1
speed 1.0
refreshspeed 0
#
# CORE ROTATION OPTIONS
#
rotate 1
ror 0
rol 0
autoror 0
autorol 0
flipx 0
flipy 0
#
# CORE ARTWORK OPTIONS
#
artwork_crop 0
use_backdrops 0
use_overlays 0
use_bezels 0
use_cpanels 0
use_marquees 0
#
# CORE SCREEN OPTIONS
#
brightness 1.00
contrast 1.0
gamma 1.00
pause_brightness 0.65
effect none
#
# CORE VECTOR OPTIONS
#
antialias 1
beam 1.00
flicker 0.00
#
# CORE SOUND OPTIONS
#
sound 1
samplerate 44100
samples 1
volume 0
#
# CORE INPUT OPTIONS
#
coin_lockout 1
# ctrlr <NULL> (not set)
mouse 1
joystick 1
lightgun 0
multikeyboard 0
multimouse 0
steadykey 0
offscreen_reload 0
joystick_map auto
joystick_deadzone 0.3
joystick_saturation 0.85
natural 0
#
# CORE INPUT AUTOMATIC ENABLE OPTIONS
#
paddle_device keyboard
adstick_device keyboard
pedal_device keyboard
dial_device keyboard
trackball_device mouse
lightgun_device keyboard
positional_device keyboard
mouse_device mouse
#
# CORE DEBUGGING OPTIONS
#
log 0
verbose 0
update_in_pause 0
debug 0
debugscript
debug_internal 0
#
# CORE MISC OPTIONS
#
bios
cheat 1
skip_gameinfo 1
uifont default
ramsize
confirm_quit 0
#
# CORE MKChamp OPTIONS
#
disable_hiscore_patch 0
disable_nagscreen_patch 1
disable_loading_patch 1
#
# CORE SWITCHRES OPTIONS
#
modeline 1
monitor custom
monitor_connector auto
monitor_orientation horizontal
monitor_aspect 4:3
monitor_debug 0
monitor_doublescan 1
monitor_dotclock 0
monitor_ymin 0
soundsync 1
cleanstretch none
changeres 1
redraw 0
monitor_specs0 15625-16200, 49.50-65.00, 2.000, 4.700, 8.000, 0.064, 0.160, 1.056, 0, 0, 256, 448
monitor_specs1 auto
monitor_specs2 auto
monitor_specs3 auto
monitor_specs4 auto
monitor_specs5 auto
monitor_specs6 auto
monitor_specs7 auto
#
# WINDOWS DEBUGGING OPTIONS
#
oslog 0
watchdog 0
debugger_font "Lucida Console"
debugger_font_size 9
#
# WINDOWS PERFORMANCE OPTIONS
#
priority 0
multithreading 1
numprocessors auto
profile 0
bench 0
#
# WINDOWS VIDEO OPTIONS
#
video ddraw
numscreens 1
window 0
maximize 1
keepaspect 0
prescale 1
waitvsync 1
syncrefresh 1
menu 0
#
# DIRECTDRAW-SPECIFIC OPTIONS
#
hwstretch 0
#
# DIRECT3D-SPECIFIC OPTIONS
#
d3dversion 9
filter 0
#
# DIRECT3D POST-PROCESSING OPTIONS
#
hlsl_enable 0
hlslini %g
hlslpath hlsl
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.0
shadow_mask_texture aperture.png
shadow_mask_x_count 320
shadow_mask_y_count 240
shadow_mask_usize 0.09375
shadow_mask_vsize 0.109375
curvature 0.0
pincushion 0.0
scanline_alpha 0.0
scanline_size 1.0
scanline_height 0.7
scanline_bright_scale 1.0
scanline_bright_offset 0.0
scanline_jitter 0.0
defocus 0.0,0.0
converge_x 0.0,0.0,0.0
converge_y 0.0,0.0,0.0
radial_converge_x 0.0,0.0,0.0
radial_converge_y 0.0,0.0,0.0
red_ratio 1.0,0.0,0.0
grn_ratio 0.0,1.0,0.0
blu_ratio 0.0,0.0,1.0
saturation 1.0
offset 0.0,0.0,0.0
scale 1.0,1.0,1.0
power 1.0,1.0,1.0
floor 0.0,0.0,0.0
phosphor_life 0.0,0.0,0.0
yiq_enable 0
yiq_cc 3.59754545
yiq_a 0.5
yiq_b 0.5
yiq_o 0.0
yiq_p 1.0
yiq_n 1.0
yiq_y 6.0
yiq_i 1.2
yiq_q 0.6
yiq_scan_time 52.6
yiq_phase_count 2
#
# PER-WINDOW VIDEO OPTIONS
#
screen auto
aspect auto
resolution auto
view auto
screen0 auto
aspect0 auto
resolution0 auto
view0 auto
screen1 auto
aspect1 auto
resolution1 auto
view1 auto
screen2 auto
aspect2 auto
resolution2 auto
view2 auto
screen3 auto
aspect3 auto
resolution3 auto
view3 auto
#
# FULL SCREEN OPTIONS
#
triplebuffer 0
switchres 1
full_screen_brightness 1.00
full_screen_contrast 1.0
full_screen_gamma 1.0
#
# WINDOWS SOUND OPTIONS
#
audio_latency 2
#
# INPUT DEVICE OPTIONS
#
dual_lightgun 0