Mega Man Password Generators

Mega Man IV Password Generator

Allow invalid passwords

Toad Man B Plate

E-Tanks
E-Tank parts
W-Tanks
S-Tank

Energy Balancer

P-Chips

Extra lives

Bright Man E Plate
Pharaoh Man A Plate
Ring Man T Plate
Ballade (first battle)
Crystal Man W Plate
Napalm Man I Plate
Stone Man L Plate
Charge Man Y Plate

Mega Man V Password Generator

Allow unattainable passwords
Allow invalid passwords

Mercury

E-Tanks
E-Tank parts
W-Tanks
S-Tank

MH upgrade
CL upgrade

Energy Balancer
Power Generator

P-Chips

Extra lives

Nonexistent item
Last panel

Venus
Mars
Neptune
Dark Moon
Jupiter Crystal
Saturn Crystal
Pluto Crystal
Uranus Crystal

The Underlying System

Mega Man IV and Mega Man V's password systems are not for the faint of heart. NES and SNES Mega Man password systems tend to be somewhat direct, associating each dot or panel in the password grid with a particular set of items or weapons. The Mega Man IV password system has two features (Steps 4 and 6, below) that deliberately make this sort of association extremely difficult to make. The password encoding/decoding process is a series of meandering transformations that completely disregard the original meaning of the information. In order to follow along, it's necessary to know a little bit about the binary number system. Most significantly, Step 6 involves adding binary numbers.

Fortunately, Mega Man IV and Mega Man V use almost exactly the same system, so the same process can be used to generate passwords for each game.

In order to figure out this algorithm, I reverse-engineered the password generation routines in Mega Man IV. Then I took a look at Mega Man V's password generation routines and realized soon enough that they were the same ones. What this means is that I'm extremely confident that the system described here covers all the passwords generated in these games, but I can't guarantee that they don't accept some password other than the ones I'm describing here. So maybe there's still an easter egg out there somewhere....

Step 1

Construct a sequence of 40 bits (zeros and ones) that describes the state of the game. For each of the bits, if it represents a single item or battle, write down a 1 to have that item or to have finished that battle and a 0 otherwise. If it is an item you can have in multiples, write down a binary representation of number of that item you want to have, using zeros at the beginning to fill up any bits you don't need.

Mega Man IV:  !@#$%^&* m yliwtaeb EEE ee WWW S B PPPPPPPP PP LLL
Mega Man  V:  ,.:;-=_+ d upsjMCG? EEE ee WWW S B PPPPPPPP PP LLL
!@#$%^&*
Charge Man, Stone Man, Napalm Man, Crystal Man, Ring Man, Pharaoh Man, Bright Man, and Toad Man, respectively
,.:;-=_+
Uranus, Pluto, Saturn, Jupiter, Neptune, Mars, Venus, and Mercury, respectively
m
Ballade (first battle)
d
Dark Moon
yliwtaeb
Y, L, I, W, T, A, E, and B Plates, respectively
upsj
Uranus's, Pluto's, Saturn's, and Jupiter's crystals, respectively
M
MH Mega Arm upgrade
C
CL Mega Arm upgrade
G
Power Generator
?
You can put anything you'd like to here, but the normal value is 0. As far as I can tell, this item, if it even is an item, is impossible to get in the game without using a password to get it, and the only effect it has is that it changes what passwords you get, since your passwords continue to keep track of it. If you find another use for this, let me know!
EEE
Complete E-Tanks (ranging from 0 to 4)
ee
Loose E-Tank pieces (ranging from 0 to 3 but must be 0 if there are 4 E-Tanks)
WWW
W-Tanks (ranging from 0 to 4)
S
S-Tank
B
Energy Balancer
PPPPPPPP PP
P-Chips (ranging from 0 to 999), arranged with the first two bits at the end (e.g. 258 P-Chips, 010000010 P-Chips in binary, is represented as 00000010 01)
LLL
Extra lives, as seen on the status screen, in excess of two (ranging from 0 to 7; e.g. 5 extra lives, or 3 extra lives in excess of two, is represented by 011)

The Mega Man IV password system is strict; if you try to create a password for a scenario that could never occur in the normal course of the game, that password will be incorrect.

The Mega Man V password system is somewhat more lenient. As long as a valid combination of Dark Moon and the eight Stardroids are defeated, and as long as you don't have too many E-Tanks, E-Tank parts, W-Tanks, or P-Chips, the password is valid. Although under normal circumstances you would only be able to get the crystals when you had access to the last four stages and you would only be able to get the Power Generator once you had all four crystals, none of that matters to the validity of your passwords. Feel free to have the Power Generator at the beginning of the game!

Certain items aren't shown above, either because you get them by having other items or because the passwords just don't keep track of them. Here's a list of those items and how to get them:

