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
Site News

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


  

Author Topic: Clarification on using GroovyMAME on a LCD  (Read 3664 times)

0 Members and 1 Guest are viewing this topic.

donluca

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 126
  • I want to build my own arcade controls!
Clarification on using GroovyMAME on a LCD
« on: July 29, 2018, 08:31:25 am »
Just wanted to make sure about this (and opened this thread for google indexing purposes):

Should you set monitor lcd in the mame.ini file if you're using an LCD?

I was under the assumption that you should leave it as is and just adjust crt_range to match your LCD monitor refresh rate and resolution.

Is this true for both Radeon and Nvidia cards?

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #1 on: July 30, 2018, 06:17:07 am »
Should you set monitor lcd in the mame.ini file if you're using an LCD?

Yes, definitely.

By using the lcd preset you're telling GM to stop video mode switching and stick to desktop's resolution only.

This assumes the user already has the desktop set to its native (optimal) resolution. E.g. you can't switch from desktop at 60 Hz to GM at 120 Hz, or from desktop at 1920x1080 to GM at 1280x720 to say making hlsl more fluent. If you'd like to do such things, then yes, you'd need to create a custom crt_range and do everything manually.

Default lcd range is defined to work between 59-61 Hz. If your LCD supports 120 or 144 Hz, you need to manually extend the lcd_range option accordingly, otherwise GM will fail to find a valid video mode.

Internally, GM creates a crt_range to fit your LCD resolution.  It forces the -resolution option to be that of your desktop, and locks everything else.

The typical problem with uneducated people from of other forums is downloading GM to run on an lcd without any further configuration. This sets the default "monitor generic_15" which tries to set 640x480 @15 kHz, which obviously fails on their crappy laptop lcd, so -switchres is set to 0, and everthing else: scaling, autosync, etc. gets disabled.

Of course I could make lcd the default option to avoid that, but that would make nice people from this forum having to  do specific configuration to just enable basic mode switching at 15 kHz on their cabinets.

Or find a decent solution for everybody...
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 or pasting it.

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

krick

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1927
  • Gotta have blue hair.
Re: Clarification on using GroovyMAME on a LCD
« Reply #2 on: July 30, 2018, 02:26:39 pm »
Or find a decent solution for everybody...

Is there any way at runtime for GroovyMAME to query Windows and tell what KIND of monitor it is based on the monitor description or something?

If not that, how about some kind of algorithm that looks at the supported resolutions in the mode list and tries to make an educated guess about the monitor type.

Or maybe a combination of both methods.
Hantarex Polo 15KHz
Sapphire Radeon HD 7750 2GB (GCN)
GroovyMAME 0.197.017h_d3d9ex
CRT Emudriver & CRT Tools 2.0 beta 13 (Crimson 16.2.1 for GCN cards)
Windows 7 Home Premium 64-bit
Intel Core i7-4790K @ 4.8GHz
ASUS Z87M-PLUS Motherboard

Trnzaddict

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 95
Re: Clarification on using GroovyMAME on a LCD
« Reply #3 on: July 30, 2018, 02:37:36 pm »
Should you set monitor lcd in the mame.ini file if you're using an LCD?

Yes, definitely.

By using the lcd preset you're telling GM to stop video mode switching and stick to desktop's resolution only.

This assumes the user already has the desktop set to its native (optimal) resolution. E.g. you can't switch from desktop at 60 Hz to GM at 120 Hz, or from desktop at 1920x1080 to GM at 1280x720 to say making hlsl more fluent. If you'd like to do such things, then yes, you'd need to create a custom crt_range and do everything manually.

Default lcd range is defined to work between 59-61 Hz. If your LCD supports 120 or 144 Hz, you need to manually extend the lcd_range option accordingly, otherwise GM will fail to find a valid video mode.

Internally, GM creates a crt_range to fit your LCD resolution.  It forces the -resolution option to be that of your desktop, and locks everything else.

The typical problem with uneducated people from of other forums is downloading GM to run on an lcd without any further configuration. This sets the default "monitor generic_15" which tries to set 640x480 @15 kHz, which obviously fails on their crappy laptop lcd, so -switchres is set to 0, and everthing else: scaling, autosync, etc. gets disabled.

Of course I could make lcd the default option to avoid that, but that would make nice people from this forum having to  do specific configuration to just enable basic mode switching at 15 kHz on their cabinets.

Or find a decent solution for everybody...

Calamity - so I am confused here. I asked previously if GM was able to utilize custom made LCD resolutions in Nvidia control panel, which you said yes. So for example my native resolution is 1920x1200@60p. So I have created a 1920x1200 55hz custom resolution in Nvidia for R-Type, but you're saying here that GM will only use your native desktop res and lock everything else? I was under the impression that GM would select the closest refresh rate that is available for smooth gameplay? Because even with these custom video modes GM is always at 60hz in machine info.

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #4 on: July 30, 2018, 03:47:30 pm »
If your LCD supports 120 or 144 Hz, you need to manually extend the lcd_range option accordingly, otherwise GM will fail to find a valid video mode.
How do you do that if I may ask ?
lcd_range 59-121 ?
or
lcd_range  59-145 ?
Actually how do you even edit the .ini correctly for that purpose ?

