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: Help with d9200 and 800x600 mode out of sync.  (Read 1620 times)

0 Members and 1 Guest are viewing this topic.

beernut

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 49
  • Last login:December 10, 2023, 07:13:46 pm
Help with d9200 and 800x600 mode out of sync.
« on: February 22, 2020, 11:50:04 am »
Calamity or anyone else who has solved this issue.....

I have been trying to get my d9200 working solidly with groovymame/groovyarcade and am 99% there.  I am running a freshly compiled groovymame .218 on archlinux.

I am currently using monitor custom with the following crt_range lines:
Code: [Select]
crt_range0  15250-18000, 40-80, 2.187, 4.688, 6.719, 0.190, 0.191, 1.018, 0, 0, 224, 288, 448, 576
crt_range1  20000-21500, 40-80, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 320, 360, 0, 0
crt_range2  23900-24420, 40-80, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 384, 400, 0, 0
crt_range3  29000-32000, 40-80, 0.636, 3.813, 1.906, 0.318, 0.064, 1.048, 0, 0, 448, 512, 0, 0
crt_range4  37000-38000, 40-80, 1.000, 3.200, 2.200, 0.020, 0.106, 0.607, 0, 0, 512, 600, 0, 0

These come from MonkeyJug's suggestions in http://forum.arcadecontrols.com/index.php/topic,132277.msg1359174.html#msg1359174
which were modifed from Calamity's http://forum.arcadecontrols.com/index.php/topic,132277.msg1358638.html#msg1358638

In that thread though, most of the HfreqMin-HfreqMax lines were set to 40-61.  This was causing some games not to work and some (starcastle) were squished vertically.  So I changed them back to 40-80 as per the 9200 defaults and it's working much better.

Anyway, so far things are pretty good except every game that tries to start in 800x600_60 send my d9200 into an out of sync error.

Example log from llander:
Code: [Select]
Parsing starcas.ini
SwitchRes: v0.017p, Monitor: custom, Orientation: horizontal, Modeline generation: enabled
SwitchRes: Monitor range 15250.00-18000.00,40.00-80.00,2.187,4.688,6.719,0.190,0.191,1.018,0,0,224,288,448,576
SwitchRes: Monitor range 20000.00-21500.00,40.00-80.00,2.910,3.000,4.440,0.451,0.164,1.048,0,0,320,360,0,0
SwitchRes: Monitor range 23900.00-24420.00,40.00-80.00,2.910,3.000,4.440,0.451,0.164,1.048,0,0,384,400,0,0
SwitchRes: Monitor range 29000.00-32000.00,40.00-80.00,0.636,3.813,1.906,0.318,0.064,1.048,0,0,448,512,0,0
SwitchRes: Monitor range 37000.00-38000.00,40.00-80.00,1.000,3.200,2.200,0.020,0.106,0.607,0,0,512,600,0,0
SwitchRes: xrandr version 1.6
SwitchRes: Found output connector 'VGA-0'

SwitchRes: Entering switchres_modeline_setup
SwitchRes: v0.017p:[starcas] Calculating best video mode for 640x480@38.000107 orientation: normal

SwitchRes: (   1)x(   1)_(60=60.000000Hz)
   rng(0):  768 x 576_38.000107i 15.295043 [fract] scale(768, 576, 1) diff(0.00, 0.00, 0.0000) ratio(768.000, 576.000)
   rng(1):  480 x 360_38.000107p 20.026056 [fract] scale(480, 360, 1) diff(0.00, 0.00, 0.0000) ratio(480.000, 360.000)
   rng(2):  536 x 400_38.000107p 23.902067 [fract] scale(536, 400, 1) diff(0.00, 0.00, 0.0000) ratio(536.000, 400.000)
   rng(3):  688 x 512_38.000107p 29.032082 [fract] scale(688, 512, 1) diff(0.00, 0.00, 0.0000) ratio(688.000, 512.000)
   rng(4):  800 x 600_38.000107p 37.012104 [fract] scale(800, 600, 1) diff(0.00, 0.00, 0.0000) ratio(800.000, 600.000)

SwitchRes: [starcas] (1) horizontal (640x480@38.000107)->(800x600@38.000107)
   rng(4):  800 x 600_38.000107p 37.012104 [fract] scale(800, 600, 1) diff(0.00, 0.00, 0.0000) ratio(800.000, 600.000)
