Code:
      ___             ___            ___            ___            ___     /\  \           /\  \          /\  \          /\  \          /\  \
    //\\  \         //\\  \        //\\  \        //\\  \        //\\  \
   ///\\\  \       ///\\\  \      ///\\\  \      ///\\\  \      ///\\\  \
  ///  \\\  \     ///  \\\  \    ///  \\\  \    ///  \\\  \    ///  \\\  \
 ///  / \\\  \   ///  / \\\  \  ///  / \\\  \  ///  / \\\  \  ///  / \\\  \
///__/   \\\__\ ///__/   \\\__\///__/   \\\__\///__/   \\\__\///__/   \\\__\
\\\  \ ___\/__/ \\\  \ ___\/__/\\\  \    \/__/\\\  \    \/__/\\\  \    \/__/
 \\\  \/\  \     \\\  /\  \     \\\  \         \\\  \         \\\  \
  \\\  \\\ _\     \\\ \\\__\     \\\  \         \\\  \         \\\  \
   \\\///  /       \\\///  /      \\\  \         \\\  \         \\\  \
    \\//  /         \\//  /        \\\__\         \\\__\         \\\__\
     \/__/           \/__/          \/__/          \/__/          \/__/  TM
 
GAME GENIE CODE CREATORS CLUB |  SUPER NINTENDO GAME GENIE HANDBOOK, ver. 6.61 
==============================================================================                  
                              | (c) 1995, 1996, 1998 Game Genie Code Creators 
                              | Club. All rights reserved. This material may 
     -===WRITTEN BY===-       | not be reproduced, stored in a retrieval
     aerostar13@aol.com       | system, transmitted, or published, in any form
                              | or by any means-- electronic, mechanical, 
                              | xerographic, or otherwise-- without being
      -=====DATE=====-        | fully credited or without the prior written   
      5 November, 1998        | permission of a club official. E-mail      
                              | aerostar13@aol.com or strato508@aol.com for
                              | more information.
============================================================================== 
This file is best viewed in a monospace font such as Courier.
Optimized for viewing in the MS-DOS Editor.




*********************
* TABLE OF CONTENTS *
*********************


Part 1 :  Introduction
Part 2 :  Credits
          2.1   Credits
          2.2   Revision History
Part 3 :  Notes
          3.1   Things to Remember
          3.2   What's New in this Version?


BASICS:   This section is for people who don't know a thing about making
-------   Game Genie codes.


Part 4 :  Why Some Codes Don't Work
Part 5 :  Conversion Chart
Part 6 :  Patience is a Virtue
Part 7 :  Creating & Altering Codes
          7.1   Introduction
          7.2   Creation Method: GUESS 'N' OBSERVE
          7.3   Creation Method: PORTING OVER
          7.4   Creation Method: ALTERED GUESS
          7.5   Alteration Method: KNOWLEDGEABLE GUESS
          7.6   Alteration Method: SLOTS ONE AND TWO
          7.7   Alteration Method: MAKE IT BETTER 
Part 8 :  Chaos and Order
          8.1   Introduction
          8.2   Code Finding Sheet
          8.3   Code Altering Sheet
Part 9 :  Effect Meter


BEYOND THE BASICS:  This section is for people who know the basic 
------------------  fundamentals of the Game Genie and wish to delve 
                    deeper into its inner workings.


Part 10 : Hex Marks the Spot
          10.1  Introduction
          10.2  Hex Counting
          10.3  What's in a Code?
          10.4  Numerical Value Chart
          10.5  Examples of Decoding the First Two Digits
Part 11 : Bits, Bytes, and Binary
          11.1  Introduction
          11.2  Bits & Bytes
          11.3  Numerical Chart: The Sequel
Part 12 : Breaking the Cypher
          12.1  Introduction
          12.2  Bit Shift
          12.3  HiROM and LoROM
          12.4  The Long Way
          12.5  Semi-unimportant Side Note
          12.6  Example from a HiROM Game
          12.7  Example from a LoROM Game
Part 13*: An Easier Way to Decode
          13.1  Introduction
          13.2  Know thy Slots
          13.3  Actual Values of the Slots
          13.4  What's Worth What? The Master Chart!
          13.5  Example using the Chart
          13.6  Converting Back: from ROM Address to GG Code   
Part 14 : Using the Slots
          14.1  Introduction
          14.2  Slots 1 and 2
          14.3  Slot 3
          14.4  Slot 4
          14.5  Slot 5
          14.6  Slot 6
          14.7  Slot 7
          14.8  Slot 8
Part 15 : Infinite or Illiterate?
          15.1  Introduction
          15.2  Explanation
Part 16 : Company Hex Methods
          16.1  Introduction
          16.2  Company Hex Method Chart
Part 17 : Words from the Wise
          17.1 \
           to   > Tips on Code Creation
          17.7 /
Part 18 : Anatomy of the FF3 Code
          18.1  Introduction
          18.2  Memory Address Positions
          18.3  Disassembling a Code


Part 19 : Final Word


* indicates completely new material in version 6.6!




**************************
*  PART 1: INTRODUCTION  *
**************************


	People were having difficulty using the section of the handbook to
convert GG codes to ROM addresses.  So, in this release, I added part 13,
which is another (easier) method to accomplish the same thing.  Hopefully,
this will be easier to understand.  Some minor errors have also been corrected
in this version, and the handbook has been sectionalized for easy reference.


                                                AeroStar13@aol.com
                                                GGCCC co-president
                                              
*******************
* PART 2: CREDITS *
*******************


<2.1>  Credits ---------------------------------------------------------------   


Writers/contributers to the handbook:   Makers of their own handbooks:
AeroStar13@aol.com
gervase@azstarnet.com
starfox@earthcorp.com
LrdRokoL@aol.com                        Jay McGavren (thespook@novia.net)
LuKaSX@aol.com                          Michael Goldman
Strato508@aol.com					
Scmche19@mirage.skypoint.com
mortimer_@hotmail.com


<starfox@earthcorp.com> provided the bit-encoding information for
GG Code to CPU Address conversion, and the method for CPUAddress to
ROMAddress conversion in LoROM games.


<aerostar13@aol.com> and <gervase@azstarnet.com> devised the method
for CPUAddress to ROMAddress conversion in HiROM games.




<2.2>  Revision History-------------------------------------------------------    


VERSION 6.6 (November 1998) - New, easier-to-understand section on Game Genie
  to ROMAddress conversion.  Also added a section on how to reverse the
  process more easily.  Revised other parts of the handbook; reorganized the
  handbook into sections.


VERSION 6.0 (September 1998) - This version was the first to contain
  methods of finding the CPU / ROM addresses for Game Genie codes.  It's the
  only document I know of that specifies how to convert GG codes to ROM
  addresses. [by aerostar13@aol.com]


VERSION 5.0 (June 1998) - Corrected many of the errors in Rokol's previous
  handbooks. [by aerostar13@aol.com]


VERSION 4.0 (December 1996) - One of Rokol's last contributions to the GGCCC, 
  this guide contained information from some "source" he had at Galoob.  Some 
  of it was legitimate, but some of it was inaccurate. [by lrdrokol@aol.com]


VERSION 3.3 (October 1996) - Rokol corrected some (though not all) of the
  errors in his 3.0 version. [by lrdrokol@aol.com]


