Bullet Bill Glitch: How The Coolest Super Mario Bros Speedrun Trick Works
Super Mario Bros, possibly the most important video game in history, has a very strong speedrunning presence. The large community of players and the length of the game’s lifespan have led to an unbelievably optimized speedrun that is filled with nonstop action and confusing, game-breaking tricks. The most complicated of all these tricks takes place in 8-2 – a trick called the Bullet Bill Glitch.
You can see the trick being executed at 3:42 in the world record video below (video time, not game time). Overall, the trick saves 0.7 seconds, which may not sound like a lot, but in a game as highly optimized as this one, failing this trick means the record can’t be yours. The trick appears as though Mario is getting crushed between the Bullet Bill and the flagpole, with the level then teleporting Mario to 8-3. Here’s how it works.
Once a player grabs a flagpole, the game takes control away from them and moves into autopilot, running Mario to the right until he reaches the castle door. How does the game know when he reaches the castle door? Well, the block to the immediate right of the door is a solid block, and the game simply repeatedly checks to see if Mario has a solid block to his right.
Once it detects a solid block, it teleports him behind the background layer, thus making it appear as though he entered the castle. The timer then runs down and the level ends. The Bullet Bill glitch tricks the game into entering autopilot while Mario is to the left of the flagpole, thus he interacts with a solid block to his right immediately – the flagpole base. This is why Mario gets teleported behind the tree after executing the glitch, as the tree is the background layer.
Hitboxes in Super Mario Bros are quite weird. The game checks for collisions between Mario and objects every other frame. This means that if you run into a wall, you can actually clip into it if you hit it on the right frame, but the game will then eject you out on the next one. This is exactly what is happening with the Bullet Bill Glitch. Speedrunners are clipping into the block just far enough to grab the pole, the game begins checking for solid blocks to their right, but the game ejects them to the left of the block at the same time.
Bear in mind though, the pole itself is one block above the base of the flagpole, so players need to clip into the block while in midair, such that the lower half of Mario is in the block, while the top half of Mario is grabbing the flagpole. This is incredibly precise, but it’s where the Bullet Bill comes in. If speedrunners were to run and jump into the flagpole, it would be impossible for them to jump low enough to be at the right position, but bouncing off enemies gives less height than jumps.
Bullet Bill Bounce
Players are not getting crushed between the Bullet Bill and the flagpole, though that may be how it appears. In Super Mario Bros, if a player collides with an enemy, the game simply checks to see if Mario has any downward momentum. If he does, it will register as a stomp – even when the enemy is above Mario – and the enemy will die. With the Bullet Bill Glitch, speedrunners are bouncing off the bottom of the Bullet Bill.
Enemy hitboxes are much smaller than they appear, as seen in the picture above. Because the game only checks for collision every two frames, speedrunners are able to clip through the top right of the Bullet Bill’s hitbox and land on the bottom right corner of it, meaning they are nearly on the ground when they bounce. This means that there is a huge element of luck at play, as 50% of the time, the two-frame collision cycle will work out to have the two collide when Mario hits the top right of the hitbox, far too early.
Why does this save exactly 0.7 seconds? Super Mario Bros only checks to see if a level is completed every 21 frames or every 0.35 seconds. This means that if you beat a level one frame into a “framerule”, versus beating a level 20 frames into a framerule, the following level will still load at the same time, thus no time is lost. By jumping to the flagpole as normal, Mario will hit the castle block two framerules later, resulting in a 0.7 second timeloss.
Enemies in the game are not random. The game counts to see how many framerules have elapsed since the last console reset, and the enemy spawn patterns are based on that number. That’s why you can see speedrunners waiting in the title screen for 8.52 seconds before starting. That is specifically to wait for a framerule that delivers a good Bullet Bill, as well as generous enemy layouts. Were a speedrunner to lose a framerule on an earlier level due to a mistake, the Bullet Bill would not appear at the same time in 8-2.
Source: Read Full Article