User Files from warmCabin

Upload All User Files

#49606539655244104 - Silver Surfer 3rd Quest Genocide - Level 1

In 02:56.72 (10621 frames), 6713 rerecords
Game: Silver Surfer (NES)
4754 views, 935 downloads
Uploaded 9/4/2018 12:39 AM by warmCabin (23 files)
A fun little TAS I whipped up. This whole game is an auto-scroller, so the only goal is to be as entertaining as possible until the boss fights. I don't know if I can maintain this level of energy over a 30-minute run, but we'll see. I feel like the first stage is pretty fun to watch, at least!
This movie plays the first level; the fm3 contains a bit of level 2, which I decided not to encode.
A movie of this game was already published back in 2012. The authors decided to go for a pacifist playthrough (feel free to laugh at my title, Undertale fans), which wasn't very popular among the viewers. It got rejected, only to be resurrected and locked in the Vault. A lot of the comments said, "why not use the third quest (hardest difficulty) and kill all the enemies instead?" So, 6 years later, that's what I've decided to do.


The goal of this run is to kill the maximum amount of enemies. But, since you can sit at the boss of this stage and kill piranhas forever, this number is technically infinite. Therefore, I've implemented it as a secondary goal, i.e., kill as many enemies as possible without losing time.
Note that most bullets have health and can be destroyed like an enemy. For the purposes of this run, these do not count as enemies. Nobody wants to see the Silver Surfer farm bullets for a half hour!

Potential Misunderstandings

Here I've laid out some questions you might have about this movie:

You used a password! Isn't that against the rules?

Not in this case! The password S4FHFB is only used to unlock the hardest difficulty mode.

Why do you waste so much time on the password screen?

The characters can only be incremented/decremented every 16 frames, but the cursor can be moved every other frame. I took advantage of these properties to input the password in the most confusing way possible.

You let some bad guys get away!

Believe me, I know :/ In the first stage, it's just not possible to kill every enemy; I picked the path that would let me kill the most. I tried using my bomb, but the enemies up top are too strong to die to one bomb. By the time I get more, there are no more branching paths to mess me up. I'm sure they will come in handy in later stages, though.


Finally, I want to detail some techniques I used.
  • Pressing left every other frame causes you to sit still relative to the world. But you have to do it on the correct frames, otherwise you'll end up moving left.
  • Most of the time, start only needs to be held, not pressed, for the menus.
  • Bullets can only be shot every 5 frames.
  • The orb moves before shots are fired, so you can press AB on the same frame and still have the bullets change directions. I use this every time I need to press B for maximum excitement!
  • Power-up drops are not RNG. Certain enemies are set to always drop certain power-ups. I suppose this isn't that big a deal if you're already killing everyone anyway.

#49364838704578513 - Mega Man 2 - Zipless v2.0: Part 2

In 05:59.19 (21587 frames), 16989 rerecords
Game: Mega Man 2 (NES)
10385 views, 822 downloads
Uploaded 8/24/2018 3:24 AM by warmCabin (23 files)

Quick Man

   Stage save: 36  (0  from previous)
   Boss  save: 69  (51 from previous)
   Total save: 105 (51 from previous)
I've saved an additional 51 frames off the boss fight (69 from v1.0), so I've started my notes and my encode here. I utilized a more aggressive manipulation strat to keep him pinned over on the left side, taking damage twice to facilitate this. Due to the damage boosts, it loses 27 frames to a theoretically perfect 19 frame boss fight...which I'm convinced does not exist.
I made an interesting discovery along the way: Quick Man's supposed RNG jumps (where he jumps 1-3 times) are actually the product of him getting stuck in the wall (video to be uploaded soon), which plays out unpredictably--but it's not RNG. This only applies to the outer walls, so if you see him charging up against any other ledge, you know you are about to see 3 jumps.
Also, he always shoots boomerangs on the second jump, so that should help if you're unsure of how many jumps got stuck in the wall.

Metal Man

   Stage save: 40
   Boss  save: 10
   Total save: 50
