Beschreibung des VDP-Konzepts
- Vdp
- "Video D isplay P rocessor"
- Video-Controller-Chip für Kachelgrafiken, Bildlaufebenen und Genesis-Sprites. Eigentlich kein Prozessor.
- VRAM
- "Video RAM "
- RAM (RAM) wird von VDP verwendet
- Enthält Kacheln (8x8 Pixel Bilder)
- Die beiden Haupttypen von Konsolen
- NTSC-Konsolen
- Sega Genesis, 60 Hertz-Maschinen, hauptsächlich in den USA vertrieben
- Berechtigungen
- H 40- Modus - 320 x 224 Pixel ( 40 x 28 Kacheln). Der am häufigsten verwendete Auflösungsmodus
- H 32- Modus - 256 x 224 Pixel ( 32 x 28 Kacheln). Weniger beliebter Auflösungsmodus
- Unser Studio Mega Cat veröffentlicht NTSC-Spiele und nutzt diese Berechtigungen!
- PAL-Konsolen
- Sega Mega Drive, 50 Hertz-Autos weltweit verkauft
- Erlaubnis
- H 40- Modus - 320 x 240 Pixel ( 40 x 30 Kacheln). Der am häufigsten verwendete Auflösungsmodus
- H 32- Modus - 256 x 240 Pixel ( 32 x 30 Kacheln). Weniger beliebter Auflösungsmodus
Links: NTSC Model 2 Sega Genesis, rechts: PAL Model 2 Mega Drive (europäisch) 3 ebene Grafiken
2 BildlaufebenenEbene B ist die Hintergrundebene. Zeigt Kachelgrafiken mithilfe von Kachelkarten an.
Ebene A ist die Vordergrundebene. Zeigt Kachelgrafiken mithilfe von Kachelkarten an. Fenster-Unterebene - Eine Unterebene für Ebene A, deren Grafiken nicht mit dem Rest der Ebene gescrollt werden.
Jede Kachelreihe wird spaltenweise gerendert. Kacheln in jeder Ebene können Priorität haben: hoch oder niedrig.
Kacheln für Sprite im regulären Format gerendert (4x4-Kacheln)1 Sprite-FlugzeugZeichnet Sprite-Kachelgrafiken.
Innerhalb der Konsole werden Sprites in umgekehrter Reihenfolge gerendert, d. H. Jede Kachelspalte wird zeilenweise gerendert.
Sprites befinden sich im virtuellen Raum von 512 x 512 Pixel, wobei die Koordinaten (128.128) mit der oberen linken Ecke des Fernsehbildschirms übereinstimmen.
Genesis kann gleichzeitig bis zu 80 Hardware-Sprites auf dem Bildschirm anzeigen. Genesis kann ungefähr 20 Sprites in einer Rasterzeile anzeigen, wobei mehr Sprite-Überlaufprobleme auftreten und diese nicht mehr angezeigt werden.
Für Hardware-Sprites sind die Größen begrenzt (B x H), wobei W die Breite und H die Höhe ist und die Werte 1 bis 4 Kacheln annehmen.
Sprites, die größer als Hardware-Sprites sind, können mit wenigen Sprites erhalten werden.
Wie bei Flugzeugen können Kacheln für Sprites eine niedrige oder hohe Priorität haben. Sprites mit niedriger Priorität werden unter Kacheln mit hoher Priorität anderer Ebenen angezeigt. (Tatsächlich ist alles etwas komplizierter, aber im Allgemeinen lautet das Konzept wie folgt).
Kacheln für Sprite in der Konsole werden im Sprite-Format gerendert (verschoben und 4x4-Kacheln groß).Visuelle Darstellung der Priorität von EbenenebenenQuelle: Genesis Software ManualVDP CRAM ("Farb-RAM" - "Farb-RAM")
4 Palettenreihen mit jeweils 16 Farben
Jede Farbe hat eine Tiefe von 4
bpp (4 Bit pro Pixel)
Die erste Farbe ist die transparente Farbe der Kachelgrafiken
Palettenlinien können in etwas helleren oder dunkleren Farben gerendert werden, wenn
Hervorhebung oder
Schatten aktiviert sind .
Hintergründe
Sega Genesis verfügt über zwei Ebenen mit Kachelkarten: die Hintergrundebene („Ebene B“) und die Vordergrundebene („Ebene A“). Je nach Maschinentyp (NTSC oder PAL) und verwendetem Videomodus (H40 oder H32) ist eine Vollbild-Kachelkarte 32 oder 40 Kacheln breit und 28 oder 30 Kacheln hoch. Jede Kachel besteht aus einem 8x8-Pixel-Bild und jedes Pixel entspricht einem Farbindex (0-15). Genau genommen ist eine Fensterebene eine Unterebene der Ebene A; Die Grafiken werden nicht mit dem Rest von Ebene A gescrollt. Ebenen können auf viele verschiedene Arten verwendet werden, z. B. für Vorder- und Hintergrundebenen im Vollbildmodus oder für die Technik, für die viele Spiele für Sega Genesis:
Parallax Scrolling bekannt sind. Durch Scrollen einzelner Kachellinien in Ebenen mit unterschiedlichen Geschwindigkeiten können Sie die Illusion von Tiefe erzeugen. Kacheln auf Kachelkarten verschiedener Ebenen können einen Prioritätsparameter haben: hoch oder niedrig. Dieser Parameter legt fest, wo Sprites (die ebenfalls eine hohe oder niedrige Priorität haben) unter der Kachel oder darüber angezeigt werden sollen.
VSRAM (
Video S croll
RAM - Scrolling-Videospeicher)Ebenen Ebene A und Ebene B können Kachelkarten von Bildlaufebenen der Größe (wxh) enthalten, wobei w die Breite in Kacheln und h die Höhe in Kacheln ist. Jede der Größen kann nur 32, 64 oder 128 Kacheln entsprechen. Diese Bildlaufebenen "scrollen in / aus" der aktiven Bildschirmauflösung (die Größe wird durch den Maschinentyp und den H32 / H40-Modus bestimmt). Bildlaufebenen mit den Größen 128x64 / 64x128 und 128x128 sind nicht zulässig. Standardmäßig werden die VRAM-Teile an den Standard-VRAM-Adressen 0xC000 und 0xE000 als "Müllkacheln" angezeigt. Tatsächlich codiert jedoch jedes Pixel in diesen "Müllkacheln" eine VSRAM-Kachelkarte auf kompakte Weise. Der Benutzer sollte niemals echte Kacheln auf diese „Müllkacheln“ schreiben, da sonst seltsame grafische Fehler / Abstürze auftreten, Verlangsamungen auftreten oder Müllkacheln in Bildlaufebenen erscheinen. Ebenen können 1 von 3 Bildlaufmodi verwenden: nach Rasterlinie, nach Kachel oder nach Block (Abschnitte mit 2x2 Kacheln). Jede Ebene kann gleichzeitig horizontal und vertikal scrollen.
Farbe
Kacheln können jeweils nur 1 von 4 Palettenzeilen verwenden. Jede Zeile der Palette enthält 16 Farben. Die erste Farbe ist für eine transparente Farbe reserviert, die als pink (255,0,255) (RGB) empfohlen wird. Um die Integrität des Stils im Spiel zu erhalten, können 1 oder 2 Paletten für einzelne Elemente ausgewählt werden. Beispielsweise kann die Palettenzeile 1 für den Charakter eines Spielers und die Palettenzeile 2 für Benutzeroberflächenelemente verwendet werden. Sie können verschiedene Paletten verwenden, um Feinde, Hintergründe und andere sich ändernde Elemente zu zeichnen.

