VOGONS


First post, by Taff

User metadata
Rank Newbie
Rank
Newbie

I currently have Daggerfall running with DosBox 0.74 via Daggerfall setup provided by UESP. I chose Ddraw scaling mode because it seems to be the only mode that will support HQ3x scaling and scale the image to fill the entirety of my screen (while maintaining 4:3 aspect). The problem is there is screen tearing, and nothing I try works to disable it. I have the Nvidia control panel defaulting all applications to "fast" vsync mode, and I tried adding a [vsync] section to the dosbox.conf file in the game folder, tried vsyncmode=on, vsyncmode=true, vsyncrate=60, nothing works.

Reply 1 of 5, by Osprey

User metadata
Rank Member
Rank
Member

I don't believe that 0.74 supports the [vsync] section. Try a different version, like DOSBox ECE. I'd still be surprised if it works, since the game uses a software renderer, but it's something to try.

Reply 2 of 5, by Taff

User metadata
Rank Newbie
Rank
Newbie
Osprey wrote:

I don't believe that 0.74 supports the [vsync] section. Try a different version, like DOSBox ECE. I'd still be surprised if it works, since the game uses a software renderer, but it's something to try.

So vsync just wasn't a thing back in the days of software rendering, people just lived with screen tearing?
Didn't pretty much all dos games use software rendering? Why is there even a vsync section if nothing benefits from it?

Reply 3 of 5, by Osprey

User metadata
Rank Member
Rank
Member
Taff wrote:

So vsync just wasn't a thing back in the days of software rendering, people just lived with screen tearing?
Didn't pretty much all dos games use software rendering? Why is there even a vsync section if nothing benefits from it?

I think that screen tearing wasn't a problem back then because hardware wasn't good enough to render more than 60fps and framerates were often capped. With the advent of 3D acceleration, games had the hardware power to push past 60fps and developers stopped capping framerates to allow for it. Daggerfall couldn't get even close to 60fps on 1996 hardware, so there wasn't a problem, but there may be if you play it on today's hardware.

It's not that you can't use vsync with software rendering--you can--but I believe that it depends on the API. For example, if a game uses DirectDraw, you can force vsync because that's an API that supports it. Direct3D and OpenGL do, as well. The thing is that most DOS games didn't use any API. They talked to the hardware directly, so there's no middle man to manipulate how the game is run. I'm taking a guess here, but my hunch is that the [vsync] section that's supported in some builds of DOSBox is intended for the few APIs that did exist for DOS, particularly Glide. There weren't that many 3Dfx-enabled DOS games, though, which could be why [vsync] isn't an option in official DOSBox (AFAIK).

All of that said, I'm no DOSBox expert and it is an emulator that acts like a middle man and can output to DirectDraw and OpenGL, so it's possible that I could be wrong and it can force vsync if you're using one of those output modes and your DOSBox build supports it. Try it, but, if it doesn't work, it could be for the reasons that I gave.

Last edited by Osprey on 2017-09-30, 04:22. Edited 2 times in total.

Reply 4 of 5, by Taff

User metadata
Rank Newbie
Rank
Newbie

Actually that's not entirely true. It somehow slipped my mind that crts were the display technology in use in the days of dos gaming. Crts do not have a native refresh rate, and have no need for vsync. Vsync is not synonymous with frame rate limiting, capping the frame rate at the refresh rate does not eliminate tearing.