Submission Text Full Submission Page
Last time we saw a Blaster Master run was the extremely buggy European version in '09, and the US version hadn't been TASed since 2005. Many bugs have been discovered since then, so it was past due for a new run.
This is an improvement of 118.55 seconds over the previous run by use of new routes, new glitches, and improved optimization.
UPDATE: Cancelling this due to new discoveries leading to massive potential improvements. Looks like the ride's not over yet.

Game objectives

  • Emulator used: FCEUX 2.1.6-interim svn2724
  • Aims for the fastest time
  • Defeats all bosses, acquires all upgrades
  • Manipulates luck
  • Takes damage to save time
  • Uses death as a shortcut
  • Uses continues as a shortcut
  • Actually uses the homing missiles
  • Doesn't break the game in half over its knee, but still puts it in a headlock and gives it a loving noogie

Acknowledgements

Thanks to Twisted Eye for discovering/clarifying glitches and improving the route in Area 4. I was originally planning to do a run including the Area 4 skip, but when I was stuck at one point, I came back and tried his route and came to the conclusion that actually beating Area 4 would make a significantly more interesting run that is only slightly slower.
Thanks to namflow for creating the most recent US run. I repeatedly referenced his run and compared times to make sure I wasn't missing obvious improvements or being too clever for my own good.
And a very special thank you to the FCEUX developers for the built-in TAS Editor. Being able to tweak individual frames of input and jump back and forth was incredibly helpful. I would never have made it the whole way through with just save states, rerecords and frame advance. As a sidenote, it seems that FCEUX 2.1.6 never got an official release and they instead moved to 2.2.0, so finding the exact version I was using may be a bit tricky. Hopefully that won't be a problem.

"New" Tricks and Glitches

Many of these were discovered quite a while ago, but they're still worth mentioning/explaining.

Jason Door Glitch

In platformer sections, if you turn around the frame you would go through a horizontal door as Jason, Jason undergoes his usual "walking through a door" animation but in the wrong direction. This results in him teleporting almost a screen away from the door, and offsets his visual and map position by one tile. I only take advantage of this once because of the fairly heavy cost of leaving behind your tank. A run that skips bosses would make more significant use, such as in the European version run.

Boss Death Glitch

There is a narrow window during a boss's death sequence during which you can die and the game will save that the boss is dead. When you come back, you can just go pick up the upgrade in the boss room. This saves a lot of time using continues, since the two long death animations can be made to overlap.

Boss Door Glitch

When you enter the boss's room in a dungeon, an alarm sound plays, then the screen fades out and the boss fades in. This is so that the tile graphics from the level can be replaced with the graphics for the boss. Normally, if you leave before it fades out then the entire process is cancelled, and after the fade-out occurs the exit disappears as well. However, there's a one-frame window during which you can leave without interrupting the process. This leads you to a very glitchy version of the previous room, now with a glitchy boss. If the previous room has harmful terrain, this can facilitate the Boss Death Glitch mentioned above.

Mega Man-Style Pause Glitch

It has long been known that the bosses in areas 2, 4, 6 and 7 have a glitch wherein if the game is paused while an exploding grenade is damaging the boss, the boss will continue to take damage while the game is paused, trivializing those bossfights. However, I discovered that, like in Mega Man, boss invulnerability timers still tick down while the game is paused. By pausing and unpausing the game with proper timing, you can get a boss with a longer invulnerability timer to be damaged up to 5 times with a single grenade, and with only 10 frames of in-game time passing. The Area 1 boss has too short an invulnerability timer for it to save any time, and the area 3 and 5 bosses are too hard to hit (moves too much, hitbox too small). Thus I use it only against the first boss in Area 8 since the second Area 8 boss is trivial anyway.

Corner Braking

In platformer sections, if you come very close to a wall as you jump or fall, the game considers you to have run into that wall even if you're actually travelling away from it. This resets your horizontal velocity to 0, which is often problematic, but can be useful when turning around in mid-air.

Damage "Boosting"

Like in many games, taking damage normally slows you down. In particular, when your tank takes damage you are instantly accelerated by a significant amount in the direction opposite your horizontal travel. This would usually slow you down, but is helpful when turning around in mid-air. If you are traveling very slowly to the right when you fall onto or jump into an enemy, it will result in you moving to the left at a moderate speed. Though this can't get you above your normal max speed, it still greatly decreases the time it takes to turn.

Offset Vertical Shooting

When you hold up for several frames, the tank's turret rotates upward and you can fire vertically. For the first few frames of holding up, you will still fire forward, but depending on how long you hold up the vertical shooting persists. This system is useful in normal play because your tank's special weapons are fired by holding down and pressing B; by holding up for a while, then quickly pressing down+B, you can fire your special weapons upward. This only actually matters for the dumbfire missiles.
However, under TAS conditions this has an additional application: The frame on which your tank's firing direction changes is sometimes different from the frame on which the firing position changes. In particular, it's possible for your tank to fire upward from further forward than a normal vertical shot. This allows you to shoot some overhead targets significantly earlier than you would otherwise be able to, allowing for lag reduction and faster "digging." Further analysis in the in-depth comments.

Horizontal Hovering

When using the hover mechanics, you can save fuel while flying horizontally if you press A only every other frame, given certain starting conditions. This allows me to get a lot of "mileage" out of my hover fuel in stages 7 and 8. Further explanation in the in-depth comments.

Tank Diving

Prior to getting the dive mechanics, your tank moves, jumps and falls much more slowly underwater than in the air. Your falling speed is checked strictly, but for horizontal movement you can keep your old speed by just releasing right or left at the right time. Prior to getting the dive mechanics this is just a parlor trick, but once you have them the old restrictions apply for the first frame after you enter the water. Thus, by releasing left or right for a frame, you can save the time it would take to get back up to speed.

Icy Water/Lava

In the dungeons, water and lava won't kill you if you're invincible from having taken damage recently. Any time Jason spends over these terrains he behaves as though he is sliding on ice. On ice Jason's movement is a lot more "slippery," but his top speed is also 33% higher. So in addition to being able to take shortcuts by using invincibility to cross these terrains, it's actually faster to keep floating over deadly liquids for as long as possible. A bit more explanation in the in-depth comments.

Precision Grenades

Though you can only face/shoot 4 different directions, there are about 36 different spots you can throw a grenade to from your current position. This is because the A button, which throws grenades, doubles as a strafe button, and the position of your grenades are influenced by both your facing and the directions you're pressing. So, for example, throwing a grenade while facing right and pressing up and left will cause it to land slightly to the right of you and a bit further above you. This is helpful all over in the dungeons, especially a few of the boss fights.