In v1.0, it slipped my mind that you can save time by shooting the drills. But not this time. The second drill actually saves much more time; rather than jump over two drills, I'm able to stay on the super speedy conveyor belt the whole time.
I also improved the Item-2 usage. In v1.0, there was an awkward landing where I hand to hold still for a second and jump over the springy guy, but here, I managed to land just to the right of him. This move is just barely possible, at least for the frame I used Item-2. Let me explain:
When dismounting an Item-2, it's not necessarily best to just hold right. By letting go of right and even pressing left at certain times, you can influence your position to be a pixel or two further to the right. My current approach is to try randomly until it works...
But even this is not quite enough. The rightmost possible position still results in a collision with the springy guy! That is, unless you're 8-aligned.

Becoming 8-aligned

All the velocities Mega Man can move at (walking, jumping, knockback, conveyor belts...) have subpixel velocities that are multiples of 16, or 0x10. This means your subpixel position will always end with a 0 (in hex), making you 0-aligned. It may seem impossible to change your subpixel alignment, but there is one object that lets you do so: an accelerating Item-2. When an Item-2 is starting to accelerate, and you land on it in just the right way (going to the left), you'll get your subpixel set to X8. If you can keep it that way until the Item-2 fully accelerates, you will now be 8-aligned. This essentially means you can be 8 subpixels further ahead at any given point in time, which is just enough for me to land to the right of that springy guy! I think I'm going to play around with this section a bit more before I move onto Bubble (doing Bubble and Heat before Flash saves 4 frames in menuing, by the way).
Like my other two discoveries, this was something I found totally by accident while doing playaround/TAS fidget stuff.
Fun fact: This Item-2 section saves 9 frames over inputs copy/pasted from the 2010 TAS! The main reason is that they don't take full advantage of their Item-2; that is to say, they let it run out when they are not on the rightmost tip. And I'm not talking about that weird 8-alignment stuff, either: it's a couple pixels. This happens because they use the Item-2 soon enough that it runs out just after the tin can man jump, which doesn't give them enough time to catch up after landing.
The 10 frames in the boss fight are just due to better understanding of the game mechanics. 5 of those frames are from just the first hit, which I jumped too high for in v1.0.

#49071833918125633 - Mega Man 2 - Zipless v2.0

In 04:14.78 (15312 frames), 14598 rerecords
Game: Mega Man 2 (NES)
10714 views, 847 downloads
Uploaded 8/10/2018 10:43 PM by warmCabin (23 files)
Version 2.0 is here! Rather than push onwards through the Boobeams and boss rush in my v1.0 movie, I felt motivated to start over and fix all my little (and big) mistakes. Currently all the timesaves are grouped into stage saves and boss saves, but I may do a more detailed analysis later.

History of this Movie

To understand all the timesaves in this run, I think it's important to understand this history behind it. While the previous run is called v1.0, it's actually not the first attempt I made at creating this movie. There's a previous version, which we'll call the beta version, that I started on a couple years ago. It was simply a TASed version of the realtime route I was doing at the time, back when I was blissfully unaware that it's faster to do Metal before Flash. That's right: there's a TAS file sitting on my hard drive where I go to Flash before Quick and Metal. This was called "mm2 TAS.fm3", and the file that would become v1.0 was sarcastically named "mm2 TAS ADVANCED route.fm3" for a while.
Because this run was so old, I did it the old fashioned way: savestates, frame advance, and an actual controller in my hand. I also had this weird obsession with keeping the 90-frame screen transitions perfectly clean, so I was always trying really hard to find the first actionable frame of every room. I believe I switched to the TAS editor around Flash Man's stage, but I'm not sure.
When making my ADVANCED route (v1.0), I tried my best to salvage what inputs I could from the beta. I had to redo the bosses (with the exception of Air Man), but most of the other inputs could be salvaged. The beta stopped at Metal Man, so all inputs after that in v1.0 were new. Here we will see just how suboptimal these beta inputs are.

Air Man

Stage save: 50
Boss  save: 38
Total save: 88
The boss fight is perfect, aside from a lag frame which I don't think you can avoid. Watching the 2010 TAS's boss fight taught me a lot on how to achieve this.
Compared to the previous movie, you may be surprised there are 50 frames to save in the stage, considering I don't go for any different strats.
Well, for starters, I do go for one different strat: rather than turn around and spawn the bird to the left @3250, I can keep going and shoot the next two eggs without jumping. The second one requires me to shoot a bullet out ahead of time to alter the collision behavior, something I learned from the 2010 TAS. No idea why this works, but it's cool! However, this only saves 2 frames. My new turnaround subpixel tech also ends up saving a frame...which is lost due to boss fight RNG manipulation. What a shame.
The rest of the timesave comes from two main sources: better horn jumps, and better falling.
You can do the horn jumps without stopping if you jump a little earlier, something I did not know in the beta.
The falling tech is even more embarrassing. Somehow, I had it in my head that a 1-frame jump is always optimal for falling off ledges, when in fact a much higher jump often saves more time; this is a misconception I carried with me through most of v1.0 as well.
But an even more embarrassing timesave comes from that one screen transition hidden behind clouds...I simply was not holding left during it, because I didn't realize I could move. This alone wasted about 20 frames.

