Welcome the ZANAC Randomizer Beta! When I was a kid, ZANAC was always one of my favorite NES games. It introduced me to the shootemup genre. To this day, it's fun to sit down and play a half hour or so. Even though it runs on the humble NES, it's written rather cleverly so that the gameplay almost never slows down despite chaotic action on screen, and it features a primitive auto-scaling difficulty feature that makes it a slightly different game each time.

I really enjoy the trend of randomizers applied to legacy games. To me, they're chances to experience the classic gameplay of each game that's burned into my memory with all new scenarios. I thought, were there any old games that I'd like to re-experience that I could write a randomizer for? I thought back to ZANAC, that simple little shootemup. I spent some time doing research online, reading about the NES programming model and luckily stumbled upon some ZANAC techincal specs that, though incomplete, gave me just enough to start digging. It was a challenging and fascinating task of reverse engineering. Before too long, I had many of the game's data structures mapped out and I could start poking around changing things. After a little bit of programming elbow grease, I had a configurable, extendable base and that was the birth of the ZANAC Randomizer.

This randomizer can make the following modifications to the base game:

Because the randomizer is in a beta state, it can be used to generate functional ROM images randomized with the available options, but you may rarely see glitches, game crashes, or unbootable ("brick") ROMs. If you have any issues (including a "white screen of death" when you randomize), please let me know so I can try to track the problems down. In the majority of cases, just generating a new ROM should get you playing.

If you have comments, questions, or suggestions, send them to me at omaha@zanacga.me and I'll check them out. I cannot guarantee a timetable or schedule for any feature implementation as this is a side project and progress is entirely dictated by the availability of free time.

Destroy the System!

09/22/2020

09/10/2020

You'll need to upload your base ZANAC ROM before randomizing. The randomimzation is applied to the exact file you upload and sent back to you. Upload just the ROM itself, not a ZIPed or packaged version. Only a valid ZANAC base ROM will work; the ZANAC randomizer does not currently support rerandomizing, nor can it randomize already hacked ROMs.
Select base ROM:
Configure which aspects of the game you want to randomize or adjust. By default, ROMS will always contain:
  • A tag on the title screen indicating the seed
  • A patch to fix the ARER typo and a small cleanup on the BONUS popup
  • A patch to prevent super guns from going away just beacuse you picked up a powerchip if you did not have maxed out guns already
  • The default high score is overwritten with the author's personal best
  • A potentially shuffled graphic set for the main menu
  • The GAME OVER message is replaced with a random snarky quip
Seed:
The seed initializes the randomization so that for a given option set, changing the seed will result in a completely different ROM output. For the same options, the same seed will always produce the same ROM image. You don't have to enter anything here; if you leave it blank, a seed is randomly assigned. You'll also get a random seed if you enter zero here. This is a "feature" that I hope to fix at some point.
Shuffle area order
This option will randomize the order of the levels, with two caveats. The data structures inside ZANAC group the areas into three "blocks" which are Areas 1-4, Areas 5-8, and Areas 9-12. The order of the areas inside each block will be randomized, but the blocks will still play out in order. In other words, if you enable this option, you will play through Areas 1 through 4 in some random order, then Areas 5 through 8 in some random order, and finally Areas 9 through 12 in random order. The second caveat is that Area 12 will always be Area 12, because of special data stored there that tells the game engine that you're at the final boss. Background music is not affected by this option.
Shuffle area background music

This option will shuffle the background music for the levels. It simply shuffles the order of the music, so you will still each song the same number of times, just on different areas. If you are also shuffling area ordering, that does not affect this. In other words, if Area 2 is shuffled to be the first Area, you are not necessarily going to hear the original Area 2 music for the first Area.In keeping with the Randomizer's mindset that "Area 12 is special," Area 12's cool finale music remains with Area 12.

Include alternate Area 10 music in the mix
Shuffle palettes
Area backgrounds
Sprites (Note that if you key off of the color of enemies (like whether a Logo is blue or yellow) you'll need to learn the new colors as you're playing!)
Title screen
Fortress core interiors (Changes the color sequence of opened cores)
Shuffle ZANAC sprites
This option will shuffle the graphics used for the ZANAC fighter. A well-known trick in ZANAC is to hold A, B, and select when you hit start to begin, and you'll get an alternate ZANAC graphic. If this option is enabled, the "base" ZANAC and "alternate" ZANAC sprites are randomized to be different graphics, including some visitors from other games. You are guaranteed to get two different sprites for the base and alternate. I'd like to add more choices in the future.
Rule changes
Starting lives: (255 or less)
Apply ZANAC Neo weapon rules: In ZANAC, if you pick up a different special weapon than the one you currently have, your weapon power level is reset to the base and you need to build it up again. In ZANAC NEO, switching special weapons keeps your power level the same. Use this option if you'd like to apply that rule to ZANAC. This has a fun effect of totally changing your strategy, because if you know multiple copies of the same special weapon are coming up soon, even if you don't care for it too much, you can use it to increase your overall weapon power and switch back to something better later. Finally there is a reason to pick up those multiple weapons 2s at the beginning of the game!
Enable modern vulcan cannon: ZANAC's default gun is pretty weak. If you miss the first blue lander, without resorting to turbo on your controller, you will have very little firepower to play with. This change removes the single-bullet level of the gun and increases the rate of fire and bullet speed of the gun at all levels. A fully powered up triple gun in this mode is quite a deterrent, much like the standard vulcan cannon found in more modern shootemups. To balance out this greatly increased offensive power, the rate-of-fire upgrades afforded by blue landers is removed, as are superguns. This changes the game significantly. If you are a purist, you will probably not like it. If you would like to mix it up a bit, give it a shot. (Pun may or may not be intentional.)
Generate new levels
This option will cause the randomizer to generate 12 brand new ZANAC levels, so that it's like a a completely new game. This function is still in development so please note these caveats:
  • Levels are a little over two minutes in length. I'm trying to figure out the optimum length, which is a balancing act between producing an entertaining play experience and fitting all of the data into the tight amount of memory available in the ROM.
  • There is currently only one fortress fight per level, at the end. Most of the original boss fortresses are used (and can appear in very different places and might be repeated,) there are a few "remixes" to watch out for, and you may even see a custom one or two. SOMETIMES the Area 11 boss dies too quickly. The final boss sequence remains unchanged for now.
  • There are some graphical glitches on some levels or in some places, I know. Sometimes fortresses appear in the wrong place (like an asteroid fortress on top of a space panel) and sometimes there are color artifacts.
  • Every level MAY have a miniboss fight, and they are not necessarily the same minibosses you fought in the original levels!
  • Areas 2 and 4, 5 and 7, and 9 and 10 can be very similar to one another because of how the randomize generates levels thematically. Area 5, for instance, will now have space tunnels (or "solid space panels" as I refer to them internally) and Area 7 can have small asteroid segments. Subtheming is something I'd like to do at some point so that these level pairs which are normally similar are not overwhelmingly similar in a generated ROM.
  • The randomizer sometimes generates some pretty nefarious levels!
I am aware of these issues and I am working to fix them, but I am excited enough about the current state to share this functionality online.
Expert mode secret settings entry: