____ ______ ______ THE ______ ______ ____ / \ | ___| | | _____ | ___| |_ _| / \ | |__| | |__ | |__| | \ | |__ | | | |__| \ \ | __| | | | | | | __| | | \ \ _\ \ | | | |__ | / | | | | _\ \ | | | | |___ | | | | | \ | |___ | | | | | \____/ |______| |______| |___|__\ |______| |__| \____/ Of Professional Cheat Device Hacking _____ 0001110101001110010110100011 ..~` a`~~.. 110100000100001000100000101000001 ..~` }100000111000110001110001100011111110 -----` /\/\/\/10100011100110000111001100001110011000 `. \\\ | 00010001001111110010011111100100111111100 ; \/\/\100100111001100001110011000011101100010 .` ___/01000111000110001110001100011100110010 ; ..~~~~```` 11011000100100100101010100100110101001 .` ..`` ; ..`` ; .` .-` .` .-` ,` "The most elaborate, in-depth hacking guide / .. . for Game Cheat Devices, ANYWHERE!" |.-`` `. \ `.| [Originally By: Kong K Rool* and Macrox] with additions by [Tolos, DGenerateKane, HyperHacker] ----------------------------------------------- Table Of Contents ----------------------------------------------- i .................. This Version ii ................. What's New iii ................ Coming Soon iv ................. Dedication v ................. Preface 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? - Code Types, Buttons and all. 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 IV............... GameBoy 3.0 Hacking - by Curly9od V ............... Hacking GameBoy Advance Enable Codes 4 .................. GameShark / GameShark Pro FAQ 5 .................. Acknowledgments 6 .................. Legal ----------------------------------------------- i) This Version ----------------------------------------------- Version Number: 4.00a Release Date: 5-20-2002 Edited by Tolos * = aka Parasyte ----------------------------------------------- ii) What's New ----------------------------------------------- 5-20-02: Tolos assigned new acting editor by macrox. Added sections: Hacking GameBoy Advance enabler codes, and GameBoy Advance code types. Added a tidbit on hacking debug codes. Added a section on hacking GameBoy Advance codes. 11-27-01: Interact Accessories affiliation in legal section removed. Reference to Gameshark removed from work title. The reader is to Infer the term gameshark, codebreaker and xplorer to mean cheat device where it occurs in this work. See legal section for proper credit. 4-21-01: Revised section on N64 and XP code types. DC code types and buttons. Comparison of GameBoy hacking devices and reflashing a GameBoy Shark. More on hacking enabler codes and forcing high and low mode resolution in games. DC code types: CodeBreaker, Xplorer and Gameshark. How to Hack Speed modifiers. Update on Keycodes list and revised FAQ section. 11-11-00: FAQ section updated to include info on reflashing a corrupted GameShark and info on Pelican's new hack device for Game Boy called Code Breaker. Game Boy hacking info courtesy of Curly9od added. 5-6-00: How to hack specific codes section appended. Using the memory 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 / GameShark Pro FAQ. New "How-to" 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 ----------------------------------------------- Hacking Game Boy Advanced codes. Hacking Dreamcast codes - 32 bit code hacking Hacking Gameshark codes for Playstation 2 Hacking GameShark codes for PC games TBA - To be announced topics. ----------------------------------------------- iv) Dedication - by Kong K. Rool ----------------------------------------------- This document, in all its 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 (aka Parasyte) ----------------------------------------------- v) Preface ----------------------------------------------- First off I want to say, Macrox has semi-retired from the hacking scene. That left no one to tend this marvelous document. Then Interact suddenly stopped hosting GSCentral when they learned that their GameBoy Advance encryption code had been cracked, and the people at GSCentral were creating codes that worked with the GameBoy Advance GameShark. After GSCentral came back, we learned we could not use the word GameShark (TM), or have the Hacking Text displayed. So I volunteered to host this document. I hope I can do a good job; as well as Macrox and Parasyte: that is my aim. I also want to thank HyperHacker, DgenerateKane, and macrox for helping me along. Happy hacking, Tolos P.S. The Hacking Text will has been re-instated on GSCentral. A mirror copy of this document will be kept on Tolos? web sites. These only the only officially endorsed sites by macrox on the most up to date versions of the text. macrox 5-30-2002 ----------------------------------------------- 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 ideas 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, Shark Link 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 and corrupt hacking devices. 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.) This technique was and still is widely used. Looking At The Source[Code]*** Hard, but most effective. Worth a shot. This technique requires the reader to have a working knowledge of dissembler programs and is currently beyond the scope of this work. Using Hacking Equipment* - ***(Code Generators; i.e. GS PRO) Another 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. Can be used to get easy to hard code types. 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 Central) to port any code for you. Hence you can make a code before anyone else gets the chance! See FAQ section. Combination Hacking* - *** 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 slight risk of loosing saved data on your GS when turning the system on and off while guessing or modifying codes. ----------------------------------------------- 3) How-to Guide ----------------------------------------------- a) What do I need? You need a Game Platform(N64, PSX, Dreamcast, Game Boy, etc.), you need a game to hack, and you need a GameShark,GameShark PRO or GameShark CDX and/or other hacking devices such as the Blaze Xplorer/Xploder or Pelican CodeBreaker. You will also need other things to hack in other ways such as a hex editor and calculator can do hex math or perhaps an emulator that can capture memory dumps or can do game saves all of which can be analyzed later by some hex editor program. A will to learn, basic math skills, patience, endurance, practice and this using this document are the things you need. b) What do I need to Know? If you've managed to read everything above, then you know about basis of everything you'll need to know about hacking. The remainder is learning to use hacking equipment and the software for it and to master the basics as presented here and then from there to be resolved to try as best you can to hack the harder code types. c) Learn Your ?Shark? and code types 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 This format is called endian. Most Memory ram dumps are in this format. The GB Gameshark rewrites the code to reversed endian format as XXZZYYY. The Pelican CodeBreaker uses unencrypted endian format. The Xploder uses both encrypted and decoded reverse endian formats. "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? N64 CODE TYPES 80 - Default, used for "regular or continuously on" 8-bit codes. 81 - Used for 16-bit codes initializing all four quantity digits, otherwise identical to code type 80. 88 - Default GS Button, Used to activate the code by the GSB. 89 - Same as above, only the code will be activated by GSB(so, you have a 16-bit code when the GSB is pressed). CC ? Enabler code. Disables expansion pack if present. 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. D2 ? 8 Bit different to activator. When the given address is different to the value on this code, activate the following code (NOT compatible with the Xplorer 64). D3 ? GS pro 3.x only. 16 but different to activator. When the given address is different to the value on this code, activate the following code. Not compatible with the Xplorer 64. DD - Enabler code. Disables expansion pack if present 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. 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. Compatible with the XP 64 F1 - Same as above, only this is 16-bit mode. Enabler Code. EE - Enabler code. Used in GS 2.2+ e.g., Legend of Zelda OoT. Disables expansion pack if present. 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. Sets the address in memory where it stores the codes that are currently on. 2A and 3C ? Used by the Xplorer for Enabler, M code (must be on). 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? PLAYSTATION CODE TYPES 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. Xplorer/Xploder Code Types ? Courtesy of Hackman. XPLORER CODE STRUCTURE 1.�� 3-Code 7.� 9-Code (Do-if-False) 2.�� 8-Code 8.� B-Code (Slide Code) 3.�� 4-Code (Slow Motion) 9.� C-Code 4.�� 5-Code (Supercode) 10.� D-Code 5.�� 6-Code (Modcode) 11.� F-Code (Auto Activation) 6.�� 7-Code (Do-if-True) 12.� Joker Command Xplorer Code Structure It seems rather amazing that an Xplorer code, a mere sequence of 12 numbers, accomplishes such stunning results as invulnerability. On the following pages we will describe these ?mysterious? codes in detail -- specifically their structures, types, and functions. This knowledge is not necessary if you only want to occasionally hack a simple cheat. However, in order to rise to the class of the professional hacker in all around abilities this section can not be avoided. It should also be noted here that all codes are described using HEX values and all mathematical computations are done using the base HEX. The Xplorer code usually consists of the following parts: CSAAAAAA DDDD C = Code identification or Control Code which tells the Xplorer, what follows next (left half of the first byte or 1 number). S = Status of the code (right half of the first byte or 1 number). A = Storage Address in the PlayStation RAM with a range from 000000 to 01FFFF, (3 bytes or 6 numbers). D = Data, these values are written to the given address A, (2 bytes -word- or 4 numbers). Note: For the sake of clarity, a blank character often is inserted after each fourth number in the code. If you enter a code in the Xplorer, omit this blank character. Thus - way of writing: 8009 1234 5600; way of entering: 80091234 5600. We will explain the types of codes (C) in detail on the following pages. (Comment: This section assumes that you are activating ALL codes by selecting the name of the game.) We mark the status thereby by an italic S. (example: 8Sxx xxxx) it can contain only 8 or 0. If it is 8, then you must switch this code on manually, since it is not activated automatically when selecting the codes by Game Name in the Xplorer menu. That makes sense, because with so many variations of game play there are usually codes of the following type: Infinitely Energy 8001 1234 03E7 On Hit Death 8001 1234 0001 To have both codes switched on is unreasonable since they affect the same address. The PSX CPU must decide whether the player has infinitely energy or can be defeated immediately. If you only want infinite energy to be activated when you select the entire game then the code becomes: Infinitely Energy 8001 1234 03E7 On Hit Death 8801 1234 0001 Now, when you select the Game Name to ?turn on? all the codes, all will be activated EXCEPT One Hit Death. Additionally, if you have multiple code lines the status value must be entered in the FIRST code line: Have All Items B8A6 0002 0001 1007 836C 6401 B021 0002 0001 100784B8 84A7 The above code now must be manually activated even though you may have chosen to activate ALL game codes by selecting the name of the game. Status Note: The developers of the Xplorers have a method of encrypting codes in such a way that they function with the Xplorer but not with other Cheat Carts. Such codes you can recognize by the status "6" (more recently "4" and "5" also). Encrypted codes are published only by FCD (aka Blaze International in USA.) � Xplorer Code Types 3-Code The 3-Code is the simplest. It describes a memory cell with a fixed amount. The code 3000 0004 0001 writes the byte 01 into the address 000004. Example: The code 300D 8A42 0003 keeps the number of the lives constant at 3. If you would rather have 9, then change the value (data) part of the code to 9: 300D 8A42 0009. Composition 3Sxx xxxx 00yy where:���� xx xxxx���� address������� yy������������value (byte) Note: If you should see a 3 or 8 code which possesses the status (S) of 6 (more recently "4" and "5" also), it concerns an encrypted code. 8-Code Together with the 3-Code is an 8-Code, the basis code, which describes the memory location directly. With the 8-Code two bytes are registered in two addresses. The code 8000 0004 FF01 writes directly into the address 0000 0004 the word value FF01 which has the following result: Memory Cell New Contents 0000 0004 01 0000 0005 FF Note: The 8-Code of the PlayStation permits only the access to even storage addresses (technical term: "even alignment"). An attempt to go around this adjustment is not possible and can provoke a crash. Make sure that at the eight place of the memory address you have an even hexadecimal number (0, 2, 4, 6, 8, A, C or E). With the help of the 8-Codes you can register (decimal) a value between 0 and 65535 into a specific memory cell. Convert the value, 9999, into hexadecimal which results in the HEX value of 270F and corresponds to the right part of the code -- the data (D) part. However, the value would be stored in reversed order as 0F27. Note: The PlayStation processor stores bytes of larger numbers in reverse order. An 8-Code has the same effect as two 3-Codes with the two storage locations being directly next to one another. It is sometimes meaningful to split an 8-Code up into two 3-Codes if we want only one part of it to function. Suppose you have a code 8008 8AEC FF01 with the description "Rifle + 255 cartridges"�� or "Rifle with Unlimited Ammunition". Experienced Coders can see immediately where the values lie that describe each cheat (I.e., FF = Unlimited Ammo and 01 = Rifle). Usually programmers will note in an individual memory cell whether an article is available or not.�� The absence is usually marked by 00, the presence by 01. Each processor understands an instruction of the kind...... if contents of the memory cell x contains 0 , then do this... Such fragments are used if you change from a pistol to a rifle -- then the program must examine whether you have the rifle at all. The possession variable does not necessarily have to be 01 - you could use 05, 27 or any other number. Usually, however, one takes 01 because it can be associated so nicely with the variables "yes" or "on." This would also correspond with the original language of each microchip?s binary values of 00 and 01. For manipulating the ammunition or the number of the lives, where not just possession matters but the actual quantity is important, one usually selects a maximum value like 99 or 255 (FF in hexadecimal, the highest value for a byte). Naturally one could use most any number here because the value always remains constant. But, for psychological reasons a large number is recommend. The code 8008 8AEC FF01 writes into the memory cell 0008 8AEC the value 01 in order to specify the rifle and into the cell 8008 8AED the value FF in order to make 255 cartridges available. Split up into two 3-Codes we have the following: 3008 8AEC 0001 3008 8AED 00FF Note: In the Memory Editor the code would look like this (note the reversed values): 80088AE0��� 00 00 00 00 00 00 00 00 00 00 00 00 01 FF 00 00 The two 3-Codes have the same effect as the one 8-Code. You can, however, omit the second 3-Code in order to limit the overall effect -- you have received the weapon but must look for the ammunition independently. If you omit the first 3-Code, you must find the rifle only and would not have to concern yourself with getting ammunition. An 8-Code is unsuitable for this choice as the code 8008 8AEC 0001 gives you the rifle without any ammunition. Examples 1. In the address 0000 0004 an 01 means that you possess the appropriate weapon. In the following address, 0000 0005, the quantity of ammunition for that weapon is stored. You would like to possess the maximum number of bullets, i.e., 255 (FF in hexadecimal). The correct code is then 8000 0004 FF01. 2. In the address 0000 000A the number of possible magic points are stored. Since we want to make this value as large as possible, and only have 4 numbers within which to do so, we take the maximum value of 9999 (0F27 HEX). The correct code is then 8000 000A 270F. 3. From the following two codes: 3001 26AA 0063 3001 26AB 00C7 you would like to make an 8-Code because it is shorter. The result is: 8001 26AA C763 4. The code 8008 8AEC FF01 describes two memory cells. If you want to leave one of the two cells unaffected, split the code in two as follows: 3008 8AEC 0001 3008 8AED 00FF and then omit one of the two lines. Composition 8Sxx xxxx yyyy where:���� xx xxxx���� even storage address �� yyyy��������value which can be registered (2 bytes - word) 4-Code (Slow Motion Code) With the help of the 4-Code you slow down the execution of a game. Logically it is called a Slow Motion Code. A meaningful application of this type code is when your opponent is very fast and you cannot react quickly enough. With the Slow Motion Code you can create for yourself a greater chance to win. The 4-Code is not connected with a certain storage address because the processing of the game was not intended to be slowed down from the start. It is recommended that the activation of the slow motion code be accomplished by depressing a particular JoyPad key. For such codes, which are to apply only during certain time periods, there is the so-called Joker Code or Command. A Code which is activated with such a Joker Command is only effective as long as the selected key or combination of keys is held. We will discuss the Joker Command at a later place in more detail. Because of the missing storage address a 4-Code is quite naked -- consisting of all zeros. It exclusively contains the delay value which should not exceed 12 (0C). Delays are accomplished internally as the processor runs through a series of millisecond rotations or loops (technical term: to over loop). Example You would like for the expiration of play to be slowed down as long as you hold the Select key. You have previously determined that the Joker Command address is D009 1234 0100 (that is usually quite simple). You feel that a suitable delay value is 6. The complete code is then: D009 1234 0100 (Push the Select Button) 4000 0000 0006 Composition 4S00 0000 000x Where:���� x���� Number of repetitions or 'loops' (delay value) 5-Code (Supercode) The 5-Code is that so-called Supercode. It is meaningful if you want to describe several memory cells one behind the other. Some examples are: - changing a text, a player?s name for example. - manipulating a whole inventory list. - changing a diagram, like a texture. For the Supercode you must make arrangements for three data types: - the memory cell, starting from which the changes become effective. - the number of places which can be changed. - the new entries. In your preferred combat game your favorite character is named Eddy. However, you would find it more to your liking if he was called Rico. With the text search function of X-link you determine the storage address starting from which the character string "Eddy" is found -- for example 0002 67AA. Determine now the hexadecimal ASCII-Code of the character string "Rico." That can be done most simply through "manipulation" of the memory editor of X-link. Write into the right column (the ASCII Column) the character string "Rico" and then check to the left which HEX values have changed as a result of your changes to the name "Eddy.". Note: X-Link for DOS generates a 5-Code automatically if it concerns text. Select in the menu option / further options / advanced code generator / string code where you must indicate only the storage address and the text in order from it to provide you with a completed code. Example You would like to insert the text string "GBP!" starting from the address 0002 67AA. The correct code is: G = 71 ASCII DEC = 47 HEX B = 66 ASCII DEC = 42 HEX P = 80 ASCII DEC = 50 HEX !� = 33 ASCII DEC = 21 HEX 5002 67AA 0004 4742 5021 0000 Composition 5Sxx xxxx 0yyy zzzz zzzz zzzz zzzz zzzz zzzz ...... Where:���� xx xxxx� Address (in our example 0002 67AA) ���������� yyy������� Number of repetitions (for example 004 or 4 letters) ���������� zzzz zzzz zzzz��� The bytes which can be used (for example GBP!) Fill up the remaining spaces in the last line with zeros in order to have a ?full? or complete line of code. 6-Code (Modcode) The 6-Code lets a piece of program code implement on a certain event - for instance when depressing a key or describing a certain memory cell. The code consists of several parts: the kind of event which leads to the temporary abort (BREAK) of normal program processing, the memory cells concerned, and the program code which is to be implemented with the arrival of the event. The 6-Code is the code most complicated for the inexperienced. A basic requirement is a comprehensive knowledge of the assembly language programming of the processor. Consequently, we present the code only briefly. A summary of the code is as follows. Composition 6S?? ???0 YYYY AAAA AAAA CCCC FFFF FFFF XXXX XXXX XXXX XXXX ....... Where:���� ?����������������������� All the same value. ��������������� YYYY����������Number of bytes which are used. ��������������� AAAAAAAA����� BREAK address (here 001F AB92 and 3). ��������������� FFFF FFFF�����BREAK POINT mask (on 0FFF FFFC set). ��������������� XXXX XXXX��� The bytes which can be used. ��������������� CCCC����������Type of BREAK POINT at the BREAK address: ��������� E180��� The instruction gotten by the processor but is not yet implemented. ��������������� EE80��� The data to be read or written ��������������� E680��� The data to be read. ��������������� EA80��� The data to be written. ��������������� EF80��� The data to be either read, written or implemented (instruction). Note: X-Link for DOS contains two templates which determines your 6-Codes via the advanced code generator. They must indicate only the necessary addresses and values. The Mod code has the form: "If the address X has the value Y, then add / subtract the value A to / from the address B." After the input of the four values the generator makes a pertinent 6-Code. The slip code changes contents of a memory cell as a function of depressing a specific key. 7-Code (Do-if-True) This Joker code works with an If-Then relationship: If a specific memory cell contains a certain value, then the Xplorer becomes active and writes into a fixed (same or other) memory cell a fixed value. The 7-Code is identical to the ?D0?-code of the GameBuster. Example You would like to receive after collecting a certain weapon the pertinent ammunition. Or in hexadecimal language: If the address 0001 2346 (weapon) contains the value 0001, then the address 0001 8450 (ammunition) is to receive the byte with the value of 63 HEX. As a code that results in the following: 7001 2345 0001 3001 8450 0063 (63 HEX = 99 DEC) Composition 7Sxx xxxx yyyy Where� xx xxxx��Address (in our example 0001 345) �������������� yyyy��������Value (in our example 0001) Observe that always two bytes (word) are queried at one time (yyyy). Note: The Joker code generator of X-Link for DOS generates a finished 7-Code based on your defaults. Do not confuse the Joker code with the Joker Command which we will present later. 9-Code (Do-if-False) The 9-Code is the opposite of the 7-Codes. It activates only when the code which follows directly after it does NOT contain the expected value. Or differently, the following code is ignored if the condition is fulfilled. Example In address 0001 8430 the number of your cartridges is stored. However, the game always crashes in Level 2 if the code is activated. In all other Levels the code functions as designed. With the following example you query the Level which your on and if you are NOT on the second level then the code for the ammunition is activated: 9011 8AFE 0002 3001 8430 0063 Composition 9Sxx xxxx yyyy Where:���� xx xxxx���� Address (in our example 0011 8AFE) ��������������� yyyy��������Value (in our example 0002) Observe that always two bytes (word) are queried at one time (yyyy). Note: The Joker code generator of X-Link for DOS generates a finished 9-Code based on your defaults. B-Code (Slide Code) (A more in-depth discussion can be found in the Advanced Xplorer Code Types FAQ) The B-code or so-called Slide Code shortens long code lists to a compact instruction. For games in which there is an inventory in existence such as a chest with collected treasures, a whole list of full spells, or a selection of different weapons, the storage location of each item in the inventory list is usually incremented by the same value. The solution to using fewer code lines is the B-code. A code list for All Items might look like this: 8001 1234 0101 8001 1236 0101 8001 1238 0101 8001 123A 0101 8001 123C 0101 8001 123E 0101 8001 1240 0101 8001 1242 0101 8001 1244 0101 This can be shortened with the help of a B-Code by using only two lines. The address in this example is always increased by 2 and the value remains the same in each case. From our example list above: B009 0002 0000 1001 1234 0101 Note: The Slide code generator of X-Link for DOS generates a finished B-Code based on your defaults. The exact function results from the composition: Composition B0ww AAAA DDDD 10xx xxxx yyyy Where:���� ww���� Number of repetitions plus 1 (in the example 8+1) AAAA���� Size of the address step (in the example 2 = always even, 2 or greater) ��������������� DDDD���Size of the data step (in the example 0 = always the same value) ��������������� xx xxxx��� Start address (in the example 0001 1234) ��������������� yyyy��������Initial data (in the example 0101) Slide codes can be combined with a D-, C-, 7-, or 9-Codes. C-Code This If-Then code was only taken up in order to remain compatible with the GameBuster. The appropriate Xplorer code is a 7-Code. The C-Code corresponds to the D-Code. The only difference was that in quite early version of the GameBuster / GameShark the C-Code was responsible for the upper megabyte of the PlayStation. The D-Code functioned only within the address range from 0000 0000 to 000F FFFF while the C-Code only from 0010 0000 to 001F FFFF. Today the C-Code is no longer needed since the D-Code can now be used for this entire memory block. For the sake of completeness, nevertheless, a composition of the code: Composition C0xx xxxx yyyy Where:���� xx xxxx���� Address in the upper megabyte which is to be examined ������������� yyyy���� Value for which one examines Observe here always two bytes (word) are queried at one time (yyyy). D-code An If-Then code identical to the 7-Code: With this code the following line is implemented only if a certain condition is fulfilled -- that condition being a certain value in a certain memory cell. The D-Code is only supported in order to remain compatible to the GameBuster codes. For newly created codes one recommends using a 7-Code in lieu of a D-Code. (Note: for the newer versions of the GameBuster there are other types of D-Codes such as D1, D2, etc. that are not compatible with the Xplorers and will not be presented here.) Example If the storage location 0000 0100 contains the value 0000 then write the value FF in 0011 1234 and 0011 1235. The storage location 8011 1236 FF00 is not affected as the D-Code only writes to the storage location of the first line of code directly following it: D000 0100 0000 (If 8000 0100 contains 0000 then activate the first line of code.) 8011 1234 FFFF 8011 1236 FF00 (This line of code is not written to.) Composition D0xx xxxx yyyy Where:���� xx xxxx��� Address which is to be examined (in the example 0001 1234) ������������� yyyy��������Value for which one examines Observe that always two bytes (word) are queried at one time (yyyy). F-Code (Auto Activation) The F-Code is the equivalent of the Master or Must-Be-On Code of the GameBuster / GameShark. It is called Auto Activation and resembles the D- or 7-Code except that it is automatically selected when any other code is selected in the Select Cheats Menu. Additionally, unlike the D0- and 7-Codes where only the first line of code is activated when the Do-if-True conditions are met, the F-Code will activate ALL lines of Code for the game that have been initially selected in the Select Cheats Menu. One should realize here that NO codes are 'activated' during the game until the conditions of the F-Code are met. As with the 8-Code, two bytes are always queried. Example The game crashes because of some specific code conflicts in the Main Menu or during the loading of Introduction Films.� Consequently,� you only want the codes to be active AFTER the game has started. You find out that during the ?Introduction? the address 0011 8AFE does NOT contain the value 612A -- it only contains that value AFTER the game has loaded. Thus we want the codes that we have initially selected to be activated only if the address 0011 8AFE contains the value 612A. If the 612A value is missing then the codes are not activated. "GAME NAME" -------codes------- 8007 84EC 00FF <<<<< I.e., Gets activated if originally selected in the Select Cheats Menu. Auto Activation F011 8AFE 612A <<<<< Do-if-True code. ALL of the selected code lines, both above and ��������������������������������������� below this code line, are activated if this condition is met. The ��������������������������������������� codes remain inactive till then. Infinite Gel and All Items 8011 A72C 270F <<<<< I.e., Gets activated if originally selected in the Select Cheats Menu. 8011 AEEC FFFF������������������������������������������������ B0A6 0002 0001��������������������������������������������������� 1007 836C 6401��������������������������������������������������� Next Cheat Description 8007 84B8 84A7��������������������������������������������������� -------codes------- Note: This also works with Joker Commands. Composition FSxx xxxx yyyy Where:���� xx xxxx���� Inquiry address (in our example 0011 8AFE and F) ������������� yyyy�����Inquiry value (in our example 612A) Joker Command � (A more in-depth discussion can be found in the GameShark Code Types FAQ) The Xplorer writes a constant value to a memory cell many times per second. This is called ?constant write? or ?always on.? Sometimes, however, it would be desirable if a code were active only at certain times because: A Cheat is to be switched on only in an "emergency" -- you would like to play predominantly in an honest fashion. A Cheat works properly only during the actual game and causes the PlayStation to crash during the Introduction or at the Main Menu. A Cheat functions only on certain levels. A Cheat does not function in certain situations. The solution is the Joker Command. It permits activation of a code temporarily while a certain key or combination of keys of the Controller is held. Note: Cheats can be also be deactivated temporarily if the Xplorer?s on / off button is switched off or, with the Xplorer FX, by using the In-Game menu to switch the codes off. In each game there is at least one place in memory (or memory address) where the pressed keys of the JoyPad are shown by a specific value. This address is usually accessed by the use of a D- or 7-Code. A Joker Command is thus a D- or 7-Code whose address is a storage location for a specific JoyPad button or combination of buttons. Joker Commands can be used with any game and combined with any code type. You can select from the Table below the pertinent key code. Some games use this value in a reverse format called a Reversed Joker Command. Here only the key value changes. Otherwise the Reversed Joker Command functions exactly like a Normal Joker Command. Normal Joker Command Digits������ Reversed Joker Command Digits������ VALUE KEY VALUE KEY 0001 L2 0100 L2 0002 R2 0200 R2 0004 L1 0400 L1 0008 R1 0800 R1 0010 Triangle 1000 Triangle 0020 Circle 2000 Circle 0040 X 4000 X 0080 Square 8000 Square 0100 Select 0001 Select 0800 Start 0008 Start 1000 Up Arrow 0010 Up Arrow 2000 Right Arrow 0020 Right Arrow 4000 Down Arrow 0040 Down Arrow 8000 Left Arrow 0080 Left Arrow In cheat data bases or code sites you will usually find the JoyPad keys that are used in place of ????. I.e., Replace the question marks by a key of your choice. You can combine several keys such that a code is only activated if you press Select + Left Arrow + Triangle by adding the numerical values, in HEX, of the selected keys: Normal Joker Command�������� Reversed Joker Command 0100 = SELECT������������������������ 0001 = SELECT 0004 = L1���������������������������� 0400 = L1 0010 = Triangle���������������������� 0010 = Triangle - - 0114 = Select+L1+Triangle��������� 0411 = Select+L1+Triangle Note: Note that these calculations are accomplished in hexadecimal. That can be done quite easily with a scientific calculator -- if necessary use the one that comes with Windows. There are also complementary and reverse-complementary versions to these two types of values. In order to make the complementary of a value, you subtract it from FFFF: - subtract 0100 (Reversed for #L2) from FFFF to get FEFF - subtract 0200 (Reversed for #R2) from FFFF to get FDFF - subtract 0300 (Reversed for #L2 + #R2) from FFFF to get FCFF These are known as Reversed Complementary Joker Commands or R.C.J.C. Example You found the following code: Infinite Energy 8012 3456 00C8 In addition we have found the Normal JoyPad address (This will be discussed later.) and made it a D-Code: D001 2876 ???? (This is now our Joker Command.) Further we know that the key Select is not used in the game so nothing "critical" would happened if it was pressed. Now you look in the table and you will see that the value for Select is 0100. Enter the following: Infinitely Energy D001 2876 0100 8012 3456 00C8 Start the game with this code selected. First nothing happens with respect to the ?Hero?s? energy -- but as soon as you press Select the energy is refurbished. But only as long as you keep the Select button pressed -- release it, or press any other key, and it no longer functions. Last Modified:� June 3, 2000 - Hackman ---------------------------------------------------------------------------- Gameboy Code Types- The most common GS Digit for Game Boy is "01". This means the code resides in the first bank of the address line. Codebreaker users will find that 00 and 01 are equally used code types. The ?simply means the code resides in the zero bank and ?01? as above, the first bank. There are no known other code types for gameboy as there are for N64, Playstation and Dreamcast. Dreamcast GameShark/Action Replay Code Types The following are what decrypted or raw code types look like. Xploder and Codebreaker use this format. Game Shark uses an encrypted format for the first line of the code (the address) while all use the second line as is (offset or quantifier). Dreamcast has 32 bit codes. These codes will require 8 digits for the offset and 8 digits for the quantifier, 2^32= FFFFFFFF in hex. Example, XXYYYYYY ZZZZZZZZ. Note: It is not unusual for manufacturers of cheating devices to encrypt their codes. Fire International (Blaze USA) has encrypted codes in both its N64 and Game Boy Xploder/Xplorer, while Interact has employed encryption in its DC Shark. If the code begins with a '0', then it is in decrypted format. As in any encryption there always is a crack to defeat it. Codebreaker and Xploder both have the built in ability to accept DC gameshark codes in decipher them. It is left to the reader to explore the decryption further. DC code types: Code Value Description 00xxxxxx 000000vv Write 8bit (byte) value ?vv? to memory address 8cxxxxxx. That is, 8 bit constant write. 01xxxxxx 0000vvvv Write 16bit (2byte) value "vvvv" to memory address 8cxxxxxx. That is, 16 bit constant write. 02xxxxxx vvvvvvvv Write 32bit (4byte) value "vvvvvvvv" to memory address 8cxxxxxx. That is, 32 bit constant write. 0300nnnn aaaaaaaa Group write code. nn specifies how many 32 bit values follow. aaaaaaaa is the addrsss to write to. The values following this code are written to address aaaaaaaa. E.g: 03000004 8c012000 11111111 22222222 33333333 44444444 The effect is as follows: With a count of 00000004 codes, to address 8c012000: 8c012000 = 11111111 8c012004 = 22222222 8c012008 = 33333333 8c01200c = 44444444 030100vv aaaaaaaa Increment code. Add the 8bit value vv to the value at address aaaaaaaa 030200vv aaaaaaaa Decrement code. Subtract the 8bit value vv from the value at address aaaaaaaa 0303vvvv aaaaaaaa Increment code. Add the 16bit value vvvv to the value at address aaaaaaaa 0304vvvv aaaaaaaa Decrement code. Subtract the 16bit value vvvv from the value at address aaaaaaaa 03050000 aaaaaaaa vvvvvvvv Increment code. Add the 32bit value vvvvvvvv to the value at address aaaaaaaa Note that this code is 3 lines long and so will require an 0exxxxxx condition (not a 0dxxxxxx) if you're using it with a condition code. 03060000 aaaaaaaa vvvvvvvv Decrement code. Subtract the 32bit value vvvvvvvv from the value at address aaaaaaaa Note that this code is 3 lines long and so will require an 0exxxxxx condition (not a 0dxxxxxx) if you're using it with a condition code. 04xxxxxx rrrrssss vvvvvvvv Repeat/Filler code. Writes to address 8Cxxxxxx. Writes the 32bit value vvvvvvvv. Repeats this rrrr time, each time increasing the address by ssss (actually ssss x 4). That is, 32-Bit Constant Serial Write E.g: 04007a30 00030001 12345678 Effect: 8c007a30 = 12345678 8c007a34 = 12345678 8c007a38 = 12345678 05xxxxxx dddddddd nnnnnnnn Copy bytes code. Copy nnnnnnnn bytes from the address 8cxxxxxx to the address dddddddd. That is, constant copy bytes 071000XX Change Decryption Type 0b0xxxxx Delay putting on codes for xxxxx cycles. Default 1000 (0x3e7) 0cxxxxxx vvvvvvvv If the value at address 8Cxxxxxx is equal to vvvvvvvv, execute ALL codes; otherwise no codes are executed. Useful for waiting until game has loaded. 0dxxxxxx 0000vvvv If the value at address 8Cxxxxxx is equal to vvvv, execute the following code. Can be used with code types 00, 01 and 02 only. To use this type of control with other codes use an 0e code. 0dxxxxxx 0001vvvv If the value at address 8Cxxxxxx is different to vvvv, execute the following code. Can be used with code types 00, 01 and 02 only. To use this type of control with other codes use an 0e code. 0dxxxxxx 0002vvvv If the value at address 8Cxxxxxx is less than vvvv (unsigned), execute the following code. Can be used with code types 00, 01 and 02 only. To use this type of control with other codes use an 0e code. 0dxxxxxx 0003vvvv If the value at address 8Cxxxxxx is greater than vvvv (unsigned), execute the following code. Can be used with code types 00, 01 and 02 only. To use this type of control with other codes use an 0e code. 0ennvvvv 00aaaaaa If the value at address 8caaaaaa is equal to vvvv, execute the following nnnn lines of codes. E.g: 0e04abcd 00012000 02300040 ffffffff 02300050 eeeeeeee if address 8c012000==abcd, execute the 04 lines of codes following. The 4 lines of codes being two ?02xxxxxx? codes ?02300040=ffffffff? and ?02300050=eeeeeeee?. 0ennvvvv 01aaaaaa If the value at address 8caaaaaa is different to vvvv, execute the following nnnn lines of codes. 0ennvvvv 02aaaaaa If the value at address 8caaaaaa is less than vvvv (unsigned), execute the following nnnn lines of codes. 0ennvvvv 03aaaaaa If the value at address 8caaaaaa is greater than vvvv (unsigned), execute the following nnnn lines of codes. 0F-XXXXXX 0000YYYY 16-Bit Write Once Immediately. (Activator code) Dreamcast:� INDICES FOR PAD COMMANDS' By UL1 � The ' good' thing is : for the DC there are commands available that allow you to activate a code in the game by pressing one or more buttons on your pad. The 'bad' thing is : It isn't as easy as it is for the PSX... The BUTTON COMMAND is easy to use because you just insert the values and that's it. You can combine� different buttons - just subtract the given values from FFFF. With the L / R COMMANDS it's a bit difficult... There are two types : 1.��� The ANALOG-L/R COMMAND For the A-L/R COMMAND the values for the buttons differ depending on how strong you push the button(s). So just the value for the default position of the buttons can be given -� you can activate the code by� saying :� Code active if button isn't moved (use '0' instead of the question mark) or� Code active if button is moved (use '1' instead of the question mark). Alternatively, if you want to activate the code(s) when pressing button(s) to the max, use FF00 for 'L', 00FF for 'R' or FFFF for both. 2.��� The DIGITAL L/R COMMAND This one is easy to use because you use it the same way as the BUTTON COMMANDS. The ANALOG STICK COMMAND is similar to the A-L/R COMMAND but here you have two different values for the default position of the stick : 0000 or 8080 and there is no value for a max position.� XXXXXXXX always represents the code address. Most of times the BUTTON and the L/R COMMAND addresses are placed consecutive in the memory, e.g. : BUTTON COMMAND 01000000 0000FFFB L/R COMMAND 01000002 0000FFFD so you also could use a combination of the two commands. That would read like this : 01000000 FFFDFFFB NOTE : Because SEGA / the developers use almost all buttons for game play it's sometimes difficult to find a combination that doesn't affect other functions in the game. So I suggest to use the second Pad for� activating codes in such cases. BUTTON COMMAND XXXXXXXX 0000???? A = FFFB B = FFFD X = FBFF Y = FDFF START = FFF7 D-UP = FFEF D-DOWN = FFDF D-LEFT = FFBF D-RIGHT = FF7F A-L/R COMMAND XXXXXXXX 000?0000 0 = active when none of the two buttons is pressed 1 = active when one or both buttons are pressed L = FF00 R = 00FF D-L/R COMMAND XXXXXXXX 0000???? L = FFFD R = FFFE A-STICK COMMAND XXXXXXXX 000?0000 or XXXXXXXX 000?8080 0 = active when A-Stick isn't moved 1 = active when A-Stick is moved ----------------------------------------------- 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 or check the FAQ section of this document. 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. Enablers also allow the gamer to use what is called hi resolution codes which in order for a game to run would normally use the memory expansion pack and thus render the GameShark Code Generator unable to run since it requires this same memory expansion pack. 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 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 GS 3.2 and up does however require an enabler code or M codes in order to work without freezing. 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 Game Boy 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: Some examples. 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. ?One learns by doing the thing; for though you think you know it, you have no certainty until you try? - Sophocles ?Lo?try not, do or do not, there is no try? - Yoda 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 this is not usually done. 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/othe 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, debug menus, cut scenes, walk thru walls, level modifiers, moon jumps, size modifiers, speed modifiers and Enabler codes. 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 Triangle 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 equivalent 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 equivalent of 20 in hex. You should be down to 4 or 5 possibilities. 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 every time 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 we 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. 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 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. Normal Activator 1 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 and macrox) -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:by macrox 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 codes 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: By Subdrag - 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: by macrox 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 worthwhile 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/interlevel 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. Here are some things you can do with the memory editor 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 definitely 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. ------------------------------------------------------------------ Hacking Enabler codes that do not conform to the ?mtc0 xxx? search ? by Parasyte To hack most of the newer enable codes for N64, follow the ASM from the entry point and look for something that reads or writes to an address below 80000400. If you find something, KILL IT! You must do that by either nulling, that is setting the offset to zero or finding some other suitable offset. You must do this for every instance you can find. the new GS protection put into games will read/write to the following addresses - 80000080 80000100 80000180 80000190 go through the entry point and find all instances of "ori/addiu xxxx" where 'xxxx' is either '0080', '0100', '0180', or '0190'. then search above those opcodes for an "lui 8000" opcode if you find that lui, just change the 'xxxx' in the ori/addiu opcodes to '0120' and the protection will be flawed. some games will also force 8MB mode before actually checking for the expansion pak. To force 8MB mode, addresses around 80000300 will be written to. many times, you can find the ASM by searching for "addiu/ori 013x" where 'x' is a value 0-F. you may find some "sb/sh/sw 013x($yy)" opcodes. if $yy is $sp, ignore that entire opcode. Otherwise, look above that address for "lui $yy,x000" where 'x' is either '8' or 'A'. An example of one common enabler that can be used to force either high or low resolution modes and is useful in getting a game to boot and running in either mode is as follows: F0000319 00?? ?? = 40 - low rez 80 - full hi-rez 78 - trick the game into thinking it's hi-rez, but there's actually 1/8th of the RAM free... Which the GS uses for it's trainer routines and such. that address simply specifies the highest address the game is allowed to use. just don't go above 80.. Since that RAM is reserved and unusable, the game will crash. But just play around with the values.. you might come up with better values It works for every game. BUT it does NOT force screen resolution!!!!! It forces the game to use any amount of RAM you want. It does not make the games any faster, does not give it a higher screen resolution. It's mainly used to hack games that run with the expansion pak. You can use the PC Utils. Addresses 80000000 - 80780000 are available in this mode. So the codes you hack with it may not work in the full 8MB mode. Hacking GameBoy Advance Enabler Codes (Used with Permission) - By Parasyte Required Software: GameBoy Advance ROM to hack (find on your own) Mappy Virtual Machine - http://www.bottledlight.com/ GameShark Advance Code Encryption Program - http://www.angelfire.com/tx5/tolos/downloads/ GameBoy Advance Enablers are comprised of two parts, the first part is the hook routine. It overwrites some assembly in ROM/RAM with a jump to the GSA code handling routines. This jump must be executed many times per second. So a good place to hook would be the controller reading routine. The Second part is an ID Code, it's not needed, but it's good to have if you like the GSA auto-detecting your game. Hacking the hook code: (this method only works on Thumb assembly in ROM) 1) Load up the rom in Mappy, then goto View -> Disassembler 2) Goto File -> Export -> Disassembly 3) Pick a destination txt file to save 4) Near the bottom you see three text boxes, leave the first one blank, type 08000000 into the second, and 200000 into the third 5) Select "Thumb" in the drop down list box 6) Click the Add button 7) Click the OK button, and wait a few seconds to a minute for the disassembly to complete. 8) Open the new txt file in a text editor, the file will be around 7MB 9) Text search for 04000130 10) You may find more than one place with this info, so be sure to write down ever address with that text string. 11) Going through all addresses, find two opcodes that might work. They can be anything BELOW the "04000130", and ABOVE any opcode beginning with a "B". The two opcodes you choose must be right next to each other, and they cannot have an "=" sign in any part of the line. Example of USABLE opcodes - 080002D2 add r1, r4, #0 080002D4 add r1, #24 080002DE ldrh r0, [r0] 080002E0 mvn r0, r0 Example of NON-USABLE opcodes - 080002E8 bne #$080002F2 080002EA ldr r0, =$03000540 12) Once you find an address that can be used, put the "F" code type on it, and use the value 00000101. Encrypt the code, and try it with any known codes, just to make sure it works. Example: F80002DE 00000101 13) If the game crashes, try using a value of 00000102. If the game still crashes, you will need to find another area to hook. The easiest method to do this envolves running the game in an emulator (VisualBoy Advance-SDL) and halting the game anywhere during execution. You should almost always end up in a piece of ASM that is executed many, many times. So just use the rules above and find a new address to use. Hacking the ID Code: 1) Load the ROM into a hex editor 2) Jump to address 000000AC 3) Copy the 4 bytes at this address, then reverse all bytes. Example: "41424344" becomes "44434241" 4) Encrypt this as an address with a value of 001DC0DE using the Game Shark Advance encrypter. Example: 44434241 001DC0DE 5) GameShark Advance should autodetect the game with this code in your(M) code How to hack GameBoy Advance codes: (By Tolos) You will need an emulator (I use VisualBoy Advance 9.1), and a GBA ROM to hack. DO NOT ASK ME FOR ROMS! Before you begin, make sure the game and ROM are the same versions, and there is no "extra stuff" in the ROM -- usually an opening sequence by the rippers. Ripping the game yourself solves these problems. Here's an example of finding infinite lives: - Start VisualBoy Advance, and load your ROM. - After it boots, start the game. - Take note of how many lives you have. - (Pause the game)Select the menu Cheats -> Search for Cheats. - Click on Start, enter the number of lives (e.g. 3) into the text box near the bottom, and press Search. - You should come up with quite a few results. Click OK, and continue the game. - Die once, and press CTRL+C or open the Search for cheats menu again. - Enter the number of lives you now have (e.g. 2) and press Search, without clicking on Start. - If you still have a large amount of results, repeat the above three steps. Otherwise, click on one of the addresses, then press Add Cheat. Change the value. If your lives didn't change, try dying. Sometimes codes aren't immediately obvious. If that wasn't the code, try the others. If none of the codes worked, you may need a different approach. - Press start, and enter a number well greater than the number of lives, then then press Search. - Lose a life, then do a Search for Cheats. - In the Search Type box, select old value; in the Compare Type box, select Less or Equal, then press search. - Repeat the above two steps. - Select an address and click Add Cheat. Change the value, and die. If your lives didn't change, try the other addresses. You should find the code. Basically, the same techniques that work for other games can be used for finding codes. 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. How do you hack Speed Modifiers? (Submitted by Bleeding Gums Murphy) You start by doing a time trial or something you don't have a time limit on. 1) Once you start, keep your speed at 0 and take an Unknown 16-bit search. 2) Now when it's finished, speed up a little bit. 3) Take a Greater than last search. 4) Now speed up a little more and take a greater than last search again. 5) Now speed up completely and take a greater than last. 6) Now slow down to about half speed and take a less than search. 7) Next speed up a little bit and take a greater than search. 8) Then go back to 0 speed(stop) and take a less than. Repeat steps 2-8 until you get around 10-30 codes remaining margin. Speed up to the fullest and press the freeze button(the button on your gameshark itself). Try out each code one at a time until you do not slow down when you break. This is the speed mod. Typically, for most racers, a value of around the 4800's is top speed you can control, but games like Rush 2047 isn't like that. If one of the codes freezes the game, don't get angry, like I said before, Speed Mods are reletively easy, you'll just have to start again. You may also like to know that speed mods can be hacked for non-racing games, but they don't help you as much as they should. ------------------------------------------------------------------------ III Online code porter You can transfer a code from one version of the game by knowing the difference in offsets one version of a game has from another version. Please see the FAQ section for more info on how to do this. Game Shark Central has an automatic code porter that the reader is welcome to try. The authors would like to thank Crocc for permission to use the code porter found at Game Shark Central http://www.gscentral.com/cgi-bin/port.pl IV Hacking with the ProAction Replay/GameShark PRO 3.0 for Game Boy ?submitted by Curly8od How To Hack For Action Replay Pro For Gameboy Table of Contents Inf Lives 1 Inf Ammo 2 Inf Money 3 Have an Item 4 Walk through walls 5 Capture The Pokemon You Want 6 All Weapons 7 Bullet Mod 8 Character Mod 9 Cut Scene Mod 10 Activate In Game Cheats 11 Text Mod 12 Some F.A.Q 13 Updates Since version 1.2 Added How To Hack Character mod,Cut Scene Mod And Activate In Game Cheats Added another question in the F.A.Q 1. Inf Lives Step 1:Start the game and as soon as you can move press the button on top of the action replay Step 2:Select code gen Step 3:In code gen select start generator Step 4:Start the game and lose a life Step 5:Press the button on the action replay. Go to code gen and select less and a number will appear at the bottom Step 6:Do step 1 again then select code gen Step 7:Select greater than a number with maybe letters will appear. They mean: 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15 Step 8:Keep on doing steps 4-7 until you get 10 or less Step 9:Go to view cheats and write down the number of codes you got closest to ten Step 10:Try the codes 2. Inf Ammo Step 1:Start the game and as soon as you can move press the button on top of the action replay Step 2:Select code gen Step 3:In code gen select start generator Step 4:Start the game and use some ammo Step 5:Press the button on the action replay. Go to code gen and select less and a number will appear at the bottom Step 6:Do step 1 again then select code gen Step 7:Select greater than a number with maybe letters will appear. They mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15 Step 9:Go to view cheats and write down the number of codes you got closest to ten Step 10:Try the codes 3. Inf Money Step 1:Start the game and as soon as you can move press the button on top of the action replay Step 2:Select code gen Step 3:In code gen select start generator Step 4:Start the game and spend some money Step 5:Press the button on the action replay go to code gen and select less and a number will appear at the bottom Step 6:Do step 1 again then select code gen Step 7:Select greater than a number with maybe letters will appear. They mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15 Step 9:Go to view cheats and write down the number of codes you got Closest to ten Step 10:Try the codes 4. Have An Item Step 1:Start the game and as soon as you can move press the button on top of the action replay Step 2:Select code gen Step 3:In code gen select start generator Step 4:Start the game and as soon as you can move press the button on top of the action replay and go to code gen and select less and some numbers will apear Step 5:Then start the game again and get the item that you want then press the button on the action replay Step 6:Go in to code gen and select greater than. go to view cheats and write down 15 codes Step 7:Try the codes you wrote down 5. Walk Through Walls Step 1:Start the game and as soon as you can move press the button on top of the action replay Step 2:Select code gen Step 3:in code gen select start generator Step 4:Start the game and move one step then press the button on the top of the action replay Step 5:Select less then a number with maybe letters will appear. They Mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15 Step 6:Keep on doing steps 4-5 until 10 codes or less are found Step 7:Go to view cheats and write down how many codes were found Step 8:Try the codes 6. Capture The Pokemon You Want Step 1:Start the game and as soon as you can move press the button on top of the action replay Step 2:Select code gen Step 3:In code gen select start generator Step 4:Start the game and get in a wild battle with the pokemon you want then press the button on top of the action replay Step 5:Go to code gen and select less then a number with maybe letters will appear thy mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15 Step 6:Keep on doing steps 4-5 till you get about 10 codes found Step 7:Go to view cheats and write down how many codes were found Step 8:Try the codes 7. All Weapons Step 1:Start the game and get a weapon then press the button on top of the action replay Step 2:Then go to code gen and select start gen then start the game again and get a different weapon Step 3:Press the button on the action replay and go to code gen and select different Step 4:Start the game again and get the same weapon as last Step 5:Then press the button on the action replay and select different and numbers with maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15 Step 6:Keep on doing steps 4-5 until around ten codes are found Step 7:Then view cheats and write down how many codes were found Step 8:Try the codes you wrote down! 8. Bullet Mod Step 1:Start the game and as soon as you can move press the button on top of the action replay. Step 2:Select code gen. Step 3:In code gen select start generator. Step 4:Start the game again and get a gun and fire it then press the button on the top of the action replay. Step 5:Go to code gen and select different. Step 6:Start the game again and get a different weapon then fire some bullets the press the button on the top of the action replay and go to code gen and select different and some numbers maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 7:Keep on doing steps 4-6 till around ten codes are found. Step 8:Go to view cheats and write down how many codes where found. Step 9:Try the codes!. 9. Character Mod Step 1:Start the game and as soon as you can move press the button on top of the action replay. Step 2:Select code gen. Step 3:In code gen select start generator. Step 4:Start the game again and change charcter and press the button on the top of the action replay and go to code gen Step 5:Select same and some numbers maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 6:Start the game and chose a different character then press the button on the action replay and go to code gen Step 7:Select different and some numbers maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 8:Keep on doing steps 4-7 until around 10 or less codes are found Step 9:Go to veiw cheats and write down how many codes where found Step 10:Try the codes! 10. Cut Scene Mod Step 1:Start the game and as soon as you can move press the button on top of the action replay. Step 2:Select code gen. Step 3:In code gen select start generator. Step 4:get in to a cut scene and then press the button on top of the action replay and go to code gen and select different. Some numbers maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 5:Play the same cut scene and press the button on the top of the action replay. Go to code gen and select Equal. Some numbers maybe letters will appear thay mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 6:Dont play a cut scene and press the button on the top of the action replay. Go to code gen and select different. Some numbers maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 7:Keep on doing steps 4-6 until around 10 codes are found. Step 8:go to view cheats and write down how many codes where found. Step 9:Try the codes! 11. Activate In Game Cheats Step 1:Start the game and as soon as you can move press the button on top of the action replay. Step 2:Select code gen. Step 3:In code gen select start generator. Step 4:start the game again and put a code on and press the button on the action replay. Go to code gen and select greater. Some numbers maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 5:start the game again and don?t put a code on then press the button on the top of the action replay and go to code gen and select less and Some numbers maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 6:Keep on doing steps 4-5 until around 10 codes are found. Step 7:Go to view cheats and write down how many codes where found. Step 8:Try the codes! 12. Text Mod Step 1:Start the game and as soon as you can move press the button on top of the action replay. Step 2:Select code gen. Step 3:In code gen select start generator. Step 4:Start the game again and talk to some one then talk to someone different and press the button on the top of the action replay Step 5:Go to code gen and select different and some numbers maybe letters will appear they mean 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 0=0 a=10 b=11 c=12 d=13 e=14 f=15. Step 6:Keep on doing steps 4-5 untill you have 10 or less codes! Step 7:Try the codes! 13. Some F.A.Q Q. What Dose A Bullet Mod Do A. Changes The Type Of Bullets Like If I Had A Shotgun And I Wanted It To Shoot Pistol Bullets. Q. Where Do I Find The Numbers And maybe Letters. A. At The Bottom Of The Screen In Code Gen Your Action Replay Will Freeze While You Press The Button And Then Numbers With Maybe Letters Will Appear At The Bottom. Q. What do the numbers and maybe letters tell you? A. How many codes where found. Credits: Omegakid,Pichu Written by Aaron Nickname curly8od Email mailto:[email protected] Version 1.3 Official site www9.50megs.com\curly8od ----------------------------------------------- 4) GameShark / GameShark Pro FAQ ----------------------------------------------- Many parts of this text originally appeared on GameShark Central. Revised 11-11-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 Game Boy 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. What is a GameShark Lite? The GameShark Lite is in essence a GameShark PRO without the PC connector port. A good example is the GS PRO 3.0. There are some other differences from the standard GS PRO but these details are not available at the time this text was being updated. 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. GameShark for Game Boy Some of the features: Built in Code Generator: allows you to create your own GameShark codes. The Code Generator can only search for unknown values, not exact. There is no memory editor nor text editor. New added codes can be stored only in version 3.0 and higher (GameShark Pro), older versions do not store new codes. You must reboot game after every code search with versions 3.0 and less. The new 3.1 version works in the same manner as its big brother the N64 GameShark Pro where you can resume play after you perform searches and therefore no game reboot is needed. This device works with Game Boy Pocket and Color. This device does not work with the Original Game Boy. GameShark PRO CDX for PSX and Dreamcast These devices are similar to the above in that they are cheat devices. They work by first loading the device by using a boot GameShark CD from which codes can be loaded prior to loading and running the game. They are somewhat limited as compared to the GS PRO non CDX versions above as in the case of the GS for Dreamcast as there is as yet no code generator available. What is a Code Breaker? A Code Breaker is a cheating/hacking device that is made by Pelican Accessories for use with Game Boy Pocket and Color. This device does not work with the Original Game Boy. This device is more complex than the GameShark in that it has more functions. It has a Code Generator that searches for unknown and exact values with no rebooting needed, stores and sorts new codes and game listings, uses Code Breaker and GameShark format codes, Slow Mo speed select, rumble pack built in, real time save and restore, ram saves, message writer, word scout to find passwords in games, memory and text editor, copy and erase game saves, supports Game Boy Printer and has more robust secure game holder. What is an Xploder/Xplorer? An XploderXplorer (the name varies by country, is another cheat/hacking device that is made by Fire International (Blaze USA). The Gameboy version has very similar properties as the Game Shark such as the exact and unknown code search generator. The unique property of the Gameboy Xploder is its ability to alternate between exact and unknown searches. The other plus it has is its ability to offer several warning as changes are made to its code database. A blessing for any of us who are too fast with the fingers. It can store 1 real game save at a time. The Gameboy version has no memory or text editor. The N64 and PSX versions have memory viewers but no memory or text editors. The PSX version has an available PC utilities program for advanced hacking and is similar to the Game Shark utilities program. Little wonder both the Game Shark and the Xploder are the brain child of Wayne Beckett 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? GameShark PRO? GameShark PRO CDX? Code Breaker? Xploder? In the U.S. try stores such as Software Etc, Babbages, and Electronics Boutique and FuncoLand (GameStop). 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. Check the Interact and Pelican web pages for further information: www.gameshark.com , www.pelicanacc.com , http://www.blaze-gear.com/ or www.xploder.net, and www.codejunkies.com . I have a GameShark or GameShark Pro, now what do I do? Place your game cartridge onto the Game Shark?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. Another thing to try is to again start with the console power off and with both the shark and game already seated, to pull ever so slightly upward on the shark to lift it SLIGHTLY from the console pocket. (Sometimes the console socket is too deep for the shark connector board and this helps establish the proper seat to get the shark booted.) Try turning the power on again. 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. Another possibility is that you have somehow corrupted the GameShark BIOS. In this case you can try to reflash (reinstall the BIOS) the GameShark. You will need access to a working GameShark, you defective GameShark, Shark Link (PC link cable), Hacking Utilities Software(available on the Interact and Datel websites, and a PC. Next, goto the section below on how to connect the PC and GameShark up together. 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. KeyCodes: 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 KeyCodes: 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.21 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 Paper Mario: 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 The Legend of Zelda:Majora's Mask Perfect Dark Conkers Bad Fur Day Jet Force Gemini: 14 A8 3B CA CD F8 11 BE 50 - 80 19 00 00 Gameshark Pro Version 3.0 and 3.1 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. Paper Mario: 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 The Legend of Zelda:Majora's Mask Perfect Dark Conkers Bad Fur Day Jet Force Gemini: 56 72 19 E1 9D 62 82 28 C9 - 80 19 00 00 KeyCodes: Gameshark Pro Version 3.2 Super Mario 64 & Others: AF FA 90 67 C2 49 22 D0 12 - 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. Paper Mario: BD B8 AF 1A E9 C2 8B 3B 30 - 80 20 10 00 Yoshi's Story Cruis'n World F-Zero X: B6 F4 6A E1 8B 0F C8 AB 67 - 80 20 04 00 The Legend of Zelda: Ocarina of Time The Legend of Zelda:Majora's Mask Perfect Dark Conkers Bad Fur Day Jet Force Gemini: 85 87 29 C5 3A 85 F7 50 F0 - 80 19 00 00 Gameshark Pro Version 3.3 Super Mario 64 & Others: 8F 89 AB A0 C3 4C 26 10 A4 - 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. Paper Mario: 95 AC 21 BE 58 B0 4E F6 A8 80 20 10 00 Yoshi's Story Cruis'n World F-Zero X: C4 6F 1B C2 6C 6C 1F 67 1D 80 20 04 00 The Legend of Zelda: Ocarina of Time The Legend of Zelda:Majora's Mask Perfect Dark Conkers Bad Fur Day Jet Force Gemini: 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. 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 Shark Link 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.3 is the new Shark Link and Datel, Interact and independent organizations such as Game Software Clubs Creator Cub www.cmgsccc.com now have software that allows the Game Shark to be connected to your PC. Other cheat device manufacturers such as Fire International (Blaze) also have their own version of PC hacking utilities for their devices as well. 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 http://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 3: 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 4: 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 5: 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. REFLASHING the BIOS of a defective N64 GameShark: (DISCLAIMER! Neither the authors, contributors, Datel, Interact or its subsidiaries, or Game Shark Central assume any responsibility in consequence of the results of the this procedure. The authors do not and will not be held liable for anyone attempting this procedure. The reader is advised to understand that this is a last ditch effort to repair a defective GameShark. Neither Datel, InterAct nor Game Shark Central endorse this procedure.) Proceed like above from steps 1 - 3 but with this one major change: After you seat the working GameShark in the N64 console you will seat the defective GameShark into the working GameShark and then the game into the defective GameShark. Connect the Shark link cable into the bottom (working) GameShark. (Caution! You should use a working GameShark that is of the same version you are going to reflash the defective GameShark as this procedure will flash both GameShark BIOS to same version. You can choose to NOT overwrite your code list in the GameSharks if you don't want to loose your current codes in the working GameShark. The authors suggest you backup your codelist at any rate for safekeeping. Once you have everything ready proceed to flash the BIOS by going to the upgrade screen and choosing the upgrade option. Once the operation is complete, you will have repaired the defective GameShark and both GameSharks will be the same version. Turn off the N64 and remove the GameSharks from one another and if desired plug the Shark link cable into the former defective GameShark and reload the code list. One of the authors (macrox) has tried this procedure several times without negative results. REFLASHING the BIOS of a defective Game Boy 3.0 GameShark: (DISCLAIMER! Neither the authors, contributors, Datel, Interact or its subsidiaries, or Game Shark Central assume any responsibility in consequence of the results of the this procedure. The authors do not and will not be held liable for anyone attempting this procedure. The reader is advised to understand that this is a last ditch effort to repair a defective GameShark. Neither Datel, InterAct nor Game Shark Central endorse this procedure.) The reader may find the need to reflash the Game Shark 3.0 for Gameboy should it become corrupted during use. Corrupted can mean many things such as the code database is lost. The code generator program is buggy or missing. The boot record of the shark can also be faulted. One procedure that has been found to revive the 3.0 is as follows: Step 1 ? Turn your Game Boy off. Step 2 ? Insert a fully working 3.0 shark in your Gameboy. Step 3 ? Insert the corrupted shark into the working shark. Step 4 ? Insert a game into the corrupted shark. Step 5 ? Turn the Gameboy on. Step 6 ? There should be a different icon on the right side of the Gameboy screen that indicates upgrade. Choose it and let the process complete without interruption. Step 7 ? Wait to see process is complete, turn your Gameboy off and remove the game and sharks from the Gameboy. Step 8 ? Insert shark that was corrupted in Gameboy with game and test shark. Note: If no upgrade icon is seen in step 6: This may mean your corrupted shark has a hardware fault that will not and CANNOT be corrected by reflashing...ergo...your shark is dead. 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 special thanks to Gavin Thornton, Ali Yates and Marios(from Datel) for helping get the original shark link off the ground. A Special Thanks to Bill Kaufman (CodeBoy) for supplying Game Sharks to the Game Shark Central beta test team and to Kris Schineller at Blaze USA for providing sample N64 and GB Xploders for testing and review. Finally, a special thanks to Wayne Beckett ? the Game Shark creator, without whom, the concept of Game Shark may never may have become a reality. Macrox ? April-21-2001 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. Special thanks again to Tolos, DgenerateKane and Hyperhacker for picking up the torch and keeping the text alive and well. People whom have shared ideas and contributed information for this document: Kong K. Rool (aka Parasyte) Macrox (mailto:[email protected]) Tolos - [email protected] DGenerateKane HyperHacker ShadowKnight Jim Reinhart (Game Shark Central Founder) Code Master Kamek Freeza Subdrag Viper666(187) Sutaz james007 Gold64007 Stinky613 Crocc Zap2 CodeBoy Savior Charizard Dr. Ian Curly9od Bleeding Gums Murphy Kola FoxDie ARHQ ? our AR PRO replay affiliates. 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, Dextrose, Interact and Datel for fruitful discussions. ------------------------- 6) Legal ---------------------------------------- This document Copyright � 1999 - 2002 GS 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. Nintendo64, PSX(Playstation), Game Boy, Game Boy Advanced, GameShark, Interact, Datel, GS Central, Pelican, Game Genie by Galoob, Code Breaker, Xploder, Xplorer, Fire International, Blaze USA, and any aforementioned game or product are trademarks of each respective company and product of respective companies as cited in this document. GameShark device is not sponsored, endorsed or approved by Nintendo, Sony or Sega. GS Central www.gscentral.com is an independent code club and cheat code information web site and is not affiliated with Interact Accessories, Pelican Accessories, Fire International, Blaze LTD, Nintendo. Sony, Sega or Microsoft