VERSION 3.0 (June 1996) - In this version, Rokol introduced the 'advanced'
  section, with the first allusions to the fact that a code altered a memory
  address.  At this point, our knowledge was still very sketchy. First use of
  the "D, 0, 6, A", "F, 9, B, 2", etc. patterns for positions 5 / 7 in the
  handbook. [by lrdrokol@aol.com]


VERSION 2.0 (April 1996) - Included the data values for the first two
  positions of the codes (although somewhat incorrectly :P).  First use of
  the name 'handbook' here.  [by lrdrokol@aol.com]


VERSION 1.5 (November 1995) - Corrected some errors in version 1.0. 
  [by lrdrokol@aol.com]


VERSION 1.0 (October 1995) - The GGCCC's first attempt at a Game Genie Guide.
  Rokol wrote down the techniques (mostly based on guessing and observation).
  [by lrdrokol@aol.com]






* Read this document and want to join the GGCCC?  
  Fill out the new member application on our website:  
  http://ggccc.dragonfire.net/




*****************
* PART 3: NOTES *
*****************


<3.1>  Things to Remember----------------------------------------------------


-Please keep in mind that some methods/techniques in this guide may not 
 work with some games.
-Some code examples and the Galoob effects chart are taken from Galoob's
 Codebook and Programming Manual.
-Terms used in this guide:
 GG             - Game Genie
 Alphanumerics  - Letter(s)/number(s) (in a GG code)
 Position(s)    - One or more of the slots in the 8 character GG code.
 Slot(s)




<3.2>  What's new in this version?-------------------------------------------


v6.60 -Lots of explanations.
      -MANY corrections.
      -Part 13, explaining how to encypher / decypher GG codes without the
       use of binary.


v6.61 -a few small (but critical) corrections (like this list for example :))




*************************************
* PART 4: WHY SOME CODES DON'T WORK *
*************************************


An editorial written by LrdRokol@aol.com


     What you are about to read is my PERSONAL OPINION and the information
that a Galoob Game Genie representative has given me.


     I have been recieving complaints from people about codes not working 
on their game.  Based on my expeience and other sources, I will explain 
why some codes don't work for your game.


     You see, Nintendo sued Galoob many years ago, to try to stop  
Galoob from creating their Game Genie.   Nintendo lost the lawsuit.


     Nintendo changes the configuration of their games.  I made this  
observation after buying another Final Fantasy 3 game.  I have noticed 
that there are still codes that won't work for both of them.  That
led me to believe that Nintendo is creating different versions of the 
games they make.  They are doing this to either fix the bugs in their
games and to frustrate Galoob from finding more codes.






******************************
*  PART 5: CONVERSION CHART  *
******************************


     Are you having problems getting a code to work?  Well, it may be
that you have a different version of the game.  However, you can make 
that code compatible by using the "CONVERSION CHART".


CONVERSION CHART
----------------
D <------> 6         0 <------> A
F <------> B         9 <------> 2
4 <------> C         7 <------> 3
7 <------> 8         5 <------> E


     To make a code work for you, all you have to do is to change the
3rd slot of a code to the equivalent alphanumeric on the conversion
chart.


EXAMPLE:
--------
CODE:     EEC4-EDD8  "255 damage to enemy"


     If the code doesn't work try changing the "C" into a "4".  So, the
new code is... EE44-EDD8.






********************************
* PART 6: PATIENCE IS A VIRTUE *
********************************


     Finding GG Codes is not an easy job.  It takes a lot of time and
patience.  Following the list below will help make your code programming
experience more enjoyable.


1.        Do not work for more than an hour in finding codes.  That is a
     major cause of stress.  If you are going to work more than an
     hour, take a fifteen minute break for every hour you work on codes.
2.        Turn the game music down and play some other music (music
     you like).  Listening to the same tune over and over will drive
     you crazy.
3.        Make yourself comfortable, but not too much.  Being too comfortable
     might cause you to fall asleep!  
4.        Turn the brightness of your TV down.  Looking at a bright screen 
     too long is not good for your eyes.  It also puts you to sleep.
5.        Have something else to do while you are looking for codes so you
     don't get bored too fast.
6.        Most importantly, do not get mad when you can't find codes...
     chances are you may have even worse luck.  You are a better programmer
     when you are not mad or stressed.
7.        If you have more than one GG, use it.  Using more than 1 GG is
     helpful because it increases the amount of codes you can enter
     each time.  But, don't use more than 3 GG's.  Using more than 3 GG's
     will only serve to confuse you.






*************************************
* PART 7: CREATING & ALTERING CODES *
*************************************


<7.1>  Introduction-----------------------------------------------------------


The methods explained in this section rely on guessing and identification
in patterns of codes to make new ones.  This will probably be how you make
most of the best codes... the best things always seem to come randomly.
Mathematical (and therefore more precise) methods of finding codes are 
explained in the "Advanced" section of the handbook.


* CODE CREATION METHODS:
     A. Guess 'N' Observe
     B. Porting Over
     C. Altered Guess


* ALTERATION METHODS:
     A. Knowledgable Guess
     B. Slot 1 and 2
     C. Make it Better


<7.2>  Creation Method: GUESS 'N' OBSERVE-------------------------------------


     Depending on your luck, you can either find codes or nothing.
To use this method, all you do is put random alphanumerics down
and check if it changes anything in the game.  Easy?  Yup, but it all
depends on your luck.




<7.3>  Creation Method: PORTING OVER------------------------------------------


     This is when you take codes from one game and port them over to
another version of the game.  For example, take codes from MegaMan X
and plug it into MegaMan X2.  Due to many versions of games this
method might not work at all.


NOTE:     This, however, works well with GameBoy GG Codes.




<7.4>  Creation Method: ALTERED GUESS-----------------------------------------


     This is probably the most useful of the random methods. You actually know
what a code does and try to make new ones by changing it through guesses.


EXAMPLE:  ****-7765 <---- means "AFFECTS BATTLE" in Chrono Trigger.
So, making this observation you can make guesses on the first 4 slots
of the code.  Here are some of the results of this method.
     - 9DA6-7765    "INFINITE M.P. FOR THE FIRST CHARACTER"
     - B623-7765    "9999 DAMAGE"


 


<7.5>  Alteration Method: KNOWLEDGEABLE GUESS---------------------------------  
     Sometimes looking at a set of codes will show you what you need
to change to get different effects.


EXAMPLE: "Soldiers of Fortune"
     - DF40-ED75    "BRIGAND STARTS WITH BOMB SPECIAL"
     - DF40-EF75    "MERCENARY STARTS WITH BOMB SPECIAL"
     - DF40-E475    "GENTLEMAN STARTS WITH BOMB SPECIAL"


     You will notice that slot 6 is changed to affect different
people.  Knowing this, you can guess that changing slot 6 can be
changed for different effects.




<7.6>  Alteration Method: SLOTS ONE AND TWO-----------------------------------   


     Changing slots 1 and 2 is the easiest way to find codes.


EXAMPLE: "Paladin's Quest"
     - **EA-6F1D    "CHANGE ITEM IN CHENZI'S RIGHT ARM"


     You will notice that putting any alphanumerics in slots 1 and 2
will give Chenzi any possible items on his right arm.




<7.7>  Alteration Method: MAKE IT BETTER--------------------------------------   


     Galoob creates codes to help make a game easier to play for you,
not make you a god.  But you can change that just by upgrading the
codes that Galoob has provided.


EXAMPLE: "Lagoon"
     - D42D-6D6C    "START WITH 612 G.P."
     - D92D-6D6C    "START WITH 1380 G.P."


     Try changing slots 1 and 2 to "EE".  Trust me, you will be