SwitchRes: Modeline "800x600_60 37.012104KHz 38.000107Hz" 39.084780 800 840 968 1056 600 774 778 974   -hsync -vsync
Switchres: CRTC 0: mode 0x57, 648x480+0+0.
Switchres: xrandr change screen size.
Switchres: xrandr mode (GM-800x600_38.000107) (0x764) 39.084780MHz
SwitchRes: Setting option -rotate
SwitchRes: Setting option -noror
SwitchRes: Setting option -autoror
SwitchRes: Setting option -norol
SwitchRes: Setting option -noautorol
SwitchRes: Setting option -keepaspect
SwitchRes: Setting option -unevenstretch
SwitchRes: Setting option -nounevenstretchx
SwitchRes: Setting option -noblack_frame_insertion
SwitchRes: Setting option -syncrefresh
SwitchRes: Setting option -waitvsync
SwitchRes: Setting option -filter

Same issue on starcastle:
Code: [Select]
Parsing starcas.ini
SwitchRes: v0.017p, Monitor: custom, Orientation: horizontal, Modeline generation: enabled
SwitchRes: Monitor range 15250.00-18000.00,40.00-80.00,2.187,4.688,6.719,0.190,0.191,1.018,0,0,224,288,448,576
SwitchRes: Monitor range 20000.00-21500.00,40.00-80.00,2.910,3.000,4.440,0.451,0.164,1.048,0,0,320,360,0,0
SwitchRes: Monitor range 23900.00-24420.00,40.00-80.00,2.910,3.000,4.440,0.451,0.164,1.048,0,0,384,400,0,0
SwitchRes: Monitor range 29000.00-32000.00,40.00-80.00,0.636,3.813,1.906,0.318,0.064,1.048,0,0,448,512,0,0
SwitchRes: Monitor range 37000.00-38000.00,40.00-80.00,1.000,3.200,2.200,0.020,0.106,0.607,0,0,512,600,0,0
SwitchRes: xrandr version 1.6
SwitchRes: Found output connector 'VGA-0'

SwitchRes: Entering switchres_modeline_setup
SwitchRes: v0.017p:[starcas] Calculating best video mode for 640x480@38.000107 orientation: normal

SwitchRes: (   1)x(   1)_(60=60.000000Hz)
   rng(0):  768 x 576_38.000107i 15.295043 [fract] scale(768, 576, 1) diff(0.00, 0.00, 0.0000) ratio(768.000, 576.000)
   rng(1):  480 x 360_38.000107p 20.026056 [fract] scale(480, 360, 1) diff(0.00, 0.00, 0.0000) ratio(480.000, 360.000)
   rng(2):  536 x 400_38.000107p 23.902067 [fract] scale(536, 400, 1) diff(0.00, 0.00, 0.0000) ratio(536.000, 400.000)
   rng(3):  688 x 512_38.000107p 29.032082 [fract] scale(688, 512, 1) diff(0.00, 0.00, 0.0000) ratio(688.000, 512.000)
   rng(4):  800 x 600_38.000107p 37.012104 [fract] scale(800, 600, 1) diff(0.00, 0.00, 0.0000) ratio(800.000, 600.000)

SwitchRes: [starcas] (1) horizontal (640x480@38.000107)->(800x600@38.000107)
   rng(4):  800 x 600_38.000107p 37.012104 [fract] scale(800, 600, 1) diff(0.00, 0.00, 0.0000) ratio(800.000, 600.000)
SwitchRes: Modeline "800x600_60 37.012104KHz 38.000107Hz" 39.084780 800 840 968 1056 600 774 778 974   -hsync -vsync
Switchres: CRTC 0: mode 0x57, 648x480+0+0.
Switchres: xrandr change screen size.
Switchres: xrandr mode (GM-800x600_38.000107) (0x764) 39.084780MHz
SwitchRes: Setting option -rotate
SwitchRes: Setting option -noror
SwitchRes: Setting option -autoror
SwitchRes: Setting option -norol
SwitchRes: Setting option -noautorol
SwitchRes: Setting option -keepaspect
SwitchRes: Setting option -unevenstretch
SwitchRes: Setting option -nounevenstretchx
SwitchRes: Setting option -noblack_frame_insertion
SwitchRes: Setting option -syncrefresh
SwitchRes: Setting option -waitvsync
SwitchRes: Setting option -filter