Trnzaddict

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 95
Re: Clarification on using GroovyMAME on a LCD
« Reply #5 on: July 30, 2018, 05:30:32 pm »
If your LCD supports 120 or 144 Hz, you need to manually extend the lcd_range option accordingly, otherwise GM will fail to find a valid video mode.
How do you do that if I may ask ?
lcd_range 59-121 ?
or
lcd_range  59-145 ?
Actually how do you even edit the .ini correctly for that purpose ?

I have my LCD range defined as 55-60 and it still doesn’t switch.

Just erase where it says “auto” in the ini then you put in the info as you described above.

donluca

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 126
  • I want to build my own arcade controls!
Re: Clarification on using GroovyMAME on a LCD
« Reply #6 on: July 31, 2018, 11:21:15 am »
Yes, definitely.

By using the lcd preset you're telling GM to stop video mode switching and stick to desktop's resolution only.

This assumes the user already has the desktop set to its native (optimal) resolution. E.g. you can't switch from desktop at 60 Hz to GM at 120 Hz, or from desktop at 1920x1080 to GM at 1280x720 to say making hlsl more fluent. If you'd like to do such things, then yes, you'd need to create a custom crt_range and do everything manually.

Default lcd range is defined to work between 59-61 Hz. If your LCD supports 120 or 144 Hz, you need to manually extend the lcd_range option accordingly, otherwise GM will fail to find a valid video mode.

Internally, GM creates a crt_range to fit your LCD resolution.  It forces the -resolution option to be that of your desktop, and locks everything else.

The typical problem with uneducated people from of other forums is downloading GM to run on an lcd without any further configuration. This sets the default "monitor generic_15" which tries to set 640x480 @15 kHz, which obviously fails on their crappy laptop lcd, so -switchres is set to 0, and everthing else: scaling, autosync, etc. gets disabled.

Of course I could make lcd the default option to avoid that, but that would make nice people from this forum having to  do specific configuration to just enable basic mode switching at 15 kHz on their cabinets.

Or find a decent solution for everybody...

Thanks for the very detailed reply Calamity, hopefully this thread will solve many people's headaches when using GM on a LCD.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #7 on: July 31, 2018, 01:12:02 pm »
Calamity - so I am confused here. I asked previously if GM was able to utilize custom made LCD resolutions in Nvidia control panel, which you said yes. So for example my native resolution is 1920x1200@60p. So I have created a 1920x1200 55hz custom resolution in Nvidia for R-Type, but you're saying here that GM will only use your native desktop res and lock everything else? I was under the impression that GM would select the closest refresh rate that is available for smooth gameplay? Because even with these custom video modes GM is always at 60hz in machine info.

If you use -monitor lcd, then it will NOT switch to a different video mode, it will use whatever your desktop is configured with, period. This is valid for 99% of people using lcds (which, I need to remind, is not the target audience of GM anyway).

GM may of course use whatever video mode you add to your system, say 55 Hz, whatever, AS LONG AS you treat your monitor as a CRT and use a monitor preset or custom crt_range that allows that mode.

Basically in GM's context a "crt" is a monitor that can use different video modes. An "lcd" is a monitor that uses a fixed video mode. Again, this makes sense for 99% of cases, even if there're exceptions, like LCDs that support variable refresh rates, etc.

Newcomers always complain about GM being so strict that you have to specify a valid preset or crt_range just in order to use a system resolution. They ignore that GM was designed to make it very difficult that a system mode was picked that could potentially damage your arcade monitor.

So you have to put some effort on your part to persuade it pick something like 1200p, unless you use "-monitor lcd", which means 1200p is already in use by the desktop so it probably hasn't killed your monitor.

There are no crt presets that accept 1200p currently. So you need to make a custom crt_range, like this one:

crt_range0 65000-85000, 55.00-61.00, 0.704, 1.035, 1.739, 0.040, 0.080, 0.483, 0, 0, 1200, 1200, 0, 0

With that, and selecting "-monitor custom", it should be able to switch between different refresh rates. Besides, set "-resolution 1920x1200@0" so it doesn't accidentally pick something else that is 1200p (unlikely anyway).
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 or pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #8 on: July 31, 2018, 01:25:31 pm »
If your LCD supports 120 or 144 Hz, you need to manually extend the lcd_range option accordingly, otherwise GM will fail to find a valid video mode.
How do you do that if I may ask ?
lcd_range 59-121 ?
or
lcd_range  59-145 ?
Actually how do you even edit the .ini correctly for that purpose ?

