VOGONS


Dosbox without scaling?

Topic actions

Reply 20 of 25, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

It looks like SDL2 has the ability to set the refresh rate but not SDL 1.2. For SDL 1.2 you'd have to modify the SDL code to do it.

Would CRU be able to change those settings via CLI?

How To Ask Questions The Smart Way
Make your games work offline

Reply 21 of 25, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

The main problem you will have with jazz is that it uses 320x240 with an active area of only 200 lines, and DOSbox ignores the inactive areas. On a real machine it would be letterboxed, so if it is rendered at 640x400 without letterboxing the aspect ratio will be incorrect.

Reply 22 of 25, by mothergoose729

User metadata
Rank Oldbie
Rank
Oldbie
DosFreak wrote on 2021-01-29, 02:23:

It looks like SDL2 has the ability to set the refresh rate but not SDL 1.2. For SDL 1.2 you'd have to modify the SDL code to do it.

Would CRU be able to change those settings via CLI?

Unfortunately no, you have to restart the display driver every time you make a change.

Is there a version of dosbox that uses SDL2? I would be willing to try it.

jmarsh wrote on 2021-01-29, 02:50:

The main problem you will have with jazz is that it uses 320x240 with an active area of only 200 lines, and DOSbox ignores the inactive areas. On a real machine it would be letterboxed, so if it is rendered at 640x400 without letterboxing the aspect ratio will be incorrect.

You are right! This isn't the the only example of this either, I have run into some title screens that are mean to be letter boxed as well. There is a workaround though. If I remove the 400 line resolutions from CRU then dosbox will select the next closes resolution it can which is 640x480@60hz. With aspect correction set to false dosbox just centers it vertically on the screen which is more or less correct.

I tried most of the games from the "funny list" I found online and most of them work well enough that it isn't a big deal even when Dosbox gets it wrong (either from an error in the emulation or being unable to force dosbox to select the resolution it should). The exceptions are jazz jackrabbit as mentioned, and I also had an issue with quake refusing to run at 72hz no matter what I did. Also, if the frame rate every got above 60 I would get terrible, terrible frame pacing issues. The only fix for me was to raise the resolution high enough until the framerate dropped into the 50s where the frame pacing was fine.

Alright, enough of that, I am off to download unipcem and see what that does for me 😁.

Reply 23 of 25, by mothergoose729

User metadata
Rank Oldbie
Rank
Oldbie

I spent some more time with quake and noticed some things. For one, quake never seems to run at 72hz on any resolution, at least not on my monitor. I don't know why 72hz is the documented max framerate for quake online, maybe that is true for glquake or something. Depending on the selected resolution in game, it will run between 60-71hz, with 71hz only being used on 360x200 resolution for some reason, and everything else is 70hz or 60hz (at least as reported by my monitor OSD).

Quake also uses some very strange VGA timings. For example, 640x400 resolution in game actually uses 720x400 resolution with 640 active pixels shifted to the left. Bizarre.

Using my pentium 4 machine, which is way overkill at lower resolutions, I noticed when panning the camera that weird artifacts would appear. It reminds me a little of screen tearing, but not quite the same. I wonder if quake has a software VGA trick that it is using for display syncing. It happens at roughly the same interval as the juddger in dosbox so I feel pretty confident that is the difference.

As for fixing dosbox, the only thing that gets rid of the judder is running the game at below 60hz. If I limit the cycles in dosbox I can force the framerate lower, but the best method I found by far is upping the resolution with max cycles until my CPU can't keep up. Nothing else would work. I tried playing with different refresh rates including 140hz, I disabled vysnc all together, and I forced a frame limit in my graphics control panel but nothing else would fix it.

Reply 25 of 25, by mothergoose729

User metadata
Rank Oldbie
Rank
Oldbie
DosFreak wrote on 2021-01-29, 23:16:

Did you try enabling vsync in Quake itself?
Re: Is original DOS quake speed-sensitive?

Thanks, that is the issue! Setting _VID_OVERRIDE_WAIT "1" and adding VID_WAIT "1" does fix it, at least for all of the lower resolutions. 640x480 and 640x400 are still to fast for some reason.