Denise 8362

Der Name "Denise" hat ähnlich mysteriöse Ursprünge wie der Name Paula und stammt von der Bezeichnung Display-Encoder (zu deutsch etwa Bild-Kodierer) ab. Während Paula für die Klangerzeugung zuständig ist, erledigt Denise den größten Teil der bei der Erzeugung von Bildern anfallenden Aufgaben. Dafür werden die Register von dem Chip mit den aktuellen Grafikdaten durch Agnus "gefüttert".

Der DENISE-Chip

Die eben beschriebene Umsetzung einer Bitmap in eine Bildschirm-Grafik ist statisch - also unbeweglich. Wenn irgendetwas an dem Bild am Monitor geändert werden soll, muss dafür die Bitmap geändert werden. Zumindest ist das bei anderen Computern der Fall. Auf dem Amiga macht Denise bestimmte Arten von Änderungen deutlich einfacher. Der Chip kennt nämlich zweierlei Arten von bewegten Grafiken. Zum einen kann der Hintergrund einer Grafik (das sogenannte Playfield) in Wirklichkeit eine sehr große Fläche, größer als der Bildschirm sein, aus dem nur ein Teil angezeigt wird. Dieser sichtbare ausschnitt kann stufenlos und schnell über dem gesamten Playfield verschoben werden. Die zweite Möglichkeit, Bewegung ins Bild zu bringen, sind die sogenannten Sprites, kleine farbige Bilder, die sich "über" dem Playfield befinden und sehr schnell, unabhängig von diesem bewegt werden können. Der Mauszeiger ist beispielsweise ein Sprite.

Zusätzlich gelangen die Daten zu einer Kollisionslogik, die die Daten auf Kollisionen untersucht und das Ergebnis in das Kollisionsregister einträgt. Denise erhält auch die aktuellen Werte der beiden Mausports.

Technische Realisierung

Im Gegensatz zu in der PC-Welt üblichen "Blockbildung" bei den Grafikdaten (die Informationen eines Pixels stehen im Speicher in direkt benachbarten Speicherstellen) sind die Daten beim Amiga in sogenannte "Bitebenen" aufgeteilt. Jede Bitebene enthält für alle Pixel der Grafik die Informationen eines bestimmten Bits. Diese Ebenen werden von Denise "übereinandergelegt" um das Endresultat zu erhalten. Die älteren Chipsätze OCS und ECS erlauben die Verwendung von bis zu 6, der AGA Chipsatz die Verwendung von bis zu 8 Bitebenen. Auf diese Weise kann man sich auf die nötige Anzahl Farben beschränken und Speicherplatz sparen.

Erläuterung zu Bitplanes

Diese Methode der Grafikerstellung hat Vor-und Nachteile. Neben dem bereits erwähnten Vorteil der Speicherersparnis kann man sehr einfach Transparenz- und Schatteneffekte erzielen. Man "reserviert" einfach eine (oder mehrere) Bitebene(n) für diese Effekte und braucht dann nur diese zu ändern. Zusammen mit einer Palettenänderung in Echtzeit kann man so recht interessante Effekte erzielen. Einer der Grafikmodi des Amigas, der Half-Brite-Modus, verwendet die sechste Bitplane um eine halbhelle Palette zu erzeugen, so kann man sehr einfach Schatteneffekte darstellen.

Zu den Nachteilen gehört natürlich der erhöhte Arbeitsaufwand - im schlimmsten Fall sind 8 Speicherstellen zu ändern um ein einziges Pixel zu ändern!

Die Bildschirmmodi

Bei den älteren OCS-Modellen von Denise sind die Bildschirmmodi noch recht überschaubar. Die Horizontale Auflösung beträgt entweder 320 oder 640 Pixel, die vertikale 200 Pixel bei NTSC- und 256 Pixel bei PAL-Bildschirmmodi. Die vertikale Auflösung kann mittels des Interlace-Modus auf 400 bzw. 512 Pixel verdoppelt werden, wobei je zwei Halbbilder abwechselnd um eine Zeile versetzt auf dem Bildschirm angezeigt werden. Dies wird jedoch mit starkem Flimmern erkauft. Denn statt der 50 Hz in PAL und 60 Hz in NTSC sind es jetzt nur noch 25 Hz bzw. 30 Hz. Dies hat mit der Ausrichtung des Amigas auf normale Fernsehgeräte und Heimcomputer-Monitore zu tun. Diese verkraften nunmal nur eine festgelegte Horizontale Ablenkfrequenz von ca. 15 Khz, womit einfach nicht genug Scanzeit beibt um ein 400 oder 512 Zeilen hohes Bild bei 50 Hz Bildwiederholfrequenz oder mehr darzustellen.

