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: Setting up crt_range for TV without specs  (Read 9624 times)

0 Members and 1 Guest are viewing this topic.

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Setting up crt_range for TV without specs
« on: April 08, 2018, 10:15:40 am »
What is the best way to derive crt_range for a TV for which the technical specs are not available?

I did a lot of Googling to try to find the necessary specifications for my Sony Trinitron WEGA KV-32FS120 TV but I was unsuccessful. All I found was this very high-level tech sheet.

My current setup (from 2016) is: Windows 7 64bit, crt_emudriver 2.0 beta 8, ATI Radeon HD 4550, this VGA to Component Video Transcoder, and Sony Trinitron WEGA KV-32FS120 TV.

Using the NTSC preset, most of the modellines look OK. Some of them I get vertical scrolling (I think that's what it is). On some of them (like 640x480 interlaced) the image bounces up and down depending on what's being displayed. If it's mostly dark, no bounce at all. If it has some colors, it bounces occasionally. If it's mostly light, it bounces a lot. Some modelines bounce more drastically than others. On all of them the image is slightly too large and offset to the right. Using the "Sony PVM" preset (this was done by accident), some of the same modelines display OK with no bouncing (ex: 640x480 interlaced).

I was using Arcade OSD to edit the modelines individually, but I realized there were a lot of modelines and the docs specifically say it's better to adjust your crt_range/monitor_specs line and regen the modelines.

EDIT: I know a lot has changed in the last 2 years, so any general advice about my setup is welcome as well.

Thanks for your help,
 - Mike
« Last Edit: April 08, 2018, 10:26:46 am by yo1dog »

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1758
  • Last login:March 22, 2024, 12:55:20 am
  • Is running at 15kHz
Re: Setting up crt_range for TV without specs
« Reply #1 on: April 08, 2018, 07:40:58 pm »
For testing, a combination of ArcadeOSD and VMM is best. The former will let you tweak existing modelines, increasing the framerate to max out the sync range, etc. The latter will let you add more modelines as needed. A good one to add is 800x600@50, that sits right on 16.2 kHz and it's nice to have for PC and newer emulated games. If it doesn't work, try 640x576@50 and increase the framerate in ArcadeOSD until it will no longer sync. Decreasing the framerate of any 60Hz mode is a good way to find your lower limits. If you lose sync, just hit ESC to go back, of course.

Doing this for testing doesn't hurt, unless the set is about to fail anyway, just don't keep pushing stuff you already know isn't going to work.

Once you have the best results, you can adjust your user_modes.ini file, or whatever you're file is called, and run VMM again, making sure to target MAME. I actually find that using a wide range of modes as described above means that i have to adjust some modes by hand whatever settings i use in VMM, but i'm driving multiple monitors with each PC as well.

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #2 on: April 09, 2018, 11:47:29 am »
Thanks for all your help buttersoft.

So it sounds like I should derive the ranges by using ArcadeOSD to edit modelines to find the limits of my TV. That makes sense. However, I don't know what values I should increase/decrease and what symptoms to look for in order to know these limits have been reached. Can you give me some details on the that? For example, what causes the bouncing I described on some of the modelines? Are they already outside some limit?

Thanks again for all your help so far.

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1758
  • Last login:March 22, 2024, 12:55:20 am
  • Is running at 15kHz
Re: Setting up crt_range for TV without specs
« Reply #3 on: April 09, 2018, 11:38:31 pm »
It will help to understand the elements a monitor range line is made up of. Take a look at sections e) and l) of this guide a i wrote a while back. It's very basic, but hopefully it will help to start thinking along the right lines - https://www.aussiearcade.com/showthread.php/87668-A-guide-to-connecting-your-Windows-PC-to-an-SD-CRT-TV-PVM-or-Arcade-Monitor

To get going, in VMM you use a CRT range line (preset) from the monitor.ini file (or customise one) that is slightly larger than you currently have (so if you're using generic_15, pick arcade_15 instead) and you add a few more modes you'd like to try in the user_mode.ini file or whatever, 800x600@50.00000 being a good one to start with. You may not want to use that mode ever again, but right now you want to find where the set's horizontal scan limits are. Install this mode, and then test it in ArcadeOSD. If it fails to sync, you'll know immediately. Mash Esc to go back.

After that, try increasing the framerate (Vfreq) of that mode (ArcadeOSD, in the edit modeline screen). See how high you can go before the picture starts distorting or the set does something upsetting like howling at you. Again, hit Esc to go back. Note down where you're comfortable. Secondly, you can bring up a mode like 320x240@60 and start lowering the framerate, until you find a lower limit. The lower limit tends not to be so important until you want to do weird stuff like run 384i modes that don't work well anyway.

The first point of doing this is to let you use a larger crt_range0 line in mame.ini. Once you understand the range lines in the monitor presets sticky, you can adjust your monitor.ini with a custom range, and also add updated timings to mame.ini if you need to for different modes.

The next point of doing this is to test your consumer Trinitron. It's not really possible that you've installed modes outside the Trinitron's designed limits using the NTSC, PAL, or generic_15 monitor presets. So... I don't *think* this is related to incorrect sync polarity, but there's a link you can read for more info on that - http://geedorah.com/eiusdemmodi/forum/viewtopic.php?id=344

Otherwise, i'm not really sure what type of jumping you're describing. Without more information i'd guess your problem is the VGA-to-component converter, and the fact your 4000-series card doesn't have a flicker-filter because those were introduced later. By delivering sync pulses at different levels you can make an interlaced image flicker more or differently. The converter is probably working within spec, it's just that Trinitrons of all stripes can be sensitive this way. Tweaking the sync makes a colossal difference to my PVM-2730's flicker, but i have to do it with discrete passive components (resistors, diodes, etc). Sadly you can't mess with a component signal nearly so easily, you'd have to either modify your VGA signal before it hits the converter, if that will even work, or open the converter and start messing around.

This isn't ironclad though, so it'd be worth playing with your modelines to see if anything helps.

« Last Edit: April 09, 2018, 11:40:57 pm by buttersoft »

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #4 on: April 10, 2018, 01:58:54 pm »
thinking along the right lines

Was that pun on purpose? :laugh:

Thanks for the details. I'll try increasing and decreasing the framerate/vertical frequency and post the results when I get home today.

Regarding the "bouncing"/"jumping" issue, I'll take a video. It does look very similar to this guy's problem, though not as extreme: video. He solved the issue by going into the service menu and changing the "SSRT" value from 0 to 3. I have no idea what this does or mean, but I'll try it out when I get home.

The lower limit tends not to be so important until you want to do weird stuff like run 384i modes that don't work well any

This got me thinking. I don't actually care what the absolute limits of the TV are because I am not concerned with every MAME game. I just need to know which of the games I care about will be able to display at native resolutions. So I wrote a little script that uses mame.exe -listxml to calculate the horizontal frequency for each of my 56 landscape orientated games. Here's the list.

I wasn't sure exactly how to calculate the horizontal frequency. I found the formula numLines * 1.05 * refreshRate from this page which makes sense (the 1.05 is for the vertical blanking interval). I assume that the display refresh property reported by MAME is the refresh rate. However I was not sure if I should use the display height or vtotal for the number of lines. vtotal is the number of lines (height) plus the vertical front and back porch. But why does MAME define the porches/vertical blanking? Shouldn't that be controlled by the modeline? Also, not all games had vtotal defined. I assume height should be used.

Using height * 1.05 * refresh and excluding EGA and VGA games, the hfreq range is 13.22-15.14kHz. vfreq is 55.00-61.0 (also 30.00 for 480i). Given that the entire range is under 15.75kHz, I should be good, right?

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1758
  • Last login:March 22, 2024, 12:55:20 am
  • Is running at 15kHz
Re: Setting up crt_range for TV without specs
« Reply #5 on: April 10, 2018, 07:49:41 pm »
You're calculating wrong. That list is mostly classic 15kHz games - almost bang on 15.7 kHz, from memory. Almost all old 2D arcade games are , all the capcom ones, neogeo, all the taito ones.  Sega system one is like 512x240. There's a few outliers in mame like Blazing Lazers which is 1288 x 256 or something, but even that isn't too far out.

Using height x 1.05 can approximate badly sometimes. You would normally be using Vtotal to calculate, as the sync circuitry doesn't care what the guns are doing, it's still drawing lines. So for a Neo Geo game:

H-freq = Vtotal x refresh

15.626 kHz = 264 x 59.19

It's actually really unlikely that a best-of mame list, even your own best-of, will need anything more than the standard user mode + super.ini file contains (MK games aside, IIRC). Rather than trying to push for range limits, grab your games list and load them one by one in GM, taking note of the infoscreen that splashes up telling you the game's native resolution, and then the resolution GM has picked. If this looks right there's not a lot for you to adjust beyond tweaking the horizontal size or position if those are slightly off.

The range limits are set in GroovyMAME as it's inbuilt switchres utility calculates a modeline on the fly. It grabs a mode with the right number of vertical lines and re-writes it with the exact refresh rate of the original game, subject to the constraints of the range line. This way you get the most perfect reproduction possible. There can be more detail than this, but using super resolutions is the easiest/best way to do it. You install the super resolutions, and then in mame.ini set resolution to 2560x0 and super_width to 2560. This tells GM to do the above. If you're confused by super resolutions, have a look at section d) of that guide i linked to above.

By default, GM is set not to stretch the image in the vertical direction when it finds and calculates a modeline. This is critical for perfect visual reproduction. A game like SF2 on the CPS1 system, at 384x224, will pick 2560x240 if that is the mode with the lowest number of vertical lines you have, and simply leave 8 blank lines each at the top and bottom.

I would guess that your problem is the TV being sensitive to the output of the VGA-to-Component converter, not the video signal itself. I would not presume other equipment would fix this, either.

If you do want to play around further, be aware that your TV probably won't go far below ~15kHz if it goes that far, so you'll want to test that.  Also, it sounds unusual that you'd be finding games running less than 15kHz. Even ancient Dos games running CGA were 200 lines at 70Hz refresh - so still 15kHz. They didn't really make monitors that ran less than 15kHz; at least, not anything in the 80's. It's only us emulator users that really try to screw with modelines that want frequencies that low, and even then those are edge cases like the 384i mode i mentioned - which looks like balls and is really squashed down anyway and totally not worth the effort.


EDIT: yeah ok i just watched the video. That is pretty bad. Your PVM-20M2 will take component also - does it work fine with the transcoder, or show the same issue?




« Last Edit: April 10, 2018, 08:52:50 pm by buttersoft »

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #6 on: April 12, 2018, 01:28:22 pm »
As suggested, I used my list of favorite ROMs to generate modelines. I also updated GroovyMAME to v0.196. Here was the result:

Code: [Select]
  _____ _____ _____     _           
 |  |  |     |     |___| |_ ___ ___
 |  |  | | | | | | | .'| '_| -_|  _|
  \___/|_|_|_|_|_|_|__,|_,_|___|_|   2.0 beta 8 by Calamity - 2008/2016

Processing config...

>>display_init \System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000               
Listing display devices...
\\.\DISPLAY1 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - Generic Non-PnP Monitor - enabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000
\\.\DISPLAY2 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - No monitor - disabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0001

Getting driver information for \\.\DISPLAY1
ADL Library found, retrieving functions...
ADL functions retrieved successfully.
CRT Emudriver 2.0 (12.6) found.

>>config_process               
Processing config...

>>modedb_build               
Creating mode list...
Importing video modes from custom list...

Extracting mame.xml...

Importing video modes from MAME.xml...
Mame v0.196 (unknown)

   38 video modes found

Generating dynamic mode table...
 22 redundant video modes found.

Reducing mode list...
 0 video modes dropped.

 16 modelines generated.

Exporting settings to mame.ini...
"256x240_60 15.70KHz 59.94Hz" 4.90 256 264 288 312 240 244 247 262 -hsync -vsync
"288x240_60 15.70KHz 59.94Hz" 5.40 288 296 320 344 240 244 247 262 -hsync -vsync
"296x240_60 15.70KHz 59.94Hz" 5.53 296 304 328 352 240 244 247 262 -hsync -vsync
"304x240_60 15.70KHz 59.94Hz" 5.65 304 312 336 360 240 244 247 262 -hsync -vsync
"320x240_60 15.70KHz 59.94Hz" 6.28 320 336 368 400 240 244 247 262 -hsync -vsync
"336x240_60 15.70KHz 59.94Hz" 6.53 336 352 384 416 240 244 247 262 -hsync -vsync
"352x240_60 15.70KHz 59.94Hz" 6.78 352 368 400 432 240 244 247 262 -hsync -vsync
"360x240_60 15.70KHz 59.94Hz" 6.91 360 376 408 440 240 244 247 262 -hsync -vsync
"384x240_60 15.70KHz 59.94Hz" 7.29 384 400 432 464 240 244 247 262 -hsync -vsync
"400x240_60 15.70KHz 59.94Hz" 7.54 400 416 448 480 240 244 247 262 -hsync -vsync
"416x240_60 15.70KHz 59.94Hz" 8.04 416 432 472 512 240 244 247 262 -hsync -vsync
"512x240_60 15.70KHz 59.94Hz" 9.80 512 528 576 624 240 244 247 262 -hsync -vsync
"512x480_60 15.73KHz 59.94Hz" 9.82 512 528 576 624 480 487 493 525 interlace -hsync -vsync
"640x240_60 15.70KHz 59.94Hz" 12.19 640 664 720 776 240 244 247 262 -hsync -vsync
"640x480_60 15.73KHz 59.94Hz" 12.21 640 664 720 776 480 487 493 525 interlace -hsync -vsync
"704x480_60 15.73KHz 59.94Hz" 13.47 704 728 792 856 480 487 493 525 interlace -hsync -vsync

>>modelist_install               
Installing modelines in system...
16 modelines installed.
Restarting device \\.\DISPLAY1
C:\CRT Emudriver\devutil64.exe reset "PCI\VEN_1002&DEV_9540&SUBSYS_00021028&REV_00"
Device has changed.
Listing display devices...
\\.\DISPLAY4 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - Generic Non-PnP Monitor - enabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000
\\.\DISPLAY5 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - No monitor - disabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0001
enabling \\.\DISPLAY4 : success

Two questions here: How exactly does VMMaker modify mame.ini? I see that the monitor preset and crt range lines were changed, but where do the printed out modelines ("256x240_60 ...") go? Also what is the format of those modelines?

I then started each of the games in GroovyMAME. Here's partial output from GoovyMAME. I deduped and sorted by native height, width, and refresh rate:
Code: [Select]
SwitchRes: [64street] (1) horizontal (256x224@56.191349)->(256x240@59.939999)
SwitchRes: [10yard  ] (1) horizontal (256x224@56.737587)->(256x240@59.939999)
SwitchRes: [snowbros] (1) horizontal (256x224@57.500000)->(256x240@59.939999)
SwitchRes: [bublbobl] (1) horizontal (256x224@59.185608)->(256x240@59.939999)
SwitchRes: [elevator] (1) horizontal (256x224@60.000000)->(256x240@59.939999)
SwitchRes: [simpsons] (1) horizontal (288x224@59.185608)->(288x240@59.939999)
SwitchRes: [ssriders] (1) horizontal (288x224@60.000000)->(288x240@59.939999)
SwitchRes: [bosco   ] (1) horizontal (288x224@60.606060)->(288x240@59.939999)
SwitchRes: [tmnt2   ] (1) horizontal (304x224@60.000000)->(304x240@59.939999)
SwitchRes: [bublbob2] (1) horizontal (320x224@58.970001)->(320x240@59.939999)
SwitchRes: [mslug   ] (1) horizontal (320x224@59.185608)->(320x240@59.939999)
SwitchRes: [88games ] (1) horizontal (320x224@60.000000)->(320x240@59.939999)
SwitchRes: [goldnaxe] (1) horizontal (320x224@60.054390)->(320x240@59.939999)
SwitchRes: [ffreveng] (1) horizontal (352x224@59.764801)->(352x240@59.939999)
SwitchRes: [1944    ] (1) horizontal (384x224@59.637405)->(384x240@59.939999)
SwitchRes: [ga2     ] (1) horizontal (416x224@60.000000)->(416x240@59.939999)
SwitchRes: [choplift] (1) horizontal (512x224@60.096153)->(512x240@59.939999)
SwitchRes: [missile ] (1) horizontal (256x231@61.035156)->(256x240@59.939999)
SwitchRes: [elvactr ] (1) horizontal (320x232@58.970001)->(320x240@59.939999)
SwitchRes: [ddragonu] (1) horizontal (256x240@57.444855)->(256x240@59.939999)
SwitchRes: [defender] (1) horizontal (292x240@60.096153)->(296x240@59.939999)
SwitchRes: [ddragon3] (1) horizontal (320x240@57.444855)->(320x240@59.939999)
SwitchRes: [snowbro2] (1) horizontal (320x240@59.637405)->(320x240@59.939999)
SwitchRes: [gaunt2  ] (1) horizontal (336x240@59.922745)->(336x240@59.939999)
SwitchRes: [policetr] (1) horizontal (394x240@60.000000)->(400x240@59.939999)
SwitchRes: [blstroid] (1) horizontal (640x240@59.922749)->(640x240@59.939999)
SwitchRes: [mpatrol ] (1) horizontal (240x252@56.737587)->(704x480@59.939999)
SwitchRes: [kungfum ] (1) horizontal (256x256@55.000000)->(704x480@59.939999)
SwitchRes: [rtype   ] (1) horizontal (384x256@55.017605)->(704x480@59.939999)
SwitchRes: [paperboy] (1) horizontal (512x384@60.096153)->(704x480@59.939999)
SwitchRes: [rampage ] (1) horizontal (512x480@30.000000)->(512x480@59.939999)
SwitchRes: [timecris] (1) horizontal (640x480@60.000000)->(704x480@59.939999)

On screen, almost all the games looked pixel perfect to me. But, it has been a few years since I have been to an arcade.

As you can see, even though half the games have a height of 224, no modeline with a height of 224 was created. You mentioned 240 vs 224 in your previous comment as well. Is this because of a limiting minimum vfreq?

A few other exceptions: defender and policetr use modelines with matching heights but slightly different widths (ex: defender 292x240 -> 296x240). Also, all games with a native height > 240 use an interlaced modeline (ex: rtype 384x256 -> 704x480).

You mentioned that GroovyMAME rewrites the refresh rate to match the game, so I assume that means I shouldn't care when the native and modeline refresh rates don't match.

Regarding super resolutions, thanks for your great write up. Because I have such a small set of modelines, is there any advantage to using super resolutions?

Thanks again for your help!

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: Setting up crt_range for TV without specs
« Reply #7 on: April 12, 2018, 02:16:12 pm »
Quote
Two questions here: How exactly does VMMaker modify mame.ini? I see that the monitor preset and crt range lines were changed, but where do the printed out modelines ("256x240_60 ...") go? Also what is the format of those modelines?

VMMaker modifies the crt_range options in mame.ini. Besides, it sets "monitor custom" by default regardless of the monitor preset chosen in VMMaker, by explicitely providing the crt_range options for that preset, whatever it is.

Think of the crt_range as a formula for creating modelines. The modelines printed out in VMMaker console are stored in Windows registry. GM needs an entry active for each individual resolution, but it will completely override the default modeline associated to that entry with its own modeline calculated on the fly, based on the rules contained in the crt_range option.

You shouldn't be using the ntsc preset. That one is only useful for very rare cases. That's the reason why GM is setting the same refresh for all games. Work with arcade_15 instead.
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

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #8 on: April 12, 2018, 05:08:02 pm »
Hmm. I know I have come across the details of how VMMaker/crt_emudriver and GroovyMAME work together at some point, but I can not remember where. Can you point me in the right direction?

GM needs an entry active for each individual resolution, but it will completely override the default modeline associated to that entry with its own modeline calculated on the fly

The range limits are set in GroovyMAME as it's inbuilt switchres utility calculates a modeline on the fly. It grabs a mode with the right number of vertical lines and re-writes it with the exact refresh rate of the original game, subject to the constraints of the range line.

So does this mean that GroovyMAME only needs a modeline in the Windows registry with the correct number of lines? If that is the case, why have both 256x240_60 and 288x240_60? Calamity, you said "each individual resolution". Does that mean both height and width? I think I am missing something basic here.


yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #9 on: April 12, 2018, 07:06:02 pm »
OK I switched from the NTSC preset to Arcade 15. Here are the results:

Code: [Select]
  _____ _____ _____     _           
 |  |  |     |     |___| |_ ___ ___
 |  |  | | | | | | | .'| '_| -_|  _|
  \___/|_|_|_|_|_|_|__,|_,_|___|_|   2.0 beta 8 by Calamity - 2008/2016

Processing config...

>>display_init \System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000               
Listing display devices...
\\.\DISPLAY4 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - Generic Non-PnP Monitor - enabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000
\\.\DISPLAY5 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - No monitor - disabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0001

Getting driver information for \\.\DISPLAY4
ADL Library found, retrieving functions...
ADL functions retrieved successfully.
CRT Emudriver 2.0 (12.6) found.

>>config_process               
Processing config...

>>modedb_build               
Creating mode list...
Importing video modes from custom list...

Importing video modes from MAME.xml...
Mame v0.196 (unknown)

   38 video modes found

Generating dynamic mode table...
 18 redundant video modes found.

Reducing mode list...
 0 video modes dropped.

 20 modelines generated.

Exporting settings to mame.ini...
"240x256_58 16.20KHz 58.48Hz" 5.18 240 256 280 320 256 258 261 277 -hsync -vsync
"256x240_60 15.66KHz 60.00Hz" 5.26 256 272 296 336 240 242 245 261 -hsync -vsync
"256x256_58 16.20KHz 58.48Hz" 5.44 256 272 296 336 256 258 261 277 -hsync -vsync
"288x240_60 15.66KHz 60.00Hz" 6.01 288 304 336 384 240 242 245 261 -hsync -vsync
"296x240_60 15.66KHz 60.00Hz" 6.14 296 312 344 392 240 242 245 261 -hsync -vsync
"304x240_60 15.66KHz 60.00Hz" 6.26 304 320 352 400 240 242 245 261 -hsync -vsync
"320x240_60 15.66KHz 60.00Hz" 6.64 320 336 368 424 240 242 245 261 -hsync -vsync
"336x240_60 15.66KHz 60.00Hz" 6.89 336 352 384 440 240 242 245 261 -hsync -vsync
"352x240_60 15.66KHz 60.00Hz" 7.14 352 368 400 456 240 242 245 261 -hsync -vsync
"360x240_60 15.66KHz 60.00Hz" 7.27 360 376 408 464 240 242 245 261 -hsync -vsync
"384x240_60 15.66KHz 60.00Hz" 7.89 384 400 440 504 240 242 245 261 -hsync -vsync
"384x256_58 16.20KHz 58.48Hz" 8.16 384 400 440 504 256 258 261 277 -hsync -vsync
"400x240_60 15.66KHz 60.00Hz" 8.14 400 416 456 520 240 242 245 261 -hsync -vsync
"416x240_60 15.66KHz 60.00Hz" 8.39 416 432 472 536 240 242 245 261 -hsync -vsync
"512x240_60 15.66KHz 60.00Hz" 10.40 512 536 584 664 240 242 245 261 -hsync -vsync
"512x480_60 15.69KHz 60.00Hz" 10.42 512 536 584 664 480 483 489 523 interlace -hsync -vsync
"640x240_60 15.66KHz 60.00Hz" 13.03 640 664 728 832 240 242 245 261 -hsync -vsync
"640x480_60 15.69KHz 60.00Hz" 13.05 640 664 728 832 480 483 489 523 interlace -hsync -vsync
"664x496_60 16.17KHz 60.00Hz" 14.10 664 696 760 872 496 499 505 539 interlace -hsync -vsync
"704x480_60 15.69KHz 60.00Hz" 14.31 704 736 800 912 480 483 489 523 interlace -hsync -vsync

>>modelist_install               
Installing modelines in system...
20 modelines installed.
Restarting device \\.\DISPLAY4
C:\CRT Emudriver\devutil64.exe reset "PCI\VEN_1002&DEV_9540&SUBSYS_00021028&REV_00"
Device has changed.
Device has changed.
Listing display devices...
\\.\DISPLAY7 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - Generic Non-PnP Monitor - enabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000
\\.\DISPLAY8 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - No monitor - disabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0001
enabling \\.\DISPLAY7 : success

Code: [Select]
SwitchRes: [64street] (1) horizontal ( 256x224@56.191349)->(256x240@56.191349)
SwitchRes: [10yard  ] (1) horizontal ( 256x224@56.737587)->(256x240@56.737587)
SwitchRes: [bublbobl] (1) horizontal ( 256x224@59.185608)->(256x240@59.185608)
SwitchRes: [elevator] (1) horizontal ( 256x224@60.000000)->(256x240@60.000000)
SwitchRes: [bosco   ] (1) horizontal ( 288x224@60.606060)->(288x240@60.606060)
SwitchRes: [bublbob2] (1) horizontal ( 320x224@58.970001)->(320x240@58.970001)
SwitchRes: [mslug5  ] (1) horizontal ( 320x224@59.185608)->(320x240@59.185608)
SwitchRes: [88games ] (1) horizontal ( 320x224@60.000000)->(320x240@60.000000)
SwitchRes: [1944    ] (1) horizontal ( 384x224@59.637405)->(384x240@59.637405)
SwitchRes: [choplift] (1) horizontal ( 512x224@60.096153)->(512x240@60.096153)
SwitchRes: [ddragonu] (1) horizontal ( 256x240@57.444855)->(256x240@57.444855)
SwitchRes: [defender] (1) horizontal ( 292x240@60.096153)->(296x240@60.096153)
SwitchRes: [ddragon3] (1) horizontal ( 320x240@57.444855)->(320x240@57.444855)
SwitchRes: [policetr] (1) horizontal ( 394x240@60.000000)->(400x240@60.000000)
SwitchRes: [blstroid] (1) horizontal ( 640x240@59.922749)->(640x240@59.922749)
SwitchRes: [mpatrol ] (1) horizontal ( 240x252@56.737587)->(240x256@56.737587)
SwitchRes: [rtype   ] (1) horizontal ( 384x256@55.017605)->(384x256@55.017605)
SwitchRes: [paperboy] (1) horizontal ( 512x384@60.096153)->(664x496@60.096153)
SwitchRes: [rampage ] (1) horizontal ( 512x480@30.000000)->(512x480@60.000000)
SwitchRes: [asteroid] (1) horizontal (1045x789@61.523438)->(704x480@61.523438)