Exactly. You edit mame.ini and change "lcd_range auto" by "lcd_range 59-121" or whatever.
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 or pasting it.

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

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #9 on: July 31, 2018, 04:14:49 pm »
So if you 'go custom' with your LCD, what's a sure way to learn about all the modes it can really run at and that GM could successfully use ?

(edit: I mean as they are the nVidia and AMD control panels aren't exactly helpful, the other day I've set 1920x1080@58 on my R7 completely at random since I couldn't find all modes listed anywhere.
It seemed to accept and save it, yet apparently Win 7 Pro didn't, and my monitor still reported 60Hz, which GM followed but I wasn't on 'custom' anyway...quite puzzling still regarding W7)

Then when you know only a single crt_range line edited will suffice ?
« Last Edit: July 31, 2018, 04:41:02 pm by schmerzkaufen »

B2K24

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 188
Re: Clarification on using GroovyMAME on a LCD
« Reply #10 on: July 31, 2018, 05:12:31 pm »
What would someone recommend to put if your LCD runs at 2560X1440 and it's capable of 144 Hz G-Sync

I've been so blown away by my CRT Triniton setup. I really should get a proper GM running on my desktop LCD at some point.

Trnzaddict

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 95
Re: Clarification on using GroovyMAME on a LCD
« Reply #11 on: July 31, 2018, 08:32:37 pm »
Calamity - so I am confused here. I asked previously if GM was able to utilize custom made LCD resolutions in Nvidia control panel, which you said yes. So for example my native resolution is 1920x1200@60p. So I have created a 1920x1200 55hz custom resolution in Nvidia for R-Type, but you're saying here that GM will only use your native desktop res and lock everything else? I was under the impression that GM would select the closest refresh rate that is available for smooth gameplay? Because even with these custom video modes GM is always at 60hz in machine info.

If you use -monitor lcd, then it will NOT switch to a different video mode, it will use whatever your desktop is configured with, period. This is valid for 99% of people using lcds (which, I need to remind, is not the target audience of GM anyway).

GM may of course use whatever video mode you add to your system, say 55 Hz, whatever, AS LONG AS you treat your monitor as a CRT and use a monitor preset or custom crt_range that allows that mode.

Basically in GM's context a "crt" is a monitor that can use different video modes. An "lcd" is a monitor that uses a fixed video mode. Again, this makes sense for 99% of cases, even if there're exceptions, like LCDs that support variable refresh rates, etc.

Newcomers always complain about GM being so strict that you have to specify a valid preset or crt_range just in order to use a system resolution. They ignore that GM was designed to make it very difficult that a system mode was picked that could potentially damage your arcade monitor.

So you have to put some effort on your part to persuade it pick something like 1200p, unless you use "-monitor lcd", which means 1200p is already in use by the desktop so it probably hasn't killed your monitor.

There are no crt presets that accept 1200p currently. So you need to make a custom crt_range, like this one:

crt_range0 65000-85000, 55.00-61.00, 0.704, 1.035, 1.739, 0.040, 0.080, 0.483, 0, 0, 1200, 1200, 0, 0

With that, and selecting "-monitor custom", it should be able to switch between different refresh rates. Besides, set "-resolution 1920x1200@0" so it doesn't accidentally pick something else that is 1200p (unlikely anyway).


Thankyou so much. It's switching refresh rates now. Character scrolling is smooth in Mortal Kombat and R-Type runs correctly.

Even though GM is made for CRT's, I really think when people realize what it can do it will become the go-to build for LCD users.

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #12 on: August 01, 2018, 03:42:47 am »
I haven't had the same luck so far, I'm still trying to figure how this can work for me.
Right now only using a 60Hz full-hd monitor, I've set three custom resolutions in the AMD control panel; 1920x1080@60, 1920x1080@58, 1920x1080@55 ...

The strange thing is that none of the off-60Hz seem to actually work, that is when selected the desktop is still running normally @60, this is what my monitor detects as well.
I suspect the AMD custom resolutions tool might be completely useless in that it must be reverting or converting back to 60 without telling you, dunno exactly what's going on.

Anyway I was wondering if maybe that would work only while an application is running in exclusive fullscreen, of course my goal being GM I've tried setting it like this;
Code: [Select]
#
# CORE SWITCHRES OPTIONS
#
modeline_generation       0
monitor                   custom
orientation               horizontal
connector                 auto
interlace                 1
doublescan                1
super_width               2560
changeres                 1
powerstrip                0
lock_system_modes         1
lock_unsupported_modes    1
refresh_dont_care         0
dotclock_min              0
sync_refresh_tolerance    2
frame_delay               0
vsync_offset              0
black_frame_insertion     0
modeline                  auto
ps_timing                 auto
lcd_range                 auto
crt_range0                49-61
Which of course will not work  :D
Guess I need to enter the full modeline but I don't know what to do from this point, I'm lost.

After I figure the right modeline to use, if no custom modes work, GM not switching to them, it might be because that monitor won't accept them no matter what.
In that case I'll try again with a much older monitor I have in storage that I believe is much more flexible.

