A Look At The Nintendo’s Off-Screen Sprite Rendering Glitches
And the inspiration I used to build Pixel Vision 8’s rendering limitations
While I was capturing some game footage from Zelda II, I noticed a strange little glitch. I was in a tunnel while fighting an ax-wielding red Daira, and part of a slime flickered on the left of the screen. When I moved forward, I saw there was, in fact, a slim just off the screen.
So, why did this happen?
Nintendo’s PPU
During my research on the Nintendo PPU, picture processing unit, I learned a lot about scanline rendering in addition to what made sprites wrap around the screen. This happened when a sprite’s X
position went past 255. While most players would consider this a software bug, it was a significant limitation in the NES renderer that developers had to deal with.
If you think about it, the NES is an 8-bit system. That means the X
and Y
position of any sprite on the screen can only go from 0–255. Today, we would use an unsigned integer to represent this. When you try to add 1 to an 8-bit value set to 255, it loops around back to 0…