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: Cleanstretch vertical only  (Read 10279 times)

0 Members and 1 Guest are viewing this topic.

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Cleanstretch vertical only
« on: March 04, 2013, 06:38:03 am »
Hi all

Impressed by the results I'm getting with GroovyMAME, seems to work far more neatly than the last time I was impressed (AdvanceMAME, prior to the video rewrite in 107) - smooth scrolling with minimal lag and no sound issues. I'm running on a Rodotron 666A tri-sync CRT, using an onboard Intel chip with a fixed resolution of 640x480. Most stuff I've tried with a resolution of < 320 horizontal pixels scales up nicely with black borders (cleanstretch 1, effect scanlines.png) - impossible to tell it's not a 15KHz CRT, which is what I was hoping for.

Now, my next task is to see if I can run at 768x480, giving me an option for those games that have absolutely massive borders when cleanstretched to 640x480. But even if I fail at this what I'd really like is to be able to simply integer scale vertically ONLY, but scale the horizontal fractionally. I used to be able to do this with AdvanceMAME, but I can't see any way of doing it with GroovyMAME.

I don't want to use true 15KHz modes as the monitor has a far better picture in 31KHz with fake scanlines than it does in low resolution, and I'm not comfortable having it switch between syncs regularly.

Cleanstretch vertical, fractional stretch horizontal, running D3D with filter on should be great for my use. I could probably compile my own binary and hard code the cleanstretch routine to do so, but it's beyond me to modify it more extensively to allow it to be optional ;)

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: Cleanstretch vertical only
« Reply #1 on: March 04, 2013, 05:14:50 pm »
Hi cools,

Yeah I thought no one would ask for this. It's definitely a required option. Not for nothing AdvanceMAME had it.

A cool alternative to the 'magic' resolution feature, would be creating ridiculously wide resolutions, like 2560 x 224. Then an option like this would allow us to keep the vertical perfectly mapped while fractional stretching on the horizontal for any resolution. No stretching artifact should be noticeable at that ultra high horizontal resolution. This is an old idea by the way. And there's nothing that prevents us to do it.

I will definitely consider it for a future release.
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #2 on: March 05, 2013, 05:30:36 am »
Cool, that'd be great. Still have to work out what resolution this one will take, but for anyone with a fixed frequency 31KHz CRT it'll allow for a hugely authentic image.

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #3 on: March 10, 2013, 02:15:53 pm »
768x480 is definitely a good choice.

For games that aren't a factor of this on the horizontal, using prescale 2 and filter 1 I *cannot* see a difference between upscaled and native, no need to go to a higher resolution. R-Type Leo for example (320x240) is spot on.

Games that don't scale neatly in either direction are bordered on all sides, but look ugly as hell with cleanstretch off.

Resolution switching is clever, but this is elegant - no monitor collapses when switching res, just looks smooth and meant to be.

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #4 on: March 17, 2013, 03:31:44 pm »
Further thoughts. If a vertical game is being played on a horizontal screen, I'd still want cleanstretch on the "vertical" axis of the game display. This would keep the scanlines in the right place running up the screen, and then allow fractional stretch on the other axis to expand it out to the top and bottom of the display while keeping the 4:3 aspect ratio.

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #5 on: March 17, 2013, 07:13:08 pm »
Need to get 854x480 to achieve this :)

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #6 on: March 18, 2013, 11:00:59 am »
Don't do geometric maths with non-square pixels late at night.

Of course the correct resolution is 1280x480 - if you rotate a 320x240 image without doubling it it'll still be the correct aspect ratio on a 640x480 screen. If you want to double it perfectly you need twice as many pixels on the horizontal  :embarassed:

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #7 on: March 19, 2013, 11:11:35 am »
Except for the fact I can't persuade VMMaker to create a 1280x480 mode :(

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: Cleanstretch vertical only
« Reply #8 on: March 19, 2013, 11:59:18 am »
Just add whatever resolution you want into Resllist.txt, using the exact format. Then launch Vmmaker and it will create the resolution for you.
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #9 on: March 19, 2013, 12:45:16 pm »
I've done that. It seems to fall over if the resolution is >999 horizontal and create a nasty interlaced 1264x944 mode.

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: Cleanstretch vertical only
« Reply #10 on: March 19, 2013, 12:54:40 pm »
Hi cools,