As you can see, 4 more modelines were added. Specifically:

Code: [Select]
"240x256_58 16.20KHz 58.48Hz" 5.18 240 256 280 320 256 258 261 277 -hsync -vsync
"256x256_58 16.20KHz 58.48Hz" 5.44 256 272 296 336 256 258 261 277 -hsync -vsync
"384x256_58 16.20KHz 58.48Hz" 8.16 384 400 440 504 256 258 261 277 -hsync -vsync
"664x496_60 16.17KHz 60.00Hz" 14.10 664 696 760 872 496 499 505 539 interlace -hsync -vsync

Also, all the modeline refresh rates now match the native refresh rates!

Still no 224 resolutions (still not sure if that matters). defender and policetr still using modelines with widths different from native. This time I noticed possible evidence of stretching in defender. Pixels seem to bleed a lot.

rtype, mpatrol, and kungfum now display at their correct native resolutions instead of interlaced ones.

asteroid ran at 50% speed:
Code: [Select]
Average speed: 50.01% (15 seconds)

Something to do with it being vector and using an interlaced modeline? Actually, that makes sense. It's trying to display a 60hz game using an interlaced resolution which is 30hz. So it must either skip every other frame or run at half speed. I assume the solution is to use a progressive resolution for vector games instead. How do I tell GroovyMAME to do this?
« Last Edit: April 12, 2018, 07:09:27 pm by yo1dog »

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1758
  • Last login:March 22, 2024, 12:55:20 am
  • Is running at 15kHz
Re: Setting up crt_range for TV without specs
« Reply #10 on: April 12, 2018, 08:09:18 pm »
Still no 224 resolutions (still not sure if that matters).

http://forum.arcadecontrols.com/index.php/topic,157018.msg1649803.html#msg1649803

Too tired to reply to the rest, sorry.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: Setting up crt_range for TV without specs
« Reply #11 on: April 13, 2018, 07:05:50 am »
So does this mean that GroovyMAME only needs a modeline in the Windows registry with the correct number of lines? If that is the case, why have both 256x240_60 and 288x240_60? Calamity, you said "each individual resolution". Does that mean both height and width? I think I am missing something basic here.

Yeah, resolution = width x height.

video mode = width x height x refresh


Buttersoft was suggesting you to use super resolutions. If you do that, then yes, you only need a "modeline" stored in the registry for each individual height. E.g.:

2560x240_60 -> is "transformed" to 256x240, 288x240, 320x240, etc., plus the correct refresh.


If instead, you use classical dynamic resolutions (the way you're doing), then you need a "modeline" stored for each individual resolution, e.g.

256x240_60 -> is recalculated to any required refresh
288x240_60 -> idem
320x240_60 -> etc.


You see that using super resolutions simplifies the problem greatly.

With regards to 224 lines modes, think of those as 240 lines modes with 16 lines of extra blanking (borders). That's exactly what the real hardware did. GM takes care of this and adds the proper borders to avoid vertical stretching. So keeping separate 224 lines modes makes no sense. VMMaker allows to produce 224 lines modes if you dig in the options, but it's not required really.

Finally, with regards to interlaced games running at 50%, you need to run this tool (already mentioned above): http://geedorah.com/eiusdemmodi/forum/viewtopic.php?id=344
« Last Edit: April 13, 2018, 07:09:24 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 of pasting it.

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

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #12 on: April 13, 2018, 01:01:06 pm »
Thanks guys. Sorry to make you answer the same questions over and over. I promise I have been doing a lot of reading but the information is so scattered it can be hard to put it all together.

I was assuming that vertical blanking was used to maintain both the native height and vsync for 224 heights. Thanks for confirming.

I understand super resolutions and how they work. I now realize when buttersoft said "[GM] grabs a mode with the right number of vertical lines" he was referring to super resolutions and when Calamity said "GM needs an entry active for each individual resolution" he was referring to dynamic resolutions. That's where my confusion was coming from. However, I am still not sure why super resolutions are better. I understand that they reduce the number of modelines needed, but how is this advantageous when VMMaker automatically generates these? (Assuming the number of modelines needed for dynamic resolutions is within the limits.)

Calamity, can you explain further how your patch solves the issue? The way I see it, the game runs at 60fps but my CRT is only capable of displaying interlaced resolutions at 30fps (thats frames not fields). So either all frames are shown at 30fps and the game runs at 30ps. Or, every other frame is dropped and half the frames are shown at 60fps and the game runs at 60ps. Actually, it would be possible to run the game at 60fps without dropping any frames if the CRT displays only half of each frame. Specifically, it could display the even lines of the first game frame as the even lines of the CRT frame (first field) and the odd lines of the next game frame as the odd lines of the same CRT frame (second field). This way we create a single, interlaced CRT frame from two game frames. To put it another way, you would be using two game frames as the two fields of a single interlaced CRT frame. Please correct me if I am wrong.

Finally, when using dynamic resolutions, why does VMMaker generate a 296x240 modeline when no games on the list use that resolution? defender, joust, and bubbles are 292x240, so GoovyMAME chooses 292x240->296x240.  Does GroovyMAME use horizontal blanking to maintain native resolutions as it does with vertical? Is it stretching horizontally? Why not just create a 292x240 modeline?

Thanks again.
« Last Edit: April 13, 2018, 03:42:55 pm by yo1dog »

marcelosofth

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 22
  • Last login:November 12, 2018, 05:54:46 am
  • I want to build my own arcade controls!
Re: Setting up crt_range for TV without specs
« Reply #13 on: April 13, 2018, 02:23:00 pm »
Friends, what is the definition for me to put in mame.ini to change the resolution of the games 320x224 (H) 57.230000 Hz to 320x224 (H) 60.054389 Hz?  :dunno

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #14 on: April 13, 2018, 02:33:22 pm »
Friends, what is the definition for me to put in mame.ini to change the resolution of the games 320x224 (H) 57.230000 Hz to 320x224 (H) 60.054389 Hz?  :dunno

1. My issue was using a crt_range that was too limited.
2. Don't thread hijack :)

marcelosofth

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 22
  • Last login:November 12, 2018, 05:54:46 am
  • I want to build my own arcade controls!
Re: Setting up crt_range for TV without specs
« Reply #15 on: April 13, 2018, 02:40:09 pm »
But my case is simpler, I just need to switch from 320x224 57hz to 320x224 60hz and add the lineage in Range, do you know what the command line would look like inside the mame.ini?

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #16 on: April 13, 2018, 02:43:09 pm »
Nope. You should start a thread to ask that question. :) Include details like why you are trying to change the refresh rate.