Mit der Einführung des ECS- und später des AGA-Chipsatzes wurden weitere Auflösungen möglich, die bis zu 640 x 480 bei über 70 Hz. reichen. Wegen der bereits angesprochenen Beschränkungen eines normalen Fernsehers oder Amiga-Monitors sind hier jedoch Multiscan-Monitore vonnöten, die eine Horizontale Ablenkfrequenz von 15 KHz bis über 40 KHz unterstützen.

Möchte man aber beispielsweise seinen Amiga an einen VGA-Monitor anschließen bekommt man unter Umständen Probleme. Die meisten VGA-Monitore fangen nämlich erst am 30 KHz Horizontalfrequenz an, der Amiga braucht aber einen Scanbereich bis runter auf 15 KHz. Um dieses Problem zu umgehen gibt es sogenannte Scandoubler, die meist auch einen Flickerfixer integriert haben um das lästige Interlace-Flimmern zu eliminieren. Beim Amiga 3000 war so einer standardmäßig verbaut, beim Amiga 2000 und 4000 läßt sich der Scandoubler per Steckkarte nachrüsten. Bei allen Modellen kann man aber auch einen externen Scandoubler an den Videoausgang anhängen.

Farben

OCS und ECS machen die gleichzeitig darstellbare Farbanzahl von der horizontalen Auflösung abhängig, die Farbpalette hat 4096 Farben (12 Bits pro RGB-Wert). Bei 320 Pixeln pro Zeile sind 32 Farben möglich, bei 640 Pixeln 16 Farben und bei 1280 Pixeln nur noch 4 Farben. Daneben gibt es in den 320er Modi noch die Spezialmodi HAM und Half-Brite. Halfbrite verdoppelte die Anzahl der Farben, die 32 zusätzlichen Farben entsprechen den 32 normalen, nur hatten sie nur die halbe Helligkeit. Dieser Modus wurde dem Chip hinzugefügt, da man 6 Bitebenen zur Verfügung hatte, aber nur 32 Farbregister (ausreichend für 5 Bitebenen).

Beim AGA-Chipsatz sind in allen Bildschirmmodi 256 Farben von einer Palette von 16,7 Millionen Farben einsetzbar (24 Bits pro RGB-Wert).

HAM - Hold And Modify

Der HAM-Modus ermöglicht die Darstellung von allen 4096 Farben gleichzeitig, nur gibt es hier Einschränkungen. Von 16 Grundfarben können alle anderen Farben abgeleitet werden. Von einem Pixel ausgehend werden die Farbwerte auf das rechts davon liegende Pixel kopiert. Dabei kann man entweder den Rot, Grün oder Blau-Wert verändern. Um alle drei Werte zu ändern brauchte man also 3 Pixel "Wegstrecke", außer man verwendet eine der 16 Grundfarben. Dabei entstehen leider in den unansehnlichen "HAM-Fransen." Bei geschickter Farbwahl lassen sich jedoch recht beeindruckende Grafiken erstellen.

Die Daten in den Bitplanes sind im HAM-Modus besonders kodiert. Die höchsten zwei Bits legen fest, ob die restlichen vier Bits einen Eintrag in der Grundfarbtabelle (00) oder eine Änderung eines Farbkanals (01 für die Blaukomponente, 10 für die Rotkomponente und 11 für die Grünkomponente) darstellen.

Beim AGA-Chipsatz besitzt der HAM-Modus 64 Grundfarben und kann bis zu 262144 Farben darstellen da jetzt 8 statt 6 Bitplanes zur Verfügung stehen. Die restlichen sechs Bits neben den zwei Modusbits können nicht mehr den gesamten Farbraum abdecken, also werden nur die obersten sechs Bits geändert, die unteren zwei entspechen dem Vorbild bei der Basisfarbe. Will man alle möglichen Farben abdecken, müssen die 64 Grundfarben so vorbelegt werden, daß alle 64 Kombinationsmöglichkeiten der untersten 2 Bit aller Farbkomponenten abgedeckt werden.

Modellübersicht

Name Teilenummer Bezeichnung Verwendet in
8362 R6 252126-01 Denise A500, A1000, A2000
8362 R8 252126-02 Denise A500, A2000, CDTV
8373 390433-01 ECS Hires Denise A3000, kann in älteren Amiga-Modellen nachgerüstet werden
8364 R7PL 391077-01 Lisa A1200, A4000, CD³²
Screenshots
Beispiel für den HAM-ModusNoch ein Beispiel für den HAM-ModusHalf-Brite in Action
Verwendet in