Rayman is a colorful 1995 platformer developed by Michel Ancel and released by Ubisoft for the Atari Jaguar, Sony PlayStation, DOS and others. This movie aims to complete the PSX version of the game as fast as possible, utilizing many skips and tricks along the way.
The game is split up into 6 worlds, and 18 levels total. In the first five worlds, each level has got 6 hidden cages that Rayman must find and break in order to unlock the final level, Mr. Dark's Dare. These cages are often well hidden; frequently there's invisible triggers in the levels that make cages and other objects appear out of thin air. In a casual playthrough, don't count on getting through this game without a guide.
The game is also very difficult, frequently requiring pixel precise jumps or split second reactions from the player. In the beginning, Rayman can only walk and jump to defend himself from these hazards. Soon enough though, this changes and he unlocks a number of powers to help him.
Rayman's attack. Rayman can charge up and throw his fist to hit enemies and destroy cages. The longer he charges it up, the farther it reaches and the more damage it does. If Rayman uses the fist while in mid-air, he instantly lets go at double the damage and reach of an uncharged standing punch. After hitting a target or reaching maximum range, the fist returns to Rayman.
Only one fist can be out at a time. This means that we often need to make sure that Rayman's fist is available when we need to use it. The fist can also hit things when it returns to Rayman, but it can only ever hit one thing per punch. After hitting one target, the fist becomes harmless. There's also two types of fist power ups that are present in the levels
- Speed Fist: Increases the reach and speed of the fist. Rayman can pick up up to three of them. Dying reduces his fist level by two. These are hugely important, as specific tricks only work with the right speed fist level. They also massively reduce the time it takes for Rayman's fist to return to him, which can make a difference in a lot of places.
- Gold Fist: Increases the fist damage. For the TAS this is mostly inconsequential, as most enemies go down in one jump punch anyway. Boss damage is also unaffected by it.
Rayman can hang on ledges. This allows him to reach places he couldn't reach before.
Rayman's fist gets upgraded to be able to grab on to flying rings. Rayman can also grab 1-ups and pull them towards him with this power.
Slow Rayman's descent by pressing X in midair. The helicopter can only be activated once per jump. While it is active, it can be interrupted by using the fist. If you then press X once more, Rayman finishes his helicopter animation. It can also be canceled more gently by pressing X in midair once again.
Finally, the last power that Rayman gets, over 30 minutes in, is the power to actually go fast. Running increases Rayman's base speed from 2px/frame to 3px/frame. Running also facilitates a number of previously impossible tricks such as speed storage and momentum preservation (see below).
Each new power that Rayman gets adds a layer of complexity to the run. Combined with utilizing the objects found in the levels, this makes the game much more difficult to optimize the more potential tools we have in our toolbox.
This TAS is the result of many years of iterative work by many different people. The only version that was possible to TAS for the longest time was the GBA version of the game, Rayman Advance, and several WIPs have been made by various different people. Ultimately, got4n finished a run, which was accepted and published here
, which was later improved and obsoleted by 2339M
During and after this period, the RTA community continuously made new discoveries in the game, changing the route and decreasing the required completion time with each new find. It was during this time where the general route of going to Moskito first was established. Finally, feos made a fork of PCSX-rr that could run Rayman, which is when we finally were able to run the game on PSX using frame advance and savestates. This version of PCSX-rr was too unstable to record movies with however.
This changed when the mednafen PSX core was included in BizHawk as Octoshock. Finally, we had a tool to thoroughly test out the game with, and the hunt for glitches was on. During this time, most of the tricks that would eventually make their way into the TAS were discovered. In mid-2015, Bizhawk 1.11.0 was released and included PSX as a submittable system, at which point work on the TAS formally started. Work continued until February 2017, when the TAS was finished, clocking in at a completion time of 1:03:23. After the run was completed, a number of minor improvements were hexed in, further reducing the completion time by 272 frames to 1:03:18.
The game was released on a number of different systems, among them PSX, DOS and GameBoy Advance. All of these versions have minor differences between them which influence the gameplay somewhat. Most notably, the PSX version has different cage placement from the GBA and DOS versions, which changes the routes in a couple of places quite significantly.
Some of the stages were changed or removed in the GBA version, and the physics were slighty modified in places as well. The PSX version can be considered the definitive version of the game, although either the DOS or GBA version can be publishable alongside this due to their different cage placement. As for the current GBA publication
however, it is thoroughly outdated by now and can be obsoleted.
Unlike Rayman Advance, this version does not have a frame rule, making careful optimization more critical. Rayman also has one less hit point to contend with.
Other than BizHawk, a number of different tools heavily assisted the creation of the TAS.
The game's visual tiles do not correspond to the game's actual collision data. For this task, fuerchter and markusa4 created a map viewer which overlays the map's block types over the game.
This script was massively beneficial in analyzing the map and finding areas where certain tricks and clips are possible. In addition to seeing the map tiles, the map viewer also displays active events (sprites), which allows us to know when exactly events spawn, even if they're off camera, which also helped a lot in optimizing the run.
We also used the cage location maps courtesy of Matthias Franke's Rayman fanpage, which helped a lot in routing the levels.
Ring brute force script
Properly exploiting ring physics (see below) often involves a lot of trial and error in finding the right pixel position for Rayman. To assist this, got4n developed a Lua script which brute forces and records all positions for Rayman within a certain area. This made TASing ring sections massively easier, especially later on - whereas before, we had to trial and error rings to get good ringboosts, now we could just brute force them instead.
A lot of the tricks outlined here work slightly differently depending on the situation. This makes accurate descriptions hard to give, because the exact details change each time. While TASing, this means you cannot take anything for granted, and have to test the fastest way to do a section each time.
General movement tricks
Holding Up and Down
If Rayman is in midair, holding Up or Down on the D-Pad will make him retain whatever horizontal speed he currently has. This is referred to as Speed Locking. This can be used to give us more control over Rayman's speed and go faster than intended in a lot of places.
On the ground, pushing Up/Down will make Rayman keep his vertical and horizontal displacement for one more frame before stopping. This property is the basis of a number of different tricks in the game.
Speed mechanics and speed locking
For horizontal movement, Rayman has two different speed values in memory which interact in different ways. In most circumstances, his velocity is governed by his "subpixel speed", in which 256 subpixels equal one full pixel. From this subpixel speed, the game generates an actual pixel displacement on the screen, which we call his "fullpixel speed". It does not appear like the game actually has any notion of subpixels per se - from the best of my observation, the fullpixel speed is calculated by frame timers instead.
Speed locking freezes both the subpixel and fullpixel speed values, which we abuse very often in the run. For example, if Rayman's subpixel speed is 384, his fullpixel speed will oscillate between 1 and 2 each frame, resulting in a horizontal speed of 1.5px/frame across the board. Holding Up on a frame where his speed is 2 however, we can keep the higher speed value active indefinitely.
If you make Rayman turn around in midair, he will go in the direction he was originally facing for one more frame. Turning around in midair and then holding Up or Down on the next frame allows Rayman to move backwards. This sometimes poses a problem, as Rayman can't turn back forward in midair without losing time.
Additionally, holding L+R in midair allows Rayman to face to the left, but move to the right consistently.
After obtaining the hanging power, Rayman can grab onto ledges for a small horizontal boost, saving 3 frames each time. This doesn't work everywhere, and becomes mostly obsolete once Rayman gets the running power. In addition, if the tiles are laid out right, Rayman can grab a ledge backwards and get a much larger boost.
Rayman can save 16 pixels by grabbing onto a vine and jumping off instantly. Another 2 pixels can be saved by pressing L+R when turning around for a potential 9 frame gain total, but this only works if Rayman was facing right to begin with. Thus, the best strategy when there's multiple vines is to jump normally between each one and press L+R on the last one.
Dropping from ledges
Normally, like in many games, jumping down ledges is faster than walking off. However, by holding one of the crouch buttons (Down, L1, L2, R1, R2) while walking off, Rayman gets pushed downwards between 16 and 17 pixels instantly. Sometimes, punching while falling down increases Rayman's downward acceleration enough to make this faster than jumping down.
Additionally, while walking off a ledge, Rayman can jump for a few more frames before dropping down. This works on both solid platforms and sprites.
Dropping while hanging
By holding Down when grabbing a ledge, Rayman instantly gets pushed down 16 pixels. Similar to above, using the fist further increases Rayman's downward acceleration.
Using the fist at the apex of a jump, just as Rayman begins to fall again, extends his jump ever so slightly. This comes in useful sometimes.
Decreasing falling speed
By holding X while landing on a platform or a sprite, Rayman will start falling much slower when walking off a ledge. This comes in handy sometimes in order to extend jumps. Punching while falling may also decrease falling speed, depending on the circumstances.
Instant crouch turn around
While crouching, double press the opposite direction crouch button to turn around instantly.
Works only after the running ability is unlocked. Hold Up/Down in midair and jump instantly after landing on the ground and Rayman will retain his speed. This only works if Rayman is in his spinning animation. You can chain jumps indefinitely, but it can be hard to hit the right pixel position because of minimum jump height.
If no button is held on the frame Rayman touches the ground, Rayman will lose a tiny bit of subpixel speed. This can come in handy sometimes if we need to reduce our speed.
General slippery optimization:
On slippery surfaces, Rayman is subject to acceleration. While Rayman's speed changes continuously, you can hold Up/Down to influence Rayman's movement slightly.
Steep slopes allow Rayman to build up a very high amount of speed - the steeper the slope, the more momentum he can accumulate. Rayman accelerates and stops much faster on the ground than he does in midair, and faster still if he uses the running ability. Turning around on a slope is done fastest by pushing the opposite direction on the D-Pad, then holding Up/Down to cancel Rayman's turning animation, and then running in the opposite direction. If running is not available, the fist can also be used to reduce Rayman's speed slightly.
Careful management of speed and acceleration is essential for optimizing these sections.
Using his fist allows Rayman to get a considerable speed boost over normal movement. Normally, the fastest strategy is to max out Rayman's velocity by walking/running first and then charge the fist for as long as possible to get a fistboost on top of that.
You can let go of the fist instantly to get a small boost, or you can charge up the fist for longer to increase the velocity from the fistboost. However the fist needs to be charged for at least 10 - 15 frames for this to be worthwhile.
At higher speeds, Rayman's fist can no longer catch up to him. This needs to be taken into consideration if the fist needs to be used immediately afterwards.
Jumping through the ground
While this trick is not exclusive to slippery surfaces, it most often comes up with slippery note lines due to the high speed Rayman moves at. If Rayman goes fast enough and jumps through an inclined slippery slope at a shallow angle, he may jump through. This only works if there are no solid tiles below the slippery.
A major trick that significantly subverts the level design. By holding Up/Down in the spot where a slope tile meets a solid tile, Rayman may be elevated one or two pixels from the ground - the game will then think he's in midair. Pushing one of the crouch buttons on the next frame will clip him into the ground. If there are no solid tiles below the slope, Rayman may just clip through the ground and fall through the platfoorm. This may work both walking up and down a slope.
Superjumping is closely tied to clipping. If Rayman tries to walk while his feet are embedded within the ground, the game may try to put his feet on top of the ground, moving him upwards by several pixels in the process. By holding Up/Down on the right frame, Rayman may be launched out of the ground and do a superjump. There's several common ways to activate this:
- Clip into the ground using a slope (as before), and walk back into the slope. The game will try to put Rayman back onto the slope, moving him upwards by up to 15 pixels. This only works if the slope tile itself sits right on top of a solid tile.
- Jump into a slope from below. This only works if the ground isn't solid from below.
- Use a sprite platform, such as a cloud, that gets partially embedded in the ground. Walk off the platform and into the ground.
- Jump into an upward slope at high speeds. This is especially common with slippery surfaces, but can be achieved without.
It is important that Rayman only rises by less than one full tile (15 pixels or less) to activate a superjump. If he moves up by a full tile (16 pixels and more), he will not do a superjump. Instead, he will just be placed one tile into the air and then fall down again. This may still help reach some otherwise unreachable ledges.
Superjumps only work when the ground is made up of pass-through tiles, i.e. tiles that can be passed from below and the side. Slopes and slippery tiles are always considered pass-through tiles as well. Rayman will not be able to superjump out of solid tiles, which is why having a map viewer is so helpful, as it makes much easier to tell where superjumps can be performed.
The height of any jump including superjumps can be extended by holding X after activating it. Additionally, using the fist right at the beginning further increases the height of a superjump, so long as Rayman is not in his spinning animation. If he is, sometimes it's worthwhile to activate the helicopter before using the fist to cancel Rayman's spinning animation first.
Plums and yin-yangs can be ridden by Rayman and accelerate to significantly faster speeds than he could go on his own. Rayman's fist can accelerate them to about 3.5px/frame, and hitting downward slopes further increases their speed to even higher amounts.
Hitting a plum or a yin-yang with your fist may also briefly reset its vertical acceleration, allowing them to go higher and further per bounce than normally possible. When riding a plum, it is important to carefully steer their bounces so that they hit as many downward slopes and as few upward slopes as possible. Both plums and yin-yangs will always do a small bounce if Rayman stands on them when they hit the ground, and a large bounce if not.
It is also possible to hit yin-yangs continuously at the beginning of their bounce, allowing them to rise up indefinitely. This is even easier as Small Rayman.
Rayman can get himself embedded inside the walls and start zipping. While zipping, Rayman moves upwards rapidly. He can't move sideways, unless he's right next to the edge of the wall, in which case he will exit the wall. It's easy to get Rayman stuck at the top of the screen if a zip is activated in the wrong place. Zipping can be achieved by one of several ways:
- Ride a sprite platform into a ceiling:
- This works with any rising sprite platform, such as clouds and maracas rockets. Jump onto the sprite when it is just barely above solid ground. This primes the sprite to boost Rayman into the ceiling when he touches one. You cannot jump or walk off the sprite platform, or you lose the potential zip. Then, once the platform comes in contact with the ceiling, crouch, and Rayman will start zipping.
This can be done with plums and yin-yangs as well, making them especially useful. Effectively, in the right circumstances, these objects become "portable zips".
- Abuse ring mechanics:
- The tether of a ring can be used to embed Rayman into a wall. This can be done in a number of different ways:
1. Let Rayman swing into the ceiling at the top of his arc
2. Put a solid wall between Rayman and the ring
3. Get pushed into the wall while grabbing the ring.
See below for more details on ring behaviour.
The rings are arguably the most broken part in the game. To begin with, after unlocking the grabbing power, Rayman can hit the rings with his fist and swing on them in an arc, going back and forth. When letting go, you can hold Up/Down to keep whatever horizontal speed Rayman had at this point during his swing. Additionally, by putting as much distance between Rayman and a ring as possible before the fist hits it, the size of the tether increases massively, increasing his swinging arc and the horizontal and vertical speed he can get by jumping off from the ring.
The most heavily abused part of the ring mechanics however are ringboosts. When Rayman grabs on to a ring, the game tries to put him onto a specific spot from which his swinging arc begins. In practice, that means that he gets yanked by a certain amount of pixels to a specific spot near him. The further you are from the ring, the more exacerbated this effect becomes. You need to be on roughly the same height as the ring for this to work.
By letting go and holding Up/Down on the frame where this happens, Rayman can keep his velocity and go at potentially enormous speeds. The absolute maximum that is possible is 48 px/frame, or 16 times normal running speed. While higher speeds than that are possible, the game prevents Rayman from actually moving. Usually, Rayman just gets eaten by the camera if it happens.
At this kind of speed, it becomes possible to just clip through walls up to two tiles wide, as Rayman can cover more distance in a frame than these walls are big. Additionally, if there is a wall right next to Rayman as he grabs a ring, the game may decide to push Rayman into the wall. At this point, you can either let the game put you into the wall, zipping upwards, or jump, clipping through the wall entirely. This way, Rayman can clip through walls that are up to four tiles wide!
Another way to get a lot of speed from a ring is to let Rayman get stuck on a corner while swinging. If he doesn't outright clip into the wall and start zipping, Rayman will get yanked massively into the direction he was going once he clears the corner.
Finding good ringboosts is a big problem while TASing, because it's pretty much impossible to know where Rayman needs to be to get the best ringboost. While there is some pattern to it, finding the "magic pixel" at which his speed is highest is pretty much trial and error. This is is why we started brute forcing rings later on into the run, as this massively cuts down the amount of work needed.
It's not always possible to achieve the perfect ringboost: Sometimes, it's faster to go for a slightly slower ringboost, if it's sufficiently quicker to activate. Clipping through walls also requires very precise positioning, that only certain ringboosts can provide. If a ring moves, the pixel positions for ringboosts move along with it. This needs to be taken into account when planning ringboosts.
In order to climb vertically where rings are around, you can also find a ringboost in which Rayman gets pushed upwards rather than sideways. By letting go, Rayman jumps much higher than if he jumped off a ring normally. Usually, the lower Rayman is, the more likely are his chances of getting a vertical ringboost. This sometimes creates a tradeoff between going downwards to get a high vertical jump, or skipping it entirely and going upwards from the beginning.
Speed storage was the last major discovery to be made in the game before starting the TAS, and it was kind of a game changer at that. The mechanics for speed storage are very obtuse and difficult to explain in their entirety.
Simplified, if Rayman does a spinning jump, his speed, going both to the left and the right are stored in memory. If Rayman was going considerably faster than normal running speed, this allows us to store this speed for later. The maximum possible velocity that can be stored is 7px/frame going right and -8px/frame going to the left.
The most common way to charge speed storage is by jumping either off a slippery surface or a ring, although for some reason the game divides the speed Rayman gets from rings by 2. This means that if Rayman moves at 14px/frame from a ringboost, he gets 7px/frame of speed storage. Rings also activate speed storage at very high speeds - 47px/frame will also set rayman's speed storage to 7. This is very convenient, as this means we can do a near-max speed ringboost, and then have speed storage to follow it up on.
While speed storage is active, Rayman cannot touch any walls, or his stored speed is reset. Rayman can also not do any running jumps, as this resets his speed storage to normal running speed. Because of this, you frequently see Rayman slow down right at the end of a platform and do a walking jump to clear a gap. There are some minor ways to get a few extra pixels of running speed walking off a ledge, but the gist is that Rayman cannot ever enter his spinning jump animation.
To unleash speed storage, jump onto a sprite platform and run off it. Rayman instantly starts moving at his stored speed. By using momentum preservation and jumping from sprite to sprite, it is possible to chain speed storage indefinitely. Speed storage may only ever be active in one direction at a time, either going to the left or to the right. While it is theoretically possible to activate speed storage going into both directions simultaneously, no way in the game is known to do so.
There is a seperate speed storage for helicopter speed, although it's utilized far more rarely. While it gets activated by spinning jumps as well, any regular jump will reset helicopter speed storage as well. This makes it useful only in very few circumstances.
Speed storage allows us to go through a lot of the levels much faster than intended. In most cases, the vast speed increase that it allows for outweighs the time cost to activate it and retain it during sections where it can't be used. As of this, it shows up in most levels once the running ability is unlocked, and many routing choices involve activating and preserving speed storage in some way. Most significantly, speed storage is preserved through level transitions, the map screen and even dying.
Beginning & Pink Plant Woods
We choose the password option as it's faster than using memory card. All is simple in the beginning. The only tricks are riding the springy platform to benefit from its speed and a vineboost.
More straightforward movement. In the end, a piranha would always get in our way no matter what, so we choose just to take damage from this guy. Simple stage otherwise.
Enter the first bit of plumboosting. The strategy in this level is identical to the GBA version: Hit the plum forward, and touch the goal sign through the floor.
This is the first demanding level to optimize. Unlike the GBA version, stationary plums do not go forward if you are close to them while hitting them. This actually makes the stage harder to optimize and somewhat slower than in GBA - the second plum ride especially suffers from this. Careful optimization has to be given to hitting the plums the right way while also breaking the cages.
In theory, we could get all 5 cages on this screen in the first runthrough. This would require going out of the way though, so we decided to save those cages until the running power is unlocked. In this runthrough, we only get the cages that are right on our way.
Bzzit is the first boss in the game. He has five hit points, and his pattern is fixed. After every hit, he will move to a specific spot in the upper center of the screen. We want him to be as close as possible to that spot when we hit him, so his position needs to be carefully manipulated. This is the rundown of each of the five hits in the fight:
- Manipulate him to go to the center of the screen before hitting him.
- Damage boost into him and hit him with a returning fist. This hits him sooner and keeps him closer to his return spot than hitting him normally.
- Hit him on the spot where he's on a perfect diagonal line to his return spot.
- Manipulate him to stay as far up as possible, since he needs to go upwards now.
After the fight is over, we get to enjoy an automated demo and make friends.
This is an autoscroller. Rayman's movement here is slower and more sluggish than you would expect. While the stage is mostly fixed, there are specific points in the level in which the screen scrolling slows down or speeds up. Our aim is to be as far right on the screen as possible to activate the speed up as early as possible, and to be on the left edge of the screen when Rayman hits a slowdown trigger, to avoid it for as long as possible. Touching the goal at the end of the autoscroller optimally requires precise movement.
More Betilla. The fastest option for dealing with this stage is to catch the backwards ledge, as we get a much larger boost from this than by hanging from either of the forward ledges.
Swamps of Forgetfulness
We specifically go to Swamps of Forgetfulness now, because we want the ring power at the end of Moskito. This will allow us to finish off Bongo Hills in one runthrough later.
In this level, Rayman gets a seed that he can plant to make a flower platform rise out of the ground. Thank heavens, too, as the screen starts scrolling upwards and the level fills with water.
In theory, we could skip getting the seed, but there is no way to make certain jumps without it, so we need to get it - and sit through the demo doing so. Still, the autoscroller only starts once we plant the first seed, so we superjump up to a higher platform and scroll the camera up, so that the screen is as high as possible before the autosroller starts.
The rest of the screen is just derping around, courtesy of fuerchter.
This stage is kind of awkward, having lots of plums, but no real ground to boost on them with. In the beginning, we jump off a livingstone's head at a high speed. What happens is that Rayman was riding on the plum, but because it lands on the livingstone's head, it gets removed from under his feet. Rayman keeps the speed from the plum, plus his walking speed, allowing him to go much faster than should be possible right here.
Plums move dog slow in the water, so we want to punch them as far into the water as possible. After dropping into the water, plums have a small delay before they can start moving, so it's okay if Rayman needs a few frames to get on them first.
We can build a lot of speed on the plum here, by carefully bouncing it across the right spots on the ground. Originally, I was hoping that we could punch the moving plum all the way onto the higher platform, but sadly this was not to be. The rest of the stage goes by fairly straightforward.
Lord help us. Some people may remember the ceiling breach that was used here in the GBA TAS, and we use it in this run as well - but it's a million times harder here since we do not have the helicopter power to assist us. Getting both Rayman and the plum through the ceiling without helicopter was easily one of the hardest parts of the TAS.
The jump over the moat is really close as well, but since we manage to do it, we can keep riding the plum across the next island, saving a bunch of time.
The rest of the stage is more plumboosting. Annoyingly, there is no way to make it past the hunter with the plum, so we just take the next one instead. We get a lot of speed from it.
In the GBA TAS, Rayman had the helicopter power here to make the jumps in the beginning a lot easier. Here, we use something called early cycles. By carefully moving the camera in a specific way, we can make lily platforms move in just the right way for us to get across.
Normally, we wouldn't be able to make the swinging plum cycle after the photographer. By turning around and moving the camera left, we can change the cycles such that Rayman can jump on the plum instantly. This saves about a second over just waiting for another cycle.
Lastly, we grab the final cage with a really precise punch. This is only possible if you have more than one speed fist, and even then it is frame precise. Normally, you're supposed to get the plum from after the goal post and punch it all the way into the water. That's slow though, and we don't do "slow".
This is an autoscroller. Nothing much to mention about it, but at the ending, there's a number of vines Rayman needs to jump across. Rayman can't be too close to the right edge of the screen while jumping on those vines, or he'll end up partially outside of the screen and die. This is why we slow down a bit toward the end.
There's no way to manipulate the camera to make this stage's swinging plum cycle. We ride a plum down to the goal sign - not only do plums move faster than Rayman, but they also can fall faster. Rayman also touches the goal sign while the plum is still in midair, which is another bonus.
This is Moskito. He works nearly identical to Bzzit from earlier, but he has a few new moves in which he carries and drops prickly berries on us. There is no way to hit him during those parts, so we just gotta sit them out. He can also charge sideways from a lower height, in this case we need to hit him closer to the edge of the screen. We skip the 7th hit on Moskito, because this makes him hang around on the center of the screen for two hits in a row afterwards. This saves some time overall. On the final hit, we can just hit him as early as possible, since he appears off the edge of the screen. Sure enough, Moskito goes down, and we go through another animation.
Check out these rings. This is a glimpse of things to come.
This stage is significantly different on PC, and completely absent from GBA. The trigger for the first cage is below the slippery platform, so we use a jumping fist, clip through the ground, trigger the cage, and hit it on the fist's return path. This required very precise optimization to do it in time.
After landing on the ground, we actually go to the left for a bit, so that Rayman can catch the entirety of the downward slope for acceleration. Normally, Rayman gradually loses his speed while walking/crawling on straight ground, so by alternating between R1 and Up/Down on each frame, we can preserve his momentum for a little longer. The rest of the stage goes by fairly straightforward.
This stage is very straightforward, but it contains one very large sequence break: By taking damage, it is possible to clip through a wall of spikes and get to this stage's cage early, saving a lot of time over the intended route.
Zipping was originally discovered in this stage and is still used to great effect here.
Instead of climbing up the pit where the cage is, we just opt do a deathwarp out of there, returning to the photographer. The original strat for this area was to take a fall in the crevice to the left of the area. However, recently, it was discovered that by touching a spikey ball right as Rayman enters his falling animation, taking mortal damage skips his damage animation entirely. This saves some time overall over falling down the pit, so it was hexed in as an improvement. Some other minor improvements were also implemented while hexing the stage.
This is why we wanted to have the ring grabbing power. The cage in this stage is only accessible by a very precise and large ring jump - before speed locking was discovered, anyhow. Now, it is easily possible get grab the cage, even in real time. Once again, we hit the cage on the fist's return path, staying outside of the little crevice the cage is in. As an added bonus, because we touch the wall while Rayman is in his spinning animation, we can move to the left at 3px/frame while falling, faster than normal. The rest of the stage is pretty unevenetful.
To get to the first cage in this stage, we need to undergo a long and boring cloud ride, just to reach a ledge that is barely too high to reach using a normal jump. Nothing I tried ever could skip this cloud ride. To add insult to injury, in the Japanese version of the game, the devs added another spike ball right at the ledge so that Rayman can damage boost up it right from the start. Of course, this is not present here.
We deathwarp once again to get out of the cage area, skipping another equally long cloud ride in the process. Originally, we just had Rayman fall to his death, but once again, an improvement was discovered and hexed in: By scrolling the camera up ever so slightly, Rayman can drop down several ledges in a row, eventually getting beneath the camera scroll. If this happens, he'll die sooner than if he fell all the way down to the bottom of the map.
After this, we undergo a long turnstile ride. We try our best to add entertainment to this section, but other than jumping around, there's not much to do. There's a weird glitch with the turnstiles though. As Rayman walks off one ball, if you hold Up/Down on the next frame, Rayman may end up on the ball above or below him. This only works if the balls are in the right arrangement to eachother. If you look closely, you can see we already did this earlier in BH-3 to get down the chute slightly faster than normal.
At the end, there's a cage behind the goal post. We go out of our way to get it, and use a zip to quickly get back up to the goal. We need to wait for the cloud to spawn anyway, so it doesn't matter that we kill the antitoons.
The big red dude is annoying. First of all, we jump up right at the start to trigger his attack animation early, so that we can damage boost through him without losing time. Rayman grabs a 1-up through the ceiling by using a specific height jump. Getting the 1-up this way allows us to skip the big P later in the level, since we only need 3 hit points going forwards anyway. The disappearing cloud above the wrong notes can only be reached by using a jump extend. The rest of the stage goes by as expected.
This stage is where floor clipping really breaks the intended route of the level. Most of the stage is just careful momentum optimization. In order to grab the final cage, Rayman does a medium super jump, going just high enough to hit the cage, but not high enough to land on the platform. On top of this, we carefully manipulate Rayman's velocity so that he lands right at the corner, clipping through and landing at the goal. I am especially proud of this moment.
The trumpets always accelerate Rayman to a fixed 1790 subpixel speed, or about 7 px/frame. This section is pretty annoying in real time, as any mistake can make Rayman tumble down and force him to start over. Right at the beginning, we use a trumpet's boost to do a super jump, skipping another two trumpets in the process.
After getting pulled through the crawlspace, there's a section in which Rayman goes up a steep slope. We manage to jump through the slope here, going an entirely unintended path. It doesn't save a lot of time, but this route was entirely unexpected.
A trigger in the air spawns a cage behind us right at the start.
By clipping through the ground right before dropping to the photographer, Rayman keeps his stored speed, but stops having slippery physics. We use this speed storage to go much faster than intended exiting the drop, then using the momentum to do a superjump up to the cage. This trick was originally found on GBA, long before we understood either speed storage or superjumps, and is applied nearly the exact same way here.
After the cage, there is a section with many small slippery platforms. Careful speed manipulation and application of fistboosts is required here to make it past the clarinet and keep enough speed to go through the following section quickly.
The ending to the stage is kind of peculiar. Normally, the goal is only activated by an invisible trigger in the air, hiding slightly left of the upper platform. By approaching the end with a superjump, we can trigger the goal right away, which saves a bunch of time.
This stage has a lot of potential routes going through it, owing to the existence of several possible floor clips and slopes that can be jumped through. Say hello to Mr.Sax, because this is the only time you'll ever see of him in this run. We'll skip him later.
There's no way to skip taking damage from him without losing time.
We finally get the helicopter power here. It'll be useful a lot going forwards.
This is another level we could theoretically finish in the first runthrough, but the cages are too far out of the way to do so. We start the stage off using a huge ringboost, clipping through a wall to get the upper cage in the level. Sadly, there is no way to set up the ringboost any faster. Originally, Rayman was going to clip through the ground from there and finish the stage normally, but it was figured out that by facing backwards, we could actually grab a ring from inside the cage area and clip through the next wall as well. This is another improvement that was hexed in later, and makes the stage go by incredibly fast.
We'll come back for the other 5 cages later. Funnily, the only cage we do actually grab in this run is the one that you're not actually supposed to be able to get without the running power, while we skip all the other ones.
Enter Mr.Stone, who chases you across the level. If Rayman takes damage from Mr.Stone, he is launched to the right side at high speed at 5px/frame. Oddly enough, if Rayman touches Mr.Stone multiple times in quick succession, he gets knocked back each time, but he doesn't take extra damage.
Normally, after the first ring section, there's a pit that Rayman is supposed to drop in to let Mr.Stone overtake him, but we can just use the rings to skip this pit and outrun Mr.Stone to the next section. We need to wait for Mr.Stone to catch up for the next autoscroller to begin, however.
You can see Rayman walking off a boulder, activate helicopter and go much faster than normal. This is the first time we use speed storage in the TAS, although its use is mostly incosequential here.
At the end, there's a large chasm that is normally not supposed to be crossable by Rayman. The spikes here are instant death tiles, so we use Mr.Stone's huge damage boost to get over. Then, we do a large ring boost on the first frame where the autoscroller unlocks to get to the end quickly.
The Hard Rocks
Taking a deathwarp at the beginning is somewhat faster than walking back. Once again, we implemented the damage animation skip by hexing it in later.
Most of the stage is riding on clouds. We try our best to make it entertaining throughout.
The stage actually has two exits in the level. Naturally, we go for the one that is closer, by dropping down in an unintended spot and ringboosting right to the end. You can see that we land really close to the ring, so we first need to build some distance to it before we can activate a ringboost. To this end, we actually do a small ringboost to the right, so that Rayman can get to a ringboost to the left quicker.
Damage routing is very important at the start of this level, as we do not have a lot of health to work with. We avoid the small P in the beginning, so that we can use the extra hit point later.
Scrolling the camera up makes the upper cloud spawn slightly earlier.
Getting the P in the way we do fortunately sets up the camera just right so that the rightmost cloud spawns in a good position. We can then use this cloud to superjump up to the cage, saving a bunch of time over waiting for the cloud normally.
The boulders have an interesting property that can be abused for speed: When you hit them, they rumble slightly back and forth, moving Rayman along with them. If you break the boulder on the exact frame where Rayman is being pushed forward, Rayman's walking speed and the push from the boulder are combined, allowing him to jump off at a higher speed than normal. This works similar in principle to the livingstone jump from SOF-2. This is another improvement that was only discovered late in the run, necessitating it to be hexed in after the fact.
This stage has some inexplicably short autoscrollers. They're barely 2 screens long each.
The final section of this stage is tricky. We want to take damage to walk through the spike tunnel, but Rayman cannot actually touch the goal while his hit invulnerability is active: The hitstun must last long enough to get through the spike tunnel, but run out before he touches the goal.
We end up jumping into a safe zone between the hunter and his pistol, which allows us to delay the damage boost until just the right moment.
Superjumping really breaks this stage wide open. Without the superjump, we'd be grabbing the first cage by doing a deathwarp, but thankfully, this is no longer required.
We walk to a specific spot on the map to trigger the second cage. Getting the cage originally presented a problem, as there is a golem hurling lava balls in the way, but it was figured out that we could do a superjump and hit the cage using a returning fist. I was incredibly happy with this discovery, as I did not only anticipate it coming into the stage, but it also saves time and looks slick as hell.
The final cage is normally intended to troll the player, as they have to climb up all the way out of the pit to get it, but it can be gotten fairly easily by just using a returning fist while dropping down. At least it's not as bad as the final cage in the PC version of this level, which requires a huge amount of backtracking no matter what.
In this level, we get the Super Helicopter power, which allows Rayman to fly infinitely through the level. The super helicopter has its own unique movement mechanics which are fairly tricky to optimize.
To begin with, the Super Helicopter is only activated after Rayman's normal helicopter animation finishes, so each jump there's a delay to when we can start using it. The super helicopter allows Rayman to go at up to 3px/frame, which is faster than walking speed.
The super helicopter has a lot of inertia to it; it takes a while to turn around and to build up speed again. Because of this, careful speed manipulation is required once again.
Going upwards with the super helicopter is a particularily tricky affair. Pressing X only makes Rayman rise up by 1px/frame. If he's stationary, pressing X again will make Rayman will rise up by 2px/frame. The fastest way to gain height is to double tap the X button every 20 frames. Often, we need to go both up and forwards, which is very tricky to do: Between each X tap, Rayman must gain some horizontal speed to go forward, and then lose it again so that we can go up quicker.
The stage itself is just careful movement optimization. We can cut some corners shorter than we're supposed to by taking damage at the spikes. Some jumps are specifically taken to influence spikey ball cycles.
This is a unique stage. Above Rayman is a slab made of rock which is dragged down by two boulders. Rayman must cut the ropes holding these boulders using his Super Helicopter power, before they drag him into the water below.
Cutting the ropes is pretty easy in a TAS setting, although the super helicopter's awkward mechanics can make it a little bit tricky. Regardless of how fast we cut the ropes, we have to wait for the water to drain, so we have some room to play around.
The cagegrab in this level is cut short by using a return hit once again. It only works because there is no solid wall at the edge of the map, so the fist just flies offscreen. The timing for this is very tight.
Say good-bye to the super helicopter for now. We'll be seeing it again later. This stage also consists of two autoscrollers. This time, they're started by Rayman reaching a certain Y position on the map. Similar to SOF-1 before, we want to make the camera scroll up as far as possible before each autoscroller starts.
The superjump after the first autoscroller would not reach without using the fist.
In the second autoscroller, we demonstrate another unique property of the boulders. Similar to THR-2 before, if Rayman destroys a boulder while he lands on it, he may be launched into the air and do a superjump. Sadly, there is no place where this trick can be used to save time.
We get some slippery physics once again. Making the jump after the first snowy section is incredibly precise, and requires careful manipulation of both horizontal and vertical movement.
On the second slippery section, Rayman cannot jump, as he would touch the spikes otherwise. Therefore, we once again alternate between R and Up/Down to preserve his momentum for longer.
In order to drop down to the first cage, we touch the side of the small snowy platform. This resets Rayman's slippery status and allows him to move left at running speed, similar to BH-4 before.
The lava balls are skipped with a very precise jump.
Time for Mr.Stone to get dunked on. Mr.Stone can be damaged by hitting the big pendulum in the middle of the screen. It is out of reach normally, but a number of different tricks have been found to hit it far more often than intended. Additionally, the pendulum has a long recovery time between hits, which needs to be taken in consideration.
Mr. Stone has a bunch of different attacks, a lot of which can be abused to damage him unintended.
We deliberately delay the second hit to change Mr.Stone's attack pattern to a more favorable one. When Mr.Stone walks to the other edge of the screen, he will do a turning animation. We want to delay the pendulum hit right until the frame his turning animation begins, as this cancels the animation, making his next attack start quicker.
The final hit is peculiar as well. Normally, it is not advisable to hit Mr.Stone while he's in the air, because he then does what's called "taking a vacation", where he will disappear from the screen for some 3 minutes. On the final hit however, it's okay, and the fight will end without delay. Mr.Stone will not do his defeat animation now, however. All in all, the fight goes by significantly faster than it would in a casual playthrough.
Finally. This is where the speedrun begins.
Twilight Gulch Revisit
We use the running power to grab the remaining 5 cages in this level. We go here first because, as the mountain world is still loaded, there is no loading screen for this level. We limit ourselves to a 15px/frame ringboost here, as it's quicker to activate and gives us full speed storage for later.
Right off the bat, you can see the huge difference that speed storage makes.
Delaying the cage hit until the very last frame before Rayman dies actually saves a frame.
We exit the stage through the entry sign. This saves all the cages we have collected, but it actually resets our ting count, HP, lives and fist power.
Using speed storage makes this level go by much faster than intended. The tradeoff is that any jump in the opposite direction has to be taken much slower, along with any jump where a sprite platform is not available to boost off of. By landing on the edge of a sprite, we can chain speed storage between sprites with minimal delay. It's faster to run off the right edge here, because Rayman doesn't need to turn around for a frame first.
Careful camera manipulation lets us reach the second cage faster, as the Tibetian will lower his bongos in just the right moment.
The rest of the stage goes by very fast, as there's virtually no obstructions in the way.
This is the final true autoscroller in the game. We cannot do any spin jumps in this level, because otherwise it would break our speed storage. In a similar fashion, we need to take a walking jump off the final platform.
This level contains the fabled Mr.Sax skip. Because all the cages are in the first screen, Rayman can just break all the cages on the first screen, deathwarp to the beginning and skip the fight with Mr.Sax entirely. As only the cage collection is checked for when entering the final level, this means that Mr.Sax is left to collect dust.
The TAS takes a completely different route through the level than intended thanks to the existence of floor clips. For starters, we grab the upper cage first by clipping into the ground at the start and doing an extended jump at the beginning. This jump is really precise and barely reaches even under the best circumstances. We also need to make sure that Rayman is not moving while jumping off the ground so that he doesn't get slippery physics in mid-air, which would mess up the speed storage off the cloud afterwards.
After the first cage, we can either go the upper route using sprite boost, or drop down and take the slippery lines instead. While the slipperies allow us to reach a higher top speed, the top route was deemed faster overall thanks to speed storage.
Another return hit takes care of the second cage. Not having to climb up to it is part of what makes the top route faster. After dropping down, we reactivate speed storage using the helicopter. Rayman does not lose any falling speed as long as he punches on the frame right after activating the helicopter.
After the third cage, we clip through the ground, landing right at the edge to the crawlspace. By activating run before crawling, we get ever so slightly more velocity into the crawlspace, accelerating slightly faster.
In the end, we grab the final cage and deathwarp out of here. It could in theory be possible to die faster by abusing the ring mechanics, but this would destroy our speed storage. It's also possible to use the rings to zip back up to the beginning, escaping the end of the stage without dying, but this is slower as well. Thus, we exit the stage without ever fighting Mr.Sax.
It is also important to mention that in this stage, the nondeterministic emulation begins to manifest. This stage may have different lag frames depending on the situation. If you are watching this on emulator, after the level ends, on the map screen, you should have 1251 lag frames. If you have 1246 lag frames or anything else, the run will desync later.
Pink Plant Woods Revisit
Even this tiny screen gets cut short considerably by speed storage.
It's actually faster to go back to the flower to activate speed storage. While going through the level, we need to be careful not to touch any vines, because this kills our momentum. It is impossible to reach the upper platform while keeping the spinning animation, so we wait until the platform with the P to get up to the cage. This P will come in handy later. Between the platforms, Rayman needs to slow down before each platform edge so that his speed storage is not broken. The final plum section and cagegrab were particularily tricky.
Since we already got all the cages in this stage, this is just smooth sailing. We take an unexpected and really cool route through the level. The final jump over the hunter is the only tricky section about this level.
Anguish Lagoon Revisit
We grab the remaining three cages now. Like in Twilight Gulch, we can just exit through the entry sign as all the remaining cages are on the first screen.
The superjump at the beginning is also possible on the first runthrough, but without the hanging power, Rayman can't actually hang on to the platform with the cage. If it were possible, clearing all of AL-1 in the first runthrough could potentially be faster.
The ringboost is particularily tricky. There's a cage in the bottom right corner of the screen, and it would make sense to ride a ringboost all the way over there. However, returning from there would be dog slow. Additionally, we can't take a deathwarp back to the start because this would despawn the cage near the entry sign.
Thus, the fastest strategy is to use the ring to boost as far to the right as possible, and, at the maximum distance Rayman can be to the ring before it despawns, activate speed storage in the left direction. Even with speed storage primed, we can drop from platforms at 3px/frame by either hitting O right as Rayman walks off, or by letting go of O at the end of the platform and skidding to the edge. Which one works better and is faster depends on the situation.
The next challenge is to get the cage before activating speed storage off the plum to go back. There's just barely any room for the fist to go above the hunter, so we need to carefully position the plum to get just right height. After this is done, we run off the plum and zoom back to the start of the screen, grabbing the final cage on the way. Finally, all of the revisits are complete, and we can go and finish the game now.
This level was Eraser Pains. Between all the routing, difficult tricks, and the desync, this level really made me rip my hair out. Eraser Plains 1 is also the first noticeable indication of the desync. If the audio starts glitching in this level, the run will
desync! If this happens to you, load a savestate from before Mr.Sax and try again.
The audio glitches are not actually directly related to the desync itself, but it just so happened that while hexing, we ended up with a version with glitching audio and one without, and we could chose which one would playback properly. We specifically made it so that the version with audio glitches would desync later on.
Routing wise, the first cage in this level could be grabbed much faster by dying and going back to the start. However, if we did the deathwarp, we'd have to exit and reenter the level through the entry sign to reset Rayman's fist level. This is required for a trick later in the level, and cannot be circumvented. Because loading times are so long on BizHawk, we opt not to do the deathwarp here.
The yin-yang zip at the beginning is just barely faster than going the normal way. Still, it gets points for swag.
Going back from the cage, we once again activate speed storage going to the right. Like in the stage before, this cuts our ringboost short, but the total time gain from having speed storage is well worth it.
The yin-yang wall is tricky to get past, especially since Rayman cannot touch the walls without losing speed storage. Taking damage is the fastest way to get through here.
The pencil cycles in the second half of the level are just awful. We try to make the best out of them, but there is no avoiding some of the waiting. What's more, getting the final cage requires a bunch of backtracking, which further subjects us to the cycles. We can run off the sharpener and retain our stored speed by holding Up/Down from the frame where Rayman runs off. This is the only way Rayman can do be in his spinning animation without affecting speed storage. After grabbing the cage, we let the camera scroll up a bit to reset the pencil cycles.
This stage was awful to route. There were a lot of choices to potentially approach the stage ranging from using zipping, to preserving speed storage, to just riding a yin-yang as Small Rayman throughout the level.
Normally, you're supposed to trigger a fairy and become Small Rayman in order to get the first cage. Getting a yin-yang into there however allows us to skip this entirely. After zipping out, we move the camera left slightly once again to reset the pencil cycles.
Going through a wave of pencils while using speed storage is very tricky. We need to constantly keep jumping to keep it active. Surprisingly, even with having to jump and stop constantly, it is still faster to speed storage through the pencils than to run through normally. Having speed storage saves a lot of time for the final section of the level. The pink erasers are supposed to bounce Rayman up, but by landing on the edge and holding Up/Down, we can simply jump off again, preserving speed storage.
The first cage in this stage can just barely be reached using a maximum charged up fist. It is a 50/50 chance if the fist reaches, and, without tool assistance, there is no way to tell if you get it. If Rayman does not have a high enough fist level, you will need to go the long way around to get the cage.
After the cage comes a long and complicated section of yin-yang manipulation. As Small Rayman, you will always hit a yin-yang with your fist as long as you're standing on it. This allows us a lot of control in manipulating the yin-yangs. We zip up to the second cage. It is important that the yin-yang is placed just right so that we zip at the right edge of the wall so that Rayman does not get stuck in the wall.
The section after the second cagegrab is kind of notorious. There is a cage here, and both the cage and its trigger are too high up to reach normally as Small Rayman. Usually, you're supposed to come here as Normal Rayman, get the cage, then backtrack to a fairy and become Small Rayman to get through the maze section at the end. Entering the area, we zip up through the inky platform as small Rayman. It would also be possible to take the yin-yang with us all the way up to here, but it was determined that it was faster to get another yin-yang from the pit later on.
We drop into the pit, and punch the yin-yang out of it. This is just barely possible, because all the other spiky yin-yangs get in the way. By carefully steering the yin-yang each bounce, we use it to jump to the cage trigger. We then use this yin-yang to walk into the slope, doing a superjump and reaching the cage, hitting it with a fist.
We then bounce the yin-yang in just the right way so that Rayman can use it instantly to zip through the ceiling, skipping nearly the entire maze section. Every bounce and every jump we do here matters for performing this strategy.
It is right here that the run may desync. Rayman will not do the superjump and thus fail to hit the cage. He will then hang around in the maze section like a dummy without making progress. Needless to say, I was less than thrilled when I discovered this. If the run desyncs for you here, load a save state from before Mr.Sax and try again.
Small Rayman has a few interesting properties. Most notably, some of his movement actually has slippery physics. This allows us to charge a fistboost, which lets us move at up to 4px/frame. We specifically avoid the fairy here to remain Small Rayman for later. Doing a superjump is oddly harder for Small Rayman than for regular Ramyan. By staying Small Rayman up to this point, we can just jump through the crawlspace at the end. Usually, you're supposed to go out of your way to trigger another fairy, but we manage to skip this.
All in all, this stage was quite a handful, and I was incredibly relieved when it was done.
Viking Mama is a fairly long and tedious boss. At the start, you need to kill two pirates. The first pirate has a pretty long invulnerability time, while the second pirate harasses you by throwing bombs at you. After the first pirate is defeated, the second pirate becomes vulnerable. Each time you hit his crow's nest, he drops a handful of bombs into the arena. These bombs are one of the few instances of RNG in the game, and had to be reworked when hexing the run. Thankfully, they do not actually influence time in any way.
After the third hit, the second pirate also drops from the ship, becoming vulnerable. Like the first pirate, he has a pretty long invulnerability time between hits. After both pirates are defeated, Viking Mama emerges.
Viking Mama becomes vulnerable every time she flies up into the air. On the first hit, Rayman can just bounce on the daggers and hit her normally. For the second hit, we jump into her. Like with Mr.Stone, the we get an enormous damage boost, giving us enough height to hit her in midair. We take damage from one of the blades to go behind Viking Mama briefly, which makes the final blade stop spinning and start moving earlier. The third hit employs a similar strategy, although we no longer have the necessary health to take another hit. Because of this, Rayman runs to the left side of the screen to make the blade start moving faster.
The third and fourth hits are pretty standard. The final hit once again requires taking damage, but need to make sure not to hit her too early, or the game softlocks. All blades need to be moving when Viking Mama dies, or the final blade will just spin around forever, and the game won't proceed. If this happens, you must reset the game.
Right at the start, we use a deathwarp to get back to the start a little bit faster. It also replenishes our HP back to three, which is just as well because we need that health. We cannot skip the damage animation here, as the pen tip is a damage tile instead of a sprite.
We grab the second cage by jumping into a small gap near the wall. It appears that the level designers did not actually intend for Rayman to fit through here, but nobody actually bothered to test it, so we don't need Small Rayman to get the cage. Lucky us, because this is much faster than going the intended way.
We need to conserve some health for later, so we need pass the pencils without taking damage. We set up speed storage from the ring while riding up the sharpener and use it to traverse the rest of the level quickly. To skip over the final ledge, a superjump is used.
This is another super helicopter stage. This level is generally easier to optimize than the Mr.Stone level, mostly because there's fewer spikes on the walls, and no moving spikey balls. Having the running power also helps a lot, because we can start any jump with running speed.
There's a P right at the beginning, but we decided that taking it loses more time than having the extra HP gains.
Flying up to the first cage is pretty tricky, because it's hard to get the helicopter to stop on a dime. We could jump off the ground and position Rayman precisely before activating Super Helicopter, but there's a long delay between activating the helicopter and being able to actually being able to gain height with it. Therefore, we just try to cut the corner close. There's a window of about 2 pixels between the wall and the damage hitbox for the pencil.
We also catch the pencils on a bad cycle on the return. To deal with this, we stand on the rightmost pencil to take damage from the ceiling. From the damage boost, Rayman lands on the right edge of the middle pencil, which allows him to clip through the right pencil. Getting past the yin-yang wall here also requires pushing Rayman as close to the wall as possible.
Once again, we deliberately skip a P because we can make do with only 3 hitpoints. The next section is a pretty tricky and tedious climbing section. Sometimes, Rayman can squeeze between the pin and the wall, allowing him to jump earlier.
Doing the momentum preservation technique on bouncy erasers allows us to jump without bouncing. This allows Rayman to jump below the pins sticking out of the ceiling, which is very handy. We arrive at the crawling section too fast, so the antitoon is still in our way. Sadly, there is no good way of getting rid of him. Pressing L+R on the final frame of a crawling section allows Rayman to start running one frame earlier. The antitoon on the second crawling section thankfully is more cooperative than the first, and does not get in the way.
Finally, the game spawns a cage right at the end of the level. There is no good way to hit it while it spawns, so we have to go back for it.
It's kind of tricky to get through the bouncy maze at the start. Rayman can just barely squeeze through the platforms at the beginning. If he landed on the ground, he would bounce up one level. There is no way to gain running speed in this area, so the best we can do is to get as many ledgeboosts as possible. Finding the optimal route through the maze is kind of tricky. Going backwards, it's actually faster to turn around to also get forwards ledgeboosts by a whopping 1 frame each time.
The second part of the stage has its route thoroughly broken by the established tricks. Usually, getting the cage necessitates a long and tedious amount of backtracking, but by clipping partially into the ground, we can superjump right up to the cage. As a bonus, we get speed storage right from the inky platform, so we can just ride it out all the way to the end of the level.
Space Mama's Crater
This is another level where the route has been completely broken. In the beginning, we go up to an optional area to get a ringboost through a wall. This is slightly faster than going the intended way, but the real advantage is that it sets us up perfectly for the next ringboost.
Normally, Rayman needs to traverse a crawling maze to proceed, which is very slow. Instead, we clip into an optional area of the map and just go up the fast way instead.
After this, you see the rare and fabled double wall clip. This only works on very specific positions. From there, we do another ringboost which also gains some height, allowing Rayman to clear the ledge and move to the edge of the map incredibly fast. It was around here that we finally got the ringboost brute force script to work with, which quickly becomes invaluable to us.
I was wondering what the fastest way to approach the upper cage was. To the surprise of nobody, ringboosts won out. Rayman specifically gets just enough height to punch the yin-yang out of the way and hit the cage before falling down, gaining full speed storage in the process. Rayman may actually move faster than his fist, so it can make sense to get him as close as possible to something before he starts punching it.
After this, we need to go up and to the left. We can either go the slow diagonal way, or we just ringboost right to the wall before using another ring to embed us in the wall and zipping up. Again somewhat unsurprisingly, the fast and cool way won out.
The game wants to troll you again, spawning a cage right as you walk into the goal. Not with us, however.
This stage actually has two exits, the other one has you going a completely different way. The GBA and PC versions actually require going to the other exit, because there's a cage there.
This is another stage that has several potential routes. In the start, we do a large tether jump to skip a bunch of rings in this section, before clipping through yet another wall. Rayman exits the cage area through a tiny crawlspace, which is one-way only.
We try to get as much speed going into the second cage area, but even so, it is too tight to keep speed storage all the way throughout. Additionally, the antitoon gets in the way. Exiting the area, it is actually slightly faster to get stuck on the ceiling for a little bit while grabbing the ring. As Rayman clears the corner, the ring yanks him to the left at considerable speed.
Before stepping on the slippery section, Rayman actually has to slow down for a few frames to influence the acceleration on the inky slope. By manipulating it just right, we can actually get 9px/frame instead of only 8px/frame.
Dropping into the chute is kind of tough, because it's easy to overshoot it or get stuck on the right corner. We clip into the ground at the end of the slope, before the platform actually ends to make it in there slightly easier.
By keeping the camera low, we influence the pencil sharpener cycles to be more favorable. Jumping to the upper ledge is a well known shortcut that is possible in real time.
It is kind of tough to start speed storage from the left side of the pencil sharpener, because it's so close to the wall. We manage anyway, using precise positioning. From here, we somehow have to keep speed storage enabled while moving to the left, which is somewhat tricky. We specifically drop from the edge of the eraser because it makes Rayman move to the left quicker while falling. Keeping speed storage active is well worth it, however.
Next, we trigger a ring that we use to zip up to a cage trigger. This is where the ringboost script proves its worth, as we were easily able to specifically nail the fastest possible ringboost in this seciton. Unfortunately, we get to the disappearing cloud at the worst possible cycle. This loses us some 30 frames.
The final cage trigger is once again located behind the goal. While there is a slope near the trigger, it is impossible to get a superjump here. Otherwise, we could save a bunch of time by superjumping up to the ring. Damage routing is cruical in this section, as we need enough health going into Crystal Palace.
Space Mama is a really long and really arduous fight. In the beginning, she attacks four times, allowing us to hit her once per attack. By moving behind her before she starts her attack, she'll turn around, which delays her attack by a bit.
We abuse this property on the 5th hit to make her invulnerability time run out before she can finish her attack, allowing us to hit her for a 6th time as well. On the 7th hit, we just hit her right as she becomes vulnerable, as she'll trigger her next phase right away.
After this, she'll fly across the screen a couple of times and drop exploding pressure cookers on the screen. This part is entirely fixed and takes forever, all we can do here is dodge.
Next, we do another double hit, after which Space Mama retreats behind her washing machine and fires laser beams. We need to destroy the washing machine to proceed. For a long time, it was thought that the washing machine needs to be hit a lot of times to be destroyed, but it turns out it actually just has a really long invincibility time. You can see the washing machine's health indicated by the little dial on the front of it.
We cannot do a double hit on the next attack, so instead we just do a normal hit. Even on normal hits, we wait until after she starts her laser attack to cancel it. After this point Space Mama will do a pot attack after every laser. Thanks to the double hits, we can avoid most of these pots. The pattern she chooses is RNG dependent, but again has no bearing on time. This is another part that had to be changed while hexing the movie.
On the final hit, she actually shoots two beams, presumably to throw off the player. This extends her vulnerable period long enough to get the final double hit on her without making her turn around. With this, the fight is over.
This stage is a maze of rings, making the ring script more important than ever. The cages in this level are placed very awkwardly too, since they all spawn behind Rayman. The first one is not so bad, but the second one spawns behind a wall. Getting it requires the hardest return hit in the game. Rayman needs to cover a lot of ground while his fist is in the air. Additionally, the fist is offscreen for most of the trick, making it hard to see what's going on.
The third cage is awkward to get as well, as the trigger for it is situated too low for Rayman to easily grab it on the way - we could place a fist right over the cage as it spawns, but there would be not enough time for Rayman to grab on to a ring, so he'd just fall to his death. Instead, we grab another ring, quickly boost over to the cage, as Rayman can travel faster than his fist using rings, and grab it from up close.
From there, we can hit the right ring and take damage from the spikey platform. Not only does taking damage position us just right for a ringboost, but we also get invulnerability time to clip through a wall lined with spikes. While moving through the wall, we grab another ring to push ourselves through the second wall. Sadly, there is no way to clip through the third wall as well. Conveniently however, since we go through the wall at 47px/frame, we instantly get full speed storage from it. Finally, we boost over to the goal.
It is important that we keep speed storage active throughout the level, as it's required for some pretty big timesavers later. In the beginning, this requires getting through a fairly tight maze with many spikes and vertical walls that can reset our speed storage. A number of long jumps and precise damage boosts are applied here to skip some of the stalactites.
Sometimes, because the edge of the stalactite platforms is so close to a wall or the ground, there may not be enough room to run off of them. We can work around this the times it crops up in this area, but it looks pretty awkward each time.
At the photographer, we do a superjump up to the cage. Getting this jump was extremely specific. Normally, clipping into the ground resets our speed storage, so we carefully had to adjust our speed and position to avoid this from happening. From here, you're normally supposed to trigger a long, boring, cloud ride to get to the final cage, but we have other plans for this section.
Fortunately, there is a P right on our way. Routing out the stage, I was worried if we could grab it, because we need a lot of health in the following level.
We abuse the rings by getting a huge tether that is large enough to clip Rayman into the ceiling, right next to the final cage area. Before ringboosting was discovered, it was thought to be impossible to get a tether long enough. Even so, we need to grab the ring at a precise spot to get just the right arc. As Rayman clears the right wall, the tether actually elongates slightly, which is what gives us enough length to go far enough. We remain a few pixels into the wall so that we can exit the wall at a higher place. If we entered the wall one or two pixels more to the right, Rayman would get stuck in the ceiling forever.
Overall, it seems like a huge detour to go and get the cage this way, but compared to taking the cloud ride, it still saves several seconds. The spikes guarding the entrace to the cage are instant death - there is no way at all to pass them any other way.
From this point, we make our way to the end of the stage. We activate the descending boulder and let it despawn by scrolling offscreen, which is faster by about a second.
Eat at Joe's
Enjoy about 40 seconds of Joe talking to you. There's nothing to do in this screen at all.
This stage is entirely dark, save for a small firefly that lights up the area around Rayman's fist. Naturally, the map viewer script helped immensely here.
The light tends to follow the fist with a lot of inertia, so we try not to use the fist if we can. Getting through the spike tunnel, we need to crawl at a few specific points so that Rayman does not touch the ceiling, which would reset his speed storage. Passing the hunter is tricky, because we cannot just do a running jump over him, so instead, we just take damage.
Once again, we can fortunately grab the 1-up without losing any time. The rest of the stage goes by pretty fast on account of speed storage and knowing our way in the dark.
Sadly, the wall you see to the left is too wide to clip through.
There's several possible ways to use speed storage right at the beginning of the level. It's fastest to grab a ring, so that the tether drops Rayman through the boulder. Swinging on the tether, Rayman also moves at 11px/frame, which is converted into 5.5px/frame of speed storage. This allows Rayman to move through the corridor at 6px/frame using speed locking.
Running through the spike tunnel requires us to carefully manipulate Rayman's position, so that he does not get stuck on the ceiling.
We zip up to the third cage area using a ring. We specifically need to use the upper ring, as the lower ring has no suitable ringboost that can embed us in the wall. The ring boost script was especially useful in determining this fact quickly. After dropping from the third cage area, we grab a ring on the way down so that the swing moves Rayman downwards by a few pixels. It saves a frame.
What follows is a series of pretty tight floor clips. The hit invulnerability barely lasts long enough to make it through two floor clips each time. After this, we grab the final cage by shooting the fist and running to the trigger so that the fist reaches the cage as it spawns.
The task of this level is to hit a switch on the other side of the map to activate a series of moving saucers, then go back to the beginning to spawn the goal. The trigger for the goal is far up in the air above the starting location, but it's just barely impossible to reach using all conceivable methods. Even if we did find a way to skip it, the saucers would not actually be active in the next level, which would leave us stuck.
Once again, this level has several possible ways to sprite boost and several possible damage routes alongside it. We choose to cut our ringboost short and get speed storage for later, although the time difference between this and just doing a full ringboost is almost nil.
After the spike tunnel, Rayman jumps over a large section of ground. This is to avoid a trigger for two spiders from activating. After this, we also turn around for a couple of frames to get a better platform cycle later.
Once we punch in the plug into the wall, the saucers are active. They move along a fixed track at a set speed, so this is another section for a playaround. There's a hidden 1-up on the way, which once again comes in very handy for us.
If you destroy enough lava balls, the game may actually prevent further shards from spawning. The shards move as fast as the saucer, so we break a lava ball so that the shard ends up right next to the platform. We take damage from it and do a speed storage jump right over to the goal sign trigger. You would think you could do a larger jump, but sadly only this jump is possible here. All the ground beneath the saucer is instant death tiles, which ignore hit invulnerability, so there's no damage boosting either.
Before dropping to the goal, we set up speed storage to the left from the falling ring. It'll come in handy later.
This level actually uses the same map as EAJ-2, but the opposite side. If you superjump up from the start, you can actually explore the level the opposite way
, but none of the sprites are spawned.
The level forces you to ride the saucers for a long time, so there's nothing to do except for messing around. There are a few potential skips that could cut out huge chunks of the level, but none of them have turned out to work, so riding saucers it is.
After the rising section with the birds, the stored speed is used to skip the final chunk of the saucer ride. Rayman can jump on the edge of platforms with instant death spikes, unlike with normal spikes. The positioning for this needs to be really precise, however, especially when going fast.
From there, we grab the left ring and boost to the right, building up positive speed storage. We then hit the left ring to do a huge tether jump to the upper saucer, which skips one saucer ride entirely. From there we jump to the uppermost saucer from which we can do a speed storage jump, skipping a large part of the ride.
Triggering the final cage is fairly complicated. After jumping to the trigger, we want to land on the saucer to reach the cage quicker. However, if we want to keep speed storage, we cannot do a running jump to the trigger. This prevents us from getting back to the saucer in time to land on it. Thus, instead, we drop down to the rings use a ringboost to land onto the saucer, reactivating speed storage on the way.
Rayman can jump up the clouds slightly faster than the saucer can move up. We cannot use speed storage going off the final cloud, which makes the final result really close.
This stage is refreshingly simple compared to the ones before it. Grab a cage without turning around for it as usual, thankfully the fist can catch back up with us in time before we need it again. Also thankfully, we can once again grab the P in this level without losing time.
The stage is finished off with a swift ringboost. Rayman actually clips through the hitbox of the bullets, which allows us to land on the goal a few frames earlier. Surprisingly, falling is actually one of Rayman's slowest motions. We also conveniently activate speed storage for the next level once again.
Yet another maze of rings. There's several ways to approach the first two cages. In the end, doing a floor clip and using speed storage won out. Running along the disappearing cloud, we need to wait until it moves up a few pixels before jumping so that Rayman reaches the trigger for the second cage.
After this comes a section of very fast back-to-back cagegrabs using ringboosts. The route is mostly determined by what order the cages are triggered in and is fairly straightforward. Rayman just zooms to each cage to break it before moving to the next.
Before the fifth cage, speed storage is activated once more to move to the final cage quicker. Damage boosting and jumping up to the ledge is the fastest way to approach this section, even in real time.
After all the cages are broken, all that's left to do in the stage is to climb up to the goal. The jump to the first ring is really close. From the ring, we do a large tetherjump which allows us to skip a platform cycle. Then, all that's left is to ringboost upward a couple of times.
Like Mr.Sax before, the cages in this level are all on the first screen. We could in theory avoid the Mr.Skops fight entirely by deathwarping and leaving through the entry sign, but, of course, there is no entry sign on the PSX version of this level. This means that unlike the GBA TAS, we have to fight Mr.Skops. If there was an entry sign, this stage would be even faster than in GBA because all of the cages are closer to the entrance here.
This fight with Mr.Skops is effectively an autoscroller, we can only do few things to speed it up. First off, hitting him with the fist wakes him up instalty, whereas otherwise, he'd slowly wake up and spot Rayman.
Skops then knocks out all the platforms Rayman is standing on. The order in which he does that is RNG once again. This is the third and final instance of RNG in the run. Once again, it doesn't have any impact on time.
We cannot get behind Mr.Skops. Behind his actual hitbox, there is an impassable death wall. Trying to move past it will always damage Rayman and knock him back. This means that we have to ride out the entire autoscroller with him.
When Mr.Skops knocks down the final platform, he will retreat before moving forward to chase Rayman away three times. Hitting him while he's in his forward stance will cause him to retreat immediately.
The rest of the fight is entirely an autoscroller. At the end, we use the lava and a ring to damageboost past Skops' hitbox to touch the goal on the first frame it's cleared by the death wall. This saves about a second over running to the goal normally.
In the fight, Skops shoots blue projectiles at Rayman from his tail. These projectiles will track his fist and go wherever he's going. To hurt Skops, Rayman needs to direct his projectiles back into him.
Beginning with the second hit, Skops will throw his claws at Rayman after every attack. We can cancel his claw by hitting Skops with the projectile just as he starts it, which saves about 2 seconds per attack. The timeframe for canceling Skops' claw attack before the projectile expires is very short.
Additionally, if the projectile hits Skops on the exact frame before his claw attack is skipped, he will not collapse from the hit, but he will still do his claw attack. This saves some time still, but not as much as skipping the claw.
On the first attack, Skops will not do the claw and go to the second projectile right away. This results in the following strategy for the fight:
- 1st hit: Hit Skops on the frame before he starts his second attack, skips his collapsing animation
- 2nd to 6th hit: Hit Skops on the frame after that, skipping his claw attack.
- 7th and 8th hit: Skops will move right up to Rayman and corner him. Just make the projectile hit him as fast as possible.
We try our best to play around with the projectiles while we keep them on screen. With Skops defeated and all the cages unlocked, we can move into the final level, Mr.Dark's Dare.
Rayman starts off on a frying pan, which we keep for the entire level. Rayman's movement is extremely limited on the frying pan. Most significantly, we can not use speed locking in this level. Right at the beginning, Rayman jumps and turns around, which is only possible when he's standing still. We use this to activate a fistboost, giving Rayman enough speed to last through the level.
From here, Rayman's velocity will continually decrease each frame. Riding down slopes while Rayman is going this fast will not give him any extra speed. Upward slopes are especially problematic as they will always sap some of Rayman's momentum, even if he jumps off right away. It is possible to avoid the speed loss from upward slopes by hitting the slope on the exact right position, but this is very precise and not always possible.
In this level, Rayman is chased by Dark Rayman. Dark Rayman will mirror Rayman's every move, and Rayman will instantly die should he touch Dark Rayman. We could skip him, but doing so would lose about 15 frames. For most of the level, we go so fast you barely even see him anyhow.
Most of the level is just careful movement and slippery movement optimization. A lot of small time savers and time losses can crop up here.
After the crawling section, there's a bunch of clouds Rayman needs to jump up. These clouds are spaced so far from eachother that it may be possible to miss the jump if you get unlucky. This actually forces us to delay by a few frames here, to avoid this from happening.
The ringboost is more involved than usual. Once again in this game, the fastest way is through the wall. It is also possible to go over the wall, but as we established, falling is slow. The ringboost needs to be taken in just the right way, or Rayman gets eaten by the camera and dies.
Once again, we want to have speed storage for later, so we somehow need to preserve it through the crawling section. By slowing down just enough, it is possible to touch the right wall without resetting speed storage. While it looks kind of sloppy, this is the fastest way we actually can keep speed storage for later.
Right at the end, Dark Rayman gets right in our face, so we briefly crouch to avoid him. This loses us somes 10 frames, but it's the fastest way to get past him. It's also faster still than skipping him entirely, so crouching is the preferred strategy here.
This stage reverses Rayman's control input so that Left and Right are swapped. Mr.Dark's latest dastardly scheme was swiftly defeated however by quickly going into the emulator's controller setup and switching the button layout around. Still, it reverses the effects of L+R, which was enough to make TAS input feel ever so slightly off during this section.
We need to keep speed storage active in the beginning of the level. Thankfully, Rayman can just drop from each platform to hang onto the next, keeping running speed in midair while not breaking speed storage.
The second superjump was originally thought to be impossible because of the tile layout. However, a method was found that gains just enough height to reach the upper cloud. Additionally, it was thought that the bomber clown would get in the way, forcing us to wait for him, but actually, we can use the damage boost to activate the superjump right away. Having speed storage for the next section saves a lot of time.
Next is a section with slippery slopes. Rayman can clip through the ground before the platform ends, allowing him to turn around and hang onto the ledge. This instantly resets his speed, which is really convenient. Not only can we take the curves really close, but we can activate speed storage out of the drop right away, reaching the cloud very fast.
The final section of the level is entirely circumvented as well. Normally, Mr.Dark will cast a spell on Rayman that forces him to run the entire way to the end. We can go much faster by abusing speed storage and slippery physics however, so we just jump past the spell. We carefully determined the best fistboosts to speed through this section fastest.
Mr.Dark's hitbox will actually hurt Rayman, so we have to jump over it. The final spell Mr.Dark casts will take away Rayman's fist. Even though we skip it as well, the final fight will still start as normal, without Rayman's fist.
The final fight, ladies and gentlemen.
In the beginning, Rayman must jump up three times to his fist. Without actually having access to his fist, the only way to cut jumps short is by activating and cancelling the helicopter, which may save between 1 and 3 frames each jump. It is also possible, but much slower, to advance the fight by repeatedly running to and from the fist.
Following this, Mr.Dark will cast a bunch of fireballs at Rayman, before enclosing him between two flame pillars. These pillars trap Rayman entirely. Rayman gets no invulnerability time from the flames, so if he's ever outside of them, he'll just die instantly. The next section is just an autoscroller, in which Rayman dances around between the flames while dodging more fireballs.
Just as things begin to look dire for Rayman, two Electoons swoop in and retrieve his fist. We jump up to it to grab it faster. I was considering taking damage to get up higher to grab it even earlier, but there's no benefit in that. Even so, Rayman needs to land on the ground again before the fight can proceed, so it's worthless. As a fun side note, if you crawl, the Electoons will not actually be able to give Rayman his fist. The flames won't close in any more either, so you can just lay on the ground for as long as you want.
We deliberately take damage from the flame as we land on the ground. Doing so skips an automated demo. Normally, Rayman would walk to the left side of the screen and wait for the next boss to arrive. By taking damage, jumping into the air, and then crawling, we can keep control of Rayman during this demo. As Mr.Skopstone walks into the screen, we position Rayman just right to start the fight.
Skopstone's weak point is his head. Normally, he will cover it with his claw if you jump up to it, making it impossible to hit. By taking damage right before the fight starts, we can jump up to his face right away and hit him. From this point on, we can continuously chain hits on him before he ever has the chance to cover his face. This requires a lot of precise movement, but makes a joke of the fight.
Following Mr.Skopstone is a pair of dual Space Mamas. They're vulnerable to both the fist and eachother's projectiles. However, both of the sisters share the same life bar and hit invulnerability, making the fight very simple: Just hit one as its invulnerability time runs out and the fight goes over without problem.
Last, Bzzit drops from the sky. By jumping before Rayman gets shrunk down, he keeps his full upward momentum, allowing us to hit him faster. From this point forward, every 58 frames, there is a one frame window where Bzzit can be hit again before he starts his next attack. Naturally, we chain it all the way and finish the fight off before Bzzit ever does one jump. Input finishes with the final punch. We get some fireworks in celebration and the game is over.
Phew. It has been my desire to make a full TAS of this game ever since I joined the site way back then, and now, 7 years later, I finally had the opportunity to make it happen. Starting the TAS, I anticipated that it would be a long and challenging project, but I didn't quite think it would take this long. This run easily is the largest TAS project I have ever undertaken, and might very well be the largest TAS project I ever will undertake. Needless to say, I'm more than glad it's finally done.
Regardless, the TAS has been the result of the work of many different people, and I have a lot of people to thank for helping to make it happen.
- fuerchter was a huge influence on the run. He found a lot strategies and routes for the game, and helped the TAS immensely in its inception. He found most of the RAM addresses that we use. He also developed the map viewer script, with help from markusa4. In the end, only very little of the input in the run is his, but his contributions on the whole cannot be overstated.
- To me, he's like the OG of Rayman TASing. I learned a lot of tricks from his old GBA WIPs, some of which still are used in this run today. His work motivated me to seriously pick up the game initially.
- For taking the time to make a PCSX-rr fork able to run the game. This how we could first examine the PSX version in detail.
- The BizHawk team
- For making an amazing emulator and porting the mednafen core to Bizhawk, finally allowing the game to be TASed in earnest.
- TASeditor & Mothrayas
- Helping on the ringboost script.
- Rayman on Discord
- The speedrunning community for Rayman has had a huge impact on the creation of the TAS. They found a lot of strategies and supported the TAS on the way.
- Everyone who has watched and given feedback on WIPs of this run or previous versions of the TAS on GBA.
Lastly, of course, I need to thank my partner-in-crime, got4n, working with me all the way throughout. The TAS wouldn't be where it is now without him.
With all that said and done, I ultimately hope that you enjoy the run! If you have questions, be sure to ask them and I'll be happy to answer.
This TAS was special I'd say. We've got some real problems, Eraser Plains, Moskito Nest, Ringboosting (which we made much easier with the lua script) but we managed to fix everything about this TAS. I'm glad we finished it, it took us a year and half, having started doing inputs on around July 2015. To be honest, when I started with scrimpeh, I thought it'd be shorter to do, but scrimpeh did the biggest job of the run and the greatest, if I worked alone on it, we'd have got a GBA 2.0 TAS, much less broken than this one: this guy is the MVP. Hope you guys will enjoy the run! =D
: Excellent run! I thoroughly enjoyed watching this run and all of it's zaniness. The glitches, tricks, and strategies all added to the experience, as well as the very detailed submission notes helping to understand what was going on some times. Audience reception was also great, with the majority of the responses being positive.
Accepting to Moons!