VOGONS

Common searches


First post, by lukeman3000

User metadata
Rank Member
Rank
Member

I want that original, "crisp" look and it seems that openglnb offers that. However, I'm wondering if there's any point to having a scaler (such as normal 2x or 3x) active in either windowed or fullscreen mode, or if it makes any difference?

Reply 1 of 18, by PhilsComputerLab

User metadata
Rank Hardware Mod
Rank
Hardware Mod

That's the setting I like to use!

openglnb, 3x scaler and native resolution for full screen mode and also set aspect to true.

YouTube, Facebook, Website

Reply 4 of 18, by lukeman3000

User metadata
Rank Member
Rank
Member
leileilol wrote:

Depends if you like your nearest neighboring unevenly aliased to hell or not.

What does this mean? Can you explain this to someone like me who does not know a lot about dosbox?

What I want to achieve is the crisp, grid-like pixel look. I don't want the graphics smoothed out or blurry in any way. So should I then set scaling to "none" to best achieve this?

Reply 5 of 18, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie
lukeman3000 wrote:

What I want to achieve is the crisp, grid-like pixel look. I don't want the graphics smoothed out or blurry in any way.

Imagine 640x480 displayed in 1920x1080. Using 2x nearest neighbor scaling, that 640x480 becomes 1280x960, which is 120 pixels short vertically. The picture is crisp, but it doesn't fill the screen neither horizontally (which is normal because of different aspect ratio) nor vertically (60 black lines on top and bottom).

This 1280x960 could be now upscaled to 1440x1080, adding a little blur and removing letterboxing.
And this would in fact be a good thing. CRT monitors aren't perfectly crisp the way LCDs are, a little blurishness is to be expected.

But as far as I know, DOSBox doesn't have such a great option out of the box (nearest neighbor as much as possible and then upscale to desktop resolution).

Reply 6 of 18, by lukeman3000

User metadata
Rank Member
Rank
Member

So, I just took some screenshots for comparison's sake with the following settings:

openglnb
normal6x (using r4006 ECE build)
full screen resolution: 0x0 (1920x1080)

and

openglnb
no scaling
full screen resolution: 0x0 (1920x1080)

I saw no discernible differences between the pictures, except where the flame had moved slightly because it was flickering in the game (bonus points if you know what game this is).

Reply 8 of 18, by lukeman3000

User metadata
Rank Member
Rank
Member
Azarien wrote:
lukeman3000 wrote:

So, I just took some screenshots for comparison's sake with the following settings:

Both look equally bad to me, because of uneven pixel sizes.

What is this caused by, and how do I fix it?

Reply 10 of 18, by SedrynTyros

User metadata
Rank Member
Rank
Member

So, as with a lot of options running DOSBox games, this comes down to personal preference and what your priority is. Most VGA DOS games ran at 320x200. If you multiply that by four, you end up with 1280x800. If you set DOSBox to run the game in at 1280x960 window using openglnb then you're going to get a properly scaled picture in most cases (DOSBox will automatically truncate the vertical resolution to 800, or leave it at 960 if you have aspect correction enabled). If you choose to run it at full screen on a 1920x1080 monitor via openglnb, then there will be some artifacting because the scaled image is not an even multiple of the original image. However, in my experience the artifacting is fairly minor and not really a big deal. Some people disagree and use one of the scaler options so that image is always evenly scaled and you end up with a smaller viewing area but no artifacting. Some people like "opengl" better than openglnb because opengl will upscale the image to the nearest even multiple of the original and then use bilinear filtering to upscale it the rest of the way. Personally, I think the image looks like shit after that process; all blurry like you're looking at it through a glass of water. But some people like it. To each their own. I just use openglnb with 1280x960 windowed mode and when I want fullscreen I know there will be some artifacts. But I have yet to see any instance of running a game this way where it looked "bad" to me with the games I play.

Reply 11 of 18, by lukeman3000

User metadata
Rank Member
Rank
Member

Thanks for the very comprehensible breakdown. That makes sense.

Seeing as how I recently upgraded to a 2560x1440 monitor, I guess I should be prepared for even more artifacts. Oh well. Like you said it doesn't seem that noticeable to me.

Something I'm still a little unclear on is whether or not I want to use the scaler (or whether or not it matters) when specifying a window or full screen resolution. So in your example of setting the window res to 1280x960 and using openglnb with aspect ratio correction, do I still want or need to use a nearest neighbor x? scaler?

