VOGONS

Common searches


First post, by Der_Richter

User metadata
Rank Newbie
Rank
Newbie

Hi.

So, i have been dabbling with DOSBox on and off for several years, to try to use it for testing software releases and older demos before moving them to vintage hardware. But never have i been able to replicate the same smooth scrolling or non-lag experience of real hardware. There has been an endless parade of jittery scrolling, frame skips and stutter. Tried this on very powerful hardware, lower end hardware, LED, LCD, CRT monitors. Same thing. Take for example Epic Pinball (a good reference case). It should run @ a smooth scroll 60hz. It does on my real Pentium hardware, in fact it's buttery smooth. Now run it in DOSBox and there is either jittery scrolling or a pause stutter every now and then. This is tested on 9 different PCs using all types of monitors and video cards. Windows XP to Windows 7.

Second reference case, take "In search of Dr. Riptide". Scrolling is smooth on my real 486 DX2/66. DOSBox is a jittery mess. Tried different settings, output options, nothing seems to fix it.

Jazz Jackrabbit, exhibit 3... Smooth as butter on said Pentium. Has serious frame skips on DOSBox, in multiple configurations.

All around i see people praising DOSBox, but for me it's always been broken like this. Sadly, as i can see the use in having it to test demo productions (this is all impossible now, because if sync is not exact, timing is off) or to try games before migrating to actual vintage hardware.

Am i just missing something fundamental that i should set up or is this the reality of DOSBox?

As a comparison, when i went through the hassle of setting up and running PCEm and installed DOS in it, to run Epic Pinball it's as smooth as on original hardware. So there it seems to emulate fine...

Preserver, refurbisher, collector. In that order.

Reply 1 of 6, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

You've written nothing about what DOSBox settings you've tried. Have you tried both 0.74 and SVN? Sounds like you might be using too few or too many cycles. The games you mention are 90's period VGA games, and for some of those you do have to find an appropriate amount of cycles for them to run smoothly. You may also want to try different output= settings.

Reply 2 of 6, by Der_Richter

User metadata
Rank Newbie
Rank
Newbie

Yes. I have over the years tried 0.73 as well as 0.74 of DOSBox, in Windows as well as Linux hosts. Also tried SVN builds and DOSBox-x fork. I have fiddled with all kinds of settings as well. Like i said i tried many times to change the output types but none seems to work right. As far as cycles go i have tried lower cycles, more cycles, increasing mem emulation, all to no avail. The problems remain. Most of the stuff i would like to be able to test using DOSBox if i could get it smooth are 90s stuff (pre-1995) VGA. Is there some recommendations you can make for "good" global settings that i can try?

A while back i even measured the frame times of the DOSBox render using debug hook and i could clearly see the frame drops. There where obvious frame time issues where it would drop a frame and then another one to "catch up". This was from the SDL subsystem of course.

If it would not be a massive trouble for you, could you please advice settings for a single of my test cases, that seems to work on your end, so i can compare the config to what i have tried? Maybe i AM missing some important factor in config...

If i COULD get it finally running smooth i would actually be overjoyed as that would mean i could finally stop wasting time transferring demo code to real hardware, compiling there which is slow, then run said DOS code... If i could trust the DOSBox frame timings to be 100% accurate on a CRT at least, then i could debug there and not waste all that time... Which was the original intention.

Preserver, refurbisher, collector. In that order.

Reply 3 of 6, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

given that you only tested up to windows 7, I would suggest you get a recent SVN build. as the fixes for the timing on windows 7 went in september 2017. For linux, don't use opengl as output, unless you run a very recent SVN build (like a few days old)

Epic pinball might be a tricky one, do you have some ones ? jazz rabbit. didn't notice much problems. Might have to check again

Btw don't have fulldouble set to true

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

Reply 4 of 6, by Der_Richter

User metadata
Rank Newbie
Rank
Newbie

Thanks for replying. So i tried a few recent builds on Win 7 PC as well as on a very powerful Win 10 machine. Same issues persist. At least i n both Jazz and Epic Pinball. In Jazz you clearly see there is still a frame drop, and it shows up in measuring. It runs smooth but then periodically drops a frame causing a small jitter. Same goes for EP. To avoid the possibility of these early Epic games doing some weird tricks that made DOSBox confused, i also tried Pinball Fantasies (known for having smooth scrolling on PC, unlike its predecessor). First ran it on original period hardware, being a 386SX25 PC. Buttery smooth scrolling. Looks amazing. Then i connected the same VGA CRT monitor to a modern PC and ran the same game through DOSBox. Now the scrolling is "incremental" and jittery. 🙁

Preserver, refurbisher, collector. In that order.

Reply 5 of 6, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

How do you measure it ? IS there some command I can enter to see the fps in jazz ?