PS: does it make a difference if your GPU and monitor are linked via HDMI, DVI or VGA ? I mean is there one connectivity choice here that might support more real modes ?
« Last Edit: August 01, 2018, 03:45:41 am by schmerzkaufen »

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #13 on: August 01, 2018, 07:12:11 am »
I haven't had the same luck so far, I'm still trying to figure how this can work for me.
Right now only using a 60Hz full-hd monitor, I've set three custom resolutions in the AMD control panel; 1920x1080@60, 1920x1080@58, 1920x1080@55 ...

If you're using an AMD card, you'd better use CRT Emudriver and allow GM to update video timings, if that's what you want, rather than adding video modes with external tools. The procedure is not exactly straight-forward, so I'll write a small tutorial in a while.
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 or pasting it.

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

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #14 on: August 01, 2018, 07:33:33 am »
Well I'd like to first try and find out if my monitor and gpu can actually work at refreshes other than 50, 59.94 or 60.
Then do the same experiment switching to my nVidia gpu.

As thin as the chances are to find several non-60Hz modes working, IMHO it's best to explore potential all-accessible options for those who don't have the necessary hardware (in this case that would be an AMD gpu)

But all this of course depends on the monitor at the end of the chain. Although modern 60Hz one are very limited, if I recall some sometimes have modes they can run at that are typically not listed (often older models but you never know before trying, it just worked for Trnzaddict)
Someone actually recommended me to try that in the past when I owned different pc and monitor, but I was just as clueless as how to do it and set things up to find out, just like now.

Of course if all fails and I can't uncover any useful modes, the crt_emudrivers route sounds the most logical.

EDIT: would CRU be the thing? I've never used it before but heh. Then what/how must I configure in the ini once I've unearthed/edited my gpu output modes ?
« Last Edit: August 01, 2018, 07:39:12 am by schmerzkaufen »

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #15 on: August 01, 2018, 08:04:11 am »
Ok, if there's no interest I won't bother. The information to do LCD refresh switching on any gpu is already provided in my previous post.

Using tools to add individual video modes is a regression to last decade but I'm afraid this is where the hobby is going back.
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 or pasting it.

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

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #16 on: August 01, 2018, 08:17:15 am »
Sorry I'm confused as you seem to take offense for a reason that beyond me.

I want to try it the same way as Trnzaddict to see if that works for me. But I don't know how to find/set the below and maybe some things in the .ini
crt_range0 65000-85000, 55.00-61.00, 0.704, 1.035, 1.739, 0.040, 0.080, 0.483, 0, 0, 1200, 1200, 0, 0

Then of course I'm interested in doing it with crt_emudriver too!

I want to explore all options as I'll be changing my setups more than once in the future.

EDIT: some logs attached. This is just with monitor lcd 49-61 to have view. If I try monitor custom and set crt_range0 to the automatically created monitor range found in the logs (copy-pasting it); GM starts but I get a black screen instead of the UI. If I press start though it launches the previous game, but as far as I've seen trying neither rtype or esprade will switch to the 55 and 58 modes I have created (modes are listed though it seems)

EDIT2: ok for some reason it started working, switching rtype and esprade to working smooth 55 & 58 modes, but for some reason the sound speed is audibly reduced in esparrade (when I press F11 to see the video output refresh speed it shows 91% for rtype and 87% for esprade), more logs and ini attached.
« Last Edit: August 01, 2018, 10:43:35 am by schmerzkaufen »

sterbehilfe1980

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 6
  • I want to build my own arcade controls!
Re: Clarification on using GroovyMAME on a LCD
« Reply #17 on: August 01, 2018, 08:39:30 am »
Hi Guys!

It works for me too.

1.) I created 1600x1200 resolutions with 55,56,57,58,59,60,61hz within the nvidia driver system control center.
2.) Then i added Calamitys crt_range0 65000-85000, 55.00-61.00, 0.704, 1.035, 1.739, 0.040, 0.080, 0.483, 0, 0, 1200, 1200, 0, 0 line in mame.ini
3.) Next thing was setting the following options in mame.ini to 0:
lock_system_modes         0
lock_unsupported_modes    0

If your Monitor supports those refrshrates it will work. I can play Neo Geo, Mortal Kombat, R-Type etc now @100% speed! Realy cool feature for LCD´s Monitors, thanks a lot guys!

Monitor: Samsung Syncmaster 213T 4:3 1600x1200p
Graphic: Nvidia 750Ti
OS: Win 7

donluca

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 126
  • I want to build my own arcade controls!
Re: Clarification on using GroovyMAME on a LCD
« Reply #18 on: August 01, 2018, 10:50:55 am »
A "quick start guide" would be a god send for many people who are not as technically prepared as many users on this forum are.

Just few lines, a step by step guide on how to configure GM to work on a CRT or an LCD monitor.

In a PDF, along with the main download, so we can just start RTFM'ing people who come here asking for very basic questions like the one I did here.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #19 on: August 01, 2018, 12:40:40 pm »
A "quick start guide" would be a god send for many people who are not as technically prepared as many users on this forum are.

Just few lines, a step by step guide on how to configure GM to work on a CRT or an LCD monitor.

In a PDF, along with the main download, so we can just start RTFM'ing people who come here asking for very basic questions like the one I did here.

Configuring GroovyMAME for an LCD monitor:

1.- Download "official" GroovyMAME package (the "D3D9ex" build)
2.- Unzip the package
3.- Go into its folder and open mame.ini (double-click on it)
4.- Search down for the "rompath" option. Edit the option with the path to your roms, e.g.: "rompath c:\roms\mame"
5.- Search down for the "monitor" option. Edit this option with the "lcd" value ("monitor lcd")
6.- Run GroovyMAME (mame64.exe)

-.end of guide.-

 :)

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 or pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #20 on: August 01, 2018, 12:51:36 pm »
3.) Next thing was setting the following options in mame.ini to 0:
lock_system_modes         0
lock_unsupported_modes    0

Yes, that's very important, I forgot that.
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 or pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #21 on: August 01, 2018, 01:00:58 pm »
I want to try it the same way as Trnzaddict to see if that works for me. But I don't know how to find/set the below and maybe some things in the .ini
crt_range0 65000-85000, 55.00-61.00, 0.704, 1.035, 1.739, 0.040, 0.080, 0.483, 0, 0, 1200, 1200, 0, 0

Your setup is messed because GroovyMAME thinks you're using CRT Emudriver, and tries to update timings accordingly. This is because you're using an AMD card, and I never considered the scenerio of someone willing to use AMD in combination with profane video methods. In order to use your external modes you'd need to set "modeline_generation 0".

Still, you'll be limited to a few external modes. Close refresh rates will quickly overlap in your mode list. There's a much better way of doing this with CRT Emudriver and an LCD, hopefully I have some time later to make a writeup.
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 or pasting it.

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

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #22 on: August 01, 2018, 02:05:19 pm »
Thanks!

OK so yes indeed there's really something wrong as contrary to the nVidia users here (note I've since added more external modes like them) because I get some funky results no matter what I do; some games will pick a good 'nearest' mode and play overall better, some will pick a good one too but the musics will play at the wrong speed, sometimes it's the whole game that will play at exactly half the speed! etc.

I'll wait for your writeup for AMD users then of course, thanks. In the meantime I will install crt_emudriver.

Some surprises in this thread eh? ^^

donluca

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 126
  • I want to build my own arcade controls!
Re: Clarification on using GroovyMAME on a LCD
« Reply #23 on: August 02, 2018, 06:29:46 am »
Configuring GroovyMAME for an LCD monitor:

1.- Download "official" GroovyMAME package (the "D3D9ex" build)
2.- Unzip the package
3.- Go into its folder and open mame.ini (double-click on it)
4.- Search down for the "rompath" option. Edit the option with the path to your roms, e.g.: "rompath c:\roms\mame"
5.- Search down for the "monitor" option. Edit this option with the "lcd" value ("monitor lcd")
6.- Run GroovyMAME (mame64.exe)

-.end of guide.-

 :)

Nice!  ;D

Now slam that into a txt file named README_1ST.txt, put it into the groovymame zip and I believe we've solved 99,999% of the issues most users are having!  :lol

Although I'd put an extra line somewhere saying that if you're on a AMD card (as you should), you have to install CRT_Emudriver first.

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #24 on: August 02, 2018, 07:52:37 am »
Well if you only do that (set monitor lcd) you don't need crt_emudriver even if you own an AMD card. You'll be stuck at 59-61 but it'll work without issues.
You need it if you want to effectively use other modes on your LCD, and you have an AMD card, because of the drivers confusion it otherwise creates.

It's great that it's working fine for nVidia users without doing anything special apparently.
I think I will swap GPUs now and give that a try with my own nVidia a bit just to experience and confirm it, before re-swapping for the AMD R7 and crt_emudriver.

In any case again this thread was a revelation, I didn't expect GM to be able to function at various non-60Hz modes, whether without or with crt_emudriver depending on the setup, on your average 60Hz panel. That's because I've believed for a long time that most common 60Hz LCD displays these days are locked firmly to a very limited number of modes, the likes you find on the specs sheet. Guess I was wrong and a handful of working modes often stay 'hidden'.

BTW while making logs I was also surprised to see how good GM is at sniffing them all out, that monitor I'm using with the R7 at the moment has some I would have never suspected even existed.
For some reason their numbers expanded considerably while I was tinkering, probably because of something I did...(I was never using custom resolutions from the AMD control panel before, maybe just using it once unveiled the usually hidden modes?)
« Last Edit: August 02, 2018, 07:55:41 am by schmerzkaufen »

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #25 on: August 02, 2018, 08:32:02 am »
The thing with fixed refresh LCDs is they actually do support a certain *range*. E.g. a fixed 60 Hz LCD needs to be able to sync to at least a narrow range of refresh values around 60 Hz. This is because video cards never provide a perfect match for 60 Hz. So if monitors required exact 60 Hz they would be out of sync in 99% of cases. So the matter is, how narrow or wide this range is.

