VOGONS

Common searches


First post, by Anamon

User metadata
Rank Newbie
Rank
Newbie

I have some incertainties concerning the functionality of aspect correction. I know what it is supposed to do, but was confused as to some of the effects the option was having while trying to best configure Gabriel Knight for play.

I am playing on a (fairly small) LCD monitor with a native resolution of 1280x1024, a 5:4 aspect ratio. This is also the resolution used by my Windows desktop. Gabriel Knight is in 320x200 resolution, which is an 8:5 aspect ratio. This is "squashed" compared to the standard 4:3 aspect ratio of CRT monitors of the day (8:5=24:15 vs. 4:3=20:15). My understanding is: CRT monitors used a native 320x200 display mode in which the output was scaled to fill the screen, hence the "squashed" picture was "corrected".

Playing in DOSBox today, the first option I tried was fullresolution=original. However, I found that the lowest mode my LCD supports is 640x480. So without scaling, the game ended up being letter- and pillarboxed in the center of the screen, occupying only roughly a quarter of screen estate. With DOSBox fullscreen set to native desktop resolution, scaling on and aspect correction off, the game occupies the whole screen in full-screen. This way, the game would be slightly stretched, as my 5:4 display is narrower than a traditional 4:3 display. With aspect correction on, the game is letterboxed with a few black pixels at both the top and bottom of the screen, to achieve a true 4:3 aspect ratio. As far as I understand it, this would give the representation most original to how the game was supposed to look. (Please tell me if I'm wrong!)

So far so good. However, when I switch my desktop resolution to 1280x960 (4:3 ratio, hence stretched on my display) and do the same thing, DOSBox still cuts off a bit at the top and bottom of the display when using aspect correction. It's effectively the correct thing to do on my 5:4 panel, but how does DOSBox know? With the desktop resolution at a 4:3 ratio, wouldn't it have to assume that mine is a 4:3 display, and hence no aspect correction is necessary in full-screen mode?

Finally, a question that is more about opinions than facts. As I noticed, without applying any filters, aspect-corrected output can look pretty bad (i.e. some lines of pixels look higher than others), since the display is stretched and an LCD screen lacks the CRT's ability to do this evenly (and slightly blurry). This is extremely noticeable in text-only mode (I made a screenshot in case you don't know what I mean), but I noticed it far less in the game's graphics. The blocky pixels appear pretty much how I remember games to have looked back in the day. My goal in playing games in DOSBox is usually authenticity. Considering that, do you think applying something like maybe a very slight bilinear filter could make the game look more like it would have on a CRT in native resolution, or is it better to leave output unfiltered?

Reply 1 of 17, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

Try this setting please. It should give you a perfect image.

[sdl]
fullscreen=true
fullresolution=0x0 (0x0 means it will use the native resolution of your LCD like 1920 x 1080)
output=openglnb

[render]
aspect=true
scaler=normal3x

My website with reviews, demos, drivers, tutorials and more...
My YouTube channel

Reply 2 of 17, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

Scaler=normal2x. So 320x200 -> scaler & aspect -> 640x480 -> simply pixel doubling w/o color change or approximation -> 1280x960 (or 1280x1024 with two black bars).
Unfortunately the vanilla DOSBox don't correct the text only modes.

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 3 of 17, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

Also if you want authenticity, just build a proper Retro PC.

We have excellent forums on this topic!

DOSBox is nice, but emulation only goes so far. Even something simple as smooth scrolling, can't be emulated authentically.

My website with reviews, demos, drivers, tutorials and more...
My YouTube channel

Reply 4 of 17, by Anamon

User metadata
Rank Newbie
Rank
Newbie

Well then let me rephrase: authenticity without having to set up another system 😉

My original question probably drowned in my long post, but it was: how does DOSBox know to correct the aspect ratio to letterboxed 4:3 within my display's full 5:4, even if the desktop resolution is at a 4:3 ratio? Does DOSBox have some other means of determining physical display size other than the desktop resolution it is set to?

