Users browsing this thread: 1 Guest(s)
Owzer's Basement Tile Bug Fix
There exists an obscure graphical map tile bug inside Owzer's basement in the room with the opening and closing doors. After getting into a battle while in that room, there is a chance that while you are moving around and a door tile-swap happens, that the camera will become slightly (yet noticeably) desynched from the player and then after a couple times of that happening the map tiles can become all messed up, as shown in this screenshot:
A simple way I found to prevent this from happening is to add in a 3A event command byte (enable player to move while event commands execute) into the map's "entrance event", so that the player movement doesn't cause the timed tile swaps in the event code to become off-kilter and the camera does not become desynced which eventually results in the wrong tiles appearing on the map. Something like that anyway!
There is some unnecessary code at the start of the entrance event that can be removed to easily put in the 3A event command:
CB/4604: 3D Create object $10
CB/4606: 41 Show object $10
CB/4608: 45 Refresh objects
CB/4609: C9 If ($1E80($243) [$1EC8, bit 3] is set) and ($1E80($253) [$1ECA, bit 3] is clear), branch to $CB4611
There is no need to create and show object $10, and that C9 bitcheck just branches to the following command, so it's useless. If one wanted to easily do it without having to put FD bytes (event NOP) or rearrange the code, just replace the 45 Refresh Objects command with the 3A command - 45 refresh objects serves no purpose here.
As far as I can tell, this prevents the slight camera scrolling issue and the possibility of a mess of wrong tiles appearing on the screen.
This is an easy enough change to make, but if ever a patch is requested I can make one.
A simple way I found to prevent this from happening is to add in a 3A event command byte (enable player to move while event commands execute) into the map's "entrance event", so that the player movement doesn't cause the timed tile swaps in the event code to become off-kilter and the camera does not become desynced which eventually results in the wrong tiles appearing on the map. Something like that anyway!
There is some unnecessary code at the start of the entrance event that can be removed to easily put in the 3A event command:
CB/4604: 3D Create object $10
CB/4606: 41 Show object $10
CB/4608: 45 Refresh objects
CB/4609: C9 If ($1E80($243) [$1EC8, bit 3] is set) and ($1E80($253) [$1ECA, bit 3] is clear), branch to $CB4611
There is no need to create and show object $10, and that C9 bitcheck just branches to the following command, so it's useless. If one wanted to easily do it without having to put FD bytes (event NOP) or rearrange the code, just replace the 45 Refresh Objects command with the 3A command - 45 refresh objects serves no purpose here.
As far as I can tell, this prevents the slight camera scrolling issue and the possibility of a mess of wrong tiles appearing on the screen.
This is an easy enough change to make, but if ever a patch is requested I can make one.
We are born, live, die and then do the same thing over again.
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)