Make sure to use the latest version:

http://mame.3feetunder.com/windows-ati-crt-emudriver/
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #11 on: March 19, 2013, 01:05:14 pm »
Aha! :facepalm: I guess this is newer than the one in the driver pack then :)

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: Cleanstretch vertical only
« Reply #12 on: March 19, 2013, 02:01:36 pm »
Yes, I need to redo the packages with the newer versions in. So did it work?
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #13 on: March 19, 2013, 02:35:19 pm »
No, it won't generate a mode at all. I've tried all the different monitor types.

Once I put the xres over 999 it stops trying to make a mode for that resolution. The previous version tried but generated a bad mode.

The largest I can get is 1000, this is by specifying a 999 xres in ResList.txt

My monitor type is set as D9200

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: Cleanstretch vertical only
« Reply #14 on: March 19, 2013, 03:05:21 pm »
It works here, check my files...

;)
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #15 on: March 19, 2013, 03:27:12 pm »
Aha!

I had a space in front of the number, like all the other resolutions. That explains it :)

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #16 on: March 19, 2013, 03:32:29 pm »
Success! 1280x480 :)

Next, see if I'm reading the cleanstretch logic correctly in my patch...

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: Cleanstretch vertical only
« Reply #17 on: March 19, 2013, 03:34:52 pm »
Aha!

I had a space in front of the number, like all the other resolutions. That explains it :)

Yeah, that's why I said *exact format* because that part of the program is ancient and is so picky with spaces. I'm working in a new version that will be more human-friendly, sorry.

Keep us informed with your custom cleanstretch patch.
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #18 on: March 19, 2013, 04:20:44 pm »
Will do. Trying to get MAME to compile at the moment.

The 1280x480 was a no-goer as far as scanlines on vertical is concerned. It may work on a better monitor but on this Rodo/Samsung combo it simply won't resolve them. It won't even resolve single pixel vertical jailbars in 640x480 without horrendous moire so I'm giving up on that for now - was a nice idea but filter 1 seems to cope with scaling artifacts nicely enough so not much point from what I can see.

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #19 on: March 19, 2013, 06:11:58 pm »
Struggling. Will try with the 147u3 diffs tomorrow, the 148 diff is producing a result with entirely different behaviour to the official 147u3 compile, even without me messing with it :(

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #20 on: March 22, 2013, 07:05:10 am »
Completely failed to work out what was necessary :)

But by playing around with VSTRETCH and VPOS in the Slider Controls menu I've found that I can cleanstretch the vertical manually (using TNZS as an example, disable cleanstretch, set the VSTRETCH to 0.932 and the VPOS to 0.002 and it's perfect). This works fine because we are only ever shrinking the height, we never want to go above the render area - otherwise I could enable cleanstretch and stretch the horizontal manually. The latter would be easier but unfortunately I think I've found a tiny flaw in baseline MAME that Groovy inherits, and now I've spotted it it's bugging the hell out of me.

Set resolution to 640x480, prescale 2, filter 0, cleanstretch 0, keepaspect 1, effect scanlines.png. Run TNZS. Set the vstretch to 0.932 and the vpos 0.002 - this makes the horizontal clean (the scanlines mask any scaling errors, the vpos pushes the error about to be explained into a scanline). Now try and get the vertical to be clean. You can't. There's always one line exactly in the centre of the screen that is doubled. Disable scanlines and you'll see it on the horizontal as well. Setting HSTRETCH to 0.932 should be what's needed but you always get that line, and there's no way of cheating by pushing it into a scanline.

Do exactly the same, but with prescale 0. The errors are gone.

Now, here's the important part as it's where Groovy comes in. Cleanstretch 1, prescale 2. I understand that if cleanstretch is on there should be no need of prescaling, but since we eventually want to enable filtering to eliminate shimmering on horizontal scrolling caused by non-integer X scaling, we definitely need to prescale. Without prescaling we get a lot of undesirable blurring vertically.