surprised by the results.




        Here is a chart that shows the difficulty of creating
codes with the above methods.


Method                  Create or Alter?        Difficulty
--------------------------------------------------------------------------
Guess 'n' Observe       Create                  Very Hard
Porting Over            Create                  Hard
Altered Guess           Create                  Relatively Easy
Knowledgable Guess      Alter                   Easy
Slot 1 and 2            Alter                   Very Easy
Make it Better          Alter                   Very Easy






***************************
* PART 8: CHAOS AND ORDER *
***************************


<8.1>  Introduction-----------------------------------------------------------   


     When you create or alter codes, you should at least have a little
organization so you don't have to worry about losing or misplacing
codes.  I'm not telling you to copy my procedures for organization.
But to observe, how I keep my codes organized and probably help you
develop your own method of organization.


<8.2>  Code Finding Sheet: SNES-----------------------------------------------   


NAME:_______________________________
|     CODE    |          EFFECT                           /ALTER/FINAL/NONE |                                                                   
|______|______|__________________________________________|_____|_____|______|
|______|______|__________________________________________|_____|_____|______|
|______|______|__________________________________________|_____|_____|______|
|______|______|__________________________________________|_____|_____|______|
|______|______|__________________________________________|_____|_____|______|
|______|______|__________________________________________|_____|_____|______|
|______|______|__________________________________________|_____|_____|______|




SLOTS:   
 ---------------------------------------------------------------------------
| 1234 | 5678 |  A BRIEF DESCRIPTION OF THE EFFECT      /ALTER /FINAL /NONE |
 ---------------------------------------------------------------------------
KEYS:
ALTER   -Can be altered to create more new codes.
FINAL   -Does no need to be altered.
NONE    -No visible effects


EXAMPLE:
--------
NAME: Lagoon
|    CODE     |          EFFECTS                        /ALTER /FINAL /NONE
 ------------------------------------------------------|------|------|------
| 4D2D | 6D6C |  Start with 8292 GP.                   |******|      |      |
 ---------------------------------------------------------------------------
NOTE: You can alter this to give you max GP.




<8.3>  Code Altering Sheet: SNES----------------------------------------------   


NAME:_______________________________
|     CODE      |                       EFFECT                                                                                                                    
|_|_|_|_|_|_|_|_|___________________________________________________________|
|_|_|_|_|_|_|_|_|___________________________________________________________|
|_|_|_|_|_|_|_|_|___________________________________________________________|
|_|_|_|_|_|_|_|_|___________________________________________________________|
|_|_|_|_|_|_|_|_|___________________________________________________________|
|_|_|_|_|_|_|_|_|___________________________________________________________|
|_|_|_|_|_|_|_|_|___________________________________________________________|
|_|_|_|_|_|_|_|_|___________________________________________________________|
|_|_|_|_|_|_|_|_|___________________________________________________________|


WAYS TO USE IT:


Method 1: Altering A Slot
NAME: Mega Man X
|1|2|3|4|5|6|7|8|                       EFFECT
 ---------------------------------------------------------------------------
|D|B|B|E|4|4|6|F|____Start with 10 Lives____________________________________|
|*|D|*|*|*|*|*|*|____Start with 1 Life______________________________________|


Method 2: Altering Several Slots
NAME: Super Metroid
|1|2|3|4|5|6|7|8|                       EFFECT
 ---------------------------------------------------------------------------
|C|2|8|8|C|5|A|7|_Almost Infinite Missiles__________________________________|
|*|*|*|A|*|9|D|*|_Almost Infinite Super Missiles____________________________|






************************
* PART 9: EFFECT METER *
************************


The Game Genie uses an effect meter to determine the extremity of
the first two positions.  This is in the manual, but is also reprinted
below for convenience.  


Example:         DAFFY DUCK: THE MARVIN MISSIONS GAME
                 DBBD-1DA4      Start with 9 lives
                 49BD-1DA4      Start with 25 lives
                 17BD-1DA4	  Start with 99 lives


The meter is below:                 
----------------------------------------------------------------------------
D    F    4    7    0    9    1    5    6    B    C    8    A    2    3    E
Smallest Effect                                               Biggest Effect
----------------------------------------------------------------------------




NOTES:
------
Some games might reverse the Effect Chart.  For instance, there are
some codes for Final Fantasy II in which "D" will produce the largest
effect and "E", the smallest.


The effects chart is actually an encoding system for hex numbers.  This
concept is explained further in the "advanced" section.


     Now that you have "working" codes (or if you already have codes), 
you'll probably want to alter them so something cool happens.  The charts 
and examples below will help you figure out what you are doing.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
============================ BEYOND THE BASICS =============================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


*******************************
* PART 10: HEX MARKS THE SPOT *
*******************************


<10.1> Introduction-----------------------------------------------------------   


Note:  The letter "h" after a number indicates that number is in
	  base 16 (hexadecimal).  It is not actually a part of the numeral;
	  it merely distinguishes it from a decimal number.


     Each Game Genie code is like an encoded hexadecimal number.  Hexadecimal
is a base 16 number system, with the digits 0 through 9 and A through F. 
Instead of "9" having the largest value like in our decimal system, Fh has
the largest value.


<10.2> Hex Counting-----------------------------------------------------------   


If you were to count in hexadecimal, the sequence would be: 


00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10, 11, 12, 
13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, 22, .... [all h]


Ah is equivalent to 10, Bh = 11, Ch = 12, Dh = 13, Eh = 14, and Fh = 15.


	Because there are 15 numbers (excluding 0) before "10" in hexadecimal,
10h is equal to 16.  Therefore, instead of having the "ones", "tens",
"hundreds", and "thousands" place like in base 10, we have the "ones",
"sixteens", "256s", and "4096s".  The number "5" in the number 50h is actually
worth 16 x 5 = 80.  "8" in 8A0h is worth 256 x 8 = 2048.
Let's try to decode the hex number 3E5h.


                TWO-HUNDRED FIFTY-SIXES    SIXTEENS    ONES
                -----------------------    --------    ----
Hex Number                    3               E        5
Dec Number                    3              14        5
Dec Value       256 x 3  =  768   16 x 14 = 224        5 = 1 x 5
	
	To get the total value of the number, add the decimal values
	of all the places together.


	Total Value = 768 + 224 + 5 = 997.




<10.3> What's in a Code?------------------------------------------------------   


	Why are we learning about hexadecimal?  Because the a Game Genie code
is actually an encoded, 8-digit hexidecimal number.  Before we get to what,
exactly, each digit of that number represents, we must break the GG's
encyphering scheme.
	 	
   The "effect chart" mentioned in the above part is actually a substitution
cypher that the GG uses to encode memory addresses.  This code is ALWAYS the
same; even though the effects chart can be reversed, this is due to the game's
setting a factor to "LOWER NUMBER = MORE EFFECT".  Everything in a game is 
controlled by a number, or a combination of numbers.


Here, now, is the Game Genie's encoding scheme.  Since you will most often
use direct numerical substitution with the first two alphanumerics, there
are columns on the chart which indicate those digits' values.


In a code XY00-0000, X + Y = the value of the first two digits.




<10.4> Numerical Value Chart--------------------------------------------------   


                        VALUES:
                        (X) (Y)
