VOGONS

Common searches


First post, by WhiteKnight

User metadata
Rank Newbie
Rank
Newbie

Hello,

I've noticed that many of the old DOS games that I run in DOSBox have very bad (noticeable) screen tearing. In newer games (i.e. Windows games) this screen tearing can be fixed by enabling vertical sync through the video card drivers. However, even with vsync enabled through the vid card drivers, the screen tearing in still apparent in the game when run in DOSBox. Is there a way to remedy this screen tearing?

Reply 15 of 44, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Guest: DOSBox does not time anything based on vsync. If a game is running too fast then you need to lower the cycles. If that doesn't help then it is probably a bug that should be reported in its own thread (if there isn't one already).

Reply 16 of 44, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

pfff dosbox has a vsync emulation. don't know what you are talkign about.
maybe the game doesn't like our vsync emulation, but I won't believe that every game has problems with it.

Water flows down the stream
How to ask questions the smart way!

Reply 17 of 44, by WhiteKnight

User metadata
Rank Newbie
Rank
Newbie

Qbix, are u referring to the doublebuffer option? is that the vsync option?

HunterZ, its not a problem with the game running too fast so cycles have nthing to do with it....it a problem with the screen tearing (or breaking in half slightly) when you scroll side to side....

for example look at the attachment below...the black line i put in there for emphasis but it is an example of screen tearing...see how the black line splits the screen into two section? in the game it is not a black line, the line is the same color as the surroundings....

Attachments

  • temujin.JPG
    Filename
    temujin.JPG
    File size
    50.23 KiB
    Views
    14885 views
    File license
    Fair use/fair dealing exception

Reply 18 of 44, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

WhiteKnight: I was talking to that Guest who mentioned StarGunner.

Qbix & WhiteKnight: I think this tearing is not due to emulated vsync inside of DOSBox but rather the final rendering on the host OS side (e.g. Windows). I really think it should work to use Direct3D or OpenGL output and force vsync on in the video drivers, unless the video drivers are broken/stupid and don't do it even if you set them to. Try Gulikoza's DOSBox CVS with output=direct3d (not the same as ddraw) and make sure you have your video drivers set to force vsync enabled in Direct3D apps (not just default enabled)

Reply 19 of 44, by augnober

User metadata
Rank Member
Rank
Member

I really think it should work to use Direct3D or OpenGL output and force vsync on in the video drivers, unless the video drivers are broken/stupid and don't do it even if you set them to. Try Gulikoza's DOSBox CVS with output=direct3d (not the same as ddraw) and make sure you have your video drivers set to force vsync enabled in Direct3D apps (not just default enabled)

I haven't tried this out, but I'll add to this discussion...

Does the implementation of vsync emulation reference my real display driver's vsync status, or does it simply use a timer appropriate to the current state of the emuated graphics mode? If no great care is taken to play nicely with my real display driver's state of refresh, then the latter would lead to a tear-line drifting up or down the screen corresponding to the slight discrepancy between the state of the emulated display and my real display's state of refresh (and this is in the ideal case where the real hardware's refresh rate is set to basically the same frequency as the emulated one).

Not knowing how it currently works, I think it would be best to make both implementations available. The former would be best for the most faithful emulation (most compatible), and the latter would be best for the smoothest rendering (lovely, and good for most people).

(There may also be the possibility of other options that make an effort to make an intelligent decision, or to mostly do the former but also avoid any tearing on the real display.. but I think it's best to keep the option transparent and in the hands of the user)