Unless I'm very much mistaken, prescaling by 2 and cleanstretching should produce a perfect pixel doubled image. But it doesn't. I'm not sure whether prescale 2 and keepaspect 1 (baseline) should produce a pixel doubled image, but it doesn't anyway.

It's extremely subtle on a big CRT once scanlines and filtering is enabled - an LCD just highlighted the issue to me as I was trying to write up a tutorial :)

lettuce

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1900
  • Last login:December 31, 2021, 01:46:10 pm
  • Make It So!
Re: Cleanstretch vertical only
« Reply #21 on: March 22, 2013, 07:18:15 am »
Cools, would enabling HLSL and just using the scanlines mask this issue??

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #22 on: March 22, 2013, 07:42:49 am »
No. The HLSL scanlines aren't visible at this low a resolution, and you can see the problem is still there (have to set the HLSL prescale to 4 as filter is always on). If the scanlines were visible it might be an option. For a giggle, use effect scanlines.png and just enable HLSL without any processing...

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: Cleanstretch vertical only
« Reply #23 on: March 22, 2013, 07:53:24 am »
Hi cools,

I'm assuming you're planning to render tnzs at 480p leaving black borders up and down (448p over 480p).

I'm going to suggest you to give a chance to Groovy automatic option setting, then please report back whether it succeeds or fails. Make a clean mame.ini with the -cc param, then just edit what's necessary to achieve the scanlines effect.

Use the right monitor setting for 31 kHz, for instance: -monitor arcade_31 (forget about the probable geometry variations by now, just a test)
Now, force the resolution option to 640x480, like this:  -resolution 640x480@60
Enable the modeline option: -modeline 1 (please ;))

Now launch tnzs.

I believe it's the -keepaspect option what's messing the picture up.

When the modeline option is active, the prescale right setting is calculated automatically to play together with cleanstretch.


EDIT: Ok, sorry, I didn't notice you're planning to stretch on the horizontal. Anyway, try disabling -keepaspect and play with the stretch factors manually.
« Last Edit: March 22, 2013, 08:00:53 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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #24 on: March 22, 2013, 08:30:30 am »
Okay - I had to manually change to 640x480 before running Groovy (switchres can't find a mode it likes - not surprising as I'm on a test laptop with an NVidia chip, standard drivers and multiple monitors)

Same problem :)

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #25 on: March 22, 2013, 02:06:20 pm »
May simply be a bug in the Nvidia driver - I can't get the onboard intel to prescale properly, and the scaling is different on it as well?! The ATI with CRT Emudriver seems to be flawless.

I'd still like to see a proper cleanstretchY option in a future release, but manually adjusting the games for now will be fine - I have to set them all up with freeplay or credit on start anyway!


cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #26 on: March 22, 2013, 02:47:27 pm »
I may just want to stick to the slider controls... Just realised I can shift games that would double larger than 480 lines up and down the screen. Rtype is perfectly playable if you scale it above 1 to fix the scanlines and then shift it up the screen just enough to make the score visible  ;D

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #27 on: March 24, 2013, 06:33:51 am »
Tested on another Intel chip and it works fine, so its just a driver glitch :-)

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: Cleanstretch vertical only
« Reply #28 on: March 25, 2013, 05:22:18 pm »
Hi cools,

I don't know but this issue might be related with what you're seeing: http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=305258&page=2&view=expanded&sb=5&o=&fpart=1&vc=1
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #29 on: March 26, 2013, 10:27:24 am »
Thanks, yes - that's exactly it. Albeit subtly different configurations.

I'm not registered on MAMEWorld, if someone wants to point them to this thread it might be useful for them. I'm happy enough with the ATI solution.

lettuce

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1900
  • Last login:December 31, 2021, 01:46:10 pm
  • Make It So!
Re: Cleanstretch vertical only
« Reply #30 on: March 29, 2013, 08:01:09 am »
Apologies for this slight hijack of this thread. I'm looking an an LCD PC monitor that reports in the spec sheet...


