Explotaciones avanzadas del Copper y Denise en Amiga 500: colores, sprites y potencia oculta

Evaluez cet article !
[Total: 0 Moyenne : 0]

Por Gallica

Un viaje técnico al corazón del hardware Amiga 500, para entender cómo el chip Denise y el Copper permiten mostrar mucho más que 32 colores o 8 sprites, y superan todos los límites gráficos de la máquina.

I. El corazón gráfico del Amiga: Denise & el Copper

  • Denise es el chip de video principal: gestiona los bitplanes (hasta 6 en A500), el multiplexado de sprites hardware (8 simultáneos por línea), la priorización, los scrollings y la composición final de la imagen.
  • Copper (coprocesador “coprocesador de video” integrado en Agnus): se ejecuta en paralelo con la CPU. Su objetivo: escribir, en momentos precisos de la generación de la imagen (por “raster”), en los registros del chipset, para modificar al vuelo los colores, los modos de video, las direcciones de bitplane, etc.

Clave de la potencia Amiga: en cada scanline, o incluso pixel, el Copper puede modificar la paleta, cambiar de modo, disparar interrupciones… ofreciendo así una expresividad casi ilimitada con una CPU lenta.

Shadow of the beast - 128 colores en pantalla
Shadow of the beast – 128 colores en pantalla gracias al aprovechamiento del Copper

II. Multiplicar los colores en pantalla: trucos del Copper & paleta dividida

1. Funcionamiento de la paleta en Denise

En modo estándar 5 bitplanes (32 colores simultáneos entre 4096), Denise muestra la imagen en RAM según un índice en una tabla de 32 colores (“Color00” a “Color31”).
Límite normal: cada píxel puede referenciar 1 color entre 32.
Pero…

Lire aussi  El Amiga 500: la consola asesina que nunca tuvo su oportunidad

2. Aprovechamiento del Copper para el “cambio de color raster”

  • El Copper puede ejecutar una lista de instrucciones (“Copperlist”) sincronizadas con el barrido de la pantalla (el haz raster).
  • En cada scanline (o incluso cada porción de línea), puede reescribir los registros de colores ($DFF180 a $DFF1BE).
  • Consecuencia: el mismo “Color 01” mostrará un tono diferente arriba, en medio, abajo…
  • Si se cambia la totalidad o parte de la paleta cada línea, cada banda horizontal de la pantalla puede tener sus propios colores.

Ejemplo: cambiando 16 colores cada 4 líneas en una pantalla de 256 líneas, se pueden mostrar cientos de colores reales (“efecto arcoíris”, degradados, “gradientes de cielo” en Shadow of the Beast o Lionheart).

Jim Power en Amiga 500 con más de 100 colores en pantalla
Jim Power en Amiga 500 con más de 100 colores en pantalla

3. “Copperbars” y efectos raster

  • Cambiar la paleta cada x líneas = barras de color (“copperbars” clásicas de las demos)
  • Cambiar dinámicamente la paleta según una tabla precalculada = efectos “fuego”, plasma, degradados arcoíris (State of the Art, Arte…)
  • Se puede combinar el copper con el blitter para efectos de distorsión o de pantalla dividida animada (ejemplo: degradados de cielo en Agony, Enigma)

4. Modo HAM (Hold-And-Modify) y Copper

  • El modo HAM permite 4096 colores simultáneos (limitado por artefactos).
  • Se puede combinar con copper para cambiar el orden de los bits o las paletas “base” al vuelo (trucos avanzados de demomaker).

5. Ejemplo de copperlist


CWAIT   $2C, $20      ; Attend la ligne 44, colonne 32
CMOVE   COLOR01, $F00 ; Change la couleur 1 (rouge)
CWAIT   $34, $20
CMOVE   COLOR01, $0F0 ; Change la couleur 1 (vert)
CWAIT   $3C, $20
CMOVE   COLOR01, $00F ; Change la couleur 1 (bleu)
    

Este código cambia el color n.º 1 en tres lugares verticales diferentes para mostrar bandas rojas, verdes y azules.

