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.
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.
and 2xSal (aka
sai2x) are the ones in common use.
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.