This original document was written by: Tony Hedstrom t_hedstrom@yahoo.com http://www.angelfire.com/games2/codehut/ "How to make Game Genie codes the easy way" Updated version (version 0.9) This document explains a very easy way to make new Game Genie codes for Super Nintendo (SNES) games. This method will also work on Nintendo (NES) games, but it was written with SNES games in mind. If you want more information about making NES Game Genie codes, you can visit my website (the address is above). This method will work on games that already have some codes, or on games that don't have any codes. This was written with beginner code makers in mind, but advanced code makers may find it useful as well. There are only 3 easy steps! The only real restriction to this method is that it works best on RPG type games, or games that use lots of specific values (like the price of items, etc), but it doesn't work as well on other types of games. Here is a partial list of games that I have personally used this method on: Destiny of an Emperor-NES Final Fantasy-NES Final Fantasy 2j-NES Final Fantasy 3j-NES Final Fantasy 2-SNES Final Fantasy 5-SNES Inindo: Way of the Ninja-SNES Legacy of the Wizard-NES RC Pro Am 2-NES Romance of the 3 Kingdoms 4-SNES Sailormoon-SNES Seiken Densetsu 3-SNES Swords & Serpents-NES Terranigma-SNES Ultima 2-NES Uncharted Waters-SNES And many others.... This list of games (above) will give you an idea of which type of games will work best with this method. If you want to see the GG codes I made for the games listed above, you can get them from my website: http://www.angelfire.com/games2/codehut/ So if you have an RPG type game, and you want an easy way to make new Game Genie codes, then you've come to the right place. OK, lets get started... By far, the hardest part of making a new Game Genie code is finding the right ROM address. If you have ever opened up a NES or SNES game ROM with a hex editor, then I'm sure you have noticed that there are thousands, and thousands, and thousands of numbers. One of those numbers is the one you want, but which one? How on earth can you find the right one? Well, I'm gonna tell you how. It's really quite easy once you know how. The key word here is "patterns". We will find specific patterns while playing the game and then try and find those same patterns in the ROM. For this example, I will show you how I found the starting stat codes for Cecil in Final Fantasy 2-SNES. In this example (and in most games), the codes for the rest of the characters are right next to the first code you find, so making codes for the other characters is usually very easy. Here is a list of what you will need: 1) The ROM for the game you want codes for. (Please don't ask me for ROMs). 2) A hex editor (I'll be using Hex Workshop v 2.54). 3) A Game Genie to hex conversion program called ggconvc. You can download this program from my website (in the "Download" section): http://www.angelfire.com/games2/codehut/ Before we begin, just remember that we're looking for a group of numbers (like character stats) that are listed all in a row (together). If you're looking for character starting stats, make sure you start playing the game without any codes entered, and when you write down the starting stats (in step 1 below), make sure that you write the stats down before you start entering battles, or as soon as you can access the stat screen. Step 1: Start playing the game you want codes for (in this example, I'm using FF2-SNES). Get to a point in the game where you can see the character stats (or whatever group of numbers you are looking for). In this example, I'm looking at the screen that shows me what the stats are for Cecil. Here is what they are: Cecil's starting stats: Str. 13 Agil. 10 Vit. 11 Wis. 6 Will 3 Write these numbers down. Step 2: Now, we need to convert the numbers that you just wrote down into hex numbers. If you don't know how, you can use the Windows Calculator. Cecil's starting stats (in hex): Str. 0D Agil. 0A Vit. 0B Wis. 06 Will 03 Write these number down for later use. Step 3: Open up the ROM of the game you are trying to find codes for with a hex editor. Click on the "Find" button and type in all of the hex numbers that you wrote down in step 2. Type in the hex numbers without any spaces between them, like this: 0D0A0B0603. Make sure you put them in the same order that you saw them in the game. Click on the "Find Next" button and with any luck, you will get a match. If you get a match, write down the offset number shown at the bottom of the screen. In this example, the offset is: 0007AB0F. This address (or offset) is the right ROM address for Cecil's starting Str. The next address (0007AB10) is the one for his starting Agil. The next address (0007AB11) is the one for his starting Vit, and so on. You will find the addresses for Cecil's starting HP a few bytes before the addresses listed above. They should be at 0007AB07 and 0007AB09 (one is for his current HP, and the other is for his max HP). Also, you can let Cecil start with MEGA amounts of HP by making codes for these two addresses: 0007AB08 and 0007AB0A. You can make codes that let all the other characters start with MEGA HP as well, just use the above example as a guide to find the right address. If you keep on going down the ROM file, you will see that you can easily find codes for all of the other characters starting stats (including HP). If you don't find a match the first time, try removing one byte at a time and doing another search. Don't bother searching for a match with less than 3 bytes, because you will usually get too many matches. If you get more than one match the first time, you will probably need to try all of the matches until you find the right one. Once you find the right ROM address (or you think it could be the right one), read down a little bit to find out how to convert the ROM address into a working Game Genie code. Here are a few tips: -Look for patterns of numbers in the game. -Remember to convert the numbers in the game into hex numbers when searching with the hex editor. -Remember that once you find the right ROM address, there are usually many other useful codes nearby. -Use your imagination to think of different patterns of numbers in the game. -If you don't find any matches, try removing numbers from the end of the list (1 byte at a time). -If you still don't find any matches, try removing numbers from the beginning of the list (1 byte at a time). -Sometimes, if you don't find any matches, try mixing the numbers around some. -If you still don't find any matches, then just quit trying on that game and try finding codes on another game instead. I have tried to find codes on LOTS of games and have struck out, so don't be discouraged. This method doesn't work on all games. -If you want to use the above method to make "free item" codes, then go to my website and read this doc: "Code making tips". -Remember, this method doesn't work very well for finding "infinite" type codes (infinite HP, infinite energy, etc). -If you're having trouble understanding all of this, try getting a FF2 US (SNES) ROM and following along with the example, that should make it easier to figure out how to do it with a different game. Well, I hope this takes some of the mystery out of making Game Genie codes. I remember several years ago when I got my first NES Game Genie... I knew I wanted to learn how to make my own codes, but I couldn't find any easy-to-understand documents on the subject at the time. If this document causes at least one person to start making GG codes, then it was well worth the effort. ===================================================== UPDATE: Below are instructions on how to convert a ROM address into a working Game Genie code... NOTE: This only applies to SNES games (not NES). You can get NES info from my website. LoROM games............... This explains how to convert a ROM address from a LoROM game into a working SNES Game Genie code. To find out if a game is LoROM or HiROM, just start the game using SNES9x (emulator) and it will tell you at the bottom of the screen when the game starts. If you have a HiROM game, skip down to the HiROM section. When you have the right ROM address, you have to subtract $200 (hex) from the address to compensate for the 200 byte header at the beginning of the ROM. You don't need to do this if you already removed the 200 byte header from the ROM before you found the ROM address. Next, take your address and add C00000 to it. Now, put the new number into cheatmaster's GG to hex converter program, then click on the "Show 32K" button and the correct GG code will show up on the right. (You can download cheatmaster's GG to hex conversion program from my website.) Sometimes, you may need to subtract 800000 from the hex address that is shown on the right (see below). ---------------------------------------------------- SNES LoROM Example: (FF2/US SNES) ROM address: 07AB0F Subtract $200: 07AB0F - 200 = 07A90F Add C00000: 07A90F + C00000 = C7A90F Enter C7A90F into the converter (with a data value *) and click on the "Show 32k" buttom. The code shown on the right, should be the right GG code. In this example, if you entered C7A90F:63 into the converter, and then press "Show 32K", this is what you would see on the right: 17CD-17E3 8FA90F:63 * The data value can be any number between 00 and FF (hex) depending on what value you want for that code. (In the above example, 63 is the data value.) For instance, if you enter 05 as your data value, then the code will give you 5 HP, or 5 agility, or 5 of whatever the code is for. If you enter FF, you will get 255. Sometimes, that GG code will work on an emulator, but not on a real SNES. If that GG code doesn't work on a real SNES, try subtracting 800000 from the hex code under the GG code (the one that was displayed on the right), like this: 8FA90F - 800000 = 0FA90F. Enter this new hex code into the converter to get the new GG code. (Do not press the "Show 32k" button.) So in this example, enter 0FA90F into the converter (along with a data value) and you will get your new GG code, which is: 0FA90F:63 = 17CD-07E3. Between the two GG codes (17CD-17E3 and 17CD-07E3), one of them should work on a real SNES (usually the second one). So in this example, 17CD-07E3 will let Cecil start a new game with 99 Str. ==================================================== SNES HiROM games............... This explains how to convert a ROM address from a HiROM SNES game into a Game Genie code. To find out if a game is LoROM or HiROM, just start the game using SNES9x (emulator) and it will tell you at the bottom of the screen when the game starts. When you have the right ROM address, you have to subtract $200 (hex) from the address to compensate for the 200 byte header at the beginning of the ROM. You don't need to do this if you already removed the 200 byte header from the ROM before you found the ROM address. Next, take your address and add C00000 to it. Now, put the new number into cheatmaster's GG to hex converter program and you will get the right GG code. (You can download cheatmaster's GG to hex conversion program from my website.) Usually, if a GG code for a HiROM game works on an emulator, then it will probably work on a real SNES. ------------------------------------------------------ SNES HiROM Example: (FF5 SNES) ROM address: 112F41 Subtract $200: 112F41 - 200 = 112D41 Add C00000: 112D41 + C00000 = D12D41 Enter D12D41 into the converter (with a data value *) and you will get your GG code. In this example, if you enter D12D41 into the converter, this is the GG code you get: D12D41:17 = F540-5005. * The data value can be any number between 00 and FF (hex) depending on what value you want for that code. (In the above example, 17 is the data value.) For instance, if you enter 05 as your data value, then the code will give you 5 HP, or 5 agility, or 5 of whatever the code is for. If you enter FF, you will get 255. If you have any questions, you can email me at: Tony Hedstrom t_hedstrom@yahoo.com You can find many other "How to" documents, and thousands of original Game Genie codes that I made at my website: http://www.angelfire.com/games2/codehut/