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): EmulatorResources/Lsnes

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.

Tricks

Speed physics:

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.

Speed locking

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.

Vertical zipping

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).

Horizontal zipping

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.

Taking damage

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).

HP mechanics

  • 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

Pre-first level

  • 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.

THE END

  • 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!

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This topic is for the purpose of discussing #3500: Ilari's SNES Speedy Gonzales: Los Gatos Bandidos in 23:27.42
Joined: 5/12/2009
Posts: 748
Location: Brazil
Edit: Never mind, i'm an idiot! Edit: Btw, where can I download the emulator to play the movie file .lsmv? Edit: Yes vote.
XTREMAL93
He/Him
Active player (340)
Joined: 1/6/2012
Posts: 576
Location: Azerbaijan, Baku
yes vote)
Active player (275)
Joined: 4/30/2009
Posts: 791
¡Arriba Arriba! Speedily adding a yes vote.
Joined: 10/14/2007
Posts: 9
Location: La Plata, Argentina
This is the game from which has been created a sonic bootleg for the snes right?
Emulator Coder, Skilled player (1140)
Joined: 5/1/2010
Posts: 1217
Perfect Death wrote:
This is the game from which has been created a sonic bootleg for the snes right?
Yes, this is the game that was created from. This is also the game with that one button that will crash the game unless very subtle hardware quirk of SNES is correctly emulated.
Expert player (2578)
Joined: 6/2/2009
Posts: 1182
Location: Teresópolis - Rio de Janeiro - Brazil
Very good run, just one concern; any particular reason to use the (U) (v1.0) rom instead of (U) (v1.1) [!]?
I am old enough to know better, but not enough to do it.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [2000] SNES Speedy Gonzales: Los Gatos Bandidos by Ilari in 23:27.42
arflech
He/Him
Joined: 5/3/2008
Posts: 1120
This game makes a fitting first lsnes run.
i imgur com/QiCaaH8 png
Expert player (2578)
Joined: 6/2/2009
Posts: 1182
Location: Teresópolis - Rio de Janeiro - Brazil
Dooty wrote:
any particular reason to use the (U) (v1.0) rom instead of (U) (v1.1) [!]?
Never mind, the run sync up to a certain point with v1.1, so I think there's nothing too different between the two versions. anyway, thank you for your efforts with the new emulator, I'm about to start a DKC2 improvement using it. (as soon as I find out how to configure all the new features of course...)
I am old enough to know better, but not enough to do it.
Emulator Coder, Skilled player (1140)
Joined: 5/1/2010
Posts: 1217
Dooty wrote:
Never mind, the run sync up to a certain point with v1.1, so I think there's nothing too different between the two versions.
At what point it desyncs? That could be instructive about the version differences... Places that quickly come to mind: - Some random lag difference (can be quite early level) - 1st boss - Those seals in 1st snow level (the AI is the most random monster AI in the entiere game) - Speed table overflow in 1st space level.
Joined: 5/2/2009
Posts: 656
So... Is lsnes is based on bsnes?
My first language is not English, so please excuse myself if I write something wrong. I'll do my best do write as cleary as I can, so cope with me here =) (ノಥ益ಥ)ノ
Twisted_Eye
He/Him
Active player (332)
Joined: 10/17/2005
Posts: 629
Location: Seattle, WA
I like how, in this game, Speedy (and the other mice for that matter) is almost the same size as the cats--excuse me--gatos, and is basically the size of all the intended furniture in the game. Would have made the game more interesting if he was running through the legs of/kicking in the noses of enemies five or six times greater than him. Judging by the game's perspective on size, just about any of the gatos would have been able to chase him into the mouseholes in the first level! Oh, uh and good run by the way. You did well with this mediocre game.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
syncs on lsnes rr1-d5e2 (229a121) (bsnes v085 compatibility)
  File: Speedy Gonzales in Los Gatos Bandidos (USA).sfc
CRC-32: e2dbad76
   MD4: e6edaf4ce1b00fcd603c5edbcd3fcce8
   MD5: b96f969d7a5be96151331f04d7cb36d2
 SHA-1: 34546a2bd7e761988f24aac253416bb2e47293e0