Pokemon Blue plays itself (TPP)
Posted by: luckytyphlosion
Date: 2015-01-01 12:53:27
Every frame, the OAM DMA is called (or something like that I don't know it very well), but if you redirect the code somewhere else in HRAM, you can have the game perform instructions every frame!
The way I did it:
At FF86, write "jr FFF9".
At FFF9, write "dec a"
At FFFA, write "jr nz, FFF9"
At FFFC, write "jp D34A"
D34A is the rival name, so it can be never changed through normal gameplay.
At D34A, write "ld a,(FFD3)"
At D34D, write "ld (FFF8),a"
At D350, write "ret"
This will write a random value to FFF8 every frame (I think, correct me if I'm wrong). FFF8 is the joypad, so the game is essentially pressing random buttons every single frame.
Now, the only problem is that I'm not exactly sure if the game is doing "OAM DMA Bad Accesses", since Sanqui says BGB doesn't emulate that part correctly, but the OAM DMA is called at the correct time, so I don't think anything bad is happening.