Edit: Looks like you already have: http://forum.arcadecontrols.com/index.php/topic,157041.msg1649999.html#msg1649999

Be patient. Don't start hijacking other people's threads because you haven't received an answer only a few hours after starting a thread. ::)
« Last Edit: April 13, 2018, 02:50:30 pm by yo1dog »

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: Setting up crt_range for TV without specs
« Reply #17 on: April 14, 2018, 07:03:00 am »
However, I am still not sure why super resolutions are better. I understand that they reduce the number of modelines needed, but how is this advantageous when VMMaker automatically generates these? (Assuming the number of modelines needed for dynamic resolutions is within the limits.)

Check this.

Quote
To put it another way, you would be using two game frames as the two fields of a single interlaced CRT frame. Please correct me if I am wrong.

Yes, that's the idea and what we've been doing since the beginning. Unfortunately since W7 the OS hides the odd field sync pulse from us, so only the even pulse is notified (30 pulses per second instead of 60). My patch removes this "functionality".

Quote
Why not just create a 292x240 modeline?

Because 292 is not a multiple of 8, which is a condition for horizontal resolutions. GM won't stretch the picture, it will leave borders just like in the vertical case.
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

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #18 on: April 23, 2018, 05:05:22 pm »
Finally, with regards to interlaced games running at 50%, you need to run this tool (already mentioned above): http://geedorah.com/eiusdemmodi/forum/viewtopic.php?id=344

I got the "Binary version not supported." prompt. I emailed my dxgmms1.sys as instructed (also attached to this post).

To test how vertically oriented games would look on my horizontally oriented TV, I tested Ms. Pacman. I added mspacman to mame_favorites.ini, regenerated, and reinstalled modelines:
Code: [Select]
  _____ _____ _____     _           
 |  |  |     |     |___| |_ ___ ___
 |  |  | | | | | | | .'| '_| -_|  _|
  \___/|_|_|_|_|_|_|__,|_,_|___|_|   2.0 beta 8 by Calamity - 2008/2016

Processing config...

>>display_init \System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000               
Listing display devices...
\\.\DISPLAY1 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - Generic Non-PnP Monitor - enabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000
\\.\DISPLAY2 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - No monitor - disabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0001

Getting driver information for \\.\DISPLAY1
ADL Library found, retrieving functions...
ADL functions retrieved successfully.
CRT Emudriver 2.0 (12.6) found.

>>config_process               
Processing config...

>>modedb_build               
Creating mode list...
Importing video modes from custom list...

Importing video modes from MAME.xml...
Mame v0.196 (unknown)

   39 video modes found

Generating dynamic mode table...
 18 redundant video modes found.

Reducing mode list...
 0 video modes dropped.

 21 modelines generated.

Exporting settings to mame.ini...
"240x256_58 16.20KHz 58.48Hz" 5.18 240 256 280 320 256 258 261 277 -hsync -vsync
"256x240_60 15.66KHz 60.00Hz" 5.26 256 272 296 336 240 242 245 261 -hsync -vsync
"256x256_58 16.20KHz 58.48Hz" 5.44 256 272 296 336 256 258 261 277 -hsync -vsync
"288x240_60 15.66KHz 60.00Hz" 6.01 288 304 336 384 240 242 245 261 -hsync -vsync
"296x240_60 15.66KHz 60.00Hz" 6.14 296 312 344 392 240 242 245 261 -hsync -vsync
"304x240_60 15.66KHz 60.00Hz" 6.26 304 320 352 400 240 242 245 261 -hsync -vsync
"320x240_60 15.66KHz 60.00Hz" 6.64 320 336 368 424 240 242 245 261 -hsync -vsync
"336x240_60 15.66KHz 60.00Hz" 6.89 336 352 384 440 240 242 245 261 -hsync -vsync
"352x240_60 15.66KHz 60.00Hz" 7.14 352 368 400 456 240 242 245 261 -hsync -vsync
"360x240_60 15.66KHz 60.00Hz" 7.27 360 376 408 464 240 242 245 261 -hsync -vsync
"384x240_60 15.66KHz 60.00Hz" 7.89 384 400 440 504 240 242 245 261 -hsync -vsync
"384x256_58 16.20KHz 58.48Hz" 8.16 384 400 440 504 256 258 261 277 -hsync -vsync
"400x240_60 15.66KHz 60.00Hz" 8.14 400 416 456 520 240 242 245 261 -hsync -vsync
"400x288_52 16.20KHz 52.43Hz" 8.42 400 416 456 520 288 290 293 309 -hsync -vsync
"416x240_60 15.66KHz 60.00Hz" 8.39 416 432 472 536 240 242 245 261 -hsync -vsync
"512x240_60 15.66KHz 60.00Hz" 10.40 512 536 584 664 240 242 245 261 -hsync -vsync
"512x480_60 15.69KHz 60.00Hz" 10.42 512 536 584 664 480 483 489 523 interlace -hsync -vsync
"640x240_60 15.66KHz 60.00Hz" 13.03 640 664 728 832 240 242 245 261 -hsync -vsync
"640x480_60 15.69KHz 60.00Hz" 13.05 640 664 728 832 480 483 489 523 interlace -hsync -vsync
"664x496_60 16.17KHz 60.00Hz" 14.10 664 696 760 872 496 499 505 539 interlace -hsync -vsync
"704x480_60 15.69KHz 60.00Hz" 14.31 704 736 800 912 480 483 489 523 interlace -hsync -vsync

>>modelist_install               
Installing modelines in system...
21 modelines installed.
Restarting device \\.\DISPLAY1
C:\CRT Emudriver\devutil64.exe reset "PCI\VEN_1002&DEV_9540&SUBSYS_00021028&REV_00"
Device has changed.
Listing display devices...
\\.\DISPLAY4 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - Generic Non-PnP Monitor - enabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000
\\.\DISPLAY5 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - No monitor - disabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0001
enabling \\.\DISPLAY4 : success

1 new modeline was created:
Code: [Select]
"400x288_52 16.20KHz 52.43Hz" 8.42 400 416 456 520 288 290 293 309 -hsync -vsync

I then started mspacman in Mame:
Code: [Select]
C:\GroovyMAME\mame64.exe mspacman

SwitchRes: [mspacman] (1) vertical (224x288@60.606060)->(400x288@52.427185)

The display scrolls vertically. I assume the culprit is the modeline's height of 288. However, I am not sure what or how I should adjust VMMaker. I tried searching but I did not come up with anything (probably because I don't know what to search for). An interlaced modeline should be used, right?

Thanks again,
 - Mike
« Last Edit: April 23, 2018, 05:07:43 pm by yo1dog »

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1758
  • Last login:March 22, 2024, 12:55:20 am
  • Is running at 15kHz
Re: Setting up crt_range for TV without specs
« Reply #19 on: April 23, 2018, 09:13:32 pm »
How do you mean it scrolls vertically? You mean there's tearing? This would be happening because your 400x288 mode runs at 52.34Hz, but mspacman runs at 60.606060Hz?

I think Calamity made some posts about this the other day, but i can't seem to find them. Try the below link. you don't want everything on zero, you want tripplebuffer on, i think.

http://forum.arcadecontrols.com/index.php/topic,133395.msg1374501.html#msg1374501

I still don't get why you're not using super resolutions and just setting the aspect ratio in mame.ini (or vertical.ini, or mspacman.ini if you like.) I guess if those 40 modelines cover you that's not too bad though.

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #20 on: April 24, 2018, 12:03:38 pm »
How do you mean it scrolls vertically? You mean there's tearing?

No, not tearing. I guess "scrolls vertically" is not the correct term. Here's a video:

I still don't get why you're not using super resolutions and just setting the aspect ratio in mame.ini (or vertical.ini, or mspacman.ini if you like.) I guess if those 40 modelines cover you that's not too bad though.

I plan on using them. I just haven't switched over yet. I figured it's best to change only 1 thing at a time to keep things simple for now.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: Setting up crt_range for TV without specs
« Reply #21 on: April 25, 2018, 02:15:51 pm »
That's your TV that doesn't like 52 Hz. It's not a PAL frequency (50Hz) and certainly not NTSC. Try that game using "-monitor pal" in the command line.

The other solution is to use an interlace mode. In order to do that, instead of forcing an interlaced resolution manually, I recommend you to edit your monitor preset and change the 288 lines progressive lines limit by 256. That will automatically interlace whatever that goes above that limit.
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

yo1dog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 368
  • Last login:October 10, 2023, 10:48:49 am
    • MikeArcade
Re: Setting up crt_range for TV without specs
« Reply #22 on: May 01, 2018, 11:55:41 am »
That's your TV that doesn't like 52 Hz. It's not a PAL frequency (50Hz) and certainly not NTSC.

What's the name for this kind of issue? I am ignorant of the proper nomenclature and would like to learn so I can better discuss this properly. :)

Try that game using "-monitor pal" in the command line.

Looks like this forces the refresh rate to 50Hz. I still have the same issue as before, tough it "scrolled" (incorrect term) slower. Here's a video:
Somewhat related: Is there documentation of the command line options (and configuration params) for GoovyMAME? Something similar to MAME's documentation?

The other solution is to use an interlace mode. In order to do that, instead of forcing an interlaced resolution manually, I recommend you to edit your monitor preset and change the 288 lines progressive lines limit by 256. That will automatically interlace whatever that goes above that limit.

OK. In monitor.ini I copied the arcade_15 monitor, renamed it, and changed ProgressiveLinesMax and InterlacedLinesMax like so:
Code: [Select]
monitor "trinitron", "Trinitron", "4:3"
        crt_range0 15625-16200, 49.50-65.00, 2.000, 4.700, 8.000, 0.064, 0.192, 1.024, 0, 0, 192, [b]256[/b], 448, [b]512[/b]

I then selected my new "Trinitron" configuration, regened, and reinstalled modelines using VMMaker:
Code: [Select]
  _____ _____ _____     _           
 |  |  |     |     |___| |_ ___ ___
 |  |  | | | | | | | .'| '_| -_|  _|
  \___/|_|_|_|_|_|_|__,|_,_|___|_|   2.0 beta 8 by Calamity - 2008/2016

Processing config...

>>display_init \System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000               
Listing display devices...
\\.\DISPLAY4 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - Generic Non-PnP Monitor - enabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000
\\.\DISPLAY5 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - No monitor - disabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0001

Getting driver information for \\.\DISPLAY4
ADL Library found, retrieving functions...
ADL functions retrieved successfully.
CRT Emudriver 2.0 (12.6) found.

>>config_process               
Processing config...

>>modedb_build               
Creating mode list...
Importing video modes from custom list...

Importing video modes from MAME.xml...
Mame v0.196 (unknown)

   39 video modes found

Generating dynamic mode table...
 19 redundant video modes found.

Reducing mode list...
 0 video modes dropped.

 20 modelines generated.

Exporting settings to mame.ini...
"240x256_58 16.20KHz 58.48Hz" 5.18 240 256 280 320 256 258 261 277 -hsync -vsync
"256x240_60 15.66KHz 60.00Hz" 5.26 256 272 296 336 240 242 245 261 -hsync -vsync
"256x256_58 16.20KHz 58.48Hz" 5.44 256 272 296 336 256 258 261 277 -hsync -vsync
"288x240_60 15.66KHz 60.00Hz" 6.01 288 304 336 384 240 242 245 261 -hsync -vsync
"296x240_60 15.66KHz 60.00Hz" 6.14 296 312 344 392 240 242 245 261 -hsync -vsync
"304x240_60 15.66KHz 60.00Hz" 6.26 304 320 352 400 240 242 245 261 -hsync -vsync
"320x240_60 15.66KHz 60.00Hz" 6.64 320 336 368 424 240 242 245 261 -hsync -vsync
"336x240_60 15.66KHz 60.00Hz" 6.89 336 352 384 440 240 242 245 261 -hsync -vsync
"352x240_60 15.66KHz 60.00Hz" 7.14 352 368 400 456 240 242 245 261 -hsync -vsync
"360x240_60 15.66KHz 60.00Hz" 7.27 360 376 408 464 240 242 245 261 -hsync -vsync
"384x240_60 15.66KHz 60.00Hz" 7.89 384 400 440 504 240 242 245 261 -hsync -vsync
"384x256_58 16.20KHz 58.48Hz" 8.16 384 400 440 504 256 258 261 277 -hsync -vsync
"400x240_60 15.66KHz 60.00Hz" 8.14 400 416 456 520 240 242 245 261 -hsync -vsync
"416x240_60 15.66KHz 60.00Hz" 8.39 416 432 472 536 240 242 245 261 -hsync -vsync
"512x240_60 15.66KHz 60.00Hz" 10.40 512 536 584 664 240 242 245 261 -hsync -vsync
"512x480_60 15.69KHz 60.00Hz" 10.42 512 536 584 664 480 483 489 523 interlace -hsync -vsync
"640x240_60 15.66KHz 60.00Hz" 13.03 640 664 728 832 240 242 245 261 -hsync -vsync
"640x480_60 15.69KHz 60.00Hz" 13.05 640 664 728 832 480 483 489 523 interlace -hsync -vsync
"664x496_60 16.17KHz 60.00Hz" 14.10 664 696 760 872 496 499 505 539 interlace -hsync -vsync
"704x480_60 15.69KHz 60.00Hz" 14.31 704 736 800 912 480 483 489 523 interlace -hsync -vsync

>>modelist_install               
Installing modelines in system...
20 modelines installed.
Restarting device \\.\DISPLAY4
C:\CRT Emudriver\devutil64.exe reset "PCI\VEN_1002&DEV_9540&SUBSYS_00021028&REV_00"
Device has changed.
Listing display devices...
\\.\DISPLAY7 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - Generic Non-PnP Monitor - enabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0000
\\.\DISPLAY8 - ATI Radeon HD 4550 (CRT Emudriver - WDDM v1.1) - No monitor - disabled - HKLM\System\CurrentControlSet\Control\Video\{E081D878-CD47-43F8-AD79-E14BF8DA6194}\0001
enabling \\.\DISPLAY7 : success

The problematic "400x288_52" modeline was removed. Now I get:

Code: [Select]
C:\GroovyMAME>mame64.exe mspacman

SwitchRes: [mspacman] (1) vertical (224x288@60.606060)->(704x480@60.606060)

Works, but the top and bottom are cut off. Not sure if this is because of a geometry issue or because 288*2 = 576 which is greater than 480. Regardless, I was just doing this to see how it would look. The answer is: not very good. I think I will defiantly have to build a vertical cab.

The interlaced modelines still run at 50% since I can not install your Windows Interlace Patch, Calamity. If you don't have time to include my binary in your patch, it sounds like I can avoid this issue by getting a HD-5000 or newer card.

Lorien

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 7
  • Last login:December 15, 2020, 05:54:36 pm
  • Retro Gaming love!
Re: Setting up crt_range for TV without specs
« Reply #23 on: April 08, 2019, 01:28:38 am »
Hey yo1dog. I'm using the same TV set as you and I ran into the same issue you did on these resolutions. I would like to know if you found a solution?

BigWaveDave

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 15
  • Last login:May 16, 2023, 12:42:21 pm
Re: Setting up crt_range for TV without specs
« Reply #24 on: May 14, 2019, 10:26:28 am »
There is no "solution" other than the previous recommendation of forcing these resolutions into interlaced modes.  These TV's run at 60hz +- 4hz.

Of course, then scaling kicks in and things don't look great.

I'm considering switching back to my 4:3 EDTV and just running everything at 480P minimum.  It's a compromise... but I can just let MAME give me some decent looking scanlines I suppose.

BigWaveDave

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 15
  • Last login:May 16, 2023, 12:42:21 pm
Re: Setting up crt_range for TV without specs
« Reply #25 on: May 14, 2019, 01:00:14 pm »
Just when I think I understand... I read this thread...

http://forum.arcadecontrols.com/index.php/topic,159390.0.html

Looks like with this method you have 2 decent choices which result from restricting the monitor frequencies in mame.ini...

1.  Games play in their native resolutions, but at a potentially higher frequency resulting in a gameplay speed increase (increase VFreq tolerance value)
2.  Leave the tolerance alone and let GM triple buffer which results in no tearing but frame skipping...

I will definitely try these options out later.  Previously I was restricting my vertical resolution to 256 lines with a custom monitor entry to prevent modeline generations below about 56hz.  That meant games like galaga (288) were forced into 480i...  If I understand all this, I ought to be able get galaga to fit the screen (my TV is horizontal) without vsync issues and either play at 100% speed with frame skipping or a bit faster but smooth.

Hope it works, that would be great.

So for my Sony KV-27fs120 I'm going to add this line to monitor.ini:

monitor "Sony_WEGA", "Sony 27in WEGA TV 15.7 kHz - standard resolution", "4:3"
        crt_range0 15625-16200, 56.00-64.00, 2.000, 4.700, 8.000, 0.064, 0.192, 1.024, 0, 0, 192, 288, 448, 576

EDIT:
Ok more info.. Attempting to use this monitor setting in VMMaker causes bad timings somehow.  All I did was tweak VFreq range in a bit...

Any ideas?

see attached monitor.ini and VMMaker UI Image...
« Last Edit: May 14, 2019, 01:55:38 pm by BigWaveDave »

BigWaveDave

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 15
  • Last login:May 16, 2023, 12:42:21 pm
Re: Setting up crt_range for TV without specs
« Reply #26 on: May 14, 2019, 02:02:00 pm »
Don't mean to debug in real-time up here... but getting progressivelinesmax 288  out of range

So no choice here... either drop the lower bound of the vertical refresh which won't work on this monitor... or drop the progressivelinesmax down a bit.

Either way... not good.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: Setting up crt_range for TV without specs
« Reply #27 on: May 14, 2019, 05:22:13 pm »
Don't mean to debug in real-time up here... but getting progressivelinesmax 288  out of range

You need to increase HfreqMax at the same time you increase VfreqMin, so ProgressiveLinesMax keeps within range.

In addition, you can lower it 256 max lines, and enable -intoverscan, so games like galaga are cropped a bit but still integer scaled.
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

BigWaveDave

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 15
  • Last login:May 16, 2023, 12:42:21 pm
Re: Setting up crt_range for TV without specs
« Reply #28 on: May 15, 2019, 08:10:43 am »
Thanks for the input and support.

Yeah, I think increasing HFreqmax will take the TV out of range again, I know it wont support 16500...  Really tight frequency ranges on this TV... and no knobs to turn in the service menu.

But I'll drop the max lines and try your suggestion...  I'll be happy if I can get reasonably close...

If not, it's back to my EDTV and everything runs at 480P.

Thanks!