Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Question about VRR on a LCD monitor  (Read 2495 times)

0 Members and 1 Guest are viewing this topic.

tonyt76

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:March 11, 2024, 10:06:18 am
  • I want to build my own arcade controls!
Question about VRR on a LCD monitor
« 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?
« Last Edit: March 18, 2021, 07:49:08 am by tonyt76 »

tonyt76

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:March 11, 2024, 10:06:18 am
  • I want to build my own arcade controls!
Re: Question about VRR on a LCD monitor
« Reply #1 on: March 16, 2021, 03:00:34 pm »
Anyone?

pakoman

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 163
  • Last login:April 12, 2024, 11:02:35 am
  • I want to build my own arcade controls!
Re: Question about VRR on a LCD monitor
« Reply #2 on: March 16, 2021, 05:11:21 pm »
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)

Code: [Select]
#
# 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

tonyt76

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:March 11, 2024, 10:06:18 am
  • I want to build my own arcade controls!
Re: Question about VRR on a LCD monitor
« Reply #3 on: March 18, 2021, 07:47:30 am »

tonyt76

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:March 11, 2024, 10:06:18 am
  • I want to build my own arcade controls!
Re: Question about VRR on a LCD monitor
« Reply #4 on: March 18, 2021, 08:02:50 am »
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.

tonyt76

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:March 11, 2024, 10:06:18 am
  • I want to build my own arcade controls!
Re: Question about VRR on a LCD monitor
« Reply #5 on: March 18, 2021, 08:04:50 am »
@Calamity does this work with NVidia cards in Windows 10?

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7414
  • Last login:April 10, 2024, 02:02:31 pm
  • Quote me with care
Re: Question about VRR on a LCD monitor
« Reply #6 on: March 18, 2021, 08:18:27 am »
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.
Important note: posts reporting GM issues without a log will be IGNORED.
Steps to create a log:
 - From command line, run: groovymame.exe -v romname >romname.txt
 - Attach resulting romname.txt file to your post, instead of pasting it.

CRT Emudriver, VMMaker & Arcade OSD downloads, documentation and discussion:  Eiusdemmodi

tonyt76

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:March 11, 2024, 10:06:18 am
  • I want to build my own arcade controls!
Re: Question about VRR on a LCD monitor
« Reply #7 on: March 18, 2021, 09:06:27 am »
Thank you Calamity!

joobloo

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 2
  • Last login:July 05, 2021, 11:48:40 pm
  • I want to build my own arcade controls!
Re: Question about VRR on a LCD monitor
« Reply #8 on: March 19, 2021, 05:40:23 am »
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.

Code: [Select]
#
# 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