Build Your Own Arcade Controls Forum
Software Support => GroovyMAME => Topic started by: tonyt76 on March 14, 2021, 05:34:34 pm
-
If i understand this correctly, using Switchres 2.0 and the -monitor lcd option, do i need to do anything else to get VRR working in Groovymame?
If i'm using Windows 10, do I need to use an AMD video card?
-
Anyone?
-
Hi.
I pasted my mame.ini below as I don't remember if I needed to change anything. That one works fine with a freesync 4k benq and a Nvidia gtx 1650 with VRR. For CRT effect I use reshade and CRT-Royale, instead of MAME's HLSL. Still is not a real CRT, but I'm quite happy with the result. Check the character's shadows in Samurai Shodown 2 to test that is working.
If the VRR range is up to 60hz I'd recommend to overclock slightly the monitor up to 61hz at least for all those games with 60.XX hz refreshes. (there are tutorials for this in google)
BTW does your setup support more than 70hz when using VRR ? If so, please could you test in GROOVYMAME a MSDOS game for me ? (I can post the required files)
#
# OSD PERFORMANCE OPTIONS
#
numprocessors auto
bench 0
#
# OSD VIDEO OPTIONS
#
video auto
numscreens 1
window 0
maximize 1
waitvsync 0
monitorprovider auto
#
# OSD PER-WINDOW VIDEO OPTIONS
#
screen auto
aspect auto
resolution auto
view auto
screen0 \\.\DISPLAY2
aspect0 auto
resolution0 3840x2160
view0 auto
screen1 \\.\DISPLAY1
aspect1 auto
resolution1 2560x1440@70.086
view1 auto
screen2 auto
aspect2 auto
resolution2 auto
view2 auto
screen3 auto
aspect3 auto
resolution3 auto
view3 auto
#
# OSD FULL SCREEN OPTIONS
#
switchres 1
switchres_backend auto
modesetting 0
modeline_generation 1
monitor lcd
interlace 1
doublescan 0
super_width 3840
changeres 1
lock_system_modes 1
lock_unsupported_modes 1
refresh_dont_care 0
dotclock_min 0
v_shift_correct 0
pixel_precision 1
sync_refresh_tolerance 2.0
autosync 0
screen_compositing 0
screen_reordering 0
allow_hw_refresh 0
modeline auto
ps_timing auto
lcd_range 40-75
crt_range0 auto
crt_range1 auto
crt_range2 auto
crt_range3 auto
crt_range4 auto
crt_range5 auto
crt_range6 auto
crt_range7 auto
crt_range8 auto
crt_range9 auto
#
# OSD ACCELERATED VIDEO OPTIONS
#
filter 0
prescale 1
#
# OpenGL-SPECIFIC OPTIONS
#
gl_forcepow2texture 0
gl_notexturerect 0
gl_vbo 1
gl_pbo 1
gl_glsl 0
gl_glsl_filter 1
glsl_shader_mame0 none
glsl_shader_mame1 none
glsl_shader_mame2 none
glsl_shader_mame3 none
glsl_shader_mame4 none
glsl_shader_mame5 none
glsl_shader_mame6 none
glsl_shader_mame7 none
glsl_shader_mame8 none
glsl_shader_mame9 none
glsl_shader_screen0 none
glsl_shader_screen1 none
glsl_shader_screen2 none
glsl_shader_screen3 none
glsl_shader_screen4 none
glsl_shader_screen5 none
glsl_shader_screen6 none
glsl_shader_screen7 none
glsl_shader_screen8 none
glsl_shader_screen9 none
#
# OSD SOUND OPTIONS
#
sound auto
audio_latency 2
#
# PORTAUDIO OPTIONS
#
pa_api none
pa_device none
pa_latency 0
#
# BGFX POST-PROCESSING OPTIONS
#
bgfx_path bgfx
bgfx_backend auto
bgfx_debug 0
bgfx_screen_chains default
bgfx_shadow_mask slot-mask.png
bgfx_lut
bgfx_avi_name auto
#
# WINDOWS PERFORMANCE OPTIONS
#
priority 0
profile 0
#
# WINDOWS VIDEO OPTIONS
#
menu 0
attach_window
#
# DIRECT3D POST-PROCESSING OPTIONS
#
hlslpath hlsl
hlsl_enable 0
hlsl_oversampling 0
hlsl_write auto
hlsl_snap_width 2048
hlsl_snap_height 1536
shadow_mask_tile_mode 0
shadow_mask_alpha 0.0
shadow_mask_texture shadow-mask.png
shadow_mask_x_count 6
shadow_mask_y_count 4
shadow_mask_usize 0.1875
shadow_mask_vsize 0.25
shadow_mask_uoffset 0.0
shadow_mask_voffset 0.0
distortion 0.0
cubic_distortion 0.0
distort_corner 0.0
round_corner 0.0
smooth_border 0.0
reflection 0.0
vignetting 0.0
scanline_alpha 0.0
scanline_size 1.0
scanline_height 1.0
scanline_variation 1.0
scanline_bright_scale 1.0
scanline_bright_offset 0.0
scanline_jitter 0.0
hum_bar_alpha 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
chroma_mode 3
chroma_conversion_gain 0.299,0.587,0.114
chroma_a 0.64,0.33
chroma_b 0.30,0.60
chroma_c 0.15,0.06
chroma_y_gain 0.2126,0.7152,0.0722
#
# NTSC POST-PROCESSING OPTIONS
#
yiq_enable 0
yiq_jitter 0.0
yiq_cc 3.57954545
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
#
# VECTOR POST-PROCESSING OPTIONS
#
vector_beam_smooth 0.0
vector_length_scale 0.5
vector_length_ratio 0.5
#
# BLOOM POST-PROCESSING OPTIONS
#
bloom_blend_mode 0
bloom_scale 0.0
bloom_overdrive 1.0,1.0,1.0
bloom_lvl0_weight 1.0
bloom_lvl1_weight 0.64
bloom_lvl2_weight 0.32
bloom_lvl3_weight 0.16
bloom_lvl4_weight 0.08
bloom_lvl5_weight 0.06
bloom_lvl6_weight 0.04
bloom_lvl7_weight 0.02
bloom_lvl8_weight 0.01
lut_texture
lut_enable 0
ui_lut_texture
ui_lut_enable 0
#
# FULL SCREEN OPTIONS
#
full_screen_brightness 1.0
full_screen_contrast 1.0
full_screen_gamma 1.0
#
# INPUT DEVICE OPTIONS
#
global_inputs 0
dual_lightgun 0
-
Thanks I am using this monitor:
https://www.lg.com/us/monitors/lg-32gn650-b-gaming-monitor
-
What is Switchres 2.0?
Switchres 2.0 is a modeline generation engine for emulation. The Switchres project has become an independent library, and with it, GroovyMAME has been reworked, to hopefully achieve a cleaner and more robust integration.
New features:
Automatic LCD monitor preset: now -monitor lcd dynamically creates a fixed resolution preset based on your reported monitor timings, so GM can adjust output refresh rate to match game's refresh on supported graphic cards (Windows: AMD; Linux: AMD, Nvidia, Intel), within the Hz range defined by -lcd_range <min_refresh-max_refresh>. In Windows, it requires -allow_hw_refresh.
-
@Calamity does this work with NVidia cards in Windows 10?
-
Hi tonyt76,
@Calamity does this work with NVidia cards in Windows 10?
No, as it's clearly specified in the text you quoted.
Now, you don't need that feature at all. You have a Freesync monitor. Just download baseline MAME and use default options, except -lowlatency that you must enable. That's all you have to do.
-
Thank you Calamity!
-
I have a Nvidia RTX 2070 Max Q connected to a 240hz Freesync Premium monitor (Legion Y25-25) and I'm able to get VRR working with the attached mame.ini. Enabling "refresh_dont_care" seems to allow Groovymame to generate a proper modeline. I also had to use Custom Resolution Utility (CRU) to delete a 60hz 1080p resolution from the monitor's EDID that Groovy would latch onto for whatever reason, which prevented Ms. Pac-man and other 60.60hz games from running at 100% speed. Also, this is a laptop, and the built-in screen is a 144hz G-Sync display, which works too. I'm sure Calamity will chime in and say this ini is all wrong lol, but it seems to work. I was thinking of trying custom timings for each monitor too at some point.
#
# CORE PERFORMANCE OPTIONS
#
autoframeskip 0
frameskip 0
seconds_to_run 0
throttle 1
sleep 0
speed 1.0
refreshspeed 0
syncrefresh 0
lowlatency 1
framedelay 0
vsync_offset 0
black_frame_insertion 0
#
# OSD VIDEO OPTIONS
#
video auto
numscreens 2
window 0
maximize 1
waitvsync 0
monitorprovider auto
#
# OSD PER-WINDOW VIDEO OPTIONS
#
screen auto
aspect auto
resolution auto
view auto
screen0 auto
aspect0 auto
resolution0 1920x1080@0
view0 auto
screen1 auto
aspect1 auto
resolution1 1920x1080@0
view1 auto
screen2 auto
aspect2 auto
resolution2 auto
view2 auto
screen3 auto
aspect3 auto
resolution3 auto
view3 auto
#
# OSD FULL SCREEN OPTIONS
#
switchres 1
switchres_backend auto
modesetting 0
modeline_generation 1
monitor lcd
interlace 1
doublescan 0
super_width 2560
changeres 1
lock_system_modes 0
lock_unsupported_modes 0
refresh_dont_care 1
dotclock_min 0
v_shift_correct 0
pixel_precision 1
sync_refresh_tolerance 2.0
autosync 1
screen_compositing 0
screen_reordering 0
allow_hw_refresh 1
modeline auto
ps_timing auto
lcd_range 48-240
crt_range0 auto
crt_range1 auto
crt_range2 auto
crt_range3 auto
crt_range4 auto
crt_range5 auto
crt_range6 auto
crt_range7 auto
crt_range8 auto
crt_range9 auto