VOGONS

Common searches


First post, by Leolo

User metadata
Rank Member
Rank
Member

Hi,

I've recently switched to a a TFT monitor and I've been experimenting a bit with the different output options in DosBox 0.72.

After pulling my hairs for a while, and when I was just about to commit suicide, I discovered that, thankfully, the ddraw and openglnb modes behave in a more logical way.

So my question is: why is surface so unpredictable? And why is it the default? Are you aware that you're putting people's sanity at risk?

Also, I'm curious to know, what does "aspect=true" do exactly? Does it deduce the physical dimensions and aspect ratio of my monitor from the fullresolution parameter and then applies a dynamic correction accordingly? Or does it always apply a fixed correction regardless of the resolution?

Thanks a lot
Regards.

Reply 2 of 18, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

This is one of the problems of having compatibility across a large number of operating systems and hardware.

Surface=Most compatible across all platforms but probably the slowest, no hardware acceleration and no scaling (Monitors aren't getting any smaller....). Looks like there are issues with Vista/Video drivers more often nowadays.

OVERLAY-There used to be issues with drivers not supporting overlay properly but I *think* those issues are long gone. It's probably safe to assume that almost all people using DOSBox are no long using ATI Rage (known for having issues with overlay) era video chipsets. So it's possible Overlay could potentially be the new default for DOSBox win32 but doubtful since I think it also uses DirectDraw7/8?....so likely just as slow as surface/GDI in Vista/2008 and likely the same issues as Surface/GDI.

DDRAW- Requires DirectX. Not a big deal since DirectX has been included with Windows for a long time now.....but DirectDraw has been obsolete since DX8 and since Vista doesn't provide hardware acceleration for DirectDraw then that means DirectDraw is likely just as slow or even slower than overlay & Surface.

OpenGL/OpenGLNB - OpenGL is rarely seen nowadays in games and applications for Windows and ATI as usuall seems to drop the ball here more often than not. Also it wouldn't be wise to set this as default since alot of times the OGL ICD isn't included with Windows drivers from Windows Update. (Alot of people don't bother to update their drivers....) And if you think we have problems now then just imagine if we set this as default. It wouldn't be pretty.

It's probably way past the point where DOSBox should have Direct3D as an option in the CVS. It would really be the best option for Vista/2008 and future MS OS's. Wouldn't do anything for any other OS's of course but that's what OPENGL is for!

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

Reply 4 of 18, by Leolo

User metadata
Rank Member
Rank
Member

Hi,

I'm fortunate enough to have a graphics card that seems to support OpenGL correctly under Vista with NVIDIA's latest drivers. So my choice is openglnb for the moment.

However, I do agree with you that Direct3D should also be an option. It seems that hardware overlay is considered obsolete by Microsoft now.

This is what Wikipedia says (I hope the source it's trustworthy):

According to a Microsoft blog, there are three choices for OpenGL implementation on Vista. An application can use the default implementation, which translates OpenGL calls into the Direct3D API and is frozen at OpenGL version 1.4, or an application can use an Installable Client Driver (ICD) , which comes in two flavors: legacy and Vista-compatible. A legacy ICD disables the Desktop Window Manager, a Vista-compatible ICD takes advantage of a new API, and is fully compatible with the Desktop Window Manager. At least two primary vendors, ATI and NVIDIA provided full Vista-compatible ICDs. However, hardware overlay is not supported, because it is considered as an obsolete feature in Vista. ATI and NVIDIA strongly recommend using compositing desktop/Framebuffer Objects for same functionality.

And, regarding my other question. Do you know what does "aspect=true" do exactly?

I know that I need to enable it in order to get a correct aspect ratio in many games. But does it always correct the aspect ratio regardless of resolution? Or does it only "kick-in" when the resolution is 320x200 ? Does it take into account the aspect ratio of the monitor (like, for example, 5:4, 16:9 or 16:10) ?

Thanks again,
regards.

Reply 5 of 18, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

AFAIK, the aspect correction thingy has nothing to do with the aspect ratio of the monitor. Instead, it tries to correct the problem of pixels not always having the same aspect ratio. E.g. pixels on a CRT monitor tends to be 1:1 while LCD pixels are more elongated (3:2). See http://en.wikipedia.org/wiki/Pixel_geometry. You can quickly imagine how a circle, drawn by a program that assumes square CRT pixels will look when displayed on an LCD with elongated pixels.

Again, AFAIK, the correction is always active no matter how you define the aspect ratio of the monitor, but I also think certain output-methods disables it.

For me, it is always a case of try and see what looks best. And sometimes there is no "best" because the program (and the programmers!) sometimes uses one type of drawing rutine for intro sequences, and another for the game itself. I think Alien Carnage (a.k.a. Halloween Harry) is one of those games. The first part of the intro displays planet Earth (as perfect circle when aspect=true). The last part, an animated sequence, also displays planet Earth, but slightly elongated (with aspect=true). Or I could have aspect=false, and then part 1 will be elongated, and the animation will be correct. So that game needs an aspect=sometimes setting....

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 6 of 18, by ripa

User metadata
Rank Oldbie
Rank
Oldbie

"And, regarding my other question. Do you know what does "aspect=true" do exactly?

I know that I need to enable it in order to get a correct aspect ratio in many games. But does it always correct the aspect ratio regardless of resolution? Or does it only "kick-in" when the resolution is 320x200 ? Does it take into account the aspect ratio of the monitor (like, for example, 5:4, 16:9 or 16:10) ?"

It only affects games that use modes such as 320x200 or 640x400 (corrects them to 4:3). IMO it should only be set to false if you intend to use a CRT monitor running at the original resolution (i.e. you get 400 scanlines).

Reply 7 of 18, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

It's only used for non-square pixel modes (dos games, mode13 320x200 for example),
and it's needed to get correct aspect ratio on square-pixel screens in windowed
mode.

it should only be set to false if you intend to use a CRT monitor running at the original resolution

It looks weird in some situations due to line doubling and more, also most
people won't ever notice it or think it looks fine/better without correction.
Depends on the game.

Reply 8 of 18, by Leolo

User metadata
Rank Member
Rank
Member

Hi,

Thanks for the info, wd. I must inform you that I've blatantly copied and pasted your comments in the wiki, in the dosbox.conf page. I hope you don't mind!

I'm going to plagiarize also the comments made by ripa and DosFreak in this and other threads about the different output modes. They will surely be useful for people who like tweaking the dosbox.conf file.

Is it OK to do this? Or should I ask for permission first?

Reply 9 of 18, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

I sincerely don't hope that it is necessary to go around asking for permission to include information from these boards into the Wiki. I say just go ahead.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 10 of 18, by hydr0x

User metadata
Rank Newbie
Rank
Newbie

Hi,

I've run into some problems concerning video too. I have two systems, a xp sp3 pc with CRT monitor and a vista (no sp yet) notebook with 1280x800 as native resolution.

I run DOSBox from my USB drive using D-Fend reloaded. On both systems I've encountered video problems, quite different ones though. Obviously (USB), I use the exact same settings on both systems.

The XP system runs almost all of the games nicely but a few screw up in fullscreen mode. I'm using the surface renderer (yet to test to others thoroughly to be honest) and these games have quite a peculiar problem. When the picture changes in the game (like switching menu), the screen often fills black and only the areas I move my mouse over show the true picture. Basically, I can whipe the black surface away with my mouse like dust with a towel. Like I said, this only happens in fullscreen mode. (no scaling, no double buffering, no aspect correction, orginal resolution). Examples are Police Quest 1 VGA and A320 Airbus.

On my Vista system the problem is quite worse 😒 Everything works fine in windowed mode. When I go fullscreen though. the picture remains the same, just with a black background. It doesn't get stretched to fill the screen at all. I searched for this problem and found topics mention it, without a clear solution though. I tried every combination of renderer, resolution, scaler and other things I could think off, but the problem remains. I even tried a 0x0 resolution I read about in some topic on here?! No effect, the picture remains as tiny as before.

Now, you could argue I should just use the scalers. But that's a) no fix, just a hack b) against my principle not to use scalers and c) would mess up my universal settings for both systems

Also, not really related, why do all screenshots I make NOT look like the actual picture?! I can upload examples but basically it seems like the pics use less colors or something like that, creating less defined areas in the picture!? I guess I have to upload some to show what I mean 😉

Reply 11 of 18, by Leolo

User metadata
Rank Member
Rank
Member

Hi hydr0x,

If you're using Vista on your laptop, you should really try "openglnb" as it is the preferred output method. (As long as your video card drivers are updated and support OpenGL correctly under Vista).

If you have a TFT monitor, then "aspect=true" is also a must. (Unless you happen to like distorted graphics. Which I sincerely hope you don't)

Likewise, to get good results with your TFT, you also have to specify "fullresolution=1280x800"

Then I would set "scaler=none" to get maximum speed.

Now, in order to get a correct aspect ratio with your monitor you should fiddle with your video card's options.

NVIDIA, for example, offers the following options (in NVIDIA Control Panel, Display, change flat panel scaling):

- Use NVIDIA scaling - Use NVIDIA scaling with fixed-aspect ratio (THIS ONE IS THE BEST) - Use my display's built-in scaling - D […]
Show full quote

- Use NVIDIA scaling
- Use NVIDIA scaling with fixed-aspect ratio (THIS ONE IS THE BEST)
- Use my display's built-in scaling
- Do not scale

I hope that helps.

Reply 12 of 18, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

If you find that you need to adjust some basic settings (like output-method) depending on which PC you run DOSBox on, you could concoct up some CMD-file that replaces the default dosbox.conf before launching DOSBox. Something like:

copy "dosbox.Default.conf" "dosbox.conf"
if /i "%ComputerName%" == "PC-1" copy "dosbox.PC-1.conf" "dosbox.conf"
if /i "%ComputerName%" == "PC-2" copy "dosbox.PC-2.conf" "dosbox.conf"
dosbox.exe

Or you could get really fancy and have DOSBox daisy-chain 2 config-files:

dosbox -conf "dosbox.conf" -conf "dosbox.%ComputerName%.conf" %*

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 13 of 18, by hydr0x

User metadata
Rank Newbie
Rank
Newbie

@Leolo

Thanks so much, the nvidia driver thing did the trick. Previously none of the rendering modes worked in fullscreen but now openglnb does scale to fullscreen as it should 😀 I can now finally use my much more powerful notebook to play the games 😉 Unfortunately, I probably have to batch edit my profiles in D-Fend reloaded (doesn't that that long!) whenever I want to play on my normal PC (=girlfriend using notebook) but I can live with that

@minimax

Your solution would be nice if I used a single conf file. As it is though, I'm using D-Fend reloaded which creates the conf files on the fly based on it's game profile setup. There's no way to automatically change something in the frontend based on the system that's running right now. It's ok though. With a little luck openglnb will work fine too on that system (geforce 4 ti 4200).

Reply 14 of 18, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

And you can not trick DFR into loading a CMD-file instead of dosbox.exe?

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 16 of 18, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Nope! If DRF can be told to run VeryCleverDOSBox.cmd instead of dosbox.exe, then that VeryCleverDOSBox.cmd can do the daisy-chaining of the configuration files, loading the DFR config first, then overriding the output-method with settings from dosbox.%ComputerName%.conf.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32