Quick Man

Stage save: 36
Boss  save: 18
Total save: 54
It turns out my calculations were wrong! Doing this stage with Air actually saves 6 frames over doing it with buster. I failed to account for the fact that you can switch weapons 10 frames earlier at the start of each stage. However, the buster route still ends up saving time, because of a cool damage boost tech I stumbled upon. By standing still for a couple frames, I'm able to take damage from the final Sniper Joe such that I recover from hitstun while in the air, saving me an extra jump. I was unable to get this trick in the air shooter route, because the mech gets defeated sooner and the sniper takes longer to fall down. This difference actually puts the buster route ahead by 1 frame!
I also saved time by defeating each hothead without any additional jumps (although 2 jumps had to be a frame or two higher), and jumping over the first Sniper Joe. My turnaround subpixel tech saved a frame, but due to a frame rule that apparently exists, I couldn't defeat the first mech any sooner. What a shame.
For the curious, I've left in a branch of the air shooter route: branch 8. Branch 9 is the frame Quick Man gets defeated in the current route. If you know of a way to do this boss fight quickly with air shooter, I'd love to hear about it!
If you dig around in the branches, you might find some inputs for Metal Man, but I'm putting those on hold until I'm confident in the Quick fight.

#48877130464294925 - New subpixel optimization tech - proof of concept

In 01:32.74 (5574 frames), 120490 rerecords
Game: Mega Man 2 (NES)
10703 views, 861 downloads
Uploaded 8/2/2018 4:16 AM by warmCabin (23 files)
I've discovered a new subpixel optimization technique! It doesn't always save time, but a subpixel's a subpixel. You never know when an extra couple might come in handy.
When you fall off a ledge and need to turn around, it may seem like you should turn around and brush up against the edge of the wall to get the best position. This is not always the case. Sometimes, you can actually be a few subpixels inside the block; that is, the ejection routine (which runs when you push in the opposite direction) puts you just a bit further out than the first position where you can actually fall. By moving past the wall on the last possible frame, you can save around 0x10 subpixels, depending on your subpixel alignment.
Sometimes, this maneuver may not be possible at all, and it will be better to brush up against the wall and get a X8.00. You just have to try it for each jump.
Note that this does not work if you encounter a left-facing wall (you are holding right) that transcends a screen border; you will be ejected to X8.00. Right-facing ones seem to be OK, though.
To demonstrate this concept, I've utilized it to shave 3 frames off the current TAS (although in reality it's 1 frame + a door frame rule). I simply copy/pasted their inputs and executed proper turnaround subpixels on each relevant jump. I think this stage nicely illustrates all the quirks of when this technique is useful and/or possible. Branch 1 is the current TAS. Branch 2 is with my technique. Each branch is marked on the frame Flash Man dies. I highly recommend you watch this with RAM watch on (X pixel: 0x0460, X subpixel: 0x0480) to see exactly what's going on.
Fun fact: Much like ladder fidgeting, I discovered this while doing some playaround/TAS fidget stuff. I thought it might look cool to have Mega Man turn around at the last possible frame, but then I realized I was actually landing at better positions when I tried to do that! If you're working on a TAS, I highly recommend you do some silly stuff in your run. You never know what you might accidentally discover!

#48553221790148505 - Mega Man 2 - Zipless: Part 2.5

