Language…
21 users online:  AmperSam, crocodileman94, Dennsen86, DixyNL, figuiDOS, Golden Yoshi, Green, Gurjinter,  Losoall, Maw, Pink Gold Peach, ppp9q, Serena, Silver_Revolver, SMW Magic, Sweetdude, The_Uber_Camper,  Thomas, tOaO, VSmario90,  yoshi3706 - Guests: 272 - Bots: 322
Users: 64,795 (2,374 active)
Latest user: mathew

How does sprites still be shaking even when I clear all the possible code that adjust Y pos

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:

  • 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.


I just tried
Code
org $00A2B8
	db $80

and that stopped shaking altogether without issue, no need to do all those changes.

You NOPed out a good portion of that code that skips, though, so I guess it might be some kinda conflict with all the things you cleared out? You clear out the part the resets the offset values so it might be related to that, no clue though.

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
What I'm trying to do is make the origional layer 1 displacement freeram.
Give thanks to RPG hacker for working on Asar.


Well, that's the code that makes sprites shift. I just noticed you had those two NOPs commented out, I assume that's where you're putting your hijack? In which case I guess make sure your code works correctly, or post it here.

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
Oh, silly me, I'm dumb, basically, the shaking code did move the level, but that code only remove the shaking graphics for layers. The sprites assumes layer 1 shakes and shakes with it.

Each things uses the displacement RAM since the code restores the layer 1 y position right after the quake routine.

Edit: Here is a better code (also removes the need of a stack to keep the Y pos):
Code
;Notes:
; -$7E1888 [2 Bytes] is now freeram.

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($00A2EA, #6)
%NOPer($00FF8A, #4)
%NOPer($0282F2, #8) ;\sprites being affected by quakes
%NOPer($0282FF, #3) ;/
%NOPer($02844B, #4)
%NOPer($05C1A5, #4)

org $00A2A9
JML $00A2D5

Give thanks to RPG hacker for working on Asar.