Post subject: Rayman: Hoodlums' Revenge
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
Rayman: Hoodlum's Revenge is an isometric GBA game where you alternate between playing as Rayman in platforming sections and Globox in stealth-style sections, and some levels allow you to alternate between the two. Although fun, for a Rayman game it's not great. The controls are awkward, the plot is uninspired, and it seems hastily put together, with many programming oversights and small glitches. Despite this (or because of this) it seems like an interesting game to TAS, and I do have a bit of a soft spot for it since I played it when I was younger. Unfortunately it does have lag issues, but not to an unreasonable degree. To test it out I have been TASing each level individually and have compiled my efforts so far into one video. This displays the tricks I've found and some preliminary routing, although it's by no means optimised: Link to video (I should point out that I TASed the levels as if doing them for the first time, so all dialogues are still there. This means they are in the state they would be in a full run, albeit with possible RNG differences.) I've added level specific commentary to the video in the form of subtitles, but for reference I'll list the main tricks in more detail here: General Tricks: Camera Skipping - Whenever a trigger is activated that does something (e.g. killing an enemy to open a gate), the camera slowly scrolls over to show you what happened. This can be skipped if you are close enough to the target when you trigger it. This is usually done by killing the enemy from next to the gate it opens. Button Swapping - On a lot of levels you'll press a switch with one character to open a door for the other. You can press select just as you step on a button, which will show you the target and then return you to the other character. Since swapping between characters normally slowly scrolls the camera between them, this saves a bunch of time. Rayman Tricks: Water Hopping - The main way to sequence break. If you press jump just as you take damage when landing on water then you can hop on it without losing forward momentum. You still take damage though, and hopping on water twice without landing on ground in between does a huge amount of damage, which limits the use of consecutive water hops. Spike Hopping - Like water hopping, but on spikes :) Chopper Hopping - When the blue powerup (super helicopter) runs out, you have a one frame window where you can jump out of it, giving you extra height and no loss in momentum. This is very inconsistent though (sometimes it doesn't seem to be possible), and I haven't worked out why yet. Dialogue Skipping - Dialogue triggers (with Murphy or others) are often only on the ground, so they can sometimes be bypassed by jumping over them. Globox Tricks: The main tool Globox has is enemy manipulation, since he flees uncontrollably if an enemy sees him. This does however lead to one fun trick... Fleeboosting - Globox's fastest speed is when he is fleeing from enemies. Since you can't control this though, he usually runs in unhelpful directions, but with careful manipulation this can be used to save time now and then. These are all the tricks I've discovered so far, but the game is so clunky that I feel sure there must be other useful tricks in there somewhere. Anyone else played around with this game?
Experienced player (703)
Joined: 2/5/2011
Posts: 1417
Location: France
I've made a topic of this game, once. The game can be way more broken than this :P I've forgot how to make this glitch (I found it): Link to video You can break a lot of things with this.
Current: Rayman 3 maybe? idk xD Paused: N64 Rayman 2 (with Funnyhair) GBA SMA 4 : E Reader (With TehSeven) TASVideos is like a quicksand, you get in, but you cannot quit the sand
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
got4n wrote:
I've forgot how to make this glitch (I found it): (video) You can break a lot of things with this.
Ha, yes! That's the sort of thing I wanted to see. I was sure there would be larger ways of breaking the game. I did look around for anyone discussing this game, but I couldn't find it...? I've mainly been playing with this game in the downtime between other TASing, but it's good to know there's more to discover if serious time can be put into it.
Experienced player (703)
Joined: 2/5/2011
Posts: 1417
Location: France
DaJaWi wrote:
got4n wrote:
I've forgot how to make this glitch (I found it): (video) You can break a lot of things with this.
Ha, yes! That's the sort of thing I wanted to see. I was sure there would be larger ways of breaking the game. I did look around for anyone discussing this game, but I couldn't find it...? I've mainly been playing with this game in the downtime between other TASing, but it's good to know there's more to discover if serious time can be put into it.
My bad, I didn't made one, sorry XD Also, if you need any TAS help, don't hesitate asking me, it's really good to see a beginner TASer which is really good;
Current: Rayman 3 maybe? idk xD Paused: N64 Rayman 2 (with Funnyhair) GBA SMA 4 : E Reader (With TehSeven) TASVideos is like a quicksand, you get in, but you cannot quit the sand
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
Okay, so your video was a bit crazy got4n, but examining what's going on, it looks like jumping and then punching gives you the greatest horizontal speed, and you can chain them to increase height. After more investigation, it turns out that there's an even simpler way to abuse the jumping mechanics with punches. If you jump and then punch immediately, there is a 1 frame window between the ending of Rayman's punch animation and the start of Rayman's falling animation where you can jump again! You can then immediately punch again and chain these punch hops to obliterate any Rayman levels. (I presume this was actually happening occasionally during your haphazard jumping around got4n, although I'm not sure if you realised just how versatile the trick was!) I've made a video to demonstrate. Because Rayman's off the screen for most of it, I pasted the in-game map beside it, updated on every jump. I also inserted a black X to show the position Rayman really is, so you can see where I'm going: Link to video The main constraint with this trick is that many of the fences and walls are actually infinitely high, so you still have to navigate around them. It's also very difficult to turn when punch hopping, as you can see by the curvy route I take over the water. There's also some craziness when you hit the maximum height, not to mention how hard it is to time the jumps and movement when you can't see what you're doing... Because of the infinitely high fences, most levels will still involve Rayman having to land to press switches now and then, which means the levels aren't completely broken. Still, it's pretty sweet!
Experienced player (703)
Joined: 2/5/2011
Posts: 1417
Location: France
DaJaWi wrote:
Okay, so your video was a bit crazy got4n, but examining what's going on, it looks like jumping and then punching gives you the greatest horizontal speed, and you can chain them to increase height. After more investigation, it turns out that there's an even simpler way to abuse the jumping mechanics with punches. If you jump and then punch immediately, there is a 1 frame window between the ending of Rayman's punch animation and the start of Rayman's falling animation where you can jump again! You can then immediately punch again and chain these punch hops to obliterate any Rayman levels. (I presume this was actually happening occasionally during your haphazard jumping around got4n, although I'm not sure if you realised just how versatile the trick was!) I've made a video to demonstrate. Because Rayman's off the screen for most of it, I pasted the in-game map beside it, updated on every jump. I also inserted a black X to show the position Rayman really is, so you can see where I'm going: Link to video The main constraint with this trick is that many of the fences and walls are actually infinitely high, so you still have to navigate around them. It's also very difficult to turn when punch hopping, as you can see by the curvy route I take over the water. There's also some craziness when you hit the maximum height, not to mention how hard it is to time the jumps and movement when you can't see what you're doing... Because of the infinitely high fences, most levels will still involve Rayman having to land to press switches now and then, which means the levels aren't completely broken. Still, it's pretty sweet!
Actually, it was the technic I was using, the video was made long time ago and used turbo inputs, but months ago I've used that :P
Current: Rayman 3 maybe? idk xD Paused: N64 Rayman 2 (with Funnyhair) GBA SMA 4 : E Reader (With TehSeven) TASVideos is like a quicksand, you get in, but you cannot quit the sand
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
Okay, I've been playing around some more with this trick recently. Here's a compilation of my routing updates: Link to video I should probably explain that the punch hopping trick is not useful when you have a yellow canister active (because your powered up punches lose you horizontal momentum), but jumping is still faster than walking (shown at 3:08, for example). It's really tricky cornering while punch hopping, especially when you are high up, for some reason. In fact if you're off the top of the screen then you often can't change directions without completely losing momentum. I'm getting the hang of it the more I play with it, but I'm optimistic it can be made far neater. Also, I discovered more recently that while all fences (and some walls) are infinitely high and insurmountable, you can pass over certain gates with careful movement and well timed jumps as long as you are considerably higher than them. Since I currently open gates several times in the video (which is slow) it would be nice to hop over them if I could, but I'll need to test it more to see exactly when it can be done. A full run of this game will look ridiculous. The Rayman segments and Globox segments were always differently paced, but now the contrast will be absolutely massive. I expect fully half of the run will be spent on the two Globox levels, and the rest on the other thirteen combined!
Patashu
He/Him
Joined: 10/2/2005
Posts: 3999
Haha omg, I need to see this run now!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Experienced player (703)
Joined: 2/5/2011
Posts: 1417
Location: France
Patashu wrote:
Haha omg, I need to see this run now!
Didn't knew my glitch was THAT useful O_o
Current: Rayman 3 maybe? idk xD Paused: N64 Rayman 2 (with Funnyhair) GBA SMA 4 : E Reader (With TehSeven) TASVideos is like a quicksand, you get in, but you cannot quit the sand
Editor, Experienced player (607)
Joined: 11/8/2010
Posts: 4012
That was great! Such a funny glitch. This will be quite a broken and entertaining run.
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
I've been having a lot of fun playing around more with the punch hopping trick recently. I've not yet got to the stage of creating any WIPs because I don't yet know how to use it optimally, but I think I'm getting closer! (Warning: Essay ahead :P - just skip to my explanation of the lua script if you want to experiment and don't care about the details) I've found some memory locations that track Rayman's speed, and discovered more how Rayman's speed works. When Rayman punches, his speed rises above it's normal maximum, and after the punch ends it eventually resets. But the key is that there are a few frames after the punch ends where the speed is stilll above maximum, and another punch done in those frames will raise the speed higher. (This only works if Rayman is in the air, but obviously using this trick he will be in the air pretty much constantly.) This is why punch hopping (punching when in the air, jumping the frame the animation ends and then punching again the next frame) works so well, not just because Rayman can go indefinitely high, but because his speed is constantly rising. However, now that I understand why the speed is rising, I realise that in general he would move quicker if he didn't jump in between the two punches, because this loses some momentum. He does still need to stay in the air though, so you have to jump occasionally, but only enough to stay off the ground. To summarise, the best way through a level is: - Start by taking a running jump, and punch the next frame - When the punching animation ends (the 'critical frame') jump again, and punch the next frame - From now on, at every critical frame, do one of the following: A: If you can do it without landing, just punch B: If you need more height, jump and punch next frame - Then wait until the next critical frame, rinse and repeat This means the normal strategy (i.e. to stay a roughly consistent height) is to alternate punch hops and just punches, taking a bouncing movement around the level. I'm really pleased with this, not just because it's faster, but because it means an optimal run won't happen all off the top of the screen anymore! There is one further issue, which is that since we're abusing the fact that the speed does not reset by stringing together punches, it becomes very hard to turn corners, the best you can do is take a long sweeping arc. If you need to turn a corner sharply though, there is a way you can do it at the cost of some speed. If, after jumping while holding your new direction, you wait a few frames before punching, this gives your speed in the previous direction some time to reduce, and therefore means you can turn at a sharper angle. The exact amount of frames you should wait depends on how sharp a turn you need to make, but it should never need to be more than about 10. Knowing all this, I created a series of macros to automate the trick, for my own use and if anyone else wants to play around with it. There are three different options available, mapped to the keys J, K, and L (but feel free to remap them to suit your preferences): J: Standard Punch Hop - Jumps, punches next frame, and waits until the critical frame. Use to get off the ground originally, or when you need more height. K: Punch Boosting - Punches and waits until the critical frame. Use when you can do it without landing. L: Delayed Punch Hop - Jumps, waits 10 frames, punches, and then waits until the critical frame. Loses speed so use only for turning sharply. Using these, the normal strategy around a level is simply: J, J (to get into the air), and then alternating K,J,K,J... with an extra J if you need to gain extra height and L if you ever need to turn sharply. To use them, hold the direction you want to travel and the necessary key, and press frame advance. The action occurs with a delay of one frame (because it was easier to code that way :P) and as such each macro actually takes you to the frame before the critical one so that they can be strung together. They will sometimes fail if there was lag on the first frame (although it should work around any other lag). If that happens, go back and wait one frame first before using it. The 10 frame wait in the delayed punch hop is kind of arbitrary. To really optimise a turn you would need to choose the minimum wait necessary. This would have to be done manually, but I put that macro in just for help with routing. If anyone else wants to experiment, these macros should make it a lot easier to do so. Even if you just want to mess around, it's a lot of fun to hold down J and frame advance and blast all over the level with reckless abandon! One other thing. I mentioned before that it was possible to get over certain gates. Now that it's so easy to use this trick I've realised you can get over all gates in the game, as long as you are high enough above them! That means the routes for most levels will be even shorter, since you don't have to press most of the switches. The only gates you need to open now are ones for Globox to get through. And to think I used to play this game normally...
Zarmakuizz
He/Him
Joined: 10/12/2013
Posts: 279
Location: France
Are you sure you need to bring Globox to the end of the level everytime it appears? Maybe they just programmed to detect Rayman arriving at the end of the level because they suppose that you would need to complete the whole Globox path in order for Rayman to arrive at the end. I have never played the game, so maybe I'm saying something wrong.
Active player (405)
Joined: 2/5/2012
Posts: 1677
Location: Brasil
don't you guy have adresses to monitor rayman's position?
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
grassini wrote:
don't you guy have adresses to monitor rayman's position?
Looking in the EWRAM I've found these addresses: 024E89 - Rayman's position on the north-west/south-east diagonal 010754 - Rayman's speed along that diagonal 024E8D - Rayman's position on the north-east/south-west diagonal 010758 - Rayman's speed along that diagonal 024E91 - Rayman's z position 01075C - Rayman's vertical speed (EDIT: Actually, the addresses for speed seem to vary, and are not always the ones listed above, for some reason. Each time I reboot the core the speed values are in a different address. Eurgh.) Yeah... I don't know what the standard names are for isometric grid positions, as opposed to x/y for orthogonal - anyone know? Presumably there are others in there for Globox, but I've not gone looking for them yet. These can obviously be helpful generally, especially the speed ones to optimise movement, but was there any more specific use you had in mind?
Zarmakuizz wrote:
Are you sure you need to bring Globox to the end of the level everytime it appears?
It's a nice thought, but unfortunately in the levels with both characters it does check that both of them are at the finish in order to exit the level. The good news though, is that they only need to be standing near the finish. This means that if you get Globox next to the exit gate you don't need to open it and can instead jump over it with Rayman. This will save the most time on the menhir level, because you no longer need to collect any of the tablets, and just need to open the couple of gates that allow Globox to get close the exit.
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
I now have a WIP containing the first 4 Rayman levels and finishing with the first Globox level (which is more then half of the run so far!): Link to video The main thing new about the Rayman levels is that I've discovered there's a small window before the initial dialogue at the start of each level where you can enter input. Since the dialogue only activates when you are on the ground, you can jump during that frame and skip the dialogue. On the Clearleaf Falls level it takes the same number of jumps to get high enough to vault the exit gate no matter what direction you travel. The route I take is therefore the one which spawns the least enemies and minimises the lag. The Machine boss is interesting. Once the canister is active you cannot punch hop, so you have to wait for it to expire completely before you can jump up and reactivate it. During that wait you have enough time to destroy any 4 of the 6 machine parts, so the aim of the battle is to leave the two parts that are quickest to destroy for the second cycle. You might think the best option was to leave the two parts that are closest to the powerup so you have the least distance to travel for the second cycle, but it's actually quicker to leave the cannons at the bottom, for two reasons: - Firstly, they each only take three hits to destroy instead of four. - Secondly, later in the battle the plum launcher throws more plums at you, and they really lag the game if they are on screen. By destroying the machine parts in the top left corner first, you spend as little time as possible with plums on the screen, and therefore the lag is massively reduced. For the Globox level, there's a large number of small optimisations: - For the first switch, by looking at the gate before pressing it I skip the camera cutscene. - For many other switches I crouch one frame before pressing them, as this halts Globox's movement, stopping him from sliding a few pixels in an unwanted direction. - For the floor button later in the level, I look over to the gate while my leftover velocity carries me onto it, which reduced the distance the camera has to move. - Each point you collect costs a few frames of lag, so whenever it is possible to avoid them without wasting time, I do. There's also quite a bit of enemy manipulation. All you can actually manipulate the enemies to do is stop and look around at certain points, before continuing their route. There are a couple of places where I cannot avoid having to wait, because there's no way of speeding up an enemy, only slowing them down (by making them wait), but I can use this manipulation in other places: - Whenever I have to kill an enemy, I want it to be as close to me as possible (so that I can kill it on the earliest possible frame), because whenever an enemy is on the screen there is lag. - The exception to this is when defeating an enemy will open a gate. In that case I need the enemy to be close enough to the gate that I will skip the camera cutscene. There's a place in the level where I have to kill four enemies in a row, and I need them to all be close enough to their respective gates, while also not out of the way (to reduce the distance I have to walk). - There are also a couple of places where I intentionally make Globox flee from an enemy, because his fleeing speed is really fast. Since you cannot control him when he's fleeing, and he usually runs haphazardly all over the place, this takes really careful positioning of both you and the enemy to be faster than just walking. That's all I can think to say at the moment. Next is another long Globox level (sigh), before getting back to Rayman, and soon after that are the levels with both characters, which are probably the most interesting.
Editor, Experienced player (607)
Joined: 11/8/2010
Posts: 4012
Looks good so far! I especially like the Rayman levels; hopefully the next level won't be too long so we can see more of those soon. Does Globox move faster after he drinks the plum juice? If so, could you drink from the barrel at 4:00 in the encode to move faster to the enemy you need to kill? Or does the plum power run out before you can reach him?
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
CoolKirby wrote:
Does Globox move faster after he drinks the plum juice? If so, could you drink from the barrel at 4:00...
In general he does move faster when under the effects of plum juice, but it takes so long to drink plum juice that it actually loses you time. For the barrel at 4:00, it would run out before being worth it. Shame. There is actually a different barrel you can see at 4:13 that could be drunk from instead which wouldn't run out before the enemy, but it's a bit out of the way and the time taken to walk over to it make it not worth it.
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
I've finally completed the next (and last) Globox only level. This level is probably the worst in the game when it comes to lag, since you can't really avoid it with Globox because you have to follow such a set route. Globox segments take so much effort to do, and it's a shame they don't look more exciting. I probably won't bother to encode this until I've more Rayman shenanigans under the belt. In this level you have to escort a bunch of teensies around, which means you can't use fleeboosting (because they would run away and you'd have to hunt them down), and also as they follow you they can get in your way and slow you down. I think only someone who's played the game before would be able to appreciate how much smoother a TAS is than a normal run. At least now we are back to Rayman again, although it feels like it's been such a long time since I was TASing him that I can't really remember how it works!
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
WIP 2&3: Link to video (The new Rayman stuff begins at ~3:00) Rivers of Murk is another level that is completely bypassed due to punch hopping. This is the first level where I have to explicitly avoid score (At the start I jump upwards more times than would be optimal before moving horizontally, to avoid collecting a lum), because if you have even one point when you finish the level then it adds 3 dialogue boxes to the end level text. Begoniax was tricky. If you hit her rapidly then she jumps haphazardly all over the place, so finding the perfect pattern where she doesn't jump too far away after each hit took a lot of attempts. I'm very happy with the end result though, especially since I remember how awkward she is to fight in real-time. At the start of the level, as always, I jump on the critical frame to avoid a dialogue trigger. That trigger is still there after defeating her, and it is bigger than the trigger to end the level (which is also next to Globox), so I have to land right next to Globox to end the level without activating the first dialogue. The next three levels are the ones where you control both Rayman and Globox. The first one is actually the longest, because Globox has an unavoidable long path he has to follow, but the other two should be very broken.
Editor, Experienced player (607)
Joined: 11/8/2010
Posts: 4012
I like the optimized punch-hopping! It looks even funnier when he's floating in the middle of the screen the whole time.
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
CoolKirby wrote:
It looks even funnier when he's floating in the middle of the screen the whole time.
I completely agree! I'm so happy that it turned out to be the fastest way of doing it. I've been making good progress, mainly because these levels have been so fun and satisfying to do. Here's a new WIP with the next 4 levels: Link to video And here are my ramblings: In these levels when you're controlling Rayman and Globox together, the usual approach is to step on switches with Rayman to open a gate for Globox (using Button Swapping - i.e. swapping characters as you press the switch, to minimise camera movement). Then you walk Globox through the gate and swap back when they are as close together as possible (again to minimise camera movement) and hop along to the next switch with Rayman. All of Globox's other work is avoided, since Rayman can just jump over any obstacles. The only other issue is that occasionally I have to kill an enemy with Rayman to let Globox get through more quickly. There's one new technique in the first level in the video, called gate despawning. (Technically you're not despawning it, you're just getting there before it loads). It may not be obvious, but at 0:45 in the encode I pass through a gate before it loads, which means that I don't have to jump the usual 8 times in order to get high enough to vault over it, and then waste more time falling down to the switch. This is only possible because I was passing through an area with many loadzones and a large number of objects - there is nowhere else in the run where it is useful. You may notice that I also despawn a couple of the switches and they only appear when I am standing on them. This is just cosmetic :P (Also, the enemy manipulation needed to get Globox past those three enemies uninterrupted when he walks up to the finish at 1:21 was so challenging and the result is, at least for me, so satisfying.) In the menhir level I use water hopping at 2:54 to get to a switch while the powerup is active, since punch-hopping is impossible with the powerup active. I'm pleased it makes an appearance in the run, rather than just punch hopping everywhere. Finally, the 'Pit of Endless Fire' boss fight. There's nothing particularly sneaky going on here, he really dies in just two punches. At the end, unlike previous bosses, the dialogue trigger to end the level is on a timer rather than just by walking up to Globox. I use a neat trick where I drop onto the first dialogue trigger (which I avoided at the start of the level) on the same frame as the end dialogue trigger activates. This has the nice effect of choosing the characters who should be talking as though it was the second conversation, but picking the textboxes from the first. Since the conversations had different numbers of textboxes, it quickly runs out of textboxes to display and simply ends the conversation, far earlier than just going through the ending dialogue normally. Neat! I'm so satisfied with these levels, they went so much more smoothly than I would have ever imagined. There's not much left now. Globox is done with - we just have a couple of Rayman levels to blast through, and then the final boss. Eep!
Editor, Experienced player (607)
Joined: 11/8/2010
Posts: 4012
Nice work! That last level looks like it'd be a long one without the punch-hopping trick.
Player (160)
Joined: 10/21/2014
Posts: 62
Location: England
I have now finished the run, but I figured I should mention my last discoveries here. It turns out that the dialogue combine trick I did at the end of the 'Pit of Endless Fire' boss didn't just affect that dialogue, but it affects all dialogue for the rest of the game! Fortunately it makes all conversations quicker, which is cool (although you do skip most of the conversations). It also has a bizarre affect on the closing cutscene, where the text cannot display, and glitches up the background for the credits for some reason. Strange. Cheers for your support everyone.