VOGONS


Maintaining original resolution in fullscreen?

Topic actions

First post, by jez

User metadata
Rank Member
Rank
Member

When I configure things thus:

fullresolution      = desktop
windowresolution = original
output = surface
...
aspect = false
scaler = normal4x

DOSBox will scale the video to 4x both in windowed and fullscreen modes (in fullscreen mode you get letterboxing to achieve this).

However, when I change output from surface to any of the more modern outputs like ddraw or opengl, fullscreen mode always stretches the video to the resolution of my desktop. Is there any way I can get the 'surface' behaviour with one of the more modern output types?

== Jez ==

Reply 1 of 22, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

Change aspect to true.

Reply 2 of 22, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

You probably also need to use an output that support hardware scaling, such as opengl, openglnb or ddraw, and disable the software scaling with "scaler=none". The "output=surface" does not support hardware scaling, and that will hurt performance with "aspect=true".

Reply 3 of 22, by jez

User metadata
Rank Member
Rank
Member

Eh? Did you even read what I posted? I said "output=surface" did achieve the output I wanted.

== Jez ==

Reply 4 of 22, by realnc

User metadata
Rank Oldbie
Rank
Oldbie

I assume you want desktop resolution in fullscreen, but non-scaled output (meaning black borders around it.) I don't think there's a way to do it.

But you can try to set:

fullresolution = original

Which will probably not work well on modern displays. You'll get the nearest available resolution with some form of scaling applied by the display. You can probably fiddle in your monitor's OSD to find scaling settings. Or you can force GPU scaling in your driver control panel and try the scaling options offered there.

Reply 5 of 22, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
realnc wrote:

I assume you want desktop resolution in fullscreen, but non-scaled output (meaning black borders around it.) I don't think there's a way to do it.

Sure there is, set aspect to true.

Reply 6 of 22, by realnc

User metadata
Rank Oldbie
Rank
Oldbie
jmarsh wrote:
realnc wrote:

I assume you want desktop resolution in fullscreen, but non-scaled output (meaning black borders around it.) I don't think there's a way to do it.

Sure there is, set aspect to true.

Does not work. It still scales, just with the correct aspect ratio. Which is what one would expect just from that option's name.

The issue here is that when using anything other than surface, using "scaler = none" doesn't work. DOSBox will scale no matter what.

Reply 7 of 22, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

Reading between the lines, OP wants aspect ratio correction ("fullscreen with letterboxing"). If surface already did exactly what he wanted why would he be asking for alternatives?

Reply 8 of 22, by jez

User metadata
Rank Member
Rank
Member

No I didn't mention aspect ratio correction. I simply want the behaviour you get when you put output=surface in fullscreen - maintain the resolution output by the scaler and surround it in a letterbox - when you put output=opengl or similar.

== Jez ==

Reply 9 of 22, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

So what is the point of using the opengl output if you want it to look exactly the same as surface? The whole idea of using those output modes is to take advantage of hardware scaling...

Reply 10 of 22, by jez

User metadata
Rank Member
Rank
Member

For one thing, surface output kicks Windows 7 out of Aero and opengl doesn't.

== Jez ==

Reply 11 of 22, by keenmaster486

User metadata
Rank l33t
Rank
l33t

fullresolution=desktop
output=openglnb
aspect=true
scaler=none

World's foremost 486 enjoyer.

Reply 12 of 22, by realnc

User metadata
Rank Oldbie
Rank
Oldbie
keenmaster486 wrote:
fullresolution=desktop output=openglnb aspect=true scaler=none […]
Show full quote

fullresolution=desktop
output=openglnb
aspect=true
scaler=none

Nope, still scales.

Reply 13 of 22, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Works for me on all of my systems, only difference being I actually type in my desktop resolution e.g. 1920x1080

Edit: straight from my dosbox.conf:

fullscreen=false
fulldouble=false
fullresolution=1280x800
windowresolution=800x600
output=openglnb
autolock=true
sensitivity=100
waitonerror=true
priority=higher,normal
mapperfile=mapper-0.74-2.map
usescancodes=true


language=
machine=svga_s3
captures=capture
memsize=16


frameskip=0
aspect=true
scaler=none

World's foremost 486 enjoyer.

Reply 14 of 22, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Here you can see the results; it does not scale in standard text mode (but it does if you run a text-mode program such as Adlib Tracker II), but it definitely scales in graphics mode:

Screen Shot 2019-03-19 at 11.22.37 AM.png
Screen Shot 2019-03-19 at 11.22.49 AM.png

World's foremost 486 enjoyer.

Reply 15 of 22, by realnc

User metadata
Rank Oldbie
Rank
Oldbie
keenmaster486 wrote:

Here you can see the results; it does not scale in standard text mode

What are you talking about? That's scaled... 🤣 Change output to "surface" and then you'll get unscaled original size.

Reply 16 of 22, by keenmaster486

User metadata
Rank l33t
Rank
l33t
realnc wrote:

What are you talking about? That's scaled... 🤣 Change output to "surface" and then you'll get unscaled original size.

Oops, I misspoke - it DOES scale in standard text mode but NOT in graphics mode!

World's foremost 486 enjoyer.

Reply 17 of 22, by realnc

User metadata
Rank Oldbie
Rank
Oldbie
keenmaster486 wrote:

Oops, I misspoke - it DOES scale in standard text mode but NOT in graphics mode!

The game screenshot you posted is also scaled. Unless Commander Keen's original resolution is 800 pixels high. Was it an 800x600 game? If yes, then there's nothing to scale to begin with.

Try a 640x480 or 320x240 game.

Reply 18 of 22, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Commander Keen's original resolution is 320x200.

OK, so are we trying to get square pixels here? Because that will not look as intended - every monitor back in the day was 4:3, and 320x200 games did NOT have square pixels. They would always be scaled vertically.

So this method scales everything to an as-large-as-possible box on your modern widescreen monitor with the aspect ratio of a 4:3 CRT, with the characteristic black bars on the sides.

World's foremost 486 enjoyer.

Reply 19 of 22, by realnc

User metadata
Rank Oldbie
Rank
Oldbie
keenmaster486 wrote:

So this method scales everything to an as-large-as-possible box on your modern widescreen monitor with the aspect ratio of a 4:3 CRT, with the characteristic black bars on the sides.

The OP is asking for no scaling at all. For a 320x240 game, that means a small image in the center surrounded by huge black areas, like you get when using "surface" output with a "none" scaler.