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

×
If your display supports 1280x960 resolution,or any other multiple of 640x480, you can have a crisp image devoid of hideous bilinear interpolation with a few simple configuration tweaks. This kind of scaling is called integer scaling and crudely doubles the image--but we like that. Especially for old games. This way there is zero aliasing.

Most of us have 1920x1080 displays, and even if we preserve aspect ratio, an internal 640x480 resolution does not scale up neatly to 1920x1080. With a 4:3 game (like Archimedean Dynasty), you end up with an ugly, filtered 1440x1080 image, (1920x1080 with black borders). If you're willing to give up a couple pixels of screen coverage, you can have a crisp doubled resolution of 1280x960.

1. Inside your \Archimedean Dynasty\DOSBOX directory, run nglide_config.exe.

2. Set screen resolution to 1280x960, aspect ratio to 4:3, and vertical synchronization to off. Now the simulation (3D) part of the game will be doubled.

3. Inside your \Archimedean Dynasty directory, open dosbox_ad.conf in a text editor.

4. Change the fullresolution line to "fullresolution=1280x960" and the output line to "output=direct3d". Now the 2D part of the game will be doubled.

5. Nvidia: In Nvidia Control Panel, go to "Adjust Desktop Size and Position". Tick the box that says "No scaling".
AMD: First go to Windows Display settings and lower your resolution to anything below native. Now go to CCC and enable GPU Scaling, then tick the box that says "Enable centered timings". Now change your desktop resolution back to native in Windows Display settings.
Intel: I have no idea how you disable scaling here as I've never had an onboard display adapter, but I'm sure it's intuitively labeled.

6. Play the game. You'll know it's working because the image won't take up all of your vertical resolution and it will appear more pixellated because there's no blur introduced by interpolation. If you really have to have that extra space, by all means, scale it up, but the crisp image is worth the loss of a couple inches on my 32". And if you can tolerate the blur and maybe even prefer it, congratulations: your legacy gaming career is much more convenient than mine.

If you have a 1440p display, you don't have to give up an inch of screen real estate. You can perfectly scale up 3x. This is the ideal resolution for integer scaling of 640x480 era games. I am jealous.

If you have a 4k display, you can try upscaling to 2560x1920 (4x internal resolution). This requires more power but if you have a 4k display, you surely have power.

And if you have a 1920x1200 display, you can perfectly 2x scale 800x600 games. That doesn't really help you with Archimedean Dynasty, but it's helpful for SVGA games.

Finally, If you like what you see, lobby Nvidia and AMD to add integer scaling settings to their drivers. You can apply this workaround to other DOS games that don't utilize Glide by using just the dosbox conf tweaks, though if a game's native resolution is 320x200, you would use 1600x1000, for example. nGlide and dgVoodoo/dgVoodoo 2 both support resolution overrides in Win32 games as well, but only for Glide games. In the future, DXGL's developer plans to support integer scaling. That means integer scaling support for the DirectX 1-7 era.

It's remarkable that something so simple is still in many cases impossible to achieve, but hopefully we'll have driver level support for this someday.
Post edited August 03, 2015 by galneon
Thanks for the thorough guide. For me it depends on the game. For old 3D games that only run in 640x480 I prefer bilinear filtering and whole-screen-scaling. For 2D games I prefer pixel-doubling and integer scaling.
avatar
galneon: Finally, If you like what you see, lobby Nvidia and AMD to add integer scaling settings to their drivers.
You'd need not only integer scaling, but also pixel-doubling / nearest-neighbour scaling instead of bilinear filtering, right? I would like those driver options too. While you can achieve this manually with Dosbox, this is currently not possible at all with Windows games, right? It's impossible to run Starcraft 1 in 640x480 upscaled to 1280x960 with pixel-doubling.
As this game has discrete 2D and 3D modes, you can actually have both scaling methods if you wish. Follow all the steps, but set nGlide to your native resolution.

The driver implementation would indeed have to be intelligent, e.g. applying nearest neighbor rather than bilinear and having awareness of native resolution (or simply desktop resolution as they are often the same) and application internal resolution to know if 2x, 3x, 4x, etc. scaling is appropriate for maximum screen coverage, but this isn't difficult. The driver already has all of that information except the means to do the simple math of whether, say, 1280 x 960 or 1920x1440 is more appropriate for a 640x480 game on a 1440p display. This is certainly trivial stuff for Nvidia or AMD to implement but I think everyone with a GOG account probably understands that Nvidia, AMD, and indeed Microsoft, do not care about legacy support. This sort of thing is also helpful for 2D indie games, though. Pixel art is still common.

As for Win32 games, integer scaling is possible in Glide games because both nGlide and dgVoodoo/dgVoodoo 2 allow resolution overrides. dgVoodoo 2's D3D component (dgVoodoo is Glide only, but dgVoodoo 2 wraps both Glide and DX1-7 games), however, does not. The author isn't fond of the idea unfortunately as resolution overrides in D3D applications apparently tend to break things more frequently. DXGL's author intends to add integer scaling. That will open up support for DX1-7 games.

Starcraft is a special case. I hear integer scaling is possible with the use of ddhack, dxwnd, and a special hacked version of cnc-ddraw. I can't link a guide, though, and I haven't tried it myself. If you're interested, you should probably ask on Vogons.
<moved to general discussions>
Post edited March 26, 2018 by your_breakfast