Why when Gameboy or NES games glitch, there is often a buzzing or “screeching” sound?


I heard it was that it is trying to read non sound bytes as sound, but im not sure how accurate that is.

In: 4

If you mean that repeating sound that won’t stop until the glitch is resolved that’s usually because the sound that was playing when it happened gets stuck in a loop.

The sound in old consoles is generally controlled by the CPU that’s also responsible for running all other code of the game. So if the game glitches then that effects that sound. In the best case the parallelisation of sound and game code remains intact and the sound plays as normal while the rest of the game glitches out. But often the sound computation is affected as well, and if it starts reading data that’s not intended for sound production then that’s for all intents and purposes random data. Random data results in white noise. Finally it’s also possible for the game to just not update the sound anymore, in which case you hear a constant tone.

I’d say it’s 90% inaccurate. NES has 5 sound channels. Out of those, 4 cannot read any data from memory, they rely on CPU to tell them what to do. Also, reading non-sound data doesn’t sound like buzzing or screeching, it sounds more like radio static.

On NES, the sound chip behaves differently from modern computers. It doesn’t play recorded sound, instead it plays notes on 4 “instruments”. The CPU tells the note, the volume and the length (optional) of the note. If the CPU doesn’t send new commands and the length wasn’t specified, sound chip will just play the note indefinitely. Depending on the note and the “instrument”, it can sound like buzzing or screeching.

The only channel, that can actually play recordings from memory, also has mandatory length control, so it’s unlikely that it would just play random data.