I think the issue is that the horizontal sync is higher than 35Khz in both of those cases (37Khz for both). 

In this thread http://forum.arcadecontrols.com/index.php/topic,17066.msg139984.html#msg139984 it is suggested that:
Quote
"There is no problem operating the monitor in the 800 X 600 mode as long as you run horizontal sync at 35KHZ. If you run this mode at a higher horizontal sync it will display the message "Out of Range" and this is why we don't advertise it as 800 X 600. I will look into stating this on our website."

And here http://forum.arcadecontrols.com/index.php/topic,17066.msg140541.html#msg140541
Quote
The max horizontal sync the D9200 was designed for is 35kHz, so we need:
35 kHz / 600 lines ~= 56 Hz

But I don't understand these modelines enough to lower the Horizontal sync to 35.

I'm thinking maybe I need to change crt_range4 to something like:
Code: [Select]
crt_range4  34000-36000, 40-80, 1.000, 3.200, 2.200, 0.020, 0.106, 0.607, 0, 0, 512, 600, 0, 0But I'm not sure and am afraid of messing things up as I am really not understanding completely the relationships between the HfreqMin/Max and the ProgressiveLinesMin/ProgressiveLinesMax.

I have tried the following sets of crt_modes but they cause major lockups in several games (pacman, qbert) requiring me to go into single user mode and back to reset.  Also, they both still obviously have the 800x600 issue.

Code: [Select]
# Calamity's suggestion from
# http://forum.arcadecontrols.com/index.php/topic,117334.msg1403336.html#msg1403336
# Pacman completely locks up system needed a telinit 1 restart.
#crt_range0 15250-18000, 40-80, 2.187, 4.688, 6.719, 0.190, 0.191, 1.018, 0, 0, 224, 288, 448, 576
#crt_range1 24500-29000, 40-80, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 384, 400, 0, 0
#crt_range2 29001-32000, 40-80, 0.636, 3.813, 1.906, 0.318, 0.064, 1.048, 0, 0, 400, 480, 0, 0
#crt_range3 32001-34000, 40-80, 0.636, 3.813, 1.906, 0.020, 0.106, 0.607, 0, 0, 480, 576, 0, 0
#crt_range4 34001-38000, 40-80, 1.000, 3.200, 2.200, 0.020, 0.106, 0.607, 0, 0, 576, 600, 0, 0

# Modified above with addtion on 20000-21500 line
# Pacman completely locks up system needed a telinit 1 restart.
#crt_range0 15250-18000, 40-80, 2.187, 4.688, 6.719, 0.190, 0.191, 1.018, 0, 0, 224, 288, 448, 576
#crt_range1 20000-21500, 40-80, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 320, 360, 0, 0
#crt_range2 24500-29000, 40-80, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 384, 400, 0, 0
#crt_range3 29001-32000, 40-80, 0.636, 3.813, 1.906, 0.318, 0.064, 1.048, 0, 0, 400, 480, 0, 0
#crt_range4 32001-34000, 40-80, 0.636, 3.813, 1.906, 0.020, 0.106, 0.607, 0, 0, 480, 576, 0, 0
#crt_range5 34001-38000, 40-80, 1.000, 3.200, 2.200, 0.020, 0.106, 0.607, 0, 0, 576, 600, 0, 0

Finally, in case it matters here is the relevant parts of my mame.ini
Code: [Select]
#
# CORE SWITCHRES OPTIONS
#
modeline_generation       1
#monitor                   d9200
monitor                   custom
orientation               horizontal
connector                 auto
interlace                 1
doublescan                1
super_width               2560
changeres                 1
powerstrip                0
lock_system_modes         1
lock_unsupported_modes    1
refresh_dont_care         0
dotclock_min              0
sync_refresh_tolerance    2.0
frame_delay               0
vsync_offset              0
black_frame_insertion     0
modeline                  auto
ps_timing                 auto
lcd_range                 auto

Thanks in advance for any help,
Mark

beernut

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 49
  • Last login:December 10, 2023, 07:13:46 pm
Re: Help with d9200 and 800x600 mode out of sync.
« Reply #1 on: February 22, 2020, 01:14:57 pm »
Ok, just figured out why a bunch of those lines have HfreqMin/Max set to 40-61.  With my above crt_range lines qbert no longer starts.  Just get a blank screen.

I've changed the lines to:

