Capcom's original Mega Man games for the Nintendo Entertainment System are good in so many ways, but something that the franchise's later incarnations added to the mix involves the ability to switch Mega Man's weapons without dropping to the pause/weapon screen. A press of the controller's shoulder buttons cycles through the available Robot Master weapons that the blue bomber has earned. Re-releases of the original NES games (such as Rockman Complete Works and Mega Man Anniversary Collection) have added this ability through a Navi mode, but those original classics just don't offer this function in the 8-bit source material. Unless, of course, someone were to hack those classic Mega Man games to add this much-needed feature. Frequent PTB reader and occasional contributor Guy Perfect has done just that, turning the Start and Select buttons into weapon cycle buttons in Mega Man 2, 3, 4, and 5. The technical explanation follows, but first let's see it in action in Wood Man's stage.
This hack allows players to switch weapons on the go, but it's mainly geared to time attack fans who don't want to lose precious seconds while switching weapons. As a bonus, the hacked versions allow players to begin the games with all Robot Master weapons and items available, meaning that in games where it's not possible to revisit completed stages, one can, say, take the Leaf Shield into Wood Man's stage (where it takes out the fire-spewing Hot Dogs and galloping Atomic Chickens in one shot). Guy explains how he made it all happen:
The hacking process was fairly straightforward for each game, and each required the same basic steps. First, I had to figure out what made the game think you had the weapons available to choose from so that I could force them all to be unlocked at the start of the game. This includes using a given Robot Master's weapon in his own stage, as well as all the transportation items, Rush Adapters, Beat and so-forth. Mega Man 3 through 5 were all very similar internally. It's likely they built on the tech from the previous game as they made a new one. After unlocking the weapons, I isolated the Start button handler, pointed it to my own code, and made it apply to Select as well so I could assign my own code to those buttons. I sat down with Notepad and a hex editor and hand-programmed the NES machine instructions. It was actually very fun.
There were a few variables floating around in memory that managed active weapons, and each game was different. But the main process involved three adjustments: modify which weapon is currently active (and which energy meter is shown on the screen), update the palette and load/swap graphics as necessary. I learned a lot about how the NES goes about its routines and how the MMC1 and MMC3 mapper chipsets worked in the cartridges. It's remarkable how much of the system actually operates out of the cartridge while playing a game. Unfortunately, showing an icon for the selected weapon and sticking the timer on the top isn't really an option due to how the game is set up in combination with the system's graphical limitations.
I've played Guy's hacks and they work as promised. I'm not much of a time attack fan, but I do enjoy the novelty of using the Top Spin in Top Man's stage just because I can. It's still mostly useless there, but just seeing it in action in that forbidden location is different. Notably, playing this version of Mega Man 2 allows players to switch away from Flash Man's Time Stopper in mid-use which isn't allowed in the original game. This makes it a much more versatile weapon. Also, the original Mega Man and Mega Man 6 aren't hacked to support this just yet, but probably will be eventually. Now, the hacks aren't yet available to the public, but Guy is taking suggestions on the best patch format to use and the most efficient way to host them, so feel free to e-mail him with ideas (but don't ask for the hacks themselves). In the meantime, check out his additional time attack runs through stages belonging to Spark Man, Skull Man, and Gyro Man.