Yesterday doing some tests I've found that my current Dell can sync between 58.5 and 60.60 Hz. This covers many arcade systems.

It's super important not mistaking what refresh a monitor can accept and what it can actually sync to. My monitor accepts from 50 to 75(??)Hz but that doesn't mean it's synchronizing to those frequencies. You know when it's actually synchronizing because scrolling is perfectly smooth. Otherwise you'll notice the scroll stutters.

So you may find in your monitor specifications that it accepts 50-75 Hz as input but probably it will probably only sync to a small window within that range, or several small windows, that is never documented and you need to find it out yourself. Then of course if you're lucky enough it's possible that the monitor's board can sync to the whole range.

With regards to GroovyMAME, I've noticed there's a small problem that's preventing the right refresh from being selected when modeline generation is disabled in certain cases. I'll fix this in the coming version. Bear in mind this has never been tested seriously.

We played with variable refresh rate for LCDs and GM some years ago by means of Powerstrip. But it was never really stable and support for new cards is long over, so this thing was abandoned. Now since HD 5000+ cards support was integrated in GM I figured it could potentially be used for variable refresh LCDs too, natively, but hadn't tested it yet. I was shocked of how well it works.
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 or pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #26 on: August 02, 2018, 09:29:09 am »
Well if you only do that (set monitor lcd) you don't need crt_emudriver even if you own an AMD card. You'll be stuck at 59-61 but it'll work without issues.
You need it if you want to effectively use other modes on your LCD, and you have an AMD card, because of the drivers confusion it otherwise creates.

No, CRT Emudriver is only required for AMD if you want GM to update timings automatically. Without CRT Emudriver, AMD will work exactly the same as Nvidia, it's only that you have to manually disable -modeline_generation, which GM already disables automatically in the Nvidia case. That's all.

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 or pasting it.

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

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #27 on: August 02, 2018, 10:43:06 am »
Ah ok. Well I've disabled modeline_generation but the same funky issues persisted. From what you're saying I've probably misconfigured my .ini or the modes I've (very randomly) created in the AMD cpl weren't fit anyway (the handful of games that did pick up either 55, 56, 58 etc though, synced and scrolled smoothly but with issues for most)

I'll wait later for trying again that R7+LCD but with crt_emudriver then, since it sounds like much less hassle and trouble. ^^

About VRR; doesn't that work with almost anything already (emulators, games, whatever) just by disabling vsync, without the need of special drivers and software?
Haven't gotten to experience one of those freesync/gsync monitors myself yet, but I was thinking those basically obsolated lag reduction and smoothness efforts all at once.

krick

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1927
  • Gotta have blue hair.
Re: Clarification on using GroovyMAME on a LCD
« Reply #28 on: August 02, 2018, 11:45:48 am »
Now slam that into a txt file named README_1ST.txt, put it into the groovymame zip and I believe we've solved 99,999% of the issues most users are having!  :lol

Although I'd put an extra line somewhere saying that if you're on a AMD card (as you should), you have to install CRT_Emudriver first.

Honestly, I've always thought that a flowchart would be best.  Or maybe a "choose your own adventure" style website.
Hantarex Polo 15KHz
Sapphire Radeon HD 7750 2GB (GCN)
GroovyMAME 0.197.017h_d3d9ex
CRT Emudriver & CRT Tools 2.0 beta 13 (Crimson 16.2.1 for GCN cards)
Windows 7 Home Premium 64-bit
Intel Core i7-4790K @ 4.8GHz
ASUS Z87M-PLUS Motherboard

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #29 on: August 02, 2018, 12:29:45 pm »
Or maybe a "choose your own adventure" style website.

  :cheers:
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 or pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #30 on: August 02, 2018, 01:09:32 pm »
About VRR; doesn't that work with almost anything already (emulators, games, whatever) just by disabling vsync, without the need of special drivers and software?
Haven't gotten to experience one of those freesync/gsync monitors myself yet, but I was thinking those basically obsolated lag reduction and smoothness efforts all at once.

Sure, that's the correct, logical solution. Still, I haven't seen latency reports measuring baseline MAME on freesync/gsync monitors.

The way we're doing here, custom resolutions on lcd for old school vsync, is cutting-edge-obsolete technology.
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 or pasting it.

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

donluca

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 126
  • I want to build my own arcade controls!
Re: Clarification on using GroovyMAME on a LCD
« Reply #31 on: August 02, 2018, 01:51:00 pm »
Or maybe a "choose your own adventure" style website.

