Fortgeschrittene Nutzung von Copper und Denise auf dem Amiga 500: Farben, Sprites und verborgene Leistung

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

Von Gallica

Eine technische Reise ins Herz der Amiga 500-Hardware, um zu verstehen, wie der Denise-Chip und der Copper weit mehr als 32 Farben oder 8 Sprites anzeigen können und alle grafischen Grenzen der Maschine verschieben.

I. Das grafische Herz des Amiga: Denise & der Copper

  • Denise ist der Hauptvideoprozessor: Er verwaltet die Bitplanes (bis zu 6 beim A500), das Multiplexen der Hardware-Sprites (8 gleichzeitig pro Zeile), die Priorisierung, das Scrollen und die finale Bildkomposition.
  • Copper (Co-Prozessor „Video-Co-Prozessor“ integriert in Agnus): Er läuft parallel zur CPU. Sein Zweck: Zu bestimmten Zeitpunkten der Bildgenerierung (pro „Raster“) in die Register des Chipsets zu schreiben, um Farben, Videomodi, Bitplane-Adressen usw. dynamisch zu ändern.

Schlüssel zur Amiga-Leistung: Bei jeder Scanline oder sogar jedem Pixel kann der Copper die Palette ändern, den Modus wechseln, Interrupts auslösen… und bietet so eine nahezu unbegrenzte Ausdruckskraft mit einer langsamen CPU.

Shadow of the beast - 128 Farben auf dem Bildschirm
Shadow of the beast – 128 Farben auf dem Bildschirm dank der Nutzung des Copper

II. Mehr Farben auf dem Bildschirm: Copper-Tricks & geteilte Palette

1. Funktionsweise der Palette bei Denise

Im Standardmodus mit 5 Bitplanes (32 gleichzeitig angezeigte Farben aus 4096) zeigt Denise das Bild im RAM anhand eines Index in einer Tabelle mit 32 Farben („Color00“ bis „Color31“) an.
Normale Grenze: Jeder Pixel kann 1 Farbe aus 32 referenzieren.
Aber…

Lire aussi  Vergleich der besten FPGA-Karten für die Emulation: Leistung, Preis und Kompatibilität

2. Nutzung des Copper für das „Raster Color Changing“

  • Der Copper kann eine Liste von Befehlen („Copperlist“) ausführen, die mit dem Bildschirm-Scan (dem Rasterstrahl) synchronisiert sind.
  • Bei jeder Scanline (oder sogar jedem Linienabschnitt) kann er die Farbregister ($DFF180 bis $DFF1BE) neu schreiben.
  • Folge: Dieselbe „Color 01“ zeigt oben, in der Mitte oder unten unterschiedliche Farbtöne an.
  • Wenn man die gesamte oder einen Teil der Palette bei jeder Linie ändert, kann jeder horizontale Streifen des Bildschirms eigene Farben haben.

Beispiel: Wenn man alle 4 Linien 16 Farben ändert auf einem Bildschirm mit 256 Linien, kann man hunderte echte Farben anzeigen („Regenbogeneffekt“, Farbverläufe, „Himmelverläufe“ in Shadow of the Beast oder Lionheart).

Jim Power auf Amiga 500 mit mehr als 100 Farben auf dem Bildschirm
Jim Power auf Amiga 500 mit mehr als 100 Farben auf dem Bildschirm

3. „Copperbars“ und Rastereffekte

  • Die Palette alle x Linien zu ändern = Farbige Balken („Copperbars“, klassische Demo-Effekte)
  • Dynamisches Ändern der Palette basierend auf einer vorab berechneten Tabelle = „Feuer“-Effekte, Plasma, Regenbogenverläufe (State of the Art, Arte…)
  • Man kann Copper mit dem Blitter kombinieren für Verzerrungs- oder animierte Split-Screen-Effekte (Beispiel: Himmelverläufe in Agony, Enigma)

4. HAM-Modus (Hold-And-Modify) und Copper

  • Der HAM-Modus erlaubt 4096 Farben gleichzeitig (begrenzt durch Artefakte).
  • Man kann Copper kombinieren, um die Bit-Reihenfolge oder die „Basis“-Paletten on-the-fly zu ändern (fortgeschrittene Tricks von Demomachern).

5. Beispiel einer 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)
    

Dieser Code ändert die Farbe Nr. 1 an drei verschiedenen vertikalen Stellen, um rote, grüne und blaue Streifen anzuzeigen.

