Here is my Layer 1 displacement disabler, it clears out $1888. Why didn't I just clear out $1887? It is because I'm working on updating the directional quake so that these glitches are fixed:
Basically, I'm replacing all of the way smw handles quakes is so that it works like this: Two freeram addresses (2 bytes each) holds the original non-shaking position of the screen, if a shaking occurs, those original would be added by the shake value table (without storing it into itself) stores it into the actual screen position ($7E001A and $7E001C)
However, all the shaking seems to be removed, except the sprite's drawn on-screen; they still shake. How does this happen? I look through the smwdisc to find it and I have them all listed in this code.
Mod edit: fixed code stuff.
Give thanks to RPG hacker for working on Asar.
- The screen actually moves and sprites do use the shaking x position, rather than treat as if the screen isn't shaking at all. Meaning, for example, if the player scrolls the screen closest to the sprite as possible without spawning it (1 pixel before spawning), the shaking can move the screen and the sprite would spawn.
- I would like the Layer2 to also shake.
Basically, I'm replacing all of the way smw handles quakes is so that it works like this: Two freeram addresses (2 bytes each) holds the original non-shaking position of the screen, if a shaking occurs, those original would be added by the shake value table (without storing it into itself) stores it into the actual screen position ($7E001A and $7E001C)
Code
macro NOPer(Address, NumbBytes) org <Address> nop <NumbBytes> endmacro %NOPer($008252, #4) %NOPer($00825B, #3) %NOPer($0083D7, #4) %NOPer($00842C, #4) %NOPer($0097CD, #3) ;%NOPer($00A2AF, #6) ;>During quake routine ;%NOPer($00A2C0, #21) ;>Calculations to move layer 1 vertically %NOPer($00FF8A, #4) %NOPer($0282F2, #8) ;\sprites being affected by quakes %NOPer($0282FF, #3) ;/ %NOPer($02844B, #4) %NOPer($05C1A5, #4)
However, all the shaking seems to be removed, except the sprite's drawn on-screen; they still shake. How does this happen? I look through the smwdisc to find it and I have them all listed in this code.
Mod edit: fixed code stuff.
Give thanks to RPG hacker for working on Asar.