Mike Tyson's _____ _ ____ _ _ _ | __ \ | | / __ \ | | | | | | |__) | _ _ __ ___| |__ ______| | | |_ _| |_| | | | ___/ | | | '_ \ / __| '_ \______| | | | | | | __| | | | | | |_| | | | | (__| | | | | |__| | |_| | |_|_|_| |_| \__,_|_| |_|\___|_| |_| \____/ \__,_|\__(_|_) ___ _ ___ _ _ | _ \__ _ _______ __ _____ _ _ __| | / __|_ _(_)__| |___ | _/ _` (_-<_-< V V / _ \ '_/ _` | | (_ | || | / _` / -_) |_| \__,_/__/__/\_/\_/\___/_| \__,_| \___|\_,_|_\__,_\___| (Version 1.02, 16 October 2013) by Doug Babcock LEGAL INFORMATION: I have put a lot of work into this guide. If you use any information from this guide for anything other than personal use, or if you quote it, please give me credit. If you wish to put a copy of this guide on your web site or elsewhere, please e-mail me and I will give you permission. Please do not distribute this guide except in its entirety, and please do not add anything to this guide. This guide is copyright 2005--2013 Douglas Babcock. --- [0] TABLE OF CONTENTS ----------------------------------------------------- [1] Introduction - My introduction. Read this first in order to get the most out of this guide. [2] The Password Tables - Three tables of how the passwords work. [3] The Basics Of Reading The Table - A brief description of how to read the table. [4] About Checksum Bits - A description of how the checksum bits work and their purpose. [5] Some Examples - A derivation of two example passwords using the table. You should be sure to read this section. [6] Summary - A quick, explicit description of how to make a password. This section is intended for reference, not for learning how to make passwords. Read sections 3-5 before this one. [7] Some Noteworthy Passwords - A few passwords I find interesting or quirky; also, some special passwords you cannot generate with information from any other section in this guide. [8] Future Versions? - Goals for the future. [9] Thanks/Acknowledgements - What it says. --- [1] INTRODUCTION ---------------------------------------------------------- This guide will tell you, in a fairly large amount of detail, how the passwords work in Mike Tyson's Punch-Out (or the later Punch-Out cartridges with Mr. Dream). Using this guide, you should be able to create a password with any record you wish for any place in the game the system allows, including passwords that are impossible to get while actually playing the game. As far as I know, there are very few FAQs of this type in existence, but "cracking" the passwords of video games is of great interest to me. I have written one other password guide to date, for Metal Gear for the NES. I may create guides like this for other games at some point in the future; for example, I have enough data to write one for Castlevania II: Simon's Quest, Gauntlet, or Legacy of the Wizard. If you find this guide at all useful, or even just cool or interesting, please e-mail me at babcockdc@yahoo.com; I would love to hear from you. One last note: the mechanics of actually creating a password by hand can be tedious and error-prone. I have created a tool for generating passwords more easily. It is available on the World Wide Web at the following address: http://www.dougbabcock.com/mtpo.php As far as I can tell, this password generator works 100% of the time (although I obviously can't test every single password to make sure). Thanks muchly for looking at my guide, and I hope that you will find it fun or interesting in some way. --- [2] THE PASSWORD TABLES --------------------------------------------------- WHICH TABLE DO I USE? Title Held: Losses: Use: ---------------------------- "Minor" 0 TABLE I "Minor" 1 TABLE II "Minor" 2 TABLE III "Major" 0 TABLE II "Major" 1 TABLE III "Major" 2 TABLE I "World" 0 TABLE III "World" 1 TABLE I "World" 2 TABLE II TABLE I. (Base code: 635 791 5429) +-------------+-------------+-------------+ | Checksum +16| Wins +80| Wins +40| | KO +2| KO +1| Checksum +8| | Checksum +4| KO +8| KO +4| | | | | | Wins +20| Wins +10| Checksum +2| | Checksum +1| KO +80| KO +40| | Wins +2| Wins +1|XXXXXXXXXXXXX| | | | | |XXXXXXXXXXXXX| Wins +8| Wins +4| | KO +20| KO +10| Losses +2| | Losses +1| Title +2| Title +1| | Checksum +32|XXXXXXXXXXXXX|XXXXXXXXXXXXX| +-------------+-------------+-------------+ TABLE II. (Base code: 635 793 1420) +-------------+-------------+-------------+ | Wins +80| Wins +40| KO +2| | KO +1| Checksum +8| Checksum +4| | KO +8| KO +4| Wins +20| | | | | | Wins +10| Checksum +2| Checksum +1| | KO +80| KO +40| Wins +2| | Wins +1|XXXXXXXXXXXXX|XXXXXXXXXXXXX| | | | | | Wins +8| Wins +4| KO +20| | KO +10| Losses +2| Losses +1| | Title +2| Title +1| Checksum +32| | Checksum +16|XXXXXXXXXXXXX|XXXXXXXXXXXXX| +-------------+-------------+-------------+ TABLE III. (Base code: 635 790 7428) +-------------+-------------+-------------+ | Checksum +32| Checksum +16| Wins +80| | Wins +40| KO +2| KO +1| | Checksum +8| Checksum +4| KO +8| | | | | | KO +4| Wins +20| Wins +10| | Checksum +2| Checksum +1| KO +80| | KO +40| Wins +2| Wins +1| | | | | |XXXXXXXXXXXXX|XXXXXXXXXXXXX| Wins +8| | Wins +4| KO +20| KO +10| | Losses +2| Losses +1| Title +2| | Title +1|XXXXXXXXXXXXX|XXXXXXXXXXXXX| +-------------+-------------+-------------+ BITS-TO-NUMBER KEY ------------------ 000: +0 001: +1 010: +2 011: +3 100: +4 101: +5 110: +6 111: +7 TITLE NUMBER-TO-NAME KEY Title number Title name --------------------------- 0 "Minor" 1 "Major" 2 "World" --- [3] THE BASICS OF READING THE TABLE --------------------------------------- Passwords in Mike Tyson's Punch-Out are ten digits long, with the digits divided into three groups. The first two groups have three digits each, and the final group has four digits. You'll notice that the rows in the tables above are arranged the same way. Each row in one of the tables above corresponds to one digit of a password. Each digit of the password contains three pieces of information that are either true/on ("1") or false/off ("0"). I will call one of these pieces of information a "bit." Thus, each digit is composed of three bits. In case the meaning of a specific item of the table being "on" or "off" is unclear, I have described them completely in Section 6. All the bits are in the form of some increment, like "Wins +8". This increments stack; thus, if a password has "Wins +8" and "Wins +4" set to "on", but all of the other bits for wins are set to "off", then the player will have 12 wins in his/her record for that password. The bits-to-number key at the bottom of the tables tells you which combination of bits convert to which number. To use the key, pick a row in the table--for example, let's take the first row of Table II (reproduced here): +-------------+-------------+-------------+ | Wins +80| Wins +40| KO +2| +-------------+-------------+-------------+ Let's assume we're trying to create a password with the "Wins +80" and "KO +2" bits set to "on", and the "Wins +40" bit set to off. Then, from left to right, the bit combination for this digit would be on-off-on, which can be written shorthand as 101. According to the bits-to-number key, the bits 101 correspond to +5. So what does this mean? It means that for this digit of the password, we need to add +5 to the digit from the "base code." (The base code is slightly different depending on which table you're using.) Under Table II, the "base" code is listed as 635 793 1420. Thus, the first digit in our hypothetical password would be 6 + 5 = 11. But 11 isn't an option for the first digit of the password! We resolve this by doing the arithmetic "modulo 10"; that is, we use only the rightmost digit. Thus, the first digit of our hypothetical password would be "1". Don't worry if some of the above didn't make too much sense; the examples in Section 5 provide some more "hands-on" descriptions to clarify things. --- [4] ABOUT CHECKSUM BITS --------------------------------------------------- Like many games, Mike Tyson's Punch-Out employs what is called a "checksum" in its passwords. Checksums are often used in electronics and computing when copying data, to ensure that the data is being copied correctly. The checksum does not actually hold any information; rather, when a password is issued, the checksum is completely determined by the rest of the password. When a password is entered, if the checksum does not match what it is supposed to be, then the password is denied. (This means that passwords that are copied down incorrectly are very unlikely to work; also, just randomly entering a password is very unlikely to work.) When creating a password, to determine what the checksum should be, follow this procedure: 1. Determine the number of wins, losses, and KO's the password should have. 2. Add all of the digits of all of these numbers up together. 3. Subtract the sum you got in step 2 from 63. An example may be helpful here. Let's say we're trying to make a password where Little Mac's record is 15-1, and he has 13 KOs. Then, in step 2, we'd add all the digits of 15, 1, and 13 together; that is, we add 1 + 5 + 1 + 1 + 3 = 11. Then, in step 3, we get 63 - 11 = 52. So the final checksum value in this instance is 52. --- [5] SOME EXAMPLES --------------------------------------------------------- Let's construct a password that might occur at the beginning of the game: Little Mac has just defeated all the opponents in the minor circuit, without losing, and he knocked them all out. In other words, Mac is 3-0 3KO, and he holds the "Minor" circuit title. The first thing to do is to check "WHICH TABLE DO I USE?" at the top of Section 2. According to this table, for a password with the "Minor" title and 0 losses, we use TABLE I. Our next job is to determine which bits should be "on" and which should be "off". Since Mac has no losses, the losses bits are easy; all of them should be "off." Since Mac has 3 wins, we need to set the "Wins +2" and "Wins +1" bit. Since Mac has 3 KOs, we need to set the "KO +2" and "KO +1" bits. (For more about selecting the right bits to sum to a given number, see Section 6.) Next, we need to determine what the checksum is. According to the procedure from Section 4, we need to add the digits of Mac's wins, losses, and KOs all together; this gives 3 + 0 + 3 = 6. Then, we need to subtract the result from 63. This gives 63 - 6 = 57. Thus, the value of the checksum is 57. In order to get the value 57, we need to set to "on" the following bits: "Checksum +32", "Checksum +16", "Checksum +8", and "Checksum +1." (Notice 32 + 16 + 8 + 1 = 57.) Therefore, the bits we want "on" are "Wins +2", "Wins +1", "KO +2", "KO +1", "Checksum +32", "Checksum +16", "Checksum +8", and "Checksum +1." All the rest should be "off." Let's take a look at the first row of our Table: +-------------+-------------+-------------+ | Checksum +16| Wins +80| Wins +40| +-------------+-------------+-------------+ Since we want the "Checksum +16" bit on, but not "Wins +80" or "Wins +40", the bits for this row are on-off-off, or 100. Going through the rest of the table, we get the following sets of bits row by row (you can check these if you like): 100, 111, 000, 000, 100, 110 000, 000, 000, 100 (Note that the cells marked "XXXXXXXXXXXXX" are always "off.") Now, we need to use the bits-to-number key from the bottom of Section 2. This tells us that 100 means +4; 111 means +7; and so on down. So, now we have: +4, +7, +0 +0, +4, +6 +0, +0, +0, +4 For the final step, we need to add these increments to the "base code", which is listed at the top of the table. (For TABLE I, it's 635 791 5429.) When adding, if the result is greater than 10, we keep just the rightmost digit. Thus, we get: 6 + 4 = 10 => 0 3 + 7 = 10 => 0 5 + 0 = 5 7 + 0 = 7 9 + 4 = 13 => 3 1 + 6 = 7 5 + 0 = 5 4 + 0 = 4 2 + 0 = 2 9 + 4 = 13 => 3 So the final password is 005 737 5423. Try this on your game and see if it works! --- Now let's make a password that's a little more complex: Say Little Mac's record is 65-2 51KO, and he has the World Circuit title. The first thing to do is, again, check "WHICH TABLE DO I USE?". For a "World" title holder with 2 losses, the appropriate table is TABLE II. Now we need to figure out which bits should be set to "on". This is a little tricker than the first example, because the numbers are a lot bigger. Our choices of increments are +80, +40, +20, +10, +8, +4, +2, and +1. To get the right ones, just subtract off the highest increment that is less than or equal to your number, and keep repeating this until you have nothing left. For example, for the 65 wins, we get: 65 - 40 = 25 25 - 20 = 5 5 - 4 = 1 1 - 1 = 0 We want to set all the numbers that we subtracted to get to zero to "on". So, in this case, we should set "Wins +40", "Wins +20", "Wins +4", and "Wins +1" to "on". All the other wins bits should be "off." (Note that, indeed, 40 + 20 + 4 + 1 = 65.) For the 51 KOs, we can do the same process: 51 - 40 = 11 11 - 10 = 1 1 - 1 = 0 So we want to set "KO +40", "KO +10", and "KO +1" to "on" and the rest of the KO bits to "off." For the checksum (see Section 4), we have 6 + 5 + 2 + 5 + 1 = 19, and 63 - 19 = 44. Now, the checksum bits are a little different; here we have +32, +16, +8, +4, +2, and +1. Using this different increments, we can do the same process: 44 - 32 = 12 12 - 8 = 4 4 - 4 = 0 So we want to set "Checksum +32", "Checksum +8", and "Checksum +4" to "on". We're not quite done yet! Since we have losses this time, we also need to set "Losses +2" to "on". Additionally, we have to set some "Title" bits. Take a look at the "TITLE NUMBER-TO-NAME KEY" at the bottom of Section 2. Since we wanted Mac to be the champion of the "World" circuit, we want his Title number to be 2. Thus, we need to set the "Title +2" bit to "on". So, the bits we want set to "on" are: "Wins +40", "Wins +20", "Wins +4", "Wins +1", "KO +40", "KO +10", "KO +1", "Checksum +32", "Checksum +8", "Checksum +4", "Losses +2", and "Title +2". Whew! Reading down the table (TABLE II this time!), we get the following sets of bits: 010, 111, 001 000, 010, 100 010, 110, 101, 000 Now we convert these to increments using the BITS-TO-NUMBER KEY: +2, +7, +1 +0, +2, +4 +2, +6, +5, +0 Finally, we add these increments to the "base code". The "base code" for TABLE II is slightly different: it's 635 793 1420. Remember that we need just the rightmost digit of our sum: 6 + 2 = 8 3 + 7 = 10 => 0 5 + 1 = 6 7 + 0 = 7 9 + 2 = 11 => 1 3 + 4 = 7 1 + 2 = 3 4 + 6 = 10 => 0 2 + 5 = 7 0 + 0 = 0 So, our final password is 806 717 3070. Try this one out! --- [6] SUMMARY --------------------------------------------------------------- Here's how to make a password: 1. Decide what you want your wins, losses, and KOs to be, and whether you want to be champion of the "Minor" circuit, the "Major" circuit, or the "World" circuit. 2. Look in "WHICH TABLE DO I USE?" at the top of Section 2. Use the table that it says there for the rest of this process. 3. Deconstruct your wins and KOs into increments that exist in the table. The increments are as follows: +80, +40, +20, +10, +8, +4, +2, +1. If your number of wins or KOs can be represented more than one way using these increments, always use the one that uses the biggest increments. For example, represent 51 as 40 + 10 + 1, not 40 + 8 + 2 + 1. If you do it the latter way, your password may not work. 4. Discover your checksum as described in Section 4. Decompose the checksum into increments. The increments are as follows: +32, +16, +8, +4, +2, +1. (There's only one way to represent a given checksum using these increments.) 5. Make a copy of the table. Mark all cells that had increments you picked in steps 3 or 4. 6. If your desired record has 1 loss, mark the "Losses +1" cell. If your desired record has 2 losses, mark the "Losses +2" cell. If your desired record has 0 losses, do nothing. 7. If your desired title is "World", mark the "Title +2" cell. If your desired title is "Major", mark the "Title +1" cell. If your desired title is "Minor", do nothing. 8. To the right of each row, write three bits. The bit in each position should be "1" if the corresponding cell is marked, and "0" if it is not. 9. To the right of each set of bits, write the increment corresponding to that bit set. (Use the BITS-TO-NUMBER KEY from the bottom of Section 2.) 10.Take these ten increments, and add one each to the "base code" for the table you are using. Do the addition "Modulo 10"; that is, if a sum is more than 10, use only the rightmost digit. The result from this step is your desired password. --- Here's how to tell whether the game will reject a password. In order for a password to work, all the following conditions must be met: -You must use the correct table and base code. -The wins must be at least 3. -The wins must be at most 99. -The losses must be at most 2. -The KOs must be less than or equal to the wins. -The "Title +2" and "Title +1" bits cannot both be set. -The checksum must be the right value. Provided the above are ALL true, the method for generating passwords given in this guide should ALWAYS work. However, truth be told, it is NOT true that all working passwords can be generated using the method of this guide. Some other passwords work as well. Some of these are listed in the next section. --- [7] SOME NOTEWORTHY PASSWORDS --------------------------------------------- First, some useful passwords that you could have generated using this guide: "Minor" title holder, 3-0 3KO: 005 737 5423 "Major" title holder, 7-0 7KO: 777 807 3454 "World" title holder, 13-0 13KO: 267 853 7538 "World" title holder, 99-0 99KO: 940 861 8538 "World" title holder, 99-0 0KO: 131 811 8438 --- Now, some useful special passwords: "Fight Mike Tyson": 007 373 5963 (This password takes you directly to Mike Tyson. In the game, after you beat the World Circuit, your password takes you to Super Macho Man, and you get no password for beating Mike Tyson. Thus, you can't actually get this password in the game.) "Another World Circuit": 135 792 4680 (This password takes you to the circuit "Another World Circuit", which consists of King Hippo and Great Tiger, followed by the World Circuit, followed by Mike Tyson. In order for this password to work, after selecting the last digit, do NOT press Start; instead press A, B, and Select at the same time.) "Busy Signal": 800 422 2602 (This password plays a busy signal, but does nothing else. It was put in the game as a joke. The password is apparently an old phone number of Nintendo, which was frequently busy.) "Credits": 106 113 0120 (This password displays the credits. In order for this password to work, after selecting the last digit, do NOT press Start; instead press A, B, and Select at the same time.) --- [8] FUTURE VERSIONS? ------------------------------------------------------ Although I think this guide is reasonably complete, there are still a few things I would like to clear up at some point, if possible. If I ever receive any e-mail about this guide, I may make a future version. Here are some of the questions I may try to answer in a future version. -Do the "XXXXXXXXXXXXX" digits actually do anything? They aren't necessary to get any obvious effect, so I doubt they are useful. But can they be used for anything at all? -There are some passwords that differ a little from what this guide would provide that work and provide the exact same effect. For example, the passwords 005 797 5483 and 003 797 5483 appear to do exactly the same thing. When, exactly, is it okay to screw around with a digit a little bit and still get a password that works? -Could any of the sections or explanations be made clearer? -Did I miss anything that readers would like to see? --- [9] THANKS/ACKNOWLEDGEMENTS ----------------------------------------------- I would like to thank RedTom, who has on his web site a huge archive of passwords. It is primarily through examining these that I was able to discover the patterns within the password system and unlock its secrets. You can visit his web site here: http://www.tomspunchout.tk/ I would like to thank Nintendo for bringing us the game Mike Tyson's Punch-Out!!, which is quite fun in itself. I would also like to thank my brothers Brian and Kevin, who suggested to me the idea of "cracking" games' password systems, and have provided me with endless intellectual inspiration in general. I would like to thank CJayC, maintainer of GameFAQS.com, the finest source for video game information available anywhere. I would like to thank the people who have written to me to express their appreciation for the guides that I have written. Finally, I would like to thank you, the reader, for looking over this guide. It is my hope that you found it interesting.