III. Die Grenze von 8 Hardware-Sprites überschreiten: Multiplexing und Tricks

1. Offizielle Grenze

Denise verwaltet 8 Hardware-Sprites pro Zeile, jeweils bis zu 16×256 px (4-Farben-Modus, Kopplung möglich für 16 Farben, aber weniger Sprites).

Lire aussi  Kein HDMI-Signal auf externem Bildschirm (PC/Laptop)

2. Multiplexing-Techniken

  • Sprite-Adressänderung „im Flug“ (via Copper oder Interrupt): Wenn der Raster fertig ist, einen Sprite in einer Zeile anzuzeigen, schreibt der Copper seine Adresse neu, um ein anderes Bild weiter unten in einer anderen Zeile anzuzeigen („Sprite-Multiplexing“ à la C64, aber hardwareseitig auf Amiga!).
  • Blitter-Objekte: Zusätzlich zu den 8 Sprites kann der Blitter Grafiken on-the-fly in die Bitplanes kopieren und so Soft-Sprites mit sehr geringem CPU-Aufwand simulieren (verwendet in Ruff’n’Tumble, Uridium 2, Agony…)
  • Animierte Bitplanes: Einige Spiele nutzen ganze Bitplanes, um „große“ Sprites oder Effekte zu simulieren (Wolken in Shadow of the Beast, Bosse in Lionheart…)

Konkretes Beispiel: In Agony dient der Copper zum Multiplexen der Sprites, um 16 verschiedene Vögel anzuzeigen, der Blitter kopiert die Schüsse, und die Split-Palette belebt den Hintergrund.

Turrican 3 Amiga 500
Für Turrican 3 waren große Sprites kein Problem

3. Priorität und Tricks zur Vermeidung von Konflikten

  • Gute Planung des „Sprite-Slots“, damit Gegner und Schüsse nie auf derselben vertikalen Linie erscheinen (oder Verwendung von „geschnittenen“/multiplexen Sprites via Copperlist).
  • Sprites werden auch für HUD, Effekte, Overlay verwendet, nicht nur für das Gameplay.
  • Im EHB-Modus (Extra Half-Brite) simulieren einige Spiele noch mehr Farben für Sprites durch Duplizierung und automatische Abdunkelung.

IV. Demos und ikonische Spiele: Was Copper und Denise möglich machen

  • Shadow of the Beast: Himmelverläufe mit Copper, multiplexte Sprites für Gegner, Parallax auf 12 Ebenen dank Copperlist
  • Lionheart: Copper für Split-Paletten (Himmel, Dekor, getrennte Sprites), dynamische Bitplanes, riesige Bosse simuliert in Bitplane/Blitter-Objekten
  • State of the Art: animierte Copperbars, Echtzeit-Video mit Palettewechsel pro Scanline (über 600 Farben auf dem Bildschirm angezeigt)
  • Demo „Enigma“ (Phenomena): Plasma, Rasterbalken, Himmelverläufe, Copper verwendet zum „Flackern“ von Lichteffekten, Überschreitung der 256 Farben
  • Kid Chaos: dynamischer Hintergrund, multiplexte Sprites, HUD als Overlay über Sprite

Bemerkenswerte technische Leistung: Auf dem Amiga 500 überschreiten aktuelle Demos 1000 sichtbare Farben durch Copper + Palettewechsel in Echtzeit, mit 8 multiplexten Sprites, um Effekte zu erzeugen, die auf 16-Bit-Konsolen nie zuvor gesehen wurden.

Lionheart, des couleurs à la pelle
Lionheart auf dem Amiga 500, eines der ersten Spiele, das mehr als 128 Farben auf dem Bildschirm anzeigt

V. Codes, Tipps und Ressourcen für Fortgeschrittene

Lire aussi  Fehlercode 43: Vollständiger Leitfaden für ein nicht erkanntes USB-Gerät

Fazit

Der Amiga 500 ist dank Denise und Copper in der Lage, weit mehr als seine offiziellen Spezifikationen anzuzeigen. Durch cycle-accurate Programmierung, fortgeschrittene Copperlists und Multiplexing kann er in vielerlei Hinsicht mit der Megadrive/SNES konkurrieren – und sie manchmal sogar übertreffen.
Die wahre Grenze ist nicht die Hardware: Es ist die Kreativität des Programmierers. Die Demoszene hat dies bewiesen, und moderne Werkzeuge ermöglichen es jedem, davon zu profitieren.

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.

Schreibe einen Kommentar