It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
When I set up my .conf file to use aspect=true, fullresolution=desktop and using overlay many DOS games then display in proper 4:3 with appropriate sized black bars on either side.

However, several games still "stretch" the image slightly. There will still be black bars on both sides, but they are much smaller and circular elements in the game are noticeably oval. For example, Pacific Air War stretches slightly like I described whereas Fleet Defender has correct 4:3... both are using the same dosbox .conf settings.

This happens only on games that are 320x200 vga resolution. Some fit fine, and others stretch.

Any idea how to fix this, and why it only happens on certain games?
Post edited July 07, 2022 by flyinj
avatar
flyinj: This happens only on games that are 320x200 vga resolution. Some fit fine, and others stretch.
You already hit the nail on the head, it's the resolution specific.

Having done DOS programming when i was a teenager, 320x200 was a common resolution and actually preferred, since it maps to 64,000 bytes, or just within 1 segment of access (16bit) while 320x240 uses 76,800 bytes meaning you'd have to switch one of the segment registers to access and write the other half.

320x240 is indeed 4:3, while 320x200 is 16:10. So a slight amount of stretching may indeed be expected.

You could play in a window and raise the resolution by multiplying the pixel size.

Try Graphic mode: OverlayScaling: Normal x2 and see if that doesn't fix it. From the thread here, it suggests it would go to 640x400 but then internally upgrade to 640x480 with black bars. (Or just ignore the lower 80)
avatar
flyinj: This happens only on games that are 320x200 vga resolution. Some fit fine, and others stretch.
avatar
rtcvb32: You already hit the nail on the head, it's the resolution specific.

Having done DOS programming when i was a teenager, 320x200 was a common resolution and actually preferred, since it maps to 64,000 bytes, or just within 1 segment of access (16bit) while 320x240 uses 76,800 bytes meaning you'd have to switch one of the segment registers to access and write the other half.

320x240 is indeed 4:3, while 320x200 is 16:10. So a slight amount of stretching may indeed be expected.

You could play in a window and raise the resolution by multiplying the pixel size.

Try Graphic mode: OverlayScaling: Normal x2 and see if that doesn't fix it. From the thread here, it suggests it would go to 640x400 but then internally upgrade to 640x480 with black bars. (Or just ignore the lower 80)
Ah, that did the trick, thanks!

I was wondering if their were two base resolutions for low-res VGA. I did seem to recall that, thanks for confirming!
avatar
flyinj: When I set up my .conf file to use aspect=true, fullresolution=desktop and using overlay many DOS games then display in proper 4:3 with appropriate sized black bars on either side.

However, several games still "stretch" the image slightly. There will still be black bars on both sides, but they are much smaller and circular elements in the game are noticeably oval. For example, Pacific Air War stretches slightly like I described whereas Fleet Defender has correct 4:3... both are using the same dosbox .conf settings.

This happens only on games that are 320x200 vga resolution. Some fit fine, and others stretch.

Any idea how to fix this, and why it only happens on certain games?
It can be just original art inconsisency

Some developers used to make the game look right at 4:3 deforming the original art a bit , then it was visually corrected in a 4:3 monitor. But in some cases and in the same game, usually in the intros, that correction is not made and some images could look corrected and others deformed.

In other weird cases like xcom, the tactical part can look fine as expected with aspect correction enabled but the geoscape with the planet earth the image is clearly stretched vertically. I always had the guessing that this game was intended to be played in 16:10, this is, up and down bars in a 4:3 monitor. So I always tend to play this game without the aspect correction enabled.
Post edited July 07, 2022 by Gudadantza
avatar
flyinj: Ah, that did the trick, thanks!

I was wondering if their were two base resolutions for low-res VGA. I did seem to recall that, thanks for confirming!
This involves a little history lesson. Back with 186/286 there was extremely limited memory. Not only that the CPU was 16 bit, so it could only natively access 64k at a time, and they kept this for compatibility reasons. So they did an offset 'segment' registers that shifted the memory access, so DS of 1000h would actually let you access 10000-1FFFF through a single segment (aka shifting 4 bits or multiplying by 16). The max memory you could access using this scheme is FFFF0-10FFEF (Just over a meg). Writing it with assembly would look something like MOV DS:[BP],AX .

