#4161: CoolKirby's GBC SpongeBob SquarePants: Legend of the Lost Spatula in 05:57.98

Submission Text Full Submission Page
This is a 361 frame (6.04 second) improvement to my previous run with nitrogenesis and jlun2 due to slightly different routes, a couple of new tricks, and some optimizations aided by the use of memory addresses.
Note: While it appears this run is only about 263 frames faster than the previous run, that run's time was incorrectly calculated with a frame rate of 60 fps, whereas this run's time was calculated with the correct ~59.73 fps. All frame amounts noted in this submission text were figured out with simple subtraction of frame numbers.

About the run

  • Emulator used: BizHawk 1.5.3
  • Aims for fastest time
  • Takes damage to save time
  • Abuses programming errors in the game
  • Manipulates luck
  • Genre: Platform
I made most of this as a test of GBCHawk when it was first released, but got distracted by school and other projects. But I've recently had some time on my hands, so I was able to finish this run! I'm happy I was able to bring this under 6 minutes, and I hope you all enjoy it!
AreaFrames SavedTotal Frames Saved
To Goo Lagoon00
Goo Lagoon5353
To Undersea Desert053
Undersea Desert2780
To Kelpazoic Jungle080
Kelpazoic Jungle209289
To The Carnival3292
The Carnival0292
To Jellyfish Fields16308
Jellyfish Fields4312
Rock Bottom26338
Dutch Under26364
Ending-3361

New tricks

Platform Boost

When SpongeBob is slowing down from a high jump, brushing against some sort of platform boosts him to his maximum vertical speed as if he has just taken off from another high jump. The main benefit of this is that it moves SpongeBob at his normal horizontal jump speed, so having this boost at the end of a glitch jump gives you a better position upon landing at no cost of time.

Sliding into Walls (originally discovered by NitroGenesis)

This was used in the previous run for entertainment before I found that it can save time after the final boss fight. It's achieved by walking toward a wall, facing the opposite direction for one frame, and then slide jumping in the direction you're moving. This causes SpongeBob to slide a few pixels into a wall. Unfortunately, he can only slide up to 13 pixels, meaning you still can't make it through one-tile-width walls.

Glitch Fall Clipping (not used in this run)

When you walk off a cliff and jump and autofire A (to glitch jump), SpongeBob will instead fall, gaining velocity as well as the sprite displacement that the glitch causes. But because SpongeBob is jumping down, the game displaces his sprite to the bottom-right instead of the top-right. This means that if you fall for a good length of time, SpongeBob can clip through 8-pixel high floors and even inside objects!
Here are some memory addresses for SpongeBob's position, speed, and other useful values, which helped me see how each jump affected his momentum:
SpongeBob SquarePants: Legend of the Lost Spatula
System: Game Boy Color
Domain Address Data Type Signed Endian Description
WRAM 956 Word Signed Little X-Position
WRAM 954 Word Signed Little Y-Position
WRAM 1977 Byte Signed Little X-Speed
WRAM 952 Byte Signed Little Y-Speed
WRAM 1976 Byte Signed Little Jump Height (0-14)
WRAM 4070 Byte Unsigned Little Item On-Screen Y-Pos
WRAM 1049 Byte Unsigned Little Item On-Screen Indicator (neg is partially off-screen)
WRAM 966 Byte Signed Little Health (0 = Death)
Here's a table showing the average speed of each normal jump (no glitch) SpongeBob makes. (Standing gains no horizontal distance while squatting before a jump, walking gains 1 pixel/frame, and sliding gains 1.5 pixels/frame):
Jump HgtJump TypeDist (Pixels)Time (Frames)Avg Speed
0,2Standing67361.861
0,2Walking75372.027
0,2Sliding90442.045
4,6Standing82412.000
4,6Walking90422.143
4,6Sliding105492.143
8,10Standing97462.109
8,10Walking105472.234
8,10Sliding120542.222
12,14Standing112512.196
12,14Walking120522.308
12,14Sliding135592.288
As you can see, walking one frame and jumping the max height (12 or 14) is the fastest normal horizontal jump SpongeBob can make. These values are slightly different with the spring shoes equipped, but the proportions are the same. Usually, the only reason I deviate from the fastest method of movement is to avoid an obstacle or line myself up to land on something precisely.

Quick Text Box

Opening the Start, Select, or Utility Belt menus will make sign messages come up immediately after exiting the menu.

Old tricks

Jumping Glitch

When an item you are using has spawned an object (ex: bubble wand spawns a bubble), as long as that object is onscreen, you can hold B and autofire A to make SpongeBob jump very high. When SpongeBob has the spring shoes equipped, performing this glitch will allow SpongeBob to jump infinitely (until he hits something). The main drawback is that it freezes SpongeBob's position every time A is pressed, so he will only move half the horizontal distance while glitch-jumping compared to a normal jump, so it is sometimes better to jump normally.