GG      HEX     DECIMAL 1ST 2ND
--      ---     ------- --- ---
D       0h      0       0    0
F       1h      1       16   1
4       2h      2       32   2
7       3h      3       48   3
0       4h      4       64   4
9       5h      5       80   5
1       6h      6       96   6
5       7h      7       112  7
6       8h      8       128  8
B       9h      9       144  9
C       Ah      10      160  10
8       Bh      11      176  11
A       Ch      12      192  12
2       Dh      13      208  13
3       Eh      14      224  14
E       Fh      15      240  15




<10.5> Examples of Decoding the First Two Digits------------------------------   




E2 = 253            X = E = 240    |    17 = 99             X = 1 =  96
                    Y = 2 =  13    |                        Y = 7 =   3
                    X + Y = 253    |                        X + Y =  99
-----------------------------------------------------------------------
10 = 100            X = 1 =  96    |    A6 = 200            X = A = 192
                    Y = 0 =   4    |                        Y = 6 =   8
                    X + Y = 100    |                        X + Y = 200




**********************************
* PART 11: BITS, BYTES, & BINARY *
**********************************


* Note:  if you don't understand this, don't worry!  You can still decode
  GG codes using only hexadecimal.  Read on for more information!


<11.1> Introduction-----------------------------------------------------------   


	Just when you thought you'd had enough math... it's time for ANOTHER 
number system:  binary, or base 2.  This is a lot simpler than hex; the 
only digits are 0 and 1.  The counting goes like this:  0, 1, 10, 11, 100, 
101, 110, 111, 1000, etc.


<11.2> Bits & Bytes-----------------------------------------------------------   


	One binary digit is known as a "bit".  A "bit" can have two possible 
states: 0 (off) or 1 (on).  Each Game Genie code is actually composed of a 
24-bit encoded memory address (e.g., 100011011001111100101011), and 8-bit
encoded data (e.g., 11001001) -- don't worry about this for now; you'll
understand it later.
	Eight bits are known as a "byte".  A byte is also the amount of
information that two hex digits (the first two digits of a Game Genie
Code) can store -- 256 different values.
	If two hex digits can store a byte, than each individual hex digit
represents a 4-bit binary sequence.  The digits of the Game Genie can
be further broken down into their binary equivalents:


<11.3> Numerical Chart: The Sequel--------------------------------------------   


GG   HEX  DECIMAL   BINARY
--   ---  -------   ------
D    0h      0       0000
F    1h      1       0001
4    2h      2       0010
7    3h      3       0011
0    4h      4       0100
9    5h      5       0101
1    6h      6       0110
5    7h      7       0111
6    8h      8       1000
B    9h      9       1001
C    Ah      10      1010
8    Bh      11      1011
A    Ch      12      1100
2    Dh      13      1101
3    Eh      14      1110
E    Fh      15      1111


				 
*********************************
* PART 12:  BREAKING THE CYPHER *  
*********************************


<12.1> Introduction-----------------------------------------------------------   


	Each Game Genie Code represents a 24-bit memory address
in the game (the last 6 digits of the code), as well as 8-bit
data with which the value of that memory address is set.


<12.2> Bit Shift--------------------------------------------------------------   


	This is where things start to get a little complex.  In
the Game Genie code, Galoob has created a double substitution
cypher.  The first step is switching from Game Genie Hex to normal
hex.  The table just above this section will allow you to do that.
	So, if you have the Game Genie Code DF47-0915, that becomes
0123-4567 in normal hex.
	The next step is to drop the first two digits (the value, in
this case it's 01), but REMEMBER it; you'll need it later.  Now
you have a six-digit hex number, 234567h.
	Then, convert the six-digit hex number into binary.  You
should get a 24-bit binary number.  Append zeroes to the beginning
until the number is 24 bits:


            1000110100010101100111 =
234567h = 001000110100010101100111


	Now, this binary number is ALSO encoded (damn those people
at Galoob!  How hard were they trying to make it?).  You have 24
digits, arranged in this order and labelled "a" through "x":


00100011 01000101 01100111
ijklqrst opabcduv wxefghmn  :  24-bit encoded data.


Shift the bits around, and rearrange them in this order:


abcdefgh ijklmnop qrstuvwx  :  24-bit decoded data.
00011001 00101101 00110101


	Convert this number to hex (192D35h), and what you have is known
as the CPU ADDRESS.  What you do from here depends on what game the
code is for:


<12.3> HiROM and LoROM--------------------------------------------------------   


- If the code is for a game utilizing the HiROM memory system (many
games made late in 1993 or after -- 16 megabit or more games), then do the
following:
   * If the CPU address is GREATER than BFFE00h, then subtract BFFE00h 
     (12,582,400) from the CPU address to get the ROM ADDRESS, the actual 
     location of the code in the game's ROM (editable with a hex editor).  


   * If the CPU address is LESS than BFFE00h (this won't happen too often
     because of the way HiROM games are structured), then _add_ FE9CEh to 
     the CPU address to get the ROM address.


- If the game is using the LoROM memory system (most games less
than 16 megabit), subtract FE00h from the CPU Address to get the 
ROM Address.


<12.4> The Long Way-----------------------------------------------------------   


Where'd I get those numbers from?  Well, the above methods are just 
shortucts.  The true process that occurs is quite a bit longer.  If
you find that the "shortcut" methods, don't work, you can do the 
following:


    1.  Take the CPUAddress and convert it back into binary
        (000110010010110100110101)
    2.  Remove bit 15 (the sixteenth bit from the right, or
        the ninth bit from the left).
        (00011001_010110100110101)
    3.  Shift all the higher-than-15 valued bits to the right
        to fill in the space and append a zero to the beginning:
        (000011001010110100110101)
    4.  Make all the first four digits zeroes.
        EXCEPTION:  If all four of the first four digits are 1's,
                    and this process does not work for that
                    code, try only switching the first THREE
                    digits to zeroes.
        (000011001010110100110101)
    5.  Take this number and convert it to hex. (0CAD35h)
    6.  If the game uses the LoROM memory system (most games less
        than 16 megabit or released before mid-1993):
        Add 200h (512 decimal) to this number:
         0CAD35h
        +   200h
        --------
        [0CAF35h] is your ROM Address for a LoROM game.
       
        If the game uses the HiROM memory system (most games 16
        megabit or more or released after mid-1993):
        Add 268200h (2,523,648 decimal) to this number:
         0CAD35h
        +268200h
        --------
        [332F35h] is your ROM Address for a HiROM game.




<12.5> Semi-unimportant Side Note---------------------------------------------        
   
     For those interested in the mechanics 
     behind this, it's a bit-masking using the equation:
     ROMadd. = [(CPUadd. and 7FFFh) or ((CPUadd. and FF0000h) shl 1)] 
               + 200h    [LoROM]
               + 268200h [HiROM]
     If you don't understand this equation, you don't need to be reading
     this as it's not important to the ultimate goal. :)


Okay, totally confused?  We'll try some examples from both a HiROM game
and a LoROM game.




<12.6> Example from a HiROM Game----------------------------------------------   


[FINAL FANTASY III]	
135C-7B85	Terra starts with 110 Vigor


STEP 1:  Convert GG Cypher into Normal Hex
------------------------------------------
Game Genie  --->    Hex
135C-7B85	  --->    6E7A-39B7


STEP 2:  Cut down to six digits
-------------------------------
7A39B7h




STEP 3:  Convert to binary & decypher
-------------------------------------
11110100011100110110111


01111010 00111001 10110111
ijklqrst opabcduv wxefghmn


abcdefgh ijklmnop qrstuvwx
11101101 01111100 10100110


STEP 4: Get CPU Address
-----------------------
111011010111110010100110 = ED7CA6h


STEP 5: Convert to ROM Address
------------------------------
111011010111110010100110


> Remove bit 15
11101101_111110010100110
> Shift
011101101111110010100110
> Switch highest 4 bits to "0"
000001101111110010100110
> Convert to Hex
06FCA6h
> Add 268200h
2D7EA6h
> Put your value in
[2D7EA6:6E] is the ROM address and value
            to set Terra's initial Vigor
            to 110.  Go to this offset
            in a hex editor, change it
            to 6E, and Terra will start
            with 110 vigor without the GG!


Note that 2D7EA6h = ED7CA6h - BFFE00h.  You could've used the
shortcut to avoid the hassle of the later steps. :)




