About the run
- Emulator used: lsnes rr1-Δ4ε1 (should sync on any rr1 version)
- Bsnes core version used: v085 compat (syncs on v086 and v087)
- ROM SHA256: df02d0f4f40e2732138309d38e91b48aef482490979007ecb63359a35115dfd4
- Aims for fastest time.
- Does not rescue all mice.
- Takes damage to save time.
- Abuses death to save time.
- Final time: 23:27.416 (84,584 frames)
- Final rerecord count: 18249
- Recommended dump parameters, 256x224@10738636/178683fps, 106,452 frames.
Emulator download (lsnes rr1-Δ5ε2): http://www.elisanet.fi/ilari_l/lsnes-rr1-delta5epsilon2.7z
Comments about run.
This run is 531 frames (about 8.8 seconds) faster than the first (oh, and that was no WIP run). The difference is mainly due to some new tricks and better application of known tricks. Also lag optimization shaved some frames.
The game keeps internal speed, which is related to visible speed by a lookup table having 160 entries.
How high the game allows the speed to rise depends on conditions (downhill, flat ground without boots, flat ground with boots, uphill).
If maximum speed is exceeded, Speedy just won't accelerate more, the speed does not decrease.
Overshoot into hill
Sometimes it is better to overshoot a turn in order to land further on slope, giving higher final speed.
Undershoot into hill
Sometimes it is better to undershoot trampoline jumps so you land on start of hill, giving greater final speed.
The table values in speed table are not monotonous. Some higher internal speeds are really slower than lower ones.
If you don't have speed boots and are in downslope, by hitting jump or attack two frames before visible speed flashes to higher value, it is possible to keep that value.
This is only useful if it allows you to keep higher speed than what fully running the hill down would.
Speed table overflow
The code that increases speed in downslope is special. It just checks if the speed is 150, incrementing the speed by 1 if not. However, if Speedy already has 151 speed, the speed increments without bound (by 2 every frame).
However, when speed reaches 161, the code attempts to read outside the speed table, reading garbage. It loads 15 from there, causing speed to increase to 15px per frame, which is over twice what is normally possible.
But the speed will still increase. However, next up it increases to 163. Now the loaded value is 75, giving speed of 75px/frame. The speed is so great that Speedy is forcibly ripped off the slope and shoots forwards at great speed.
Briefly tapping the opposite direction drops speedy off this hyperspeed.
Currently the only known way to get 151 speed is via pneumatic pipes in Galatical Galaxies. Those things spit you at that speed.
Running on moving platforms
The speed of Speedy is relative to surface, so if surface is moving (moving platforms/conveyors, the speed of surface is added/subtracted.
For this reason, if platforms moves the wrong way, it should be jumped off as soon as possible, but if it is moving the right way, it should be run on as long as possible.
Lag elimination via attack
One may be able to remove lag frames by attacking (just make sure the attack won't hit anything!) at suitable times.
Attack as jump
Attack also can double as very short jump. This is useful in some close quaters (again, don't hit anything).
Also, attack is often less laggy than jump.
Modifying hitbox via attack
Also, attack can subtly modify Speedy's hitbox. This is usually useless, but if there is very narrow margin between success and failure, it might just make the difference between success and failure.
Certain types of edges zip you upwards if you hit slightly below the top. This also has effect of resetting or at least greatly reducing Speedy's vertical speed (which is useful).
If you can get inside a wall, autofiring left+right causes you to zip at 5px per frame. There is only one place where this is known possible (Galatical Galaxies Part 1, where the magnet picks the platform) and there are better ways to do that part anyway.
There is no damage knockback, so taking damage has no pretty much no speed penalty (except finding best spots to take damage).
However, there is attack knockback if enemy doesn't die (and lesser one even if it dies).
- Each level entry (world transitions don't matter) resets your HP to 3.
- Each time Speedy dies, both HP and MaxHP are reset to 3.
- Small heart increases HP by 1 if below MaxHP.
- Large heart increases HP by 1 if HP is below MaxHP or MaxHP is below 5 and increases MaxHP if MaxHP is below 5.
Speed reset via wall
Slamming into a wall resets your horizontal momentum but not vertical momentum. This is useful if you need to turn quickly after jump to ledge.
This is also useful if you need to turn and there is wall just behind.
The actual run
- Those three initial screens seem uncancelable.
- The story however is cancelable.
- Some careful buttonwork speeds up the start screen.
- On map screen, you must reach the target before you can enter level.
Sleepy Rock, Part 1
- The theme of this world is mountain
- Soon the way splits into 3. Bottom path is slowest. The middle and upper one are virtual tie speedwise. I choose the
upper one, as that avoids elevator segment.
Sleepy Rock, Part 2
- This level also have some alternate paths, but none is even remotely as fast as the main one.
Surely Wood, Part 1
- Forest theme
- Those dropping cages are instadeath if you get caught.
- No, that horizontal ropetrack can't be jumped over.
Surely Wood, Part 2
- I jump briefly in order to not have the upslope stop acceleration.
Surely Wood, Part 3
- Yes, part 3... Most worlds just have two parts.
- The exit isn't to right, it is in cave.
- No, you can't jump down to cave, you would hit the ropetrack, costing time.
Surely Wood, BOSS
- The first of three bosses.
- This boss can be hit trice per cycle, first on top of tree stump, then on the bottom (he can jump either left or right) and then back on tree stump.
- On the top and on bottom (but not back up) he jumps twice. After the second jump slams into ground, he becomes vulnerable to Speedy's attack and some acorns drop.
- Oh, he can't hurt you if stunned.
- He has 8 HP, so it takes 3 rounds to defeat him.
Fiesta City, Part 1
- City/Construction theme
- Looking up on that lift causes second one to be at better position.
- Again, multiple paths.
- That enemy is a PITA. Firstly, he can't be jumped over (too tall) without higher ground (which is rare). Secondly, he has 3HP, so killing him takes way way too long.
- Not to mention, they sound horrible.
- The jump in end is pixel-precise. Even one pixel off and you won't make it.
Fiesta City, Part 2
- I get those hearts because I need those.
- You can't jump so you miss both roof and girder.
- If jumpdown or falling was faster on each turn in final segment was carefully timed (seemed to depend on phase of the moon).
Ancient Keep, Part 1
- Castle theme
- Those armors are just background. None of those attacks you or anything.
- You need to drink that bottle (some sort of super-spicy chili sauce?)
- Okay, how to lit that pot (and get a cloud to ride up)... Oh, Speedy can breath fire due to that item.
Ancient Keep, Part 2
- The crusher will instakill you, and you can't make it without waiting.
Snowy Cabins, Part 1
- Snow theme.
- This is the first of four nasty levels.
- Those seals are the only thing that uses real RNG in this game. Forget hexing Snowy Cabins, even with lag compensation.
Snowy Cabins, Part 2
- Nothing special.
Galactical Galaxies, Part 1
- Space Theme.
- Another nasty world. This time, the nastiness is those barriers. Those take forever to disappear, and if you hit one, those stun Speedy for a long time (TWO AND HALF SECONDS!) and do one damage (except sometimes those just stun).
- Oh, and if you have just 4 speed and no mercy invincibility, those hit you without fail.
- That pit can be jumped over (pixel precision needed).
- I don't hit that infamous button, as it would create 1 lag (at least not infinite lag like in other emulators).
- I need to go hit that button in or field will block the way.
- I need to hit that button. But I also need to avoid that mouse, as if I rescued it, it would be game over.
- I can't make it out alive, so I kill Speedy into barrier.
Galactical Galaxies, Part 2
- WHO THE FUCKING ASS DESIGNED THIS LEVEL???
- I hate this level.
- This level has lots of those star barriers.
- Yes, you have to hit that button or you face a long backtrack.
- No, that mercy invincibility is not long enough to pass through the first barrier.
- See if you can spot pair of emitters on floor and ceiling. Remember that switch? Yes, it was THAT.
- I wait to hit enemy in order to not get stunned.
- I kill Speedy for second time in order to have HP.
Galatical Galaxies, BOSS
- 2nd of 3 bosses.
- The boss AI is stupid, it goes the same pattern over and over.
- No, it doesn't care where you are.
- To hurt him, activate the star barrier and have him hit it.
- To hurt him optimally, activate barrier as early as possible.
- 6HP, but each hit does 2HP damage, so 3 rounds.
Ye Olde Bounty, Part 1
- Pirate ship theme.
Ye Olde Bounty, Part 2
- I don't have enough health for entire level if I don't slow down on that one section.
Ye Olde Bounty, Part 3
- Another three-parter.
- I jump on plank and from there. Surely not intended.
Ye Olde Bounty, BOSS
- The final showdown!
- The enemy has 12 HP.
- Pattern A: Just popping up from barrel and shooting.
- Pattern B: Jumping to the box and shooting.
- Pattern A allows 3 hits, pattern B 4.
- I can manipulate pattern B at most 2 times.
- Oh, he can't hurt you while blinking.
- If both attacks would connect at the same frame, you will win the race.
Ye Olde Bounty, FINAL
- The final level
- Holy shit this level is laggy.
- Final cutscene and credits.
- After that, the game will restart. Frame 106451 is the final non-black frame before the restart.
Nach: Very nice run. Some of the levels were poorly designed and the bosses idiotic, but you did a nice job nonetheless. I'm accepting this as a first run for this game. Also, congratulations on lsnes!