Blaster Master Pause Glitch and Rotating Tanks Explained - Behind the Code

46,329
0
Published 2021-11-26
Some bosses take damage even with the game paused. The tank can rotate around platforms.
How does all of this work?

If you would like to support this channel, here is a link to the Displaced Gamers Patreon page - www.patreon.com/displacedgamers

Twitter: twitter.com/DisplacedGamers
Facebook: www.facebook.com/DisplacedGamers/
Instagram: www.instagram.com/displacedgamers/

Music:
Wolf & Raven -    / @wolfandraven  
Two Blaster Master MIDI files arranged and played back on a Roland SC-55 Mk2

#NES #Programming #Code

All Comments (21)
  • @WilliamPorygon
    "That's a lot of detail to put into something you could literally blink and miss." starts blinking when the tank reaches the corners to confirm
  • @Hatchet2k4
    I could not click this video fast enough. Blaster Master is such a great game and brings me right back to my childhood!
  • @wardrich
    Man, it seems like so much work went into the simple act of rotating the tank along a platform. I can't even imagine how much time was spent on the code and logic, and it's something we all just took for granted. Kinda sad in a way.
  • @d00mf00d
    I really love the tank physics. Glad you went over the physics
  • @trinidad17
    2:25 So it's all a gigantic state machine, where enemies (hopefully) cannot change into player characters and vice versa. Seems like a very compact, simple and smart way to implement behavior in general.
  • @maxbrown4594
    Your skill at reverse engineering assembly code is astounding, and amazing to see it for one of my favourite NES games! I recently took at look at how NES Gradius aims/stores projectile's trajectory at the player position... but I'm sure it took me about 5X the time it would have taken you!
  • @Choralone422
    Blaster Master was the 4th NES game I ever owned and one that I never completed. I remember learning about the grenade pause damage trick after owning the game for a while and I always seemed to manage to get myself killed while trying to pull it off. While it is an awesome game, the only thing I didn't like about it (and also Fester's Quest which I believe uses the same game engine) was losing your gun level whenever you took damage. In the later levels getting hit once or twice could easily kill the entire run which as a kid I was frustrated to no end by! Still a great game!
  • @nickfarace9339
    I've put a ton of time into this game as it is one of my all time favorites. There are a few other oddities about it I wish there was time to look at. Brining up the jump animation reminds me of an easy bug to replicate, where if you pause the game as the tank is landing and is in that scrunched down animation, it will stay there when you unpause. This is notable because for some reason, in this state the tank acts like it is on ice almost, with almost no velocity change upon letting go of a direction. The other is when going through a tank mode door between screens, if you switch directions RIGHT as the animation starts for the screen transition, it can screw up the collision of the map and you will be inside of blocks. Usually moving collision down a few squares over the map tiles. It is possible to repeat this and I think eventually cause soft locks. I always wondered what was even going on in the door transition to cause such an odd change. Doors basically always go left to right, so a shift up and down made no sense.
  • The original Mega Man on NES has a similar "pause damage" trick, and I suspect a similar root cause behind it. Have you considered doing an episode on that?
  • @Peter_Morris
    This is such a great video. I played the snot out of Blaster Master as a kid - so much so that when I fired it up on the Switch I didn’t need a map to get through the entire game. Sadly my kids were not impressed. The pause trick works on the bosses in Stages 2, 4, 6, and 7. I had Nintendo Power as a kid, and if I hadn’t, I probably would’ve pulled my hair out with Blaster Master.
  • @HOWLWOLF
    Would love to see you tackle the glitch beam from Metroid!
  • @dionelr
    Woo! Blaster Master was a favorite of mine when I was young. The only thing that prevented us from finishing it was the lack of save slot or password system. It wasn’t until emulation gave us save states that I was finally able to finish it.
  • @GeneralBolas
    I find the state management logic for BM to be fascinating. In modern designs, entities might have individual states like whether it's on the ground or the side or ceiling. But the entity itself wouldn't change, and the set of states for an entity is a property of that kind of entity. The fact that you can change an entity's state to just become an enemy is really weird. But I imagine it reduces complexity, since you wouldn't have to jump to an entity subroutine, then jump to that entity's state subroutine. No need to keep multiple tables lying around.
  • @unvergebeneid
    Man, this game has some sweet sprites and some impressive animation!
  • I always thought the pause glitch was intentional. If I recall, the stage 5 boss closes its eyes when paused, and could only be damaged when opened. Seemed like an oddly specific detail, as if they were aware of it. Also had something similar with the stage 8 boss. I think its head disappeared when paused.
  • @Dorelaxen
    Oh, man, that Roland remix of the stage 1 theme is absolutely badass.
  • @JulienNeel
    I thoroughly enjoyed this video of yours. Your code explanations are concise and clear, you make the programming intricacies seem like little works of art.
  • @paulstevens1493
    YES, such an awesome video, you answered all my burning questions in detail!! I’m SO glad you looked at the Wall 1/Wall 2 code. As a game developer, I’ve always wondered how this was done.
  • @saxxonpike
    Appreciate the Sound Canvas being used to render some of the music :)
  • @JeanQPublique
    Great video! Thanks for covering my favorite game! If you ever do a second video (or maybe a series, fingers crossed) other things to consider might be: The disabled level select, the door entry glitch, the EU-only mid-air jump glitch, the incomplete SPIKE power-up, the intro music DCM channel mismatch, the oddly wrapping maps (see the ice level), the possibility of softlocking on the water level (maybe less interesting), the fact that inaccessible water tiles in the sewer level are actually water you can swim in... that's all I can remember off the top of my head, but this game has a bunch of fun stuff in it. Oh, and IIRC correctly, it's possible to play the overhead levels with the tank (and its side-scrolling physics) and vice-versa the side-scrolling levels with the top-down guy (and its physics). You just need to poke at the RAM. Probably object IDs as you've mentioned in this video. I did my research into this more than 20 years ago so I can't remember the details!