Sinking Glitch

The programmers intended the player to jump to the top of the level and grab an anchor to send SpongeBob plummeting through the goo to the treasure chest. This glitch lets you skip all of that by jumping off of the goo where the anchor normally would fall and then immediately pressing A, sending you down through the goo as if you were on the anchor and allowing you to land right next to the treasure chest. It's interesting to note that no matter how you reach the chest, the game destroys the anchor object after the map cutscene.

Luck manipulation

Moving platforms and enemies can be manipulated by jumping at a different height.

Avoiding damage

Using your equipped item (ex: throwing a patty, blowing a bubble) can be used to avoid taking damage.

Sliding before jumping

By walking for 9 frames before jumping with the spring shoes equipped, SpongeBob will move forward faster (2 px/frame instead of 1 px/frame) while squatting to jump, giving more horizontal distance at the cost of some time. The effect is enhanced on platforms that are moving in the direction you're jumping.

Slowing down in midair

Pressing A the first of every two frames in midair (the second of every two frames will glitch jump) will force SpongeBob's jump velocity to count down as if he was later in his jump, allowing him to land earlier. This saves time when jumping vertically and having to land on the edge of something or in a precise spot.

Level by level comments

To Goo Lagoon

  • To my surprise, I didn't find any improvements here. I figured at least Sandy's Park could be improved a little.

Goo Lagoon

  • I start the level by jumping in a specific pattern to set up the sinking glitch jump. This is because I have to hit the water on a specific pixel when coming from this direction, or else the game's camera would lose SpongeBob and I would be forced to restart the area.
  • I save 8 frames in the Bottom of the Lagoon with better jumping and a slightly more helpful damage boost.
  • The new route replaces the hopping back from the island and slower sinking glitch jump and saves 45 frames.

Undersea Desert

  • I found that jumping from higher platforms instead of off the ground (when possible without losing horizontal momentum) saves time because SpongeBob can cover a similar distance without having to fall down to the ground and jump back up again. Utilizing this and a second jump to break up the really long one from last time and cover more horizontal distance, I saved 16 frames before the portal.
  • I don't think it's been mentioned before, but I take the portal because it saves at least a few seconds.
  • Saved 2 frames in the portal room by jumping a little lower to reach the exit portal.
  • Saved a frame jumping down the rocks to Hot Sauce Bandito.
  • Saved 8 more frames by switching back to the Spring Shoes right before the To Outer Town message.

Kelpazoic Jungle

  • Saved a frame in the jump up to the first portal.
  • Saved 26 frames from walking a little further to glitch-jump the whole way up at the beginning of the second room.
  • Forgoing the damage boost through more creative use of the slowing down in midair trick saved 11 frames, and utilizing the extra health point later in the maze saved an additional 74 frames!
  • The last regular jump in the maze before the glitch-jump may look sloppy, but it's actually necessary to manipulate an enemy so it doesn't move in SpongeBob's way and kill him.
  • For some reason, the Jungle Fish's platform is not solid, so you can jump right through it into the battle! Doing this saves 89 frames.
  • Saved 8 more frames with Quick Text Box.

To The Carnival

  • Saved 3 frames exiting Downtown through a slightly different route.

To Jellyfish Fields

  • Similar to how jumping from higher platforms saved time in Undersea Desert, staying near the ground helped save time in Sandy's Park.
  • It's hard to jump right in front of the sign for Jellyfish Fields. Besides Bubble Bass hanging out near it, there's a really annoying jellyfish floating between him and the signpost that always manages to be in your way. But working backwards from the spot, I managed to find a good path to jump right to the edge of the sign's trigger and save 16 frames!

Jellyfish Fields

  • Saved 2 frames from slowing down in midair to make a lower jump onto the geyser.
  • Saved a frame in jumping to the second geyser.
  • Saved another frame from the jump to the Big Jellyfish.
  • When making the last run, we noticed SpongeBob landed in a different spot after spawning in Rock Bottom but figured it was because we paused in a different spot (which saved a frame), so we didn't bother testing it. But I found that both jumping and blowing a bubble change these values. By doing these actions at certain Y-positions after the Big Jellyfish battle, I manipulate SpongeBob to land as far right as possible.

Rock Bottom

  • Saved 26 frames with the better initial landing spot and better utilization of the jumping glitch.

