Saltar al contenido
[ Suscribirse ]
[ Glosario ]

Sprite scaling: Sega ya lo hacía en 1981, cuatro años antes de «Super Scaler»

Escalar sprites planos fue la forma de fingir profundidad antes del 3D poligonal. La etiqueta que todo el mundo usa nombra unas placas de Sega, no la técnica —y llegó cuatro años tarde.

Redacción ItzLambo

Publicado 26/07/2026, 13:27 · 3 min de lectura

Compartir en WhatsApp Compartir en Facebook Compartir en Bluesky Compartir en X
Imagen: ItzLambo

El sprite scaling es la capacidad del hardware de vídeo de dibujar una imagen plana guardada en ROM a cualquier tamaño sobre la marcha, repitiendo o descartando filas y columnas de píxeles mientras el haz pinta la pantalla. No calcula geometría: recibe un número de zoom por objeto y por cuadro, y el tamaño resultante es toda la profundidad. En la documentación de MAME sobre los sprites de Out Run ese número ocupa once bits, con una referencia literal: «0x200 = full size, 0x100 = half size, 0x300 = 2x size».

«Super Scaler» era el nombre de unas placas

Sega lo usó para su familia de placas de 1985 en adelante —Hang-On, Out Run, las X e Y Board—, no para la técnica. Y tampoco es su origen. Sega ya escalaba sprites por hardware en 1981, en la placa de Turbo que MAME cataloga como «Sega Z80-3D system»: el ancho de cada sprite salía de un oscilador controlado por tensión, el juego escribía un valor en un conversor digital-analógico y esa frecuencia marcaba a qué ritmo se consumían los píxeles de origen; la reducción vertical la resolvía una PROM de consulta. Escalar fue analógico antes que digital, y la etiqueta llegó cuatro años tarde, como el «blast processing».

Y Yu Suzuki se lo encontró puesto

El nombre que acompaña siempre a la técnica es el suyo. Conviene leer lo que dijo él. En BEEP, en febrero de 1986, Suzuki describe su papel en Space Harrier sin adornos: «La idea original salió de un documento de planificación que creó otro desarrollador de Sega. Mi trabajo principal era coordinar…». Y en otra de la misma recopilación trata el escalado como límite, no como logro: «las funciones de sprites (zoom, escalado, etc.) y la memoria gráfica eran muy limitadas por entonces». De esa restricción salió el protagonista humano: un caza pedía 64 fotogramas de animación; una persona volando, cinco o seis.

Ni es Mode 7 ni está olvidado

Escalar no es rotar. El Mode 7 del Super Nintendo transforma una capa de fondo y deja los sprites fuera; el escalado de Sega cambia de tamaño objetos sueltos y no los gira ni un grado. La rotación llegó tarde y aparte: la Y Board de 1988 añadió una etapa que giraba la escena entera, con tres multiplicadores y tres divisores por hardware. Los polígonos tardaron más, y ahí tampoco Virtua Fighter fue el primer 3D de Sega.

Lo que desapareció no es la técnica, es el chip. En 1993 Doom lo hacía en software para cada enemigo, dividiendo una constante de proyección entre la distancia —xscale = FixedDiv(projection, tz), en el código que id Software liberó—, y hoy cualquier motor 2D lo hace gratis: una GPU trata un sprite como un rectángulo con textura. Lo caro fue hacerlo en 1985, a 320×224 y sesenta cuadros por segundo, con la tabla llena: 128 entradas en Hang-On, 256 en Space Harrier y en Out Run.

[ Fuentes ]

  1. sega16sp.cpp — Sega 16-bit sprite hardware: formato de los sprites de Hang-On, Space Harrier, System 16A/16B, Out Run/X-Board y Y-Board, con los campos de zoom («0x200 = full size, 0x100 = half size, 0x300 = 2x size») · MAME (mamedev)
  2. turbo_v.cpp — hardware de vídeo de Turbo (1981): sprite_xscale calcula el paso horizontal desde la frecuencia de un VCO gobernado por un DAC; la reducción vertical sale de la PROM PR1119 · MAME (mamedev)
  3. segahang.cpp — driver de Hang-On y Space Harrier (Sega, 1985): RAM de sprites de 0x800 bytes en Hang-On y 0x1000 en Space Harrier (16 bytes por entrada), y pantalla de 320×224 · MAME (mamedev)
  4. segaorun.cpp — notas de la PCB de Out Run: RAM de sprites de 0x1000 bytes, VSync medido de 60,0543 Hz y HSync de 15,6740 kHz · MAME (mamedev)
  5. segaic16.cpp — inventario de chips de la Y Board (1988): tres multiplicadores 315-5248 y tres divisores 315-5249, y la etapa de rotación ROTATE_YBOARD · MAME (mamedev)
  6. Space Harrier – Developer Interview Collection: entrevista a Yu Suzuki en BEEP 2/86 («mi trabajo principal era coordinar…») y entrevista posterior sobre los límites de zoom y escalado de los sprites · shmuplations (traducción de BEEP y otras revistas japonesas) · 1986-02-01
  7. r_things.c — código liberado de DOOM (1993): «xscale = FixedDiv(projection, tz)», el escalado de sprites por distancia hecho en software · id Software
El semanal

Lo que importó de verdad

Un correo por semana con las 5 noticias que mueven la industria y el mejor video vertical. Nada de refritos de notas de prensa.

Doble opt-in · Sin spam · Sin pop-ups en todo el sitio

[ Síguenos donde leas ]

Sin algoritmo que decida por ti: el correo y el RSS llegan enteros. En las redes publicamos los cortes.

En redes