(Link to video)
Submission Text Full Submission Page
So a couple days ago, MarioAtWork submitted their nice run of this game, and admitted in the submission text that they knew there were secret Cans of Beans! But couldn't find one of them, and so didn't know what they unlocked. Their run made the game look fun, and I had ideas of where to look for dem beans. So, interest piqued, I downloaded the rom from the owner's website and played through it myself. I;m thinking about Thos beans
I found all of the cans and the minigame they unlock. Not too special on its own--but I did stumble across a few engine quirks that could be used to make a slicker, faster run. Agonizing over the thought of the world missing out on these amazing findings that will finally make me popular, I decided I had to make a 100% run of this neat little homebrew. It's a quick, snappy experience I enjoyed, even if I keep mentally replacing the words "Jacked Up" in the title with something else by accident

TECHNIQUES

Landing Spike Swap

Pressing A as you land can cause the game to react like you jumped without your character actually leaping into the air. Spikes flip and rotating coins move. If you're jumping up through a passable floor, the time frame is long enough that turboed presses can cause multiple flips without a single actual jump, though this usually will just cause more lag with less practicality. This trick can also be done on the very first frame of any level--I guess the game considers you airborne for exactly one frame before you can start jumping. If the block you're landing on will have spikes on it after the flip, you can walk right through them without being affected! Note that spikes attached to blocks nearby that don't flip will not allow you to walk through them also, though. So in a game based around spikes flipping with every jump you take, you can imagine how manipulating game states without forcing your character into the air can change up level strategies and speed things up quite a bit.

Failed-Block-Expulsion Abuse

If you are inside a block, the game will force you out. If you are at almost the height of a platform that you can jump through and start to fall, the game will force you up onto the platform. If you do the latter in a spot where a you will be forced into a solid wall, the game won't make both checks, and you can sit in the wall if you don't move left or right. Jumping will have the block force you upwards out of itself, usually straight inside another block. Repeat this enough times, and the game can even force you completely out of bounds! Unfortunately, I was only able to find two places in the whole game where this trick can be used: During the second stage of the final level, which takes exactly the same amount of frames as just jumping normally, and during stage 6, which takes you out of bounds to where you can not make your way back inside, softlocking you until you bring up the start menu and restart or exit the stage. I have included a gif of that second usage for the reader's perusement and amusement:

LEVEL DESCRIPTIONS

Level 1

This game is a good way to practice Platformer TASing fundamentals, as momentum must be considered to complete a stage as quickly as possible! Time was saved by sliding to the left as I jumped towards the first coin, giving myself maximum right-ward momentum at the moment I snatch it. 4 frames saved.

Level 2

Vertical momentum is also important--making sure you are falling passed an edge instead of walking off it is a key way to save frames. Bonking up against an edge will also slow you down, like in many platformers. The first use of the Landing Spike Swap occurs after the first jump here--by bringing up the spikes early, I can make sure they disappear when I make my actual jump, giving me more space to touch the coin and the ground sooner. I immediately do the LSS again to make sure the spikes are gone, and without having to do an extra hop in place first. 5 frames saved over Alyosha.

Level 3

You can skip most of the level with a precise jump. Having the game immediately put you on top of a platform you can jump through even if you didn't quite make it is a very generous mechanic in a platformer, thank you game maker! 43 frames saved.

Level 4

Generally this level requires you going all the way around, but TAS can abuse a First Frame Landing Spike Swap to collect the bottom right coin first. This method is exactly 100 frames slower by my count, though--just wanted to say it was possible. 3 frames saved.

Level 5

Speaking of frame counts, I tested both upper coin first and lower coin first, and found that going lower coin first was exactly 1 frame faster. This could be a coincidence caused by the fickle lag beast, now that I think about it, but that's my story and I'm sticking to it. 4 frames saved.

Level V-2

Time to start porking some beans. They are always hidden through passages that lead off screen. This one requires no extra effort to reach.

Level 6

The final level of each World is a long, scrolling, rightward trek to conquer. There's one very precise movement to fit through a spiky cavern that you aren't really intended to go through in this direction, but I save a lot of time sneaking through here regardless. 160 frames saved over MarioAtWork.

Level 7

A gimmick of the second World is screen wrapping, but a precise jump can avoid half of it here. 0 frames saved here as it was already perfected.

Level 8

In this infinite pit level, the coins are too far apart to be collected in one pass, so some extra falling has to be suffered. 0 saved frames over Alyosha's sample TAS.

Level 9

A first-frame LSS manipulates the spikes out of the way to help me save time cutting corners, otherwise the level was already well executed by those who came before me. 4 frames saved.

Level 10

Lots of Landing Spike Swaps here to save frames all over the place, even if the path isn't changed much from standard play. 17 frames saved.

Level 10 Jr.

Warping around to know where I've bean

Level 11

