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: Vertical games on horizontal monitor tear with Frame delay active [SOLVED]  (Read 3323 times)

0 Members and 1 Guest are viewing this topic.

Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Hi,

I notice that vertical games displayed on horizontal monitor have a considerable tear at the top of the screen when frame delay is enabled. Even setting it "1" give the tearing , sadly.
This isn't just related to the 205 but 204 too (the two version I tested so far).
Is there anything I can to have frame delay active with vertical games without to suffer tearing?
Btw thanks Calamity for this new release, finally it is possible to set the FD on the fly internally in the sliders and even disable it if necessary. This make life easy to me! thanks!
« Last Edit: January 03, 2019, 03:57:36 pm by Torkyo »

phulshof

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 55
  • Last login:February 09, 2024, 01:33:15 pm
    • Pieter's Webpage
Re: Vertical games on horizontal monitor tear with Frame delay active
« Reply #1 on: January 02, 2019, 03:55:05 am »
Would this be solvable by triple buffering, and is that still a MAME feature?

Sent from my SM-G950F using Tapatalk


Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Re: Vertical games on horizontal monitor tear with Frame delay active
« Reply #2 on: January 02, 2019, 09:17:16 am »
Would this be solvable by triple buffering, and is that still a MAME feature?
thanks.

If frame delay is disable, there is no tearing at all. but I'd like to use frame delay due to the input delay reduction which is a gift of the frame delay option.
triple buffering would be pointless as it nullified the benefit of frame delay.
For a game like Raiden I could take FD set to 8 which is gold, a perfect responsiveness.

haynor666

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1470
  • Last login:March 04, 2024, 03:20:27 am
  • retro maniac
Re: Vertical games on horizontal monitor tear with Frame delay active
« Reply #3 on: January 02, 2019, 03:34:45 pm »
Technically there is option using sync_refresh_tolerance    5.0 or more. This way You will have slower game by some percentage but syncrefresh will work and frame_delay should work also. For 256 horizontal lines many 60 Hz games will drop to 57 Hz (or close). Sadly maximum here is 288 lines. Beyond this You have to still 480i.
« Last Edit: January 02, 2019, 03:37:10 pm by haynor666 »

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 791
  • Last login:October 03, 2023, 02:27:31 pm
  • Multiple Electronic Machine Emulator
Re: Vertical games on horizontal monitor tear with Frame delay active
« Reply #4 on: January 02, 2019, 03:40:45 pm »
Sorry if it's a stupid suggestion but rather doesn't he just need to set a vsync_offset value in a dedicated raiden.ini ?

If so he could start trying 100, then 200, etc until the line disappears (you can refine like 250, 255 etc. if you put too much the line will reappear at the bottom of the screen)

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: Vertical games on horizontal monitor tear with Frame delay active
« Reply #5 on: January 02, 2019, 03:51:14 pm »
@Torkyo,

Your 4350 is too weak to do frame delay at interlaced super resolutions (e.g. 2560x480 requires a huge bandwidth). In my experience the bare minimum to support that is HD 6xxx and above. Others (cools) have had success with some 4350s anyway.

The solution is to edit user_modes_super.ini and remove the anything above 288p, then add some normal 4:3 modes to the list such as 664x496@60, 688x512@60, 704x528@60 (the resulting refresh will be lower, depending on your monitor preset).

You may still see some static tearing on the top of the screen. If that's the case, use -vsync_offset as suggested above, but start with much lower values, e.g. 16 and go increasing that in steps of 16, for instance (schmerzkaufen uses lcd).
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

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 791
  • Last login:October 03, 2023, 02:27:31 pm
  • Multiple Electronic Machine Emulator
Re: Vertical games on horizontal monitor tear with Frame delay active
« Reply #6 on: January 02, 2019, 04:14:40 pm »
but start with much lower values, e.g. 16 and go increasing that in steps of 16, for instance (schmerzkaufen uses lcd).
oops yes my mistake

Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Re: Vertical games on horizontal monitor tear with Frame delay active
« Reply #7 on: January 02, 2019, 06:14:24 pm »
@Torkyo,

Your 4350 is too weak to do frame delay at interlaced super resolutions (e.g. 2560x480 requires a huge bandwidth). In my experience the bare minimum to support that is HD 6xxx and above. Others (cools) have had success with some 4350s anyway.

The solution is to edit user_modes_super.ini and remove the anything above 288p, then add some normal 4:3 modes to the list such as 664x496@60, 688x512@60, 704x528@60 (the resulting refresh will be lower, depending on your monitor preset).