The Ejection Seat

Jason can jump on the frame immediately after exiting the tank, launching him even higher than his jump would normally take him. I'm pretty sure this is only useful for killing yourself faster, since it's still not as high as your tank can jump.

Time Comparison

SectionOld EndOld LengthNew EndNew LengthSaved/LostCumulative
Title Screen6366366176171919
Area 1 - Side4180354440513434110129
Area 1 - Over650323236304225370199
Area 1 - Boss745895575641260-305-106
Area 1 to 210061260310071250796-10
Area 2 - Side170356974169006829145135
Area 2 - Over1920421691906721672137
Area 2 - Boss202671063203901323-260-123
Area 2 to 323471320423526313668-55
Area 3 - Side330629591329289402189134
Area 3 - Over35220215835044211642176
Area 3 - Boss365881368362141170198374
Continue? 1379611373368306167571131
Area 3 to 2381021413697114101131
Area 2 to 1400621960389011930301161
Area 1 to 44428642244289139902341395
Area 4 - Side50549626346575368425793974
Area 4 - Over524671918490842509-5913383
Area 4 - Boss538051338505871503-1653218
Continue? 2549821177514258383393557
Area 4 to 55786828865412727021843741
Area 5 - Side621564288583584231573798
Area 5 - Over641772021602961938833881
Area 5 - Boss653731196613991103933974
Continue? 3659055326192953023976
Area 5 to 66673983462743814203996
Area 6 - Side7527085317074279995324528
Area 6 - Over776942424731302388364564
Area 6 - Boss7907313797435212221574721
Area 6 to 5811722099763852033664787
Area 5 to 48194477277158773-14786
Area 4 to 1834531509786551497124798
Area 1 to 2 (b)868143361819593304574855
Area 2 to 79136745538625742982555110
Area 7 - Side10044490779484385864915601
Area 7 - Over1020171573963881545285629
Area 7 - Boss1034101393980931705-3125317
Continue? 41046501240986135207206037
Area 7 to 21047911419875414106037
Area 2 to 3 (b)107725293410158228281066143
Area 3 to 8110449272410418226001246267
Area 8 - Side116085563610949553133236590
Area 8 - Over116575490109942447436633
Area 8 - Boss 1118164158911121312713186951
Area 8 - Boss 2119850168611271315001867137

Section by section comments

Power On

Oddly, I save 19 frames at the title screen by pressing start 6 frames later.

Area 1 - Platformer Section

More optimized movement and better lag reduction are most of the improvements here, but I also drive the tank closer to the end of the pier and do more to abuse the game's awkward ladder mechanics to squeeze a few more frames out.

Area 1 - Dungeon

Better lag reduction, and I take a slightly faster route through the destructible block section.

Area 1 - Boss

I glitch my way out of the boss room so I can die on spikes in the previous room. I lose a few frames to lag during the glitched boss fight, but I "lose" a bunch more frames from dying. I'll recover those frames plus interest in Area 3, so no big deal.

Area 1 to Area 2

...just assume I say "more optimized movement, better lag reduction" at the beginning of each of these blurbs. Anyway, I abuse the ladder again, the tank's position saves me a few more frames, and I save a bunch of frames on the mini-boss by unloading 1 hyper shot and 6 dumbfire missiles straight into its eyes.

Area 2 - Platformer

Nothing interesting to say here.

Area 2 - Dungeon

...yeah, this dungeon practically plays itself.

Area 2 - Boss

I once again glitch my way out to die on some spikes, and I get to use the pause trick to boot. I tried killing myself on one of the projectiles the boss shoots, but I wasn't able to get one to stick around when I tried that... maybe I was standing too far forward. Anyway, this was the best I could come up with. Again I lose frames for dying, but they'll be coming back in Area 3.

Area 2 to Area 3

Not that interesting. When breaking through the destructible blocks, I jump with precise timing, allowing me to fall one frame earlier. Other than that, just the basics.

Area 3 - Platformer

I make significantly different use of my dumbfire missiles than in the old run. Since they're always fired in threes, are pretty slow, and make smoke and noise, the dumbfire missiles are usually quite laggy. On the plus side, they do huge damage. I tried to use them when it would save more time than it costs. Also, in several rooms I'm doing things that normally wouldn't be exactly ideal, but generally this is because doing what would be the best at that time would screw things up later. On a final note, the last room before the dungeon entrance is where I get my first good damage boost.

Area 3 - Dungeon

That red guy next to the spikes shaped like a + decided not to shoot at me for some reason. Not that I'm complaining or anything, it saved me a bunch of lag frames. Also, I get to demonstrate Jason's ability to throw grenades at all sorts of crazy angles.

Area 3 - Boss

The first boss which I fight as intended! Jason really gets to strut his stuff as he precisely throws grenades at each copy of the boss at the moment it appears. Damn, that boy's got one hell of an arm.

Area 3 - Continue?

I already died twice, making continuing much faster. This is what those deaths were saving up for.

Area 3 to Area 4

The usual two, plus "better RNG manipulation."

Area 4 - Platformer

Here, I use an alternate route Twisted Eye found allowing me to spend a lot less time in the tank, a little more time in the dungeon, and reach the boss a lot faster. The fact that I have a bit of fuel left over, combined with an abundance of falling sections, means I get to use the hover mechanics to fall faster by avoiding touching the ground. Pretty cool if you ask me. At the end there's a long unobstructed fall, so Sophia takes this opportunity to get into the music a bit.

Area 4 - Dungeon

As mentioned above, I do have to spend longer in the dungeon since I came in much further from the boss. However, Jason has his waterskis on so he'll still get there in a snap.

Area 4 - Boss

I use the pause glitch on this boss, but I wait a bit to pause so that he'll flick his tongue out just as he dies. The tongue keeps moving and doing damage after the boss is dead, so I can position myself to get hit on just the right frame and die. This sets me back a little bit, so it takes me longer to get the... upgrade...?
Speaking of which, the Key was the primary motivating factor in my initial drive to make a run that skipped this boss. Every other boss gives you some cool new thing you can do with your tank, and from the boss just prior you even got the ability to fly... yet the Area 4 boss gives you a key with which you can open two little padlocks that are 10 feet apart. That was such a letdown when I got there the first time, and I still hold a grudge. But at least it was fun to TAS, and hopefully is fun to watch too.

Area 4 - Continue?

And, like in Area 3, dying during the boss fight means less time spent drowning myself.

Area 4 to Area 5

