Hi, everyone. I've been wracking my brain trying to find the last remaining piece in a puzzle I'm extremely close to solving. I'm wondering if anyone with Super Nintendo ROM debugging or disassembly skills might be able to help me find that final piece:
As you can tell from my handle, I'm a longtime Megaman X
fan. Over the past few years, I've been trying to completely crack the password schemes for Megaman VII
, Megaman X
, Megaman X2
, and Megaman X3
. I'm well aware of the password cracks on Miranda Paugh's The Mega Man Home Page
, but I wanted to try my hand at cracking the password schemes on my own, both as a personal exercise and to ensure that I fully understood every observation and conclusion that I'd reach rather than take someone else's work for granted. Skip ahead to this past week, I've succeeded in not only cracking the codes, but I've created a password generator for each game that has proven to be 100% accurate with the hundred upon hundreds of passwords I've recorded over the years. Suffice to say, I'm quite proud of myself.
It's been a long-held belief within the Megaman
community that the password systems did not record the "100% completion" bonus for each game -- the Hadouken for Megaman X
, the Shoryuken for X2
, and the Hyper Chip (a.k.a. "the Gold Armor") for X3
-- in the games' password systems. Having isolated the variables that store these items within each password, I can quite confidently say that this belief is decidedly untrue. Furthermore, by a sheer stroke of luck, I learned that the completion bonus flag is reset if a game-specific button combination is not held down as the player presses Start to confirm their password entry (which would explain why so many of us believed that the passwords never recorded these bonuses in the first place).
I'm beginning to ramble a bit, so I'll cut right to the chase. In Megaman VII
, entering the password 1415-5585-7823-6251, then holding the L and R buttons as you press Start enables Versus Mode. In Megaman X
, entering 3673-2177-2487, then holding the L, R, X, and Down buttons as you press Start allows you to start the game at Sigma Palace Stage 1 with all weapons, Heart Tanks, Armor Parts, and Sub-Tanks, and with the Hadouken already available. I haven't figured out the appropriate button combinations for Megaman X2
; I'm hoping someone with the necessary skill can dive into the game's assembly and figure out what special inputs the password algorithm checks for in hopes of finding the corresponding "unlock codes" for X2
. While I'm formally trained as a programmer, I'm completely out of my depth when it comes to assembly...
As for the other games in the series:
In Megaman X2
, the password 8377-8113-6822-7652 starts you at X-Hunter Stage 2 (Serges' Stage) with all weapons, Heart Tanks, Armor Parts, Sub-Tanks, Zero Parts, and the Shoryuken flag set. Without the unlock code, the Shoryuken bit is reset the same way the Hadouken bit is reset in the original Megaman X
without its code. Note that none of the passwords given in-game allow you to start beyond X-Hunter Stage 1; I just experimented with a handful of values that served a specific purpose a quarter of the way through the game (i.e.: tracking the current location of the three X-Hunters), then went completely unused after the eight boss Mavericks were defeated.
As for X3
, the password 8367-8683-6772-3873 starts you at Doppler Town Stage 1 (unfortunately, X3's
password scheme cannot save progress through the Doppler Stages...), but with every weapon, Heart Tank, Armor Part, Sub-Tank, Ride Armor Change, and Zero's Z-Saber, and with the Hyper Chip flags set. It also leaves Bit, Byte, and Vile alive and available for a rematch; this is an interesting paradox seeing as killing Vile is a prerequisite to receiving the Z-Saber. As with the Hadouken and the Shoryuken, all four Chip flags are reset if the unlock code is not entered.
Thanks for hearing me out, and thanks in advance to anyone who can help me figure out the unlock codes for Megaman X2
. I figure that asking someone who knows what they're doing to dive into the code would be much more efficient than attempting to brute-force every possible button combination on my own.