You may still see some static tearing on the top of the screen. If that's the case, use -vsync_offset as suggested above, but start with much lower values, e.g. 16 and go increasing that in steps of 16, for instance (schmerzkaufen uses lcd).

Thank you very much,

Luckily I don't go interlacing as I got a good Hantarex Polo Star tri sync monitor and I've been able to set up the screen very well also for vertical games, many runs at 16200 kHz, other 25 and 31kHz without to interlace.
I did't realise that the video card had a rule in the frame delay matter! I was thinking that everything was over CPU shoulders...
Anyway now I understand why in games like Shienryu (320x240) it is impossible to me to use frame delay. it isn't a matter of CPU, it is the GPU!
In game like Raiden (256x224 59.60 Hz switcher 2560x256P 59.60 Hz 16211 KHz) I could keep frame delay set to 8 without stuttering or slowdown. the game is perfect apart that static tear on the top of the screen. This is the same for the most of my favourite games: without that static tear the game would be perfect with frame delay set to 8 and even 9 (Slap Fight/1942/1943/Psychic/Gyrodine/Road Fighter/ etc).
Shienryu to me runs perfect without frame delay with a switcher resolution of 2560x496P 59.765 Hz 31.556 KHz but as you can guess, even if I set frame delay to 1, the game severely stutters and have slow downs.
So far the only way I found to reduce a bit the input lag for vertical games is to use the D3D9EX groovymame patch but there is a tangible difference (in terms of input latency) between D3D9EX and a good Frame delay set to 8. there is more than frame, 1,5 in my tests.

So thanks for your suggestions, I'm going to edit user_modes_super.ini the way you suggested and try to fix also the static tear using the -vsync_offset although I don't know at all the -vsync_offset option.
I let you know my progress.
thanks

Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Re: Vertical games on horizontal monitor tear with Frame delay active
« Reply #8 on: January 02, 2019, 06:48:09 pm »
"4. vsync_offset                     0

The V-sync offset feature only makes sense if a tearing effect appears with -frame_delay. Tearing happens with high resolutions, when there's substantial scaling going on, be it 640 x 480 or 2560 x 240. At high resolutions, the time it takes the GPU to scale a frame starts being longer than the blanking period itself, which may cause static tearing when -frame_delay is used.

To compensate this issue, -vsync_offset forces the render code to be called a number of lines ahead of time. Ideally, using a proper value realigns the render completion with the end of the blanking period, cleanly removing all tearing, but you'll need a fairly fast graphics card in order to fully remove tearing. The higher the tearing line appears on the screen initially, the faster your card is, and the more chances of completely hiding tearing through -vsync_offset. The value should be typed as the estimated number of scan lines required to hide the effect for every particular case.

Notice that it'll be required to lower the -frame_delay value proportionally to the amount of lines set in -vsync_offset"


I'm studying...

Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Re: Vertical games on horizontal monitor tear with Frame delay active
« Reply #9 on: January 02, 2019, 09:29:45 pm »
Quote
The solution is to edit user_modes_super.ini and remove the anything above 288p, then add some normal 4:3 modes to the list such as 664x496@60, 688x512@60, 704x528@60 (the resulting refresh will be lower, depending on your monitor preset).

Thanks Calamity! it worked!!!!  :applaud: I did right what you said and now basically all vertical games have no tear and I can push frame delay to 7!
No chances for Shienryu and other vertical heavy games but luckily such "recent" vertical shooters aren't my target. I will face them with a new GPU then. Anyway here there is no problem of tearing, simply it is slow down of the game as they are CPU/GPU demanding.
So thanks again!

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: Vertical games on horizontal monitor tear with Frame delay active
« Reply #10 on: January 03, 2019, 10:58:32 am »
@Torkyo,

Your 4350 is too weak to do frame delay at interlaced super resolutions (e.g. 2560x480 requires a huge bandwidth). In my experience the bare minimum to support that is HD 6xxx and above. Others (cools) have had success with some 4350s anyway.

Just for reference, I've never used 2560x480 as interlaced (only progressive on a 31K screen) - and never with frame_delay (beyond setting it to 1 when it was required to bypass the frame queue) ;)

Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Re: Vertical games on horizontal monitor tear with Frame delay active [SOLVED]
« Reply #11 on: January 11, 2019, 11:28:44 am »
Hello, I'd like to add that recently I bought a new video card, right an HD 7850. With this video card I achieved no tears also with hi super resolutions enabling Frame delay (talking always of vertical games on horizontal monitor). for old games like Terra Cresta I could even push frame delay to 9 without to have any sort of slow down. and this rules for many other games.
Sadly with modern heavy games like Shienryu I can't turn on the frame delay as it results in slow down (from 80% even to 50% even setting FD to 1)  as probably no matter the power of the GPU, it is very hi CPU demanding game. I was wondering if I could have some success with such heavy games.
Maybe multithreading set to "1" could be an option?

