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.

sega-mega-drivecommodore-amigasuper-nintendo graphics3Dtechnique 1982–present

Overview

Make distant things small, close things large. Sprite scaling created convincing depth without true 3D hardware. Racing games showed cars growing as they approached. Shooters had enemies rushing toward the player. The technique powered the "Super Scaler" arcade era and brought pseudo-3D to home systems for nearly a decade before polygonal hardware took over.

Fast facts

  • Purpose: Simulate 3D depth on 2D sprite hardware.
  • Method: Draw sprites at different sizes based on simulated distance.
  • Peak: Mid-1980s to early 1990s.
  • Hardware: Often required custom scaling chips (Sega arcade boards) or significant CPU time (home ports).
  • Successor: Texture-mapped polygons (1992+).

How it works

The basic approach:

StepProcess
1Calculate object distance in world space
2Determine scale factor (typically 1 / distance)
3Compute screen position via perspective projection
4Draw sprite at scaled size at the projected position

Three implementation strategies, with very different cost profiles:

  • Hardware scaling (Sega Super Scaler arcade): the chip does it; sprites can be scaled to any factor in real time, dozens or hundreds simultaneously.
  • Pre-scaled sprites: store multiple pre-rendered sizes in ROM, pick the closest match at runtime. No CPU cost, big ROM cost.
  • Software scaling: scale at runtime by skipping/duplicating pixels. CPU-intensive; quality varies.

Sega Super Scaler (the arcade peak)

Sega's Super Scaler hardware family — System 16, X Board, Y Board — had dedicated sprite scalers that could output up to 1,000+ sprites per frame, each scaled independently from 1× down to ~1/16×. The chips embedded line buffers and bilinear-style sprite scalers in silicon, making smooth scaling feel effortless on screen.

GameYearHardwareInnovation
Hang-On1985System 16Motorcycle racing — the genre-defining title
Space Harrier1985System 16"Into-the-screen" rail shooter
Out Run1986X Board (System 16 successor)Open-road driving with parallax scenery and roadside objects
After Burner1987X BoardAir combat with pitch/roll horizon
Power Drift1988Y BoardMulti-character racing with full-3D-feel cars
Galaxy Force1988Y BoardSpace combat with planet-scale scaling
G-LOC1990Y BoardFinal-generation; dual-display cabinets common

The Y Board cabinets in particular — Galaxy Force II with its hydraulic moving cockpit — were the high-water mark of Sega's sprite-scaling era.

Implementation approaches

MethodRequirementProsCons
Hardware scalingCustom arcade chipsFluid, fast, many spritesExpensive silicon
Pre-scaled spritesMultiple sprite versions in ROMZero CPU costHigh ROM cost; visible "snapping" between scale steps
Real-time softwareCPU cycles to spareSmooth, flexibleSlow on 16-bit CPUs; limits sprite count
Mode 7 (SNES BG)SNES-specificHardware rotation/scaling for one BG layerSprites not scaled by Mode 7; combine carefully

Pre-scaled sprite tables

A typical home-port approach:

Distance bucketSprite sizeFrames per ROM cost
Far horizon8×8 px1 frame
Distant16×16 px
Medium32×32 px16×
Close48×48 px36×
Very close64×64 px64×

A character with 10 animation frames × 5 distance buckets = 50 sprites in ROM. Sega home ports of Out Run sometimes spent 80% of ROM on pre-scaled sprite tables.

Mode 7 (SNES)

Mode 7 is a single rotated/scaled background layer with hardware affine transformation. Important caveat: Mode 7 scales the background, not sprites. To get scaled sprites against a Mode 7 background, you either:

  • Pre-scale sprites in software and overlay them on the Mode 7 BG (most racing games on SNES do this).
  • Use HDMA to scale per-scanline and trick the eye.

Famous Mode 7 games: F-Zero (1990), Super Mario Kart (1992), Pilotwings (1990).

Software scaling on home systems

PlatformApproachPerformance
AmigaBlitter-assisted line copy with skip/duplicateDecent for 1-2 large sprites; struggles with many
Mega DriveCPU scaling with self-modifying code unrolled per scale factorCycle-tight; Outrunners (1992) is a showcase
SNESSoftware scaling layered on Mode 7 (see above)Variable
PC (VGA)Software scaling, one of Doom's techniques for visible spritesPer-column scaling; very fast on 286/386

Limitations

ConstraintEffect
MemoryPre-scaled sprites multiply ROM cost by 5-10×
CPUReal-time scaling on 16-bit hardware can drop frame rate sharply
QualityPixelation at large sizes; visible scale-step "popping"
AnimationEach animation frame needs all scaled versions
Sprite countEven on hardware, scaling reduces total sprite budget

Decline

Sprite scaling was supplanted by texture-mapped 3D polygons starting around 1992-93:

  • Virtua Racing (1992, arcade) and Virtua Fighter (1993) — Sega's own move to polygons on Model 1.
  • Star Fox (1993, SNES Super FX) — polygons on home consoles.
  • PlayStation / Saturn / N64 launches (1994-1996) — polygons standard.

Pseudo-3D scaling stuck around in handhelds (F-Zero: Maximum Velocity on GBA) and indie retro-style games to this day, but as an aesthetic choice rather than a technical necessity.

See also