This is a TAS of 'Mighty Bomb Jack' for the NES that completes the game as quickly as possible with "Any Ending" (aka any%). The "Best Ending" requires collecting special items hidden in a pyramid's labyrinth so that all three members of a royal family can be saved at the game's end. But for "Any Ending", no items are required and only the King is rescued. The entirety of the labyrinth is bypassed thanks to a built-in game mechanic that allows you to warp from one "Palace Room" to another in a sequence, if you complete them under certain conditions.
All inputs in this TAS were manually input by myself, no inputs were copy/pasted from other TASes, although other TASes were reviewed for routes and tactics.
In these notes I will describe various game mechanics and TAS tactics to help with understanding the run, as well as a breakdown of which tactics were used in each stage.
SPECIAL THANKS Before continuing, I wanted to give a special shoutout to two people who have been instrumental in helping me optimize this TAS.
Firstly, Ktwo has helped guide me towards a number of resources that improved my understanding of the game, and also came up with some route improvements that will be specified in the stage breakdowns. The first version of the TAS I submitted was already faster than a previous submission for this category/branch by Guybrush, so I figured I was on the right track and didn't need to analyze his TAS. But under Ktwo's recommendation I took a look at that TAS as well as Hisatoki's 'Best Ending' TAS for routing and helpful tactics.
Secondly, Threecreepio figured out some details about the game's movement mechanics that allowed me to optimize the TAS even further with sub-pixel manipulation. He also discovered a pause-jumping trick that made opening chests and breaking blocks in the end game area a little faster.
IMPORTANT MEMORY LOCATIONS
  • 3D1 - Sub-X Pixel, 3D3 - X Pixel
  • 3D7 - Sub-Y Pixel, 3D9 - Y Pixel
  • 3E6 - Sub-Gravity, 3E7 - Gravity
  • 3C1/3C2 - SubX/X when the screen in moving (used during Beginning Screen)
  • 3C3/3C4 - SubY/Y when the screen is moving (used during End Screen 1 and 3)
  • FA - Jump/Hover Counter
MOVEMENT MECHANICS & SUB-PIXEL MANIPULATION Jack's movement along the X-axis is fairly consistent, alternating between 1 pixel and 2 pixels because the sub-X pixel movement is 1.5 pixels per frame. But Y-axis movement is very different. Just like with the X-axis, movement along the Y-axis has sub-pixels, but how quickly those sub-pixels change depends on your current “Gravity”, which changes based on “Sub-Gravity”. When sub-G reaches 256 it wraps around to 0 and adds 1 to your G. Your current G determines how quickly your sub-Y changes, according to a table. For G values less than 64 the change to sub-Y is negative (rising up the screen), becoming 0 around 64 (hovering), then beginning to become positive when beyond 64 (falling down the screen). G caps out at 127 (aka “terminal velocity”). Whenever Jack jumps, both G and sub-G set to 0, while hovering causes G to set to 64 and sub-G to 0. Each frame during jump/hover (including the frame of the jump/hover input) will cause sub-G to grow by 240 unless there are up/down inputs. Up inputs make is grow only 160, while down inputs make it grow 352 (aka 1 G + 96 sub-G). Whenever Jack lands on a surface, the main Y value “snaps” to a number determined by the surface, but the sub-Y when landing can be different. With careful input control this can be used to set up for faster jumps/falls. Sub-Y and Sub-G carry over from the end of one stage to the beginning of the next, so you can manipulate inputs when approaching an exit to set up for an ideal start on the next stage.
PALACE ROOM WARPING There are 16 Palace Rooms in MBJ, each with a different configuration of 24 bombs and thin columns/platforms. When the first bomb is collected, another bomb becomes lit determined by a bomb sequence. To warp to the next Palace Room and bypass the labyrinth areas between them, the lit bomb must be collected last. If the lit bomb is collected early, another bomb becomes lit and the warp will fail. The routes used in each of these stages selects a first/last bomb set that allows for a faster overall path through the room. Ideally we want to collect a bomb near the entrance that will light a bomb near the exit, but the bomb sequence usually doesn't allow this.
SPAWN TYPE MANIPULATION Every time Jack jumps or hovers, a counter goes up. When a mummy hits the floor of a room, it will transform into one of six different types of creature. The type of creature is determined by the jump counter's value (mod 6). Usually this doesn't matter in the TAS, but there are a few places where the wrong type of spawn would get in the way.
LAG REDUCTION When too much stuff is on screen and/or happening at once, it's possible for a lag frame to occur which essentially causes the game to freeze for a frame. This is more common on later stages because the mummies spawn faster so you're more likely to have 4 mummies/creatures on screen at once. Also, every time you hit a 5000 point threshold during a stage, a Bonus Coin appears adding another sprite to the mix. If collected you get 1000 points and all bombs collected in the room afterwards are double points. The presence of this Bonus Coin is the cause of more than half of the lag remaining in the TAS. It would be great if points could be manipulated so that those 5k thresholds only occur during the stage clear screens and we never get any Bonus Coins. Unfortunately, options for manipulating points are limited given the fact that our primary goal is in this TAS is speed. During stages the only way to adjust points is collecting the Bonus Coin for more points, collecting the Power Ball to turn enemies into coins and collecting the coins, or jumping off a surface which earns a mere 10 points. There is one place in the TAS where I adjusted when I jumped to control points just enough to avoid a Bonus Coin and reduce 1 lag frame. There is one place in the TAS where a Bonus Coin could be collected that would result in an overall increase of 1700 points, but the long term consequences of that change added as many lag frames as it removed. It's much easier to adjust points during the beginning screen by collecting more/less balloons and jumping off surfaces more/less, but I never found a set-up that resulted in an overall reduction in lag.
MUMMY PHASING Sometimes mummies can pass throw a platform or wall that is supposed to stop them. There's one stage in the TAS where this happens on accident: in Palace Room 8 a mummy walks through a wall. There are two places in the TAS where I do this on purpose: in Palace Rooms 9 & 10 I force mummies to fall through platforms so they won't be in my way later. I don't understand the mechanics of how this is possible, but Jack's X position is clearly an important factor. In both cases I had to “wiggle” Jack while he was in midair to get the mummies to fall completely through the floor. It seems to be a multi-frame process because there can be situations where the mummies look like their starting to phase through the platform, but snap back up to the surface unless you do the wiggle.
GENERAL TACTICS Below is a list of tactics that I will reference in my stage breakdowns.
  • Corner Clipping: At the right speed/angle, it's possible to make Jack clip into the side of a platform. This can be useful in situations where a platform is in the way of a desired horizontal movement, effectively shortening the length of the platform.
  • Clip-Up: When corner clipping upwards, a jump input can be used to make Jack's sprite shift up to get on top of the platform faster than letting him rise normally.
  • Jump Boosting: Stopping at a platform during an ascent to jump off it for an overall faster ascent. This is often after a Clip-up. Clip-ups and jump boosts can be done with simultaneous inputs in Palace Rooms because both A and B do the same thing. In other types of rooms B is used to activate Mighty Coins.
  • First Frame Jump: On the first frame that inputs can affect Jack in a stage, a jump input will cause him to jump mid-air from his starting position. After that frame you can only hover when in mid-air.
  • Edge Bumping: When Jack is falling/rising past a platform, there is a particular frame where pressing into the platform will result in on overall sooner horizontal movement, even though the sprite looks like it's facing the wrong direction for a frame.
  • Hisatoki Leap: Developed by Hisatoki in their “Best Ending” TAS, this involves jumping off a platform in order to to fall past its edge faster than hovering over the platform would have been.
  • Pause Jumping: Developed by Threecreepio, this is useful in stages other than Place Rooms. There are a few places in the end game areas where we must jump off something to break/reveal/open it, then land again as quickly as possible, probably to do it again. Without pause jumping, this would require an A press, a gap frame, and then another A press. But Threecreepio discovered that you can do an A press, start on the next frame, gap frame, then press A and start on the same frame. It would seem that this wouldn't be faster since it takes 4 frames instead of 3, but the pause stops Jack's sprite from getting higher up before the hover.