Jason finds Sophia's ejection seat, and the discovery is so exciting he launches himself off a cliff twice rather than just once! In the next room, the door glitch allows him to skip the entire ladder/platforming section, so he doesn't need to use his second life to plummet to his death to save time. All in all, I save 2346 frames in Area 4 over the previous run. To put that in some perspective, that's almost twice the total frames I had saved in Areas 1 to 3 (1395). Thanks again, Twisted Eye.

Area 5 - Platformer

I was hoping to use the door glitch here to save some time during all that swimming, but unfortunately every time when it feasibly could have saved time, it instead launched me into a big pile of lag. Oh well. At the beginning I send Sophia zipping through the water just for fun... but I think it also puts me in a better position to shoot the scuba guys and saves me some lag frames.

Area 5 - Dungeon

Not much to talk about, really.

Area 5 - Boss

Another boss I fight as intended. Like namflow, I want to be at low health at the end of this fight. He stood on top of the crab to have an easier time hitting its eyes with grenades, but with Jason's amazing throwing arm that isn't really necessary. To reduce lag, I instead stand him directly in front of the crab's face, soaking up as many bubbles as he can with his body. The grenade control really comes in handy here, since it allows me to run around to catch almost all of the bubbles while still throwing a grenade into the crab's eyes once every 8 frames. This was my favorite bossfight in the whole run.

Area 5 - Continue?

For a while I was really confused as to why namflow had this convenient enemy to kill himself on after killing the boss, yet I had to go out of the dungeon and come back in before the enemies would spawn. Then I realized he just didn't kill that guy when he came through the first time. I felt dumb, but can you blame me? Who expects an NES game to remember things like that?

Area 5 to Area 6

I don't lose speed when I get in the water.

Area 6 - Platformer

The ice level. For added fun, I tried to make my tires rotate as little as possible without losing time... Sophia, get your skates on! I make some significant use of jumping in a one-tile-high passage to start falling faster. I manipulate some mines to spew less debris. I also do some more of those things that should lose me time but gain me time later for some reason, like going through the wall of destructible blocks rather than over it in the sixth room. On another note, offset vertical shooting speeds up the "digging" portions quite nicely.

Area 6 - Dungeon

Remember when I said Jason's speed is higher on ice? I try to stay on the ice.

Area 6 - Boss

Though this boss is basically just the Area 2 boss but powered up, I still take a different strategy for it. If you recall, I said that the Area 2 boss's projectiles were cleared when it dies. That's not true this time, so I don't even have to leave the room to die at the right time. A good thing, too... for some reason glitching out of this boss room generates a ton of lag... possibly because of the horizontal door? Also, even despite dying, I save a bunch of frames over namflow's run because he caused a bunch of unnecessary lag. Whoops?

Area 6 to Area 7

So namflow and I both picked up some lightning and some homing missiles near the end of Area 6, but it seems like he just forgot about the homing missiles. This is a travesty and I sought to correct that... especially since it saves me some time! I also take a ~100-150 frame detour at the beginning of the big outdoor room in Area 1 to grab one of the 4-block hover items. That much fuel will easily make up for that time in Areas 2 and 7. I also manipulate enemies to drop a couple more hover items for me. On the way through Area 2, there's a big empty hallway on the way to Area 7, so Sophia rocks out to the music.

Area 7 - Platformer

Area 7 was one of the tougher parts to optimize because of resource management. I come in with a bit less than 5 bars of hover fuel, 10 homing missiles, and 14 charges of lightning. I'll be out of both fuel and homing missiles by the time I leave. There were sections where I had to cut shortcuts I took because they used fuel that could be better spent elsewhere. At one point a turret on the ceiling drops hover fuel in a position which I can't reach without a significant expenditure of time and fuel. I felt like the game was taunting me.
On the plus side, though, I had hover and I was using my homing missiles, and just those facts were able to save me a ton of time. For example, I took some faster routes through the "digging" sections because I had hover fuel. Some routes that would normally be fast cause problems because they lead to two-space gaps with no ceiling clearance to jump over it. However, with just 1 point of hover fuel, I can float over such a gap... for reference, each bar on the left represents 32 points of fuel, so 1 point is an amount I'm happy to spend anywhere it saves time. And though homing missiles have odd pathing and are potentially very laggy, they still allow me to hit enemies I can't normally reach. The sometimes-alternative, lightning, tends to cause about the same amount of lag any time you fire it so it can be better or worse for killing an Enemy Below you.
That last room with the green background was a monster to TAS, as well as the primary reason why I wanted to slow down and pick up fuel in Area 1. I use it in 5 places in the room; most notably, to speed up a falling section so I don't need to jump at the beginning (there are a lot of enemies above, causing lag), as an alternative to Wall.1 near the end, and to let me get over the last barrier more cleanly and spend less time out of the tank. Of those three, the last was least expensive, but it still took 8 points of fuel which, when I first got there, I didn't have. There were a few more nifty hover tricks I was using earlier in the area, but they didn't save enough time to be worth their cost. They will be missed.

Area 7 - Dungeon

This is basically the same stuff as the Area 4 dungeon; spend as long as possible lava surfing at every opportunity. I tried for a while to skip past the wall north of me right at the start, but the flash time seems to be just a few frames too short.

Area 7 - Boss

Like with Areas 2 and 6, the situation is opposite for the Area 4 and 7 bosses. The Area 4 boss has a nice, slow tongue for me to kill myself on after I kill it. By contrast, the Area 7 boss spits fireballs that move too quickly. No matter how I tried, by the time it was late enough I could die without the boss coming back, anything he had shot was offscreen, or at least in the impassible area around the outside. So, instead, I glitch back out, shoot a grenade kind of near some orange blocky things, and then disappear into the void.

Area 7 - Continue?

And again, dying during bossfights saves me time in the long run.

Area 7 to Area 8

Wall.2 is generally a lot more annoying than it is helpful, but you need it in order to get to Area 8 so I had to get it. From now on, I have to put effort into not sticking to the floor when I don't want to, but that should be basically invisible to the viewers. Anyway, Wall.2 does manage to be useful once prior to my ceiling adventure, and as I cross the ceiling in Area 3 I manipulate some enemies to give me two bars of hover. The turret was pretty easy, but getting that flier to carry some fuel directly to me was tricky, since there's no way I could jump and collect it. Anyway, that saves me some time ascending the last wall before the Area 8 door, and leaves enough for some occasional time-saving maneuvers in Area 8.
Oh, and on the way back through that empty hallway, since Jason complained of motion sickness last time, Sophia rocked out much more gently.

Area 8 - Platformer