<12.7> Example from a LoROM game----------------------------------------------   


[FINAL FANTASY II]
00CE-6D69	The Gunslinger Code
This is probably the most famous Game Genie code of all time,
so I'll use it for the example.


STEP 1:  Convert GG Cypher into Normal Hex
------------------------------------------
Game Genie  --->    Hex
00CE-6D69   --->    44AF-8085


STEP 2:  Cut down to six digits
-------------------------------
AF8085h




STEP 3:  Convert to binary & decypher
-------------------------------------
101011111000000010000101


10101111 10000000 10000101
ijklqrst opabcduv wxefghmn


abcdefgh ijklmnop qrstuvwx
00000001 10100110 11110010


STEP 4: Get CPU Address
-----------------------
000000011010011011110010 = 01A6F2h


STEP 5: Convert to ROM Address
------------------------------
000000011010011011110010


> Remove bit 15
00000001_010011011110010
> Shift
000000001010011011110010
> Switch highest 4 bits to "0"
000000001010011011110010
> Convert to Hex
00A6F2h
> Add 200h
00A8F2h
> Put your value in
[00A8F2:44] is the ROM address and value
            to have a permanent Gunslinger
            code!


Note also that A8F2h = 1A6F2h - FE00h.  The shortcut
would work here too.




************************************
* PART 13: AN EASIER WAY TO DECODE *
************************************


<13.1> Introduction-----------------------------------------------------------   


     Totally dumbfounded by everything in part 12?  Well, good news:  you
don't have to understand it to create codes, or even to convert codes to ROM
addresses!  You do, however, have to understand how hexadecimal works.  Once
you've done that, you can use the method laid out in this section to convert
the codes.




<13.2> Know thy Slots---------------------------------------------------------   


     Here's some detailed information about the various slots of a Game
Genie Code.


Character Position       What You Can Change It To
~~~~~~~~~~~~~~~~~~       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
1 & 2                    Anything.  Determines the degree to which the
                           memory address is affected.


3                        This seems to act as a "version check" either for
                           the Game Genie or the game.  There are two groups
                           of digits for this position:
                           Group 1: D,F,4,7,0,9,1,5
                           Group 2: 6,B,C,8,A,2,3,E
                           The effect of equivalent positions seems to be
                           the same (e.g. D = 6); however, some versions
                           of Game Genie accept only certain values:
                           - GG VERSION 1 will accept values from both
                             Group 1 and Group 2; however, it will
                             automatically change values from Group 1 to their
                             corresponding value in Group 2.
                           - GG VERSION 2 will accept values from both
                             Group 1 and Group 2; however, it will
                             automatically change values from Group 2 to their
                             corresponding value in Group 1.
                           - GG VERSION 3 will accept values from Group 1
                             ONLY.  It will NOT convert Group 2 values
                             automatically.  Perhaps this is to open a wider
                             range of memory addresses for the newer version?
                             Codes made with Version 3 using Group 1 values
                             for the third position may not work on Version 1
                             and 2 Genies.


4                        Anything; usually gives the code a much different 
                           effect, though in the same area of the game,
                           when changed.


5 & 7                    Change the character to another one in its group:
                           Group 1: D 0 6 A  
                           Group 2: F 9 B 2 
                           Group 3: 4 1 C 3 
                           Group 4: 7 5 8 E 


6 & 8                  	 Change the character to another one in its group:
                           Group 1: D F 4 7 
                           Group 2: 0 9 1 5  
                           Group 3: 6 B C 8
                           Group 4: A 2 3 E


				
<13.3> Actual Values of the Slots---------------------------------------------   


Each slot has a numerical value assigned to its increment.
The numbers listed here are the resulting increase in memory address
from increasing the appropriate slot by 1.  The reason for the "groups"
listed above is that the slots are assigned different values for changing
within groups and out of groups.  The first value on the chart is the
increment going "across" a row on the GROUP CHARTS above; the second value
is the increment going "down" a column on the GROUP CHART.


SLOT    VALUE WITHIN GROUP    VALUE OUTSIDE GROUP
----    ------------------    -------------------
   3    1000h (4096)          0h (0)
   4    10h (16)              10h (16)
   5    100h (256)            400000h (4,194,304)
   6    4h (4)                100000h (1,048,576)
   7    1h (1)                40000h (262,144)
   8    400h (1024)           10000h (65536)


So, to regroup this, the hierarchy of slots is:


7* 6  4  5* 8  3  8* 7  6* 5


* in order to increment this slot "one" in this position in the hierarchy,
  add four to it; e.g., D --> 0 --> 6 --> A


Confused?  The chart below can help.  Just find the right slot, find the
digit that is present in that slot on the chart, and you will find its
value in the CPU Address.  Add all the values of all the slots together,
and you will be able to find the entire CPU address with just a
hex calculator!




<13.4> What's Worth What?  The Master Chart!----------------------------------   


SLOT  DIGIT   VALUE            SLOT  DIGIT   VALUE      
----  -----  -------           ----  -----  -------
3rd   D         0h             4th   D       0h
      F      1000h                   F      10h
      4      2000h                   4      20h
      7      3000h                   7      30h
      0      4000h                   0      40h
      9      5000h                   9      50h
      1      6000h                   1      60h
      5      7000h                   5      70h
      6         0h                   6      80h
      B      1000h                   B      90h
      C      2000h                   C      A0h
      8      3000h                   8      B0h
      A      4000h                   A      C0h
      2      5000h                   2      D0h
      3      6000h                   3      E0h
      E      7000h                   E      F0h


SLOT  DIGIT   VALUE            SLOT  DIGIT   VALUE      
----  -----  -------           ----  -----  -------
6th   D           0h           8th   D          0h
      F           4h                 F        400h
      4           8h                 4        800h
      7           Ch                 7        C00h


      0      100000h                 0      10000h
      9      100004h                 9      10400h
      1      100008h                 1      10800h
      5      10000Ch                 5      10C00h
      
      6      200000h                 6      20000h
      B      200004h                 B      20400h
      C      200008h                 C      20800h
      8      20000Ch                 8      20C00h
      
      A      300000h                 A      30000h
      2      300004h                 2      30400h
      3      300008h                 3      30800h
      E      30000Ch                 E      30C00h


SLOT  DIGIT   VALUE            SLOT  DIGIT   VALUE      
----  -----  -------           ----  -----  -------
5th   D           0h           7th   D          0h
      0         100h                 0          1h
      6         200h                 6          2h
      A         300h                 A          3h
  
      F      400000h                 F      40000h
      9      400100h                 9      40001h
      B      400200h                 B      40002h
      2      400300h                 2      40003h
  
      4      800000h                 4      80000h
      1      800100h                 1      80001h
      C      800200h                 C      80002h
      3      800300h                 3      80003h
  
      7      C00000h                 7      C0000h
      5      C00100h                 5      C0001h
      8      C00200h                 8      C0002h
      E      C00300h                 E      C0003h




