When I was a kid, I had a ZX Spectrum 48K with a cassette tape as the storage unit. Tapes are notoriously unreliable. One day I loaded a game [1] and got the dreaded "R tape loading error".
Instead of adjusting the azimuth and retrying, I decided to take my chances and typed RUN to execute the one-line BASIC bootloader that starts the actual machine-code game.
To my surprise, the game started, but there was something odd. Even though I should have lost all my lives, the game kept going. Somehow the loading error had modified a few bytes in the game that were responsible for checking the game-over condition.
I finished the game several times without ever seeing the Game Over message. Well, the probability isn't as low as accidentally writing a game from scratch, but it's certainly interesting when you think about it.
I had a different, but in some ways similar, experience with the game Elite on the Amstrad CPC. At the time I borrowed it from my friend who raved about it, the elastic band in my tape deck was starting to stretch, and the tape speed was somewhat inconsistent. Listening to it load sounded horrible - you could hear it warbling on the normally steady tones, but generally things loaded just fine so I wasn't massively worried about it.
Anyway, in Elite, you can save and restore your progress, so I did that because I felt like I'd accomplished something. However, after a week or so, I was getting pretty bored that I was just flying from place to place, trading, but not a lot else was happening. I had the occasional fight with another ship on my way to a new planet, but only maybe every 2nd or 3rd flight. It was basically a trading game and nothing much else.
I returned the game to my friend a couple of weeks later and told him how I found it pretty boring. He was surprised and said you get attacked almost every flight. We loaded it up on his CPC, and sure enough, I played for about an hour, and there was lots of combat. Borrowed the game from him again, and this time didn't load up my old save game, and had the same - lots of combat. Reluctantly, I started again, losing all my credits from trading, but suddenly the game was actually fun again.
My best guess is that some data that controlled how much combat action I got had been corrupted in a way that wasn't detected by the checksum, and once that was reloaded it got persisted in every subsequent save. It sounds implausible, but actually most checksum schemes on the CPC don't differentiate between runs of 00 bytes or runs of FF bytes, as they're usually done as mod-255. [0]
[0] checksum code is often a bit like this: IN: A byte that was written, HL previous CRC. ADD A,H: ADC A,0: LD H,A: ADD A,L: ADC A,0: LD L,A [1]
[1] Often called Fletcher-16, it's much simpler on an 8-bit CPU than the pseudo-code on Wikipedia suggests [2] if you pre-initialise the counters to 1 instead of 0
I think Elite on CPC had a Firebird loader, which had its own checksum algorithm different from Amstrad ROM. It had way shorter blocks. It might be weaker against certain patterns more than the stock ROM as you said.
Rubber keys and rotten leads
Rand and run and load and screens
Then five minutes fingers crossed
Hoping not to witness the terror
Of R: Tape Loading Error
(M.J. Hibbett & The Validators - Hey Hey 16k)
I remember weirdness in c64 games because of tape errors. I remember playing tusker and it was like it was haunted. Main character changed colour and disappeared entirely, hud elements turned Eldritch between game screens. It was wonderful
I had a corrupted save of Ultima III for the C64 on a disk. The game worked normally, but the world data had been corrupted into a bizarre mis-mash of all available terrain types and monsters. I kept that disk around and periodically loaded it just to fool around.
I think you could deliberately insert the wrong disk at some point and get corrupted terrain that had an ‘infinite’ chest in it (or was that Última IV?)
I had a cracked version of Turbo Esprit game on Amstrad CPC. There was one utility pole in the game in one of the maps. You reached to it by turning left at the start and then right, and it was second pole on the right, or something like that. If you hit that pole using "street turn" action, you'd instantly get teleported to another street with hundreds of pedestrians, climbing up to the sky. I thought I'd found heaven, but now thinking about it, the glitch might be caused because of the crack and repackaging. I loved discovering such an obscure behavior in a game though. I couldn't reproduce it on an emulator again.
Another way to induce memory corruption glitches on old computers was to quickly turn off and on again. I never managed to get anything useful like your unlimited lives hack out of it but I did see lots of interesting graphical glitches on my Atari 800XL back in the day.
There was a sub-industry created around doing this sort of memory modification on purpose with devices like the "Game Genie".
Game Genie was a device that could replace values on the cartridge bus, allowing it to change what the system sees when it fetches bytes from ROM.
Unlike many other cheat devices, this meant that Game Genie modified ROM (game program) rather than RAM (game variables).