Anyway: the setup I settled on before writing was:
fullresolution=0x0
output=direct3d
aspect=true
scaler=none
which yields the results from my original post: letterboxed to 4:3 ratio, which should make everything look like it's supposed to. Thanks for the info on the text-only modes, Gamecollector, I was not aware of that.

I could not determine any qualitative difference between scaler=normal2x or scaler=none when the picture is upscaled in direct3d anyway—the DOSBox scalers and Direct3D scalers seem to be the same. So since I am not interested in any of the other/enhancing scalers I'll leave it on none which should theoretically save me one transformation per frame.

My modified second original question: ddraw/opengl or direct3d/openglnb—what do you prefer? (In terms of bilinear filtering). I am as of yet undetermined which is better to approximate how I remember the games to have looked. The blurriness when filtering is not as bad as I remembered. On the other hand, CRT pictures probably weren't as blurry as I'd like to remember either.

Reply 5 of 17, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++
Anamon wrote:

how does DOSBox know to correct the aspect ratio to letterboxed 4:3 within my display's full 5:4, even if the desktop resolution is at a 4:3 ratio? Does DOSBox have some other means of determining physical display size other than the desktop resolution it is set to?

This is where you need to take a picture, because you could have scaling settings in your Nvidia/ATI/Intel video driver as well.

But without any scaling your 1280 x 960 resolution will simply be stretched vertically on a 1280 x 1024 resolution.

Anyway: the setup I settled on before writing was:
fullresolution=0x0

My modified second original question: ddraw/opengl or direct3d/openglnb—what do you prefer? (In terms of bilinear filtering).[/quote]

I use openglnb.Ddraw also works fine but under W7 you get warning message (about the colours) when you change from fullscreen to window mode or something like that. Openglnb (non bilinear) just works.

I don't like any filtering. Give me the pixels!!! 🤣

Reply 6 of 17, by VileR

User metadata
Rank l33t
Rank
l33t

I'm not sure I understand why you insist on using a desktop resolution of 1280x960, when the desired result is already achieved with 1280x1024 and aspect=true. That could only make your LCD's internal scaling / image adjustment / video drivers get in the way, which I suspect is the reason for the weirdness you describe.

You're right about how it used to work on CRTs, except that they never really "scaled" the image, rather the H- & V-refresh rates of each video mode were timed to always generate a full screen picture on a standard (4:3) CRT. Pixels didn't have to be 'square' (in fact, before VGA they never were).... that's why DOSBox considers not only 320x200, but pretty much all other DOS game resolutions, to be 4:3 and tries to correct to that.

By the way, h-a-l-9000's DOSBox build (Megabuild 6) does aspect-correct text modes.... that's what I use and recommend.

Anamon wrote:

My modified second original question: ddraw/opengl or direct3d/openglnb—what do you prefer? (In terms of bilinear filtering). I am as of yet undetermined which is better to approximate how I remember the games to have looked. The blurriness when filtering is not as bad as I remembered. On the other hand, CRT pictures probably weren't as blurry as I'd like to remember either.

I'm in the first camp... openglnb just pisses me off when the pixels are unevenly sized.
My settings are exactly what Mau1wurf1977 recommended in his post, except that I output to ddraw. Scaling with normal3x is especially important in that case - there's still a very slight blur, but it's really minimal (and after all, CRT scanlines were never perfectly sharp either).

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 7 of 17, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++
VileRancour wrote:

openglnb just pisses me off when the pixels are unevenly sized.

I'd like to know more about this please!

I thought the unevenly sized pixels is a maths / integer issue on most LCDs. Meaning you can't divide 1280 or 1024 into 320 or 200 pixels of the same size.

You can on a 1600 x 1200 and 1920 x 1200 LCD though.

Reply 8 of 17, by VileR

User metadata
Rank l33t
Rank
l33t

Yep, you nailed it. I'm stuck with 1280x1024 though, so openglnb gives me a nice, crisp, non-blended display of total crap. 😁 Scaling ddraw with normal3x looks much, much better.
However, if your game is 350 pixels tall (EGA) or 480 (VGA), then even 1200 native pixels wouldn't help.

