Brock through walls: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
Line 68: Line 68:


==Explanation==
==Explanation==
As mentioned above, the glitch works by tricking the game into loading an invalid path (path pointer) for the player to follow. The path data is terminated by FF. If large enough (but not too large as to freeze the game), it will cause a buffer overflow and overwrite $CD3B.
As mentioned above, the glitch works by tricking the game into loading an invalid path (path pointer) for the player to follow. If the coordinates and pointer pair for the path is not found at xxx2, xxx6, xxxA, or xxxE throughout the memory map the game will lock up never finding it. Assuming the path is found, it is meant to be terminated by FF. If large enough (but not too large as to freeze the game), it will cause a buffer overflow and overwrite $CD3B.


The game never seems to intentionally set $CD3B to any nonzero value, but its effect is to allow certain joypad inputs to override scripted movement. It is very generous: As long as the player is holding down any of the specified buttons, the entire joypad input is accepted. For example, if the B button is able to override, then the player can simple hold down the B button to be able to walk in any direction or to stay put.
The game never seems to intentionally set $CD3B to any nonzero value, but its effect is to allow certain joypad inputs to override scripted movement. It is very generous: As long as the player is holding down any of the specified buttons, the entire joypad input is accepted. For example, if the B button is able to override, then the player can simple hold down the B button to be able to walk in any direction or to stay put.