Code: [Select]
crt_range0  15250-18000, 49-61, 2.187, 4.688, 6.719, 0.190, 0.191, 1.018, 0, 0, 224, 288, 448, 576
crt_range1  20000-21500, 49-61, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 320, 360, 0, 0
crt_range2  23900-24420, 49-61, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 384, 400, 0, 0
crt_range3  29000-32000, 59-85, 0.636, 3.813, 1.906, 0.318, 0.064, 1.048, 0, 0, 448, 512, 0, 0
crt_range4  37000-38000, 59-85, 1.000, 3.200, 2.200, 0.020, 0.106, 0.607, 0, 0, 512, 600, 0, 0

And now qbert works again.

However, now I am really confused.  Trying to research the issue I have found lots of suggestions that the d9200 is  Tri-Sync https://easymamecab.mameworld.info/html/d9200.htm

Quote
21. What is the D9200's horizontal clock range? Unfortunately, the listed specifications for the D9200 on Wellsgardner's web site are a little misleading / confusing. The D9200 supports arcade boards that operate between 15.75 - 31.5kHz, but it does not support the entire range 15.75 - 31.5kHz. The D9200 is really a fixed frequency monitor that supports hclocks at 15.75kHz, 25kHz, and 31.5kHz with a 1-2kHz error margin at each frequency.

22. What is the D9200's vertical clock range? The D9200 was designed to support arcade boards that run hclocks between 15.75 - 31.5kHz. Consequently, at an hclock of 15.75kHz and 25kHz it was designed to run a vclock between 50-60Hz (i.e. Standard CGA, EGA frequencies). And at an hclock of 31.5kHz it was designed to run at a vclock between 60-90Hz (i.e. Standard VGA frequencies).

#22 is why I have changed the VfreqMin-Max's above and that sorted out qbert.  But now I'm confused as to why many suggested d9200 crt_range lines don't include any that surround the 25kHz range suggested in #21 above.  Even the d9200 default settings of:
Code: [Select]
# d9200 default
crt_range0  15250-16500, 40-80, 2.187, 4.688, 6.719, 0.190, 0.191, 1.018, 0, 0, 224, 288, 448, 576
crt_range1  23900-24420, 40-80, 2.910, 3.000, 4.440, 0.451, 0.164, 1.148, 0, 0, 384, 400, 0, 0
crt_range2  31000-32000, 40-80, 0.636, 3.813, 1.906, 0.318, 0.064, 1.048, 0, 0, 400, 512, 0, 0
crt_range3  37000-38000, 40-80, 1.000, 3.200, 2.200, 0.020, 0.106, 0.607, 0, 0, 512, 600, 0, 0
don't seem to include that range.

So confused.  ???

beernut

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 49
  • Last login:December 10, 2023, 07:13:46 pm
Re: Help with d9200 and 800x600 mode out of sync.
« Reply #2 on: February 22, 2020, 05:14:10 pm »
I have sort of solved the issue simply by removing the crt_range line with HfreqMin above 32000.  My crt_ranges that seem to be working for pretty much everything are:
Code: [Select]
crt_range0  15250-18000, 49-61, 2.187, 4.688, 6.719, 0.190, 0.191, 1.018, 0, 0, 224, 288, 448, 576
crt_range1  20000-21500, 49-61, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 320, 360, 0, 0
crt_range2  23900-29000, 49-61, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 384, 400, 0, 0
crt_range3  29001-32000, 59-90, 0.636, 3.813, 1.906, 0.318, 0.064, 1.048, 0, 0, 400, 512, 0, 0

Can't tell that I am missing out at all without those resolutions above 512 horizontal so I'm going to go with this for now.  However, still curious if anyone has other ideas.

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1758
  • Last login:April 21, 2024, 08:06:32 am
  • Is running at 15kHz
Re: Help with d9200 and 800x600 mode out of sync.
« Reply #3 on: February 23, 2020, 05:40:35 pm »
Other ideas as to what? I don't think your're going to be able to get a 600@60p mode with a 31kHz monitor. By adjusting the numbers about as far as they'll go, you could possibly get

31.5Khz (+2Khz margin) = 33.5kHz = (600 visible lines + 40 lines blanking interval) x ~52Hz = 600@52p.

Your range line might look like:

crt_range4  33000-33500, 50-54, 1.000, 3.200, 2.200, 0.020, 0.106, 0.607, 0, 0, 600, 600, 0, 0

Though you'll need to work out the timings because i just left them as pasted from below.

