Skip to content
Techniques & Technology

Sprite Scaling

Pseudo-3D depth

Sprite scaling created the illusion of 3D depth by drawing sprites at different sizes based on distance, enabling racing games, shooters, and flight simulators on 2D hardware.

arcadesega-mega-drivesuper-nintendocommodore-amigaamstrad-cpcgraphics3Dtechnique

Make distant things small and close things large, and a flat sprite reads as an object in depth. Sprite scaling is how racing games showed cars growing as they approached and how into-the-screen shooters flung enemies at the player before polygon hardware existed. In the arcades it was Sega’s signature; at home it was a hardware feature on a few machines, a software feat on the rest, and a selling point in adverts whichever it was.

Fast facts

  • Purpose: depth on 2D sprite hardware.
  • Method: draw the same sprite at a size that depends on its distance; the hardware or the CPU skips or repeats rows and columns to get there.
  • Arcade name: “Super Scaler”, Sega’s label for the boards behind Hang-On, Space Harrier, Out Run, After Burner and Power Drift.
  • Home hardware with it: Neo Geo (shrink only), Amstrad Plus/GX4000 (×2 and ×4 magnify only), Atari Lynx, Atari Jaguar, Mega-CD (via its own graphics processor). The SNES scales backgrounds, not sprites; the Amiga and Mega Drive scale nothing.
  • Successor: texture-mapped polygons.

Sega in the arcade

Edge’s 1994 profile of Yu Suzuki summed up a decade: “some of the most influential games of the past decade, from early sprite scalers like Hang On and Out Run to the polygon-packed excesses of Virtua Racing”. ACE had said the same in 1991: “In the mid-eighties, Sega addressed itself to the problem of Sprite Scaling and Manipulation. This produced games like OutRun, Afterburner, Thunderblade and Power Drift; and further development has produced games like Line of Fire and now Rail Chase that would have been thought impossible a few years back.”

Suzuki’s own game history, as Edge printed it:

Game Released Hardware Edge’s note
Hang-On July 1985 Hang On board “the first in a series of great motorbike racing games from Sega”
Space Harrier December 1985 Space Harrier board “an impressive display of Sega’s sprite-scaling technology”
Out Run September 1986 Out Run board (shared with Super Hang-On) “one of the most playable racing games ever created”
After Burner July 1987 X Board “a coin-spinner of immense proportions”
Power Drift August 1988 Y Board “advanced sprite scaling and an axis of rotation”
G-LOC May 1990 Y Board

Asked for his favourites, Suzuki picked Out Run, “which was a big hit in 1987 — this was the first game to use the Super Scaler technology. I think the impact this technology made at the time has now been repeated with Virtua Racing and Daytona GP.” The board names in the table come from MAME’s driver sources, which model each generation’s sprite chip separately; the X Board also carried Thunder Blade, Line of Fire and GP Rider, and the Y Board Galaxy Force, Galaxy Force II and Rail Chase.

What the chips did

MAME’s reconstruction of the sprite lists shows the mechanism growing more capable board by board. The Hang-On hardware has a single 6-bit zoom factor per sprite, used as an index into a zoom ROM that decides which source rows to repeat or skip. Space Harrier splits it into separate 6-bit horizontal and vertical factors. System 16B (the Golden Axe and Shinobi board) has 5-bit factors where “0 = full size, 0x10 = half size” — a shrink-only scaler. The Out Run board’s 10-bit factors run the other way too: “0x200 = full size, 0x100 = half size, 0x300 = 2x size”, so a car can be drawn larger than its stored artwork. The Y Board widens the factor to 11 bits. In every case the drawing loop is an accumulator: add the zoom factor per row, and “if we carry into the high bit, skip an extra row”.

Home hardware that scales

Neo Geo. SNK’s hardware specification describes reduction, not enlargement: “the sprite can be reduced from 100% to 0%. The reductions can be done in 256 levels vertically and 16 levels horizontally”, the horizontal limit following from a sprite column being 16 dots wide. The spec’s “3D scrolling display” is 41 line-sprites shrunk together — the road effect built from the same feature.

Amstrad Plus / GX4000. The opposite trade. Amstrad’s press release for the Plus range listed “16 sprites each with 16 x 16 pixels and each sprite can be magnified by 2 or 4”, and Zero’s GX4000 feature called it “simple times two and times four hardware sprite zoom”.

Atari Lynx. ACE’s handheld round-up credited “custom chips in there to give hardware sprite scaling, hardware scrolling”, and C&VG’s GO! supplement reported that for the Lynx conversion of Hard Drivin’ “the bizarre sprite scaling abilities of the Lynx have been used to simulate polygons”.

Atari Jaguar. The Jaguar’s Object Processor takes a two-phrase header for an unscaled object and three for a scaled one. Its technical reference manual explains the trick in one sentence: “scaling is achieved by incrementing the line buffer address independently of the counter controlling the multiplexer. For instance if the line buffer address is incremented twice as often as the counter then the image will be twice as wide.”

Mega-CD. The add-on’s hardware manual has a “Rotation Scaling” section, but it works on “stamps” rendered by the sub-CPU side into an image buffer, which the Mega Drive then displays as ordinary graphics — the base machine’s VDP sprites are untouched. The press reported the feature as sprite scaling anyway: MegaTech’s launch issue promised “ultra-complex routines such as sprite scaling and rotation… at incredible speeds”, and The One judged the Mega CD’s “dedicated sprite chip, which allows for some impressive sprite-scaling and rotating effects” its only real advantage over the CD32.

The SNES: backgrounds, not sprites

Mode 7’s affine transform, in the SNESdev wiki’s description, is something “background mode 7” does “on its tilemap” — and Nintendo’s licensee manual (Super NES Development Manual, Book I) lists rotation, enlargement and reduction against the background modes 7 and EXTBG alone. It is a background function; the OBJ layer cannot be scaled in any mode. Developers who wanted scaled sprites against a Mode 7 floor had to draw them into the background or pre-scale them in software, which is why Nintendo Power was impressed that Ocean’s Jurassic Park used “Mode 7 effects to scale and rotate both rooms and sprites” and a separate “sprite-scaling technique used to make the dinosaurs move in a 3-D world” — “the only other game that accomplishes this technical feat is Super Empire Strikes Back”. The distinction was lost on much of the press. Mean Machines complained that the SNES Pit-Fighter lacked “the sprite-scaling that made the arcade machine so interesting and which the Super NES could have handled so easily”, and Grandslam’s Russell Kerrison, explaining why Bump ‘n’ Burn could not be Super Mario Kart, blamed “the SNES’ dedicated sprite-scaling chip”.

Software scaling at home

Where the hardware did nothing, the CPU did it, and adverts said so. Domark’s Pit-Fighter conversions were sold on “incredible graphics, digitised from real fighters, and amazing real time sprite scaling”. Magnetic Fields’ Lotus and Supercars series gave the team a reputation CU Amiga could call “their expertise with sprite scaling”. Kerrison’s verdict on the Amiga was that matching the SNES’s roaming Mario Kart course “to the extent it’s been done on the SNES — is virtually impossible”, so Bump ‘n’ Burn kept the characters and weapons and changed the driving. On the ST, a 1994 reader asked ST Format whether any STOS extension could “do sprite-scaling like in Space Harrier, or do I have to write my own routine?”; the magazine had heard rumours of one but had never seen it.

See also

Not yet fact-checked. This entry was drafted by an AI and nobody has verified it. The dates, figures and technical details may be wrong. Use it to find your bearings, then confirm anything that matters against a primary source.