Für eine optimale Farbnutzung verwendet diese Palette zwei Paletten, eine für jede Ebene der Kachelkartenebene. Die ersten beiden Bilder sind separate Ebenen (Ebene B und Ebene A), und die dritte Ebene ist ein fertiges Vollbild, in dem beide Ebenen kombiniert sind. Da jede Kachel gleichzeitig indizierte Farben aus nur einer Zeile der Palette verwenden kann, können Sie mit einem solchen Bildschema mit zwei Ebenen sicherstellen, dass die Anzahl der Farben für ein Bild mit einer Ebene nicht verfügbar ist.
Es gibt zwei beliebte Techniken zum Arbeiten mit Paletten - den
zyklischen Wechsel von Paletten (Palettenwechsel) und
Rastereffekte (Rastereffekte) . Durch Ändern der Farbe bestimmter Elemente in einer separaten Zeile der Palette können Sie alle paar Frames Effekte wie einen Wasserfall, pulsierende Beleuchtung usw. implementieren.
Ein Beispiel für den Effekt des zyklischen Palettenwechsels beim Flackern von Berserker-Streifen in der Zombie Football League
Rastereffekte ersetzen alle oder einige der Farben in einer Palettenlinie nach einer bestimmten Rasterlinie. Wir werden diese Technik nicht im Detail betrachten, aber im Wesentlichen besteht sie darin, einen Teil aller CRAM-Farben zu ersetzen, nachdem der Elektronenstrahl des Fernsehgeräts einer bestimmten horizontalen Abtastlinie durchlaufen wurde. Diese Technik ist nützlich, um Palettenverschiebungen für Objekte unter Wasser zu implementieren. Insbesondere wird es für Unterwasserfarben der Labyrinthzone in
Sonic the Hedgehog verwendet .
Sprites
Sprite posiert Ashley aus Coffee CrisisSprites in Sega Genesis werden als Bilder mit einer Größe von (
B x
H ) definiert, wobei
w die Breite in Kacheln und
h die Höhe in Kacheln ist, die Werte von 1 bis 4 Kacheln annehmen können. Jedes Sprite kann jeweils nur eine Zeile der Palette verwenden. Hardware-Sprites können eine maximale Größe von 4x4-Kacheln haben. Sega Genesis kann bis zu 80 Bildschirm-Sprites verarbeiten, 20 Sprites pro Rasterzeile. Um jedoch Bremsen zu vermeiden, ist es besser, diese Grenze nicht zu erreichen. Um die Beschränkung der Größe von Hardware-Sprites zu umgehen, verwenden viele Spiele mehrere Sprites, aus denen ein Charakter / Objekt gesammelt wird. Das Prinzip beim Erstellen klassischer Pixelkunst besteht darin, eine ausreichend große Auflösung zu wählen, um die erforderlichen Details und die Lesbarkeit des Bildes zu gewährleisten, die jedoch klein genug ist, damit sie leicht animiert werden kann. Alle Sega Genesis-Kachelgrafiken sollten immer durch 8 Pixel geteilt werden, um den Kachelgrößen zu entsprechen. Sprites können horizontal ("hflip") und / oder vertikal ("vflip") gespiegelt werden und haben auch ein Flag mit hoher oder niedriger Priorität. Dieser Parameter bestimmt, ob das Sprite unter oder über den Kacheln anderer Ebenen angezeigt werden soll (die ebenfalls einen Parameter mit hoher oder niedriger Priorität haben). Hardware-Sprites können auch einen Verknüpfungswert haben. Jedes Sprite muss einen eigenen eindeutigen Linkwert haben. Dies wirkt sich unter anderem auf das Rendern aus: Sprites mit niedrigen Linkwerten werden über Sprites mit hohen Linkwerten gezogen.
Animation
Laufender gepanzerter Minotaurus-Fußballspieler von der Zombie Football LeagueIn den meisten Spielen sind die Grafiken animiert und keine einfachen statischen Sprites. Durch schrittweises Ändern der Rahmen von Sprites können Sie die Illusion von Bewegung erzeugen und sie zum Anzeigen von Gehen, Angriffen usw. verwenden. Spieledesigner für Sega Genesis mussten sich die Anzahl der Sprites und Kacheln jeder Animation merken, damit zu viele das Spiel nicht verlangsamten. Das Erstellen von Sprite-Animationen wird häufig zu einem Kompromiss zwischen dem Streben nach einer geringen Anzahl von Sprites und dem Erstellen einer überzeugenden Bewegung. Dies gilt insbesondere für Animationen auf Sega Genesis.
Unter Entwicklern von ROM-Hacks Sonic the Hedgehog ist heute eine Technik namens "Dynamic Pattern Load Cues" (DPLC) üblich. Es besteht darin, Kacheln für Sprites in VRAM im laufenden Betrieb dynamisch zu laden, anstatt alle Kacheln für Sprite-Frames gleichzeitig in VRAM zu speichern. Sehr oft nehmen detaillierte Sprites (z. B. die Sprites des Protagonisten) zu viele Kacheln in VRAM ein, die für Sprite-Frames verwendet werden. Wenn Sie nur die Kacheln in den Videospeicher laden, die für den aktuell gerenderten Sprite-Frame erforderlich sind, können Sie einen begrenzten VRAM speichern und ihn mit verschiedenen Kachelgrafiken belegen. Leider müssen die für DPLC verwendeten Kacheln im ROM entpackt werden, damit das Laden in VRAM schnell erfolgt und das Spiel nicht verlangsamt. (Das Entpacken komprimierter Grafiken verbraucht CPU-Ressourcen und nimmt zu viele Zyklen in Anspruch.) Funktionen der SGDK-Sprite-Engine (in der Header-Datei <sprite_eng.h>) verwenden normalerweise DPLC-Techniken, um nicht verwendete Kacheln auszuschneiden.

