This is a 1817 frames, 30.28 sec, improvement over the published run. The improvements come from optimizing movements, reducing lag, and a few shortcuts. See below for more details.

General comments

  • Picking up items, such as cheese, neither saves nor wastes any time. There is no real reason to pick up any items in a TAS of this game.
  • This game can lag, so this is something you have to watch out for. There are areas with a lot of lag, so minimizing lag is quite an important factor in TASing this game.
  • There is a 2-frame rule for activating the exit sign. It activates every 2 frames, when RAM address 0xD4EB is even. This means that saving 1 frame in a level might not save any time at all, or it might save 2 frames.
  • Jerry can take 5 hits before dying, and damage boosts and using the invincibility time after getting hit are used a lot in this run.

Tricks:

Car boost trick: When you enter a car, you get a slight push to the right because you enter the car at the very left edge of it, but as soon as you enter it, you are positioned in its center. Anyway, by jumping out of the car as soon as you enter it, you get pushed a few pixels forward.
Speed management tricks: When running, your speed oscillates between 428 and 448 subpixels per frame. There are several ways of constantly keeping it at 448. When you jump, your speed is kept at the speed you had when you made the jump. So jumping when your speed is 448 will make you keep this speed through out the jump. By pressing the select button when landing (or left+right, as found by andymac) you don't slow down when you hit the ground, as you normally would. So one way of keeping speed 448 is to constantly jump, and press select whenever you land between jumps.
Another way to keep top speed, this time on the ground, is by holding select while running. When you want to jump, hold select for the first frame of the jump, then release it. This way you won't lose any subpixel on the ground to air transition, which you normally would.
The fastest way to turn around is to hold down up+select while turning.
Jumps can be tweaked a lot by changing how many frames you hold down the A button. If you hold down A while moving up, your Y speed decreases by 16 per frame. If you don't hold down A, it will decrease by 32 per frame, twice as fast.

Individual level comments

The number in paranthesis is total frame improvement up to this point.

Start screen

I saved 14 frames on the start screen.

Level 1 - The Street

Frames saved: 108 (122)
There are 3 sets of stairs on this level, and you have to slow down a little in order to avoid bumping into a wall when jumping up. These sections were carefully optimized to minimize speed loss. There are also a few cars on this level, and I use the car boost trick on all of these except the one around frame 2120, because jumping into a car makes it move to the right, and for this particular car, this would cause a lot of lag.

Level 2 - The Park

Frames saved: 106 (228)
On this level, the run+select trick is used a lot, in order to keep my X speed at 448 the whole time. The only tricky parts on this level are the two trash cans. I saved quite some time on both of them, and on the second one, I managed to zip into the trash can, avoiding getting pushed backwards by Tom. This couldn't be done on the first trash can because Tom pops up sooner here.

Level 3 - The Rooftops

Frames saved: 113 (341)
Just like in the published run, there are 4 major shortcuts used to make short work of this level (thanks to Chamale for finding them). The first two shortcuts are damage boosting over the two canon towers, saving a lot of time. I damage boosted better on these two towers, saving some time. Then, I damage boost off a soldier to get up on a platform above me. I can not reach this platform by a normal jump. The last shortcut is damage boosting off an enemy, immediately reaching the exit sign.

Level 4 - The Lounge

Frames saved: 333 (674)
The most complex task in this level is to optimize the couch jumps. The speed at which these will propel you depends on your speed when you land on them. However, landing with a greater speed won't always result in a higher boost, so you have to test landing on the couches with many different speeds until you get a speed that you want.
There is a glitch with the couches that unfortunately didn't save time. If you get a high enough boost from them, you move upwards so fast that the screen can't keep up. Once you have gone off screen, the screen starts scrolling down, even though you're moving up! However, you can't get off the elevators when this trick is active, so it couldn't be used in this TAS.
Jumping with the B button held down will immediately accelerate you to speed 448 from standing still, and this is used a lot in this level, rather than slowly accelerating in air.
The route is pretty much the same as in the published run (I tried a few changes, but they all turned out slower). The time saved is from optimized movements.

Level 5 - The Shower

Frames saved: 142 (816)
Just like levels 1 and 2, this is another "Run right for Justice" level. The water physics work quite similar to the couch physics - your jumping speed when you jump out of the water depend on your current Y speed and Y position. This means that you usually can't jump out of the water as soon as you enter it. After some trial and error, you can get good jumping speeds out of the water. Regarding the shower around frame 13825, it's possible to get hit on it at its top, and then use that damage boost to get to the ledge to its right, but this turned out a few frames slower. Around frame 14620 I use a new shortcut to get to that platform.

Level 6 - The Kitchen

Frames saved: 165 (981)
Sliding on the handlebars gives you a nice speed boost (you can get a speed as high as 580 subpixels/frame, compared to 480 when running), so I do that a few times in this level. Each time you land during this speed boost, your speed decreases by 20, even if you use the select or left+right trick, so after a while, the speed boost wears off. Around frame 17600, waiting for the flames to disappear is faster than taking damage from them. I have to slow down a little for a water drop at the end of the level, while in the published run, there is no water drop here. The reason for this is that water drops are based on a global timer, so there's nothing you can do to manipulate the drop away.

Level 7 - The Garage

Frames saved: 143 (1124)
There is a lot of lag in this level, mostly in places with water drops. I sometimes have to slow down a little in order to pass under a gilliotine.

Level 8 - The Garden

Frames saved: 99 (1223)
A lot of forced swimming in this level. The hits I take are done to get rid of some lag. When swimming, your speed is fixed at 256, and there are no movement tricks (at least non that I'm aware of) to increase this speed. By holding select, you can run on the ground in the water at top speed 256 (normally your speed oscillates when running under water). There is also quite a lot of lag on this level.

Level 9 - The Treetops

Frames saved: 170 (1393)
This level might seem like a maze, but it's actually pretty straightforward. By optimizing movements, reducing lag, and using a few minor shortcuts, I saved 170 frames on this level.

Level 10 - The Bedroom

Frames saved: 424 (1817)
I jump up using the bed (around frame 28650), saving some time. I abuse the speed boost from the handlebars a lot on this level. The damage taken around frame 29620 is intentional, and is done to be able to jump through the painting around frame 29710 without getting knocked back. I end input as early as possible.

Thanks to...

Chamale for his published run, and andymac for his WIP.
I hope you enjoy this run!

adelikat: Claimed for judging. The GB vs GBC issue needs to sorted out, I'll take a look at both games in the upcoming days.
GabCM: Added YouTube modules.

adelikat: Accepting for publication as an improvement to the published movie.
sgrunt: Processing.


Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
wimbledonswirl, just look one post above yours ^_^
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.