Working case runs sprite_on early enough, before copper has processed sprite pointer update moves, bad case updates them too late -> previous frame's sprite data is shown on screen (which is always sprite_off sprite data because sprite_off always runs early enough)
|