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: How do I force all refresh rates of one resolution to use the same modeline?  (Read 1813 times)

0 Members and 1 Guest are viewing this topic.

Dracrius

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 64
  • Last login:September 13, 2019, 06:32:53 am
  • Proud Builder of a MAME Cabinet!
I realized my monitor has a limited number of geometry settings it will save so I spent the day tweaking modelines so that all the resolutions I wanted would fit. This also meant dropping 480 in favor of keeping 448 and using 960 for 240 and 480 games.

This seems to have left me with some odd effects I didnt think were possible from what I changed. For instance Bad Dudes vs. Dragonninja displays 30% shorter then Karnov despite having the same source and destination resolutions of 256x240 and 1600x960. I tested for overscan in the group of 240p games showing this behavior and using the mame sliders I can not expand the image into what I thought may be overscan like in Neo Geo Games.

Speaking of Neo Geo Games they also display differently despite me not having edited that resolution in Arcade OSD. They should have black space to the left and right but do not and when I checked Alien Syndrome which displays at the same resolution it wasnt overstretch or cut off as it should have been to hide the overscan in Metal Slug. While this may be beneficial idk how it happened.

Another example of 2 games treating a resolution differently was Asteroids and Tempest. This would be independent of any changes I made as I noticed this last week with any preset. Despite both being vector and both using 1600x1200 only Asteroids displays full screen. While Tempest is very small in the center probably about 50% the size it should be.
« Last Edit: September 08, 2019, 05:15:18 pm by Dracrius »

Dracrius

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 64
  • Last login:September 13, 2019, 06:32:53 am
  • Proud Builder of a MAME Cabinet!
Re: What Would Cause Two Games of the Same Resolution to Display Diffrently?
« Reply #1 on: September 08, 2019, 04:28:24 pm »
After some testing these two games are launching with completely different modelines and I see no reason for it. I've realized there is a modeline in the mame ini and me editing it Arcade OSD wont match that but that should mean every game using the modelines I changed should be showing wrong. I still have no clue why Karnov will use my Arcade OSD Modeline and Bad Dudes will not.

Dracrius

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 64
  • Last login:September 13, 2019, 06:32:53 am
  • Proud Builder of a MAME Cabinet!
Re: What Would Cause Two Games of the Same Resolution to Display Diffrently?
« Reply #2 on: September 08, 2019, 05:14:53 pm »
So the only thing I can figure is it just because they use different refresh rates but my word almost every game seems to use slightly different refresh rates. how do I force all refresh rates of one resolution to use the same modeline?

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7414
  • Last login:April 10, 2024, 02:02:31 pm
  • Quote me with care
Hi Dracrius,

I have to beg you to stop opening separate threads for every different question that you have. I understand you're doing it for clarity but it actually makes things more complicated for me to follow. I prefer having all questions from a single user in the same thread so I can follow it better. Right now you have several open threads and I don't know where to post, frankly.

how do I force all refresh rates of one resolution to use the same modeline?

I'll focus on this question since it seems to me it's the actual source of your confussion.

You seem to be confusing modelines with crt_ranges.

A crt_range can be seen as a formula to calculate modelines.

You simply can't force all refresh rates of one resolution to use the same modeline, that doesn't make sense: each refresh means a different modeline.