The conventional memory layout was the first 1k was used for pointers for interrupt handling (pointers to where an interrupt is to call, MS-DOS took 20h and 21h, the BIOS had a lot of others available for basic disk management printing, keyboard input etc etc). The last 4 bytes FFFFC-FFFFF was for bootup (which was a jump operation to where it should start booting from, basically from ROM). Along with that Video memory was assigned to A0000-BFFFF, giving you 128k of video memory to work with. There's a few other memory locations but not really important right now., except to say with MS-DOS and the upper memory decided on you typically had your dreaded 640K to work with the OS and programs.

There were a lot of standard VGA resolutions. These had to be limited within the 128k of memory listed above, so a lot of varieties of width, height, and depth were used. Higher colors limited down to the 320x400 (or so for 8bit color). Going up you then could get 640x480x16, as well as 1bit depth with black and white. (Curiously the number of colors to choose from in the 8bit was only 18bit or 262,144, basically 3 6-bit fields of RGB)

With the 386 processor and protected mode you got 32bit addressing, as well as SVGA which allowed far higher resolutions and colors that we are more familiar with today (assuming you had the memory for it, which became cheaper later). But it was quite common to have video cards with 1Mb or less of memory, and these cards would be HUGE! We're talking like the size of a sheet of paper and 20x as thick!

It really comes down to architecture limitations of the time. You should thank your stars you don't have to manually format your hard drives of 200Mb with how many sectors cylinders and heads there are, and manually setting push-pins to set up your video card and sound card anymore.
Post edited July 07, 2022 by rtcvb32
avatar
flyinj: Ah, that did the trick, thanks!

I was wondering if their were two base resolutions for low-res VGA. I did seem to recall that, thanks for confirming!
avatar
rtcvb32: This involves a little history lesson. Back with 186/286 there was extremely limited memory. Not only that the CPU was 16 bit, so it could only natively access 64k at a time, and they kept this for compatibility reasons. So they did an offset 'segment' registers that shifted the memory access, so DS of 1000h would actually let you access 10000-1FFFF through a single segment (aka shifting 4 bits or multiplying by 16). The max memory you could access using this scheme is FFFF0-10FFEF (Just over a meg). Writing it with assembly would look something like MOV DS:[BP],AX .

The conventional memory layout was the first 1k was used for pointers for interrupt handling (pointers to where an interrupt is to call, MS-DOS took 20h and 21h, the BIOS had a lot of others available for basic disk management printing, keyboard input etc etc). The last 4 bytes FFFFC-FFFFF was for bootup (which was a jump operation to where it should start booting from, basically from ROM). Along with that Video memory was assigned to A0000-BFFFF, giving you 128k of video memory to work with. There's a few other memory locations but not really important right now., except to say with MS-DOS and the upper memory decided on you typically had your dreaded 640K to work with the OS and programs.

There were a lot of standard VGA resolutions. These had to be limited within the 128k of memory listed above, so a lot of varieties of width, height, and depth were used. Higher colors limited down to the 320x400 (or so for 8bit color). Going up you then could get 640x480x16, as well as 1bit depth with black and white. (Curiously the number of colors to choose from in the 8bit was only 18bit or 262,144, basically 3 6-bit fields of RGB)

With the 386 processor and protected mode you got 32bit addressing, as well as SVGA which allowed far higher resolutions and colors that we are more familiar with today (assuming you had the memory for it, which became cheaper later). But it was quite common to have video cards with 1Mb or less of memory, and these cards would be HUGE! We're talking like the size of a sheet of paper and 20x as thick!

It really comes down to architecture limitations of the time. You should thank your stars you don't have to manually format your hard drives of 200Mb with how many sectors cylinders and heads there are, and manually setting push-pins to set up your video card and sound card anymore.
Oh yeah, I was there for all of that.