<13.5> Example using the Chart------------------------------------------------   


[FINAL FANTASY III]
**5C-7B85		Modifies Terra's Vigor


looking at the chart, we see that...
"5" in slot 3 =   7000h
"C" in slot 4 =     A0h
"7" in slot 5 = C00000h
"B" in slot 6 = 200004h
"8" in slot 7 =  C0002h
"5" in slot 8 =  10C00h
-----------------------
         TOTAL  ED7CA6h


Does that number look familiar?  It should; it's the same CPU adddress
that we arrived at in Part 12 using the bit shift method.  Yes, that
means there is a way to decyhper Game Genie codes without the use of
binary!  Once you have the CPU address, you can do one of these simple
operations to find the ROM address:


> Subtract BFFE00h if the game uses the HiROM memory system (most newer games
  greater than 2 MB [16 megabits] -- Final Fantasy III is one of these):
  
  ED7CA6h - BFFE00h = 2D7EA6h ... which is the correct ROM address.


> If the game uses the LoROM memory system (older games less than 2 MB), 
  instead subtract FE00h to find the ROM address.




<13.6> Converting Back: from ROM Address to GG Code---------------------------  


Okay, now that you've created the memory address for a code using the chart,
you may be wondering:  "How do I go the other way?"  While you could reverse
the bit shift process in Part 12, you could also use the chart above to do it.
This process requires a little deduction on your part, but it's probably
easier than the binary hassle.


What you have to do is separate the hex number into its six digits, then, in
turn, separate the six digits into values which can be made by the numbers
on the chart.


The first thing you have to do is to convert the ROM address back to a CPU
address, which you can do by either _adding_ BFFE00h (for a HiROM game) or
FE00h (for a LoROM game-- see section <12.3> for details).


The next thing you need to do is to convert the CPU address into Game Genie 
format.  The best way to illustrate this is through example.  Let's say you 
have found the CPU address to be DA4DB2h.  We know we're looking to end up
with an eight-digit code [????-????].  The first two ?s will remain that way,
as they indicate the data.  At the end of this process, though, we will have
definite values for the other 6 positions.


DA4DB2h =   D00000h + A0000h + 4000h + D00h + B0h + 2h


1. The first task is to make D00000h using numbers on the chart.  You want a
   combination of no more than two numbers, and only addition is allowed.  
   So, D00000h = C00000h + 100000h. Looking at the chart, that gives us a 
   "7" in slot 5 and a "0" in slot 6. [????-70??]


2. Next, we have to get A0000h.  A0000h = 80000h + 20000h.  That gives us a
   "4" in slot 7 and a "6" in slot 8. [????-7046]


3. Get 4000h, which is simply an "A" in slot 3.  [??A?-7046]


4. Get D00h.  D00h = C00h + 100h, which is a "7" in slot 8 and a "0" in slot
   5.  Uh oh!  We already have numbers in those slots!  No problem.  Just
   "lay" the values for D00h over the previous values; you'll find it always
   works.  For instance, your old value for slot 5 was C00000h.  The one you
   want now is 100h.  "Lay" the second on top of the first and you get
   C00100h, which, if you look on the chart, is a "5" in slot 5.  Do a similar
   thing with slot 8:  your value already there is 20000h, and the one you
   want now is C00h.  "Lay" the C00h on the old value, and you get 20C00h,
   which is obtained with an "8" in slot 8. [??A?-5048]


5. Get B0h.  B0h = "8" in slot 4.  [??A8-5048]


6. Get 2h.  2h is a "6" in slot 7.  You already have a slot 7, so use the
   "laying" technique again:  Your initial value for slot 7 was 80000h.
   80000h + 2h = 80002h, which is a "C" in slot 7.


So, your final code comes out ??A8-50C8.  And that's all there is to it!
This is useful, because using a hex editor, you can search the ROM of a game
for a value your looking for (for instance, initial stats), and use this to
find the equivalent GG code.  If you find continuous memory addresses for
stats, etc., you don't have to do this for every code.  Just use the
"increment" information in <13.3> to calculate the rest of the codes--
999 times out of 1000 you'll be right.




****************************
* PART 14: USING THE SLOTS *
****************************


<14.1> Introduction-----------------------------------------------------------   


This is a collection of information gathered by induction, and
information from sources at Galoob.


NOTE:     Some of this information might not work on certain games.




<14.2> Slots 1 and 2----------------------------------------------------------   


SLOT 1:  INCREMENT   Data +1
SLOT 2:  INCREMENT:  Data +10h (16)
***  These slots affect the value which the memory address (specified
     by the rest of the code) is set to.  How to arrive at this value
     (if it is numeric) is explained in Part 10 above.  If it's not
     blatantly numeric in the game, the general rule of thumb is 
     "smallest value, smallest effect; largest value, largest effect",
     though this is reversed on some games.


***  On some codes, you don't really have to plug every alphanumeric
     possible.  Instead use this method.  Plug the highest effect, which
     is "EE" (255).  Then, plug in the smallest effect which is "DD" (0).  
     Then finally, plug "6D" (128), which is the most average.  Sometimes, 
     you get a whole new effect by doing this.




<14.3> Slot 3-----------------------------------------------------------------   


INCREMENT:  1000h (4096)


***  This is probably the most elusive slot of the Game Genie code.
     Changing it can do almost anything, though there seem to be
     certain "slot 3 / slot 8" pairs which compliment each other
     well:
				MOST COMMON
	 SLOT 3		  SLOT 8
	 ------		-----------
	 D / 6		8, B
	 F / B		3, E
	 4 / C		3, E
	 7 / 8		3, E
	 0 / A		Anything (this seems to be the most versatile slot 3)
	 9 / 2		8, B
	 1 / 3 		6, C
	 5 / E		D, 7
 


<14.4> Slot 4-----------------------------------------------------------------   


INCREMENT: 10h (16)


***	 This slot can be anything.  It has the widest range of values.
      Usually, the alphanumeric in slot 4 will modify the effect created
      by slot 3.  Changing this slot up or down one or two digits is a 
      good way to find new codes.


	 EXAMPLE:  Final Fantasy III
                      CE17-77D6    Learn all spells from Espers at x5 rate
                   A simple modification to position 4 yields:
                      CE19-77D6    Learn all spells from equipped Esper
                                    after one battle




<14.5> Slot 5-----------------------------------------------------------------   


INCREMENT INSIDE GROUP: 100h (256)
INCREMENT OUTSIDE GROUP: 400000h (4,194,304)


***  Just remember if you find a working alphanumeric for slot 5,
     chances are it will only use the alphanumerics in its group.
     SLOT 5 GROUP CHART:                
     -----------------------------------
     Group 1: D 0 6 A [second most common]                 
     Group 2: F 9 B 2 [very rare]                    
     Group 3: 4 1 C 3 [very rare]                      
     Group 4: 7 5 8 E [most common by far]             
     -------------------------------------
***  This is another way to easily create codes.  The vast majority
     of existing codes have position 5 values of 7, 5, 8, and E.
     (0 might work as well).  Simply substitute the other three characters 
     in a code and you can create some truly magnificent effects! 


	 Final Fantasy III
	 EXAMPLE:     **00-5D68       Every action causes you to fight.
	              **00-8D68       Changes Strago's lores to different
                                        spells.
	 			  					