Dutch Under

  • With a different glitch jump to the top of the area, I was able to utilize what is apparently a platform boost (no idea why it's there) to gain more horizontal velocity than glitch jumping and save 18 frames before I enter the ship.
  • Quick Text Box would save 4 frames when I enter the Flying Dutchman's battle screen, but it would put SpongeBob in a worse patty-throwing position that would waste at least 6 frames.
  • I used the Sliding into Walls glitch to put SpongeBob in a better position when the game loads the spatula area, saving 5 frames.
  • Being out of patties means I can use glitch jumping and the slowing down in midair trick to save 3 frames from the jumping to the spatula.

Ending

  • The last input is the only place where BizHawk's emulation differs from VBA's. 3 frames are lost to more accurate lag emulation before dismissing Mr. Krabs's text box.

Suggested screenshots

10593, 11310

Thanks to

  • The BizHawk devs for the awesome emulator
  • My former teammates for their prior work
  • Got4n for encouraging me to get it done and volunteering to help even though I didn't need it

feos: Accepting to Moons and publishing...

TASVideoAgent
They/Them
Experienced Forum User, Moderator
Joined: 8/3/2004
Posts: 11812
Location: 127.0.0.1
NitroGenesis
He/Him
Editor, Experienced Forum User, Published Author (609)
Joined: 12/24/2009
Posts: 1873
Awesome job with this. Also, this needs to go in moons, there's no reason that the current one isn't but the previous two are.
YoungJ1997lol wrote:
Normally i would say Yes, but thennI thought "its not the same hack" so ill stick with meh.
Experienced Forum User, Published Author (3270)
Joined: 6/2/2009
Posts: 1182
Location: Teresópolis - Rio de Janeiro - Brazil
Sega TASer of 2013SNES TASer of 2012SNES TASer of 2010
Nicely done. I said it not too long ago, but I seek proficiency in speed, fast TASes always entertains me, and this one is no exception. Yes vote from me too.
I am old enough to know better, but not enough to do it.
Experienced Forum User, Published Author (2045)
Joined: 9/17/2009
Posts: 4871
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
GBA TASer of 2010
Are the glitched lines in the encode during the battle with Hot Sauce Bandito normal? :o Nice going under the platform at the Jungle Fish lol. The way you entered the Jellyfish battle was quite unexpected. About that platform boost in Dutch under, is it only that spot it works? Can it be triggered elsewhere useful as well? Oh, and yes vote. I like this screenshot:
Editor, Experienced Forum User, Published Author (662)
Joined: 11/8/2010
Posts: 3903
Exotic platforms TASer of 2014NES TAS of 2013
Thanks for all the nice comments, everyone! :) jlun2: I don't know why those lines are there in BizHawk. They aren't there on my Game Boy Color or in VBA. My guess is it's a problem with the gambatte core. And yes, that's the only spot in Dutch Under where the platform boost works (and that was right where I needed it the most too, for the horizontal push it gives). The only other place I know about is the place I originally discovered it in Goo Lagoon, on a seemingly normal bubble platform: If it's too hard to see that GIF, it's also the first trick in this minor tricks video.
Patashu
He/Him
Experienced Forum User
Joined: 10/2/2005
Posts: 3829
I had to stop playing the TAS half way through to dl the music, lol. Sooo good.
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
Editor, Experienced Forum User, Published Author (662)
Joined: 11/8/2010
Posts: 3903
Exotic platforms TASer of 2014NES TAS of 2013
I know, right? It's too bad most of The Carnival's music is skipped in the run. It's great too.
Post subject: Movie published
TASVideoAgent
They/Them
Experienced Forum User, Moderator
Joined: 8/3/2004
Posts: 11812
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. ---- [2515] GBC SpongeBob SquarePants: Legend of the Lost Spatula by CoolKirby in 05:57.98
TiKevin83
He/Him
Ambassador, Experienced Forum User, Moderator, Published Author, Site Developer (164)
Joined: 3/17/2018
Posts: 301
Location: Holland, MI
Rookie of 2018Gameboy TASer of 2018Gameboy TAS of 2018
This movie has been console verified https://youtu.be/uxWiNZQAhMg
Editor, Experienced Forum User, Published Author (662)
Joined: 11/8/2010
Posts: 3903
Exotic platforms TASer of 2014NES TAS of 2013
That is so cool! Thanks TiKevin83! Is the console's 6:01.07 time just caused by delays in LCD on/off? It looks like I lose around a second to that before the title screen even comes up.
TiKevin83
He/Him
Ambassador, Experienced Forum User, Moderator, Published Author, Site Developer (164)
Joined: 3/17/2018
Posts: 301
Location: Holland, MI
Rookie of 2018Gameboy TASer of 2018Gameboy TAS of 2018
Your movie did have the right framerate as listed in your submission notes, but it didn't yet use BIOS which is crucial to console-accurate timing. Dekutony I believe uploaded a movie to userfiles resynced with the BIOS which adds a bit less than 4 seconds. The other problem is that GB and GBC do not have "frames" when the LCD is off, just arbitrary lengths of clock cycles which get rounded up into frames for the ease of emulators. So you save some of the BIOS timr back to the LCD off cycle issue.