You're right that emulation can only go so far when it comes to authenticity. Fun fact: if you're playing a CGA/EGA 320x200 game (or 640x200), you can't get an authentic picture, period... even on a CRT with fullresolution set to original. 🤣

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 9 of 17, by Anamon

User metadata
Rank Newbie
Rank
Newbie
Mau1wurf1977 wrote:

This is where you need to take a picture, because you could have scaling settings in your Nvidia/ATI/Intel video driver as well.

Good point. I will look deeper into this.

VileRancour wrote:

I'm not sure I understand why you insist on using a desktop resolution of 1280x960, when the desired result is already achieved with 1280x1024 and aspect=true.

You must have misread, that's what I do. I never used any resolution but my native 1280x1024. On an LCD screen, running on a lower resolution doesn't make it possible to achieve anything better than what can theoretically be done with different software scaling and filtering techniques. So I figure on LCDs there is never a reason to go beneath full resolution.

As Mau1wurf1977 said, it's an integer issue. Since an LCD's pixels are fixed, i.e. the spacing between lines cannot be modified, all a lower resolution does is double lines (possibly unevenly). So it's always better to let the software do the scaling, which gives you a choice, and most likely better quality.

VileRancour wrote:

By the way, h-a-l-9000's DOSBox build (Megabuild 6) does aspect-correct text modes.... that's what I use and recommend.

I'm currently using the build from ykhwong, which does so too.

Still deciding on the filtered/unfiltered issue. The way the font in prompt looks, it sure does look like how I remember the DOS prompt from my old machine. In games though, I still find it a bit too blurry. If CRTs would have been able to give such sharply defined low-res pixels as in unfiltered modes, they probably would have...

Thanks for all your answers!

Reply 10 of 17, by VileR

User metadata
Rank l33t
Rank
l33t

Well... here's an example of what I get from a 320x200 game, running on native 1280x1024 resolution w/ ddraw, normal3x, and aspect=true.
(Just cropped a small section, because posting the entire shot would be a screen-stretching annoyance):

BFSmn.png

Are your results similar to this?
If so, I don't see how that's too blurry - the rectangular shape of each pixel is clearly defined, and there's only a negligible amount of vertical "smearing". Most people wouldn't even notice it, and I'm more pedantic about this sort of things than anyone I know, so I guess I'm just surprised that you would find it bothersome. But to each his own 😁

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 11 of 17, by Anamon

User metadata
Rank Newbie
Rank
Newbie

If it would really bother me I would just disable it 😀 but I'm simply not sure yet what I prefer. I find that the filtering nonetheless takes away some of the detail, while on the other hand the ultra-sharp unfiltered pixels can in their own way make it hard to discern things. I made a few direct comparison shots in Gabriel Knight (these are only scaled to 640x480 (aspect-corrected)). The left is unfiltered (direct3d), the right filtered (ddraw):

This one is from the main menu, differences particularly visible in the letter highlights:
29c77lw.png

Menu buttons with visible blurring (I blew this one up 200%, just quadrupled each pixel):
2b2zyt.png

The last one is from the icon bar, where it's probably the most obvious. I think the right one looks quite blurry, the five cobblestones look as though they are smoother, more abraded than the ones on the left; while at the same time the very visible rasterisation in the snake head of the unfiltered one can make it harder to "fuse" the image with one's eyes.
353d1t3.png

Reply 13 of 17, by VileR

User metadata
Rank l33t
Rank
l33t
Anamon wrote:

(these are only scaled to 640x480 (aspect-corrected)).

Oh, that would explain the more visible blur compared to 1280x960 scaling. The latter would give a better result, since there's more room for sharp, integer pixel multiplication before the aspect correction's blending kicks in.
As you said yourself, there's never a reason to go below your LCD's native res. 😁

If there was such a thing as "normal4x", we'd get an even better looking 1280x960... in fact, given today's common monitor resolutions, all scalers would benefit from having 4x and possibly 5x versions.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 14 of 17, by Anamon