Additionally, what are the consequences of using 800x600 instead of 1280x960? I prefer a bit of a smaller window. Does 800x600 mean I'll get more artifacts? How do you know which resolutions will end up being properly scaled?

Reply 12 of 18, by PhilsComputerLab

User metadata
Rank Hardware Mod
Rank
Hardware Mod

Well at that resolution, any 320 x 200 game, run it at 1600 x 1200 1:1 pixel mapped and you'll have a perfect image.

YouTube, Facebook, Website

Reply 13 of 18, by KainXVIII

User metadata
Rank Member
Rank
Member
lukeman3000 wrote:

Bump -

Why am I getting uneven pixel sizes?

Did you know, that Dosbox ECE has pixel-perfect output by Ant_222 for ages? 😎
VIDEO Patch for pixel-perfect scaling (SDL1)

Reply 14 of 18, by SedrynTyros

User metadata
Rank Member
Rank
Member
PhilsComputerLab wrote:

Well at that resolution, any 320 x 200 game, run it at 1600 x 1200 1:1 pixel mapped and you'll have a perfect image.

This is true for 4:3 games. Actually, the "best" modern monitor resolution for running old DOS games is probably 1920x1200. For older games that may have used square pixels, you can multiply by 6 to get an evenly upscaled image. For the games that used tall rectangular pixels (where the game resolution was 320x200 but was intended to be displayed on a 4:3 monitor where the pixels where stretched to where the image was 320x240) you enable aspect correction and upscale 5 times to end up with 1600x1200. Either way, you get a correctly scaled image. I've actually considered replacing my 1920x1080 monitor with a 1920x1200 primarily for this reason.

Reply 15 of 18, by SedrynTyros

User metadata
Rank Member
Rank
Member
lukeman3000 wrote:
Thanks for the very comprehensible breakdown. That makes sense. […]
Show full quote

Thanks for the very comprehensible breakdown. That makes sense.

Seeing as how I recently upgraded to a 2560x1440 monitor, I guess I should be prepared for even more artifacts. Oh well. Like you said it doesn't seem that noticeable to me.

Something I'm still a little unclear on is whether or not I want to use the scaler (or whether or not it matters) when specifying a window or full screen resolution. So in your example of setting the window res to 1280x960 and using openglnb with aspect ratio correction, do I still want or need to use a nearest neighbor x? scaler?

Additionally, what are the consequences of using 800x600 instead of 1280x960? I prefer a bit of a smaller window. Does 800x600 mean I'll get more artifacts? How do you know which resolutions will end up being properly scaled?

Well, when I use "openglnb" I set a fixed resolution for Windowed mode and let opengl handle the scaling. The other way to do it is to set the game to output its "original" resolution and then use the Normal 2x/3x scalers. As far as using 800x600 ... well, the reason I chose 1280x960 is it's an even multiple of 320x240, so I get correctly scaled video. It's only when I go to full screen where the scaling is not an even multiple of the original image so you get the artifacts or aliasing or however you want to describe it. 800x600 is an uneven multiple of 320x200 / 320x240 so .... probably not the best choice for windowed mode, but whatever your preference is what you should go with.

2560x1440 should work fine for evenly scaling DOSBox games with rectangular pixels in fullscreen mode. Just enable aspect correction with openglnb and your game should be evenly upscaled x6 to a resolution of 1920x1440. There should be no aliasing / artifacting in that scenario .... as far as I know.

Reply 16 of 18, by PhilsComputerLab

User metadata
Rank Hardware Mod
Rank
Hardware Mod

I also have a 1920 x 1200 monitor, but not for DOSBox, I use it to run 1600 x 1200 with Windows 98 and XP games. But DOSBox, and suitable games, do indeed look very nice. Other devices also come with 1920 x 1200 resolution 😀

YouTube, Facebook, Website

Reply 17 of 18, by lukeman3000

User metadata
Rank Member
Rank
Member

I just wanted to share a post I found on the Steam forums which helped to further my understanding of what's going on here. I know that a lot of this has already been said, but sometimes things said another way can also be helpful:

Thanks for the link, Mark (this issue has been bugging me). And thanks for the game too. […]
Show full quote

Thanks for the link, Mark (this issue has been bugging me). And thanks for the game too.

