-------------------------------------------------------------------------------- | MEGA MAN X - PASSWORD ENCRYPTION SYSTEM | -------------------------------------------------------------------------------- Written by UltraBongo. Feel free to distribute and sell this guide under your own name. THE PURPOSE OF THIS GUIDE This guide explains how the password system in Mega Man X works, and how you can manipulate it to create your own unique passwords that can give you the head start you need, or to set up situations that would not otherwise be achievable through standard gameplay (for example, starting off with the Mega Buster without having gotten the dash boots or the helmet first). Be aware that this guide covers only the creation of passwords, and not the interpretation of passwords; meaning, it will tell you how to make a working password, but it will not tell you how the game takes a working password and restructures it into usable data. Maybe someday I'll figure this out and put the related information into this guide so people can craft buggy passwords with it, but right now this information is beyond my grasp. -------------------------------------------------------------------------------- AUTOMATIC PASSWORD GENERATOR Aaron Hoffman has graciously provided an automatic password generator for Mega Man X using the information from this guide. You can download the file here: http://code.google.com/p/megamanxpasswordgenerator/ The included program allows you to select which bosses you want defeated and items you want collected, then produces a password with the click of a button. I highly recommend using this program if you came to this guide just looking to produce a specific password; if you're interested in learning how the password system actually works, or you prefer doing things the hard way, feel free to read on. -------------------------------------------------------------------------------- HOW THE PASSWORD SYSTEM WORKS To explain the mechanics of the password system, it's necessary to note the limitations of it. The system is not designed to record your exact position in terms of lives, health, or amount of progress made through any one of the levels. It doesn't even record progress made into the stages beyond the initial eight bosses. Instead, the passwords keep track of only 24 binary variables. These 24 variables have only two possible values, true or false. What this means is that all they keep track of is whether you HAVE accomplished a certain feat, or HAVE NOT accomplished that feat. There's one for each of the eight bosses, to keep track of whether you've defeated each of them or not, another eight for each of the heart tanks, to determine if you've collected them or not, four more for the sub-tanks, and another four for the armor upgrades you can gather (boots, helmet, mega buster, and body armor). How completing each of these events affects the password system is a little complicated. Passwords consist of twelve digits spread across a 4x3 grid, like so: 4325 5852 1821 As you might expect, each one of these digits is affected by different factors. Defeating one boss might change four digits, while defeating a different boss will change only two of them. However, there is NOT only one number to represent each boss; for example, a "1" doesn't necessarily mean "Boomer Kuwanger" specifically. It's difficult to explain with just words, so let's go through the process step by step. Consider the digit in the upper-left corner: Oxxx xxxx xxxx This number gets affected each time you defeat any one of the bosses. However, there's only two different numbers it can be: 4 or 1. Specifically what it keeps track of is whether you've defeated an EVEN or ODD number of bosses. 4 is for an even number, 1 is for an odd number. So if you've defeated three bosses, the number will be 1, but if you've defeated all eight, it will be 4. Each of the other digits work like this as well. They don't all keep track of bosses specifically; most keep track of a combination of bosses and items. However, they all have a list of factors that change the digit, and that digit is always one of TWO numbers depending on whether you've activated an even number of those factors or an odd number of them. However, there's one more wrench thrown in to make things complicated. Even though each digit works with only one pair of possible numbers, there's always two factors that CHANGE which pair is used. Let's go back to the example of the upper-left digit. As I said, generally it's either a 4 or a 1 depending on how many bosses you've defeated. However, if you've collected the heart tank in Chill Penguin's stage, then the numbers used are no longer 4 and 1; instead, they're 2 and 7. So if you start the game up and fight two bosses, this digit will change from 4 to 1 to 4, but if you THEN go on to collect the heart tank in Chill Penguin's stage, it will change to 2, and will then flip between 7 and 2 for each boss you fight after that. Each digit has four different pairs of numbers it uses depending on how many of these "outside" variables are affecting it. For the example above, the barebones pair is [4,1]. When you've gotten the heart tank in Chill Penguin's stage, it's [2,7]. When you've gotten the sub-tank in Armored Armadillo's stage, it's [6,5]. If you've gotten BOTH the heart tank and the sub-tank, it then changes to [8,3]. To recap, there's basically two different kinds of factors that affect each digit. There's what I've labeled the Main Factors, which cause the digit to flip between two numbers in a pair for each new Main Factor you collect, and then there's the Altering Factors, which determine WHICH number pair is used. It's all kind of a mess, but even if these instructions don't really make it understandable to you, the guidelines given below should be enough to get you making your own passwords with ease (relatively speaking). -------------------------------------------------------------------------------- HOW IS THE PASSWORD SYSTEM BIG ENOUGH TO COVER EVERY SINGLE POSSIBILITY? This has no real bearing on anything, but it was something I was asked in a chatroom once, and I think it's an interesting question. In case you were wondering why they made you learn algebra in school, here's the reason. As stated earlier, the password covers 24 binary variables, meaning, variables with only two possible values. You need to multiply these variables by each other, leading to a value of 2^24. Also, there's eight different passwords for each situation (something I hadn't mentioned yet), which leads to (2^24) * 8 = (2^24) * (2^3) = 2^(24 + 3) = 2^27 passwords. (There's also eight more passwords to cover the introductory stage, but that's a pretty insignificant addition for the purposes of this explanation.) So, that's how many different passwords that actually work. To cover how many passwords you can actually enter, you need to consider that there's a total of twelve different digits, and each of them goes from 1 to 8. That's 8^12 possibilities, or 8^12 = (2^3)^12 = 2^(3 * 12) = 2^36 passwords. As you can see, the number of possible passwords (2^36) is much larger than the number of passwords that actually work (2^27). There's 2^9 times as many, in fact, meaning there's only a 1/512 chance that any randomly- generated password would work. -------------------------------------------------------------------------------- A NOTE ON USING PASSWORDS TO ALTER THE STATE OF THE FIRST STAGE Let me level with you: I can't figure this one out. As much fun as it would be to start from the very beginning fully decked out before you even have access to any of the bosses, I'm not sure this was even made a possibility with the standard password system. All I know is that the passwords they DO provide for the first stage look like they went through the Bizarro universe at some point during the number generation, and I can't seem to edit them through simple trial and error. If you really want to go through that one stage blowing things up with a flame thrower, all I can do is suggest you use Game Genie; any password made with this guide will dump you directly onto the stage select screen. -------------------------------------------------------------------------------- INTERPRETING THE INSTRUCTIONS Before you dive right into the pile of numbers given below, I feel you should have a better understanding of what all the terms mean. Here's the basic structure given for each password digit: ---------------------------------------------------- | Position (#,#) - N[#,#] X[#,#] Y[#,#] XY[#,#] | | X Factor: (Boss or item name) | | Y Factor: (Boss or item name) | | Main Factors: (List of bosses and/or items) | ---------------------------------------------------- Let's go through the process step by step. First, it helps to compile a list of all the items you want your password to cover. Then you'll need to go through each digit, one after the other, and determine what number goes in each digit. The location of each digit is signified by the following: Position (#,#) Digits are labeled based on standard graphing coordinates, with the first number representing the horizontal axis and the second representing the vertical axis, numbers increasing as you move right and up. For example, it starts with (1,1), one right and one up: xxxx xxxx Oxxx And ends at (4,3), four right and three up: xxxO xxxx xxxx And just so you can have a third example, here's (3,2): xxxx xxOx xxxx If it helps, you can also think of it as "third from the left and second from the bottom". After you've determined which digit you're looking at, you next need to decide how many Altering Factors are affecting that digit. That's where this comes in: X Factor: (Name of boss or item) Y Factor: (Name of boss or item) See if either of these items are present in the password you want. If the X Factor is present, you'll be referring to the X[#,#] pair of numbers shown. Similarly, if the Y Factor is present, you'll be using the Y[#,#] pair. If BOTH are present, you need to use the XY[#,#] pair, and if neither are present, you need the N[#,#] pair. (Notice: If there's only one number in each "pair", that's because there are no Main Factors for that digit, so only one number can be used anyway.) After determing which pair you're using, look at the list of Main Factors, and find the total number of these items you want present in your password. If this total is EVEN, you want this password digit to be the first number listed in your number pair (N[1,x]); if the total is ODD, you want the password digit to be the second number listed in your number pair (N[x,1]). A note on interpreting the item names: Boss names represent bosses defeated, not bosses still alive. If you see a boss name with the suffix HT- or ST-, that factor does NOT represent the boss, but the heart tank or sub-tank found within that boss's stage. (For example, ST-Storm Eagle refers to the sub-tank found within Storm Eagle's stage.) -------------------------------------------------------------------------------- | THE CODE | -------------------------------------------------------------------------------- Position (1,1) - N[1,8] X[4,6] Y[3,7] XY[2,5] X Factor: HT-Armored Armadillo Y Factor: Boots Main Factors: Armored Armadillo, Boomer Kuwanger, HT-Boomer Kuwanger, HT-Chill Penguin, HT-Flame Mammoth, HT-Launch Octopus, HT-Sting Chameleon, ST-Spark Mandrill, Armor Position (2,1) - N[8] X[3] Y[2] XY[1] X Factor: Sting Chameleon Y Factor: ST-Storm Eagle Position (3,1) - N[2,6] X[8,7] Y[5,3] XY[4,1] X Factor: HT-Launch Octopus Y Factor: ST-Spark Mandrill Main Factors: Armored Armadillo, Boomer Kuwanger, Chill Penguin, Flame Mammoth, Launch Octopus, Spark Mandrill, Sting Chameleon, Storm Eagle Position (4,1) - N[1] X[4] Y[6] XY[8] X Factor: Chill Penguin Y Factor: HT-Spark Mandrill Position (1,2) - N[5,7] X[3,2] Y[1,8] XY[6,4] X Factor: Launch Octopus Y Factor: Armor Main Factors: Armored Armadillo, Boomer Kuwanger, Chill Penguin, Flame Mammoth, Storm Eagle, HT-Armored Armadillo, HT-Boomer Kuwanger, ST-Armored Armadillo, Mega Buster Position (2,2) - N[8,2] X[4,7] Y[1,3] XY[6,5] X Factor: Boomer Kuwanger Y Factor: HT-Boomer Kuwanger Main Factors: ST-Armored Armadillo, ST-Flame Mammoth, ST-Spark Mandrill, ST-Storm Eagle, Boots, Helmet, Armor, Mega Buster Position (3,2) - N[5,4] X[8,1] Y[3,7] XY[6,2] X Factor: Armored Armadillo Y Factor: Mega Buster Main Factors: Launch Octopus, Storm Eagle, HT-Chill Penguin, HT-Flame Mammoth, ST-Storm Eagle, Helmet Position (4,2) - N[2] X[6] Y[8] XY[7] X Factor: Spark Mandrill Y Factor: HT-Sting Chameleon Position (1,3) - N[4,1] X[2,7] Y[6,5] XY[8,3] X Factor: HT-Chill Penguin Y Factor: ST-Armored Armadillo Main Factors: Chill Penguin, Flame Mammoth, HT-Launch Octopus, HT-Sting Chameleon, ST-Spark Mandrill, ST-Storm Eagle, Helmet, Armor, Mega Buster Position (2,3) - N[3,2] X[7,8] Y[4,1] XY[6,5] X Factor: Flame Mammoth Y Factor: Helmet Main Factors: HT-Armored Armadillo, HT-Boomer Kuwanger, HT-Chill Penguin, HT-Flame Mammoth, HT-Launch Octopus, HT-Spark Mandrill, HT-Sting Chameleon, HT-Storm Eagle Position (3,3) - N[2] X[4] Y[6] XY[7] X Factor: HT-Flame Mammoth Y Factor: ST-Flame Mammoth Position (4,3) - N[5] X[3] Y[2] XY[6] X Factor: Storm Eagle Y Factor: HT-Storm Eagle -------------------------------------------------------------------------------- | THE OTHER SEVEN CODES | -------------------------------------------------------------------------------- (Note: There are actually eight different password coding systems in all. For the purposes of gameplay, you can easily limit yourself to using the password set mentioned above; I am listing the other seven coding sets here merely for the sake of completion. These digits are affected by the same factors as coding set #1.) PASSWORD SET #2 Position (1,1) - N[2,5] X[3,7] Y[4,6] XY[1,8] Position (2,1) - N[6] X[7] Y[4] XY[5] Position (3,1) - N[4,1] X[5,3] Y[8,7] XY[2,6] Position (4,1) - N[8] X[6] Y[4] XY[1] Position (1,2) - N[8,1] X[4,6] Y[7,5] XY[2,3] Position (2,2) - N[6,5] X[1,3] Y[4,7] XY[8,2] Position (3,2) - N[6,2] X[3,7] Y[8,1] XY[5,4] Position (4,2) - N[7] X[8] Y[6] XY[2] Position (1,3) - N[6,5] X[8,3] Y[4,1] XY[2,7] Position (2,3) - N[7,8] X[3,2] Y[6,5] XY[4,1] Position (3,3) - N[1] X[5] Y[8] XY[3] Position (4,3) - N[4] X[7] Y[8] XY[1] PASSWORD SET #3 Position (1,1) - N[3,7] X[2,5] Y[1,8] XY[4,6] Position (2,1) - N[8] X[3] Y[2] XY[1] Position (3,1) - N[8,7] X[2,6] Y[4,1] XY[5,3] Position (4,1) - N[4] X[1] Y[8] XY[6] Position (1,2) - N[5,7] X[3,2] Y[1,8] XY[6,4] Position (2,2) - N[8,2] X[4,7] Y[1,3] XY[6,5] Position (3,2) - N[5,4] X[8,1] Y[3,7] XY[6,2] Position (4,2) - N[8] X[7] Y[2] XY[6] Position (1,3) - N[1,4] X[7,2] Y[5,6] XY[3,8] Position (2,3) - N[7,8] X[3,2] Y[6,5] XY[4,1] Position (3,3) - N[6] X[7] Y[2] XY[4] Position (4,3) - N[8] X[1] Y[4] XY[7] PASSWORD SET #4 Position (1,1) - N[4,6] X[1,8] Y[2,5] XY[3,7] Position (2,1) - N[6] X[7] Y[4] XY[5] Position (3,1) - N[5,3] X[4,1] Y[2,6] XY[8,7] Position (4,1) - N[6] X[8] Y[1] XY[4] Position (1,2) - N[8,1] X[4,6] Y[7,5] XY[2,3] Position (2,2) - N[6,5] X[1,3] Y[4,7] XY[8,2] Position (3,2) - N[6,2] X[3,7] Y[8,1] XY[5,4] Position (4,2) - N[6] X[2] Y[7] XY[8] Position (1,3) - N[5,6] X[3,8] Y[1,4] XY[7,2] Position (2,3) - N[3,2] X[7,8] Y[4,1] XY[6,5] Position (3,3) - N[8] X[3] Y[1] XY[5] Position (4,3) - N[2] X[6] Y[5] XY[3] PASSWORD SET #5 Position (1,1) - N[5,2] X[7,3] Y[6,4] XY[8,1] Position (2,1) - N[3] X[8] Y[1] XY[2] Position (3,1) - N[8,7] X[2,6] Y[4,1] XY[5,3] Position (4,1) - N[4] X[1] Y[8] XY[6] Position (1,2) - N[7,5] X[2,3] Y[8,1] XY[4,6] Position (2,2) - N[1,3] X[6,5] Y[8,2] XY[4,7] Position (3,2) - N[3,7] X[6,2] Y[5,4] XY[8,1] Position (4,2) - N[7] X[8] Y[6] XY[2] Position (1,3) - N[6,5] X[8,3] Y[4,1] XY[2,7] Position (2,3) - N[7,8] X[3,2] Y[6,5] XY[4,1] Position (3,3) - N[1] X[5] Y[8] XY[3] Position (4,3) - N[8] X[1] Y[4] XY[7] PASSWORD SET #6 Position (1,1) - N[6,4] X[8,1] Y[5,2] XY[7,3] Position (2,1) - N[3] X[8] Y[1] XY[2] Position (3,1) - N[2,6] X[8,7] Y[5,3] XY[4,1] Position (4,1) - N[1] X[4] Y[6] XY[8] Position (1,2) - N[7,5] X[2,3] Y[8,1] XY[4,6] Position (2,2) - N[1,3] X[6,5] Y[8,2] XY[4,7] Position (3,2) - N[3,7] X[6,2] Y[5,4] XY[8,1] Position (4,2) - N[6] X[2] Y[7] XY[8] Position (1,3) - N[5,6] X[3,8] Y[1,4] XY[7,2] Position (2,3) - N[3,2] X[7,8] Y[4,1] XY[6,5] Position (3,3) - N[8] X[3] Y[1] XY[5] Position (4,3) - N[5] X[3] Y[2] XY[6] PASSWORD SET #7 Position (1,1) - N[7,3] X[5,2] Y[8,1] XY[6,4] Position (2,1) - N[7] X[6] Y[5] XY[4] Position (3,1) - N[4,1] X[5,3] Y[8,7] XY[2,6] Position (4,1) - N[8] X[6] Y[4] XY[1] Position (1,2) - N[1,8] X[6,4] Y[5,7] XY[3,2] Position (2,2) - N[4,7] X[8,2] Y[6,5] XY[1,3] Position (3,2) - N[8,1] X[5,4] Y[6,2] XY[3,7] Position (4,2) - N[8] X[7] Y[2] XY[6] Position (1,3) - N[1,4] X[7,2] Y[5,6] XY[3,8] Position (2,3) - N[7,8] X[3,2] Y[6,5] XY[4,1] Position (3,3) - N[6] X[7] Y[2] XY[4] Position (4,3) - N[4] X[7] Y[8] XY[1] PASSWORD SET #8 Position (1,1) - N[8,1] X[6,4] Y[7,3] XY[5,2] Position (2,1) - N[7] X[6] Y[5] XY[4] Position (3,1) - N[5,3] X[4,1] Y[2,6] XY[8,7] Position (4,1) - N[6] X[8] Y[1] XY[4] Position (1,2) - N[1,8] X[6,4] Y[5,7] XY[3,2] Position (2,2) - N[4,7] X[8,2] Y[6,5] XY[1,3] Position (3,2) - N[8,1] X[5,4] Y[6,2] XY[3,7] Position (4,2) - N[2] X[6] Y[8] XY[7] Position (1,3) - N[4,1] X[2,7] Y[6,5] XY[8,3] Position (2,3) - N[3,2] X[7,8] Y[4,1] XY[6,5] Position (3,3) - N[2] X[4] Y[6] XY[7] Position (4,3) - N[2] X[6] Y[5] XY[3] -------------------------------------------------------------------------------- You can e-mail me at sabinxiii at gmail dot com, although I have no idea why you'd want to.