Horizontal frequency: 30-94 kHz (VGA), 30-92 kHz (DVI), Vertical frequency: 48-85 Hz (VGA), 30-92 kHz (DVI)

Will this run groovyMAME/arcade games at the correct speed with smooth scrolling? And then use cools method of double refresh and clean stretch for an authentic scanline look? I know cools is working with a 31khz CRT here, but I wonder if I could get the same results with this LCD as it seems unusual for a LCD to support such a wide range of refresh rates?

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #31 on: April 01, 2013, 03:03:21 am »
Run an LCD at native res and use HLSL.

You can get good results without HLSL but it'll require setting up every game. I wrote the method in the Arcade Otaku Wiki before HLSL was usable ;-)

lettuce

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1900
  • Last login:December 31, 2021, 01:46:10 pm
  • Make It So!
Re: Cleanstretch vertical only
« Reply #32 on: April 01, 2013, 05:02:48 am »
Well the native res is 1200x1600, I though it would be better to run the monitor in its lowest possible res?

Just wondered why you weren't using the HLSL scan line feature and nuts a png effect?

Not sure what settings I want in mame ini for an LCD monitor that can handle such a wide refresh rates?, as I don't think you'd want to set the display as 'LCD' as its not limited by the usual LCD refresh rates

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: Cleanstretch vertical only
« Reply #33 on: April 01, 2013, 10:15:23 am »
Apologies for this slight hijack of this thread. I'm looking an an LCD PC monitor that reports in the spec sheet...


Horizontal frequency: 30-94 kHz (VGA), 30-92 kHz (DVI), Vertical frequency: 48-85 Hz (VGA), 30-92 kHz (DVI)

Will this run groovyMAME/arcade games at the correct speed with smooth scrolling? And then use cools method of double refresh and clean stretch for an authentic scanline look? I know cools is working with a 31khz CRT here, but I wonder if I could get the same results with this LCD as it seems unusual for a LCD to support such a wide range of refresh rates?

It's not unusual that a LCD accepts a wide range of input signals, what's rare is that it does actually *output* those frequencies, i.e. refresh its panel at the input rate rather than refactoring the signal into the 60 Hz working range. As far as I know LCD manufacturers don't advertise this feature so your only hope is testing it directly or buy one which has already been tested by some user who knows what he's doing. There was a thread in this subforum with some models that did custom refresh rates (Viewsonic?). I don't use LCDs myself for emulators, but considering the amount of LCD users, the fact that we still don't have a list of suitable models is something that's beyond me.

« Last Edit: April 01, 2013, 10:17:34 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

lettuce

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1900
  • Last login:December 31, 2021, 01:46:10 pm
  • Make It So!
Re: Cleanstretch vertical only
« Reply #34 on: April 01, 2013, 01:13:52 pm »
Was that the, 'GroovyMame and Vision Pro LCD' Thread??

Well I could not resist and got a used HP LP2065 off ebay for around 80.00 and I have great news. It works!  Mk reports 100% on Mame .. Monitor reports 55hz on vertical and the most important thing is that it scrolls smooth. So I think we have a winner. Couple things to note was once again I had to unistall and reinstall powerstrip because it was not changing the res like it was suppose to when I switched from the Dell to the HP and also to note is that I had to use a DVI-A (a as in analog as in VGA) Because the monitor only has two DVI ports and only the analog signal can go up to 75hz.  The HP I got on ebay had a small scratch/puncture in the LCD so I thought I would see if the DELL panel would fit in the HP and it did. Same harness and everything.  I also tested qbert and that ran at 61.

So it would seem by the result of smooth scrolling that it is actually out putting 55hz

eboshidori

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 13
  • Last login:May 20, 2013, 06:56:18 pm
  • Le CRT vaincra ! ^.^
Re: Cleanstretch vertical only
« Reply #35 on: April 01, 2013, 05:48:07 pm »
considering the amount of LCD users, the fact that we still don't have a list of suitable models is something that's beyond me.

The fact is LCD is not a suitable display for gaming  :P , so don't expect to get such a list from users who can't see to what extent it's so bad, and deal with it anyway.
Sure, there are (very few) LCDs that aren't as bad as the others, but good luck to find informations on them...  ::)

