Playing fullscreen in 4:3 on a 16:10 or 16:9 screen

Ask for help with ScummVM problems

Moderator: ScummVM Team

Leolo
Posts: 18
Joined: Thu Jun 07, 2007 4:03 pm

Post by Leolo »

Aaahm, ok, now I understand. I hadn't thought that 320x200 is also 16:10, like my monitor!! (1680x1050)

It makes sense now. Thanks!
Leolo
Posts: 18
Joined: Thu Jun 07, 2007 4:03 pm

Post by Leolo »

Eeehm, I spoke too soon, I still don't understand it!! :oops:

Let me explain my setup in detail:

Windows 7 x64 SP1
Dell 2209WA monitor (1680x1050)
Desktop is set to 1680x1050 at 32 bit color
nvidia Geforce 8600 GT with drivers v296.10
scummvm build from 8th april 2012

I have these relevant lines in scummvm.ini:
aspect_ratio=true
gfx_mode=gl1

When I run Monkey Island 1 and press ALT-ENTER to go fullscreen, I see a message that says:
"Fullscreen mode 1680 x 1050"

The result is that I see black bars at both sides of the screen, and aspect ratio is properly preserved!! I didn't expect this!!!

Why? I set gfx_mode to gl1 (normal OpenGL), so aspect ratio should have been destroyed! Why has it been preserved?

Does that mean that aspect_ratio=true will always override the OpenGL normal mode??

What's the purpose of OpenGL "conserve", then? Why does it exist?
User avatar
MusicallyInspired
Posts: 1138
Joined: Fri Mar 02, 2007 8:03 am
Location: Manitoba, Canada
Contact:

Post by MusicallyInspired »

AFAIK, conserve is for Windowed mode only. So that when you manually resize the window the image displayed isn't distorted out of proportion if you resize to a rectangular shape, for instance. It correctly "snaps" back to the proper aspect ratio (whether you have that set for 16:10 without aspect_ratio=true or otherwise) but at a larger resolution. If that makes sense.
User avatar
clone2727
Retired
Posts: 1611
Joined: Fri Jun 09, 2006 8:23 pm
Location: NJ, USA

Post by clone2727 »

MusicallyInspired wrote:AFAIK, conserve is for Windowed mode only.
No. Conserve in full screen maintains original aspect ratio while Normal in full screen will stretch it out to the size of the monitor. This can be seen with a game like Riven or The Curse of Monkey Island that run in a higher resolution.
User avatar
MusicallyInspired
Posts: 1138
Joined: Fri Mar 02, 2007 8:03 am
Location: Manitoba, Canada
Contact:

Post by MusicallyInspired »

There you go.
Leolo
Posts: 18
Joined: Thu Jun 07, 2007 4:03 pm

Post by Leolo »

Ahm, Ok, thanks for the explanation!

So, I assume it's safe to say that, for 320x200 games, the "aspect_ratio=true" parameter will override the opengl gfx mode.

With these older games, if you set "aspect_ratio=true", then the value of OpenGL (normal or conserve) is completely irrelevant. The aspect ratio correction will always be forced.

Regards.
User avatar
MusicallyInspired
Posts: 1138
Joined: Fri Mar 02, 2007 8:03 am
Location: Manitoba, Canada
Contact:

Post by MusicallyInspired »

No, it doesn't override anything. It just changes what the OpenGL gfx mode is based on. The gfx mode will conserve the aspect ratio of whatever image is displaying. Depending on how your monitor handles full screen resolutions, it will not stretch an image to the borders of your monitor, it will merely find the best fit. If aspect_ratio is false then it will best-fit to your monitor a widescreen image. If it's true then it will best-fit to your monitor a 4:3 image. Nothing more.

You said yourself that your monitor is 16:10 therefore a 320x200 image will fill your screen whichever mode you select because it's a perfect fit already (without aspect_true, because it's a 16:10 native resolution with square pixels). it all depends on how your monitor handles full-screen resolutions, however. Some monitors offer and option toggle to make it fill the entire screen or display a 4:3 square image instead. Either way the gfx modes are based on the image displayed (whether it is modified by aspect_ratio or not). At least, I gather that's how it's supposed to work. I've tested it myself on my own system and monitor, however, and that seems to be the way it reacts.