Lire aussi  Sin señal HDMI en pantalla externa (PC/portátil)

III. Superar el límite de 8 sprites hardware: multiplexación y trucos

1. Límite oficial

Denise gestiona 8 sprites hardware por línea, cada uno hasta 16×256 px (modo 4 colores, posible emparejamiento para 16 colores pero menos sprites).

2. Técnicas de multiplexación

  • Cambio de dirección de sprite “en vuelo” (vía Copper o interrupción): cuando el raster termina de mostrar un sprite en una línea, el Copper reescribe su dirección para mostrar otra imagen más abajo, en otra línea (“sprite multiplexing” al estilo C64, ¡pero en hardware en Amiga!).
  • Blitter objects: además de los 8 sprites, el blitter puede copiar gráficos al vuelo en los bitplanes, simulando sprites por software con muy bajo coste de CPU (usado en Ruff’n’Tumble, Uridium 2, Agony…)
  • Bitplanes animados: algunos juegos usan bitplanes enteros para simular “sprites grandes” o efectos (nubes en Shadow of the Beast, jefes en Lionheart…)

Ejemplo concreto: en Agony, el Copper sirve para multiplexar los sprites y mostrar 16 pájaros diferentes, el blitter copia los disparos, y la paleta dividida dinamiza el fondo.

Turrican 3 Amiga 500
Para Turrican 3, los sprites grandes no eran un problema

3. Prioridad y trucos para evitar conflictos

  • Buena planificación del “slot de sprite” para que enemigos y disparos nunca aparezcan en la misma línea vertical (o uso de sprites “recortados”/multiplexados vía Copperlist).
  • Sprites usados también para HUD, efectos, overlay, no solo para el gameplay.
  • En modo EHB (Extra Half-Brite), algunos juegos simulan aún más colores para los sprites mediante duplicación y atenuación automática.

IV. Demos y juegos emblemáticos: lo que Copper y Denise hacen posible

  • Shadow of the Beast: degradados de cielo con copper, sprites multiplexados para enemigos, paralaje en 12 planos gracias a la copperlist
  • Lionheart: copper para dividir paletas (cielo, decorados, sprites separados), bitplanes dinámicos, jefes gigantes simulados en bitplane/objetos blitter
  • State of the Art: barras de copper animadas, vídeo en tiempo real con cambio de paleta en cada scanline (más de 600 colores mostrados en pantalla)
  • Demo “Enigma” (Phenomena): plasma, barras raster, gradientes de cielo, copper usado para “parpadear” efectos de luz, superando las 256 colores
  • Kid Chaos: fondo dinámico, sprites multiplexados, HUD en overlay vía sprite

Hecho técnico destacado: en Amiga 500, demos recientes superan 1000 colores visibles mediante copper + cambios de paleta al vuelo, con 8 sprites multiplexados para crear efectos nunca vistos en consolas de 16 bits.

Lionheart, des couleurs à la pelle
Lionheart en Amiga 500, uno de los primeros juegos en mostrar más de 128 colores en pantalla

V. Códigos, trucos y recursos para profundizar

Lire aussi  Código de error 43: Guía completa para un dispositivo USB no reconocido

Conclusión

El Amiga 500, a través de Denise y el Copper, es capaz de mostrar mucho más que sus especificaciones oficiales. Gracias a la programación cycle-accurate, listas de copper avanzadas y multiplexado, rivaliza con la Megadrive/SNES en muchos aspectos – y a veces las supera.
El verdadero límite no es el hardware: es la creatividad del programador. La escena demo lo ha demostrado, y las herramientas modernas permiten a todos aprovecharlo.

Evaluez cet article !
[Total: 0 Moyenne : 0]
Julie - auteure Com-Strategie.fr

Julie – Auteure & Fondatrice

Étudiante en journalisme et passionnée de technologie, Julie partage ses découvertes autour de l’IA, du SEO et du marketing digital. Sa mission : rendre la veille technologique accessible et proposer des tutoriels pratiques pour le quotidien numérique.

Deja un comentario