Custom scaling?

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
User avatar
theelf
Posts: 24
Joined: Sun Feb 19, 2006 2:10 pm
Contact:

Custom scaling?

Post by theelf » Sun May 25, 2014 10:32 am

Hi! greetings to all

My question, for some reason (GUI frontend), i need to use a resolution of 640x224



For example, to play 320x200 games


If I use openGL, it streetch to max resolution, 640x224, and have bad scaling because 224 lines instead of 200 (the correct must be 640x200)



If i use the other OpenGL options, I just get 320x200 inside 640x224, 1:1 scaling


Any way to use a 2x1 scaling? 640x200 inside 640x224 with 8px borders on top and bottom?

This is using Scummvm 1.6


Latest dayly snapshot, just have two opengl option, filter and no filtering, and both just show 1:1, 320x200 inside 640x224


I made a image to show example


1 - This is the way normal OpenGL scummvm stretch, 640x224, instead of 640x200
2 - This way is other OpenGL options, just 320x200 inside 640x224
3 - This is what i need 640x200 inside 640x224


Image



Think this show in a 4:3 CRT TV, 640x224 is 4:3, even if in TFT looks wide

Thanks

User avatar
criezy
ScummVM Developer
Posts: 640
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy » Sun May 25, 2014 2:31 pm

I don't think there is a way to do what you want to do without modifying the source code, but I am actually not sure this is what you want to do anyway.

And I am not sure the sentence above actually makes any sense so let me clarify that. The original games with a 320x200 resolution were actually displayed with a 4/3 ratio due to the pixels being non square when displayed on CRT monitors. This is why we have a "Aspect ratio correction" option that stretches the display to 320x240 resolution: it allows displaying the game with the correct 4/3 ratio on modern screens with square pixels (see http://wiki.scummvm.org/index.php/User_ ... aphics_tab). But if the 4/3 ratio in your case is 640x224 (which is what you seem to imply with your last sentence), then this may actually be the resolution you might want to use. And from what I understand this is what you get with the OpenGL stretch case.

User avatar
theelf
Posts: 24
Joined: Sun Feb 19, 2006 2:10 pm
Contact:

Post by theelf » Sun May 25, 2014 4:04 pm

criezy wrote:I don't think there is a way to do what you want to do without modifying the source code, but I am actually not sure this is what you want to do anyway.

And I am not sure the sentence above actually makes any sense so let me clarify that. The original games with a 320x200 resolution were actually displayed with a 4/3 ratio due to the pixels being non square when displayed on CRT monitors. This is why we have a "Aspect ratio correction" option that stretches the display to 320x240 resolution: it allows displaying the game with the correct 4/3 ratio on modern screens with square pixels (see http://wiki.scummvm.org/index.php/User_ ... aphics_tab). But if the 4/3 ratio in your case is 640x224 (which is what you seem to imply with your last sentence), then this may actually be the resolution you might want to use. And from what I understand this is what you get with the OpenGL stretch case.

Hi, thanks for reply


If you stretch 320x200 to 320x240, you get correct aspect ratio, and lost the integer scaling. For me this, a non integer scaling, is much worst that just lost the aspect

I dont have any PC CRT monitor, I have a 15khz CRT screen, in this TVs, the only important is the vertical resolution, not horizontal

I can use 320x200, 640x200, 960x200, 1280x200, or 9600x200 if i want...


First screen is 320x200,second is 640x200. The game look exactly same, if scumvmm stretch the screen to max (sorry pictures are not good, is difficult to take picture of CRT screens)

Image



I dont care about ratio in software, I let the TV do the screen aspect, i just make all resolutions *x200 be 16.42khz, and thats all


In this case, the way scummvm do scaling is incorrect I think


But if you say scummvm can´t to, is OK, good to know, to start looking in other direction, and found another way to solve problem, thanks


Thanks

User avatar
theelf
Posts: 24
Joined: Sun Feb 19, 2006 2:10 pm
Contact:

Post by theelf » Sun May 25, 2014 8:21 pm

Found a way!!


The answer to this problem is PowerStrip and virtual resolution

With PowerStrip is possible to create a virutal resolution inside another

In this case, I create 640x200 inside 640x224

Now even if I change to 640x200, the screen believe is 640x224, and everything works fine in my screen



Image


Normally is just easy to use 320x200 or 640x200 is the videocard cant use less than 8khz, but, in my case, i was forced to 640x224 because some weird long story :D



Perfect! now I can enjoy CGA and EGA with real scanlines, with proper resolution, and not just doublescan in VGA screens



I think it will be a nice idea to implement a custom way to made scaling, like 1:1, 2:1, 3:1 etc for users of 15khz videocard+TVs


Thanks

Post Reply