STAGE BREAKDOWNS

ROUTE ORIGIN: My stage breakdowns will start with me giving credit to the first usage of the routes. This credit won't necessarily reflect where I myself learned the routing from (I based my early work on Msm_smtn's WR before looking at pre-existing TASes and former WRs), but is intended to give credit to the first person who developed the routing. In the interest of saving time I will only take into consideration 5 sources: Guybrush's canceled 'Any Ending' TAS, Hisatoki's accepted 'Best Ending' TAS, Ktwo's former WR, Msm_smtn's current WR, and my own developments. If I give credit to one of these 5 sources, but evidence can be produced that a route was first developed by a different person, I am willing to edit these notes to more accurately reflect that history. Routes are evaluated on three general elements: the first/last bomb choice, the order the bombs are collected, and the path followed to collect the bombs. If all three elements were developed by the same source, I consider that the same route overall, otherwise I'll specify when the individual elements were developed.
EXPLANATION: In this section I will describe the various TAS tactics used during the route and try to explain why things are done in a certain way. It will not be a full explanation of the route, just the TAS tactics that made the route faster. I will also try to give possible explanations for any lag frames remaining, but I forgot exactly where all the lag frames I was able to avoid are. I won't bother going into detail about the sub-pixel manipulations because almost every jump and up/down input are part of that. The general explanation of sub-pixels given above should be enough to understand those decisions.
BEGINNING STAGE
ROUTE ORIGIN: Used the No Coin strategy by Guybrush.
EXPLANATION: In terms of speed the only thing that matters on this screen is to keep moving right without stopping or hitting any objects. The TAS reaches the exit as quickly as is possible because Jack does not stop to collect any of the Mighty Coins, even though I do reveal the location of 5 Mighty Coins for the benefit of RTA runners watching the TAS. The only other thing of significance that happens during this stage is points. During the Palace Room stages, an object called the Bonus Coin appears when a 5000 point threshold is reached and has the potential to cause lag. Bombs can be worth 100 or 200 points in this stage and each jump (not hovers) is worth 10 points. The collected bombs and jumps in this TAS were programmed in before I appreciated the possible impact they could have on later stages. I experimented with alternative amounts of points in an effort to reduce lag on later stages, but have not found a solution that resulted is a net reduction of frames.
PALACE ROOM 1
ROUTE ORIGIN: Same first/last and bomb order as Ktwo, but Msm_smtn jumped onto the lower left platform after collecting the first three bombs and my path to the first bomb is different.
EXPLANATION: We start by falling down and to the right. Right movement has to be delayed a bit to avoid hitting the upper left platform. As Jack approaches the lower left platform we move left to corner clip into it and collect the first bomb. Without the corner clip we would either collect the bomb to the right first, or be forced to hover to make sure we get the correct first bomb. As we collect the last bomb in the left column we move right to corner clip into the upper left platform, then clip-up and jump boost off it. Another clip-up and jump boost is used near the end of the room as well.
PALACE ROOM 2
ROUTE ORIGIN: Same first/last and bomb order as Hisatoki, but my path to the first bomb is different.
EXPLANATION: We start off with a first frame jump to go over the bombs to the right before dropping down to collect the intended first bomb. Without the FFJ we would have to tap left to avoid grabbing the bomb right next to us at the start, then hover below the bombs while moving right, which would get us to the first bomb 5 frames slower. After collecting the bottom left set of bombs we jump up and clip into the next platform. A single right input is needed to collect the right bomb of the set before clipping up and collecting the rest of the set. Then we jump up to get to the next set, but this time we don't have the space need to clip (unless we move further right first but that would have taken more time). Instead we do an edge bump while rising past the platform to get us to the left bomb sooner and start dropping down to the platform. The right movement as we're falling has to be delayed a frame or else we would miss the platform. Nothing particularly special after that as far as TAS tech is concerned.
PALACE ROOM 3
ROUTE ORIGIN: Same first/last as Hisatoki, but I collect one bomb early.
EXPLANATION: After collecting the first bomb, we jump up to the left and clip into the lower left platform, clip up, and move left a little to collect a bomb before continuing up to the left column of bombs. This may seem slower then just jumping up for the column first, but when we come back down to get the other two bombs we're able to jump up sooner than if we had to walk across the whole platform for all three bombs. When jumping to the right side, there seems to be a mummy in our way, but the timing and hitboxes are just right for us to land and jump over it to collect the two bombs on that platform then jump again for the top right bombs. To get from the last platform to the last two bombs, we perform a Hisatoki Leap. This gets us to the floor faster than dropping off the platform or hovering over it.
PALACE ROOM 4
ROUTE ORIGIN: Same first/last as Guybrush, but Hisatoki collected one bomb later and I collect one bomb earlier.
EXPLANATION: After collecting the bombs on the left floor, we clip into the lower left platform a little bit, clip-up, and jump boost off. The jump boost is performed a little slower than is possible so that we can collect the left bomb on the platform a little early. Like in the last stage, this makes is so that we don't have to walk across the platform as much later and can jump up earlier. We clip into the upper left platform, but have to make a single input move to the left to collect a bomb before clipping up and collecting the rest. Just like in the last stage, a mummy looks like it will be in our way but we have just enough room to land and jump over its hitbox while collecting the bombs on the upper right platform. This ends up being a Hisatoki Leap since we don't have ceiling bombs to grab before going down like in the last stage. Another Hisatoki Leap is performed on the lower right platform.
PALACE ROOM 5
ROUTE ORIGIN: Developed by me.
EXPLANATION: In older routes the lowest bomb closest to the door was collected first, which made the top bomb of the third column from the left our last bomb. My first/last puts the last bomb closer to the door. Since there are no platforms in this stage there isn't much to talk about in terms of special tactics. It looks like we should hit the creature on the floor near the end, but its hitbox isn't active yet so we can safely land and jump up for the last bombs.
PALACE ROOM 6
ROUTE ORIGIN: Same route at Ktwo.
EXPLANATION: When we clip up into the right platform, we don't need to move right for one frame to collect the bomb hanging off the platform like we normally would have to. The hitboxes seem to line up in just a way for us to not need to do that here. When falling past the upper left platform, it looks like that mummy is going to get us but we get there just fast enough to pass it. We do a little edge bumping on the platform, but after that nothing special.
PALACE ROOM 7
ROUTE ORIGIN: Same route as Guybrush.
EXPLANATION: We clip into the left tunnel as we're falling, but need one frame of left input to collect a bomb before fully entering the tunnel. Nothing special after that.
PALACE ROOM 8
ROUTE ORIGIN: Same first/last as Guybrush, but bomb order and pathing developed by Msm_smtn.
EXPLANATION: When going down to collect the second set of bombs, we have to stop our leftwards movement for a few frames to make sure we don't bump into the wall. The jump up off the next platform is delayed a bit to make sure we don't bump our heads on the upper left platform. Slight clip into the upper left platform, then clip-up and jump boost to the top bomb. We clip in to the lower left platform on the way down and clip in to the lower right platform and clip up, but didn't need a right input to collect the bomb. When approaching the last bomb, a mummy walks through the wall, which is weird, but doesn't get in our way.
PALACE ROOM 9
ROUTE ORIGIN: Same first/last as Guybrush, but bomb order and pathing developed by me.
EXPLANATION: The key difference between my route and previous routes is that I hover to get the bomb under the intended last bomb so that we don't have to fall down and jump back up when we come back around for it. Other than those differences the rote is pretty much the same. One of the cool things in the TAS here is that we were able to make the third mummy fall through the floor on purpose so it wouldn't be in our way when we land on that platform later. This stage has the first lag frames I was unable to get rid of when we collect the bombs on the ceiling. They're not caused by a Bonus Coin, although the first one seems to be linked to the Power Ball appearing when there are already four mummies on screen. A jump was removed somewhere (don't remember exactly where) to avoid hitting 70k points during that stage. Doing so would have caused a Bonus Coin to spawn which would create more lag.
PALACE ROOM 10
ROUTE ORIGIN: Same first/last as Guybrush, but bomb order and pathing developed by Hisatoki.
EXPLANATION: For collecting the first bomb, it's faster to go past it while falling and then turn back left a little to grab it. At the top left we clip into the platform, left one frame for a bomb grab, clip-up, and jump boost into a Hisatoki Leap (what a combo!). As we fall down and right to the lower right corner we never land and only skip one frame of rightward movement to make sure we collect a bomb. We jump from the floor into a clip, right one frame for a bomb grab, and clip up. During that jump we made a mummy fall through the floor on purpose again so it wouldn't be in our way later. After the clip up we get another lag frame. The only thing special happening at that time is the 4th mummy is spawning. Even if we stopped Jack from collecting bombs around that time the lag frame is till there. Lastly, we clip-up into the last platform.
PALACE ROOM 11
ROUTE ORIGIN: Same first/last as Ktwo's former WR, but bomb order and pathing were developed by Ktwo recently for use in this TAS.
EXPLANATION: The first jump up is technically a clip, but only by necessity since we don't have the space to collect the third bomb and move over to the top of the wall. Hovering over would be slower. We clip in and up at the upper left platform. We don't need the single left input to collect the bomb we miss because we're going back that way again later. We sort of do a mini Hisatoki Leap off the top platform. The ceiling prevents a full leap. Edge bump at the bottom left. Lag frame because a Bonus Coin is on screen when the third mummy spawns? Another when the fourth mummy spawns. Jump boost on the center right wall, then clip in and up to the upper right platform. Then another mini Hisatoki Leap to head down to the last bomb.
PALACE ROOM 12
ROUTE ORIGIN: Same route as Hisatoki. Guybrush's route was very similar, but had a different first/last.
EXPLANATION: Not much here in terms of special TAS tech. We start off with a First Frame Jump in order to get over the upper left bombs and get some of the upper right bombs first. Hisatoki Leap off the left side. Lag frame caused by the appearance of a Bonus Coin.
PALACE ROOM 13
ROUTE ORIGIN: Developed by me in 2020 for RTA spawn manipulation purposes, turned out to be good for TAS as well.
EXPLANATION: As far as TAS tech is concerned, there's a clip when going down the right side, then and edge bump near the bottom. Clipping up the left side too, and a clip-up at the top. Likely was some jump/hovers control for spawn type manipulation in there somewhere.
PALACE ROOM 14
ROUTE ORIGIN: Same route as Hisatoki.
EXPLANATION: No special TAS tech to point out. There's a lag frame from when the third mummy spawns probably because there's a Bonus Coin on screen, and another when the fourth spawns.
PALACE ROOM 15
ROUTE ORIGIN: Same route as Hisatoki.
EXPLANATION: Jump boost off the right wall. Lag frame caused by appearance of a Bonus Coin. Two other lag frames, one of which is connected to collecting the Power Ball. Deliberately no Jump boost off the left wall at the end because it would be 1 frame slower.
PALACE ROOM 16
ROUTE ORIGIN: First/last is mostly irrelevant here since we aren't warping, but pathing was developed by Msm_smtn. I collect one bomb earlier than Msm_smtn, although they may have skipped it by mistake.
EXPLANATION: We do a First Frame Jump so we can get the top left bomb and immediately hover so we get the second too (in hindsight this isn't necessary since collecting them at the end wouldn't slow down our approach to the exit, but it's a helpful thing to do in RTA since it makes it easier to hit the exit). Clip in and up when entering the bottom hole. Also clip on the way out. Lag frame when we grab the first bomb on the bottom left. Not sure why. Delaying the bomb grab to another frame only moves the lag.
END STAGE 1
EXPLANATION: We start with a first frame jump up to the platform. Edge bump on the way up. Pause Jumping to break the blocks. Didn't need pause jump when opening the chest, doing the regular double jump was just as fast for some reason (does need different sub-pixel manips afterwards though). Rightward movement to the exit needed to be stopped for one frame to avoid hitting the platform.
END STAGE 2
ROUTE ORIGIN: No coin strategy from Guybrush.
EXPLANATION: There is technically a clip-up to get on top of the invisible chest. Pause jumps to reveal chest and open it.
END STAGE 3
EXPLANATION: Edge bump and jump boost to get to the exit faster.
END STAGE 4
EXPLANATION: First frame jump to get up faster. Hisatoki Leap to get down faster. Pause jumping to break blocks faster. Edge bump and jump boost to the exit.

Samsara: I had a joke in mind for my judgement claim message, but then I spent a solid several minutes wondering when our last Mighty Bomb Jack submission was. 2007! Holy h*ck in a h*ndbasket! I wasn't even Samsara back then, let alone everything else I am now!!!
Samsara: File replaced with a version that's, overall, 970 frames faster than the original submission.
Regarding my claim message, there is something else I am now: Impressed at just how far this has come even since the original submission. MBJ may not look like the most complicated game, but it's clear that there are a lot of underlying things one can do to really cut down the time as much as possible. Mad respect for going as far as subpixel manipulation in the latest improvement, especially since it ended up saving a pretty hefty chunk of frames by itself. All the routing looks super clean as well.
Accepting as a new branch! But also delaying at the author's request while a more detailed submission text is being written.
fsvgm777: Processing.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14899
Location: 127.0.0.1
This topic is for the purpose of discussing #8375: SpaceColonizer's NES Mighty Bomb Jack in 06:13.57
Player (243)
Joined: 8/10/2008
Posts: 113
There are two important game mechanics that you have overlooked: - By pressing down on the d-pad, you descend faster than freely falling. Can be used in pretty much every room. - The horizontal movement has acceleration. You should therefore avoid pressing against walls when falling and instead build up speed during the fall so you can clear the obstacle at max speed. Can be used in e.g. the right side of room 3 (and probably other rooms as well). I'm very interested in seeing a TAS of this category. However, there is in my opinion not enough complexity in this game to allow for basically even a frame of known improvement. If you decide to redo this and squeeze out the last frames, I'll try to take another look.
Player (205)
Joined: 9/11/2021
Posts: 37
ktwo wrote:
There are two important game mechanics that you have overlooked: - By pressing down on the d-pad, you descend faster than freely falling. Can be used in pretty much every room. - The horizontal movement has acceleration. You should therefore avoid pressing against walls when falling and instead build up speed during the fall so you can clear the obstacle at max speed. Can be used in e.g. the right side of room 3 (and probably other rooms as well). I'm very interested in seeing a TAS of this category. However, there is in my opinion not enough complexity in this game to allow for basically even a frame of known improvement. If you decide to redo this and squeeze out the last frames, I'll try to take another look.
hey. i've been working on some improvements already. i figured out the pressing down thing on my own. major part of the improvements i'm getting. replacement TAS should be about 8 seconds faster. as far as the horizontal acceleration and pressing up against barriers, i test multiple possibility whenever i'm in those situations. for some reason pressing into a barrier can sometimes get you to your destination sooner. some sort of clipping maybe i think.
Player (205)
Joined: 9/11/2021
Posts: 37
https://tasvideos.org/UserFiles/Info/638231723649985300 here's the user file link to my updated TAS. about 10 seconds faster than previous. also revealed the location of two more medallions. only two are needed for the end game in the TAS and in the WR. but i use a safety strategy that involves getting 4 coins, so thought it would be neat to show their locations in case anyone watches the TAS for strategies. unless someone can point out any major oversights i will stop working on it.
Player (243)
Joined: 8/10/2008
Posts: 113
I saw your comment about the mummies. I played this game many years ago and remember that I couldn't figure out exactly how the mummies worked either. They clearly follow some kind of pattern and depend on MBJ in some way, but I couldn't conclude back then. Anyways, I decided to take a look now and see what I could find out. I've added my findings here: https://kb.speeddemosarchive.com/Mighty_Bomb_Jack_(NES)/Game_Mechanics#Mummies If you have any questions or encounter something you don't think fits in with the description, please let me know. I plan to take a closer look at your improved movie in the next few days.
Player (205)
Joined: 9/11/2021
Posts: 37
(before looking at your notes notes) -yeah so I've figured out a few things: where they spawn is effected by where jack is (at least horizontally, not sure vertically). it seems like they usually spawn on the opposite side of the screen from jack, but not always the case. (this is how stingrays spawn in jaws, opposite side from player) -they usually seem to walk in jack's direction after spawning, but i've seem them behave differently in rta. -the main thing i don't understand is when they'll fall off an edge instead of turning around. it's not number of "bounces/turns", it's something else. -what type of spawn they become after landing on the floor is determined by how many times you jump/hover, which is tracked globally. the jumps are kept track of in memory value FA (thanks to threecreepio for finding that for me). (after reading your notes) -oh wow, the location is based on what's farther away not what's on the other side? interesting. will have to play around with that. -hmmm. drop timer. interesting. will have to look into that. sometimes mummies drop through a floor instead of landing on it. not sure if that's a clipping glitch or if it's based on where jack is somehow. -so i has some notes on the enemy movement patterns. we see the same behavior on everyone except on the "jellyfish" (which i call metroids). what i think they're doing is they move towards jack whenever THEY bounce off a wall, how fast they move is determined how far away jack is. so if jack is close, they move slowly towards him on a bounce, and if he's far they move fast towards him when they bounce. i've never witnessed they're behavior changing because jack was the one that bounced, but i could look out for that now that you mentioned it. -hmmm. threecreepio and i were already saying mod6 just for short hand, but i hadn't considered the rollover situation because of 255.
Player (205)
Joined: 9/11/2021
Posts: 37
i'm not sure if "E" and "C" are doing what the notes say they should. at the very least they aren't updating every frame. C seems to only change when a bomb is collected. not sure if i'm misinterpreting the numbers. but here's when the mummies spawn in the closer spawn location instead of the farther in the second version of my TAS. 3rd mummy in 4. 1st mummy in 6. 3rd mummy in 8. 4th mummy in 10. 2nd mummy in 12. 3rd and 4th mummies in 14. interesting that it only happened in even numbers rooms. possibly just a coincidence. only 2 mummies had a chance to spawn in room 2 with the way it's currently routed, but i edited it and the 3rd mummy would have been close not far. a mummy falls through floor on 14. (there is a mummy directly above it that is also about to fall. may be related) the drop timers are interesting. they don't count down at a consistent pace. the number of frames it takes to count down to the next value changes. looked more into jellyfish/metroid movement. looks like their initial movement is based on where jack was when it was "selected", not where jack was when it starts moving. after that it moves towards jack when ever it hits a barrier, speed determined by how far away jack was at the moment of the bounce, moving faster if jack is farther away. jack touching walls has no effect that i can see. looks like if they hit a barrier but want to continue moving in the same direction (because jack is still in that direction), they will reflect their bounce.
Player (243)
Joined: 8/10/2008
Posts: 113
I think E and C are just used for storing temporary variables during a frame for their zero-page properties. If you look at E frame by frame in a RAM watch, it maps MBJ to a grid, where each quadrant is 16x16 pixels. And if you look at C, it points to either the coordinates of the last collected bomb or, if an enemy spawns, the right spawn position (regardless of if the mummy spawns to the left or right). I haven't looked into what the game uses this information for. However, earlier in the frame, E and C are used to calculate the distance to MBJ (only during the frames the game needs this information). You need to use the emu's debugger tool to study that. Good point about the metroid/jellyfish. I wrote that many years ago and didn't update the section yesterday. I agree that your description is clearly the correct one. I have now updated it. Now when you mention it, I seem to remember mummies falling through the floor. If I remember correctly, it's not even that uncommon. I took a quick look in room 14. By changing the inputs, you can make the mummy stay on the platform instead. I didn't look into it further, but if it would turn out to have any application in a speedrun, I might revisit this question. Anyways, seems a bit weird that such a mechanic depends on player inputs. If you manage to record any evidence of mummies starting to walk away from MBJ's direction, I'd be interested to know. Especially if you get it in an emu movie. I didn't spend a lot of time looking at the mummy drop timer, so not sure why it doesn't count down every frame. The spawn timer looks consistent though. I will partly take back what I said about the horizontal movement. Turns out there is no acceleration in the x-direction. The speed alternates between 1 pixel/frame and 2p/f every other frame. So from that perspective, it shouldn't matter whether you press against an obstacle or not. But still it somehow does. From very limited testing, it was faster for me when not getting stuck on the obstacle. If you run into a case where it's faster to press up against an obstacle, I'd be interested to take another look (I still haven't watched your run in detail, so apologies if this was already the case in one of the rooms). I added a section in the guide on the movements with some RAM-addresses and notes.
Player (243)
Joined: 8/10/2008
Posts: 113
A brief speedrun history of this game. The first notable speedrun for this game was Guybrush's any% TAS from 2006 that was rejected for "being too boring". The following year, hisatoki made a best ending (J-version) TAS that got accepted. Hisatoki's routes are better in many rooms. Some of the room solutions that today look outdated (see e.g. room 1) are however similar to Guybrush's, while there are also parts that are faster in Guybrush's TAS. It's difficult to say if hisatoki had looked at Guybrush's rejected TAS. In 2013, I picked up this game and worked on real-time speedruns in both the any% and best ending categories. There weren't (imo) any serious RTAs at the time, so my starting point was the existing TASes. I found a few improvements and made some adjustments to fit real-time play. In 2018, msm_smtn took the game a big step forward and improved the real-time routes in almost every room. So let's see how the new TAS fits in to the (rather thin) history book of Mighty Bomb Jack speedrunning. Corridor 1 - Collects two mighty coins, same as msm_smtn did in the any% RTA. This is however unnecessary in a TAS. Let's get back to this question in corridor 17. Palace Room (PR) 1 - Same bomb route as msm_smtn, but a slightly improved route for collecting the first bomb. The TASes use an outdated route. PR 2 - Follows hisatoki's route, but implements a frame-perfect jump at the start of the room for a minor route improvement PR 3 - Again roughly follows hisatoki's route, but improves the collection of the bombs in the middle. Good find! However, you should take another look at hisatoki's movie. If you jump to the left from the last platform to the floor, it's faster than dropping down on the right side. PR 4 - Basically the same route as Guybrush and hisatoki, but the left side has been improved a bit PR 5 - Basically the same route as Guybrush (hisatoki used, a bit surprisingly, a route that was clearly slower) PR 6 - Same route as msm_smtn. The any% TAS route is outdated and the best ending TAS route is not applicable in this room (doesn't need to warp to PR 7) PR 7 - The bomb order in this room makes routing quite straight-forward and the route hasn't changed since Guybrush's TAS PR 8 - Same route as msm_smtn PR 9 - Nice minor new routing in this room to avoid a jump at the end PR 10 - Same route as msm_smtn PR 11 - Same route as msm_smtn PR 12 - Same route as msm_smtn. However, hisatoki uses a different route and it's faster. PR 13 - Everyone's nightmare room. The routing in this room is complex. It's a combination of the bomb order, placement of bombs and exposure to enemies that make this room tricky, even in a TAS. The route in the submitted TAS is different from all previous speedruns and looks leaner (and is faster). PR 14 - Same route as msm_smtn. However, hisatoki's route is faster. PR 15 - Same route as msm_smtn. However, you should jump off the pillar on the right and left side (see hisatoki's TAS). You should also look at how hisatoki collected the bombs in the middle. That solution is faster. PR 16 - Same route as msm_smtn. The TASes use outdated routes. Corridor 17 - Same route as msm_smtn. However, you should take a look at Guybrush's TAS. You can clear these rooms without any mighty coins. That should lead to a nice time save in corridor 1. Other comments: - I didn't check for "pushing against an obstacle" that we already talked about above. I assume you've tested both possibilities everywhere it's possible. - I made comments about jumping instead of dropping off some platforms in some of the rooms. I didn't go through the movie again to check if there were any other possibilities for this, but it might be worth if you're anyways going to redo (same with splitting some jumps up in two). - I found this post in the forum about jumping through the floor that I thought was worth sharing, https://tasvideos.org/Forum/Posts/Create/88?quoteId=56961 . It doesn't seem like there exists any evidence for this no more, so this is just in case you want to go "glitch hunting" Overall, it looks like this mainly builds on msm_smtn's room solutions, but there are several new ideas in here as well. Good job on the new findings. And maybe not all of them are "TAS-only" either, so will be interesting to see if any of them get implemented in RTAs. Despite this being another step forward for this game, this submission needs another iteration. I know you already have a few minor improvements of your own that you're also planning to include.
Player (205)
Joined: 9/11/2021
Posts: 37
hmm. looks like I have some old TASes to look at and will make improvements to my submission. for the record, i've never seen them before, so any similarities to those TASes is coincidental, or because msm_smtn copied those starts. my TAS is mostly based on my RTA routes, which were heavily influenced by msm_smtn's WR. RE: dropping over the corner of platforms instead of walking off. my TAS already accounts for that, if there is anywhere that i walk off the edge still it's probably because getting to the floor ASAP wasn't the priority at the moment and left/right was more important. walking off the edge is basically a free hover. i just tested going over the left side of the bottom right platform at the end of 3... going over the right is 4 frames faster for me. i don't know if the TAS you want me to look at does it in a special way but the way i'm programming them: right side is faster. going left requires that you go horizontally to the left, then straight down to the floor (aka orthogonal movement only). by going right a little instead, you only have to go straight down a little bit, then turn left while falling. that diagonal fall is more economic. i'll look at hisatoki's routing for 12, but i have a possible improvement already that involves going across the top first for the bombs on the right, then going back left to continue the normal routing. this avoids going down/up an extra time on the right side at the end. but it only saved a frame when i tested it. maybe hisatoki does something completely different. interesting to see how hisatoki did 14 and 15, but i already think i understand what you're saying about pillar jumping in 15. as far as the beginning/end. i honestly thought two mighty coins were required to open the chests in the tower of chests without going all the way to the top, i'll see what hisatoki does. that'll be a big time save. just for the sake of pointing out how similar my TAS routes already are to my RTA routing, here are the major differences from the TAS: 1: i fall straight down at the start instead of the weird around the platform drop. 2: i don't do the frame perfect first jump in RTA. 3: i don't just collect the bottom bomb on the left, i go all the way up in RTA. doing the u-turn to get the top four bombs in the middle is very efficient in TAS but too slow in RTA. 4: when i make another pass at the TAS i'll improve some things in 4 that make it closer to my RTA routing. 9: TAS does a few weird things i don't risk doing in RTA, but i definitely use that beginning to require less jumps at the end. 15: this WAS what i was doing in RTA, but threecreepio just helped me develop new RTA routing that's a little faster and a lot safer. unfortunately the new RTA strategy is not faster in TAS.
Player (205)
Joined: 9/11/2021
Posts: 37
OK, after looking at the older TASes I see lots of way to improve mine. i will continue working on it now. i see what you mean about jumping across the platforms now. and the beginning/end changes will be great.
Player (205)
Joined: 9/11/2021
Posts: 37
https://tasvideos.org/UserFiles/Info/638237798222671732 Alrighty. Here's another update to the TAS, which is 263 frames faster than the previous version. Big thanks to ktwo for pointing me towards some great resources. Most of the improvements come from adopting some routes and strategies from Hisatoki's best ending TAS and the "No Mighty Coin" strategy from Guybrush's TAS. Additional saves come from clipping into platforms by jumping or falling at the corner. Beginning Screen: Saved 27 frames by adopting G's No Mighty Coin strategy. Same time as G's because it's all unstopped rightward movement. G revealed the contents of many chests, but I only revealed the location of 5 Mighty Coins. 1: Saved 10 frames by clipping into, and jump boosting off of, the top platforms on the left and the right. Route was already 30 frames faster than H's; this time save makes it a total 40 frames faster. 2: Saved 2 frames by clipping into the middle left platform. Route was already 6 frames faster than H's; this time save makes it a total 8 frames faster. 3: Saved 21 frames mostly by adopting H's routing. Additional time saved by clipping into the lower left platform on the way up to collect a bomb early. H's route was 12 frames faster than my previous; this time save is 9 frames faster than H's. 4: Saved 23 frames mostly by adopting H's routing. Additional time saved by clipping into both of the left platforms. H's route was 16 frames faster than my previous; this time save is 7 frames faster than H's. 5: Saved 1 frame, not sure exactly how. Route was already faster than H's; this time save makes it a total 25 frames faster. 6: Saved 6 frames by clipping into the right platform. H's route is still 13 frames faster, but he isn't warping to the next Palace Room and therefore isn't restricted by first/last bomb considerations. 7: No frames saved. Clipped into left tunnel which should have saved time but didn't. Room is skipped in H's "best ending" TAS. 8: Saved 1 frame by clipping into the bottom right platform. Room is skipped in H's "best ending" TAS. 9: Saved 20 frames by dropping faster and collecting the missed bombs at the end. The faster start almost made it so that a mummy would be in my way and slow me down but I managed to force the mummy to fall through the floor. The only thing I manipulated to make this happen was Jack's x-coord, but there must be other factors. Room is skipped in H's "best ending" TAS. 10: Saved 6 frames mostly by adopting H's routing. Additional time saved by clipping into top left and bottom right platforms. H's is still 6 frames faster because at the end two mummies get in my way. In H's TAS the mummies stay on the top right platform because they have longer drop timers. This is either because H's TAS was done with Japanese ROM or because he skipped 3 Palace Rooms. Could save a lot more frames if I could safely walk under the mummy near the end. Getting the earlier mummy to pass through the floor so it wont be in my way would do the trick. 11: Saved 24 frames by clipping into and jump boosting off of the center top platform. The faster left side got me to the right side fast enough that the last mummy spawned on the left and wouldn't be in my way. Also clipped into upper right platform. H's route is still 10 frames faster, but he isn't warping to the next palace room and therefore isn't restricted by first/last bomb considerations. 12: Saved 25 frames by adopting H's routing. H's route was 14 frames faster than my previous; this time save is 11 frames faster than H's because it has less lag, although I'm not sure why. 13: Saved 12 frames by clipping into the middle left platform so I could collect the bombs while going up without having to land on the platform. Route was already faster than H's; this time save makes it a total 67 frames faster. 14: Saved 30 frames by adopting H's routing. H's route was 26 frames faster than my previous; this time save is 4 frames faster than H's. 15: Saved 33 frames by adopting H's routing, except for the jump boost at the end which kept being 1 frame slower for me. H's route was 29 frames faster than my previous; this time save is 4 frames faster than H's. 16: Saved 1 frame by clipping when exiting of the central box. Route was already faster than H's; this time save makes it a total 25 frames faster. End Screen 1: Saved 2 frames, not sure exactly how. End Screen 2: Lost 2 frames because of the No Might Coin strategy. End Screen 3: Saved 21 frames by jump boosting up to the door. End Screen 4: No change.
Player (243)
Joined: 8/10/2008
Posts: 113
I've just watched the new iteration (#3) in real-time. Seriously, good job! I noticed plenty of optimizations since #2. Nothing stood out to me as questionable. It now uses known routes and strats as foundation and has added new findings to the mix. As far as I can tell, this TAS is therefore optimized (with the current knowledge) in terms of routing. I haven't done a frame-by-frame analysis to see if I could save additional frames but I'm satisfied with what I'm seeing in terms of execution too.. Overall, I think this easily deserves to be accepted. Any chance you can now be talked into updating the best ending TAS? You should be able to copy-paste quite a bit from the any% run. I added a note before in the guide regarding room 10 (under the section about the mummies). That should answer your question about why this particular room plays out differently in any% and best ending.
Player (205)
Joined: 9/11/2021
Posts: 37
A best ending TAS is definitely something I will be happy to work on in the future, but not at this time. TASing is a part of my process when I'm trying to learn about games in the hope that it will benefit me in RTA runs. That's why I started out doing things on my own without looking at pre-existing TASes, I learn better that way. The first TAS I submitted to open this discussion was already 15 seconds faster than the canceled any% TASes of the past, and my next submission after realizing that holding down accelerated falls was 10 seconds faster than that, so I figured I was already doing things right and didn't need to look at anyone else's work. Obviously I was wrong. The routing, strategy, and tactics I learned from the other TASes shaved off another 4 seconds. Right now I'm working on trying to get a sub-7 RTA run in any% and the work I've done has certainly informed my performance. When I'm done with that I'll move on to a new project. Some day further down the line I'll return to the game to get a time in the best ending category. When I do that I will TAS a best ending run to help with my learning process.
Player (205)
Joined: 9/11/2021
Posts: 37
https://tasvideos.org/UserFiles/Info/638241392787822463 New TAS update that's 52 frames faster than previous. Found new routing for stage 5 and a few improvements along the way. Also threecreepio discovered a pause strat for the end game area that saved a good chunk of frames. PAUSE JUMP EXPLANATION In the palace rooms that take up most of the run the B button is just another jump/hover like A and you can have them pressed on consecutive frames to do a quick jump and hover (if that would be useful). But on the other types of screens, B is used to activate mighty coins for power ups, so the fastest jump+hover is "A, blank, A". This kind of jump is needed for quickly breaking the blocks and chest during the end game sequence. But threecrepio discovered that if you "A, Start, blank, A+Start" you will come down for next jump quicker even though the inputs take 4 frames instead of 3. IMPROVEMENTS OVER PREVIOUS TAS Palace Room 2: Saved 3 frames that started with cleaner movement in the upper left (not the beginning, when coming back up). Palace Room 5: Saved 33 frames with new routing. Different first bomb with a last bomb that's closer to the exit. There is a more RTA viable version that uses this same first/last bomb. Palace Room 7: Saved 1 frame with a cleaner clip. Palace Room 14: Saved 1 frame, not exactly sure how. Palace Room 15: Saved 1 frame, not exactly sure how. End Screen 1: Saved 4 frames with pause strat. End Screen 2: Saved 4 frames with pause strat. End Screen 4: Saved 5 frames with pause strat and a faster exit.
Samsara
She/They
Senior Judge, Site Admin, Expert player (2123)
Joined: 11/13/2006
Posts: 2794
Location: Northern California
Do you intend to continue working on this? Just making sure I don't judge the run before it's fully done.
TASvideos Admin and acting Senior Judge 💙 | Cohost
warmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.
Player (205)
Joined: 9/11/2021
Posts: 37
Samsara wrote:
Do you intend to continue working on this? Just making sure I don't judge the run before it's fully done.
to be perfectly honest, i don't know. i hadn't anticipated falling this deep down the rabbit hole when i started this project. let's hold off maybe another week. threecreepio and i were starting to narrow in on how a few memory locations that carry over from room to room can effect things. if we can figure it out we might be able to start each room with ideal conditions and squeeze out some more frames.
Player (205)
Joined: 9/11/2021
Posts: 37
currently working on more improvements.
Player (205)
Joined: 9/11/2021
Posts: 37
https://tasvideos.org/UserFiles/Info/638252518783286140 alright. hope this is the final improvement. 70 frames faster than the previous file. There are a few different sources for these improvements: -Learned how to manipulate sub-pixels to get more efficient movements. Sub-Y pixels and "Sub-Gravity"(that's what threecreepio and I have been calling it) carry over from stage to stage so you can set yourself up for faster falls/jumps at the beginning of a stage by altering inputs at the end of the previous stage. You can also manipulate things mid-stage to a degree. -Figured out how to make the mummy in stage 10, that used to be in my way, fall through the platform. i still don't understand the actual mechanics of how this happens, but what seems to be happening is that conditions have to be right on multiple frames for the clipping to complete. if the mummy clips a little bit in on one frame, it can easily "snap" back up to the surface of the platform on the next. but with a little wiggling on the right frames you can continue the clip. -ktwo came up with a routing improvement for stage 11. very nice. haven't tested it in RTA yet because i wanted to finish the TAS before getting back to the grind. -Some minor lag reduction strategies. Hard to pinpoint exactly where i did what (should have kept notes on it), but usually just collecting a bomb on a different frame can avoid lag so not too much is happening at once. this can easily be done without slowing down the routing when collecting bombs while jumping or falling by shifting to the side of the bomb while passing it and shifting back into it on the desired frame. it's a small window of possibilities though, and sometimes isn't enough. I'll begin writing up detailed author's notes for the submission. and go more into all these tactics, but here's a summary of the frames saves for each stage compared to my previous file: Beginning Screen: No changes since the time to complete is based on horizontal movement. Stages 1-4: -1 frame each thanks to sub-pixel manipulations. Stage 5: -6 frames thanks to sub-pixel manipulations. Route was new last version so had more potential for optimization. Stage 6: -1 frame from sub-pixel manipulation. Stage 7: -2 frames from sub-pixel manipulation. Stage 8: -4 frames from sub-pixel manipulation. Stage 9: -2 frames from sub-pixel manipulation and lag reduction. Stage 10: -11 frames from sub-pixel manipulation and getting a mummy out of the way by forcing it to fall through platform. Stage 11: -24 frames from sub-pixel manipulation and routing improvement thanks to ktwo (18 of the 24 saved frames). Would have been -26 but 2 lag frames were added. Stage 12: -4 frames from sub-pixel manipulation and lag reduction. Stage 13: -3 frames from sub-pixel manipulation and lag reduction. Stage 14: +0 frames. Would have been -1 from sub-pixel manipulations, but a lag frame was added. Stage 15: -1 frame from sub-pixel manipulation. Would have been -3 but 2 lag frames were added. Stage 16: -4 frames from sub-pixel manipulation and lag reduction. End Screen 1: -3 frames from sub-pixel manipulation. End Screens 2 & 3: No change. End Screen 4: -1 frame from sub-pixel manipulation. NOTE: I have an alternative version which collects the B button on stage 8 in an effort to adjust the lag situation. Unfortunately it ended in a net zero change.
Player (243)
Joined: 8/10/2008
Posts: 113
Great to see that you've kept pushing it as far as you have. I thought already version 3 looked good, so I'm obviously going to be happy about version 5 as well. Awesome that you managed to include a manipulation of a mummy falling through the platform too! It sounds like you're planning to write some more detailed comments, which I'm looking forward to read.
Player (205)
Joined: 9/11/2021
Posts: 37
Submission notes edited. They now go into more detail about the knowledge and tactics that made this level of optimization possible. Asked Samsara to delay publication so that the notes were there already at time of publication. Ready for publication. Thank you for your patience.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14899
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. ---- [5452] NES Mighty Bomb Jack by SpaceColonizer in 06:13.57