Main > Software Forum

[Discontinued][17-09-22] RatRefresh - refresh rate switcher, stops LCD tearing

<< < (11/31) > >>

Metalhammer:
Ok, so let's start with my report but I can anticipate I still have no good news  :(

First of all, there were no entries in my windows registry about "EDID", "EDID_OVERRIDE" or something even slightly similar.
There was one key named 'properties' (under display section of course  ;)) which didn't allow me to read its values no matter what change I tried to made to its security settings  :angry:

Eventually, after spending some time on the web, I managed to find a tool NVIDIA suggested in order to get display EDID value (Monitor Asset Manager).
After running that and playing around with 'export', 'save', etc ... I managed to have EDID entries created into the registry and accessible to me  ;)

Anyway this again was quite different than what you depicted into the initial post since the key name was 'properties' and inside there were no '0' or '1' subkeys but just 'EDID' one.
I used that one (after making other adjustments!) and RatRefresh seemed to lilke it !

When I ran the tool, I saw the monitor changing resolution (a low one like 640x480), then changing immediately back to the one I was using.
Output of the command line was the following:

C:\Users\Metalhammer\Desktop\RatRefresh>RatRefresh.exe -edidfile edid.txt -refresh 57.44
Key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\GSM56B8\5&2c2b7b9d&0&12345678&01&00\Device Parameters
Value EDID
WantedRefreshRate 57,44
HexCurrentPixelClock 2ea5
CurrentPixelClock 11941
HexHorizontalResolution 0690
HorizontalResolution 1680
HexverticalResolution 041a
VerticalResolution 1050
HexHorizontalBlankingPixels 00a0
HorizontalBlankingPixels 160
HexVerticalBlankingLines 001e
VerticalBlankingLines 30
TotalHorizontalResolution 1840
TotalVerticalResolution 1080
CalculatedPixelClock 11414
HexCalculatedPixelClock 2c96
ReversedEdidHexCalculatedPixelClock 962c
TotalChecksum 9033
Checksum 183
HexChecksum b7

Unfortunately I didn't find any tool to check if the monitor refresh rate had really changed !

I tried to run MAME games with that refresh rate but results were absolutely disappointing: together with the micro stuttering I got also tearing !
I tried to disable/enable triple buffering but difference was not huge (disabling it made the situation worse though).

Since in the registry I found two EDID entries, as if I had two monitors (like your 0 and 1 entries I presume), I tried also to use the 'other' display key (just in case) and while if I run the RatRefresh twice on the 1st I got the message 'refresh already set', if I run the 2nd I see the same resolution swap but never get the message.

I also noticed in CRU that 2nd display has the only resolution/refresh rate set to whatever I set it to while primary always stays to 60Hz.

I'm sure now that unless I have a way to check whether monitor is 'really' using the refresh rate I ask it to use, there will be no progress  :banghead:

Are you 100% sure MAME games, using this tool, don't show anymore the slightest amount of tearing and micro stuttering  :-[?

Cheers  :)

Rataplan626:
No, Device Parameters is not the key you need. You need the EDID override key. So yes it still tries to write to the read-only key you supplied, and restarts the videodriver which is why the screen 'flashes'. But also it's obvious tearing isn't gone as you do NOT actually change refresh rates with that key. I don't know how to make the manual easier to understand as it's already step by step. But here's my guess: you did NOT set a custom resolution with CRU first. In the current version of RatRefresh you will still need to do that.

So start CRU, and create a custom resolution with the native resolution of your monitor, and for example 59Hz or something like that. As soon as you apply that, in the registry under "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY" the monitor you created that resolution for should have an EDID override key. Underneath that there is probably a 0 and 1 value, usually you should use 0. That key, including 0 (or 1 if that's the active screen) and it should work.

Also, if the resolution is finally set, again I'd advice NOT to use triple buffer and/or waitvsync, but only syncrefresh. I have just tried it on a machine with a NVidia GPU and it works perfectly fine. I'd really advice you to thourougly read the opening post and work through it step by step.

The next version will allow to just select a displaydevice and the tool will read the EDID and create the appropriate override key. But for now, you'll need to go through all the hassle (but only once). If it still doesn't work, please report with a screenshot of your display registry key with all keys you have access to expanded, and the output of RatRefresh. I'm sure we can get it to work :) We could also do a Teamviewer session, as I really want to help you to get good results. :cheers:

Metalhammer:

--- Quote from: Rataplan626 on April 02, 2017, 07:43:12 am ---[...]
The next version will allow to just select a displaydevice and the tool will read the EDID and create the appropriate override key. But for now, you'll need to go through all the hassle (but only once). If it still doesn't work, please report with a screenshot of your display registry key with all keys you have access to expanded, and the output of RatRefresh. I'm sure we can get it to work :) We could also do a Teamviewer session, as I really want to help you to get good results. :cheers:

--- End quote ---
Man, you're gr8  :)

I cannot thank you enough for the assistance in this  ;) really appreciated   :cheers:
... if eventually we'll make it, I'll ask you a photo of yours in order to build a statue and put it next to the cabinet  :lol

I'm now going to try again, following your new advice, and report  8)

Metalhammer:
Guys this was thought to be a long post and ideed it was  :-\
... unfortunatelly, after writing for half an hour, I got logged out and I lost everything  :banghead: !!!!

Let's try to start from scratch, but I'm not sure I'll remember everything.

First of all: we made it  8) !!! ... thanks to RataPlan kind assistance I got what I was doing wrong  ;)

