seabass-labrax parent
Does anyone know what's going on when the TheZZAZZGlitch's emulator reports that the game tries to jump to an invalid address? I'm not so familiar with the ARM7 processor used in the GameBoy Advance, but I can't imagine how it would be possible to construct a jump call with an invalid value. Additionally, what would happen if one of TheZZAZZGlitch's incorrectly reconstructed ROMs was run on a real GameBoy?
> I can't imagine how it would be possible to construct a jump call with an invalid value
You can use the bx instruction to jump to any address stored in a register.
> Additionally, what would happen if one of TheZZAZZGlitch's incorrectly reconstructed ROMs was run on a real GameBoy?
It would crash, and eventually start playing the ROM on the speaker, the whole point of the video :)
Thanks for the explanation! So it sounds like the emulator is detecting the error 'out of band' with the emulated execution flow, and choosing to throw an error message rather than letting the execution continue. If it didn't catch the error, it sounds like it would glitch out in much the same way as the real GameBoy would. Is that right?
That's right. This sort of thing is more likely to indicate a discrepancy between the emulator and the real hardware, than actual game behaviour, so emulator developers choose to treat it like a crash. Some emulators have "continue anyway" buttons and some don't.
It is likely that the emulator only emulates accessing valid parts of the GBA's memory map, and throws that error if invalid parts are accessed. As to what happens on real hardware.. who knows? :)