Quote from: jrose78
Well I could not resist and got a used HP LP2065 off ebay for around 80.00 and I have great news. It works!  Mk reports 100% on Mame .. Monitor reports 55hz on vertical and the most important thing is that it scrolls smooth.

That's a good news that it accepts 55 Hz. It can use the timings of the signal rather than the internal PLL. But it's possible that it means an additionnal frame of delay... 1rst frame to wait for the incoming informations, 2nd to perform scaling (unless you provide a 1600x1200 picture), and then be ready to jump in sync with the next frame of the signal. Even if your MAME doesn't have triple buffering enable, your LCD screen is doing it for you ! How nice it is. :P


cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #36 on: April 02, 2013, 03:26:03 am »
Well the native res is 1200x1600, I though it would be better to run the monitor in its lowest possible res?

Just wondered why you weren't using the HLSL scan line feature and nuts a png effect?

LCD you always want in native, the reason being this (should) avoid any processing being done by the display itself which (a) adds lag and (b) cannot be controlled. You want to avoid adding lag and have complete control over the picture.

The reason I'm not using HLSL is because I'm running on a CRT - this whole thread was about how best to use a 31K CRT. It's completely pointless using HLSL on a CRT, far cheaper to use the standard effect png.

lettuce

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1900
  • Last login:December 31, 2021, 01:46:10 pm
  • Make It So!
Re: Cleanstretch vertical only
« Reply #37 on: April 02, 2013, 05:21:29 am »
The only reason I suggested HLSL (just for scanlines) was it gives you much more control over the scanlines than just the effect.png, like scanline brightness, thickness, odd, even all on the fly

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #38 on: April 11, 2013, 11:33:30 am »
The only useful one would be brightness, the rest are not useful if you're just linedoubling the image. Quite happy with the default one :)

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #39 on: April 26, 2013, 02:41:32 pm »
I'm facepalming hard here.

The ONLY settings that need to be changed (in 147 and 148) from stock config are...

effect scanlines.png
monitor arcade_31

I read a post by Calamity saying that all the expert users seem to be the most distrusting of the modeline option, so I thought I'd try it. He's not kidding. No need for cleanstretch or messing around with vsync, it just works.

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #40 on: April 29, 2013, 05:04:38 am »
With one caveat! Games that don't linedouble to <= 480 lines are flawed. The default scaling isn't terrible, but I'd prefer to override it and stretch the vertical larger than the screen height simply to keep the image clean, but I can't see any way of doing this without disabling the modeline engine. No matter how I adjust the vertical stretch within MAME it won't provide a clear image, unless modeline is off :(

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: Cleanstretch vertical only
« Reply #41 on: April 29, 2013, 05:41:46 am »
If what you're suggesting is to force GM to crop the frame vertically in order to keep integer scaling for games that linedouble above 480 lines, well that's probably not going to happen: one of the basic principles of design was to ensure that the visible frame *always* fits inside the active video, either by integer or fractional scaling. This is because resolution switching is the supposed behaviour.

However, provided you can replicate the behaviour you want by disabling -modeline, then it is possible to keep -modeline on and achieve what you want by forcing certain options as enabled or disabled in per game inis (atention: not in mame.ini! this is overridden). Just create a log with -modeline on, then check which options are enabled/disabled by the SwitchRes automatic option setting (check the log). Then it's a matter of blocking those options manually from command line, one by one, to check which one is preventing GM from working as you like. Then move those options permanently to an ini file for the desired game/driver.
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #42 on: April 29, 2013, 03:30:56 pm »
Yeah, it's no big deal for the few decent games that are >240 lines. Scale up outside the borders then shift the picture up or down as desired.

Highly impressed at how well it works with arcade_31 though. Good job!

I have one final question though - does the upscaling and using an effect overlay introduce any input lag? I'm noticing I have more accurate response time to a PCB (I'm testing games I own and am intimately familiar with on PCB vs MAME) if I set frame_delay to 1, but that of course introduces tearing or sound stuttering depending on the game.

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: Cleanstretch vertical only
« Reply #43 on: April 30, 2013, 04:25:57 pm »
Hi cools,

