Immunity
upd_player_bottom checks, every frame, whether anything harmful has touched the player,
and starts his death if so. Make its JR Z at $C82F an unconditional JR, and
spikes, fire, guards and ghosts pass him by. Tested: flagging the player as
touched cost a life without the poke, and nothing with it.
POKE 51247,24
A moveable block that moves
The block type the game calls moveable clears its velocity before it moves,
which cancels every push (see the bug). Take out that CALL, at $C4AD: pushed
blocks then keep the push, and slide on -- as the chest does -- until
something stops them. Tested: a moveable block in the player's path did not
move in 20 frames without the poke, and was pushed 47 units with it.
POKE 50349,0: POKE 50350,0: POKE 50351,0