What you probably want is to force games with the same resolution to use the same crt_range (and you've probably got that already).

GM will produce new modelines to match the refresh rates of games, based on the crt_range specifications (crt_range = formula that GM uses to create modelines).

This means that your adjustments in Arcade OSD will not apply to GM. You only use Arcade OSD to *find* the correct values in order to create a crt_range, which in turn will be converted by GM to the final modelines you'll see on the screen.

Now, from your monitor's perspective, two equal resolutions with a different refresh rate are two completely different video modes. R-type is 55 Hz, 1942 is 60 Hz. As you get some experience on this, you'll learn that refresh rates are the actual heart of non-sucky emulation. You need to think in terms of video modes (resolution + refresh) rather than resolutions. Correct refresh is more important than geometry.

So, having R-type, MK, etc, looking wrong is actually expected at first unless you're very lucky, and indeed what experienced users do when setting up a new system is to do the whole "arcade refresh tour" from 54 to 60.61 Hz and check if things look correct all the range.

That requires to add a new variable to the game: the refresh rate. If at this point you feel like you'd better have used an LCD please think that you've gone further than most users so don't get frustrated yet.

You probably need to not only separate ranges by height but also by refresh. The current range you're using that you posted in some of your other threads (see what I mean) is absurdly complex. You probably could do with a much simpler one, in terms of resolutions.

Having a memory for only 8 presets is indeed a limitation, but you need to figure out a way to use it wisely. Think that arcade monitors have no memory for adjustments. There's no guarantee you can achieve a configuration that requires no manual adjustment in the future. The point is that at least you can get things perfect even if some manual adjusment is required. If you're smart enough to achieve a zero-interaction configuration then good for you but it'll probably be boring after a brief lapse.


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

Dracrius

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 64
  • Last login:September 13, 2019, 06:32:53 am
  • Proud Builder of a MAME Cabinet!
I apologize it was for clarity especially since I honestly hoped/ expected for a lot more users to give feed back rather then just yourself. I must admit having blown multiple weekends trying to learn this and only hearing from you has also been disappointing I thought more members would be willing to help. I really appreciate what you have done to help!

For clarity here are my current CRTEmu settings/ results

 
Super Res File
Code: [Select]
## Desktop ##

 1280 x 960 @ 60.000000 desktop
 1600 x 1200 @ 60.000000 desktop

## Super resolutions ##

1600 x 448 @ 60.000000 super
1600 x 512 @ 59.000000 super
1600 x 520 @ 59.000000 super
1600 x 544 @ 55.000000 super
1600 x 552 @ 60.000000 super
1600 x 560 @ 60.000000 super
1600 x 576 @ 60.000000 super
1600 x 640 @ 59.000000 super
1600 x 768 @ 60.000000 super
1600 x 960 @ 60.000000 super

Preset
Code: [Select]
monitor "vesa_1024", "VESA GTF 1024", "4:3"
crt_range0 31400-93750, 49.50-75.00, 0.684, 2.737, 3.285, 0.443, 0.102, 0.852, 0, 0, 448, 448, 0, 0
crt_range1 31400-93750, 49.50-75.00, 0.927, 2.317, 3.244, 0.445, 0.089, 0.949, 0, 0, 512, 512, 0, 0
crt_range2 31400-93750, 49.50-75.00, 0.914, 2.284, 3.198, 0.439, 0.088, 0.936, 0, 0, 520, 520, 0, 0
crt_range3 31400-93750, 49.50-75.00, 0.974, 2.165, 3.032, 0.473, 0.083, 0.974, 0, 0, 544, 544, 0, 0
crt_range4 31400-93750, 49.50-75.00, 0.976, 2.169, 3.036, 0.362, 0.084, 0.836, 0, 0, 552, 552, 0, 0
crt_range5 31400-93750, 49.50-75.00, 0.869, 2.174, 3.043, 0.278, 0.083, 0.723, 0, 0, 560, 560, 0, 0
crt_range6 31400-93750, 49.50-75.00, 0.848, 2.121, 2.969, 0.244, 0.081, 0.706, 0, 0, 576, 576, 0, 0
crt_range7 31400-93750, 49.50-75.00, 0.940, 1.519, 2.459, 0.562, 0.058, 1.163, 0, 0, 768, 768, 0, 0
crt_range8 31400-93750, 49.50-75.00, 0.768, 1.241, 2.010, 0.475, 0.048, 0.935, 0, 0, 960, 960, 0, 0
crt_range9 31400-93750, 49.50-75.00, 0.646, 1.093, 1.740, 0.013, 0.040, 0.510, 0, 0, 1200, 1200, 0, 0

Modelines Generated
Code: [Select]
""1280x960_60 63.12KHz 60.00Hz" 108.06 1280 1360 1496 1712 960 990 993 1052 -hsync -vsync
"1600x448_60 31.44KHz 60.00Hz" 63.63 1600 1640 1816 2024 448 478 481 524 -hsync -vsync
"1600x512_60 33.72KHz 60.00Hz" 69.06 1600 1664 1824 2048 512 527 530 562 -hsync -vsync
"1600x520_60 34.20KHz 60.00Hz" 70.04 1600 1664 1824 2048 520 535 538 570 -hsync -vsync
"1600x544_60 35.94KHz 60.00Hz" 73.89 1600 1672 1832 2056 544 561 564 599 -hsync -vsync
"1600x552_60 35.88KHz 60.00Hz" 73.77 1600 1672 1832 2056 552 565 568 598 -hsync -vsync
"1600x560_60 35.94KHz 60.00Hz" 73.61 1600 1664 1824 2048 560 570 573 599 -hsync -vsync
"1600x576_60 36.84KHz 60.00Hz" 75.45 1600 1664 1824 2048 576 585 588 614 -hsync -vsync
"1600x768_60 51.60KHz 60.00Hz" 110.63 1600 1704 1872 2144 768 797 800 860 -hsync -vsync
"1600x960_60 63.12KHz 60.00Hz" 135.33 1600 1704 1872 2144 960 990 993 1052 -hsync -vsync
"1600x1200_60 74.52KHz 60.00Hz" 160.96 1600 1704 1880 2160 1200 1201 1204 1242 -hsync -vsync

and a Spread Sheet of all my games and their working/visual status post a full test. I am down to about 20 games that use their own modelines that do not match the monitors settings and if I understand you correctly this is more or less ideal and if I am lucky I can change the crt_ranges to match better?

Could I define an independent crt_range per game to solve these 20 cases? Using GroovyMAME in verbose so I can copy the current faulty modelines into Arcade OSD. Then editing them and exporting them to a machine.ini?

Also I can not find any clear description of how to choose a Super Res. Should I/everyone just always use the suggested 2560? Not being able to find a way to determine what the right super res is I assumed 1600 for my monitor since the highest resolution supported by default is 1600x1200. Is this silly I was just worried about causing issues going higher then the monitor supported but I read somewhere that over 2000 made visual differences to original resolutions almost indistinguishable. Otherwise I just see many references to the default being 2560.
« Last Edit: September 09, 2019, 03:46:54 pm by Dracrius »