I am aware many of these questions may go unanswered, but I still wanted to ask. Why is it that when a gba cartridge is removed from a gba while it is switched on, the sound will sometimes start glitching, even 15 minutes after said cart was removed? (the console produces weird sounds in a random way) Why is it that when a sega genesis/mega drive game hangs, the console keeps playing the currently playing music, despite the fact everything else has stopped functioning entirely? (the best exemple of this would be mortal kombat 3/ultimate mortal kombat 3) On a related subject, why does genesis/mega drive games often shows memory/core dumps after a game crashed despite the fact there is no debugging hardware/software available (as far as I know)? (for exemple, the aforementioned mk3/umk3, and sonic the hedgehog) Why does music sometimes keep playing after a snes game crashed? (again, mk3/umk3 being good exemples. try the sheeva glitch in umk3 for an exemple of this. mk2 is also an exemple. alternate between the punches (low punch, high punch, lp, hp, lp, hp, etc) while fighting kintaro and he'll freak out, his sprite appearing in the airs, and more often than not the game will crash with the music still playing) A Mortal Kombat 3/umk3 question (nobody say that one coming. </sarcasm>). What makes it so that when the games crash, the graphics go haywire and even get so bad the entire screen turns black? A Super Mario World question. When you catch an item at the same time as yoshi swallows something, what in the game's code makes it so that the blinking animation/movement freeze never ends until you either reset, or press start and then select (if you had finished the level before)? A Donkey Kong Country 2 question. There is a bug late in the game which briefly allows you to appears as one of the bosses, after which the game usually always crash because nearly everything you do with it has actions said boss character (complete with palette corruption) simply cannot do. My question is: why is it that sometimes after the game crashes, all saved data is wiped clean because of this very bug? A Strider question (the NES version): why is it that in the game, platform jumps, as well as wall jumps are so frustratingly hard to do? (especially with wall jumps. the platform jumping is a bit less frustrating) Another strider question: why is it that sometimes the sprites, especially that of enemies appearing from the ground (like robots), appears as numbers/letters until they are fully out, after which they appears as their normal selves? and in a related subject, why is it that every screen changes has the screen briefly showing a shitload of letters/numbers? A last question: in goldeneye 007 on the nintendo 64, why is it that when the game cartridge's edges are lifted slightly, the game's polygon models start freaking out? (the incorrectly-named "breakdance cheat")
The Mega Drive uses a separate processor (a Z80) for music - game logic usually uses the CPU (a 68000). They work independently for the most part, so the Z80 can continue processing while the 68000 is halted or dealing with other stuff.
With some programming in assembly, I feel I can understand what's going on in a lot of the scenarios within your questions, but could not verbalize it. On a hardware level, if you put the wrong thing in the wrong spot in memory, crazy things happen. Sometimes it's just little pinholes in the program itself. Since I've never worked for a development company, let alone one in the 90s, I couldn't say whether this is correct or not, but in my experience some problems could be left there knowing very few people will ever come across them nor are they detrimental to the gameplay overall. Maybe this is the complete opposite response you want, and you really want to know exactly what causes these things to happen... like "XX register doesn't get popped from the stack if the A button is hit during blah blah blah, and therefore this memory address is switched with this one, causing the wrong sprite to be selected etc etc etc etc" in which case, sorry.
I've always said dogs were dumb but man, that's something else! Now I'd better run off and hide before I get attacked by all the dog lovers.
Ah. is the S-SMP in the super famicom/snes used separately to play music like the z80 processor does?
As exlained above, the Z80 CPU in the Genesis is usually used to produce music, and music code is loaded into the Z80's RAM, making it independent of the Gen cartridge. The 68000 CPU has vectors for illegal opcodes and other program "crash" situations, and so the CPU automatically jumps to these vectors upon crashing. (And the ROM(?) prints these error messages to the screen.) The SNES has a separate sound CPU which will not crash if the 65816 CPU has crashed, same as the Genesis. This is just a general rule, but when game code gets disrupted, the CPU jumps into invalid data or runs code unintended to be run at that time. This could have various effects, such as the screen being written to, the game resetting, and infinite memory-writing loops (where RAM or VRAM get erased.) I don't know the deep-down reason, but probably the code for each situation is waiting for some ram value to be cleared, but that never happens because the other situation modifies the RAM value then waits. Shitty programming on Strider in general, but basically for screens full of numbers, you have seen the game switch from a text-based screen to draw the background for the game, but it displayed the new background before it "unloaded" the text in the CHR-RAM and replaced it with the in-game graphics. As for the sprites, I don't know for sure, but Strider's sprite code is terrible in general. Glitches occur causing disappearing sprites and phantom objects that can happen at any time.