Upscaling should have no impact on input lag of any kind.

That said, it's been recently confirmed that ATI drivers do create an artificial frame queue when in Direct3D full screen mode, that adds up to 3 frames of lag.

This is bypassed by the frame_delay option, but unfortunately this one does not provide a fast enough v-sync for Direct3D, which can show as static tearing by the top of the screen.

Both issues can be solved by just switching to DirectDraw, in case that's a possibility considering your current setup.

Any report on this will be appreciated.

BTW A couple of days ago I bought a camera that can record video at 240 fps, it will become handy for future experiments :)

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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #44 on: May 01, 2013, 04:23:52 pm »
Thanks, that's actually quite interesting considering there's no real need for an ATI card in my setup since I'm only using a single, VGA resolution.

Will report back when I have a chance to mess with it. Setting frame delay to 1 seemed to sort everything out but obviously there's the tearing at the top. Interesting the value is 1, rather than 3, though I didn't experiment further.

Not sure if DDraw will be practical, I've always found the performance hit huge when doing any sort ofscaling or overlays.

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #45 on: May 10, 2013, 01:41:29 pm »
Hi cools,

Upscaling should have no impact on input lag of any kind.

That said, it's been recently confirmed that ATI drivers do create an artificial frame queue when in Direct3D full screen mode, that adds up to 3 frames of lag.

This is bypassed by the frame_delay option, but unfortunately this one does not provide a fast enough v-sync for Direct3D, which can show as static tearing by the top of the screen.

Both issues can be solved by just switching to DirectDraw, in case that's a possibility considering your current setup.

Any report on this will be appreciated.

Okay, report!

Using the single resolution and frame_delay 1 = tearing, but no lag.

Using VMMaker generated resolutions from MAMEs XML infor with arcade_31 as a preset (letting VMMaker and switchres do their thing), with frame_delay 1 = no tearing, no lag! Lag is definitely present without frame_delay 1 - testing with tnzs, fantzone, nemesis it's like night and day how responsive they are when it's enabled. It's staying in my ini.

Really need to write up how it's all set up as there's been a lot of me messing around and digging for information that wasn't really needed.

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #46 on: May 10, 2013, 02:09:04 pm »
figured out games > 240 lines.

The default prescale is not working well enough for them - if I specify prescale 2 in the gamename.ini, and then use the vertical stretch slider (1.066 works for R-Type) I get pixel perfect scaling with the top and bottom cropped as desired.

All done :)

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: Cleanstretch vertical only
« Reply #47 on: May 11, 2013, 11:12:43 am »
Hi cools,

Thanks for reporting this. It's good to have another confirmation that the -frame_delay actually reduces perceived lag in gameplay.

Just a note: you can create just a single 1600x480 resolution with VMMaker if that's what you want, and then use GroovyMAME leaving -modeline on, with arcade_31 setting and enforcing the -resolution option to pick this resolution for you. That will adjust the refresh while still using a single resolution.

I've been testing "super resolutions" these days, as a replacement for magic resolutions (which won't work in W7). I chose a bunch of 2560x resolutions, with the different heights I needed, and it actually works great out of the box. Some games that don't scale exactly to 2560 may show wider borders but not big deal, anyway when the horizontal-only fractional scaling is implemented this will be a very good replacement for magic resolutions.
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

cools

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 645
  • Last login:March 11, 2024, 02:59:06 pm
  • Arcade Otaku Sysadmin
    • Arcade Otaku
Re: Cleanstretch vertical only
« Reply #48 on: May 12, 2013, 11:28:32 am »
Hmm, the only reason I tried the standard setup was because the single super-resolution didn't work well with frame_delay - I had tearing.

It's brilliant how well it works, shows how confused I was I couldn't replicate it when changing cards.

On my Rodotron however going above 1600 means I've got to change the brightness and contrast settings on the chassis, and Windows is unusable so I've got to stick to 1600 or lower. I'll have to try again forcing the resolution with frame delay on, as if that works perfectly then once fractional scaling on horizontal only is implemented everything will be centred and sized properly.