Blaster Master Randomizer
4 years ago
California, USA

My new project is at the point of showing off: a Blaster Master randomizer. While I could give a list of what is randomized (in fact I had done just that before deleting it and writing this sentence), I think it would be more fun to try it and discover for yourselves.

https://drive.google.com/open?id=1Gw2qAiV6WbOb0h9ATmXjitzuDwHBBd0z It requires the Blaster Master (U).nes ROM, with CRC32 52bcf64a.

There’s a lot more I’ve had planned from the beginning, but ran out of time to implement stuff before this weekend. There’s a bunch more I intend to randomize. I’d also like to fix some bugs and exploits in the original game. The title screen also needs to give the seed number and options, for use in competitions. And finally, the entire GUI was made in a few hours prior to release, and could use some more polish.

SubStylee likes this
California, USA

Very cool I will be giving this a try.

Maryland, USA

Nice work :) Only thing I heard someone say was that there were limited continues (prob due to using U rom). Obviously there are more things to rando etc. But having unlimited continues in a randomizer (or at least a lot) is prob good for exploration haha. Keep up the good work.

California, USA

I've got a list of additional things to add, but what do you think of making water in 4/7 instant death even if you are in iframes? It seems like an exploit to me (similar to 4 of the bosses taking damage during pause).

California, USA

Also, I'm open to ideas how to randomize enemies, especially in the side-scroller sections. I'd really like to avoid hard-coding a set of possible substitions for every single enemy, but with so many vertical and vertical-horizontal platforming settings a lot of the time a given enemy can only be swapped with certain others in a context-dependent manner.

California, USA

Haven't gotten to trying this yet, but I'd rather the water walking and other glitches like door wrapping, etc. not be changed or make it an option. Especially if this would be used for races it let's people take the risk for the faster strats with failure usually being a big time loss from my experience in the (still ongoing!) BM tournament 3 years ago.

So I was wondering, from the little I saw when MrPupG streamed it. The doors are randomized for the overworld entrances, but the bosses still seemed to be in the same areas in the overworld. Is it going to be down the road where the bosses will be in different rooms eventually? Also are items potentially going to be separate from the bosses with boss kills also being a flag for progression? It just feels like this rando will be limited compared to other ones because the key items are linked to bosses and there is only 7 where as in Lttp there is a ton of places for key items to be populated leading to people having to really deduce where they are.

Still really cool to see this being made I have let some people know it exists so hopefully it'll start getting some play by streamers.

California, USA

I'm planning on adding additional rooms (and coopting existing rooms) to use to randomize where the boss is in the overhead view. Boss items are already divorced from bosses (though changing the item graphics is todo). I'd also like to edit the levels so there's at least 2 ways to get to each gateway, to allow for strategic gambles by runners on where to go next. But even without that, when I first prototyped the algorithm for arranging levels and powerups I was surprised to find there are about 1400 completable level (i.e. what gateways go to what levels) and powerup configurations (not including all the other stuff that can be randomized). I'll also eventually make it not uniformly random, with more costly locations having a higher chance of having a boss (so the cost:average benefit ratio is about the same for all the tunnels).

Let me know if you see people stream it. I love to watch people play my stuff :P

Edited by the author 4 years ago
Ohio, USA

tried a couple seeds so far, and great work so far! to chime in on the water walking question, at most i would make it something that can be toggled. Its good to hear you are planning on adding even more to it, and im excited to see how this ends up!

A couple suggestions:

This rando uses the US rom, which has limited continues. I feel like having infinite continues (or just infinite lives, to prevent people from game over warping), would be much better for a BM rando. The JP rom has infinite continues, if you didnt already know

Touching further on the JP/US thing, the JP version of the game is noticeably less laggy in general all over the place, due to differences in how the JP version runs its RNG routines compared to the US version. Might be worth switching to the JP rom as a base just for how much smoother it runs overall, in addition to infinite continues (which i know infinite continues is a minor thing that can be changed on the US rom).

And finally, i found a pretty nasty softlock playing thru a seed earlier. the seed had what would have been the entrance to either area 2 or 3 in the normal game take me to area 4 instead. i was in area 4 without hover, and due to the design of area 4, theres a LOT of places you can fall and not be able to get out of unless you die or reset without hover. Some of these places dont have any enemies, so your only option is to reset. might be worth forcing an exception to where Area 4 can ONLY come up after getting Hover in the progression logic.

EDIT: just realized you could get out most of those areas without hover if you have the wall upgrade. I however, did NOT have said upgrade yet, so i was completely screwed. So it might be a good idea to make it so in the progression logic it will not make you go into area 4 unless you have hover or wall

Edited by the author 4 years ago
Ohio, USA

just wanted to add that i added a randomizer channel to the BM speedruns discord server, feel free to join us there if you wanna pick our brains more easily :D https://discord.gg/Kgt6Gap

Ohio, USA

also, wanted to elaborate on the damage boosting over water being an exploit. It definitely is. UraniumAnchor can explain it better, as hes the one who found all the tech details of it, but its something like this: Ice, water and lava all use the same bit mask, but in area 6 the insta kill variable is toggled off. Thats why when you damage boost over water or lava, you have ice physics.

