Game emulators take tiny 256x224 images
and scale them up for monitors that display 1280x1024 or more.
Simple scaling doesn't work well. Pixel duplication is blocky and
bicubic interpolation blurs out the
lovely crisp details of hand drawn game sprites.
Worse, old
games were meant to show
on TVs with weird
interlacing and blurring; it's hard to get the look right on a PC monitor.
Fine emulators have a diversity of algorithms for scaling images up. Eagle and 2xSal (aka sai2x) are the ones in common use. scale2x and hq3x are new and promising. The underlying problem is creating the illusion of more information than is really present. All the algorithms above have the same basic idea; try to detect features like edges and scale them appropriately. This needs to work really fast; the code is usually a mess of MMX assembly. |