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: Issue with Nanao MS-2930/2931 Preset in GroovyArcade  (Read 3590 times)

0 Members and 1 Guest are viewing this topic.

pyrojoe

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 11
  • Last login:November 16, 2013, 11:08:17 pm
Issue with Nanao MS-2930/2931 Preset in GroovyArcade
« on: August 13, 2013, 10:37:03 pm »
Hey guys,

This question is mostly for Calamity, but I'd be glad to hear from anyone with some insight.

GroovyArcade live-CD Release 2013-02-24 works very well with my MS-2931 with an exception. It will not use anything  @ 31kHz. Check this output:

$ groovymame dkong
SwitchRes: ProgressiveLinesMax 768 out of range
SwitchRes: Error in monitor range (ignoring): 31000-32000, 50-65, 0.330, 3.580, 1.750, 0.316, 0.063, 1.137, 0, 0, 576, 768, 0, 0

SwitchRes: [dkong] (1) vertical (224x256@60.61)->(400x256@57.12)

Is it that it's adding an extra 2 values at the end of the line?
Error in monitor range (ignoring): 31000-32000, 50-65, 0.330, 3.580, 1.750, 0.316, 0.063, 1.137, 0, 0, 576, 768, 0, 0

Now, using the same values with groovymame in winxp, it seemed to work (mind you, this was a while ago, and I don't have the hard drive that the setup used any longer, so I can't look at the configs to see what I was using at the time.

I was one of the users helping out with the original config of the MS-2931 and I think that while it works well, it's not quite where it should be.

I did some more digging, and happened to find the manual to the monitor and found that some of the specs don't match the preset.

for reference, here's the preset used by GroovyArcade: (Copied from the Monitor Presets thread)

monitor_specs0    15450.00-16050.00, 55-65, 3.19, 4.75, 6.45, 0.191, 0.191, 1.164, 0, 0, 288, 448
monitor_specs1    23900.00-24900.00, 55-65, 2.87, 3.0, 4.44, 0.451, 0.164, 1.148, 0, 0, 480, 768
monitor_specs2    31000.00-32000.00, 55-65, 0.33, 3.58, 1.75, 0.316, 0.063, 1.137, 0, 0, 576, 768


The tech manual has the following values:

Scanning Freq:
Horizontal:
15450.00-16050.00
23900.00-24900.00
31000.00-32000.00
Vertical:
55-65Hz

Those values seem correct in the preset.

Retrace Time:
Horizontal:
15.75kHz = 6.0 μs max
24.4kHz = 6.0 μs max
31.5kHz = 5.0 μs max
Vertical:
1.0 ms max

This seems off, would it change the preset to this?

Just changing for vertical...
monitor_specs0    15450.00-16050.00, 55-65, 3.19, 4.75, 6.45, 0.191, 0.191, 1.0, 0, 0, 288, 448
monitor_specs1    23900.00-24900.00, 55-65, 2.87, 3.0, 4.44, 0.451, 0.164, 1.0, 0, 0, 480, 768
monitor_specs2    31000.00-32000.00, 55-65, 0.33, 3.58, 1.75, 0.316, 0.063, 1.0, 0, 0, 576, 768

and then for horizontal.... (this is where I'm unsure)
Would it change the HSyncPol Value?

Also, would changing these values also in turn require changes to the porch values?

The MS-2931 manual also lists the max vertical resolution of the monitor at "676 dots x 676 lines". Would that be the issue that is causing the out of range error? if so, should the preset change to:

monitor_specs0    15450.00-16050.00, 55-65, 3.19, 4.75, 6.45, 0.191, 0.191, 1.0, 0, 0, 288, 448
monitor_specs1    23900.00-24900.00, 55-65, 2.87, 3.0, 4.44, 0.451, 0.164, 1.0, 0, 0, 480, 676
monitor_specs2    31000.00-32000.00, 55-65, 0.33, 3.58, 1.75, 0.316, 0.063, 1.0, 0, 0, 576, 676

One last question:
The GroovyArcade live cd is made for an easy to use and install experience (and a great job done!), but there is no option for custom modes in the menus of gasetup.  I'm guessing all I have to do to use custom monitor presets is to /home/arcade/switchres.conf and /home/arcade/mame.ini and /home/arcade/ume.ini. Is that correct?



Sorry for the wall of text! If I just need to search the forums for some simple answers, please tell me. I'm not above doing my own homework.

Thanks.



Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7463
  • Last login:July 19, 2025, 04:03:33 am
  • Quote me with care
Re: Issue with Nanao MS-2930/2931 Preset in GroovyArcade
« Reply #1 on: August 14, 2013, 05:38:20 am »
Hi pyrojoe,

Starting with SwitchRes 014, the monitor specs lines format changed to make it more powerful for defining line ranges. I ported each preset to the new format manually, and accidentaly I made a mistake in the MS-2931 definition, which was fixed in 014a, see what's new here: http://forum.arcadecontrols.com/index.php/topic,128879.msg1316985.html#msg1316985

The GroovyArcade CD contains a 014 based GroovyMAME build, so you just need to update the binary to the latest version to fix this issue.

This is how the presets are for the MS-2931 using the new format:

crt_range0 15450-16050, 50-65, 3.190, 4.750, 6.450, 0.191, 0.191, 1.164, 0, 0, 192, 288, 448, 576
crt_range1 23900-24900, 50-65, 2.870, 3.000, 4.440, 0.451, 0.164, 1.148, 0, 0, 320, 384, 0, 0
crt_range2 31000-32000, 50-65, 0.330, 3.580, 1.750, 0.316, 0.063, 1.137, 0, 0, 480, 512, 0, 0

As you can see, the only changes are the name (now crt_range#) and the line limiters at the end. Now we have 4 numbers: ProgressiveLinesMin, ProgressiveLinesMax, InterlacedLinesMin, InterlacedLinesMax

So one can easily define the boundaries where each of the ranges is to apply, considering also the number of progressive and interlaced lines separately.

Regarding the specs from the manual, I don't think the horizontal retrace values are right, at least where it says "max" it should be "min", it doesn't make much sense to define "max" values for retrace time, what you want to know is what are the "min" values, in other words: how fast your monitor is. The faster it is, the lower values you'll be able to use, and the best use of the bandwidth you'll achieve. Reading those specs as "min" does make sense and we would be located in the safe area with the current values. However, when dealing with a multisync monitor and horizontal values, what we really need to find is what values get the 3 ranges centered without having to use the monitor controls between ranges, rather than the bare minimum values.

For the vertical values, it's more important to find the absolute minimum values that still work, as adding unnecessary lines for the blanking period will reduce the total vertical resolution * refresh achievable. Normally, the retrace time would include sync pulse + back porch, so as I understand this, those should add up to 1.0 ms according to the specs.

For the 15 kHz range, the somewhat standard is:

vertical front porch: 1 line (as low as possible)
vertical sync pulse: 3 lines (just like the tellies)
vetical back porch: usually 16.5-18 lines at least. The lower this figure, the best resolution we can get

So for 15.625 kHz, 1 line is : 1 / 15.625 * 1000 = 0.064 ms

To keep above 1.0 ms for the retrace time, we need: 3 lines v. sync pulse + 13 lines v. back porch = 1.024 ms

So this is what you'd obtain:

crt_range0 15450-16050, 50-65, 3.190, 4.750, 6.450, 0.064, 0.192, 0.832, 0, 0, 192, 288, 448, 576

Now I don't mean this will work, it's just what you    get from the manual specs. You need to experiment. But I think that there should be a good reason why the values obtained by you among other users at the time the monitor_specs were done were actually much higher than those.

Regarding the maximum resolutions, that is just an orientation, CRT monitor don't have those, you only need to care about frequencies.

Finally, I don't see a good reason why the minimum vertical refresh couldn't be lower (I usually set it to 50 Hz for PAL games, etc.)

BTW, you need to place those crt_ranges inside mame.ini or ume.ini, while using the 'monitor custom' option.
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

pyrojoe

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 11
  • Last login:November 16, 2013, 11:08:17 pm
Re: Issue with Nanao MS-2930/2931 Preset in GroovyArcade
« Reply #2 on: August 14, 2013, 03:11:25 pm »
Hey, thanks for the quick reply.

The GroovyArcade CD contains a 014 based GroovyMAME build, so you just need to update the binary to the latest version to fix this issue.

Simple enough, thanks.

Regarding the specs from the manual, I don't think the horizontal retrace values are right, at least where it says "max" it should be "min", it doesn't make much sense to define "max" values for retrace time, what you want to know is what are the "min" values, in other words: how fast your monitor is. The faster it is, the lower values you'll be able to use, and the best use of the bandwidth you'll achieve. Reading those specs as "min" does make sense and we would be located in the safe area with the current values. However, when dealing with a multisync monitor and horizontal values, what we really need to find is what values get the 3 ranges centered without having to use the monitor controls between ranges, rather than the bare minimum values.

Well, I don't know if the manual is wrong or not, but it's definitely in the manual as max, not min.  I'll post some screen shots of the specs, and also a couple of interesting diagrams that you might be able to make more sense of than me.

The last three screenshots seem like they're giving the information I need, but I just want to be safe and run it by someone who know what they are doing. (this monitor is getting more and more rare  ;) )

For example, Looking at the Mode 1 @ 15.734kHz screenshot, I'm wondering if the 3.19 is the horiz. front porch value and 6.45 is the horiz. back porch value.  If that were the case, then it should also make the vfrontporch .826 and the vbackporch 1.462.

I'm sure that it's not that easy, and that I'm over simplifying this.

Quote
Finally, I don't see a good reason why the minimum vertical refresh couldn't be lower (I usually set it to 50 Hz for PAL games, etc.)
Fair enough, although, I'm not too worried about PAL games atm.  This is probably more due to me being paranoid about the listed specs. Maybe a thing to tackle in the future if you don't seem worried about it.

Quote
BTW, you need to place those crt_ranges inside mame.ini or ume.ini, while using the 'monitor custom' option.
Thanks. I usually try to look this stuff up on my own, but it seems that this has changed a couple of times in groovymame history and I don't know if the documentation I'm reading is for the correct version that I'm running. Also, I don't need anything set in switchres.conf?

Thanks for the help.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7463
  • Last login:July 19, 2025, 04:03:33 am
  • Quote me with care
Re: Issue with Nanao MS-2930/2931 Preset in GroovyArcade
« Reply #3 on: August 15, 2013, 02:34:50 pm »
For example, Looking at the Mode 1 @ 15.734kHz screenshot, I'm wondering if the 3.19 is the horiz. front porch value and 6.45 is the horiz. back porch value.  If that were the case, then it should also make the vfrontporch .826 and the vbackporch 1.462.

I'm sure that it's not that easy, and that I'm over simplifying this.

Yeah, it's *that* easy. At least for the horizontal part.

Regarding the vertical part, it applies much the same of what I just wrote here: http://forum.arcadecontrols.com/index.php/topic,133923.msg1380811.html#msg1380811

Let's say the guys that made that timing chart shouldn't have used 224p (224H) for describing the timings at 15.734 kHz. They should have used 240p instead, which is the "natural" resolution for that frequency. By natural I mean a resolution that makes use of all possible picture lines and just leaves out the ones strictly required for the vertical duties (22H).

But they chose 224p, and the problem is this resolution needs a lot of padding lines to stay at 15.734 kHz (=lines that could be used for the picture but are left black and added just to consume time). You can clearly see those in the big v front porch (13H).

So if you use those timings as a base, then 13H (13 blank lines) will be added by default to any mode that you create, even when it's not necessary. This greatly reduces the resolution x refresh you can achieve. For instance, 240p resolution would be limited to 57.5 Hz max!! (and you'd need to go up to 16 kHz for that!)

Besides, tri-sync monitors usually have an already short retrace time (shorter than standard arcade monitors). This is because they have to cope with the more demanding VGA range (it terms of speed). This can be exploited in the 15 kHz range to improve resolution x refresh even more: it should be easy to get 256p@60 Hz with that monitor (this is great for vertical games).

Don't be afraid of breaking your monitor by reasonably experimenting with the vertical porches. Monitors break due to wrong frequencies.
« Last Edit: August 15, 2013, 02:37:01 pm 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

pyrojoe

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 11
  • Last login:November 16, 2013, 11:08:17 pm
Re: Issue with Nanao MS-2930/2931 Preset in GroovyArcade
« Reply #4 on: August 16, 2013, 02:33:52 pm »
Quote
Let's say the guys that made that timing chart shouldn't have used 224p (224H) for describing the timings at 15.734 kHz. They should have used 240p instead, which is the "natural" resolution for that frequency. By natural I mean a resolution that makes use of all possible picture lines and just leaves out the ones strictly required for the vertical duties (22H).

But they chose 224p, and the problem is this resolution needs a lot of padding lines to stay at 15.734 kHz (=lines that could be used for the picture but are left black and added just to consume time). You can clearly see those in the big v front porch (13H).

So if you use those timings as a base, then 13H (13 blank lines) will be added by default to any mode that you create, even when it's not necessary. This greatly reduces the resolution x refresh you can achieve. For instance, 240p resolution would be limited to 57.5 Hz max!! (and you'd need to go up to 16 kHz for that!)

Ok, I think I understand now. We're setting the minimum porch and sync values possible to make as many lines fit as possible (for the "worst" case scenario. 288p and 576i as defined in the crt_range). I remember the manual mentioning Golden Axe: The Duel specifically for the 15kHz mode. That game uses 224p so it makes sense. 

So what you're saying is that I should be lowering the vertical values as much as possible for the best performance? And that these values, as long as they are reasonable, shouldn't do any damage?

I tried this setting, and all seemed fine.
crt_range0 15450-16050, 50-65, 3.190, 4.750, 6.450, 0.064, 0.192, 0.832, 0, 0, 192, 288, 448, 576

In fact, it didn't seem to make much of a change at all.  Is that normal? I know that the setting was going through though, because when I used that setting and commented out the ms2930 preset, I wasn't getting 24kHz and 31kHz (rightfully so)

I guess the "change" is the refresh range I can now use.  Like a higher refresh at the same resolution, if I understand correctly.

Also, if that's the case, what is a reasonable change to step down to find a better value? one line at a time? how do I know when to stop?

from:
crt_range0 15450-16050, 50-65, 3.190, 4.750, 6.450, 0.064, 0.192, 0.832, 0, 0, 192, 288, 448, 576
to:
crt_range0 15450-16050, 50-65, 3.190, 4.750, 6.450, 0.064, 0.192, 0.768, 0, 0, 192, 288, 448, 576

Does that seem reasonable?

Also, you mentioned a somewhat standard for 15kHz (1line front, 3line sync, x line back depending on retrace time)

is there any equivalent in 24k and 31k? Some where I can start as a base?

for 24k I might try something like this:

1/24.4k *1000 = .041ms
4line vsyncpulse (this is a guess)
to make up for the 1ms retrace, I end up with 21 lines back porch

.041 .164(4) .861(21)

crt_range1 23900-24900, 50-65, 2.870, 3.000, 4.440, 0.041, 0.164, 0.861, 0, 0, 320, 384, 0, 0

or should I use another value for vsyncpulse?

Thanks and sorry for the bombardment of questions.

« Last Edit: August 16, 2013, 07:19:57 pm by pyrojoe »

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7463
  • Last login:July 19, 2025, 04:03:33 am
  • Quote me with care
Re: Issue with Nanao MS-2930/2931 Preset in GroovyArcade
« Reply #5 on: August 21, 2013, 09:53:43 am »
Hi pyrojoe,

I'm glad to see you fully see how this works now, it's not much more than this indeed.

Ok, I think I understand now. We're setting the minimum porch and sync values possible to make as many lines fit as possible (for the "worst" case scenario. 288p and 576i as defined in the crt_range).

Exactly.

Quote
So what you're saying is that I should be lowering the vertical values as much as possible for the best performance? And that these values, as long as they are reasonable, shouldn't do any damage?

Exactly.

In case the values were too low, you'll notice either the picture is out of sync (usually if the sync pulse is too short) or a malformed picture at the top (usually if the v back porch is too short). But the signal will still be within the working frequency ranges, so your monitor won't suffer. In the worst case, you wouldn't keep a non working mode for too long, minimizing the risk.

Quote
In fact, it didn't seem to make much of a change at all.  Is that normal? I know that the setting was going through though, because when I used that setting and commented out the ms2930 preset, I wasn't getting 24kHz and 31kHz (rightfully so)

I guess the "change" is the refresh range I can now use.  Like a higher refresh at the same resolution, if I understand correctly.

That's it. The difference is only that you'll be able to use 256@60Hz, etc. And probably better centering on the vertical too.

Quote
Also, if that's the case, what is a reasonable change to step down to find a better value? one line at a time? how do I know when to stop?

from:
crt_range0 15450-16050, 50-65, 3.190, 4.750, 6.450, 0.064, 0.192, 0.832, 0, 0, 192, 288, 448, 576
to:
crt_range0 15450-16050, 50-65, 3.190, 4.750, 6.450, 0.064, 0.192, 0.768, 0, 0, 192, 288, 448, 576

That's it. Line by line.

Quote
Also, you mentioned a somewhat standard for 15kHz (1line front, 3line sync, x line back depending on retrace time)

is there any equivalent in 24k and 31k? Some where I can start as a base?

Not really. There are several so called standards. For 24 kHz you have the Atari and the Sega timings. For 31 kHz, there are many standards (see Wikipedia). But you'd better ignore those and really go for your monitor's specific timings. It usually happens that tri-sync monitors are prepared to cope with those typical standards so you can connect them to a PCB. But it turns out that you can often use the same vertical timings for all ranges, because once the monitor is "VGA-capable", you can usually benefit from the shorter ratrace time and apply it to the 15 kHz range.

Quote
for 24k I might try something like this:

1/24.4k *1000 = .041ms
4line vsyncpulse (this is a guess)
to make up for the 1ms retrace, I end up with 21 lines back porch

.041 .164(4) .861(21)

crt_range1 23900-24900, 50-65, 2.870, 3.000, 4.440, 0.041, 0.164, 0.861, 0, 0, 320, 384, 0, 0

or should I use another value for vsyncpulse?

That's it. Perfect. But you can also try to reduce the v sync pulse to find the minimum. Bear in mind that the lines that are not really required for the sync pulse will get accumulated in the next value (vertical back porch), making it bigger than what you specified, shifting your games down. That's why it's so important to find the bare minimum values to get predictable results.
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