Ah! That would indeed be nice, sounds like a nifty project to make a single page javascript app. Uhm.

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #32 on: August 02, 2018, 06:38:37 pm »
cutting-edge-obsolete technology.
Everyone around here's favourite.  8)

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #33 on: August 03, 2018, 11:34:36 am »
Guide for variable refresh rate on LCDs using CRT Emudriver

Check video here: https://www.youtube.com/watch?v=N6c32mp_VoQ

GroovyMAME and the CRT Tools can dynamically modify the timings output to an LCD monitor when using an AMD HD 5000 or newer card. In order to do this in an useful way, you first need to overcome some obstacles.

The first and most important obstacle is that the current desktop video mode is read-only. This means neither GM nor Arcade OSD can alter these current video timings. Because LCDs are supposed to work at the desktop (native) resolution all the time, without switching modes, this becomes a problem.

Fortunately there's a very easy workaround. You need to create a dummy mode with the same resolution as your monitor's native resolution, and a different refresh rate. This way, Windows assumes these are separate video modes, and it allows you to change the timings freely.

The second obstacle is to guess your monitor's timing values in order to build a custom "crt range" that can be used by GM. Again, this is very easy to do as I'll show you in a minute.

So the first step is to launch Arcade OSD, select your desktop video mode (which should be marked in cyan to indicate its currently used by the desktop):



Now press "2" to enter non-fullscreen edit. Select "Copy modeline to clipboard". Exit Arcade OSD.



Now open Notepad. Press CTRL+V. You'll see something like this:

Code: [Select]
modeline "2560x1600_60 98.71KHz 59.97Hz" 268.50 2560 2608 2640 2720 1600 1603 1609 1646 +hsync -vsync
crt_range 98703.24-98723.24, 50.00-60.00, 0.179, 0.119, 0.298, 0.030, 0.061, 0.375, 1, 0, 1600, 1928, 3200, 3857

We're interested is in the second line. Arcade OSD has created a crt_range for you that corresponds to your current LCD timings. What you have to do is make that crt_range a bit more general so it can produce a higher number of refresh rates.

First, limit the progressive line range to the exact vertical resolution (in my case: 1600), and set the interlace range to zero:

crt_range 98703.24-98723.24, 50.00-60.00, 0.179, 0.119, 0.298, 0.030, 0.061, 0.375, 1, 0, 1600, 1600, 0, 0


Now, as the vast majority of arcade games use refresh rates between 54 and 60,61 Hz, we'll adjust the vertical frequency range:

crt_range 98703.24-98723.24, 54.00-60.61, 0.179, 0.119, 0.298, 0.030, 0.061, 0.375, 1, 0, 1600, 1600, 0, 0


