How to display games as they were intended with a CRT?
Moderator: ScummVM Team
How to display games as they were intended with a CRT?
I have a modern gaming PC, and a CRT. I can change to whatever resolution is needed. How do I configure SCUMmVM so that it displays fullscreen at 400p natively? (with the correct aspect ratio.)
I messed with the options a bit but it seems that SCUMMVM doesn't change the display resolution, it sticks to the desktop resolution and only changes its internal resolution.
I switched the desktop to 720x400@70Hz, but then games were displayed with black bars on the side. Checking "aspect ratio correction" only made the game even thinner.
I messed with the options a bit but it seems that SCUMMVM doesn't change the display resolution, it sticks to the desktop resolution and only changes its internal resolution.
I switched the desktop to 720x400@70Hz, but then games were displayed with black bars on the side. Checking "aspect ratio correction" only made the game even thinner.
Native resolutions in DOS was
320x200 320x240
in HiMode 640x400 640x480
so the resolutions of the game are same.
if you use a widescreen resolution (720x400) you get these left and right borders. so i don`t get the point.
choose a more fitting resolution or scale it to fit more your monitor resolution.
320x200 320x240
in HiMode 640x400 640x480
so the resolutions of the game are same.
if you use a widescreen resolution (720x400) you get these left and right borders. so i don`t get the point.
choose a more fitting resolution or scale it to fit more your monitor resolution.
- LogicDeLuxe
- Posts: 437
- Joined: Thu Nov 10, 2005 9:54 pm
VGA doubled the lines in 200 and 240 row resolutions. To replicate this, you would set the resolution to 640x400 and use the 2x scaler on lowres games and disable aspect ratio correction.
70 Hz is VGA standard for 400 (and 200 logical) lines, but many graphic cards could be set to higher frequencies reducing flicker. So if your CRT supports it, you might just do that.
For hires games, use a 640x480 resolution and the 1x scaler.
720 width is commonly used on DVD and DVB, but not on VGA. Also, they are pre-defined in modern graphic drivers, since they are mandatory for HDMI.
70 Hz is VGA standard for 400 (and 200 logical) lines, but many graphic cards could be set to higher frequencies reducing flicker. So if your CRT supports it, you might just do that.
For hires games, use a 640x480 resolution and the 1x scaler.
720 width is commonly used on DVD and DVB, but not on VGA. Also, they are pre-defined in modern graphic drivers, since they are mandatory for HDMI.
This was taken by booting with a DOS floppy disk and running the game natively.
This is SCUMMVM 2.0.0 on Windows, with the resolution artificially set at 720x400 (SCUMMVM only changes its internal rendering resolution, not the display resolution; it keeps the Windows desktop resolution)
The video card cannot have its resolution set at lower than 720x400 or 640x480, but displays the correct image under primitive DOS conditions.
Earlier SCUMMVM builds (I tried 1.8.1) change the display resolution. On my computer, this resulted in the exact same incorrect thin image, in 720x400, as shown above.
This is SCUMMVM 2.0.0 on Windows, with the resolution artificially set at 720x400 (SCUMMVM only changes its internal rendering resolution, not the display resolution; it keeps the Windows desktop resolution)
The video card cannot have its resolution set at lower than 720x400 or 640x480, but displays the correct image under primitive DOS conditions.
Earlier SCUMMVM builds (I tried 1.8.1) change the display resolution. On my computer, this resulted in the exact same incorrect thin image, in 720x400, as shown above.
- LogicDeLuxe
- Posts: 437
- Joined: Thu Nov 10, 2005 9:54 pm
It really is 320 pixels. Don't trust the 720, the monitor simply doesn't know any better. This mismatch may cause aliasing, but probably isn't noticeable due to the really low resolution, hence can be ignored.
You may try to define a 960x600 resolution and use the 3x scaler. It is not exactly DOS timing, but is probably the closest thing you'll get if your GPU does not let you define anything lower than 720x400.
You may try to define a 960x600 resolution and use the 3x scaler. It is not exactly DOS timing, but is probably the closest thing you'll get if your GPU does not let you define anything lower than 720x400.
I don't know what my graphics card and/or monitor do exactly, but I can't see any sign of stretching. No doubled pixels, no in-between with merged colours, etc.LogicDeLuxe wrote:It really is 320 pixels. Don't trust the 720, the monitor simply doesn't know any better. This mismatch may cause aliasing, but probably isn't noticeable due to the really low resolution, hence can be ignored.
Here's a close up of another game in DOS 6.22 with a single-pixel grid pattern. You can click on the image for a bigger version.
Re: How to display games as they were intended with a CRT?
That is correct when ScummVM uses SDL2 (as opposed to SDL 1.2) which is the case in the last release for most platforms (including Windows, macOS, Linux) I believe, and when not using the OpenGL mode. In such a case SDL2 indeed keeps the desktop resolution in fullscreen mode and scales internally the data it gets from ScummVM.khaz wrote:it seems that SCUMMVM doesn't change the display resolution, it sticks to the desktop resolution and only changes its internal resolution.
You can however use the OpenGL mode if you want to be able to select a lower fullscreen resolution and then use Ctrl-Alt and + or - to cycle through the available resolutions and finds the one that suits you best.
- LogicDeLuxe
- Posts: 437
- Joined: Thu Nov 10, 2005 9:54 pm
That means that no resampling takes place, which is certainly a good thing. Then the 720 is just a wild guess by the monitor and can be ignored.khaz wrote:I don't know what my graphics card and/or monitor do exactly, but I can't see any sign of stretching. No doubled pixels, no in-between with merged colours, etc.
In your 720x400 mode, did you try reducing the horizontal blanking? That might be enough to scale the 640 active pixels to your screen width.
Re: How to display games as they were intended with a CRT?
I just tried it. While the main menu now fills the screen properly, the games are still in the same incorrect aspect ratio.criezy wrote:You can however use the OpenGL mode if you want to be able to select a lower fullscreen resolution and then use Ctrl-Alt and + or - to cycle through the available resolutions and finds the one that suits you best.
It's like the background and other geometrical elements are stretched to fill the screen, but bitmap objects (buttons, text, and the game itself) are still incorrectly sized. I don't expect SCUMMVM to provide a perfectly scaled interface for every combination of resolution and aspect ratio, I'm only worried about the game itself.
Last edited by khaz on Fri Jan 19, 2018 9:10 pm, edited 2 times in total.
You mean using the monitor's resize feature? Sure, I could adjust the width of the displayed image, but then it would mess with every other software that use 720x400 correctly. I don't want to readjust the picture every time I switch, that would be a mess.LogicDeLuxe wrote:In your 720x400 mode, did you try reducing the horizontal blanking? That might be enough to scale the 640 active pixels to your screen width.
- LogicDeLuxe
- Posts: 437
- Joined: Thu Nov 10, 2005 9:54 pm
- LogicDeLuxe
- Posts: 437
- Joined: Thu Nov 10, 2005 9:54 pm