Do you run in auto cycles mode or fixed cycles mode ?

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

Reply 6 of 6, by Samantha Ann Mulder

User metadata
Rank Newbie
Rank
Newbie

I am sorry to resurrect such an old thread, but I have found a solution. I can get butter smooth perfect scrolling with no stutters.

I am one of those who can't play a game if the scrolling isn't smooth. So I was also looking for a perfect solution.
Here's what I did in the end, what is working for me and I hope will help some of you.

I ended up using DOSBox SVN-Daum, UPDATED Jan 27, 2014.

The first trick was to use "output=direct3d" under [sdl] and "vsyncmode=host" under [vsync].

The second trick was to find out at what fps game is being rendered in the egine. Some are rendered at 30 fps, others at 35 fps, then 60 fps and 70 fps. These are the most common ones. Some are rendered at 1/2 fps of the refresh rate, but you still need to find out if 60 Hz is correct or 70 Hz. Here you just do trial and error. Set 60 Hz refresh rate and run the game to see if it's running as it should. If not, switch to 70 Hz and try again.

The third trick was how to keep monitor refresh rate at certain value when switching DOSBox to fullscreen. I came up with two options. First is to set "fullresolution=" under [sdl] to your monitor's native resolution, so when you switch DOSBox to fullscreen it doesn't get changed. But this way the aspect ratio isn't perfect. At least not for me. You can set "aspect=true" under [render], but I personally like the second option better. And the second option is to set "fullresolution=1280x800" under [sdl] and set your graphics card to do GPU scaling. I will not go into details for this, because it's different for nvidia, amd, intel, etc. so find instructions for your graphics card on google. I have nvidia, so if there will be enought interest, I can do a follow up post to explain more into details.
The reason for GPU scaling is that you don't want the resolution to change once you set it at XxY@60/70Hz, where XxY is whatever resolution your monitor will run @60/70 Hz. I expect all monitors run @60 Hz with native resolution, @70 Hz could require you to use a lower resolution, though.
Without GPU scaling the resolution will change when going fullscreen and will probably switch from @70 Hz to @60 Hz, but if you need @70 Hz, then this is not what you want.

Oh, there's one more trick... How to get your monitor to run at 70 Hz... For me, I had to add manual resolution in nvidia's control panel and "Enable resolutions not exposed by the display". CAUTION! If you're going to try this, there's a small chace you can damage your monitor. So bare that in mind. I take no responsibility for any damage. If you are going to try it anyway (I did), start with lower resolutions first. For example 800x600@70Hz.

Here is the list of games and their fps and refresh rate at which you need to run them for smooth scrolling:

Games that need to be run @70 Hz:
In search of Dr. Riptide - 35 fps (you can also run it @60 Hz with 30 fps, but then it's clearly its not native speed)
Tyrian - 35 fps (you can run it @60 Hz with 30 fps, but it's slowed down compared to real DOS).
Doofus - 70 fps (you can change the refresh rate in-game between 70 Hz and 55 Hz... my monitor supports also 55 Hz, so I can run it at both speeds)
Doom - 35 fps (runs at this fps no matter the refresh rate, but it's smooth only @70 Hz, or a refresh rate that's multiple of 35)
Commander Keen in Goodbye, Galaxy - 35 fps (smooth scrolling is the most obvious when you start the game and the id logo scrolls up and then the words COMMANDER KEEN are scrolled horizontally)

Games that need to be run @60 Hz:
Epic Pinball - 60 fps
Jazz Jackrabbit - 60 fps
Micro Machines 2 - 60 fps
Superfrog - 60 fps

So, to sum it up, you need to:
1) Use the correct refresh rate based on fps of the game you want to play with smooth scrolling.
2) Use vsync.

The described solution is finally giving me the same results as if I run the games natively on an old Pentium PC with MS-DOS 6.22.

Before I came up with the described solution, I was using DOSBox ECE for a long time. With output=opengl and forced vsync in my graphics card's control panel. It kind of worked. Of course I also had to switch between 60 Hz and 70 Hz refresh rate. But there were clear problems... Jazz Jackrabbit worked flawlessly only in-game. Menus were stuttery, slowed down, when you exited the game, the end animation (the circle) would be veeery slow, etc. None of these problems are there with the solution described above.

As a bonus, here's how you get Jazz Jackrabbit 2 to run smoothly:
https://www.jazz2online.com/jcf/showthread.php?t=20402

I am so glad I finally did it. I wish to all who love and need perfectly smooth scrolling that you succeed setting it up. Please contact me if there are things that are not clear enough or for suggestions with your specific hardware. I will try and help you to get the smooth scrolling, because I know how much it means to us who just need it. 😉

EDIT: Typos + added games to the lists.