Who let the composer get away with writing only 4 bars of music for the entire final area? Anyway, to demonstrate how far you can stretch your hover fuel if you know what you're doing... I come into area 8 with zero bars of fuel displayed on the left, yet still make pretty extensive use of hover without picking any up. Outside of that, there's not much to say. Area 7 was a lot more interesting.

Area 8 - Dungeon

Yep.

Area 8 - Plutonium Boss

Those boulders get in the way and make a ton of lag, so instead I used Mega Man-style pause glitching. With some manipulation, I could have fought it normally without losing time, but I wanted to show off this glitch and this was the best place to do it.

Area 8 - Underworld Lord

Oh man does he have a lot of HP, but he's so dumb I can just spin around and he still can't figure out how to hit me with that whip thing. I spend some time mimicing his movements first, but once he gets stuck that gets dull. I could have used Mega Man-style pausing, but that'd be even more boring than spinning given how long this guy takes to die.

Known/Potential Improvements

There are some improvements that are known, and there are a ton of theoretical improvements, so let's start with the known ones:
  1. In Area 2, stay in the boss room and preserve one diamond-shaped projectile to kill yourself. This would require entering the boss room at one less HP, but given the rooms with convenient enemies to bump into, that shouldn't be a problem.
  2. In Area 4, jump up above the door and exit the tank rather than waiting to reach the upcoming ledge. This unfortunately obsoletes the ejection seat. ;_;
  3. In Area 5, use the door trick once or twice to advance more quickly through the swimming section. Finding the best timing for other uses of it would be difficult, but it definitely saves frames in the final room. (I had assumed it wouldn't based on some testing of a similar concept in Area 3.)
  4. In Area 7, the door glitch can be used to save at least 20 seconds or so! Well, looks like I'll have to redo it.
And here are the more theoretical ones, in order from least difficult and time-consuming to most:
  • It's unverified, but if you can get the Area 7 frog boss far enough into a corner and then grenade it from far enough away, you may just barely be able to kill yourself on a fireball late enough to Boss Death Glitch. I never managed it, but my testing wasn't completely exhaustive.
  • When tapping the opposite direction to shoot an enemy behind you, it's usually better to do so in mid-air than on the ground, because grounded acceleration is better than aerial acceleration, slowing you down more. This is true even on ice, but that's because ice makes it practically impossible to do because of how often it just ignores your left/right input.
  • Movement could be more optimized when turning around in mid-air. There are generally three basic techniques: just plain holding the other direction, using corner braking, and using damage boosting. Theoretically the second and third can be combined but opportunities for that are rare if they're even present. Generally it's preferable to use a technique when possible, but I'm fairly certain this isn't always the case and I didn't test extensively. Also, there are definitely a lot of places earlier in the run where I should have used corner braking and didn't (at the time, I was assuming corner braking would slow me down overall), and probably a lot of places where I should have used damage boosting but didn't. Also, in several cases whether or not damage boosting is possible/efficient depends on the positioning of an enemy with at least partially random behavior, so RNG manipulation could matter as well.
  • Resource management of hover fuel could be improved. There are more places where hover fuel could be used to save time, only some of which I take advantage of. They have various costs associated with them, and many have further ways in which they could be adjusted to save more time for a greater fuel cost or vice-versa. Combined with the delays necessary to acquire hover fuel at the various points in the game it's possible to do so, there is a lot of potential for more time savings. In particular, the first technique for ascending which I mention in the extended comments is never used and likely could be to save significant numbers of frames at a few points without much fuel cost. Also, I wasn't examining memory as heavily when I did the section where I hover up to Area 4, so that could probably be further optimized in either direction.
  • Lag could be better managed by prioritizing the appropriate technique for shooting enemies. Sometimes it's best to kill them as early as possible, sometimes it's best to minimize the time your shots remain on screen, and sometimes it's best to minimize maximum processor load by decreasing the maximum number of bullets you have onscreen at a time. Of course, sometimes it's best to just not destroy an enemy. Figuring out what is best where isn't always obvious, and there are also issues of prioritizing which enemies should be destroyed first and so on. This could be managed a lot better than I did, and that's not even including the lag tradeoffs and resource management involved in special weapon use.
  • The random number generator could be better manipulated for a multitude of purposes. Ideally, enemies wouldn't ever drop powerups you don't need. Failing that, enemies would only drop powerups that you could pick up without losing time. Enemies that randomly appear wouldn't when it wasn't necessary, and those that appear at random positions or move in random directions would all do so in the most convenient ways. Oh, and enemies would randomly decide not to shoot when that's a possibility. Of course, accomplishing all this would be impossible, but it could certainly be optimized better than I managed to.
  • Boss death sequences tend to be fairly laggy, but your character's precise position onscreen seems to change how laggy they are. This could probably be further tested and better manipulated.
  • Mystery lag could be better manipulated. More on mystery lag in the extended comments, but the amount of trial and error this would require is pretty ridiculous.
All of this would be important in an improvement to this run, either if I end up coming back to this or if someone else decides to run Blaster Master and clean it up further.

Extended Comments - The Guts of the Game

This is where I get into all the cool number-crunching and stuff that you're probably not interested in unless you're into how old games are programmed or are planning to run Blaster Master at some point.

Basic Tank Physics

Your tank has a maximum horizontal speed of 24 sp/f (subpixels/frame). When grounded, you accelerate at 2 sp/ff (subpixels/frame^2) when holding left or right, and you are decelerated at a rate of 1 sp/ff if holding neither. In the air, holding a direction accelerates you at 1 sp/ff, and your horizontal velocity does not change when you release both directions. You count as grounded on the frame you press A but not after it, despite your tank having a fairly lengthy jump startup.
When jumping, there's a 4-frame delay between pressing A and the jump starting, e.g. if you press A on frame 771, your velocity variable won't become nonzero until frame 776 rather than frame 772. During this time the jump can be interrupted by falling, walling, or damage. Once it kicks in, your vertical velocity is set to -66 sp/f. After this point, there is a further delay of 16 frames before the game will count you as having released A for the purposes of jump height. As long as you hold A (or this delay continues to apply) gravity applies as normal. Once the delay has ended and you have released A, if your vertical velocity is still negative it is reset to 0. The acceleration of gravity is 2 sp/ff, and terminal velocity is 64 sp/f. So, e.g. if you tap A for one frame on frame 771, your velocity will be -66 sp/f on frame 776, -36 sp/f on frame 791 assuming you haven't hit a ceiling in the interim, and 0 on frame 792.

Offset Vertical Shooting

The point at which the offset occurs is if you hold up for 8 frames, then release up and press B, or any equivalent. "Equivalent" referring to the fact that the "up"-ness of your gun goes up when holding U at the same rate as it goes down when not holding U, so pressing and releasing U for the same amount of time will return you to the same level of "up"-ness as before, assuming it does not reach its maximum or minimum in the interim. Notably, the offset vertical shot is only possible when not pressing U, i.e. when your "up"-ness drops from 8 to 7 rather than vice-versa.

Hover Mechanics

Once you have the capability, pressing A in midair will activate the hover mechanics, but not use any fuel or provide any acceleration. After the mechanics have been activated, pressing or holding A will consume 1 fuel/frame and accelerate the tank upward at a frame of 1 sp/ff, to a "maximum" upward velocity of -16 sp/f.
If you activate the hover mechanics before the minimum jump height applies, you can be traveling upward more quickly than 16 sp/f. In this case, the "acceleration" will actually reset your velocity to -16 sp/frame when the maximum is checked. If you activate the hover mechanics after the minimum jump height has ended, your velocity will necessarily reset to 0 because you must release A before you can press it again to activate the hover mechanics, and in fact will reach 2 on the next frame because the mechanics take 1 frame to activate. By tapping A to jump, then pressing and holding A exactly 20 frames after that (e.g. 42027 and 42047), your velocity will actually be -34 for one frame before being reset to -16. This is because your hover mechanics have not yet activated, but you are holding A, so normal acceleration of gravity applies rather than either being reset to 0 or capped at -16.
If you are hovering, the 16-frame delay from jumping has expired (or never applied to begin with, i.e. you drove off a cliff rather than jumping), you release A, and your velocity is negative, then your velocity will be reset to 0 just like when jumping. If your velocity was 0 or positive, normal acceleration of gravity will apply.
- Application 1
When attempting to reach a vertical destination, there are three potential techniques to get ideal ratios of either height/frame or height/fuel:
  1. Tap A, then press and hold A 20 frames later.
  2. Press and hold A until your vertical velocity reaches -16 sp/f, then release A for one frame before pressing and holding A again.
  3. Press and hold A until your vertical velocity reaches -2 sp/f, then release A for one frame before pressing and holding A again.
Assuming an arbitrarily high destination, the first gets the best height/frame ratio, the last gets the best height/fuel ratio, and the second is a good compromise. For further analysis:
  • Assuming an arbitrarily high destination, after all three techniques have achieved a velocity of -16 subpixels per frame while hovering, the first technique is 115 subpixels higher than the second, which is in turn 54 subpixels higher than the third.
  • Once all three techniques have reached or exceeded the height at which the third technique achieves a velocity of -16 subpixels per frame (1239 subpixels), the third technique has used 18 fuel, the second has used 22 fuel (and is 6 subpixels higher and 3 frames earlier), and the first has used 26 fuel (and is 9 subpixels higher and 10 frames earlier than the third technique at this point). Apologies if this doesn't make sense to you, if you're really interested PM me and I'll try to add some more detailed tables.
Given a sufficiently high destination such that all these restrictions apply, the second technique spends at least 3 more fuel to reach the destination at most 4 frames earlier, and the first technique spends at least 3 more fuel to reach the destination at most 8 frames earlier than the second technique, or at least 7 more fuel to reach the destination at most 11 frames earlier than the third technique.
One can further compromise between the second and third techniques by simply releasing and pressing A somewhere between those two times, allowing a more precise fuel/time tradeoff. However, the first technique must be activated at a specific time and thus more precise tradeoffs between the first and second technique are not possible.
- Application 2
When attempting to reach a horizontal destination, one can take advantage of a slight oversight in how gravity is applied. As mentioned, releasing A while hovering will reset your vertical velocity to 0 rather than applying gravity as normal. This means that releasing A while your vertical velocity is -1 will result in your velocity becoming 0 rather than 1. As such, when your velocity reaches -1, releasing A every other frame gets you near-horizontal (and actually slightly upward) travel with only half the fuel expenditure of actually holding A.

Underwater/Dive Mechanics

Prior to receiving the Dive Mechanics, your tank's maximum horizontal speed in the water is 8 sp/f, as well as your maximum vertical velocity. Jumping has a similar 4-frame startup delay, after which your vertical velocity becomes -46 sp/f (rather than -66 sp/f on land). Acceleration due to gravity is still 2 sp/ff, and the minimum number of frames until your velocity is reset to 0 is 6 rather than 16. This means that a high jump is about 2 tiles high rather than 4 like in air, and the minimum jump is about 1 tile rather than 3. Underwater, when touching ground or otherwise, your horizontal acceleration is only 1 sp/ff. When sinking your horizontal velocity remains constant when you release both directions, but when touching the ground you decelerate at 1 sp/ff until you reach 0. After receiving the Dive Mechanics, your maximum horizontal speed is 32 sp/f, strangely faster than your land speed, and your acceleration is 2 sp/ff. Your max vertical velocity is 24 sp/f while pressing up or down and your acceleration is 2 sp/ff. When pressing neither up nor down, your minimum velocity is -24 but your maximum is only 4, and your rate of vertical acceleration is 1 sp/ff. When not pressing left or right, you decelerate at a rate of approx. 0.25 sp/ff.

Ice

I'm not 100% sure here, but it seems like, while on ice, the game only actually reads your horizontal input once every 16 frames and otherwise keeps your velocity constant. Strangely, the "once every 16 frames" counter seems at least partially independent of lag. Some things actually manage to change when your left/right input actually matters, but I'm not sure what, since at least once in my run there's an area where it's reading ice input only on frames that are congruent to 3 mod 16, and then there are 8 frames of lag, and then it continues reading only on frames that are congruent to 3 mod 16, rather than 11 mod 16.

Walling Mechanics

I haven't put as much effort into studying this since it comes up a lot less often, but I have at least a few useful tidbits pertaining to Wall.2.
  • When driving off an edge, you can avoid driving down the wall by releasing left/right for the two frames before the process would visibly begin. It's easy to identify when it begins because during the animations where you drive onto or off of walls, the lines through your tires are actually parallel, when normally they're 45 degrees different.
  • The above becomes even easier when you're trying to jump as late as possible without sticking, since the frame after you press A you can release left/right without losing speed in midair.
  • In Area 8, when driving down a wall into some spikes, you can actually begin falling one frame earlier by pressing A on the correct frame rather than just taking damage from the spikes.

Platformer Jason

On land, platformer Jason moves similarly to platformer Sophia with a few exceptions. His maximum horizontal speed is 16 sp/f rather than 24. His jumps have no startup delay, and his vertical velocity is initially set to -46, after which acceleration due to gravity is applied whether A is being held or not.

Swimming

While swimming, Jason's horizontal max speed is still 16 sp/f. His vertical velocity can range between -16 sp/f and 32 sp/f. His rate of horizontal and vertical acceleration while pressing a direction is 1 sp/ff. When not pressing left or right, he decelerates at approx. 0.5 sp/ff, and when not pressing up or down he accelerates at 1 sp/ff toward a target velocity of 16 sp/f.

Dungeon Jason

In a dungeon, Jason's maximum speed is 24 sp/f in any direction, and acceleration and deceleration are instantaneous. When on ice, his maximum speed increases to 32 sp/f, but his acceleration is only 1 sp/ff and he does not decelerate if he releases the D-pad.

Grenades

Grenades spend 10 frames in transit before exploding (e.g. if you press A on frame 60764, it will start damaging enemies on 60775), at which point their explosion remains and does damage for 9 frames (e.g. 60775-60783). The Area 1 boss's invulnerability timer is only 3 frames, so it can be hit 3 times with one grenade. Most bosses have an 8 frame invulnerability timer, so they can generally be hit twice with one well-timed grenade. However, this isn't important against the Area 2, 4, 6, or 7 bosses, and generally doesn't work out against the Area 5 boss because of its tiny weak point. Both Area 8 bosses have a 16-frame invulnerability timer.

Mystery Lag

As a final note, I sometimes switch weapons "unnecessarily" while going through doors, sometimes even from one weapon to itself. This is because something (I assume the sound effect it makes) manipulates lag in the future, and the effects of which reach out through basically the entire rest of the video. It's usually just a couple of frames gained and lost here and there, but sometimes it seems to actually have a significant positive or negative effect at some point in the (fairly) near future. Manipulating this is theoretically possible, but seriously annoying.
A few other actions add or remove lag mysteriously; For example, I tried removing the "tank dancing" in Area 2 and found that taking it out added a few lag frames in the near future, and continued changing things positively and negatively for a good while after that. Seriously strange stuff.

Memory Addresses

  • 0x0402 - X position (subpixels)
  • 0x0403 - X position (tiles)
  • 0x0404 - Y position (subpixels)
  • 0x0405 - Y position (tiles)
  • 0x0406 - X velocity (subpixels/frame)
  • 0x0407 - Y velocity (subpixels/frame)
  • 0x0013 - RNG
  • 0x0092 - Hover fuel
  • 0x047D - Area 1, 2, 4, 5, 7 Boss HP
  • 0x0499 - Area 3*, 8 Boss HP Area 3 tracks HP for each copy of the boss individually. They start with 8, and the frame after it reaches 0 the next copy appears. If you're already hitting it by that time, its HP will be seen as 6 immediately after 0.
  • 0x04D1 - Area 6 Boss HP

Conclusion

Canceled... I'm going to redo it with some major improvements as well as better optimization the whole way through. Look forward to it!


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15585
Location: 127.0.0.1
Joined: 6/4/2009
Posts: 893
good tas of a good game ! yes vote + work perfectly on FCEUX 2.2.0
Ambassador, Experienced player (709)
Joined: 7/17/2004
Posts: 985
Location: The FLOATING CASTLE
Awesome run on a classic game. The work done on lag management really shows. Yes.
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
Encode requested
Twisted_Eye
He/Him
Active player (398)
Joined: 10/17/2005
Posts: 632
Location: Seattle, WA
Really, really good run of the game. Namflow's run was pro-level but way outdated now. Really glad you went with the All Bosses branch--also glad that my discovery in Area 4 helped convince you! Props on the discovery of jumping just as you get out of the tank, too. The manipulation of where shots fire from the tank was excellently done, and the assault on the boss of Area 3 was easily the smoothest I have EVER seen on that guy. Gorgeous! You've done a great job, and I'm glad I could help. This definitely deserves to be published. bbbbuuuut.... Less than two minutes saved? ohhoho Let's see if we can't get you two more seconds! I really should apologize for not being more present in the game thread--I just don't put time into this site like I did a few years ago. Might've saved you some effort. My biggest thoughts to consider: * I'm really suspicious about leaving the Ps and Hs around--I get an inkling that makes lag worse? Haven't tested though. * Area 2 boss: Contrary to what you say in the submission text, the little diamond projectiles don't get cleared when the boss dies; they die on collision with a grenade blast--that might've caused the confusion. I just tested, and, yeah, you can use them to die in the boss room and save some time. * Area 4, the Jason deaths in the big room: You can jump on top of the ledge over the entry door and drop Jason from there to cut frames, 20~30 each time. * Door Glitch in Area 5! I know you say that it causes lag to do so, but I guarantee that it saves time to do at least once. The first door won't save time (you can't use the pause trick unless you pause to reset position before entering the door + the position the glitch leaves you in right up against a wall so not really faster to do), the second door outright kills the run haha, the third door COULLLLD help if the lag isn't too bad (might be better to skip the pause trick? The window of possible-saved-frames becomes really small either way), but the fourth, final door definitely saves time to Door Glitch on, despite having to 'enter' the dungeon twice. I counted ~30 frames. * I'm curious about if the 4-pack of H actually saved time, instead of more luck manipulation from the hoverbots in that room. It's a good idea, though, I'm just wondering if one or two more H collected en route and crawling up the wall before Area 7's dungeon would be slightly faster. Love the idea you had of jumping off the wall and hovering over just before entering Area 7 though! So this game deserves another going-over at some point, but you can definitely be proud of what you've done in this one! I could see obsoletion by just a couple seconds as being possible right now, but that's a lot of work for a little gain. I fully support the run as is for right now!
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11478
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Encoding all (doing fast encode as well)! Link to video
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.
JXQ
Experienced player (761)
Joined: 5/6/2005
Posts: 3132
Loved it! Areas 4 and 7 especially were very fun to watch. I liked the sliding gimmick in Area 6. I liked the dancing in Area 2. The spinning on the final boss looked a lot funnier than I thought it would. Pretty much all your stylistic choices resonated well with me. All the little things really showed. Only bummer is that the alternate area 7 route wasn't found to be possible, but having to go through the level created quite a few entertaining moments anyway. "Enemy Below" I saw that capitalization :]
<Swordless> Go hug a tree, you vegetarian (I bet you really are one)
Editor
Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
Very Thanks!
When TAS does Quake 1, SDA will declare war. The Prince doth arrive he doth please.
Joined: 4/25/2004
Posts: 498
This run Blasted like a Master all right. Yes vote. :p
Player (230)
Joined: 4/25/2012
Posts: 73
Hi everyone! I finished updating my submission text and so I'm here to respond to some of the comments. Particularly Twisted Eye's criticisms, but some of the other stuff too.
Twisted Eye wrote:
* I'm really suspicious about leaving the Ps and Hs around--I get an inkling that makes lag worse? Haven't tested though.
Ps and Hs definitely contribute to lag in that they're more stuff onscreen. However, it's often not really possible to kill an enemy in a position where you can grab their drop without slowing down. Additionally, lag tends to appear at certain "thresholds" in this game, and as such having a bit of minor stuff around, like a P or an H or two, doesn't bump you up from one lag threshold to the next. Generally though, yes, it'd be preferable if enemies didn't drop any items you didn't need, and everything that was dropped was right along the way you're going anyway.
Twisted Eye wrote:
* Area 2 boss: Contrary to what you say in the submission text, the little diamond projectiles don't get cleared when the boss dies; they die on collision with a grenade blast--that might've caused the confusion. I just tested, and, yeah, you can use them to die in the boss room and save some time.
Whoops. Suspected it may have been something like that when I managed it against the Area 6 boss, but I had tested at 2 at least somewhat so I assumed it may have been some change to make the Area 6 boss harder.
Twisted Eye wrote:
* Area 4, the Jason deaths in the big room: You can jump on top of the ledge over the entry door and drop Jason from there to cut frames, 20~30 each time.
Aw man! That's helpful, but it also obsoletes the ejection seat. Why you gotta do this to me, man? :(
Twisted Eye wrote:
* Door Glitch in Area 5! I know you say that it causes lag to do so, but I guarantee that it saves time to do at least once. The first door won't save time (you can't use the pause trick unless you pause to reset position before entering the door + the position the glitch leaves you in right up against a wall so not really faster to do), the second door outright kills the run haha, the third door COULLLLD help if the lag isn't too bad (might be better to skip the pause trick? The window of possible-saved-frames becomes really small either way), but the fourth, final door definitely saves time to Door Glitch on, despite having to 'enter' the dungeon twice. I counted ~30 frames.
I was trying a fair deal in the other rooms, though I guess I didn't try skipping the pause trick before glitching... and I think I was assuming it wouldn't help in the last room alone since it didn't when I was trying to get to the Area 3 door faster, but I guess that one's different because you have to back up a bit.
Twisted Eye wrote:
* I'm curious about if the 4-pack of H actually saved time, instead of more luck manipulation from the hoverbots in that room. It's a good idea, though, I'm just wondering if one or two more H collected en route and crawling up the wall before Area 7's dungeon would be slightly faster.
Well, in the extended comments I've posted, I talk about some of the ways you can be more or less efficient with your hover fuel, so there's definitely some flexibility, but I'm not really sure how much flexibility. And if you try to get more from the hoverbots in that big open room, there's the issue that it would definitely slow you down, maybe even proportionally to grabbing the 4-pack. The area in which the hoverbots will actually show up is very limited, so in order for them to drop a lot of hover, a lot of them need to spawn. This will either cause lag by having a bunch on screen at once, or will slow you down by forcing you to wait for more to spawn. Additionally, the more hover you want to get, the more likely it is you'll need that golem guy down near the bottom of the screen to be onscreen. He makes the RNG really volatile, which is nice, but he's another guy onscreen and he's laggier than the hoverbots to boot. Oh yeah, and thanks for the compliment on the area 3 bossfight. I'm pretty sure it's perfect, since I begin damaging each copy as soon as it becomes vulnerable and there isn't any lag during the fight. :)
feos wrote:
Encoding
Thanks for the encode! I was waiting to figure out how to export video with FCEUX until I was done with my submission text, but by the time I was ready you'd already posted it.
JXQ wrote:
Pretty much all your stylistic choices resonated well with me. All the little things really showed.
I'm glad you enjoyed my "playing around." I wanted to find something to do with those boring and time-consuming sections, and that's what I came up with. I hope my shenanigans while waiting for bosses to fade in didn't get to hold. And yes, Enemy Below. I was writing that section and as soon as I realized what I was writing, I had to capitalize a couple of letters. :P
Personman
Other
Joined: 4/20/2008
Posts: 465
You've outdone yourself with the submission text. I haven't watched the run yet and I already love it.
A warb degombs the brangy. Your gitch zanks and leils the warb.
Post subject: Re: #3776: BrotherMojo's NES Blaster Master "All Bosses" in 31:15.48
Joined: 4/2/2008
Posts: 70
TASVideoAgent wrote:
<h4><a></a>Basic Tank Physics</h4><div class="deeper">You count as grounded on the frame you press A but not after it, despite your tank having a fairly lengthy jump startup. <p>When jumping, there's a 4-frame delay between pressing A and the jump starting, e.g. if you press A on frame 771, your velocity variable won't become nonzero until frame 776 rather than frame 772. During this time the jump can be interrupted by falling, walling, or damage. Once it kicks in, your vertical velocity is set to -66 sp/f. After this point, there is a further delay of 16 frames before the game will count you as having released A for the purposes of jump height. As long as you hold A (or this delay continues to apply) gravity applies as normal. Once the delay has ended and you have released A, if your vertical velocity is still negative it is reset to 0. The acceleration of gravity is 2 sp/ff, and terminal velocity is 64 sp/f. So, e.g. if you tap A for one frame on frame 771, your velocity will be -66 sp/f on frame 776, -36 sp/f on frame 791 assuming you haven't hit a ceiling in the interim, and 0 on frame 792. </div>
Quick comment here, to clarify how this works. The point at which your vertical velocity it set to 0 is dependent on your speed, not how many frames it's been since your jump started. If your upward speed is below a certain threshold, your speed gets set to 0 instead if you're not holding A. This same rule applies underwater, but your initial velocity is obviously a lot slower. Not that it matters since you never jump underwater with the tank anyway.
<div class="deeper"> I'm not 100% sure here, but it seems like, while on ice, the game only actually reads your horizontal input once every 16 frames and otherwise keeps your velocity constant. Strangely, the "once every 16 frames" counter seems at least partially independent of lag. Some things actually manage to change when your left/right input actually matters, but I'm not sure what, since at least once in my run there's an area where it's reading ice input only on frames that are congruent to 3 mod 16, and then there are 8 frames of lag, and then it continues reading only on frames that are congruent to 3 mod 16, rather than 11 mod 16. </div>
There's two frame counters. One goes up *every* frame, and the other only goes up during non-lag frames. The one the game checks to see if it should change your velocity is the one that goes up every frame, but if that frame is missed because of a lag frame, your velocity won't change. Also, the game doesn't bother checking if you're on ice if your tank is 'crouching', but it looks like you knew that already judging from how quickly you do the climbing in Area 6. I have a pretty extensive memory/code map of this game but there's nothing useful that I've found that you don't already seem to know. One last thing: The RNG is at 0x13. It only gets advanced when something reads it, and starts the game at a fixed value. However, the hopper enemies that you run across throughout the first room read the RNG every frame that they're not jumping, so in a real time run it immediately goes to hell. Nice to see a long overdue improvement for one of the best NES games in existence.
Post subject: Re: #3776: BrotherMojo's NES Blaster Master "All Bosses" in 31:15.48
Player (230)
Joined: 4/25/2012
Posts: 73
UraniumAnchor wrote:
One last thing: The RNG is at 0x13. It only gets advanced when something reads it, and starts the game at a fixed value. However, the hopper enemies that you run across throughout the first room read the RNG every frame that they're not jumping, so in a real time run it immediately goes to hell.
I do actually mention that under "memory addresses," though I guess some clarification of the behavior would have helped. Also, for the part where I need to luck-manipulate myself 3 H items, I definitely take advantage of the hopping guys making the RNG extremely volatile; I intentionally don't jump too high so that the one on the bottom of the screen doesn't get scrolled off the bottom, so I can manipulate what the flying enemies drop just by killing them on specific frames. But yes, the fact that it only gets advanced when it's used definitely makes things very rough to manipulate ideally. Also, good to know for the jump velocity being the trigger rather than time, I should maybe update that in the text... but at the same time I think I'd find it a bit easier to just use frame counts when TASing, so I'll keep it as is for now. Regarding the tank "crouching"... are you referring to the jump startup? I mention that your tank counts as airborne immediately after you begin jumping rather than once you leave the ground. I guess I don't mention that in the context of ice, but I thought that followed pretty easily. And if you mean something else by "crouching," do tell. :)
Joined: 4/2/2008
Posts: 70
The jump startup and also for 4 frames after you land, yeah. The game counts you as airborne for purposes of horizontal velocity. This produces some interesting behavior if you pause during the crouch, because it resets the crouch counter to 0, but then decrements it before checking it, which causes it to wrap around to 255. The same thing happens if you enter a gateway while crouched. Basically anything that causes the screen to fade out. If you pause during the jump windup, when you come back the game will make you jump after the crouch timer runs out. I don't think it's ever useful, but it looks funny. One other bit of funny behavior that I just remembered: The sine-wave enemies base their movement off the frame counter (the one affected by lag), but the counter runs during screen fades, so you can actually manipulate their movement by pausing the game. Completely useless for a speed run but I found it amusing when I discovered it.
Player (230)
Joined: 4/25/2012
Posts: 73
Ohhhhhhh damn. So I think I found a good reason to actually go back and fix all the stuff Twisted Eye and I brought up... Link to video This should shave 20-30 seconds off, on top of the maybe 5-10 seconds discussed in the submission text and thread. So I guess the correct thing to do would be to cancel and resubmit after I'm done with this second (or really more like fourth) pass? Since it's probably going to be another few weeks before I'm done given how far back I plan to redo... Really, since there are some changes all the way back in Area 2 and I've been saying that I need to clean up my jumps better throughout the run, I should probably go all the way and start from "scratch." I'll be able to preserve a lot of it, but I want to be pretty thorough now that I have a much better grasp of how the game works.
Joined: 4/2/2008
Posts: 70
Oh wow, I think I can even use that in a real time run. That's crazy. How tight is the timing on that last bit? Edit: Found a possible variant that might save more time. Link to video Timing is probably too precise for real time, sadly, for either yours or mine. Just realized I had an infinite lives cheat activated when I recorded that, but it doesn't affect the outcome of the movie. http://dehacked.2y.net/microstorage.php/info/1587424827/Blaster%20Master%20%28U%29-15.fm2
Twisted_Eye
He/Him
Active player (398)
Joined: 10/17/2005
Posts: 632
Location: Seattle, WA
WOW. How did you come up with that? That's amazing!
Player (230)
Joined: 4/25/2012
Posts: 73
Twisted Eye wrote:
WOW. How did you come up with that? That's amazing!
I was looking over all the maps again to see if any important doors were near places Jason could reach from an appropriately-pointed door. I noticed that the dungeon door in the lower left of the room with an "X" of floating platforms was actually just on the other side of the wall from the boss dungeon door. The various drops made it look almost impossible to get there from a glitchable door, but I remembered what you said about using enemies to slow your fall in Area 2, so I gave it a try anyway. My first plan was to try to door glitch in the top left corner of that room... which of course failed, it plants you in midair and too far from any platforms to jump to or land on safely. Next I tried from the other side of the top right door, but when I came into the room my 5-tile offset put me way too far from any enemies to hop down safely, so that was also a no-go. I eventually moved on to the left side door in the previous room. My original plan was still using enemies to slow my fall... which I eventually got pretty close to, actually... but the first thing I noticed was that as soon as I went through the door to the right, it still left me on the current screen, getting the game confused about what room to load. I tried jumping as I exited the door so I could actually try my original plan, and I worked on that in tandem, but I was having much more luck abusing that loading boundary. Fairly early I was able to fatally fall into the room with the boss door, but I tried several times to enter that door before dying and failed. I'm glad to know that's possible, since it's probably faster than the silly fiddling I do... I'll need to die one more time anyway and coming into the dungeon with 2 HP would probably be awkward. I'll do both and compare when I actually get there, though. Moving on, at about the point where I get out, the loading boundary seems to just stop producing safe platforms to land on. Whichever side I go to I just fall, while before I could cross the boundary a little ways, head back, land on something one or two tiles down, and repeat. Somewhere along the line, I got stuck in that ceiling and got to considering that there's an open space above it. I tried pausing to land up there, and I messed around with what would happen if I jumped off the top. Since the screen isn't set up to scroll up from there, it creates another loading boundary I can abuse. Not too long after that I found that I could jump twice, "land" inside the ceiling but get forced down out of it... unfortunately it caused two extra damage and I was taking two getting onto that ceiling. I made a post about it in the WIP thread, but I kept finagling with it until I got the idea that lying down might make me lower so I could fall from up there without damage. It did, and after some more tweaking to get it so I didn't get stuck in the wall, I finally managed it. So, uh... yeah. Basically I came up with it by screwing around until something worked. And while I'm here...
UraniumAnchor wrote:
Timing is probably too precise for real time, sadly, for either yours or mine.
Oh yeah, definitely. So many parts in there I was trying holding right or left for one or two more frames, or one or two less, or whatever... just getting down through the lava is quite tight and it just gets worse from there.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2785
Location: The dark corners of the TASVideos server
om, nom, nom... *burp*!