Leechmonger
Arbiter
As many of you already know, many (most?) 320x200 resolution DOS games were programmed with 4:3 CRT monitors in mind. That is to say, when the developer wished to display a circle they would draw it such that it would look circular on a 4:3 CRT monitor, which used rectangular pixels instead of square ones. Since today's display technologies use fixed size, square pixels, you'd need to stretch the pixel vertically in order for the image to look the same with today's displays as they did in the 80s and 90s.
Specifically, you need to stretch each pixel vertically by a factor of 1.2. In a perfect world where you have a 1920x1200 monitor you just multiply every pixel horizontal by 5 and vertically by 6 thus turning the original 320x200 resolution into 1600x1200. If your display is 1920x1080, however, you don't have nice integers to work with so you have the following options:
1. Stretch some rows, but not others, such that it averages out to an overall picture stretch of 1.2. DOSBox does this with the "Aspect" option, and it's particularly awful if you try it at the game's native resolution. In order to stretch 320x200 to 320x240 DOSBox will duplicate every fifth row, resulting in felipepepe's favorite pirate: Kawaiibrush Weeaboo, seen in the middle example below.
Things get better if you upscale to higher resolutions. To upscale by a factor of 4 (1280x800) and then stretch by 1.2 (1280x960), you can group the image into sets of 5 rows. 4 of those rows you scale by a factor of 5 and the fifth row you scale by a factor of 4. Horizontally you scale every pixel the same factor: 4. You'll end up with sets of pixels 24 tall and 20 wide: a 1.2 ratio. The shorter rows are only 20% smaller than the rest, as opposed to 50% in the first example.
2. Use interpolation. The original pixels will no longer be preserved (they will be blurred together) and again, the more you upscale the less noticeable it is.
3. Stretch by a factor more practical than 1.2, but still close to it. This preserves the original pixels but at the cost of aspect ratio accuracy. DOSBox ECE's "pixel perfect scaling" does this. For example, if upscaling by a factor of 4 (1280x800) and then stretching by 1.25 (1280x1000) one can simply multiply every pixel vertically by 5 and horizontally by 4. The resulting image will not have any artifacts but will be 4% taller than it should be.
4. Leave the aspect ratio alone and the characters fat.
It is interesting to note that sometimes the same game will present differently-shaped circles, only some of which will look right on a given display. In Monster Bash, for example, the artist that drew the moon in the Apogee splash screen made sure that it would look circular on the CRTs of the time. Whoever drew the targets in the difficulty select screen, however, did not. Therefore if you correct the aspect ratio using any of the methods above the moon will look right but the targets will not, and vice versa if you don't.
Those of you who have played DOS games extensively, how much importance do you place on replicating the game's original graphics? What fancy emulation options do you use? Or do you simply use 90s hardware instead?
Specifically, you need to stretch each pixel vertically by a factor of 1.2. In a perfect world where you have a 1920x1200 monitor you just multiply every pixel horizontal by 5 and vertically by 6 thus turning the original 320x200 resolution into 1600x1200. If your display is 1920x1080, however, you don't have nice integers to work with so you have the following options:
1. Stretch some rows, but not others, such that it averages out to an overall picture stretch of 1.2. DOSBox does this with the "Aspect" option, and it's particularly awful if you try it at the game's native resolution. In order to stretch 320x200 to 320x240 DOSBox will duplicate every fifth row, resulting in felipepepe's favorite pirate: Kawaiibrush Weeaboo, seen in the middle example below.
Things get better if you upscale to higher resolutions. To upscale by a factor of 4 (1280x800) and then stretch by 1.2 (1280x960), you can group the image into sets of 5 rows. 4 of those rows you scale by a factor of 5 and the fifth row you scale by a factor of 4. Horizontally you scale every pixel the same factor: 4. You'll end up with sets of pixels 24 tall and 20 wide: a 1.2 ratio. The shorter rows are only 20% smaller than the rest, as opposed to 50% in the first example.
2. Use interpolation. The original pixels will no longer be preserved (they will be blurred together) and again, the more you upscale the less noticeable it is.
3. Stretch by a factor more practical than 1.2, but still close to it. This preserves the original pixels but at the cost of aspect ratio accuracy. DOSBox ECE's "pixel perfect scaling" does this. For example, if upscaling by a factor of 4 (1280x800) and then stretching by 1.25 (1280x1000) one can simply multiply every pixel vertically by 5 and horizontally by 4. The resulting image will not have any artifacts but will be 4% taller than it should be.
4. Leave the aspect ratio alone and the characters fat.
It is interesting to note that sometimes the same game will present differently-shaped circles, only some of which will look right on a given display. In Monster Bash, for example, the artist that drew the moon in the Apogee splash screen made sure that it would look circular on the CRTs of the time. Whoever drew the targets in the difficulty select screen, however, did not. Therefore if you correct the aspect ratio using any of the methods above the moon will look right but the targets will not, and vice versa if you don't.
Those of you who have played DOS games extensively, how much importance do you place on replicating the game's original graphics? What fancy emulation options do you use? Or do you simply use 90s hardware instead?
Last edited: