MMXPG - Mega Man X Password Generator
Windows version
Written by Michael Hayes
linktr.ee/intylab
Date Of Last Modification: March 24, 2025
__________

"What is this?"

This is a graphical application written in Python using Tkinter.  It
generates a password for Mega Man X based on what save data you choose.
__________

What is included:

 readme.txt - what you are reading now
  mmxpg.py  - the program itself
 config.py  - a configuration file that you can tweak
   icon.png - program icon
    assets/ - a subfolder containing all the graphics files
__________

Setup:

I assume your display resolution is 1080p or higher.

A. Install Python.
     i. Go to python.org and download the latest version.
        IMPORTANT!  As soon as you begin installation, check the box at
        the bottom of the first window to add Python to your PATH.  The
        box is unchecked by default.
B. Create a folder in the root of C:\ called "projects".
C. Copy or move mmxpgw.zip into "C:\projects" and unzip it from there.
   It will create a subfolder called "mmxpg" and unzip everything into
   that folder.
__________

How to use:

From your Home folder, just type "mmxpg" to begin.

A window will appear with a list of buttons and checkboxes to the left,
and two "screenshot" panes in the middle and to the right.  The middle
pane displays the Stage Select screen with a list of icons around the
border, representing the upgrades you can get in each of the 8 stages.
The pane to the right displays your password and also has two "LED
matrices" which help to illustrate the internal password mechanics.

First, let's get familiar with the command buttons.  They are located in
the four corners of the middle Stage Select pane.

A. The button in the southwest corner turns off ToolTips, translucent
   description windows that appear when you hover the mouse over
   something.  Click it again to turn ToolTips back on.
B. The "About" button in the northwest corner displays information about
   the program itself.
C. The "Quit" button in the northeast corner is self-explanatory.
D. Finally, we get into the inner workings of the program itself with
   the four "Seed Bits" buttons in the southeast corner.
     I. Clicking the 'Z' button signals that you have cleared the first
        stage.  This opens up all the controls that are currently
        unselectable.  That's because you can't have anything in your
        inventory if you're starting at the beginning.
    II. The other buttons are labeled '0', '1', and '2'.  You can click
        these at will.  Try it now, and watch the changes that happen.

To change the Data Bits, try clicking on the icons within the Stage
Select pane.  If need be, re-enable the icons by clicking on the 'Z'
button again.  Watch the password change all the way to the right, and
watch as the lights change as well.  Alternatively, you can use the list
of buttons to the left:

A-H. Weapons raise Data Bits which are represented as purple lights in
     the first and second rows.  As you should know, these also signal
     that the respective stages have been cleared.
I-P. Heart Tanks raise Data Bits which are represented as red lights in
     the third and fourth rows.
Q-T. Sub Tanks raise Data Bits which are represented as orange lights in
     the fifth row.
U-X. Dr. Light upgrades raise Data Bits which are represented as blue
     lights in the sixth row.
  Y. The Dr. Light upgrade in the Armored Armadillo stage raises Data
     Bit Y, which is represented as another blue light, this time in the
     eighth row.
      * As you probably know, this is the Hadouken upgrade.  Because
        inventory has to be full, clicking on it will pop up a warning
        message.  If you click Yes, all the Data Bits will be raised.
     ** To enable Hadouken after entering the password, you also have to
        press and hold L+R+X+down and press Start.

Now what about the green and yellow lights?  And what about that
second matrix of lights?

    Z. The yellow lights in the seventh row are for the Seed Bits.  The
       The first one is set based on whether or not you have cleared the
       first stage.  Because it is a hybrid Data and Seed bit, it lights
       up as half-purple and half-yellow.
  0-2. The other three Seed Bits are chosen randomly when you receive a
       password.  This results in your receiving one of eight different
       passwords for the same data, just to make things confusing.
A'-X'. These lights are duplicated in the second matrix to the right.
       If any yellow lights are lit, they reverse all the lights
       directly above them.  The second matrix is here to demonstrate
       the before & after of potential changes.  The lights in the top
       six rows have an apostrophe after their label names.

Altogether, the lights in the second matrix are used to determine the
final password.  In the bottom right corner is a diagram to show the
relationship between each trio of lights and each cell of the password.
I have a GameFAQs document as well as a YouTube video to further
illustrate the concept.

For now, let's look at the green lights in the seventh and ninth rows.
These are called Parity Bits.  Parity Bits are used for validation
purposes; that prevents people from getting away with entering random
digits as a password.  They always have to be set based on other Bits
which each one is monitoring:

  3. The second light in the seventh row is lit if an odd number of
     lights in the top two rows are lit.  Otherwise, it is unlit.
  4. The next light to the right is lit if an odd number of lights in
     the third and fourth rows are lit.  Otherwise, it is unlit.
  5. Similarly, the light to the right is lit if an odd number of
     lights in the fifth and sixth rows are lit.  Otherwise, unlit.
6-9. The lights in the last row are lit if an odd number of lights
     directly above them are lit.  Otherwise, they are unlit.
__________

License stuff

There is no license or warranty of any kind.  I offer this package as a
tool rather than as a product.  You are free to do whatever you want
with this tool.

The standard precaution applies that use of this tool is at your own
risk.  As it is free, I release this tool for your use with the
understanding that neither I nor Midnight Blue International, LLC are
responsible for any detrimental effects to you or your device as a
result of its use, either direct or indirect.

Rather than ask for any monetary donation, I would appreciate your
follows to my channels, particularly on Twitch, Kick, YouTube, and
Instagram.  I also have my own server on Discord and Guilded, but I
only send out invites manually.
__________

EOF
