Nine Explained
; X is $70
nop ; 13 bit 0 ; 13 bit 0 ; 13 sta $d011 ; 15 sta $d011 ; 16 sta $d011-$70,x ; 16 nop ; 19 nop ; 20 sta $d021-$70,x ; 21 sta $d021 ; 22 sta $d021-$70,x ; 21 sty $d021 ; 26 sty $d021 ; 26 sty $d021 ; 26 stx $d021 ; 30 stx $d021 ; 30 stx $d021 ; 30 stx $d011 ; 34 stx $d011 ; 34 stx $d011 ; 34
- Swedish content
Site search:
Nine Explained
In this video and accompanying article I reveal how the seemingly impossible effect in Nine was pulled off.
The original Commodore 64 demo, in case you missed it, is available here.
And this is how it was done:
Going deeper
In the explanation video I rush past a number of things in order to get to the point quickly. The following is an attempt to clarify and provide more in-depth technical information for interested readers.
At the end I've also included some philosophical musings that didn't make it into the video.
Sprite DMA timing
I mention sprite DMA timing a couple of times, and the need to stabilize it. What does that mean?
DMA stands for Direct Memory Access. On every rasterline, up to eight sprites may be enabled, and the video chip fetches the pixels for these sprites by momentarily pausing the CPU in order