I’m not really sure why Nintendo went all out with these games, considering that these are just ports of NES games.
Could it be that some of these were anti-cheating measures, ie to block things like Game Genie?
I could definitely see #2 (code in VRAM) being intended for that. The GBA was the last Nintendo system that was amenable to the old-style Game Genie implementation strategy, since the program ROM is executed directly out of the cartridge rather than copying it to RAM first, giving the cheat hardware a chance to selectively interpose on some reads and not others. Running code out of VRAM would make that harder, especially if it validated a checksum first.
I don’t see the other things described here as relevant to cheating devices, but of course I can’t be sure.
I’m closing some loops at the job I’ve had for 10 years, saying good-bye, and going to orientation for my new job with Red Hat! I’ll be working on ManageIQ which may be the oldest, largest, open-source Rails app.
I’ve been a pro-forty-fiver for years, but this post really turned me around. I have like a decade of files to change now, fortunately there’s sed:
sed -i -e '45i\
# This line intentionally left blank' FILENAME