<14.6> Slot 6-----------------------------------------------------------------   


     SLOT 6 GROUP CHART:
     INCREMENT INSIDE GROUP: 4
     INCREMENT OUTSIDE GROUP: 100000h (1,048,576)                
     --------------------------------------
     Group 1: D F 4 7  [most common]
     Group 2: 0 9 1 5  [rare]
     Group 3: 6 B C 8  [second most common]
     Group 4: A 2 3 E  [rare]  
     --------------------------------------


***  Changing this within the group will usually cause a small effect change.
     Changing to another group will change the code so much, that there will
     be very little similarity to the original.


<14.7> Slot 7-----------------------------------------------------------------   


     SLOT 7 GROUP CHART:
     INCREMENT INSIDE GROUP: 1
     INCREMENT OUTSIDE GROUP: 40000h (262,144)
     ---------------------------------------
     Group 1: D 0 6 A  [most common]                                     
     Group 2: F 9 B 2  [rare]      
     Group 3: 4 1 C 3  [uncommon]  
     Group 4: 7 5 8 E  [second most common]
     ---------------------------------------


***  Slot 6 and 7 often work together.  They affect the memory
     address, and thus, the code's effect, slightly, when changed
     within their groups.  This is probably the easiest way to 
     create a new code.




<14.8> Slot 8-----------------------------------------------------------------   


     INCREMENT OUTSIDE GROUP: 400h (1024)
     INCREMENT OUTSIDE GROUP: 10000h (65536)


     SLOT 8 GROUP CHART:                  
     -------------------
     Group 1: D F 4 7              
     Group 2: 0 9 1 5             
     Group 3: 6 B C 8            
     Group 4: A 2 3 E              
     -------------------
 *** Slot 8 affects the area of the game which is altered by the code,
     and thus, can be any digit.  Digits in the same group are related.
     For example:
                            FINAL FANTASY III - VALUES OF 8th POSITION
                            ------------------------------------------
                            D, F, 4, 7 = Affects the map screen &
                                         walkabout graphics for
                                         characters
                            0, 9, 1, 5 = Miscellaneous (varies greatly)
                            6, B, C, 8 = Affects mechanics of battle;
                                         what happens after battle;
                                         menu screens in battle
                            A, 2, 3, E = Affects out-of-battle menu 
                                         screens (e.g. equip, item,
                                         stores)
					    


************************************
* PART 15: INFINITE OR ILLITERATE? *
************************************


<15.1> Introduction-----------------------------------------------------------   


     Have you noticed that in all games, the codes to get an INFINITE amount
of something are never the same as the ones that give you a numerical amount
for that quantity?


For example:
DRAGON'S LAIR (SNES)
--------------------
D689-0404      "Start with 9 lives"
3C62-D70F      "Infinite lives"


You will notice that both codes are totally different from each other.


Why?  Because they affect two totally different things!


"Start with 9 lives" affects the life counter at the beginning of the game
and changes it to 9; it merely alters a constant.


"Infinite lives" forces the life counter to add another life before 
subtracting one upon death; it alters the game's mathematical calculations.


<15.2> Explanation------------------------------------------------------------   
 ---------------------------------------------------------------------------
| D689-0404      "Start with 9 lives"                                       |
|                                                                           |
| D6 =      The numerical value of 9                                        |
| 89 =      Alters PLAYER's statistics at start of game                     |
| 0  =      Alters statistics at start of game                              |
| 40 =      Alters "LIVES" at start of game                                 |
| 4  =      Alters the INTITALIZATION of the game, not the game itself.     |
|                                                                           |
| You start the game with 9 lives.  When your player dies, it               |
| subtracts 1 from the life counter and you will end up with 8 lives.       |
|                                                                           |
|                                                                           |
| 3C62-D70F      "Infinite lives"                                           |
|                                                                           |
| 3C =      "No options" code [i.e., turns a memory address off or on]      |
| 62 =      Alters calculation of PLAYER's statstics during the game        |
| D  =      Alters calculation of STATISTICS during the game                |
| 70 =      Alters the calculation of player's LIVES during the game        |
| F  =      Refers to the calculation of "+" and "-"  (alternate)           |
|                                                                           |
|  You start the game with the same amount of lives as normally.  What this |
|  code does is replaces the code for "subtract one from the life counter"  |
|  with "do nothing" (i.e., turns the address off).  Any value other than   |
|  "DD" for the first two digits will accomplish this purpose.              |
 --------------------------------------------------------------------------






********************************
* PART 16: COMPANY HEX METHODS *
********************************


<16.1> Introduction-----------------------------------------------------------   


     Certain companies tend to store the memory in their cartridges in
 certain places.  So, in turn, the most useful codes for games by those
 companies tend to use the same "groups". These charts will help you
 ascertain which "groups" are best to use for positions 5, 6, 7 and 8
 in games by various companies.


 ---------------------------------------------------------------------------
| CHART: ****-5678                                                          |
| Each CODE slot has 4 possible groups to plug in.                          |
| Let's pretend you want to create codes for... Final Fantasy 3 (Square).   |
| Well, looking at my chart below you will see that:                        |
| **************                                                            |
| * SQUARESOFT *                                                            |
| **************                                                            |
| MOST USED:     4111                                                       |
| OTHERS:        1111   1113   1114   1111   4113                           |
|                                                                           |
|     Meaning that if you want to create a working code for FF3, you might  |
| want slots 6,7 and 8 to come from group 1, and slot 5 to come from        |
| group 4.  It doesn't matter what slots 1-4 are.                           |
| SAMPLE CODES: D555-776D 8800-8D67  <--- Notice how slots 6,7, and 8       |
|                                         belong to group 1, and slot 5     |
|                                         belongs to group 4.               |
|                                                                           |
| 5 & 7                  Change the character to another one in its group:  |
|                        Group 1: D 0 6 A                                   |
|                        Group 2: F 9 B 2                                   |
|                        Group 3: 4 1 C 3                                   |
|                        Group 4: 7 5 8 E                                   |
|                                                                           |
| 6                      Change the character to another one in its group:  |
|                        Group 1: D F 4 7                                   |
|                        Group 2: 0 9 1 5                                   |
|                        Group 3: 6 B C 8                                   |
|                        Group 4: A 2 3 E                                   |
|                                                                           |
| 8                      Can be anything, but the alphanumerics within      |
|                        the "groups" for position 6 will create similar    |
|                        effects.                                           |
|                                                                           |
 ---------------------------------------------------------------------------   


<16.2> Company Hex Method Chart----------------------------------------------- 


NOTE:  Remember the 4 numbers you see are the groups used for
       slots 5, 6, 7, and 8, respectively.




####################
# 20TH CENTURY FOX #
####################
MOST USED :    1111
OTHERS    :    1121   1212   1244




###########
# ACCLAIM #
###########
MOST USED :    1111




#########
# ATARI #
#########
MOST USED :    1111   1112




##########
# CAPCOM #
##########
MOST USED :    1111   1112
OTHERS    :    3111   3113   3112




#############
# DATA EAST #
#############
MOST USED :    1112   1111




##########
# DISNEY #
##########
MOST USED :    1111




###################
# ELECTRONIC ARTS #
###################
MOST USED :    1111
OTHERS    :    1122   1134




########
# ENIX #
########
MOST USED :    1112
OTHERS    :    1131   1121




########
# FASA #
########
MOST USED :    1111   3111
OTHERS    :    3122




#############
# INTERPLAY #
#############
MOST USED :    4234




