I managed to walljump twice on the same wall, and elevate about 5(?) blocks:
http://dehacked.2y.net/microstorage.php/info/309207451/walljump2.smv
Does not use <><or><>< that I'm aware of.
fast forward to 10500
EDIT: a bit of a tutorial for Baxter, who asked for it. Forgive me if I covered stuff everyone already knew or takes for granted. I tried to write it so that n00bs with a little background knowledge can understand. (best case scenario)
Technical details and conditions for a walljump.
Basically, to do a walljump, you must lodge yourself at least 4 pixels into the wall, and approximately at a 16 pixel boundary.
Vertical positioning is the easiest part of a walljump, so I'll tackle that first. You don't need to be precise at all, in fact, if you don't have the right vertical position first try, you are extremely unlucky! Try jumping slightly higher or lower, an you will get it soon enough with maybe one or two more tries. Yoshi will warp automatically to the nearest 16 pixel boundary above his feet when he snags a wall, so sometimes, you can gain a little bit extra height, this can be useful when you jump twice on the same wall, because then you might be able to elevate an extra block for each jump.
Horizontal positioning is much more difficult, you should try optimising your horizontal position before your vertical. You have to move 4 pixels into the wall. There is no 2D Mario or Yoshi game in existence (maybe New SMB or Yoshi's story) that detects collisions more accurately than single pixels. You might have a low subpixel value and your enemy might have a high one, but you will still collide if the pixels in your hitbox do, even though you might be a good 200 subpixels away. What does this have to do with walljumping? For a walljump, you must go into the wall at least 4 pixels, but isn't 4 pixels a speed of 1024, and the highest we can achieve is low 800s? This is true, but because the game doesn't care about collisions more precise than a pixel, we can trick the game into thinking we have a higher speed for one frame. Of course, in the long run, all the gains and losses cancel out, but if we were to put all our fish in one basket, we can achieve a speed of 4 pixels for one frame only, which is all we really need.
let's say out x pixel position is 0, but we have a high subpixel position, say the best case scenario of 0xFF. let's say that on this frame we also have the highest speed which (correct me if I'm wrong) is 765 + 56 = 821 = 0x335. This is good. It means we have a speed of 3 pixels, and 0x35 subpixels. The next frame we shall have a subpixel position of 0x34 and a pixel position of 4. Great! we have just traveled 4 pixels in one frame.
In summary: in order to do a walljump: you must have a reasonable vertical position, and must travel at least 4 pixels into the wall, to do this, on the frame before you snag the wall, you must have a high subpixel value (or low subpixel if you're traveling to the left) and a speed of more than 3 pixels per frame.
Some ways to do this:
There is no trial and error involved in walljumping. You don't just jump at a wall until you get a result. There is a process involved to get you closer and closer to the snag. In general, if you TAS something and you don't have a process to get to the final outcome, then you are doing it wrong. (I thought I might mention this because the guy who found it on the E version basically did just this, also it's conforting to know that if you follow some steps, there is a guarantee of an outcome at the end.)
I won't go into any detail about vertical positioning, since it's just too easy. Jump higher and lower until you get a result.
Horizontal positioning is difficult. If you know how to be precise, then this should be really easy, and you should be able to find your own methods that work. let's say we have an average speed of 760, and we're in the air, so it stays at that value. Just before the wall press <>>, so that your x velocity goes 760, 704, 760, 0. If it goes 760, 704, 760, 816, 0, then you pressed <>> too early If it goes 760, 704, 0, you pressed it too late. Remember the frame that you started to press <>> on (call it X), also remeber the frame that your x velocity turned to 0. Turn back time a good 30 or so frames. and lose just enough subpixels so that your velocity now goes 760, 704, 760, 816, 0 when you press <>> on frame X. You should now snag the wall. If you didn't snag the wall, you probably need to be more precise.
Doing a double walljump.
So you know how to be precise? Well then this is basically the same as a single walljump. Accelerate away from the wall after the first jump, and then start a flutter back. Turn around so that after you accelerate from the flutter, you hit the wall so that you *just* hit it with a velocity of 816 or 821 or whatever. Walljumping a second time is easy, making it optimal is hard. Here are some considerations: Try to make the shortest flutter possible, because you can't accelerate past 375 or whatever it is during a flutter. Don't go further away from the wall than you need to, because you will waste time coming back to the wall. Try to optimise your position during acceleration/decelleration (generally through the use of null input), as this usually the fastest way to get a precise enough position. Try to elevate as many blocks as possible in a single jump, so that you can elevate higher walls with less jumps, or shorter walls quicker. In my video I managed 4. 5 should definitely be possible. 6 is impossible, because you can't jump that high anyway.
If this wall of text wasn't enough to explain walljumping, PM me, and I'll make a video tutorial.