With that said, my opinion would be to leave it. its a nice risk vs. reward kinda thing to go for.

Edited by the author 4 years ago
California, USA

@Skavenger216 Do you know whether it was necessary to go down there to find the boss (or have the seed to check)? It shouldn't be possible for the boss to spawn in a location you can't get to or can't get out of, but if it did I'll have to look into that as a bug.

California, USA

Oh yeah, here are the the tables used in determining completable level/powerup configurations. Hopefully you can figure out my shorthand; I should mention that tunnels are named according to screen/room X,Y (0-7) as determined by looking in ReMaster. Let me know if you see any errors in the data.

https://cdn.discordapp.com/attachments/528035919874359305/563875099195998230/Tables.xlsx

Arizona, USA

If you have no wall or hover in area 4, you can still get around it if you don't go DEEPER in the stage. I happen to see that too when I got to area 6 with only 3 items and had no hyper and crusher. I had to rethink (without moving forward) and picture every places as I remember in the map that are impassable to break thru the blocks. I was like "Oh crap! Area 6...I can't get thru the level without the crusher with hyper.....Oh wait! I can but it'll stop me from there and dungeons are randomize where that is open to you." There is so many possible thing you have to rethink if you played this casually before you've thought to learn to speedrun it.

California, USA

Yeah. Right now I exploit the fact that every level has at least one tunnel accessible without any special items to simplify the algorithm by choosing what powerups go in what levels before choosing where the boss will be, rather than integrating the functions to choose level layout, powerup configuration, and boss locations into a single really complicated algorithm. This makes things much simpler, but I suspect will make certain locations (e.g. the first tunnel in level 5) much more common as boss locations than they really should be.

Hmm. Now that I think about it, I think I know a fairly easy way to generate seeds that have a larger number of possible boss locations in some levels. Simply make crusher a prerequisite for levels 5 and 7, and dive a corequisite for 5, with some probability. That'll significantly increase the likelihood of a seed having multiple locations to check for every level.

Edited by the author 4 years ago
Arizona, USA

In area 5 can be risky with no crusher if you don't have hyper. If the first dungeon in that tunnel in the water is not the real path to the boss, then simply door wrap it to bypass that impassable block below but you have to deathwarp it if the item is not hyper or crusher once you find the real dungeon, if there none of these there 1 or 2 more but you need dive and crushed to get pass that.

California, USA

...hyper? What does hyper do in level 5?

California, USA

New version for this week: https://drive.google.com/open?id=1-NZttZ-k6K3DR2OuYZUZbrIuTxJ3d0j7

Not a large amount of changes, as most work was spent reverse-engineering (including for future stuff), rather than implementing:

  • Enemy (but not yet boss) stats randomized
  • Added options for random music, random lives, infinite lives, and infinite continues
  • Fixed issues that created uncompletable level 7s
  • Boss 8-1 can now appear in other levels

NOTE: While it should never generate an uncompletable seed (that'd be a bug), there are places where careless exploration can get you into places you can't get out with your current items (e.g. below the crusher blocks in level 5 without dive). Bosses should never be located in such places unless the boss provides the item to get out, so it's advisable to only explore such locations when all other options have already been exhausted, to avoid having to intentionally die or game over to get out.

There's still a ton of stuff on the todo list (more than is already implemented). Much more to come.

Edited by the author 4 years ago
Arizona, USA

Hyper is the first weapon you pick up in vanilla. I think it increase a bit more damage. As the gatekeeper you couldn't inflict any damage without it and cannot break the block passage either.

Edited by the author 4 years ago
California, USA

Beta 3 (same as the version from Thursday): https://drive.google.com/open?id=13qQUVXQ6Me6a2vxZ6_m0qahgf-KJW5lO

Changes:

  • Add some prerequisites to certain levels to increase the average number of tunnels that can have a boss
  • Make upgrade graphics correctly reflect their items
  • Randomize boss music with other music
  • Support using wall 1+2 to pass through level 5 in the randomization logic
  • Prevent using crusher to bypass hyper gate keeper
  • Add Randomize Powerup Quantities option
  • Add Wall 2 Last option to make most seeds 100% (at least barring use of exploits).
  • Add Fix Exploits option that fixes the level 5 boss room exploit (more to come)
  • Add Safe Mode option to hopefully prevent softlock scenarios when using Infinite Lives. However, this significantly reduces randomization, so it is recommended that it only be used with Infinite Lives, and only if you are not experienced enough to know not to go places you don't have the upgrades to get out of unless you have checked every other tunnel, as the randomizer will not put bosses there unless they give the needed upgrade.

Some major features currently being worked on:

  • Randomize boss stats and add progression system that makes later bosses harder than earlier bosses
  • Randomized dungeon layout
  • All Bosses mode where all bosses must be killed to finish the game and upgrades are not given by bosses but found elsewhere in the level
  • Fixes to additional bugs (harmful glitches) and exploits
  • Investigating ways to reduce lag in the original game
Edited by the author 4 years ago
Game stats
Followers
117
Runs
369
Players
62
Latest threads
Posted 4 years ago
18 replies
Posted 4 years ago
3 replies
Posted 2 years ago
Posted 4 years ago
0 replies
Posted 5 years ago
1 reply
Posted 5 years ago
4 replies