##########
# JALECO #
##########
MOST USED :    1111   3111   3324
OTHERS    :    3332   3112




#########
# KEMCO #
#########
MOST USED :    1111
OTHERS    :    1144




########
# KOEI #
########
MOST USED :    1112
OTHERS    :    4131   4124




##########
# KONAMI #
##########
MOST USED :    1111   1112
OTHERS    :    1122   3111   2113   3114




##########
# MIDWAY #
##########
MOST USED :    1111   3114
OTHERS    :    3111   3231   3434




############
# NINTENDO #
############
MOST USED :    2411   3111
OTHERS    :    1243   1111   1124   1112




##############
# SQUARESOFT #
##############
MOST USED :    4111
OTHERS    :    1112   1113   1114   1111   4113




###################
# WARNER BROTHERS #
###################
MOST USED :    3111
OTHERS    :    3113






******************************** 
* PART 17: WORDS FROM THE WISE *
********************************


Here are some helpful tips from various people:


<17.1> Don't scrap blackout and freeze codes.  Chances are that the code
       needs to be changed a bit so it doesn't freeze or blackout.


<17.2> Here are some tips for "start with" codes:
       Changing the 4th character to something else will sometimes give the
       same effect but for somebody / something else.  Example:
       CHRONO TRIGGER GAME
       8B64-745D    Crono starts with the SeraphSong accessory in his
                     weapon slot
       8B6A-745D    Lucca starts with the SeraphSong accessory in her
                     weapon slot


<17.3> Changing the first and/or second character will give different items.
       Example:
       CHRONO TRIGGER GAME
       8B64-745D    Crono starts with the SeraphSong accessory in his
                     weapon slot.
       4464-745D    Crono starts with the PicoMagnum gun in his weapon slot.


<17.4> Change the 8th character of a code to any other character.  If you get
       an effect, chances are it will be different.


<17.5> Changing the 3rd, 5th or 8th characters will most likely give a very 
       different effect.


<17.6> Changing the 7th character of a code has little change on the effect
       (most of the time).


<17.7> Once you have the last 4 characters of a code (____-XXXX) enter random 
       characters in the first four slots and see what kinds of different
       effects you come up with.  (Good endings to try are -54D8 on Final
       Fantasy III and -7765 on Chrono Trigger).




****************************************************
* PART 18: ANATOMY OF THE CODE:  FINAL FANTASY III *
****************************************************


<18.1> Introduction-----------------------------------------------------------   


I have done most of my code-creating work with the Final Fantasy III game
by Squaresoft.  What follows is the results of lots and lots and lots of 
guessing.




<18.2> Memory Address Positions-----------------------------------------------   


* Positions 6 and 7:
	Alter these positions in a pre-existing code to change its effect
slightly.  Sometimes, you can end up with an entirely different code
by changing the sixth character, however.
	The most common values for these positions are D, 0, 6, and A for
position 7 and D, F, 4, 7 for position 6.


EX:       CE17-77D6  Learn spells at 5x rate
          CE17-7DD6  Gain every 4th rage on the right hand side of
                      Gau's list after one battle; screw up configuration
		
          59A3-846D  Enables entire Veldt cycle, plus some bosses
          59A3-8FDD  Only run into enemies from Kefka's Tower on the Veldt.
	    
* Positions 3 and 4:
     A good way to create codes is to take a common ending (-XXXX) and a
     constant value (first 2 characters -- AA seems to work well for a
     constant) and experiment by changing the third and fourth characters.


     AA00-54D8  Mimic enemies' last action
     AA88-54D8  Changes battle music
     AA23-54D8  16,777,216 experience pts. per fight
     AA2D-54D8  Act weirdly in battle


     ENDINGS TO TRY:  
     ---------------
        IN BATTLE:   -54D8, -54DB, -E4D8, -E4DB, -8D68, -84D8, -84DB,
                     -77D6, -E7D6, -57D6, -54A6, -54D6, -EFDB, -E768.
        ON MENU:     -5F63, -5D03, -5DAE, -EF63, -8F63
        ON MAP:      -740D, -74AD, -746D, -770D, -77AD
	
* Position 5:
   This is usually 7, 5, 8, or E.  Changing this to one of the other three
   characters from a pre-existing code will usually create a new, different
   code.  THIS METHOD IS OFTEN OVERLOOKED AND CAN RESULT IN SOME GREAT NEW
   CODES!!  I found the Enemy Spells Code (**00-8D68) this way.


* Position 8:
   Changing this will alter the broad area of the game which your code
   affects:


                               ------------------------------------------
                               D, F, 4, 7 = Affects the map screen &
                                             walkabout graphics for
                                             characters
                               0, 9, 1, 5 = Miscellaneous (varies greatly)
                               6, B, C, 8 = Affects mechanics of battle;
                                              what happens after battle;
                                              menu screens in battle
                               A, 2, 3, E = Affects out-of-battle menu 
                                              screens (e.g. equip, item,
                                              stores)


     Try changing the 8th digit to another in its group for a new code
     which affects the same area of the game.


     Example:     2624-EFD8   Glitchy menu screen in battle
                  2624-EFDB   Cast any spell on any target




<18.3> Disassembling a Code---------------------------------------------------   


Let's take the code xx00-8D68, which replaces Strago's Lores with various
attacks from the game.


We can learn a number of things from this code:


1.  The memory address at which the commands for executing Strago's
    Lores are kept:
    xx00-8D68 ---> straight hex xx44-B08B ---> memory address 025042:xx


    Look at this memory address in a Hex Editor and you will see that it is
    set to "8B".  This is because 8Bh (139) is the index number for the
    "Condemned" spell, the first spell on Strago's list.


2.  The spells are stored in a certain order, and each spell in the game has 
    an index number.  Replacing xx with that index number will result in 
    Strago's lore list starting with that numbered spell and including the 
    next 23.
      Example:  Index number of "oFire     " = DD (00h,   0 dec)
                                "oIce	   " = DF (01h,   1 dec)
                                "oBolt     " = D4 (02h,   2 dec)
                                "Condemned " = 68 (8Bh, 139 dec) 
                                "Absolute 0" = 88 (BBh, 187 dec)
                                "Engulf    " = 29 (D5h, 213 dec)
                                "Imp Song  " = C7 (A3h, 163 dec)
                                "Fallen One" = AD (C0h, 192 dec).


3.   ANALYSIS OF THE CODE:
     Positions 1 & 2:  xx sets the value for the memory address 025042h.
     Position 8:  The "8" tells the code to affect the part of the ROM
                  that controls battle, or the results of a battle
     Position 3:  The "0" directs the code pointer to the MAGIC-TYPE MENU
                  area of the memory.
     Positions 4 & 5:  These zero in on the LORE menu in the memory.
     Positions 6 & 7:  These affect the addresses that tell the game HOW
                       to handle the selection of a Lore (cast a spell).
                       Changing these can result in different things
                       happening when you select a Lore (e.g., execute a
                       physical attack, screw up battle, black out game).






***********************
* PART 19: FINAL WORD *
***********************


  	I hope this guide has helped... remember, one of the most important
factors in GG code creation is just plain luck!  Even the most seasoned
code creator can search for hours and find nothing.  Finally, with the
invaluable assistance of gervase@azstarnet.com and starfox@earthcorp.com,
I was able to find out the way to convert Game Genie codes into ROM
addresses in ANY game!  Enjoy the fruit of our labors! :)


                                                      AeroStar13@aol.com
                                                      GGCCC Co-President