
A simple way to scale pixel art games
A little horizontal blur doesn’t hurt either.
Previously in How to Render MS-DOS ScreenshotsI encourage readers to consider the native pixel aspect ratio when showing images of old games. There’s a more subtle issue to consider: the ambiguity of analog display systems.
In the context of modern pixel art games, video game historians and preservationists Frank Cifaldi Proposal in 2023 tweet
(screenshot) should scale vertically and horizontally differently respectively:
Integer nearest neighbor scaling on the vertical axis, bilinear scaling on the horizontal axis. The slight blur is consistent with what a CRT does, and won’t be noticeable unless you press your face against the screen.
in other words,
- First, vertical nearest neighbor integer zoom, then
- horizontal Linear Zoom.
So this is effectively the same nearest neighbor upscale effect followed by a small horizontal blur. See center pane below.

This is a subtle distinction. With horizontal blur (center), jitter on the rocks is less noticeable, and Jazz’s facial expression is now easier to read. Unlike the blurry bilinear case, the sharpness of pixel art is still there.
See how faces are interpreted differently when you have some blur:

Looks like it works!
Who blurred it and why?
In the original tweet, Cifaldi reasoned that the slight ambiguity was “consistent with the role of CRT.” My understanding is that this is definitely true for most TVs, especially when connected to a games console composite video. So if you want your game to look like a ’90s console game, his advice seems solid. The source is This is the best blog post of 2023.
To give you an idea of what composite video looks like at its worst, here’s the same screenshot as above:

Jazz Jackrabbit 2 captures via interlaced composite video streaming using inexpensive capture cards. I wrote a small program for Nintendo 64 that outputs images in 640×576 mode without scaling.
Some people go the furthest Use shaders to simulate this look!
For PC monitors, the situation is less clear, since they are higher quality and connect using a VGA cable. VGA does not suffer from composite-like color tailing because there is no need to use filters to separate the color from the black and white signal. Each RGB component has its own wire.
this Jazzy Jackrabbit 2 The screenshots I used previously were from a PC game from 1998, so it was experienced on a computer monitor, not a TV. Is the slight horizontal blur still “period correct”? Assuming the CRT is of very high quality, a graphics card or a cheap VGA cable can still cause blurry images. Luckily, this is something we can test!
VGA experiment
Let’s do an experiment and make the VGA signal level blurry and visible. I connected the laptop to the LCD monitor using HDMI and VGA cables and compared the results. This basically emulates a high quality CRT monitor and a low quality VGA cable. I also don’t think my old ThinkPad X240’s VGA output would be particularly good.
This is what I got.

I’m sorry for the exposure differences between the photos. However, it should be clear that the VGA image in the center is blurrier than the digital HDMI image, but only horizontally.
Before taking the photo, I configured the monitor for pixel-perfect imaging. I also set the “Sharpness” value of the display settings so that the image remained stable in the one-pixel-thin test pattern. The results on the right show what low “sharpness” looks like.
This is the same but with more details:

As a conclusion, I would like to say that when scaling from 640×480 to 1280×960, the small horizontal blur produced by the linear filter is consistent with the appearance of a normal VGA signal. In this case, the blur caused by VGA may be larger.
If you are making your own pixel art game and displaying it at 2x magnification, the method recommended in the tweet seems to be a simple and effective option. Of course, assuming you want it to look retro 🙂
greater magnification
Many MS-DOS games run at 320×200 resolution. This is an interesting case because the graphics card “doubles” its rows to 320×400. The image actually has vertically scaled nearest neighbors in hardware, so the proposed method seems suitable.
Let’s try to zoom in on the screenshot cold dreama 1995 shareware game:

The results here look good too. The value gradient on the character is smoother, which may make the outline easier to see. There’s probably more blur than the VGA cable alone, but it does look pretty good!
More reading
Screenshots I took of Jazz Jackrabbit 2 From Italian Wikipedia. Lengmeng pictures from Moby game. Thanks to Bluesky user Sonneveld for introducing me to this technology. Thanks to everyone who participated in the discussions after I announced the early results on November 23rd.
2024-12-03 08:16:05