In 24:41.09 (89012 frames), 27003 rerecords
Game: Mega Man 2 (NES)
10990 views, 806 downloads
Uploaded 7/18/2018 2:10 PM by warmCabin (23 files)
I found a way to make the Crash Bomb glitch work, but I don't like it. I had to take an extra hit from the final Sniper Joe, which leaves me with an extra Item 1. Although, it'll certainly come in handy for the alien fight, so I guess it worked out (Didn't know about that secret ledge when I set out to make this movie).
It's likely I'll be saving yet another Item 2 in Wily 2, if I'm right that using Wood on the drills will be faster. If I do, being able to get good MadWidth from the unavoidable bullet would be extremely useful. I've had little luck with this myself, but do let me know if you can find a way to make that happen. Bear in mind that this is a rough draft v1.0 type of movie, which will be scrapped for a better version that attempts to fix all the mistakes. Therefore, the frame you might find here will almost certainly not work in v2.0.

#47641550972708655 - Mega Man 2 - Zipless: Part 2

In 24:40.57 (88981 frames), 26163 rerecords
Game: Mega Man 2 (NES)
11557 views, 926 downloads
Uploaded 6/7/2018 12:48 PM by warmCabin (23 files)
A continuation of my zipless run. I didn't fix any mistakes, just pressed onwards towards the finish; I figure I'll probably make some more mistakes, so we can fix the old and new ones alike in version 2.0.
This movie plays until the Boobeams, which have me stumped! Going by finalfighter's extremely handy lua script, I can't seem to get a large enough MadWidth. I have to damage boost through that one sniper joe bullet at frame 7720, which essentially gives me 2 choices for MidWidth and MadHeight: 22 or 24. I can only seem to make these variables smaller the further to the right I go, although, frustratingly, you'll see them cycle through some super good ones like 56 before they settle on their final values (frame 7757).
These outlier values seem like a good place to start, but I may also try to take damage in the fight.

#47393292247559483 - Mega Man 2 - Zipless

In 19:45.96 (71275 frames), 19378 rerecords
Game: Mega Man 2 (NES)
2 comments, 11872 views, 867 downloads
Uploaded 5/27/2018 8:28 AM by warmCabin (23 files)
(Note: this file is for the Japanese version, Rockman 2.)
This is a popular category to run RTA (I myself run it), but I've never seen a TAS of it. I believe there are two reasons why:
  1. The zips in Mega Man 2 are some of the coolest tricks in speedrunning. Who would want to remove them??
  2. The ancient SDA rules make this category a bit ambiguous.
Regarding the first point: Well, I think zipless shows off a few neat things not seen in a regular TAS. For instance, WOODMAN'S ENTIRE STAGE.
Regarding the second point, the rules of this run are as follows:
  • No zips
  • No delay scrolls
  • No screen wraps
  • All other glitches are fair game
This might more acurately be called, "No Major Glitches." But whatever.


(Thanks, feos!)


The Quick Man fight

I'm pretty embarassed about this. I take damage twice... Not for no reason, mind you. I do it to manipulate Quick Man's position and take advantage of i-frames. But I still feel like this fight could be a lot tighter. I could use some advice.
Frame data:
   (1st Hit)
   40 (+20 frames)
   58 (+38 frames)
   24 (+4 frames)
   22 (+2 frames)
   39 (+19 frames)
   Total time loss: 83 frames

Crash Man's Stage

In the opening room, I didn't realize you could jump up the first ladder without getting hit, so I utilized a unique buster strat. But apprently we've known about this for 15 years, so...

Minor Mistakes

These don't seem worth redoing, but I'd surely fix them if I did redo the run:
  • Shitty RNG for Air Man's last shot
  • Didn't think to shoot the drills in Metal
  • I don't think I handle mech damage boosts quite right
  • Why does no one ever change weapons in the boss rooms?
  • Made an unecessary landing in Bubble
  • Didn't test many Item-1/2 routes for Crash

Good Things

Buster-only Quick Man strats

For some reason, I thought Quick Man was immune to the air shooter when I was doing this stage. But ellonija mentioned that the old TASes used to use the air shooter? It sounded pretty dope: use air to kill all the enemies, just like RTA, then defeat Quick Man with some super finicky and cool air shots.
But I've done the math, and I believe my uninformed buster-only route is faster:
Air Shooter and Buster both do the same damage to Quick Man, and a perfect fight with both weapons would take the same amount of time, so that doesn't figure into our calculations. As I defeat the mechs at the end, I spend a total of 28 frames not holding right. The menuing to switch from P to A takes 45 frames, so the question becomes: Is it 17 frames slower to do all those jumps when shooting the fire head guys?
Well, Mega Man spends 246 frames in the air during that section. If we assume the air shooter route spends all those frames on the ground (which it doesn't; there are several jumps in that section), we can do some worst case math.
   air speed = 01.50
   ground speed = 01.60
   difference = 00.10 (that's 1/16).
   00.10 * 246 = 15.375
This means the buster route ends up 15.375 pixels behind the air shooter route. On the ground, we can make those pixels up in 14.47 frames, call it 15.
So, in this situation which is worse than reality, the buster route is still 2 frames faster than the air shooter route. That is CLOSE! But in reality it's even faster-er, so I believe the buster route is optimal.

Ladder Fidgeting

Not sure if this is a known trick, but it's a technique that provides a way to ascend slightly on ladders in some circumstances. When climbing ladders, shooting any weapon locks you in a shooting animation in which you cannot gain height. Unlike Mega Man 1, letting go of the ladder and re-grabbing it does not cancel this animation. However, there is a trick to gain a pixel or two that I call the Ladder Fidget, which can be performed as follows:
  1. Do the following 3 frames of input: A, nothing, Up. This is a frame perfect ladder fidget.
  2. Check if your Y position is higher up.
  3. Repeat the process until the animation ends, or you see you've stopped gaining height.
I can't figure out a pattern for when you'll rise and when you'll fall--It's all trial and error at this point. But I believe vertical velocity is being stored from before. It looks pretty silly when executed, and in fact, it started off as a "siliness tech" to pass the time in Crash Man's stage, until I realized Mega Man was actually ascending!

#46508413529735318 - Pictionary - "Any%" (v2.0)

pictionary TAS 2-compact.fm3
In 02:33.74 (9240 frames), 2880 rerecords
Game: Pictionary (NES)
11285 views, 712 downloads
Uploaded 4/17/2018 12:03 PM by warmCabin (23 files)
Whoops! I accidentally uploaded the wrong file before.
See my previous movie for some basic info.
This file beats the previous one by over 6 seconds, by improving upon it in the following ways:
The "NO," "PIN," "THINK..." sequence is much slower, even if it's the most popular one among RTA runners. According to my research, the sequence "TWINS," "SWAN," "COMEDY..." is faster by far than any other. It's over 100 frames faster than the next slowest, and about 1000 frames faster than average. My estimation techniques weren't 100% accurate, but I'm confident this is the fastest sequence, especially considering the absurdly long frame rules at play.
I had a breakthrough that allows us to get a roll of 6 on the first frame every time. All you have to do is delay typing the final letter for a couple frames; due to the 128-frame rule, the board loads on the same frame, but the RNG is different. I believe this happens because RNG is not advanced on lag frames, making the algorithm take in a totally different previous value as input.
I optimized the box stacking and fireman games a bit more. The fireman game is trivial to optimize, since all you have to do is sit still and let everyone die; just wait to press start until you get a faster sequence.

#46029021186161583 - Pictionary RNG DP

pictionary rng.lua
Game: Pictionary (NES)
11445 views, 672 downloads
Uploaded 3/26/2018 9:54 PM by warmCabin (23 files)
Most of this is explained in much more detail within the comments of the lua file, but here's a rundown:
It presses start on a certain frame to examine a word sequence. It reads the phrase from memory (0x0448) and determines how long it takes to type using a simple DP. It can then tell you which sequence of 6 phrases takes the shortest amount of time to type.
Note that it uses your shift+F1 savestate as a starting point...instructions on how to properly set this up are in the comments.

#45942285593125145 - Pictionary Sequence Finder v1.0

pictionary rng.lua
Game: Pictionary (NES)
11180 views, 597 downloads
Uploaded 3/23/2018 12:09 AM by warmCabin (23 files)
Not very user-friendly at the moment, so consider this a readme.
First, you're going to need an initial savestate in slot 1 (Shift+F1) (can these scripts load savestates from a file?). It should be on frame 479, the first frame you can press start to enter a blank name.
test_frame is the sequence to start searching at. That is, the script will press start test_frame frames after the initial savestate (whether you created it correctly or not). You can alter this if you want to continue from where you left off. You'll also need to alter best and worst to reflect the values you found earlier. If this is your first time running the script, just leave them be.
The script automatically increments test_frame and starts over after it's read 6 words. If you want to read more words, alter the magic number on line 111.