Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Crystal skip is a technique that abuses a kind of a memory overflow to warp you from the first room of the Crystal Man stage to the boss corridor. As skipping past the rest of the stage means you can't collect the Beat letter, this can only be used as a part of the beatless route, and is the single largest time save in it.
- Practical instructions
- Kill yourself by running into the second to last enemy in the first room of the Crystal Man stage right as the last enemy is spawning. If you did this correctly, right after you die only the bottom part of that last enemy will be walking back and forth. If the enemy isn't there at all, you died too early, before it spawned at all (too far left). If both the walker and the ball are there, you died too late, after the enemy spawned normally (too far right). There are three main strategies for setting this up, from the slowest and most consistent to the fastest and hardest (video reference and time comparison[https://www.youtube.com/watch?v=E0lyd46SC60]):
- The arrow setup
- On the platform before the enemy you'll suicide into, place a super arrow into either direction, a second one to the left while standing on the first one, and a third one to the right while standing on the second one, so that the last one accelerates to its full speed before hitting the enemy.
- The slide setup
- Slide into the enemy. If you're as far to the left on the platform as possible, the correct slide timing is as the enemy is turning around. The further right you are, the later you need to slide.
- The object index manipulation
- Kill the walker part of the first enemy in the room, have the ball part start bouncing to the right, and have it on the screen before the enemy you're suiciding into spawns, then proceed normally. If you did this correctly, you will respawn 256 frames (~4.27 seconds) faster.
- Technical details
- The game reserves a certain segment of RAM for the properties of each game object. For example, the X positions of all objects are in $0330-$0347, the room numbers in $0348-$35F, etc. Each byte corresponds to a specific object, with the first 8 being reserved for Mega Man, the stage boss, and their projectiles, while the other 16 are general purpose. When the game wants to create a new enemy or whatever, it goes through the object indices starting from 8 until it finds a currently unused one. If all are full, the new object simply isn't created... except that for six specific objects, that check is missing. The rest of them are related to castle stage bosses and of no interest to us, but with the ball part of the enemies seen in the first room of Crystal, this can be abused.
- So what you want to do is fill up all the object slots between the walker part of one of these enemies spawning and its ball part spawning, or fill all but one before either spawns. The two convenient methods for this are napalm bombs and death explosion bubbles. Using napalm, you need to have done the Napalm Man stage first, and manage to kill yourself *after* triggering the glitch while offscreen. So far nobody has found a way to make this practical, and instead the suicide method is used.
- As the ball spawns, it will increment its object index until it has gone through all the available ones, and then as it's missing the check where the routine would normally abort when all indices are used, it will continue creating the enemy with an index one above the valid range. Thus it's X position, which would normally be in the $0330-$0347 range as mentioned above, gets written to $0348, which is the first index in the room numbers block and denotes the room Mega Man is currently in. This is the key part of the glitch - Mega Man's current room number getting corrupted to 140 or whatever means he's past the last respawn point and will respawn in the boss corridor instead of the beginning of the stage.
- Most of the other affected values simply don't matter, but as an unfortunate side effect, the respawn timer located in $0468 (low) and $0480 (high) getting corrupted hugely increases your respawn time. As you die these get set to 2C and 01, meaning you respawn in 300 frames, but in our case, $0480 gets overwritten with the object index of the walker part of the enemy that we're abusing. Going through the room straightforwardly, this will be $A0, translating to a wait time of ~43 seconds instead of the normal 5. The object manipulation strat described above arranges it to end up in $09 instead. You could easily make it $08 too, but for an unknown reason, so far nobody has managed to execute the glitch like that. Instead you'll find that changing the timing of sliding into the enemy by one frame will jump directly from the enemy not having spawned at all to both halves having appeared, with no frames on which the glitch happens in between.
Add Comment
Please, Sign In to add comment