Empfohlene Debugging- und Grafiktools
Es kann schwierig sein, eine gute Software zu finden, um Retro-Grafiken zu erstellen, Pixelkunst in Kacheln aufzuteilen und die Anzahl der Farben auf 4 bpp zu reduzieren. Im Folgenden finden Sie eine Liste empfohlener Software zum Erstellen von Retro-Grafiken sowie spezielle Emulatoren, mit denen der Benutzer den Inhalt von VRAM und Flugzeugen untersuchen kann.
Grafiksoftware:- RetroGraphicsToolkit
- Ein großartiges Werkzeug, um Grafiken in Kacheln zu unterteilen, optimierte Kachelkarten zu erstellen und Bildfarben zu reduzieren
- Arbeiten Sie bei Truecolor, freier Software, Open Source
- Scripting auf Lua
- Multi-Platform Graphics Toolkit
- Sega Genesis, Sega Master System, Spielausrüstung
- NES
- Informationslinks
- Irfanview
- Allgemeine Anwendung zum Anzeigen / Bearbeiten von Bildern, Plugins und breite Unterstützung für viele Arten von Bilddateien
- Es kann Paletten bearbeiten, exportieren und importieren sowie die Anzahl der Bildfarben erhöhen / verringern und diese Anzahl anzeigen. Nützlich zum Vorbereiten von Grafikdateien für die Arbeit mit der Rescomp-SGDK-Engine
- Kostenlose und Open Source Software
- Verfügt über ein PNG-Plugin zum Ändern der Farbtiefe unter Beibehaltung der Farbreihenfolge in der Palette
- Informationslinks
- Pcxpal
- Nützliche Software, mit der Sie zwischen verschiedenen Palettenformaten konvertieren können.
- Nützlich zum Konvertieren von / in Megadrive .bin-Paletten und im Irfanview JASC-Palettenformat
- Formate importieren
- Bilder BMP, GIF, PCX
- Erhaltung von Genesis-Emulatoren: GGD, GS *, MSD
- Palettendateien Jasc, Megadrive, MS RIFF, Tile Layer Pro
- Formate exportieren
- Jasc-, Megadrive- und Tile Layer Pro-Paletten
- Informationslinks
Empfohlene spezialisierte Emulatoren für das VDP-Debugging- Tutorial zur Verwendung von Debug-Seiten im Gens-Emulator und seinen Derivaten (Gens v2.11 +)
- Gens v11a Neuaufnahme
- Eine modifizierte Version des berühmten Gens-Emulators von Stef
- Kann Ebenen wechseln und Sprite-Ebenen ersetzen
- Gens Debugger VDP Standard-Anzeigeseite
- Video in AVI aufnehmen
- Informationslinks
- Gens kmod
- Eine modifizierte Version des Gens-Emulators mit erweiterten Debugger-Fenstern. Geschrieben von KanedaFR von Spritesmind
- VRAM in Echtzeit anzeigen
- Sprites in Echtzeit anzeigen
- Flugzeuge in Echtzeit anzeigen
- Anzeigen von Echtzeit-VDP-Registern
- Schichtschalter
- Informationslinks
- Emulator Exodus
- Ein genauer Schleifensimulator zum Debuggen und Entwickeln. Erstellt von Nemesis, bekannt für ROM-Hacking von Sonic und Spritesmind. Echte Rolls-Royce-Emulations-Genesis.
- Dies kann nützlich sein, um Verzögerungen zu beheben, die nur bei realen Geräten auftreten.
- Dies kann das System erheblich belasten , und es ist eine sehr leistungsstarke Maschine erforderlich, um mit einer geeigneten Bildrate arbeiten zu können
- VDP VRAM, CRAM anzeigen
- Sprites anzeigen
- VDP-Register anzeigen
- Informationslinks
Spiele für SEGA GENESIS, die es wert sind, erkundet zu werden
Es gibt viele schöne Spiele für Sega Genesis, aus denen Sie eine Vielzahl von Techniken und Spezialeffekten lernen können. Einschließlich:
- Streets of Rage- Serie
- Sonic the Hedgehog Series
- Rastereffekte der Wasserpalette
- Sprite / Kachel-Priorität (insbesondere Loops und ein zweischichtiges Fragmentsystem in Sonic 2 und Sonic 3 / Knuckles)
- Hochleistungsfähige, schnelle und sehr hochwertige Spiel-Engine
- Sprite DPLC
- Tolles Level-Design und Grafikstile (besonders in Sonic 3 / Knuckles)
- Auswirkungen eines zyklischen Palettenwechsels
- Parallaxeeffekte
- Die Abenteuer von Batman und Robin
- Eine Reihe komplexer Grafikeffekte
- Castlevania Blutlinien
- Aladdin
- Regenwurm Jim Serie
- Phantasy Star- Serie
- Rote Zone
- 1-Bit-Schwarzweißvideo auf dem Begrüßungsbildschirm
- Software-Simulation der Rotation von Sprites und Kachelkarten!
- Isometrische Grafiken / Draufsicht
- Panorama Cotton (Jap) , Straßenrennfahrer
- Grafiken, die an SNES-Modus 7 erinnern, sehr ausgefeiltes Scrollen und Grafikeffekte
- Hard Drivin ' und Race Drivin'
- 3D, Software-Rendering von Polygongrafiken
- Zero Tolerance und Beyond Zero Tolerance (nicht freigegeben)
- Software-Raycaster, der DOOM ähnelt
- Spielzeuggeschichte
- Rasterpaletteneffekte, mit denen Sie die Anzahl der CRAM-Farben in statischen Bildschirmschonerbildern überschreiten können
- DOOM Raycaster First-Person-Level
- Parallaxeeffekte für Level 1 Level Geometrie mit Woody
- Sternenkreuzer (Jap)
- 3D, Software-Rendering von Polygongrafiken
- Gegen: Hartes Korps
- Der riesige Mini-Boss-Roboter auf der ersten Ebene ist eine Kachelkarte mit simulierter Rotation von Kachelkarten / Sprites
- Ein riesiges hausgemachtes Rollenspiel namens Pier Solar
- Tolle Grafik
- Einige Jahre von einem Team von Fans, Gurus und Homebrew-Entwicklern Genesis erstellt
- Riesige 64 MB Kassette
Beachten Sie, wie verschiedene Spiele die Hardware-Einschränkungen von Genesis verwenden und wie einige Spiele das Maximum aus Eisen herausholen. In Streets of Rage und Batman wurden die rauen städtischen Standorte hervorragend gezeigt. In Sonic-Spielen gibt es sehr helle, kontrastreiche Farben, mit denen Sie die Umgebung trotz der hohen Geschwindigkeit von Sonic erkennen können. Aladdin und Earthworm Jim haben flüssige und lustige Animationen, die Charaktercharaktere betonen.
Referenzen und zusätzliche Lektüre