VSP
Variable Screen Positioning, or HSP, or DMA delay, or Wanker
A C64 trick that shifts the whole screen horizontally by deliberately delaying the VIC-II's DMA. It has at least four names, none of them agreed, and it can crash real hardware.
VSP shifts the entire C64 screen sideways by deliberately delaying the VIC-II’s DMA fetch, so the chip starts drawing each line from a different point in memory.
It does not have a name
⚠ This is one technique with at least four names, and the scene has never settled on one. Codebase64’s own page for it is titled:
Horizontal Screen Positioning (HSP) aka Wanker aka DMA-Delay
while the world-firsts page calls the same thing VSP — Variable Screen Positioning, and the VIC-II hardware documentation files it under 3.14.6. DMA delay. A 2008 CSDb thread argued for HSP/DMA Delay.
The names are not synonyms in origin. “DMA delay” describes the mechanism, “HSP” and “VSP” describe the result, and “Wanker” is scene vernacular that stuck. Which one a source uses is a reasonable clue to where and when it was written.
This entry files it under VSP because that is the name the first release used.
Who did it first
JCB/Meanteam, in a release called VSP&IK+, on 30 October 1987. The production is named after the trick.
A year later Exilon/MDT/Horizon’s Bonanza (November 1988) combined it with linecrunch, giving movement on both axes — the combination later formalised as AGSP, Any Given Screen Positioning.
It needs a stable raster underneath
VSP is not a standalone effect. The AGSP implementation “uses VSP (Variable Screen Positioning) (DMA delay) with a stable raster plus a line crunch”. Without cycle-exact timing the delay lands in the wrong place and the screen tears.
The published demonstration code is by Martin Piper, and is PAL-only: “to make it work for NTSC you have to do some minor timing modifications for each scan-line.”
See also
- Linecrunch — the vertical half of AGSP
- Stable raster — the prerequisite
- FLD — the forgiving vertical trick