Additionally, I just would like to point out that it feels to me that this kind of art -- handcrafted bitmap -- when done well, does benefit from the chunkiness (and in most cases extreme sharpness) resulting from the low-res-upscaled images, and that even before factoring in the psychological appeal of the retro visual.

Since all images are manually created/reviewed and the pixels are almost individually handpicked to result in aesthetically pleasing images, there is artistic value in the information regarding what-pixel-goes-where and, usually, scaling will mess up that information.

The exception being when scaled up by integer factors (1x, 2x, 3x, ...) with nearest neighbor interpolation.
In this case, the image is being blown up in a way that 1 pixel in the original image turns into 4 in the new one (4=2x2, in x2 scaling), or 9 (9=3x3, in x3 scaling), and so on. Every RGB value in the pixels of the scaled image also exists in the original image.

Since the native resolution of the game is 320x200, the largest possible scaling in a 1920x1080 monitor is 5x (1600x1000).
The game settings tool 'winsetup.exe' does not gives you the option to set x5 scaling; the largest possible value is 4x (1280x800).

Any kind of stretching to make 1280x800 fit 1920x1080 will result in less sharpness (even though aspect ratio might be preserved by lateral black strips -- letterboxing).

Therefore, to have the truest experience possible, the thing to do is give up screen real estate and play in windowed mode with 4x nearest neighbor scaling.

I set an empty black background -- in order to not be distracted from game content -- and fire up the game in windowed mode with 4xNN.

Interestingly, the same issue is responsible for the nicely executed retro feel in Terraria, where everything is 2xNN by default.

PS: The winsetup.exe option 'Smooth scaled sprites (fast CPUs only)' produces egregiously awful results; you end up with an water-oil mixture of crisp background and smooth-blurry sprites. :$

Source

Reply 18 of 18, by SedrynTyros

User metadata
Rank Member
Rank
Member
lukeman3000 wrote:

I just wanted to share a post I found on the Steam forums which helped to further my understanding of what's going on here. I know that a lot of this has already been said, but sometimes things said another way can also be helpful:

Thanks for the link, Mark (this issue has been bugging me). And thanks for the game too. […]
Show full quote

Thanks for the link, Mark (this issue has been bugging me). And thanks for the game too.

Additionally, I just would like to point out that it feels to me that this kind of art -- handcrafted bitmap -- when done well, does benefit from the chunkiness (and in most cases extreme sharpness) resulting from the low-res-upscaled images, and that even before factoring in the psychological appeal of the retro visual.

Since all images are manually created/reviewed and the pixels are almost individually handpicked to result in aesthetically pleasing images, there is artistic value in the information regarding what-pixel-goes-where and, usually, scaling will mess up that information.

The exception being when scaled up by integer factors (1x, 2x, 3x, ...) with nearest neighbor interpolation.
In this case, the image is being blown up in a way that 1 pixel in the original image turns into 4 in the new one (4=2x2, in x2 scaling), or 9 (9=3x3, in x3 scaling), and so on. Every RGB value in the pixels of the scaled image also exists in the original image.

Since the native resolution of the game is 320x200, the largest possible scaling in a 1920x1080 monitor is 5x (1600x1000).
The game settings tool 'winsetup.exe' does not gives you the option to set x5 scaling; the largest possible value is 4x (1280x800).

Any kind of stretching to make 1280x800 fit 1920x1080 will result in less sharpness (even though aspect ratio might be preserved by lateral black strips -- letterboxing).

Therefore, to have the truest experience possible, the thing to do is give up screen real estate and play in windowed mode with 4x nearest neighbor scaling.

I set an empty black background -- in order to not be distracted from game content -- and fire up the game in windowed mode with 4xNN.

Interestingly, the same issue is responsible for the nicely executed retro feel in Terraria, where everything is 2xNN by default.

PS: The winsetup.exe option 'Smooth scaled sprites (fast CPUs only)' produces egregiously awful results; you end up with an water-oil mixture of crisp background and smooth-blurry sprites. :$

Source

Yep. Even multiples (integers) will properly upscale the image using a nearest-neighbor (a.k.a. point) algorithm. Whenever you see an option to "smooth" an image, that's bilinear upscaling and that's where you get the blurry look.

https://en.wikipedia.org/wiki/Nearest-neighbor_interpolation

https://en.wikipedia.org/wiki/Bilinear_interpolation

https://en.wikipedia.org/wiki/Image_scaling