My CPU is a Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz.

Thanks

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 791
  • Last login:October 03, 2023, 02:27:31 pm
  • Multiple Electronic Machine Emulator
Re: Vertical games on horizontal monitor tear with Frame delay active [SOLVED]
« Reply #12 on: January 11, 2019, 11:38:02 am »
IIRC we should'nt touch the multithreading option.

Instead you could try underclocking the game's CPU% slider (enable 'cheats' in the mame.ini to see it added in the ingame sliders menu)

I've read somewhere that Shienryu would still run fine withe the CPU at only 50%, and that it made the game much lighter to emulate.
Note however that underclocking so much can make a game unstable and you might experience glitches or even crashes.

The slider moves slowly but don't worry, Calamity just recently made it so the position saves.

Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Re: Vertical games on horizontal monitor tear with Frame delay active [SOLVED]
« Reply #13 on: January 11, 2019, 06:48:26 pm »
Thanks for the advice, I'll try your way!

Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Re: Vertical games on horizontal monitor tear with Frame delay active [SOLVED]
« Reply #14 on: January 12, 2019, 07:10:45 pm »
IIRC we should'nt touch the multithreading option.

Instead you could try underclocking the game's CPU% slider (enable 'cheats' in the mame.ini to see it added in the ingame sliders menu)

I've read somewhere that Shienryu would still run fine withe the CPU at only 50%, and that it made the game much lighter to emulate.
Note however that underclocking so much can make a game unstable and you might experience glitches or even crashes.

The slider moves slowly but don't worry, Calamity just recently made it so the position saves.

Thanks for your suggestion, I tried what you said but that didn't help, frame delay gave big slow down even setting it to 1.

BTW I came up with the "multithreading" supposition because in the Groovymame main thread (http://forum.arcadecontrols.com/index.php/topic,151459.0.html)  there is a link to a guide dated 2015 to groovymame settings (http://geedorah.com/eiusdemmodi/forum/viewtopic.php?id=290) in this guide I found many interesting things. among them there is the "multithreading" option.
Anyway I realised that in now days  groovy mame.ini there is no trace of multithreading so I guess this is an obsolete option and most luckily also the guide to groovymame settings is somehow obsolete too and this made me wondering if is there a more up to date guide for GM.
Thanks
« Last Edit: January 12, 2019, 07:13:40 pm by Torkyo »

schmerzkaufen

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 791
  • Last login:October 03, 2023, 02:27:31 pm
  • Multiple Electronic Machine Emulator
Re: Vertical games on horizontal monitor tear with Frame delay active [SOLVED]
« Reply #15 on: January 12, 2019, 07:45:09 pm »
yeah I don't remember the details but the multithreading is not what people believe, MAME already uses several threads and cores, real or virtual, by itself without that.
IIRC multithreading (or -mt) is (or was) used when triple buffering is in action, which we don't need nor want, frame_delay doesn't work with it anyway.

In regards to heavy, complex emulated systems like Sega STV (notoriously one of the most difficult to emulate), it is likely that frame_delay can't be used along, or only on very powerful PCs.
Personally with mine (see my sig) I can't.
You should ask Philexile to try, he most certainly owns one of the most powerful rigs in this community.
And I think Calamity is in the middle of building a rather high-end rig too.
That's the only way to confirm.
Sometimes the only solution is raw power, sometimes even that can't help. MAME can be very demanding, and advanced features can double, triple the requirements.

Torkyo

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:November 29, 2023, 07:12:04 pm
  • I want to build my own arcade controls!
Re: Vertical games on horizontal monitor tear with Frame delay active [SOLVED]
« Reply #16 on: January 12, 2019, 08:16:13 pm »
Thanks Schmerzkaufen, I got it!
For the moment the only good compromise is to accept a little of input lag with such heavy games, being sure that in the future will be more easy to have raw power!

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: Vertical games on horizontal monitor tear with Frame delay active [SOLVED]
« Reply #17 on: January 13, 2019, 01:34:13 pm »
Yes, -multithreading was deprecated from mainline, and since then GM has not it available as a separate option, it's just enabled internally by the -triplebuffer 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