The current URL is datacrystal.tcrf.net.
HDMA: Difference between revisions
m (fixed links by directing them to Fullsnes) |
m (added some wikipedia links) |
||
Line 4: | Line 4: | ||
The SNES supports 8 HDMA channels of which each can set, depending on the respective mode, up to four subsequent [https://problemkaputt.de/fullsnes.htm#snesdmatransfers PPU registers]. When setting it up, each HDMA channel is assigned a table located in the SNES' [https://problemkaputt.de/fullsnes.htm#snesmemory RAM], which is formatted depending on the used mode. | The SNES supports 8 HDMA channels of which each can set, depending on the respective mode, up to four subsequent [https://problemkaputt.de/fullsnes.htm#snesdmatransfers PPU registers]. When setting it up, each HDMA channel is assigned a table located in the SNES' [https://problemkaputt.de/fullsnes.htm#snesmemory RAM], which is formatted depending on the used mode. | ||
Just like "classic" DMA, HDMA serves quick uploading of data to [https://problemkaputt.de/fullsnes.htm#snespictureprocessingunitppu PPU] registers; its advantage, though, lies within being capable of uploading data to PPU registers once per drawn [[scanline]] rather than once per | Just like "classic" DMA, HDMA serves quick uploading of data to [https://problemkaputt.de/fullsnes.htm#snespictureprocessingunitppu PPU] registers; its advantage, though, lies within being capable of uploading data to PPU registers once per drawn [[Wikipedia:Scan_line|scanline]] rather than once per frame. This allows the creation of effects that seem to bypass the graphical limitation of the SNES' PPU, like high-resolution gradients with more than four distinct colours in a 2 bitplane 8x8 tile or shifting effects like a sinusoidal vibration. | ||
HDMA also is frequently used along with the [[SNES:Mode 7|Mode7]] of the SNES, which supports only one tile layer, so the display of on screen menus, maps or similar things seems impossible. Along with usage of sprites for besaid purposes, that issue often was solved by switching the [[screenmode]] mid-frame, so the upper halfter of the picture contained everything that required being displayed with multiple planes along with a planar rendered sky background, whilst the lower half of the screen actually is rendered in Mode 7. | HDMA also is frequently used along with the [[SNES:Mode 7|Mode7]] of the SNES, which supports only one tile layer, so the display of on screen menus, maps or similar things seems impossible. Along with usage of sprites for besaid purposes, that issue often was solved by switching the [[Wikipedia:Super_Nintendo_Entertainment_System#Video|screenmode]] mid-frame, so the upper halfter of the picture contained everything that required being displayed with multiple planes along with a planar rendered sky background, whilst the lower half of the screen actually is rendered in Mode 7. | ||
== Pictures == | == Pictures == |
Revision as of 03:12, 23 October 2018
HDMA
HDMA (Horizontal DMA, Direct Memory Access) is a special technology supported by some few graphics processors which was rather popular especially for the SNES (and, amongst ROM hackers, still is). The SNES supports 8 HDMA channels of which each can set, depending on the respective mode, up to four subsequent PPU registers. When setting it up, each HDMA channel is assigned a table located in the SNES' RAM, which is formatted depending on the used mode.
Just like "classic" DMA, HDMA serves quick uploading of data to PPU registers; its advantage, though, lies within being capable of uploading data to PPU registers once per drawn scanline rather than once per frame. This allows the creation of effects that seem to bypass the graphical limitation of the SNES' PPU, like high-resolution gradients with more than four distinct colours in a 2 bitplane 8x8 tile or shifting effects like a sinusoidal vibration.
HDMA also is frequently used along with the Mode7 of the SNES, which supports only one tile layer, so the display of on screen menus, maps or similar things seems impossible. Along with usage of sprites for besaid purposes, that issue often was solved by switching the screenmode mid-frame, so the upper halfter of the picture contained everything that required being displayed with multiple planes along with a planar rendered sky background, whilst the lower half of the screen actually is rendered in Mode 7.
Pictures
Mid-frame screenmode swapping using HDMA in Seiken Densetsu 3.
HDMA-based gradient background in Yoshi's Island.