I think there may still be something wrong with the simulation but I cant put my finger on it, checkout the case when the ball collides with the ramp again while x<0