In few words, the resolution I put inside CRU, was my monitor native one (1600x1024@60Hz) and Windows/CRU was not picking it up as a real
custom one and, as such, it was not adding the EDID_OVERRIDE key inside the registry.

Adding a more 'exotic' refresh rate (59.59Hz) made the trick  ;) !

After configuring everything as Rataplan suggested, I prepared myself to enter the truth test: running a game with a non 60Hz refresh !

I used Ghost 'n Goblins as my benchmark since this was one of the main reasons for embarking into this 'refresh rate' adventure !
Unfortunatelly results were good but not what I was expecting (slightly better that running @60Hz though)  ???.

What I mean with poor results ?
I mean that the scrolling is not 'smooth' but a bit 'jerky' ... not excessively but still something noticeable  :-\.

Now how can I know there isn't something wrong in my procedure and this is the reason for the disappointing results ?
Just because many, many games are now really close to perfection as never before, no matter how hard I played with the MAME settings  :o!

... here I must thank really much RataPlan for the hard work and I won't quit stressing how this guy didn't (so far) receive the attention and
gratitude he deserves  :applaud:!

How well now Neo-Geo games run, how smooth are Mortal Kombat side scrolling portraits (the ones of the characters when you insert coin)  :applaud:!

So what about GnG  ????

To be honest I got few ideas about it which I'd like to share with you; according to my opinion there could be three reasons:

- my LCD doesn't like/pick up the 59.59Hz refresh rate
- MAME GnG driver is not optimized (other games behave similarly while others are simply perfect)
- the original arcade was exclty the same but I never noticed it (I was 8 at the time!)

To rule out the first one, I ask you the favor to do a test:

could you please run Gng (bootleg @59.59Hz) and compare it to Black Tiger (bootleg @60.00Hz) ?
Have a close look at the background: in GnG, tombstones or the far mountains for example, don't move smoothly while in Black Tiger everything is silk smooth !

Since I'm still stuck in finding a way to check my 'real' monitor refresh rate, I did some research and find a little tool, presented inside this same forum.

The tool is FreqTest and you can find it here:
http://forum.arcadecontrols.com/index.php/topic,135230.0.html

Is it reliable ? Can I succesfully check if my panel took the refresh rate I put inside RatRefresh ?

Now for the to do part  ;):

I noticed, as RataPlan himself said in the beginning, that my MAME frontend (FEEL), whenever I switch refresh rate, crashes (it goes black screen eventually crashing in a couple of minutes)  :'(.

Now, if there's no way to prevent this behavior, I'm scr**d  :timebomb: !!!

Indeed, it won't be feasible, inside a cabinet to manually start/stop applications.

Please tell me there's a solution since I cannot believe we went so far just to surrender now to evil windows events  :cry: !!!

One last thought:

I tried the same procedure on a laptop with Intel graphics; I managed to get the EDID_OVERRIDE key and to run RatRefresh but, according to the tool above (and also to various web based testers) I'm still at 60Hz ! ... obviously I tried mame, just in case, and results were trash (same as without RatRefresh), confirming I'm still at 60Hz  :badmood:.

I'm afraid there's not so much to do with my portable rig since probably the vendor locked something to prevent users tampering around with video settings !

I'll leave you alone guys for the moment, hoping that when I'll come back, someone will have really good news for the front end issue  :notworthy:!

Don't forget I still have some room, on the left of the cabinet, for a second statue (the one on the right is already booked for RataPlan's) :lol

Cheers  ;) !

Rataplan626:
I don't know that tool but ran it after running ratrefresh for Ghosts 'n Goblins (which is in fact in my favorite list in my frontend). Results:


It seems to show the value a bit less as it is (or should be) but at least it's not far off the 59.59. Now Ghosts 'n Goblins is not a good game to test this with, as it has 'native' jerky scrolling. It skips a step every 4 or 5 vertical lines or so when playing the game. When the map is shown at the beginning of a level or when you lost a life the scrolling should actually be smooth.
The game I tested most of the tool with is The New Zealand Story, tnzs. It runs at 59.150 Hz from the top of my head and has full screen smooth scrolling which makes it easy to see if it works or not. If the refreshrate is off you will most probably see vertical jags when you are walking left or right, which will completely vanish with the correct settings and vsync or syncrefresh (as said I prefer syncrefresh but still vsync or triple buffer should be ok as well). Indeed games like Metal Slug should be fine to test as well, although Metal Slug and especially Metal Slug 2 are known for some slowdowns when a lot of sprites are on screen. But that's another thing :) Also if I'm correct Metal Slug srolls with 2 pixels wide at a time, so maybe it's not THAT smooth. But again that's a game-thing, what RatRefresh should do is takeaway the tearing, which is a refresh-rate thing independent of the game you are emulating.

I'm still working to get it to work without having to restart the videodriver but despite all suggestions of the people above, that's unfortunately not how it works and I'm afraid there are vendor or even driver specific calls needed to get that working. I'm currently trying to get things working through the ChangeDisplaySettingsEx API but so far it's the same as everything else - it works as soon as the display driver is restarted, but before that it won't pickup the just-created new resolution.

Laptop: My own Lenovo ultrabook has an Intel 4000 or something like that integrated and a 60Hz panel. However, I can change refreshrates of that panel up to about 120Hz actually which is quite insane :) In fact Lenovo has a tool that brings down the refreshrate to 48Hz in order to save some battery. When that option is enabled if I remember correctly it will be 48Hz no matter what I do - Lenovo probably has an even more direct way to change that refresh rate. But with that option disabled I can freely change the refreshrate and it works perfectly fine otherwise.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version