Friday, November 10, 2017

The limbo bug simplified

One last post to wrap up the subject. What is the easiest way of triggering the limbo bug? Simple, just enter the vertical cylinder while standing on top of a solid object.


We saw before that the cylinder object calls the RideObject_SetRide function, which unsets bit 3 or 4 of the object that the player was previously standing on. It just turns out, solid object collision functions such as SolidObjectFull also call the RideObject_SetRide function, which in turn will clear bit 3 or 4 of the cylinder object, triggering the limbo bug.

You might imagine this leading to an endless tug of war between both objects, but the solid object only steals the player back after the cylinder object sets bit 6 of the player's object_control attribute, disabling certain object collisions, which include the cylinder object itself, causing the player to just fall through it.

Since the bug was triggered by standing on a solid object, you unfortunately don't get the effects of slope glitch, but you do get a frozen sprite and can go through walls all the same.

2 comments:

  1. Are there any instances where you can do this particular method outside of debug mode?

    ReplyDelete
    Replies
    1. As with this post, no, I do not know of any situations in which you can touch a cylinder while standing on a solid object without using debug mode. Be sure to let me know if you find one!

      Delete