EDIT: Actually, you seem to be right. In Windowed more for me, at least, OpenGL Normal acts the same way as Conserve if aspect_ratio is true, rather than stretching the image to fit the uncommon resolution you resize to.
Kerpo
Posts: 3
Joined: Thu Jun 07, 2012 1:32 pm

Post by Kerpo »

Leolo wrote:The approach taken by Dosbox is the best
No. It's not the best. The approach taken by Mame, WinUAE and Ootake is the best.

Why? Let me explain. What Doxbox does is probably 'just as good' for most people (though I can't see how it could still be BETTER than what Mame does).

But let's say you want to see oldskool, authentic, non-scaled, non-stretched, non-filtered lores pixels on a real CRT television. I bet there aren't many of people with this sort of approach, hence many emulators do not care about being able to do this.

The TV-out system that graphics cards natively offer, as we all know, is completely lousy. It stretches/scales and on the top of that, it always displays everything in an interlaced mode. So even the lores graphics flicker, when displayed on a real CRT television. That's not how Amiga (for example) used to display it's picture - lores graphics should look solid and beautiful!

So, there are certain solutions to this - it's possible to output the VGA signal into the television - you just need a special cable and some software. I got my cable from germany, a VGA-TO-SCART cable, to be exact. After that, the only thing needed was Soft15Khz, and everything works.

Alas, modern graphics card makers do not care about supporting lores resolutions (I wish they did, but this is the world we live in - the new tech is always hyped and supported, and nothing old - no matter HOW good - is fully supported anymore, though I am sure it would be very easy for them to simply add support for lores modes to every graphics card, they refuse to do it). So it's a bit of a gamble, whether a given gfx card supports a lores resolution or not.

I made a mistake of purchasing a graphics card that I thought would support ALL low resolutions, but then realized that this particular ATi creation - as great as it is in many other ways - cannot support lower than 7.12 Hz (or something like that, can't remember properly) resolutions.

This means in practical reality that the lowest resolution I can get working with Soft15Khz and some optimized config files is 336x240 (but with my current TV, that flickers every now and then, so it has become unusable - with my previous TV it worked perfectly, but the TV broke). So in effect, I can only use 352x256 as the lowest possible resolution (this is not low enough for certain MAME games, and SNes and NES-games look squished, but cannot be helped if I don't want to 'stretch' them).

With DOSBox, it's impossible to render a 320x200 graphic amidst the 352x256 screenmode. It stretches the graphics in a really ugly way, so that I can't use DOSBox with the TV (I know DOSgames were never meant to be used in a TV anyway, but what a CRT television does to lores pixels, with the added bonus feature of having REAL "BLACK" (instead of that 'greyish glow' of the TFT monitors), being really a big screen (24" TV, but still, bigger than my 16:9 TFT 23" monitor), and a brighter screen (and in my opinion, better and more vivid colors), makes it a very tempting thing to attempt, but DOSBox kills all that really quick) without groaning and twitching out of disgust, being forced to watch a stretched lores mess after going through all that trouble (getting the cable, installing Soft15kHz etc.) to ensure I wouldn't have to.

So, while it's good that DOSBox "sort of" lets the user choose any resolution they want, it's bad that it doesn't do it the way MAME, WinUAE or even ScummVM does.

I was incredibly lucky with ScummVM - it simply chose the exactly correct resolution .. and I spent half the day wondering how it's even possible.. I mean, a brand-new ScummVM download that I just installed, somehow managed to choose the ONLY good, working resolution for my TV, although all the non-working resolutions are there to choose - but after reading the explanation from this thread, I know now why.

The 352x256 resolution is probably closest to the aspect ration of 320x200 of all the other possibilities, so that's what it chose. Lucky!

Though I would prefer, I would ALWAYS prefer the MAME-style or WinUAE-style (or Ootake-style) screenmode list where I could choose the screenmode, and the emulator would render the (user-chosen) 1x1 or 2x2 or whatever on the screen, NEVER stretching it without permission, and I can't understand for the life of me, why emulator coders so rarely give this user-friendly common sense a chance..

.. I am still very glad and feel lucky that I can play The Secret of Monkey Island on my 24" CRT television in fullscreen mode without any interlace, in the oldskool glory of the brightness and beauty of authentic, televised lores pixels. Phew!

I am still hopeful that some day I can do the same with DOSBox ..
Much, much better than what ScummVM does currently.
So you can probably see why I would consider this statement of yours a bit inaccurate. ScummVM actually ALLOWS me to play DOTT un-stretched on the television, in lores, without interlace and all that jazz. DOSBox does not.

What ScummVM does, is thus much, much better than what DOSBox does currently.

DOSBox allows you a freedom of resolutions but FORCES the stretching.

ScummVM doesn't give you a resolution list, but also doesn't force any stretching.

ScummVM wins for me. For you, it's obviously a different story, but I just wanted to show you another perspective so you would know your statement is not a FACT, it's just an opinion from YOUR point of view. From your perspective, that's certainly correct, but it's not an universal truth.

By the way, the only thing wrong about ScummVM that I have noticed is that it doesn't render "The Secret of Monkey Island"'s "flashing" or "fading" effects completely correctly (when you talk with the voodoo woman - those flashes look very different with DOSBox). Not a big deal, but the flashes made an impact on me when I was a kid, because the Amiga version didn't have them and seeing the PC version do it was so impressive back then..

Anyways, thanks for fingolfin for the great explanation - now I can probably sleep at night, not having to go out of my mind wondering how the HECK did ScummVM do that.. (:

It's sometimes almost as frustrating to not be able to find out why something WORKS (when it's not supposed to even be possible) than why something DOESN'T work..

But now I know, and thanks again!
Last edited by Kerpo on Thu Jun 07, 2012 2:27 pm, edited 1 time in total.
Kerpo
Posts: 3
Joined: Thu Jun 07, 2012 1:32 pm

Post by Kerpo »

MusicallyInspired wrote: You said yourself that your monitor is 16:10 therefore a 320x200 image will fill your screen whichever mode you select because it's a perfect fit already (without aspect_true, because it's a 16:10 native resolution with square pixels).
Hm, never mind - I just realized why 8:5 is the same as 16:10 (I wonder why the 'standards' are always so out of whack on this planet - it's like "720p" which doesn't necessarily even have a 720 pixel height .. - I mean, why would 1280x512 be "720p"? .. Uh.. because.. it just is. That's how the standards work here, it's insanity! Or like 'fat free' yoghurt can have 0.2 % fat..)

I guess marketing and sales departments leave their imprint on the standards we use..
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3560
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

Kerpo wrote: By the way, the only thing wrong about ScummVM that I have noticed is that it doesn't render "The Secret of Monkey Island"'s "flashing" or "fading" effects completely correctly (when you talk with the voodoo woman - those flashes look very different with DOSBox). Not a big deal, but the flashes made an impact on me when I was a kid, because the Amiga version didn't have them and seeing the PC version do it was so impressive back then..
Different in what way? I just tried it in DOSBox, and I didn't notice any really obvious differences between that and ScummVM. I did notice that the CD version of the game uses a very different flashing effect than the 256-colour floppy version, but that happened in DOSBox too. (I don't have the 16-colour DOS version, so I can't compare that.)

I captured a series of screenshots to show the difference between the two versions (as rendered by ScummVM). They're a bit too large to put in this post, so here are two links instead:

256-colour floppy version
256-colour CD version

(Even the larger of the images is less than 120 KB, so I'm thinking of size on the screen, not on the disk.)

For the CD version, I didn't capture every frame, but I think I got every change in colours.

Capturing screenshots from DOSBox is left as an exercise for the reader. :)
Leolo
Posts: 18
Joined: Thu Jun 07, 2007 4:03 pm

Post by Leolo »

Kerpo,

Did you test with the latest stable release of ScummVM? Or did you use a daily build from the trunk?
Post Reply