In old NES games, why would graphical glitches cause graphics to turn into numbers?

905 views

It doesn’t happen often but I’ve seen it a few times. Why would NES graphics turn into numbers when they glitch out?

In: Technology

4 Answers

Anonymous 0 Comments

The video rendering chip has its own memory, consisting mainly of a big table of images stored as small rectangles (aka tiles) and then all things – objects, characters, and the background and foreground – are assembled by clipping together the tiles into a grid. This simplifies controlling what’s on screen for the game since the NES CPU is slow – around 1.7 megahertz.

A common need is for numbers and text for scores, number of lives, whatever so a big chunk of those tiles are probably letters and numbers. While normally tiles are swapped in an out as needed (eg: enemies that do or don’t appear in an area will be moved in or out of the video memory), those letters and numbers are usually kept around all the time for convenience, just in case. No point in swapping in the number ‘8’ when a player with 7 lines gets a 1-up.

So all those letters/numbers are already loaded into video memory, just waiting for a glitchy accident to instruct the video chip to draw them all over the place.

The numbers aren’t intentional per se. The data indicating what to draw for the sprites and backgrounds got corrupted and now indicate the tiles that contain numbers.

Anonymous 0 Comments

NES graphics were stored in memory tables, and the program code contained very simple instructions on how to index into the table and pull out the right graphic.

If the program bugged out, it would start looking at improper places in the table, and pulling out whatever it found — programs can only do exactly what they’re told, and if you give them bad input, they’ll give you bad output.

In some cases, this causes the game to pull too many numbers out, and draw too many symbols — and it will faithfully pull and draw until it finishes.

[This video](https://youtu.be/NKKfW8X9uYk) does a really good job of explaining the Pac-Man “kill screen,” the glitchy mess that occurs when level 256 overflows the level symbol drawing subroutine.

Anonymous 0 Comments

It’s because the glitch overwrites a memory pointer and graphics are stored at specific memory locations as a”Sprite sheet” which has all the graphics at specific location offsets. Think of a chess board with a graphic in each square. They are usually referenced using math offsets, and some squares are larger or smaller (text). When the pointer or variable is overwritten, like for example the start position of the image, or the Y axis, then you end up getting the wrong part of the image. There are literally thousands of ways a glitch can happen, or what it does, but in this instance it broke the image reference.

Anonymous 0 Comments

The NES pretty much draws everything by using sets of rectangular stamps. When the instructions become corrupt, the NES starts fetching the stamps at random, so you get numbers stamped on top of Mario’s face and letters replacing Cheep Cheep’s butt, and so on.