Lucky I was as well, as many of these GOG games need you to reconfigure the sound settings through their installers to match up the IRQ and DMA channels to what DOSBOX is set to for proper sound.

At least now I just need to change a couple values in the .conf file instead of opening my box, pulling out the sound card and moving jumpers around
Post edited July 08, 2022 by flyinj
low rated
avatar
flyinj: Ah, that did the trick, thanks!

I was wondering if their were two base resolutions for low-res VGA. I did seem to recall that, thanks for confirming!
avatar
rtcvb32: This involves a little history lesson. Back with 186/286 there was extremely limited memory. Not only that the CPU was 16 bit, so it could only natively access 64k at a time, and they kept this for compatibility reasons. So they did an offset 'segment' registers that shifted the memory access, so DS of 1000h would actually let you access 10000-1FFFF through a single segment (aka shifting 4 bits or multiplying by 16). The max memory you could access using this scheme is FFFF0-10FFEF (Just over a meg). Writing it with assembly would look something like MOV DS:[BP],AX .

The conventional memory layout was the first 1k was used for pointers for interrupt handling (pointers to where an interrupt is to call, MS-DOS took 20h and 21h, the BIOS had a lot of others available for basic disk management printing, keyboard input etc etc). The last 4 bytes FFFFC-FFFFF was for bootup (which was a jump operation to where it should start booting from, basically from ROM). Along with that Video memory was assigned to A0000-BFFFF, giving you 128k of video memory to work with. There's a few other memory locations but not really important right now., except to say with MS-DOS and the upper memory decided on you typically had your dreaded 640K to work with the OS and programs.

There were a lot of standard VGA resolutions. These had to be limited within the 128k of memory listed above, so a lot of varieties of width, height, and depth were used. Higher colors limited down to the 320x400 (or so for 8bit color). Going up you then could get 640x480x16, as well as 1bit depth with black and white. (Curiously the number of colors to choose from in the 8bit was only 18bit or 262,144, basically 3 6-bit fields of RGB)

With the 386 processor and protected mode you got 32bit addressing, as well as SVGA which allowed far higher resolutions and colors that we are more familiar with today (assuming you had the memory for it, which became cheaper later). But it was quite common to have video cards with 1Mb or less of memory, and these cards would be HUGE! We're talking like the size of a sheet of paper and 20x as thick!

It really comes down to architecture limitations of the time. You should thank your stars you don't have to manually format your hard drives of 200Mb with how many sectors cylinders and heads there are, and manually setting push-pins to set up your video card and sound card anymore.
Yeah, but big green play mah games button not worky…
avatar
flyinj: Oh yeah, I was there for all of that.
Mhmm, i figured anyone coming along wondering about why there's resolution limitations in DOS games they might find that post and get a glimpse of what we worked with up until only recently.
avatar
flyinj: Lucky I was as well, as many of these GOG games need you to reconfigure the sound settings through their installers to match up the IRQ and DMA channels to what DOSBOX is set to for proper sound.

At least now I just need to change a couple values in the .conf file instead of opening my box, pulling out the sound card and moving jumpers around
Well DosBox effectively emulates it and forwards it into your current sound driver, so the IRQ/DMA is how the DOS games see it, and doesn't have to reflect your actual hardware. IRQ 7 DMA 1 Port 220 and 330 are seemingly the most common used ports and configurations so most games are probably going to be using those.
avatar
nightcraw1er.488: Yeah, but big green play mah games button not worky…
Did you turn it off and on again?

Or did you try pushing the button really really hard?
Is this related to how GOG packages DOS games with graphics settings? Some games I just throw everything onto 1080p and hope for the best, but I often find myself just lowering the resolution and playing it in windowed mode if it looks too garish blown up to fit my monitor. I also have no idea which scaling engine is supposed to look best or even how they function. It got to a point where I just ended up downloading GZDoom to make Heretic not look ugly.