What did you want to play with the 600@60p mode, or what did you want it for? Windows won't really give a ---steaming pile of meadow muffin---, FYI. I actually use a 600@50i mode on my 15Khz CRT to play Tekken 7, Outrun C2C, M2emu  and a couple of teknoparrot games. Everything works fine except for the Teknoparrot games that are locked to v-sync, so those run at 5/6 speed :/

beernut

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 49
  • Last login:December 10, 2023, 07:13:46 pm
Re: Help with d9200 and 800x600 mode out of sync.
« Reply #4 on: February 25, 2020, 11:12:28 am »
I guess I just figured that since GroovyMame kept trying to use modes in the range that it (GM) thought those would look closest to native for those games.  Since most the games involved were vector that is likely the case.  Moreover, I wan't to make sure the crt_ranges are not going to stress or damage my now nearly irreplaceable monitor.

Since even the GM presets for the d9200 wouldn't work in those ranges then it seems something is amiss.  Also, since apparently the d9200 is supposed to be ok in at 800x600 at 35Khz but I can't seem to figure that out.  Your crt_range suggestion isn't in that 35K range so I'm now even more confused. 

Anyway, my reduced crt_range lines seem to be working well and I am no longer getting issues on games without manually setting override resolutions as I had to do before.  I was just hoping that someone had worked out "ideal" crt_range lines for the d9200 or could point me to how to do them since my current ones are cobbled from old threads that have different suggestions with my own modifications (that I don't 100% understand) to finally work.

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1758
  • Last login:April 21, 2024, 08:06:32 am
  • Is running at 15kHz
Re: Help with d9200 and 800x600 mode out of sync.
« Reply #5 on: February 28, 2020, 03:01:23 am »
No, it's not 35kHz, but it's not running at 60fps it was running at 52fps in my equations. That was done to reduce the scan rate, as i wasn't aware the D9200 would handle 35kHz.

If you're a bit confused, try reading section e) of this guide - https://www.aussiearcade.com/forum/arcade/m-a-m-e-emulation-projects-and-discussion/89704-a-guide-to-connecting-your-windows-pc-to-an-sd-crt-tv-pvm-or-arcade-monitor

That won't teach you anything specific to the D9200, but it might help you think about it a bit more.

beernut

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 49
  • Last login:December 10, 2023, 07:13:46 pm
Re: Help with d9200 and 800x600 mode out of sync.
« Reply #6 on: February 28, 2020, 06:43:21 pm »
Thanks. I'll give that a read as it looks like I'm going to have to keep tweaking that last crt_range line as now without it tempest looks like crap.

beernut

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 49
  • Last login:December 10, 2023, 07:13:46 pm
Re: Help with d9200 and 800x600 mode out of sync.
« Reply #7 on: March 05, 2020, 11:12:22 am »
For completion in case someone stumbles upon this thread in the future, these are the settings I am using now.  I  had to drop the HfreqMin-HfreqMax to 49-61 as a few vector games were sending my d9200 into a black screen and horrible sounding screaming.   Dropping them all to 49-61 seems to have fixed all my issues and all the games tested so far are looking good and I haven't had any issues with out of range, lockups or horrible sounds from my monitor. 


Not sure if I am missing out on anything by dropping them from the 40-80 ranges in the defaults but so far so good.

Code: [Select]
crt_range0  15250-18000, 49-61, 2.187, 4.688, 6.719, 0.190, 0.191, 1.018, 0, 0, 224, 288, 448, 576
crt_range1  20000-21500, 49-61, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 320, 360, 0, 0
crt_range2  23900-29000, 49-61, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 0, 0, 384, 400, 0, 0
crt_range3  29001-32000, 49-61, 0.636, 3.813, 1.906, 0.318, 0.064, 1.048, 0, 0, 400, 512, 0, 0
crt_range4  32000-35000, 49-61, 1.000, 3.200, 2.200, 0.020, 0.106, 0.607, 0, 0, 512, 600, 0, 0

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7414
  • Last login:April 10, 2024, 02:02:31 pm
  • Quote me with care
Re: Help with d9200 and 800x600 mode out of sync.
« Reply #8 on: March 05, 2020, 11:31:05 am »
I think all Vfreq ranges in GM/VMMaker should be set to something reasonable like those you're using. In the past some were set to 40-80 since their specs documentation allowed that but those values make little sense for arcade games.
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