HDMA

aus RHWiki, der freien Romhacking-Enzyklopädie

HDMA

HDMA (Horizontal DMA, Direct Memory Access) ist eine spezielle, von wenigen Grafikprozessoren unterstützte Technik, die unter anderem beim SNES populär war (und es, unter ROM-Hackern, noch ist). Das SNES unterstützt 8 HDMA-Kanäle, von denen jeder je nach Betriebsmodus bis zu vier aufeinanderfolgende PPU-Register setzen kann. Beim Setup wird jedem benutzten HDMA-Kanal eine im RAM des SNES liegende Tabelle zugeordnet, welche je nach HDMA-Modus (direkt oder indirekt) anders formatiert ist.

Die Besonderheit der HDMA liegt darin, dass sie im Gegensatz zur klassischen DMA die PPU-Register nicht nur einmal pro Frame, sondern nach jeder gerenderten Scanline neu setzen kann, sodass man damit Effekte erzielen kann, die vermeintlich die grafischen Einschränkungen der SNES-PPU überschreiten (etwa hochauflösende Farbverläufe mit mehr als 4 Farben in einer 2-Bit-8x8-Kachel oder auch wellenartige Effekte).

Oftmals verwendet wurde die HDMA ebenfalls mit dem Mode 7 des SNES, welcher nur einen Layer unterstützt, sodass das Einblenden von On-Screen-Menüs, Karten und ähnlichem unmöglich erscheint. Neben der Verwendung von Sprites zu diesen Zwecken wurde besagtes Problem oftmals dadurch gelöst, dass per HDMA der Bildschirmmodus im Frame umgeschaltet wurde, sodass die obere Hälfte des Bildes (ggf. mit flächiger Himmelstextur) sämtliche einzublendenden Menüs enthielt, während die untere Hälfte tatsächlich in Mode 7 die jeweilige Bodentextur darstellte.

Bilder

Bild:sd3hdma.png

Bildschirmmodus-Umschaltung im Frame mittels HDMA in Seiken Densetsu 3.

Bild:yihdma.png

HDMA-gestützter Farbverlauf als Hintergrund in Yoshi's Island.

Siehe auch

'Persönliche Werkzeuge