____ ______ ______ THE ______ ______ ____ / \ | ___| | | _____ | ___| |_ _| / \ | |__| | |__ | |__| | \ | |__ | | | |__| \ \ | __| | | | | | | __| | | \ \ _\ \ | | | |__ | / | | | | _\ \ | | | | |___ | | | | | \ | |___ | | | | | \____/ |______| |______| |___|__\ |______| |__| \____/ Of Professional GameShark Hacking _____ 0001110101001110010110100011 ..~` a`~~.. 110100000100001000100000101000001 ..~` }100000111000110001110001100011111110 -----` /\/\/\/10100011100110000111001100001110011000 `. \\\ | 00010001001111110010011111100100111111100 ; \/\/\100100111001100001110011000011101100010 .` ___/01000111000110001110001100011100110010 ; ..~~~~```` 11011000100100100101010100100110101001 .` ..`` ; ..`` ; .` .-` .` .-` ,` "The most elaborate, in-depth hacking guide / .. . for GameShark, ANYWHERE!" |.-`` `. \ `.| [By: Kong K Rool and Macrox] ----------------------------------------------- Table Of Contents ----------------------------------------------- i .................. This Version ii ................. What's New iii ................ Coming Soon iv ................. Dedication 1 .................. Introduction 2 .................. Hacking Basics - Theory a ................. Know The Code b ................. Systems Of Counting Or Number Base I ................ Offsets II ............... Decimal III .............. Binary IV ............... Hexadecimal V ................ Octal VI ............... ASCII c ................. About Most GameShark Hackers 3 .................. How-to Guide - Practical a ................. What do I need? b ................. What do I need to know? c ................. Learn Your 'Shark d ................. The Hacking Begins I ................ One Small Step For Man... II ............... The Methods IIa ............. Using Game Trainers IIb ............. Hacking With GameShark Pro - Step by step III............... Link to online Code Porter 4 .................. GameShark / GameShark Pro FAQ 5 .................. Acknowledgments 6 .................. Legal ----------------------------------------------- i) This Version ----------------------------------------------- Version Number: 2.00a Release Date: 5-6-2000 ----------------------------------------------- ii) What's New ----------------------------------------------- 5-6-00: How to hack specific codes section appended. Using the mem editor has been appended. How to install the pc hacking utilities, hooking the GameShark to a PC and upgrading (flashing) the GameShark Rom added. How to hack enabler codes and walk through walls code. Link to online code porter (when text viewed online). 7-22-99: New chapter added - Chapter 4 - GameShark / GameSharkPro FAQ. New "How-to's" added, for the Big Time Hackers. Decimal/Hexadecimal conversion formula added. "This Version", "What's New" and "Coming Soon" sections added. Many new code type prefixes added. ----------------------------------------------- iii) Coming Soon ----------------------------------------------- Xploder/Xplorer decryption system(so you can make Xploder/Xplorer codes work on GameShark). Breakpoints. More information of hacking enabler codes. Hacking Dreamcast codes - 32 bit code hacking. TBA - To be announced topics. ----------------------------------------------- iv) Dedication - by Kong K. Rool ----------------------------------------------- This document, in all it's entirety is dedicated to my dad. A very brilliant man in the computer/science fields. He passed away July 9th of 1999 at the age of 36. May he rest in peace. - Kong K. Rool ----------------------------------------------- 1) Introduction ----------------------------------------------- Welcome to the GameShark World. In this document, you will learn several different ways to hack your own codes. These methods range in degree of difficulty from easy to difficult and yield various results. As you read you are encouraged to practice the methods that are described in this document. This way, you will learn by your activities. There is more than one way to hack codes. This ranges from guessing, to a secret hacking system, which not everyone will understand. Again, as you read, try the idea's mentioned. It has been proven that people learn easier and faster when they are active in a project. It is the authors wish that the material presented here meets the anticipated needs of the reader's wishes to learn to hack GameShark codes. You might even come up with another variation of these methods to hack codes. If you do, let us know and we will consider including it in future versions of this document. ----------------------------------------------- 2) Hacking Basics ----------------------------------------------- a) Know the Code I) Offsets Offsets(or RAM addresses) are typically found by examination of the game memory by using advanced hacking equipment such as a GS Pro, SharkLink or hex viewer on a ROM. Basically, an offset is a "memory holder" in which it(usually) holds a byte of memory(a two digit hexadecimal code). If you find an offset that holds the health digits when using a ROM and hex viewer, you can be certain that it isn't the GS code(if you find the health at offset "012203" the GS code usually won't be "80012203 FFFF".) There is less than a 1% chance of finding an offset and it actually being the code. The reason the offset and the offset digits in a GS code are not the same is this - There are MANY, MANY offsets which are used to tell the platform what type of game it is(size, language, title, checksum values, etc.), and other operation codes which will assign all the offsets to do what they are meant to do. There are offsets that hold the hex values that make up the pictures you see in the game, the coordination's of the character you control, mathematical operations... The list goes on and on... The header(tells the machine what type of game you're are booting) might take up all offsets past "012203" itself! There is a block of info that tells where the quantifier-offsets(the byte of memory which you change through GS codes begin and which are usually things such as number of an item you have or level of health you have). This block is called RAM(Random Access Memory), which does exactly what it says. RAM is memory that will be changed all throughout its processing. Score and health are good examples of RAM, the values for both will be changed while you're game is running. So think of GameShark as a RAM Editor. More information about offsets is beyond the scope of this document and will not be included in future editions of this text. b) Systems of counting or number base II) Decimal Decimal Notation, based on ten digits, is something you already know. Count to 50 like you normally count. You can count using decimal notation. III) Binary Binary, or dual counting, is based on two digits. It's really easy to understand and use. You'll need to know the following - There are two characters used in binary - 0,1 (Think of it as a switch). A "1" means the switch is turned ON. A "0" means the switch is turned OFF. That's what binary is, a bunch of switches. I won't go into any more detail about switches now, but will return to this topic later in the document. A four-digit string of code written in binary is called a "word".(this is also the same in hex[1-digit]) Four Binary Digits(bits - 'BInary digiTS') equals 1 digit hex. Three bits equals 1 digit octal. Now that you know that, hex and octal should seem easier to learn. In this document, we will refer to any and all hex values with "-h" and decimal values with "-d". So value "100" decimal will read like this - "100-d" and "64-h". How do you convert from bits to hex and back? Look at this chart - Hex Binary Hex Binary 0 - 0000 8 - 1000 1 - 0001 9 - 1001 2 - 0010 A - 1010 3 - 0011 B - 1011 4 - 0100 C - 1100 5 - 0101 D - 1101 6 - 0110 E - 1110 7 - 0111 F - 1111 If you notice, There are no more 4-digit combinations of "0,1" left. Now for the conversion part. Look at the 4 bits, each of the numbers have a value assigned to them. We will call these values, "Bit Values". Number in Hex 6 Number in Binary 0110 Bit Value 8421 (The Bit Value will ALWAYS be this! So remember it!) You are going to learn to convert by using multiplication. Math is a great tool to use when working with the GameShark. You can represent the binary word by letting "0110"(8421) = "IJKL" and thus you get "1xL + 2xK + 4xJ + 8xI" = "L+2K+4J+8I"(in algebraic terms). Now substitute the binary back in, you would get "1x0 + 2x1 + 4x1 + 8x0" = "0+2+4+0" which adds up to six. Six is what the hex value was in the beginning. To convert back to binary, use the formula "L+2K+4J+8K", find the numbers which add up to six. In this case, "4 and 2". Remember, "IJKL" = the bit value. Then substitute the binary back in - "1x0 + 2x1 + 4x1 + 8x0" = "0110". Why do that when there's an easier way? Because there is no use in converting when you don't understand why it is done in that way. You will learn an easier way soon, in fact, make one up! Octal conversions are the same as hex-to-bit. Only, octal goes up to "7". So the bit value looks like this - Octal 3 Binary 011 Bit value 421 The Bit Value will NEVER change. The bit value is actually the value assigned for each bit. If you have an 8-bit value, the bit value would look like this - (128)(64)(32)(16)(8)(4)(2)(1) Notice that every time a new bit is added(to the beginning, no doubt), the last bits' value will double. Further explanation is beyond the scope of this text. To convert between hex and decimal, use this formula - yz = 2-digit value hex (when) z = "A-hex", A = "10-dec" (when) z = "B-hex", B = "11-dec" (when) z = "C-hex", C = "12-dec" (when) z = "D-hex", D = "13-dec" (when) z = "E-hex", E = "14-dec" (when) z = "F-hex", F = "15-dec" (if) z = #, skip next step z-hex = z-dec, z-dec = q (if) y = #, skip next step y-hex = y-dec, y-dec = r y*6 = s yz+s = yz-dec This looks confusing, I know, but I'll explain it as if I were talk to a 10 year old child. First, "yz" represents a 2-digit hex value. Our value will be "64"(y=6, z=4). When "z" is an "A", A equals "10-d". Understand that so far? If "z"(in the 'yz' hex value) is a number, skip the next step(4 is a number, so we skip this next step). Transfer "z" to decimal(look at the "when's"). If "y" is a number, skip the next step(6 is also a number, we skip the next step). Transfer "y" to decimal(look at the "when's"). Multiply value "y" by 6, the factor is "s". 6*6 = 36, s=36. Add value yz and value s. 64+36 = 100 64-h = 100-d. Now let's do it short-hand - "yz" = C8 C = 12, yz = (12)8 12*6 = 72 (12)8 + 72 = [7]2 -- 72-d +(12)8 -- C8-h ------ [20]0 -- 200-d C8 = 200 If this doesn't make sense, I didn't explain it well enough. It is important to understand how to do the number base conversions before continuing. If you do not understand, the reader is encouraged to review the material already presented. I) Hexadecimal Hexadecimal is a programming 'language' you must know in order to hack GameShark codes. So, what is it? Hex is what your GameShark codes are written in. There are sixteen characters used in a GS code. The characters are as follows - 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Let's learn to count in hex. If you look above, you'll see how to count to fifteen in hex. What's sixteen? "10-h" is sixteen. By the way, don't say "ten," say, "one, zero" for '10-h'. Let's see what you've learned. What comes after 19? What comes after 3F? If you said, "1A" for question #1, that is correct. If you said, "40" for question #2, you should know how to count in hex! VI) Octal Octal is just another way to write binary(like hex), but octal words are longer than hex words. What you've already read is enough to know about octal. You do not need to know octal to hack GS codes. V) ASCII ASCII is what you are looking at right now. ANYTHING that can be typed on the keyboard is ASCII. ASCII is useful to know when hacking in my secret way. It is also useful for using the text editor search option in hacking devices such as the GameShark PRO. You don't need to know the assignments for ASCII characters(although you might to know them when hacking text editing codes). c) About Most GameShark Hackers Most hackers use more than one way to hack. Most know programming languages such as binary/hex/octal, HTML and Perl, scripting languages, R300 Instruction sets, etc. HTML and Perl is included here because many hackers want to use this language to create a website that has all their codes displayed. You don't need to learn many of the things other than binary and hexadecimal to "hack better than the Pros." Here are some ways you can hack(1 star[*] by the name is easy, 2 is harder, etc.) - Guessing**** This isn't easy, because you don't always find a code this way. It's not only troublesome, but risky at some times. Some guessed codes can corrupt game data! Modifying Codes* One of the easiest things to do. Change a number on an existing code, you make a new code. (Only works when you have a basis[base code] to work with.) Looking At The Source[Code]*** Hard, but most effective. Worth a shot. Using Hacking Equipment* Another easy way to get codes. It might not be very easy, but it doesn't take much time. Plus, it's the second most effective way to hack. Porting** Porting is taking a code from one version of a game, and making it work on another version of that same game. This does not always work. The reason is the same reason that they make more than one version. Possibly to fix a minor bug. So the offsets will be in a higher or lower position, or even moved to a totally different location. You can use the "GS Code Porter"(available at GameShark Universe) to port any code for you. Hence you can make a code before anyone else gets the chance! Combination Hacking This isn't rated. All you need to do is hack using two or more methods at once, for a greater chance of finding a code (!!!!!There is a sleight risk of loosing saved data on your GS when turning the system on and off while guessing or modifying codes. It happened to my PlayStation GameShark!!!!!) Now, ask yourself, which method am I going to use to hack? When you get your answer, continue on to the next chapter. ----------------------------------------------- 3) How-to Guide ----------------------------------------------- a) What do I need? You need a Game Platform(N64, PSX, Dreamcast etc.), you need a game to hack, and you need a GameShark or GameShark PRO. You will also need other things to hack in other ways such as a hex editor and calculator can do hex math. A will to learn, basic math skills, patience, endurance, practice and this document. b) What do I need to Know? If you've managed to read everything above, then you know about 40% of everything you'll need to know about hacking. The remaining 60% is learning to use hacking equipment and the software for it, among other things. c) Learn Your Shark There are a few things you'll need to know about your GameShark before we begin hacking. You'll discover how the GameShark codes work. This is the layout of all N64/PSX 'Shark codes - XXYYYYYY ZZZZ This is the layout of all GB 'Shark codes - XXZZYY-YY "X" digits is the 'prefix', used to tell the GS what kind of code you are using. "Y" digits are the 'Offset Digits', used to locate the offset digits you want to change. "Z" digits are the 'Quantity Digits', used to change the quantity of the chosen offset. The reason there is a hyphen between the Y's in the GB code layout is because the Y's are actually set up backwards. The first two Y's should be behind the second two. Of course, you only need to know this if you are going to use my hacking method... You ARE going to try it, right? Here are the most common N64 prefixes that you must know - (All of the following are theories.) 80 - Default, used for "regular" 8-bit codes. 88 - Default GS Button, Used to activate the code by the GSB. 81 - Used for 16-bit codes initializing all four quantity digits. 89 - Same as above, only the code will be activated by GSB(so, you have a 16-bit code when the GSB is pressed). D0 - "8-bit Equal To Activator", When the given address reaches the supplied value, activate the following code. D1 - GSPro 3.0+ ONLY, "16-bit Equal To Activator". Same as above, only the address needs all four digits to be equal to the supplied value. F0 - Tells the GameShark what address is causing malfunction with it, and writes the supplied value to that address. This is in 8-bit mode. Enabler code. F1 - Same as above, only this is 16-bit mode. Enabler Code. DE - GS 1.08+ ONLY, Tells the GameShark where the value "3C0880" is in the RAM. This type of code does not write a value to the given address. Enabler Code. EE - Enabler code. Used in GS 2.2+ e.g., Legend of Zelda OoT. FF - Enabler code. Used in GS 3.3+ only, e.g., Donkey Kong 64. One line enabler that replaces multi line enabler of 3.2 GS. 50 - GSPro 3.0+ ONLY, Patch Code, to make a code string shorter. EG, You have five codes put together to give you "all weapons." Use the patch to shorten it to two codes. This is how it works - 50000A02 0000 + 80844CF0 FF5F EXAMPLE ONLY! NOT A REAL CODE! The first code is the patch, the second is the first code of the expanded STRING(a string is where the offsets will go up only a few digits for each code, EG. 100000, 100002, 100004, etc). The patch does not use an address, yet it is an instruction for the GameShark. The seventh and eighth digit in the patch tells how many numbers the second code will raise to get to the next code in the string. In this case, "2" is used, meaning the next code in the string must be "80844CF2 FF5F." Then the next code would also go up by two. So would the next one, and so on. The fifth and sixth digits of the patch are the digits that tell the GameShark how many codes are in the string. "0A" is used in the example, so ten codes are being used at once with only two codes! Also note, the codes within the string MUST have the same quantity digits!!!! It's possible to have as many as 255 codes used at once using this format. Maybe even more in the future. You can also change the quantity digits in the patch to make the values of each code in the string raise by a certain value. This is what the above code would look like with out a patch - 80844CF0 FF5F 80844CF2 FF5F 80844CF4 FF5F 80844CF6 FF5F 80844CF8 FF5F EXAMPLE ONLY! NOT A REAL CODE! 80844CFA FF5F 80844CFC FF5F 80844CFE FF5F 80844D00 FF5F 80844D02 FF5F Which would you want to use? Okay now to put a new twist on the Patch Codes. I'll use the materia modifier for Final Fantasy 7 as an example. slot 1: 3009CE60 FFxx slot 2: 3009CE64 FFxx There are 200 slots but there are only 90 different types materia so to get them all that's how many codes you'll need. the quantity digits for those range from 00-5A and 5A equals 90 in decimal. The codes go up by 4 so we have: 50005A04 0000 + 3009CE60 FFxx Is that the code to give you all the materia? NO! That code will give you the same materia in 90 different slots. To get all the materia we need to make the XX go up by one with each code. We do that the same way we make the first half of the code. So here it is: 50005A04 0001 + 3009CE60 FF00 We just did the same thing with the last four digits as we did for the rest of the code. So which is better 2 codes or 90? Here are the most common PSX prefixes that you must know - (All of the following are theories.) 80 - Default, used for "regular" 16-bit codes. 30 - Used for 8-bit codes that only use the last two quantity digits. D0 - "16-bit Equal To Activator", When the value for the given address is equal to the supplied value, activate the following code. D1 - "16-bit Different To Activator", When the value for the given address is different to the supplied value, activate the following code. D2 - "16-bit Less Than Activator", When the value for the given address is less than the supplied value, activate the following code. D3 - "16-bit Greater Than Activator", When the value for the given address is greater than the supplied value, activate the following code. E0 - "8-bit Equal To Activator", When the value for the given address is equal to the supplied value, activate the following code. E1 - "8-bit Different To Activator", When the value for the given address is different to the supplied value, activate the following code. E2 - "8-bit Less Than Activator", When the value for the given address is less than the supplied value, activate the following code. E3 - "8-bit Greater Than Activator", When the value for the given address is greater than the supplied value, activate the following code. 10 - Add value(16-bit) code. Use with D/E activators. Example - (adds value "1007" to address "001221" when address "110012" equals value "5") - D0110012 0005 + 10001221 1007 11 - Subtract value(16-bit) code. Use only with D/E activators. Example - (subtracts value "102" from address "001221" when address "110012" equals value "6") - D0110012 0006 + 11001221 0102 20 - Add value(8-bit) code. Use with D/E activators. Example - (adds value "7" to address "001221" when address "110012" equals value "5") - D0110012 0005 + 20001221 0007 21 - Subtract value(8-bit) code. Use only with D/E activators. Example - (subtracts value "2" from address "001221" when address "110012" equals value "6") - D0110012 0006 + 21001221 0002 10 - Used in some Saturn codes, This topic is not currently included in this version of the text. The author welcomes any information that may be included in future issues of this text. The most common GS Digit for GameBoy is "01". Why this is used more than anything else, I am not certain. It is probably for the fact that "01" is the lowest positive value there is in hexadecimal. Using the lowest value is usually better because it may stop unnecessary freezing. Also, with the advent of the Dreamcast, 32 bit codes will be forthcoming. These codes will require 8 digits for the offset and 8 digits for the quantifier, 2^32= FFFFFFFF in hex. Example, XXYYYYYY ZZZZZZZZ d) The Hacking Begins Are you ready to start hacking? Of course you are. If you have skipped directly to this section hoping you can read just this part and think you can be a GameShark code hacker, think again. It is HIGHLY recommended, indeed required that you read everything that has already been presented in this document. If you do not, you won't understand what most of the following states, and you will most likely not be successful in being able to hack GameShark codes. This is the untouched, unchanged GB Hacking Guide written by DaRfUs. We include it here to honor a hacker who first desired to teach others his trade. ========================== GB Hacking guide Written by DaRfUs First you start off by choosing what you want the code to do (start with something simple like an unlimited life code). Now go to "Game Trainer" in the GS menu. It will start the game. Walk around for a little bit WITHOUT getting hit. Now press the little button at the top of the GameShark. It will take you to the GS menu once more. Again go to Game Trainer. Now walk around this time I want you to get hit. Press the GS button as soon as the life goes down. You will be taken back to the menu once again. Go to the trainer, and select "Continue Trainer" there will be 4 boxes now here is the most important part... What happened to your life the 2nd time (the time you got hit? it went down right?) so you would pick the down arrow, because your life went down! Wasn't that simple! Now it will search for some possible codes(if you get a big # of possible codes then keep repeating step 2) ========================== What this says is "compare and contrast", which is what the guys like CodeBoy and CodeMaster do when hacking! They use the same method the GB GS trainer uses. In the text above, DaRfUs explains that you choose the "down arrow". This is not only because your life went down, but so the trainer will compare the two RAM Dumps(which were taken when you pushed the little button on top), and display only the codes that had the values lowered in the second dump. From what I understand, the GameShark Pros' trainer will work similar to the one on the standard GB 'Shark and the SharkLink/Comms Links. With all this information, you should be cutting the edges in your mind. You should be gathering ideas right now. Thinking of what these trainers actually do. Discovering for yourself what you want to know about GS hacking. I) One Small Step For Man... Nintendo 64 - This part discusses important information about things like key codes, and "Enable Codes". A key code is a code which is used to bypass the lock-out code set into the games header. When a key code is activated in the 'Shark, it will use that key code as a default for a one-time shot. There are currently four different key codes available. Check GameShark Central (www.gscentral.com) for the key codes. Most "locked" games need the use of an "Enable Code". There are also many games that use enablers that do not require Key codes. They simply allow codes to function and the code generator which is the software newer Game Sharks have function. This code is a code that is placed in with the others(usually named, "MUST BE ON" or "M" code). The Enable code used the most is "DE000400 0000" but there are others. Most recently, Donkey Kong 64 had a multi line enabler code in the 3.2 version to allow codes to work with the Game shark. The 3.3 Game shark now uses only one line of code. Any code beginning with "DE" in GS versions 1.08 to 2.1 will cause the 'Shark to freeze up when not used with a key code and needing-needing game. In my version 2.2, the code "DE000400 0000" will NOT freeze the Shark. Yet almost any other "DE Code" will freeze it. As mentioned earlier, there is one key coded game that DOESN'T need an enable code. The Legend of Zelda: Ocarina of Time. and when using the GameShark 2.2, you see a new addition to the key codes. It's a 32-bit block(aka instruction code). Now, three of the four key codes use the block "80 20 10 00". BUT, Zelda uses the block "80 19 00 00". Does this suggest that using a block different from the default, will make the use of an Enable Code nullified? I think not. There must be some defect that The GS has when using the "80 20 10 00" code. This calls for the 'DE' enable code to make the GameShark work! The DE is used to tell the GameShark where the value "3C0880" is located. Why "3C0880"? I don't know for sure, but my guess is that the value is where the RAM begins. So the RAM actually starts at RAM address "000400" and not "000000"(which also has the value of "3C0880"). The DE code does not overwrite the value of the given address. PlayStation - There are a few Enable Codes needed in PSX games(Crash Bandicoot for example). But I don't understand if the enablers are used for a lock-out, or to fix a small bug. This part of the section is in need of reference. I know a few people that could submit contributions, and I'm sure everyone will greatly appreciate it. II) The Methods Here are a few of the many methods used to hack GS codes - Game Trainers - InterAct and Datel have their own trainers. You can, however, get a trainer called "PC Comms Link" which will connect your platform to your computer where you can use a hex editor to view the ROM/RAM of your game. You will only be editing the RAM part of your games memory though. Comms Links may still be available from Datel. Game Backup Devices - Some devices like "Doctor V64" and "CD64" have a built-in hex editor and GameShark function that allows you to view the ROM/RAM and create GameShark codes. There are many LEGAL issues regarding the use of these type of hacking devices and as such the authors of this document have declined to include them within the scope of this work. ROM and Hex Editor - Finally! Kong's secret hacking method is revealed! It is, at sometimes, seemingly impossible to hack using this primitive method, but it is well worth the trouble of it all! I was able to hack 54 Harvest Moon GB codes using this. When no one else could even get one code! How about those results?! I've also hacked numerous other codes this way. Definitely something to try out! Be Aware, using ROMs(they can be found on the internet) is ILLEGAL when used for purposes of your own entertainment, this means you can't use them just to play them! It may be possibly illegal just because most of the Nintendo game instruction booklets say, "WARNING: Copying of any Nintendo game is illegal and is strictly prohibited by domestic and international copyright laws. "Back-up" or "archival" copies are not authorized and are not necessary to protect your software. Violators will be prosecuted." The author does not endorse nor will support any information or the acquisition of obtaining game ROMs for legal reasons, and their use is explained here for comparison and illustrative purposes only. The author waives all responsibility for those readers that possess or attempt to possess such material, and the sole responsibility, accountability and legal consequences rest solely with the reader. If none of this scares you, read on. You can hack this way by doing similar to what DaRfUs explains. If looking for an infinite health code, start a ROM with an emulator and DO NOT lose any health. Save the current state(check with your emulators readme file to see how to save a state or a snapshot), which will be like a ROM Dump. Then restart the ROM, go to a different spot you were at last time, lose health, and as quickly as you can, save the state/snapshot! Now load up a hex editor such as "Hex Workshop". Open the saves that you made(check with your emulators' readme file to find out what the extension will be). Choose Tools/Compare(in Hex WorkShop). You will get various comparisons. When you find a comparison that looks like it could be the one, change it in the second save that you made. Change the quantifier to something like "00"(this way, you will die if you have the right offset). Now load your emulator and ROM, load the SECOND save that you made(with the changed quantifier), if you die, or have less energy, you found the right offset! Now you need to find the beginning of the RAM. This might be impossible w/o previous training skills. A really easy way to hack the beginning of the "valid" RAM, You can activate certain GameShark codes, and save a state, then find the values used in the codes, in the hex editor! EG- for GameBoy hacking, I use these codes together on any game- 013C00C0 013D01C0 014902C0 012203C0 Now I'd save a snapshot. Then Id enter hex workshop and find value "3C3D4922" which is nearly impossible to see twice(although on some games, the GS wrights to two different address locations with one code). When I find the FIRST string with that value, I write the beginning offset on a piece of paper. then I subtract that offset from "C000". Let's say the first "3C3D4922" value was at offset "000066D0". I would use this math problem- C000 - 66D0 ---- 5930 I then take my value of "5930" and insert that many bytes(hex) into the BEGINNING of the file. Now search for value "3C3D4922" again, if you come to offset "C000", then you know that your GS code will modify offset "C000". And you can now go on hacking like that. The beginning of the valid RAM is "A000"(GS code "01xx00A0") and it ends at "DFFF"(01xxFFDF). Other Methods - New methods of hacking will be included in future issues of this document as they become known and created. IIa. Using Game Trainers Using these Trainers is rather easy and usually brings up some codes. You will learn how to use the trainers by reading this section. You will learn to hack codes like "Infinite health", "Infinite Ammo", Debug Menus and even "activators". Emulators such as "ULTRA HLE" for N64 ROMs and "Bleem" that run PSX games on the PC, are in the purest sense PC based programs that allow you to run an image (ROM) of a console game like Zelda64 on the PC. The emulators for the newest platforms require state of the art video and sound cards to be able to get a close enough effect as that of the real console, otherwise they result in poor sound and graphics display and game performance. The legal debate of having the game image (ROM) is ongoing but is clearly considered by some companies such as Nintendo as illegal. ROMS can be obtained via the web but please don't ask for any sites. The emu or emulator really is used for playing the game. Now the emu coupled with a hex editor can bring a hacking element into the scene by simply changing addresses in a "save" file on the PC which acts as the RAM which would be in the console cartridge. Loading these files after changing them can be the same as loading saved games. Using the Hex editor with the emu at the same time can be considered like using a GS Pro and Game with the console. Using the hex editor requires no less patience or experience in looking for codes than using a GS Pro. By the way...a very good Hex editor I use is called the HEX Workshop and can be found on line at several web sites. Trainers are earlier, PC based programs similar to the GS Pro. They required a PC Comms Links card for the PSX console where the Comms Link card allowed communication of the PC with the console. The N64 required an additional adapter that was in reality a watered down GameShark. This adapter was needed because the N64 GameShark never had the 25 pin port on it the way the PSX did. The legality of using a trainer is transparent in that you never made a copy of the game ROM. You were just scanning through the RAM addresses looking for active codes just as you do with the GS Pro. There are also several proprietary new trainers that are used by the pros that have not been released to the general public. IIb. Hacking With GameShark Pro Hacking the easy stuff. The easy stuff is codes that are easily obtained. Such as inf. money, health, and ammo. A note to beginners, DO NOT SKIP THIS SECTION! Practice makes perfect and is everything to getting the feel of what hacking codes is about. You must crawl before you walk and find you will even run in a much shorter time if you heed this advice. We will begin: Infinite Cash- To hack an Infinite Money code, first you must start up the trainer process with a Known Value search. While you have 0 money, search for value "0". Start the second part of the process, go back into the game. Now earn some cash, it doesn't need to be a large sum. Then do another search(for the value that you now have). Now, repeat the process until you find the code. Infinite Health- For a code like infinite health, you go through the same steps above, only you will search for an Unknown Value and you character will start with full health in step one, and less health in step two. So you choose the "less than" option. And when summarizing the quantifiers, notice that MOST(not all) games with a health bar will recognize full health at "0064"(100) or "00C8"(200). With this in mind, you can find the health code a lot easier! Infinite Lives- Now on to infinite lives. Do the same thing you did in the first example. The first step will be the default amount of lives, and the second will be one life less. if you started with 3 lives, the first quantifier should be "0003" OR "0002". Since some games start counting at 0 instead of 1, it may be possible that "2" = "3" But it's very rare to see this. Infinite Ammo- Another code is Infinite Ammo. This one might be a little trickier. If you do the first search with 100 bullets(search for 100), and the second with 50(search for 50). The code should show up. I hope you know how to hack the easy codes now. So far so good. Hacking the intermediate stuff The intermediate stuff is like "In-Game Cheats", Have weapons/medals/items codes. Have Weapon/Item codes- If you wanted a code that gave you a weapon or an item, you would first take one readout without having the weapon/item, then a second with it. When you compare, choose "greater than". The first quantifier SHOULD be "0000" and the second "0001". If not, the second could be "0002/0004/0008/0010/ 0020/0040/0080/0100/0200/0400/0800/1000/2000/4000/8000". The reason it would have so many is the game uses the switches(described earlier). Only the switches are represented in hex. You need a little luck when hacking a code like this. Activate In-Game Cheats- For a code like "Activate In-Game Cheats", you will take one readout w/o the cheat active, and the second with the cheat active. The quantifiers should read, "0000" & "0001". Good Luck Character Modifiers- (submitted by Gold64007) 1. Select a character, start the game. 2. Push the freeze button and start an Unknown Value search. 3. Change to a different character, start the game. 4. Now do a "Different to" search. 5. Change some other aspects of the game (other than your character) (example, health, place you are in, depending on what kind of game it is). 6. Now search for "equal to". 7. Repeat steps 3 through 6 until you get a manageable amount of results (20 or less). 8. After you have a manageable amount of results, get into the view valid cheats screen. Now activate the codes one at a time until you find the character modifier. 9. Now in the view valid cheats screen highlight the Character Modifier code on the right side of the screen and push the Right C button to edit the value of the code put in "00" which is probably the first value that will work (though it could be higher). 10. See which character "00" corresponds with, write it down. 11. Now change the value to "01," see which character you have. 12. Repeat step 10, adding 01 each time until there is no effect. NOTE: Exit to the main menu of the game before editing the code to keep the game from freezing. Using this method, you may find two types of Character Modifiers, The actual character mod(select any character, always play as certain character). Or the character selected mod(your 'cursor' will always be on a certain character at character select screen). Hacking the harder stuff The hard stuff is like activators, and debug menus. Activators/Joker Commands- An activator/joker command is a code that will activate another code at the touch of a button on the controller. These codes use the D/E prefixes. To hack an activator/joker, start a known value search on the game title screen. Take this search when NOT pushing any buttons on any controller. Next, hold the R Button for N64 or Tringle button on PSX, and push the freeze button while holding the button on the controller. Now search for the following values- N64 - "16-d" PSX - "16-d" NORMAL PSX - "4096-d" REVERSE The two PSX versions are listed because some games use activator quantifiers that are different from the rest. The N64 activators are usually always the same. So if you do not find the Tringle button with value "32-d", try value "4096-d". When you find the code that you think it is, put the prefix to "D0" on the code. Then test it by putting any code after it. Here is a quick example. Start the game but do not touch any buttons after coming to the opening screen. Press and hold the "R" button and press the GS Button to freeze the game. Release the R button. Do a known search for the value 16 in decimal which is the equalivant of 10 in hex base. After the search resume the game and then press and hold L while pressing the GS button again. Release the L button and do a known search for 32 in decimal which is the equalivant of 20 in hex. You should be down to 4 or 5 possibilites. Now let us say we try one of them to test. Let's pretend the code is 80012345 0010 you choose first. First Change the first digit "8" to a "D" which tells the Game Shark to execute the code that follows this new code you made, D0012345 0010 once and only once each time you press the R button. Now we pretend the code we want to use is for selecting a certain weapon, gun, 80022222 0001. So by combining the two codes; D0012345 0010 80022222 0001 We get a code that turns the gun on everytime we should press R. Now of course we must test the code to see if it works. If by chance you choose wrong, fear not, a matter of elimination of the other few possible codes will reveal the correct one. Once tested and proven you can read on for the next step. Now to illustrate how we could de-select gun. Well let us choose the 'L" button to do this. First, again we select the proper code to use as the activator as before. If you'd like to turn the gun code off, you can usually put another activator over the code you want turned off. Example - D0012345 0020 80022222 0000 Now by putting the two pieces together you can make a double activator let Let's you turn the gun on and off. D0012345 0010 80022222 0001 D0012345 0020 80022222 0000 Now, the 'd0' codes are the activators. the one on top is the R button, and the one on bottom is the L button. The '80' codes are 8-bit gun code. When you push R button you get the gun and when you push the L you loss the gun. This type of code can be used for many types of use. Image transformers, Size modifiers, Cut scenes, level modifiers, health and status modifiers, items modifiers... the list goes on and on. One more thing. Activators come in 3 basic types. Odd or Normal type 1, even or Normal type 2 for the 8 bit type, and even or dual for the 16 bit type. In an odd 8 bit type the activator will always have the 8th digit as odd, where it will have the 8th digit even for an even value. All 16 bit activators are even by definition simply by inspection that any two odd 8 bit values create a even number. The only difference in a 16 bit activator is the 2nd digit will be a "1", e.g., D1012346. A complete list of quantifiers concludes this section on activators. Quantity Digits Button Pressed to Activate 00 No Buttons 01 Right Directional Pad 02 Left Directional Pad 04 Down Directional Pad 08 Up Directional Pad 10 Start Button 20 Z Button 40 B Button 80 A Button Multi Buttons To use any combination of buttons, like, press Right Directional and Z to enable the codes. Just add the two digits up for Right Directional and Z. 01 plus 21 equal 21, so 21 would enable the codes when you push Right Directional and Z on the Controller 1 Normal Activator 2 Quantity Digits Quantity Digits Button Pressed to Activate 00 No Buttons 01 C Right Button 02 C Left Button 04 C Down Button 08 C Up Button 10 R Button 20 L Button Debug Menus- This is NOT easy at all. You will need to search through MANY, MANY codes if you have no base to go on. If you are looking for a debug menu that is already known, just take a readout with the menu NOT activated then the second with it activated choose "greater than". The quantifiers should read "0000" & "0001". That wasn't so bad was it? Now it's time to hack the Debug Menus that have never been seen before! To pull this off, you must start playing the game and do a few million "equal to" searches. You will see MANY codes that have the values as "0000". Well, ONE off those "0000" codes MIGHT be a debug menu. That is, if there is a menu in the game, IN THAT SECTION OF THE GAME. This must be the hardest code there is to hack. Are you up to the challenge? Cut-Scene Modifiers- (Submitted by SubDrag) -Press the freeze button while a cut-scene is playing and start an Unknown Value search. -Play the same cut-scene, do an "equal-to" search. -Play a different cut-scene, search for "different-to" values. -THROW OUT ALL CODES that have value "FF"... Look for everything else, turn all codes that are nor "FF" on(some of them at a time). Play a cut-scene, if you play the same cut-scene no matter where you are, turn off a few codes(WRITE THEM DOWN), until you get the activate codes that do not play the same cut scene. Eliminate those codes. -Turn on one code at a time(that you've written down) until the cut-scene never changes. OK, now just play all the cut-scenes, press freeze button, write down digits, repeat until you get all the cut-scenes... If you have been through all cut-scenes and notice missing digits, try those missing digits in your new GameShark code. Sometimes the game will freeze with the missing digits, but you may find a hidden, or 'unfinished' cut-scene. Cut-Scene Modifiers - Code Generator and Memory Editor Method (submitted by Macrox) - Press the GS button while the opening cut scene of game is playing. - Do an unknown search. - Wait till next cut scene and do greater than search - Restart the game. Wait for opening cut scene. Do a less than search. - Again wait until next cut scene and do greater than search. - Wait for another new cut scene and do another greater than search. You may have to do this for quite some time to get the possibilities down. If you feel you are not getting anywhere try the following. - At the opening cut scene do a Known search of 0 or 1. Make an assumption. - Wait until the next cut scene and search for values equal to 1 or 2 depending what you choose the step before this. - Restart game and wait for opening cut scene. Do known search for 0 or 1. - Again wait for next cut scene and do a search for 1 or 2. Level Modifiers and Cut Scene Modifiers: Now for my secret. Many games are programmed where the level modifier is addressed close to the cut scene modifier. This is how Castlevania and Castlevania LOD level and cut scene modifiers were hacked. - Start game and take initial unknown search on opening level. - Either wait for interlevel or new level and take greater than search. - Wait for next interlevel or new level and again take a greater than search. - Play that level awhile and take an equal to search. - Restart the game and take less than search on opening level. - Codes should be dropping in number of possibilities now. - Once you get the codes possibilities down to 20 or so write them down. - Start the memory editor and look for the codes you have on your list. The codes you have should have values no greater than 3 or 4. - Try changing the code value in the memory editor to something smaller or larger. For instance, if the value is 3 try changing it to 6. This should take you to a different level. Once it works you have the level modifier and interlevel modifier. Now that you have the level modifier you can find the cut scene modifier with the memory editor by inspection. Inspection means looking around by going up and down the address screen while a cut scene is playing for that level. Since most new levels run a cut scene this makes things easier. You should find the cut scene modifier rather quickly. Try changing the value after the current cut scene is done. WARNING! As I have often stated when submitting cut scene codes: Running cut scenes out of their natural location or level might cause the game to freeze or do weird things like have your character fall into empty space once the game resumes. I will say more about the memory editor again later. Moon Jump codes- GLEE method Be sure that you have an activator/joker code before you begin. 1) Start the game, while your character is ON THE GROUND, push the freeze button and start a 16-bit unknown search. 2) Move you character to a different location. With character on the ground, push the freeze button search for equal-to values. 3) Repeat above steps a couple more times. 4) Push the jump button(if you have no jump button, fall off of something really high). While you character is in the air, falling, push the freeze button and search for greater-than values. 5) When you character lands, and is on the ground, push the freeze button and search for less than values. 6) Repeat from step one until you narrow down the possibilities. 7) To test the codes available as a moon jump code, jump up in the air and push the freeze button while the character is going up(if you have no jump button, fall off of something really high, as your character falls, push the freeze button). 8) View possibilities. Disregard any codes with value "0". Activate all possible codes(you should have less than five before doing this). If your game doesn't have a jump button and you had to fall, activate all codes and change the values to "0". 9) Return to the game, If you character continues to go up(or is not falling, but is in the air), then one of those codes is the Moon Jump. 10) Test codes individually. When you have the one you want, find the best digits for it by making it a few numbers lower, or higher.(for the fallers, Check to see if the code has value of around "Cxxx" when falling. If so, use a value of around "4xxx". 11) A value too high will cause the character to fly into the sky too fast and may cause the game to freeze. A value too low will cause the character to rise unnoticeably slow. 12) To finish the code- Put an activator in front of the code, set the activator digits to a button you would like. Now test the code, hold the button you set it for, if your character doesn't move, but you have the right code, push the jump button or fall off of something while holding your Moon Jump button. The character should rise! 13) Skip these last steps if your code works with out falling off of something. 14) Try setting the activator to the jump button, this may help. 15) If it doesn't work, or you have no jump button, you need to find out what code/s tell the game that the character is in the air. These codes are REALLY tricky. 16) You'll need to Start an unknown value search while stationary, then one stationary, elsewhere(perform equal-to search). then fall from something and do a different-to search. Land, do different-to. move to another place, equal-to. 17) You get the idea. When you find the code that instructs that the character is in the air, use it on the Moon Jump code you made before, and put that on an activator as well. 18) Later we will show you how to use the memory editor to hasten the finding of the moon jump code and testing it. Which ever way you prefer always remember GLEE - , Greater, Less than, Equal, Equal. Good Luck!! Size Modifiers - This type of code can be considered moderate to hard to hack depending on whether or not the object in question normally changes size, e.g., flattens, or whether the object in question normally stays a constant size, e.g., gates, trees, rocks, doors etc. The former description would be intermediate difficult to hack while the latter hard to hard. Let us break up the two types of difficulty: Objects can normally change shape: - Start the game and identify the object you want to hack a size mod for. - Do an unknown search - Move around the screen, and even change the area you are in if possible. - Do an equal to search to unload a lot of junk codes from the search. - Now do whatever you have to do to get the object to normally change shape. Get hit, fall, flattened or flatten, squeeze...you get the idea. - Before the object regains it normal shape do a less than search. - Once the object regains it normal shape, take a greater than search. - Repeat this several times for whatever time it takes to get the codes down reasonable number. Inspect the possibilities and look for those codes that have quantifiers (in hex base) in the range of 3C00 - 4200, which is the typical values used in N64 and PSX games. Another big hint is to look for groups of 3 codes close to each other and having close to if not the same quantifiers. The reason this works is simple. The N64 and PSX are using 3D objects, hence you need 3 codes, one for each dimension. Objects that do not normally change shape: This type of code is harder than above to hack. You have very little to go on regarding using the code generator (search engine) with the Game Shark alone. We will also in conjunction with the PC hacking utilities use the memory editor further aid and organize our search. In fact our example will show how using the memory editor is a very powerful tool to use and will be our second example in using the memory editor to hack a code. - Start your PC and start the hacking utilities. Insert the Game shark and game into N64 attached the cable. Turn the N64 on and do a detect on your PC. - Start the game and identify the object you want to hack a size mod for. We will use an example from Castlevania and Castlevania LOD for this. - We have identified we want to hack a size mod for Cornell the Werewolf. (We will be pleasantly surprised to find this will pan out for the other characters as well later.) - Ok. Now. We already told you that N64 usually uses several types of values for size variables in their games. Typical values of 3F80 and 3C00 or 3DCC are not uncommon to see. - Making an assumption that the value is one of the above may or may not pan out for the hacker. Patience, endurance and luck are the rule of the day here. - Using the PC hacking utilities perform a known search for your value. We suggest you break down the search by ranges, such as 800XXXXX - 8010XXXX, then 8010XXXX - 8020XXXX, etc... ALSO use the range value 3C00 - 4200. Doing this will shorten your search time and minimize guess work. - By inspection, look over the possibilities and observe is you see the group of 3 we mentioned before. If the results are not too large you might want to try changing 1 of 3 codes you see on your list. Observe if the object on the screen has changed by doing this. Using the process of elimination you will either exhaust your list or hit pay dirt. No pay dirt? Perform another search but change the address range in the search. - Again, by inspection check for the group of 3. - Eventually, you will find the code. NOW, the question is this, Is this code valid for any level in the game? If not you will have to repeat this process for each and every level and interlevel too perhaps. Knowing whether a constant offset exists for your game is VERY helpful and will save you tons of work. We discovered that we did not have constant offsets. So our search routine took us quite a while in a monotony that would have quite easily discouraged a beginner hacker. That is why we stress patience and endurance so much. Anything worth while is worth work to coin a phrase. - Luck was with us in some regard doing this hack. We found that even though the size moderator code changed for our character for each level and interlevel...it was in fact the same value for all the other characters in the game as well. We only wish we had such luck hacking with moon jumps as they were different for all level/interlevels and characters as well. - Finally, there is one more secret we would like to share. We have often noticed that size modifiers are usually close to location modifiers. Location modifiers being the spatial coordinates the object has while having its own size coordinates or modifier. This being the case one could hack first the location modifier for an object and once knowing that use the memory editor to inspect "look around" at nearby addresses for other groups of 3. Those without access to a PC or use of the hacking utilities can none-the-less still carry out the search but should be warned that this will usually be a rather longer process and might not yield expected results. Many hackers that use the memory editor have found many an unexpected code by simply looking around for "patterns" such as groupings of 3 for size mods, location mods etc. The memory editor has been very useful to inspect addresses close to known codes to see if that code could be further enhanced or whether a new code could be found nearby. We encourage the beginner to not give up in frustration but understand the hacking is not always going to hit pay dirt each time you search. Indeed, you will learn to appreciate the workings of game programming and find as time passes you will "know" the game code as it you wrote it yourself. A feeling for the game is a valuable but truly subjective experience for any hacker. How do I use the Memory Editor? (Submitted by Kamek) The most common question I see on the hacking boards is, "How do I hack with the memory editor?" I'm not the least bit surprised -- when you enter the Memory Editor, it looks like some kind of programmer's screen. First off, let me explain the big myth about the Memory Editor. Some people think that just by doing a text search, they can unlock special areas in the game. THIS IS NOT TRUE! The Memory Editor just doesn't work that way. Suppose you loaded up Zelda and searched for "Master Sword". You probably wouldn't find it, even though the Master Sword is in the game. A text search is just that -- a text search. Some games encode their text, so you might not always be able to come up with results in the text search. HOWEVER, you CAN use the Memory Editor to possibly unlock extra levels, characters, and other stuff. I'll explain more about that later. Here is what the Memory Editor CAN do: * You can use the Memory Editor to unlock game secrets that are accessible. If you have unlocked a certain character, then you can use an unknown search to find the memory address that tells the game you have that character. By changing nearby values, you can attempt to convince the game that you've found other characters that you haven't really found. BUT, you must have a memory address to start from. Plus, the character MUST be accessible. You probably won't be able to play as the Magikoopa in Mario Kart 64, because he was removed completely from the game. (You can't have a 4-player Grand Prix either, because the game wasn't programmed that way.) * You can use the Memory Editor to find secret passwords. If you know a cheat password for a game, you might be able to find other codes. For example, the cheat "NOYELLOWSTUFF" in Diddy Kong Racing removes all the bananas. If you use the Memory Editor's text search to look for "NOYELLOWSTUFF" in memory, you might find other passwords nearby! * You can use the Memory Editor to find weird stuff. Load up Zelda OOT and open the Memory Editor. Search for the word "light". You'll be amazed at what you find! Solid proof that Zelda 64 was originally designed for the 64DD! Breakdown of the Memory Editor 80010000: 00 00 00 00 00 00 00 00 ........ 80010008: 00 00 00 00 00 00 00 00 ........ 80010010: 00 00 00 00 00 00 00 00 ........ etc.. (Note: On some TV screens, the left and right parts of the Memory Editor are chopped off. Unless your TV has a Horizontal Size knob or an equivalent, there is no way to fix this.) So what is all this mumbo-jumbo? Let's break it down.. 80010000: This first part of the line is the memory address you are viewing. Actually, you can chop off the "80" if you want, and you'll get the real memory address. (The 80 is just for reference) 00 00 00 00 00 00 00 00 These are the values in the memory. If the number on the left was 80010000, then the first value is the value in memory location 80010000, the second value is what's at 80010001, and so on. ........ You won't see dots, they'll probably be blanks, or strange characters. This is only useful when looking for text, and you can ignore it unless you're looking for text. The N64 memory starts at 000000 and goes up to 3FFFFF, for your information. Now, first of all, I would not recommend using the Memory Editor to find codes from scratch. It's practically impossible to find a code from scratch. The Memory Editor isn't really all that useful, but here are some things you can do with it. Suppose you were going to hack a code to get all the characters for Super Smash Brothers. (It's been done, but this is just an example.) Let's say that after several unknown value searches, you find out that 800A4938 0008 gives you Ness. Open up the Memory Editor and go to location 800A4938. You'll get something that looks like this: 800A4900 xx xx xx xx xx xx xx 00 800A4938 08 00 xx xx xx xx xx xx 800A4940 00 00 00 00 00 00 00 00 When searching for "got character" modifiers, common values are usually powers of 2. (2, 4, 8, hex 10, etc.) Since the game just takes the power of 2 out of whatever the value in memory is, you can usually set the value to FF and possibly get more characters. So make sure all codes are off, then change the 08 to FF: 800A4900 xx xx xx xx xx xx xx 00 800A4938 FF 00 xx xx xx xx xx xx 800A4940 00 00 00 00 00 00 00 00 Now, go back to the game and enter the Character Select screen. Wow, you've got Jigglypuff! (If you didn't already have Jigglypuff, and got Ness first, then you play too much SSB!!) Let's try nearby values to get Captain Falcon and Luigi as well. 800A4900 xx xx xx xx xx xx xx 00 800A4938 FF FF xx xx xx xx xx xx 800A4940 00 00 00 00 00 00 00 00 Change the value at 80AA4939 to FF and return to the game. The character select screen will need to be reloaded for the changes to take place, so exit and return. They're all there! Now that is how you find extra characters. Hmm... But what if you change other values? Perhaps you could unlock a certain classic stage of the Mushroom Kingdom. Let's try some fiddling around in the memory editor. 800A4900 FF FF FF FF FF FF FF FF 800A4938 FF FF FF FF FF FF FF FF 800A4940 FF FF FF FF FF FF FF FF Change them ALL to FF. This way, you'll know that if you find something, one of those values unlocks it! Quit the Memory Editor and check out other areas of the game. Go to Options -- the Sound Test is there! One of the values you changed is definately a modifier to get the Sound Test! Now, go back to the Memory Editor, and change everything back to 00. Then, start from the Ness/Jigglypuff Modifier and work your way backwards, changing each 00 to FF and reloading the options screen to see if you got the Sound Test. Or, you could start at 800A4939 and go upward. However, it just so happens that the Sound Test, Item Switch, and Mushroom Kingdom modifier is right before the Ness/Jigglypuff modifier! 800A4900 00 00 00 00 00 00 00 FF 800A4938 08 00 00 00 00 00 00 00 800A4940 00 00 00 00 00 00 00 00 Congratulations! You hacked your first Memory Editor code! What else can the Memory Editor do? I'll explain how I found the Saffron City Pokemon Anti-Modifier and other codes. I was playing with the Yoshi's Island "Stay on cloud forever" code on one day. I forgot and left it on, then played a game at Sector Z. Suddenly, the game froze. Somehow, the Yoshi cloud modifier was causing something to happen in Sector Z! Not all game freezes are bad -- sometimes it means you've stumbled upon something big!! I wrote down the cloud modifier location (80131400 region), restarted without the Yoshi cloud code, then watched a CPU battle at Sector Z, going into the Memory Editor every now and then. Values in the Memory Editor changed as the Arwing entered and left the arena. I couldn't find any pattern, so I tried poking around that same area during a battle at Saffron City. That's when I noticed the timer. Every time I went into the memory editor, there was this one memory location that kept decreasing. Then, when a Pokemon came out, it suddenly jumped to a higher value, then started over again. I found the Pokemon Timer! To test my theory, I changed the memory value at 13140E to 00 01, then resumed the game. A Pokemon came out! You might not be as lucky when looking for codes, but if a code for a certain stage freezes the game on another stage, check out that area in the Memory Editor. You might find something good, or you might not. It all depends on how the game is programmed. If you remember only one thing from this document, let it be that the Memory Editor is not magic. The magic is in you, and with some skill and a little bit of luck, you may stumble upon some great codes! In summary: * You can only unlock areas that were left in the game. * Things that were either partially or completely deleted from the source code of the game probably can't be accessed. * You can quickly find neighboring codes to unlock more characters than what you searched for in the Code Generator. * You can find cheat codes, on some games. One final warning. You must be careful with the Memory Editor. It's a ticking time bomb in some cases. If you put the wrong value in the wrong memory location, you could end up freezing up your game. In other cases, you might accidentally overwrite part of your game's SRAM and either lose saved games, or ruin the cart. But usually, if you stick to the areas of memory you find using the Code Generator, you won't have any problems. Happy hacking! ------------------------------------------------------------- How do I use the Text Editor? (Submitted by Sutaz) I shall use the game Mortal Kombat 4 for an example. I am playing with the fighter Fujin. When I win a round, it says on the screen "Fujin Wins". Well, what if I want it to say "Sutaz Wins"? Easy. Press the GS button to get to the in-game menu. Choose memory editor. Press A to get the search menu. Choose Text Search. Type in the name Fujin. Press search. We come upon the first set of digits that spell the word Fujin but this text is in his biography screen. We don't want to alter that text now, we want the "Fujin Wins" text. So tap A again to continue searching for Fujin text. After 2 more searches, we come upon the group texts for all the characters that say "x person wins". Looking at the right of the screen and search for the term "Fujin Wins". Now we look to the left of the screen and see the location code for "Fujin Wins" which is 8004C0E8. In the middle of the screen, we see a set of 8 airs of numbers. What are these? ASCII digits. These are the numerical code for the letters in the text. There are 8 pairs per line of code. So, the line for "Fujin Wins" looks like this: 8004C0E8 - 46 75 6A 69 6E 20 57 69 8004C0F0 - 6E 73 46=F 75=U 6A=J 69=I 6E=N 20=(space) 57=W 69=I 6E=N 73=S So, with the text editor, just look at the ASCII digit menu and choose the numbers to replace Fujin with Sutaz. Press Up-C or Down-C to cycle through the digits. With the text editor, the new phrase "Sutaz Wins" would look like this now: 8004C0E8 - 73 75 74 41 7A 20 57 69 8004C0F0 - 6E 73 73=S 75=U 74=T 41=A 7A=Z 20=(space) 57=W 69=I 6E=N 73=S That would be the line to change the NS if you wanted. Now how to put this in your GameShark. Each line of code ends in a string numbering by 8's; 0,1,2,3,4,5,6,7 or 8,9,A,B,C,D,E,F. Each letter in the text "Fujin Wins" has its own separate code. Example; To put "Sutaz Wins" as a code in your GameShark to replace "Fujin Wins": 8004C0E8 0073 = S 8004C0E9 0075 = U 8004C0EA 0074 = T 8004C0EB 0041 = A 8004C0EC 007A = Z No need to enter the blank space for this example, or the term "Wins". But let's say your name is longer than 5 digits and you need more space. You got two options; look at the last letter, which in this case is S, and see if there are more "free" or "empty" digits after it. Example: The line of code for the NS in "Fujin Wins" looks like this in the text editor: 8004C0F0 6E 73 00 00 53 68 69 6E You see that you have two slots that are 00 00. Those are "text breaks". 00 or 20 are used to separate text. You could now use the 00 right after the 73 slot to spell a 6 letter word like Macrox. But if you use the second slot 00, you will run into the 53. Look at the text to the right and we see to conserve space, the programmers put another character's Wins text on this same line which is Shinnok. Look at the code above again; 53 68 69 6E are S H I N, obviously for Shinnok. Now if you want to, you could do option 2 for adding more space for bigger words by "bleeding" or running over into Shinnok's text. You could take all of his digits and spell bigger words like Darth Maul Wins. Here is the catch, if you choose to fight with Shinnok, his Wins text will not appear because Fujin has stolen it. Get it? You must turn all excess digits to 20 to create a blank space and you must leave at least one 00 between each character's beginning codes or you will bleed into their text. Here is a table of ASCII - numerals used in the text editor: A = 41/61 B = 42/62 C = 43/63 D = 44/64 E = 45/65 F = 46/66 G = 47/67 H = 48/68 I = 49/69 J = 4A/6A K = 4B/6B L = 4C/6C M = 4D/6D N = 4E/6E O = 4F/6F P = 50/70 Q = 51/71 R = 52/72 S = 53/73 T = 54/74 U = 55/75 V = 56/76 W = 57/77 X = 58/78 Y = 59/79 Z = 5A/7A 0 = 30 1 = 31 2 = 32 3 = 33 4 = 34 5 = 35 6 = 36 7 = 37 8 = 38 9 = 39 Other Symbols: @ = 40 " = 22 # = 23 $ = 24 % = 25 & = 26 ' = 27 ( = 28 * = 2A + = 2B , = 2C - = 2D . = 2E / = 2F : = 3A ; = 3B = = 3D ? = EF [ = 5B \ = 5C -------------------------------------------------------------------------- How to hack enabler codes: (Used with special permission of Code Master) Information That Is Needed To Know Before Tackling This Code ASM - aka Assembly Language knowledge is good to know, because these codes that are being written are in fact ASM codes. Well, let's cut to the chase, what could Nintendo possibly be doing to cause a problem with the Cheat Device. Not only does it disable the Code Generator's Button to go to the In-Game Menu, but no codes will work without an Enable Code either. This means that they are doing something that disables how the Cheat Device works. Well, here's some information that not many know, and I have figured this info out over my time with hacking N64. Cheat Device Pro (Version 3.0 & Higher) uses WatchLo & WatchHi Co-Processor break points to know when to activate the codes that have been turned on. Well, obviously, if they changed the WatchLo & WatchHi Co-Processor registers, it would make Cheat Device not be able to set its own 'Break Points' to know when to activate the codes, thus disabling the Cheat Device. The Actual Searching Method!! Well, obviously if you cant use the In-Game Code Generator, then you cant dump memory to the PC, so you ask, how do I search for this? Well, simple, you must have an Illegal Rom copy of the cartridge :P (Well, having a 'Backup' copy of an N64 rom is not illegal in all places if you own the original cartridge, but for the sake of argument we'll just say it is.) In the rom file, you need to get yourself a Dissembler, to disassemble the N64 Rom into R4300i coding. (aka ASM) I recommend either N64PSX.EXE by Nagr, or Niew by Titanik. Both are good, and can be used to help find this command. Well, now what is the command that we are looking for? Obviously, if they want to change a Co-Processor register, you would just set the register equal to something else right? Exactly, there is a Co-Processor opcode called 'mtc0', which means, 'Move To Co-Processor 0'. Well, you need to find an line that is something like, 'mtc0 $v0,$s2' or 'mtc0 $v0,$s3'. In this opcode, the first register can be 'anything', $at, $v0, $v1, $a0, etc.. But the 2nd register must be $s2 or $s3. Why must it be that register? Simple, the opcode is moving a register to the Co-Processor registers, which have different names as well. So, in essence, $s2 is equal to WatchLo, and $s3 is equal to WatchHi. Make sense now? They are setting WatchLo or WatchHi with this 'mtc0 xxx,$s2/$s3' line. It also happens that the Cheat Device needs both WatchLo & WatchHi to function properly. So they can change either WatchLo or WatchHi to make the Cheat Device not set its own break point to turn on codes, or check to see if the GS Button was pressed, etc.. OK, now I know the 'mtc0 xxx,$s2/$s3' line in the ROM, how do I make that into a Cheat Device code? Simple enough. Write down the rom address of the line, lets say the line was 0005A278h. Now you need to go to the rom address 00000008h in your dissembler, this is where the game's 'Entry Point' is stored. For most games, it will have 80000400h at this line. So, take this address you just got from 00000008h in the rom, and add the 0005A278h to it, and your total is 8005A678h and then subtract 1000h from it and the address becomes 80059678h. And to make the Final Enable Code, change the beginning of the code to F1, so you have F1059678h. And last, but not least add 2400 to the end of that and there you have it, F1059678 2400, your final 'Enable Code'. Tips & Tricks Of The Trade Now, there are some key tips to finding this type of code. 1) None really here, unless u make your own program to disassemble the rom yourself and check for the 'mtc0 xxx,$s2/$s3' line. If you can and do this, it becomes very simple to make an Enable Code. There you have it!! The first EVER N64 Enable Code FAQ on how to make them. Note that the codes will only work on Cheat Device 3.0 Or Higher because of the F1 at the beginning of the code means that the Cheat Device activates before the game even starts to run. ------------------------------------------------------------------ How to hack Walk through walls (WTWs): (Used by special permission from Code Master) Information That Is Needed To Know Before Tackling This Code While your character is walking, or while they are not walking, there is a value in RAM that tells the CPU whether or not you are able to walk at all. This value is used to tell the CPU whether or not to move your character on the screen. I call it the 'Collision Detection Address', because basically, the game checked to see if there was any structures or walls that you would 'collide' with and stores a value to the Collision Detection Address based on if there was or wasn't an object to collide with in the direction you are trying to go. The value of this address could be almost any- thing the developer wants to use. Most common is 0 (Cant Walk), and 1 (Can Walk). Although with the release of this FAQ, developers are going to get smarter and use different values.. :( But oh well, we can deal with it. Now that you know this info, on to the actual searching methods. The Actual Searching Method!! There are 2 ways to go about this, you can do the 'Known' value search method. Or the 'Unknown' value search method. 1) The 'Known' Value Search Method: This method, you are assuming the value is 0 for when you cant walk, and 1 when you can walk. Now, here's the critical part. This value changes based on whether or not you are moving, or if you are not moving. So, while you character is currently walking in a certain direction. (Character HAS to be moving!) Do a search for values Equal to 1. After that has finished the game will restart, keep walking in the same direction until you run into an object/wall. While holding down the direction the object is. (character will be moving their legs, but not going anywhere) Do a search for values Equal to 0. You should have a pretty good size of possibilities. So you do some more searches. Walk to the opposite direction that you are facing. While your character is 'Walking', do a search for values Equal to 1. Walk till you run into an object/wall, and while holding the direction of the object/wall, do a search for values Equal to 0. Then walk in the opposite direction till you run into an object/wall, do a search for values Equal to 0. (Why 0, because the value should be the same as before, meaning you couldn't walk then, and you cant walk now.) Keep repeating these methods, until you get a respectable amount of possibilities to search for. Once you start going thru the possibilities, your Walk Thru Walls code, will be the address and the last 4 digits of 0001. And once you put it in shark, it should work. 2) The 'Unknown' Value Search Method: This method is for use with games that Method 1 did not work in. This method, you don't assume what the values are, you just know that they are different based on whether you can walk, or can not walk. Same as before, do an Initial search when you are currently walking. (Character HAS to be moving!) Then when you run into an object/wall, do a different to search. Then walk in the opposite direction, do a different to search. Walk till you hit an object/wall, do another different to search. Then walk back in the opposite direction till you hit an object/wall, do an equal to search. (Because the value should be the same as before, meaning you couldn't walk then, and you cant walk now.) the previous search you took where you couldn't walk.) Keep repeating these methods, until you get a respectable amount of possibilities to search for. Once you start going thru the possibilities, your Walk Thru Walls code, will be the address and the last 4 digits will be the value the code was when you were walking. And once you put it in shark, it should work. 3D Game Specification Due to the nature of this method, it may or may not be possible to do with a 3D game. The logic behind it all is this: In a 2D game, you can move at the most in 4 directions, up/down/left/right. In a 3D game, you can move in 360 Degrees, so the developer has to cope with this as well, and probably will use different routines. The above method should still work, provided that when you are running into an object/wall, you are running into it 'Head On'. 'Head On' means, that while holding the direction of the object/ wall, you're character doesn't turn, face, or go in any other direction. And in all reality, there's not many places you can do this. Sometimes, you can just hold 'Up' when you are directly facing a wall, and sometimes you cant. When you cant, I suggest trying a corner in a room. :) Tips & Tricks Of The Trade Now, there are some key tips to finding this type of code. 1) You found the code that lets you walk thru walls, but only in left/right or up/down directions!! DOH!!! Here's what you need to do. Make a Joker Code for the game, and lets just say the code you made works in the 'Right' direction. Lets say, the Joker Code for this game was a normal Joker Code and the code was. D0123456 ???? And the Walk Thru Walls code you made only worked in the 'Left/Right' directions. If you put in these codes: D0123456 2000 80XXXXXX XXXX <<< Walk Thru Walls Code You Made Goes Here. D0123456 8000 80XXXXXX XXXX <<< Walk Thru Walls Code You Made Goes Here. It will now work in the 'Left/Right' directions, with no lock ups. And now, you need to find out the Walk Thru Walls code for the 'Up/Down' directions. So, repeat the searching method used to find the 'Left/Right' code, but this time, walk 'Up' and 'Down'. 2) You cant get it down to a lower amount of possibilities. What I would do, is walk in one direction till I hit an object/wall, and do the appropriate search, then walk in the other direction till I hit an object/wall and do an Equal to search. Or even do an Equal to Search while your character is walking in opposite directions. Also, another key way to reduce possibilities, is to do an equal to search in different parts of the map. I.E. If you walked 'Right' till you hit an object/wall, did the appropriate search. Walk up some more on the map, and walk 'Right' till you hit an object/wall up there, and do an Equal to search. (This helps quite a bit usually. Try and make it not be part of the same object/wall though. If you are walking into a house, walk around in the town till you get to a different house, etc..) 3) The above 2 methods didn't work. This means the game probably changes the value based on what direction you are heading. So, you need to use search for it in the same direction only. Like so: Initial search while walking 'Right', do an Initial search. Walk till you hit an object/wall, while holding 'Right', do a Different to search. Then walk to the left, and then back to the right till you hit an object/wall, while holding 'Right', do an Equal to search. Then walk to the left, and then back to the right, and while walking 'Right', do a Different to search. Keep repeating these steps only in the 'Right' direction. 4) Last but not least, the code you found only works in Towns, or only works in the Overworld Map. Plain and simple almost ALL Walk Thru Walls codes will be like this. You just have to search again in the area where the code doesn't work. III Online code porter The authors would like to thank Crocc for permission to use the code porter found at Game Shark Zone http://thunder.prohosting.com/~gsz/cgi-bin/port/port.html ----------------------------------------------- 4) GameShark / GameShark Pro FAQ ----------------------------------------------- Many parts of this text originally appeared on GameShark Central. Revised 5-6-00 What is a GameShark? A GameShark is a cheating and game enhancement device made by Datel. Interact is a North American distributor for Datel. Interact is a subsidiary of Recoton Inc. It is similar to the device called a Game Genie made by Galoob Toys, that were made for the NES, SNES, Genesis, and GameBoy systems several years ago. It can be used to cheat any game, e.g. allows players to do anything from being invincible to having infinite lives to having unlimited amounts of money. The GameShark can also be used to do some cool tricks, such as alter the color of objects such as your gun in GoldenEye 007, or even give you all of the weapons listed under the "All Guns" cheat which would normally be unavailable in Multi-Player! Codes of this nature although are not cheating the game can be worth while as they make the game more fun and allow the player to actually, temporarily alter the game and in effect make different variation of the game as originally created. The first thing that you learn about the GameShark is that it can open many interesting possibilities with games. It is also called a Pro Action Replay in the United Kingdom and GameBuster in Germany. What is a GameShark Pro? The GameShark Pro is a new device made by InterAct that can do what its' predecessor the GameShark can do, and also has the capability to allow you to create your own GameShark codes by using the built in code generator. It comes with a bonus 'Hack Like A Pro' tutorial video. GameShark Pro for PSX Some of the features are: Built-in Code Generator: allows you to create your own GameShark codes. Memory Editor: allows you to view the memory of your game and search for text. V-Mem: Virtual Memory holds up to 120 blocks worth of game save data. Explorer: It can play game soundtracks and view hidden Full Motion Video(FMV) sequences. You can store GameShark codes on a standard PlayStation Memory Card. It comes with a bonus 'Hack Like A Pro' tutorial video. GameShark Pro For N64 Some of the features: Built-in Code Generator: allows you to create your own GameShark codes. Memory Editor: allows you to view the memory of your game and search for text. Memory Card Manager: can copy game saves from a memory card or a N64 game cartridge. You can store GameShark codes on a standard N64 Memory Card. It comes with a bonus 'Hack Like A Pro' tutorial video. What are the differences between the Game Genie, GameShark, GameShark Pro & Pro Action Replay? The Game Genie was manufactured by Galoob, the GameShark is manufactured by InterAct, and the Pro Action Replay is manufactured by Datel. You had to keep inputting codes into the Game Genie every time you wish to use them and the number of codes you may input was very limited. Both the Pro Action Replay, the GameShark and the GameShark Pro have a battery-backup that can save codes. One major difference between the three device is evident in that only the GameShark Pro has a code generator that can search for codes in the games RAM, whereas the others cannot. Are these products authorized by Nintendo? The GameShark, GameShark Pro and Pro Action Replay aren't authorized, endorsed, or supported by Nintendo. Special thanks goes to Avid Gamer for telling me that Nintendo filed many lawsuits against Galoob trying to prevent the Game Genie from being marketed in North America. Galoob did win the court case and did go on to selling the Nintendo version. However, a interesting fact is that Sega did not oppose the Game Genie, and instead even gave it a official license. Where can I get a GameShark? or GameShark PRO? In the U.S. try stores such as Software Etc, Babbages, and Electronics Boutique. In Canada I've only been able to find them at Electronics Boutique. Expect to pay about $39.99 to 49.95 U.S., and that roughly translates to $69.99 Cdn. U.K. gamers can get a Pro Action Replay from Datel. I have a GameShark or GameShark Pro, now what do I do? Place your game cartridge onto the GameShark's top. You can easily tell which is the top by noticing if the GameShark sticker on the GameShark is readable. Then insert your GameShark (that has the cartridge placed onto it) into your Nintendo 64 system or PSX system and turn the console power on. Help! My GameShark or GameShark Pro isn't working now! There are a few reasons why your GameShark didn't work. Either you didn't follow the procedure listed, or you have a placed a game into your N64 that requires a Key Code to boot the game. Also you may not have pushed the GameShark (or cartridge) down far enough for it to fit in snugly. There is a very slight possibility that your GameShark is defective. Also beware not to switch the power off and on quickly as the GameShark might freeze on the title screen, with the LED Indicator displaying an 8 all of the time. If this should occur, please try the following as it may help reset the GameShark. First make sure the console is off. Then remove the GameShark from the console and then remove the game from the GameShark. Next insert the game into the GameShark and then the GameShark into the console. Turn the console power on and the GameShark should again begin its' boot up and count down. If the GameShark still does not boot try the following: First make sure the console is off. Then remove the GameShark from the console and then remove the game from the GameShark. Now gently wipe the edge connector of both the GameShark and the game cart with a soft cloth to dissipate any static charge there. Next insert the game into the GameShark and then the GameShark into the console. Turn the console power on and the GameShark should again begin its' boot up and count down. If the GameShark still does not boot it could mean that it is waiting for a game with a required matching key code to be inserted. Review your situation and act accordingly. If this is the first time you are using a new GameShark I would seriously advise returning it to the store where it was bought for an exchange for a new GameShark. What is the LED Indicator? The LED Indicator is merely the number inside the small glass piece on the front of your GameShark that counts down upon boot-up. What are Key Codes? Certain games such as Diddy Kong Racing, Yoshi's Story, 1080 Snowboarding, F-Zero X and The Legend of Zelda: The Ocarina of Time cannot be used normally like Mario 64 can with your GameShark. They have chips to block out illegal copying of the game, and also, unfortunately, prevents the GameShark from accessing them. You require a version 1.08 of the GameShark or higher (depending on which game) to use your GameShark with these games. Games such as The Legend of Zelda: The Ocarina of Time must be used with a GameShark 2.2 or higher due to the 32 bit write change of it's key code. There is a new 32-bit input on the key codes in GameShark V2.2+, this new 'block' is the essential instruction code that tells the GameShark, "this instruction is '80 20 10 00'!" When using any of the "original key codes", the instruction will be "80 20 10 00". When using the Zelda key code, the instruction will be "80 19 00 00". Since you cannot change the instruction code on GS 2.1 and lower, there is no way to add the Zelda key code(on these GameSharks, the instruction is always '80 20 10 00'). InterAct is nice enough to replace older GameSharks up to version 2.1 for a 2.21 for free. They will not however allow upgrades to a GS Pro 3.0. GameShark owners are responsible for shipping and handling to InterAct. InterAct covers the return shipment costs. Gameshark Version 1.08 Diddy Kong Racing 1080° Snowboarding Kobe Bryant In NBA Courtside Banjo-Kazooie MLB Featuring Ken Griffey Jr. Ken Griffey Jr.'s Slugfest: 4E F8 4D D6 0A B3 D6 0A B8 Yoshi's Story Cruis'n World F-Zero X: Unknown Gameshark Version 1.09 Diddy Kong Racing 1080° Snowboarding Kobe Bryant In NBA Courtside Banjo-Kazooie MLB Featuring Ken Griffey Jr. Ken Griffey Jr.'s Slugfest: 59 A6 31 F5 13 B3 DA 50 FA Yoshi's Story Cruis'n World F-Zero X: 05 63 14 98 D5 E4 CF CD 1A Gameshark Version 2.00 Super Mario 64 & Others: 6334 F161 A72C 201C 2E Diddy Kong Racing 1080° Snowboarding Kobe Bryant In NBA Courtside Banjo-Kazooie MLB Featuring Ken Griffey Jr. Ken Griffey Jr.'s Slugfest: 50 F2 49 08 7C 07 EE 6C 25 Yoshi's Story Cruis'n World F-Zero X: 8D 9A 8C DA F5 F2 B6 07 92 Gameshark Version 2.10 Super Mario 64 & Others: EB 03 0C 2C D2 3A AF C3 CE Diddy Kong Racing 1080° Snowboarding Kobe Bryant In NBA Courtside Banjo-Kazooie MLB Featuring Ken Griffey Jr. Ken Griffey Jr.'s Slugfest: 78 69 4F BD AC EF E9 DD 79 Yoshi's Story Cruis'n World F-Zero X: 85 A2 B3 44 44 4C F1 C1 E4 Gameshark Version 2.2 Super Mario 64 & Others: 3E 75 22 68 00 99 BE BE F6 - 80 20 10 00 Diddy Kong Racing 1080° Snowboarding Kobe Bryant In NBA Courtside Banjo-Kazooie MLB Featuring Ken Griffey Jr. Ken Griffey Jr.'s Slugfest: 2C 48 29 16 D4 3E 90 61 47 - 80 20 10 00 Yoshi's Story Cruis'n World F-Zero X: 94 CB D4 8E 52 9A 30 89 E7 - 80 20 10 00 The Legend of Zelda: Ocarina of Time: 14 A8 3B CA CD F8 11 BE 50 - 80 19 00 00 Gameshark Pro Version 3.0 Super Mario 64 & Others: 70 14 FF AB 1A 91 14 49 B4 - 80 18 00 00 Diddy Kong Racing 1080° Snowboarding Kobe Bryant In NBA Courtside Banjo-Kazooie MLB Featuring Ken Griffey Jr. Ken Griffey Jr.'s Slugfest Super Smash Bros.: 5B E5 5F CE 93 89 D7 11 9F - 80 20 00 00 Yoshi's Story Cruis'n World F-Zero X: 33 31 66 BD 04 ED E3 62 DF - 80 20 04 00 The Legend of Zelda: Ocarina of Time: 56 72 19 E1 9D 62 82 28 C9 - 80 19 00 00 Gameshark Pro Version 3.2 mario world 64 & others AF FA 90 67 C2 49 22 D0 12 80 18 00 00 DIDDY,1080,BANJO,GRIFFY BD B8 AF 1A E9 C2 8B 3B 30 80 20 10 00 YOSHIS,F-ZERO,C'WORLD B6 F4 6A E1 8B 0F C8 AB 67 80 20 04 00 ZELDA 85 87 29 C5 3A 85 F7 50 F0 80 19 00 0 Gameshark Pro Version 3.3 mario world 64 & others 8F 89 AB A0 C3 4C 26 10 A4 80 18 00 00 DIDDY,1080,BANJO,GRIFFY 95 AC 21 BE 58 B0 4E F6 A8 80 20 10 00 YOSHIS,F-ZERO,C'WORLD C4 6F 1B C2 6C 6C 1F 67 1D 80 20 04 00 ZELDA A9 24 53 52 5F 73 77 37 7D 80 19 00 00 --------------------------------------------------- What's the GS Button? It's the button on the front of the GameShark. It is fairly small, and makes an amusing clicking sound. It is used for one-time only codes, and injects the code into the RAM only once, instead of having a constant effect. For Pro Action Replay owners it is called the "PAR button". How do I add new codes? Please refer to the owners manual. Can I make codes? Yes, you most certainly can! Refer to the "How-to's" above. What do these 'XXX' and so on represent? You either place your own digits there (for 'XX' or 'XXX') or you have to insert the coding that represents a certain level for that game. If it is 'XXXX' then it can probably be replaced with some special digits, that accompany that code. Sometimes it can represent the quantity of the code, and for the GameShark 0 is the lowest amount, while F is the highest. What is a Memory Card Manager? It enables you to view the contents of any memory card up to 1998 blocks in size. You do need a v2.0 or higher GameShark to have this ability. Follow the simple instructions to save, load, and copy between memory cards that are there on your GameShark. You can even copy save games from your game cartridge onto memory cards. What is a SmartCard/Port? The Smart Card Port is a reader/writer slot at the back of the GameShark that will be able to read SmartCards when they are available. InterAct says that in the future the slot will support a range of SmartCards, and will offer features including special game cheats and memory card support. This includes Ram, Rom, and Flashy Rom cards. SmartCard are reported to be only supported in the GameShark for PSX and the GameShark PRO for both the PSX and N64. This function was discontinued on the 3.2+ version of the N64 GS and replaced with the 25 pin parallel connector port. The Dreamcast GS is based on CDX technology and plugs in via the consoles joystick controllers port. How can I get a newer GameShark? InterAct is currently located at InterAct Accessories 10999 McCormick Road, HuntsValley, MD 21031. Or go to www.gameshark.com for up to date info. What is the difference between the GameShark Pro and the SharkLink Trainer? The devices work on the same principle. The major hardware differences between them are: The Shark Link Trainer consisted of a PC Comms link board that was inserted into a ISA slot of your PC for PSX owners and for N64 owners an additional special adapter that was for all intents and purposes a "stand in game shark". This adapter was essential to use for N64 owners as the Game Shark for N64 lacks any parallel connector port as in the PSX version. N64 owners also had to purchase a 4 meg ram expansion pack for their N64 console and replace the standard jumper that comes with it. This memory upgrade was also essential as the N64 lacks sufficient memory to operate the Shark Link alone for storage of found codes and activated codes during use. Custom written software and drivers were then loaded on the PC and then used to perform various searches of the game ram to find a varied assortment of different code addresses depending on what was displayed on the screen and what codes were active in the program at that moment. In essence, the user was taking game ram or memory "snapshots" in order to find what code addresses were increasing, decreasing or remaining the same as the game progress. This allowed the user to "zero in" on any particular code(s) of interest from infinite health to finding the debug menu screen. The user was then allowed to activate these codes immediately for testing and alter the codes as desired and make them active. In addition, the user of the PSX version of the shark link could immediately upload these new codes into their game shark while the N64 version user had to go through the laborious task of inputting these new codes by use of the game controller. Rocket Games Inc., (part of Datel) use to sell the Shark Link. The GS PRO is different in that it no longer requires the PC Comms link card as it has the code generator built right in. It still currently requires the additional memory expansion pack in order to do the maximum code activation allowed per game and it still retains the property of altering codes and making them active. The GS PRO has known and unknown code search capability as well as text search mode to find hidden screens in certain games. Previous shark link users will welcome the familiar screen command environment they have come to know while those new to the code hacking world will come to know a powerful ally they can use to find those codes they always dreamed of. The Game Shark PRO 3.2 is the new Shark Link and Datel and Interact now have software that allows the Game Shark to be connected to your PC. The hacking utilities as it is known, allows a code hacker to use more advanced hacking features and options of the Game Shark. What is required to connect my PC and Game Shark PRO for N64? Materials You Need: -GameShark Pro 3.1 - 3.3 -25 Pin Printer Cable (available at Radio Shack, or any other computer/electronics store. We recommend using IEEE-1284 compliant, high speed parallel cables such as from Belkin. -Computer, with a functioning LPT1 port -N64 Utilities (available for free at 'www.gameshark.com') WARNING! USA GS owners should not download the file from Datel as this version is made for AR PRO owners. The AR PRO works on PAL TV systems only while the GS PRO works on NTSC. Step By Step Procedure: Step 1: Check to see if you have a printer connected to your PC's parallel port. Disconnect the printer from the cable if you do. You need to do this to continue. If you do not have a printer than this connect one end of your new cable to your PC (while off) parallel port, 25 pin female. Connect to www.gameshark.com and get the latest N64 hacking utilities from their web site. Install them on your PC but do not run them yet. Step 2: Boot your PC and get into the PC BIOS screen. This is usually allowed during the first few seconds during boot up and is invoked by pressing some key on your keyboard such as F1. Consult your owners manual for more info. Once in the BIOS screen you should check that you parallel port is using either EPP or ECP, NOT Bi-directional (the Game Shark will not work with this setting). Warning! You many find you can longer communicate with your printer once you reconnect you printer to your PC If your printer required bi-directional communication. If you change the port to ECP or EPP then you should save the settings and reboot. -Step 2: Place the GameShark into your N64 console while off. Now plug a game into the Game shark. Connect the other end of your cable into the back of the Game Shark (25 pin male connector). Turn on the N64, after the short loading time you should be at the GameShark's Main Menu. If you are not, read the GameShark's Manual. -Step 3: Start the N64 Utilities you installed earlier. Go to the Screen that has the 'System Information' info. Click on the 'Detect' button. You should see an affirmative reply it found the console. If you see "console didn't respond, you possibly did not do step 1 and 2 correctly. -Step 4: Assuming you got through to this step ok you can now explore the utilities. The following info is used with permission from james007. -Code Generator: The Code Generator acts a lot like the Code Generator built into the GameShark itself. Using the one on your computer is a lot slower, since the LPT1 port is only a 25kb/sec port. Extra features to look out for are the 'In Range' button, which allows you to search for a value in range of what you specify. The 'Resume Last' button allows you to resume a search incase the game crashed (good for games with Anti-GameShark Chips). The 'Search Range' area allows you to specify where the Code Generator will search in the games RAM. I usually use 80000000 to 80100000, since most codes are in between these two addresses. The 'Search History' area allows you to see the history of what type of searches you did. -Results (Code Tester): This page allows you to test codes you have found using the Code Generator, and to enter in new codes. This area is pretty self-explanatory. -Code List: This page allows you to modify your GameShark codes on your computer. This is far faster than entering them in using your N64 Controller. The first step is to Download your codes onto your computer using the 'Download Codes From Cartridge' area. Select the 'Browse' button to pick a location where you want the codes to go. Then push the 'Download Codes' button to copy them to your computer. Now you can modify them using a text editor like Notepad. When you're ready to upload your new code list, do the following. Go to the 'Code List Compiler' area and push the 'Browse' button. Search for the code list you want to upload. Once found push the 'Compile Codes' button, N64 Utilities will now check the syntax of the code list. If it is good it will say it had no errors. If it found errors it will tell you what line had errors and what the error was. Fix the error before uploading your codes. If you now have no errors, push the 'Upload Codes' button in the 'Upload Codes To Cartridge' area. It will send your code list to your GameShark. You now have to turn off your GameShark so it can load them up properly. -Other Utilities: This page has two useful things. An upgrade place, where you can upgrade your GameShark, and a video capture area, where you can take screenshots of your game. The screenshots are saved as Bitmap files (*.bmp), which is a Windows standard graphic file. The files can be easily converted to other formats with third party programs. The 'Cartridge Upgrade' area allows you to upgrade your GameShark to the latest version. Selecting the Overwrite code lists & settings' option will do just that, when you upgrade, it will overwrite your entire GameShark, including all your codes and settings. A code doesn't work for me for the other levels, what can I do? Certain games have certain "beginning" codes, and certain letters that follow it. For example, all of the Jetpack codes for Shadows of The Empire begin with "801", and then for one of the levels it is soon followed by a "A55" for the Xizor's Palace level. If you wish to use that code for a different level, which doesn't always work for the other levels, then you merely switch those three (or if two) digits with the digits that represent the level that you wish the code in. Sometimes you may need to find a different three-digit code that that specific code needs to work. What games are easy or difficult to hack with a GameShark? Please refer to above document. Have there been any theories made for hacking with a GameShark? Please refer to above document. What does the term "Porting Codes" mean? It means that you are transferring a code from one version of the game to another. This example is from Mortal Combat Trilogy v1.0 & v1.1. The v1.0 Codes- P1 No Energy: 8016984D 0000 P2 No Energy: 80169B21 0000 v1.1 Codes- P2 Automatically Dies: 80169C61 0000 P1 Automatically Dies: 8016998D 0000 Notice how the two versions of the game are the same except for the sixth, seventh, and eighth digits. I find usually that transferring codes from one game to another the sixth digit goes up one 'step' in the code. (E.G. 'C' would become 'D'). Further info is available in this document. See how to hack codes section for online code porter site. How can I tell what version I have of a game? One way at the moment to see what version of a game that you own is by testing all of the known versions of the game that you own with your copy of the game. Depending on which version of codes works, that is the version that you own! With most games you can tell just by looking at the label, not in most cases. There is a part of the label that reads: NUS-006 (USA) NUS-NWGE-USA All games have something like that on the label the first line seems to stay the same from game to game but the "NWGE" is different sometimes. The example above shows v1.0 of the game. Here is what v1.1 looks like: NUS-006 (USA)NUS-NWGE-USA-1 Does the GameShark support Japanese games? Yes, the GameShark can hack foreign games. Can I play Japanese games on the GameShark? Yes, you can. Simply plug the foreign game in and start the game without any codes! PSX Users must do that "swap trick". Is there a Game Shark for the Sega Dream Cast? Datel and Interact will soon release a Game Shark for this console. It will be a CDX version like the PSX CDX GS. The DC GameShark will not have a code generator in its first version as reported to us at the time of this version of the hacking text. This edited version of the GameShark FAQ was made possible by contributions over the last couple of years by these fine people: Jim Reinhart, Avid Gamer, Kong K Rool, ShadowKnight, Gaming Freak, and a special thanks to Ali Yates and Marios(from Datel). A Special Thanks to Bill Kaufman (CodeBoy) for supplying Game Sharks to the Game Shark Central beta test team. Macrox 5. Acknowledgments Many talented people have contributed to this work over time either directly or indirectly. To those people we say thank you for all your contributions to the world of video games and for hacking codes and sharing ideas on how to hack codes. People whom have shared ideas and contributed information for this document: Kong K. Rool (kongkrool@yahoo.com) Macrox (macrox_the_sage@yahoo.com) ShadowKnight (shadowknight007@hotmail.com) Code Master Kamek Freeza Subdrag Viper666(187) Sutaz james007 Gold64007 Stinky613 Crocc Zap2 CodeBoy Savior Charizard Dr. Ian This list goes on and on, we apologize for any omissions of people who gave of their time to advance the art. The authors want to thank everyone at Game Shark Central,Game Shark Zone, Game Shark (Software) Code Creators Club, Gamasutra, Interact and Datel for fruitful discussions. ----------------------------------------------- 6) Legal ----------------------------------------------- This document Copyright © 1999 - 2000 GameShark Central, All content is used with permission by the specific authors. This Document may not be used in any book, magazine, website, or any other form of media without expressed written consent of the authors.