The next step is vital: we need to adjust the horizontal frequency to make a valid crt_range. This is very easy to do if we have the vertical total value taken from the monitor's default timings. It's the last value in the modeline we got from Arcade OSD (don't mistake modelines and crt_ranges!):

modeline "2560x1600_60 98.71KHz 59.97Hz" 268.50 2560 2608 2640 2720 1600 1603 1609 1646 +hsync -vsync


So what we need to do is to multiply this vertical total value by each one of the vertical refresh limits:

1646 x 54.00 = 88884
1646 x 60.61 = 99764

and fill the crt_range line accordingly:

crt_range 88884-99764, 54.00-60.61, 0.179, 0.119, 0.298, 0.030, 0.061, 0.375, 1, 0, 1600, 1600, 0, 0


That's it. Finally, add a zero to the crt_range word, and we're done:

crt_range0 88884-99764, 54.00-60.61, 0.179, 0.119, 0.298, 0.030, 0.061, 0.375, 1, 0, 1600, 1600, 0, 0

NOTE: Currently both GroovyMAME and the CRT Tools have an HfreqMax limit of 100000 Hz. This is too low for 4K monitor unfortunately, so bear this in mind if you're going to try this. This limit will be removed in the future. EDIT: This limit was unlocked starting from GroovyMAME v0.203

The next step is to configure VMMaker using this custom crt_range. So let's launch VMMaker, and go to Settings->Monitor settings->Edit monitor presets.

This will open monitor.ini in Notepad. Now we'll create a new monitor preset, by adding our newly created crt_range and a monitor header, like this one:

Code: [Select]
monitor "u3011", "Dell U3011", "4:3"
crt_range0 88884-99764, 54.00-60.61, 0.179, 0.119, 0.298, 0.030, 0.061, 0.375, 1, 0, 1600, 1600, 0, 0

Here I've filled the fields in the monitor header with my monitor's name. Leave default aspect as 4:3. Save the file and exit Notepad.

Now the new monitor definition will be selectable from the monitor presets dropdown menu.



Now go to the Video card and make sure to select the right output in the Device dropdown menu. When done, press Ok to go back the VMMaker's main window.




Once in VMMaker's console (next to the Ready> prompt), type this:

mode add 2560x1600@59

Notice the "59". This is a dummy refresh. We should type one that's not used by the system. VMMaker will show this:

Code: [Select]
>>mode add 2560x1600@59             
"2560x1600_59 97.06KHz 59.00Hz" 263.99 2560 2608 2640 2720 1600 1603 1609 1645 +hsync -vsync
1 mode added to modelist.

Now type this:

modelist install

VMMaker will prompt:

Code: [Select]
>>modelist install               
Installing modelines in system...
1 modelines installed.

We can close VMMaker now, and go back to Arcade OSD, were we'll see the new mode:



Perfect. The final step is to configure GroovyMAME to use this custom monitor preset. So open mame.ini, and edit these options:

Code: [Select]
monitor custom
crt_range0 88884-99764, 54.00-60.61, 0.179, 0.119, 0.298, 0.030, 0.061, 0.375, 1, 0, 1600, 1600, 0, 0
resolution 2560x1600@59

Pay attention to the "resolution" option. We're forcing GroovyMAME to pick this dummy mode we've created. GroovyMAME will take this mode and adjust its refresh rate to whatever refresh is required.

E.g., let's launch rtype:



There it is!

If you notice that the scroll is not smooth, then your LCD can't sync to that refresh. This particular monitor I'm testing shows smooth scrolling between 58.50 and 60.61 Hz. Yours will be different. The only way to know it is by testing different games.
« Last Edit: November 02, 2018, 07:48:21 am by Calamity »
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 or pasting it.

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

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #34 on: August 03, 2018, 01:44:45 pm »
OMG you already wrote it !  :o  THANK YOU so much.
I'd like to get to 'work' immediately but it's so hot outside (38~39°C) and inside my house, I think I will break something (I trust my cooling cpu+fan might whistand the heat better than my brain right now)

Just a few questions in preparation;

1. Considering Seibu SPI games @53.986864 and Aero Fighters @61.310000, should I set the range to 53.99-61.31 or rounded to 54.00-61.30 is ok ?

2. Related to the quote below; apparently (as seen from my logs) I have several @59 modes that are listed as system ones, so what dummy value should I pick instead to be safe ?
Quote
Notice the "59". This is a dummy refresh. We should type one that's not used by the system.

3. I'm using GM 0.196 now, should I wait for the next GM release or it doesn't matter ?

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #35 on: August 03, 2018, 02:01:22 pm »
1. Considering Seibu SPI games @53.986864 and Aero Fighters @61.310000, should I set the range to 53.99-61.31 or rounded to 54.00-61.30 is ok ?

That's ok, adjust the range as you prefer, my values were just a suggestion. You can even set the lower limit to 50 Hz if your monitor can sync to PAL.

Quote
2. Related to the quote below; apparently (as seen from my logs) I have several @59 modes that are listed as system ones, so what dummy value should I pick instead to be safe ?

You can pick 59 as long as it's not currently used by the desktop. That will overwrite the system mode with a custom one. Or simply pick another value like 58.

Quote
3. I'm using GM 0.196 now, should I wait for the next GM release or it doesn't matter ?

You can use your current version.
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 or pasting it.

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

B2K24

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 188
Re: Clarification on using GroovyMAME on a LCD
« Reply #36 on: August 03, 2018, 02:19:20 pm »
Beautiful guide!

I hope it can be sticky thread here and at eiusdemmodi. If someone could convert it to PDF and attach it, It would be nice to save it locally  :)

Recapnation

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 121
    • Eiusdemmodi
Re: Clarification on using GroovyMAME on a LCD
« Reply #37 on: August 04, 2018, 06:53:36 am »
Eiusdemmodi is currently migrating to another board system and I'm not sure how long it'll take, but making posts will not be possible until then. I'll bookmark this thread to make sure we save the post there too when it happens.

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • I want a large cream coffee
Re: Clarification on using GroovyMAME on a LCD
« Reply #38 on: August 09, 2018, 01:47:04 am »
OK so here's what I got in the clipboard
Code: [Select]
modeline "1920x1080_60 33.71KHz 59.94Hz" 74.17 1920 2008 2052 2200 1080 1085 1095 1125 interlace +hsync +vsync
crt_range 33703.64-33723.64, 50.00-60.00, 1.186, 0.593, 1.995, 0.148, 0.297, 0.890, 1, 1, 540, 315, 1080, 629
Er...not sure how I should edit this, it doesn't look like the one in your example so I can't locate the values to change (I mean the vertical resolution and interlaced mode ones)
Should I assume they're always the last four?
« Last Edit: August 09, 2018, 01:48:36 am by schmerzkaufen »

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6198
Re: Clarification on using GroovyMAME on a LCD
« Reply #39 on: August 09, 2018, 03:13:50 am »
You guys always find odd ways to strain through the cracks of my tutorials  :D

Why are you using an interlaced mode on your desktop? Is it the default resolution of your monitor? Is there a progressive 1080p mode available?

My guide assumes you're using a progressive mode.
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 or pasting it.

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

  
 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31