Rush Coil
Defeat Toad Man in Mega Man IV or Venus in Mega Man V.
Rush Jet
Defeat Charge Man in Mega Man IV or Saturn in Mega Man V.
Mega Buster upgrade
In Mega Man IV, select "Continue" from the Game Over screen four times in a row. (The passwords don't keep track of it.)
Turbo Accelerator Mega Arm upgrades (maximum of 2)
In Mega Man V, select "Continue" from the Game Over screen four times in a row for each one. (The passwords don't keep track of them.)

Example

Let's generate the "ultimate" passwords for Mega Man IV and Mega Man V, passwords that give us as many weapons, plates, items, and lives as we can carry. This is the type of password that tends to be posted to cheat sites and incorporated into FAQs.

We can create ultimate passwords for both games simultaneously if we use the following sequence:

11111111 1 11111111 100 00 100 1 1 11100111 11 111

If we use this sequence for Mega Man V, we are giving ourselves an extra item that doesn't do anything and that we could never have obtained normally. (Don't bother looking for it; it doesn't appear on the status screen.) If we wanted to get a "normal" ultimate password for Mega Man V, we would need to use the following sequence instead:

11111111 1 11111110 100 00 100 1 1 11100111 11 111

For simplicity's sake, we'll just keep going with the first sequence rather than choosing a separate one for each game.

Let's separate the sequence into bytes (so that every 8 bits is grouped together):

11111111 11111111 11000010 01111100 11111111

Besides helping chunk the sequence up into neat slices, this will be a bit of a help in Steps 3 and 6.

Step 2

For each bit indicated by *, change it from a 0 to a 1 or vice versa:

-*-**--* -*-*-*-- -*-**--- --*---** ----*---

Example

Our sequence undergoes the following transformation:

before: 11111111 11111111 11000010 01111100 11111111
change: -*-**--* -*-*-*-- -*-**--- --*---** ----*---
 after: 10100110 10101011 10011010 01011111 11110111

Step 3

Calculate two values as follows:

To get the first value, count the number of ones in the sequence, find the remainder when dividing that number by 8, and represent that remainder as a three-bit binary number. We'll call this value the three-bit checksum.

To get the second value, interpret every four bits of the sequence as a binary number, add up all of those numbers, find the remainder when dividing the total by 32, and represent that remainder as a five-bit binary number. We'll call this value the five-bit checksum.

(Finding the remainder when dividing a number by 8 is the same as looking at just the last three bits of that number's binary representation, and finding the remainder when dividing by 32 is the same as looking at just the last five bits, so we can take remainders or crop off bits interchangeably in each of the above processes without it making a difference.)

Example

We have 26 ones in our sequence. Since the remainder when dividing 26 by 8 is 2, our three-bit checksum is 010.

To get our five-bit checksum, we first add up the binary values represented by every four bits in our sequence:

   1010 = 10
   0110 =  6
   1010 = 10
   1011 = 11
   1001 =  9
   1010 = 10
   0101 =  5
   1111 = 15
   1111 = 15
+  0111 =  7
-------   --
1100010 = 98

The last five bits of the sum, 00010 (2 in decimal), give us our five-bit checksum.

Step 4

Rotate the sequence to the right by a number of bits equal to the five-bit checksum.

Example

Our five-bit checksum is 2, so we slide each bit in the sequence 2 spaces to the right and move the 2 bits that "fall off" back to the beginning:

10100110101010111001101001011111111101 11
11 10100110101010111001101001011111111101

Let's organize this sequence into bytes again:

11101001 10101010 11100110 10010111 11111101

Step 5

Put the three-bit checksum and the five-bit checksum onto the end of the sequence in that order.

Example

Since our checksums are 010 and 00010, our sequence is now as follows:

11101001 10101010 11100110 10010111 11111101 01000010

Step 6

Modify the sequence by summing each byte with its respective byte from the following sequence, performing the addition in binary:

00010010 00110100 01010110 01111000 10011010 10111100

(As a side note, this sequence is 123456789ABC in hexadecimal.)

Whenever one of these sums has nine bits, crop the leftmost bit off so that the sum fits back into the sequence. (This is the same as taking the remainder when dividing the sum by 256.)

Example

We calculate the following sums:

  11101001    10101010    11100110    10010111    11111101    01000010
+ 00010010  + 00110100  + 01010110  + 01111000  + 10011010  + 10111100
----------  ----------  ----------  ----------  ----------  ----------
  11111011    11011110   100111100   100001111   110010111    11111110

The third, fourth, and fifth sums each have nine bits, so we crop those down to size by removing their leading ones. Putting the cropped sums back together yields the following sequence:

11111011 11011110 00111100 00001111 10010111 11111110

Step 7

Replace every two bits in the sequence with a corresponding symbol, as follows:

  • 00 -> R
  • 01 -> E
  • 10 -> B or T for Mega Man IV or Mega Man V, respectively
  • 11 -> - (a blank space)

Example

Our sequence transforms as follows:

             11111011 11011110 00111100 00001111 10010111 11111110
Mega Man IV:  - - B -  - E - B  R - - R  R R - -  B E E -  - - - B
Mega Man  V:  - - T -  - E - T  R - - R  R R - -  T E E -  - - - T

Step 8

For Mega Man V, add a symbol (R, E, T, or -) to the end of the sequence. It doesn't matter which one.

Note that all passwords the game gives you during play will use R here. Entering a password that doesn't use R won't change that.

Example

Instead of using the R that the game defaults to, let's use - so that our resulting password is easier to type. Now our sequence for Mega Man V is as follows:

--T--E-TR--RRR--TEE----T-

Step 9

Put the symbols in the sequence into the password grid one at a time, going first from top to bottom and then from left to right as the columns fill up. The password is now complete.

Example

Here's the ultimate password we have made for Mega Man IV:

--RRB-
-E-RE-
B---E-
-BR--B

Here's the one for Mega Man V (which, as mentioned above, is different from the one obtained through actual play):

-E---
--RT-
TTRE-
-RRET
-----

Acknowledgments

Mega Man IV, Mega Man V, and their password systems are the property of Capcom. Special thanks to all password crackers for inspiring me to do this kind of thing, and especially special thanks to Mandi Paugh, whose website (www.mmhp.net) hosts a slightly-incomplete collection of Mega Man password cracks that's just itching to be rounded off.

Update 18-Aug-2017: Fixed a mistake affecting steps 7+ of the example password. Thanks to Frost Byte for noticing this!

About Me
In-Browser Utilities
Writing Hosted Here
Me on the Web

© 2005–2010, 2017 Ross Angle (Rocketnia)

This page was last updated 18-Aug-2017.