One thing to understand about screen-wrapping is that the game doesn't keep your x or y coordinate when it wraps you. It snaps you to a nearby grid coordinate. This can make movements awkward as in most pits or tunnels, it doesn't matter where your character is, they will always come out the other side in exactly the same spot. However, your character does maintain their x/y momentums, though! so in some cases it is wise to get your aerial drift speed to max before you fall through the screen, saving frames on the other side even though you appear in the same location as otherwise. 30 frames saved.

Level 12

This level introduces World 3's bouncing ghosts, who can launch you very high if you hold down the jump button as you touch them. Note that how high you can go can be limited by how high your y coordinate is when you touch the ghost--you won't get maximum height if you bounced off the ghost's ankle instead of it's cranium. Deciding how high to land on a ghost can be important to a level's optimum path. 4 frames saved.

Level 13

I tried many ways to improve the path on this stage, but the coin on the far right is too high to reach by any bounce off the middle ghost. The coins are too far apart to have two collected in one jump anyway. Notice also that a ghost can not be jumped on again until you touch ground, otherwise bouncing off the left ghost twice might have been faster. The world may never know! 16 frames saved.

Level 1313 Deadend Drive

mmm, wall beans

Level 14

This level introduces coins rotating through various platforms with each time you jump. Typically the ideal path here is to walk away from the coin that starts in the center, and jump towards the rightside will it will magically appear in front of you. However, I found that by doing a First Frame Landing Spike Swap, then jumping, then doing a Landing Spike Swap while still close enough to the ground for the game to think I might be landing, I was able to manipulate the coin through all three possible locations for this stage, and right within range of my jump! 18 frames saved off a 58 frame stage.

Level 15

A FFLSS brings the coin back to within reach of a starting jump, saving all the time usually spent bouncing off the ghost to reach a high up coin spot. Landing on the ledge for a LSS is necessary to continue, and the stage is easy from that point on. 75 frames saved.

Level 16

This level shows off one annoying mechanic of the game that only applies here and in the two minigames: There is a cooldown before you're allowed to collect a second coin. Usually, coins are too far apart for this to matter, but here, the top two coins can be placed so close together that you'll collect one and fall right through the other emptyhanded. To fix this, I get the maximum possible height off the middle ghost, giving me as much time in the air as possible before falling through the second coin, barely allowing me to collect both in one pass, saving a bunch of time. 51 frames saved.

Level 17

The only interesting part of this scrolling level is the very end--I assumed that the rotating coin could rotate back to spot 1 like all of the other ones, but something about how this level is made prevents that from ever happening. Once the coin spawns in, it only goes 1>2>3>4 without going back to 1 or 2. To end the level as quickly as possible, I'm not allowed to jump or bounce off a ghost from the instant the coin spawns in. Jumping at the end of the platform then moves the coin to spot 2, which is closer than 3 or 4 where it would usually be at this point. 87 frames saved.

Stairway to Bulk

If you want to see what happens when you collect all three secret cans of beans, you go up at this screen. There's a cutscene and then a minigame you can play as often as you like. A coin will appear in one of many spots, and every time you collect it, you get a point and it then picks a spot at random again to appear in. When the time runs out, you can see how many points you got. This does not provide anything extra to the TAS so this is skipped, however.

Level 18

The final level has you go through a scrolling stage for each of the three Worlds, culminating in one final giant game-winning coin! If you die, the game gracefully starts you back at the beginning of the scrolling stage you were in, instead of all the way back at the start, and it resets the time to what it was when you entered that part of the level. All of the techniques I've explained earlier come together in this stage to cut corners and make shortcuts, saving lots of time from start to finish. 110 frames saved.
After the credits, you can go back to the world map, and if you have collected all 18 stars you can play a second minigame. It is the same as the Beans minigame, but with spikes and a moving orb that can kill you, ending the minigame early. Again, nothing is added to a speedrun by showing this.
At this point, I believe there to be not many frames to be saved here. I redid every level so many times--every time I walked away for ten minutes, an idea would spring to my head and I'd have to go back and implement it. This game would not be so painful to resync if the lag wasn't so stupid and unpredictable. Honestly, if someone else figures out how to reduce lag as much as possible, they could save a bunch of frames over my run. At this point that's just an extra layer of complexity to this TAS onion that I'm not going to cry over chopping out.

Big thanks to MarioAtWork for their fun submission making this homebrew known to me in the first place btw


arkiandruski: Claiming for judging.

TASVideoAgent
They/Them
Experienced Forum User, Moderator
Joined: 8/3/2004
Posts: 12260
Location: 127.0.0.1
Editor, Experienced Forum User, Player (84)
Joined: 4/7/2015
Posts: 299
Location: Porto Alegre, RS, Brazil
There you go, this is a very solid run! I think short homebrews like this one are much better enjoyed in a 100% run.
Games are basically math with a visual representation of this math, that's why I make the scripts, to re-see games as math. My things: YouTube, GitHub, Pastebin, Twitter
Alyosha
He/Him
Editor, Experienced Forum User, Expert player (2777)
Joined: 11/30/2014
Posts: 2450
Location: US
NES TASer of 2015
Nice optimizations, yes vote again.