• 4 Posts
  • 530 Comments
Joined 2 years ago
cake
Cake day: June 23rd, 2024

help-circle



  • Everything is injected. Even most of Pokémon Gold, including the code enabling GBC features (the font is the same tho). This can’t be done on the NES because the character (graphics) is in CPU-inaccessible memory (and therefore ROM on most cartridges). There are several stages of the payload that write and execute each other:

    1. name+item manipulation
      • a few bytes in several seconds
    2. copying existing button input buffer
      • 60 bytes per second
    3. polling buttons in a loop
      • only CPU-constrained, almost as fast as copying from the cartridge to RAM, literally fast enough to stream video at 10 fps (or in this case, 15 fps with ⅔ of the screen area updating, see technical writeup OP linked)

    The Ocarina of Time “Triforce%” TAS speedrun (very good live commentary at GDQ!) activates some debug code such as the inventory debug menu and Starfox spaceship model



  • I used Imagine by Logotron (Czech-localized, including keywords - yes, with diacritics) as my IDE, and I still have it installed because the accompanying graphics editor (LogoMotion) is just so good. I never got to the OOP part because the textbook didn’t cover it and there are no materials onlone about the Czech version (not even a keyword dictionary), and I couldn’t speak English back then. I stopped programming for way too long because I couldn’t get another IDE working and I didn’t know how to make arrays and text I/O in Logo, the tutorials I had stopped at variables.