User metadata
Rank Newbie
Rank
Newbie
Qbix wrote:

openglnb ?

That should give the same output as direct3d since it is unfiltered, right? Roughly comparing the two, they look the same to me.

I have (for now) settled on filtered scaling after all, using opengl, aspect correction, and the normal3x scaler. I found the uneven pixel heights, where they were visible, more disturbing than the slight blur after all. Pre-scaling by 3x really is a nice middle ground. Thanks for the suggestions VileRancour! These settings I have now are quite probably the best-looking I have seen so far, I'm looking forward to playing GK like this 😁

Made another comparison shot, with the output and scaler settings written below. This is Gabriel Knight's loading cursor, which shows the differences nicely. From the non-bilinearly-filtered output over the filtered output using no, 2x, or 3x prescaling. I'm very happy with the last one.
orqdxw.png
You can also nicely see the unevenness of the stair pattern in the top left and top right of the skull in the first example, due to the uneven pixel heights, and how this doesn't stick out so much in the last one. It's even more irritating when you move the mouse cursor up and down, and different pixel rows become higher or lower than their neighbours... the whole figure wobbles.

Reply 15 of 17, by VileR

User metadata
Rank l33t
Rank
l33t

Cool, glad you've found the optimum.

Here's why a "normal4x" would improve things even further. I took the original image you used, but multiplied it x4 first, and only then applied a bilinear filter manually to do the aspect correction. The result is in the middle:

cqMLl.png

Of course, only people who are morbidly anal-retentive about details (e.g., me) are going to tell the difference, so I added x3 close-ups of one section.
As you can see, a "normal4x" would improve vertical blending, and completely eliminate any horizontal one (as 1280 = 320*4).

I kinda want to patch this in, but I'm still not sure how scalers really work within the code, they seem to have all kinds of funny exceptions. Plus I'm not sure I know what's up with the various output systems anymore... on my XP machine, "output=ddraw" gets filtered just like opengl (though it's more well-behaved), but on my friend's Win7 box, ddraw looks just like openglnb (no filters at all). Weird.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 16 of 17, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

Some emulators have a "pixel correct" scaling option. So the algorithm will make the image as large as possible while keeping pixels the same size. That might be a nice option to add...

Here my contribution from Prince of Persia:

openglnb + 3X

princeofpersiaopenglnb3.jpg

opengl + 3X

princeofpersiaopengl3x.jpg

Shame that 1920 x 1200 LCDs are so rare these days...

Personally I can't stand the blur, so I'm sticking with openglnb, but it's awesome that we have a choice 😁

Reply 17 of 17, by sliderider

User metadata
Rank l33t++
Rank
l33t++
Anamon wrote:
That should give the same output as direct3d since it is unfiltered, right? Roughly comparing the two, they look the same to me. […]
Show full quote
Qbix wrote:

openglnb ?

That should give the same output as direct3d since it is unfiltered, right? Roughly comparing the two, they look the same to me.

I have (for now) settled on filtered scaling after all, using opengl, aspect correction, and the normal3x scaler. I found the uneven pixel heights, where they were visible, more disturbing than the slight blur after all. Pre-scaling by 3x really is a nice middle ground. Thanks for the suggestions VileRancour! These settings I have now are quite probably the best-looking I have seen so far, I'm looking forward to playing GK like this 😁

Made another comparison shot, with the output and scaler settings written below. This is Gabriel Knight's loading cursor, which shows the differences nicely. From the non-bilinearly-filtered output over the filtered output using no, 2x, or 3x prescaling. I'm very happy with the last one.
orqdxw.png
You can also nicely see the unevenness of the stair pattern in the top left and top right of the skull in the first example, due to the uneven pixel heights, and how this doesn't stick out so much in the last one. It's even more irritating when you move the mouse cursor up and down, and different pixel rows become higher or lower than their neighbours... the whole figure wobbles.

I personally like the opengl no scaler one myself. The pixels are very obvious in all the rest. I hate pixelated images. I'd rather the image was softly blurred if it meant the individual pixels were made less obvious.