How to Make SNES PAR Codes (Part Two)



     This document was written by:

    Tony Hedstrom  t.hed@excite.com


This document is actually a continuation of another
document.  In the first one, I explained how to make
Super Nintendo (SNES) Pro Action Replay (PAR) codes
using the "Exact Value Search" method.  In this
document, I will explain how to make SNES PAR codes
using the "Comparitive Search" method.  The two 
methods of finding codes are similar in some ways, but
different enough to warrant making another document.

It's best if you read the first document (part 1) 
before you read this one, but not absolutely necessary.

You should use the "Comparitive Search" method 
whenever you don't know the exact value of what you
are trying to make cheat codes for or when the "Exact
Value Search" method doesn't work.  Some examples
would be- energy bar, health, internal clocks/timers,
etc...

Also, at the end of this document (if I remember to
include it) I'm going to include some of my own
personal tips on finding PAR codes.  I never intended
to have anyone else but myself read these, so do the
best you can to understand them.

To make PAR codes, you only need two things (three if
you count your computer):

1) A SNES emulator called ZSNES.  You should get the
   newest version you can find (version 0.991 is what
   I use in this example).  You can get the latest
   version here: zophar.net

2) The ROM of the game you want to make codes for.

I'm going to use the same game for an example as I 
used in the first document (Black Thorne) and I'm 
going to try and find the same code (infinite health)
but this time we'll assume that we don't know the
exact value of our health.

Now, lets get going...

1) Run the ZSNES program.

2) Load the ROM you want codes for (in this case it's
   Black Thorne).

3) Start the game.  Since we are assuming that we 
   don't know the exact value of our health, all we
   know for sure now is that our health is at the max
   amount.  

4) Now press the "Esc" button on your keyboard to 
   pause the game and bring up the menu screen.

5) Click on the "Cheat" button, then click on "Search"

6) You now have to make a few decisions about what
   type of search you want.  Number of Bytes: This
   number will usually be one or two bytes.  In this
   case, we don't know what the amount of our health
   is, so we will make an educated guess and go with
   one byte (because the amount we're looking for
   (health) most likely will be less than 255).  If
   the amount your looking for might be greater than
   255, than choose 2 bytes, if it's greater than
   65,535 then choose 3 bytes.  You will hardly ever
   need to choose 4 bytes.  An example of when you
   may need to choose 2 or 3 bytes is when you are
   searching for the amount of gold you have.  The
   amount of gold/money you have can be 999,999 or
   higher in some games.  Sometimes you will have
   to make your best guess at how many bytes you need.

7) The next decision you need to make is which Format
   to use.  You have two choices: Dec or Hex.  98% of
   the time, you should choose Dec (Base 10).

8) Now we need to decide which search method to use.
   In this example, we're using the "Comparitive
   Search" method.

9) Now click on the "Start" button.

10) We now have 131,072 choices for our code.  Lets
    see if we can narrow that number down a bit.  
    Now lets return to the game (just like it says).
    To return to the game, all you do is press the
    "Esc" button a few times.

11) Now what we need to do is to somehow change the
    amount of health we have.  That should be easy
    enough.  Go find an enemy and let him shoot you
    once (but only once).  Pause the game.  We now
    know that our amount of health is less than it was
    before.

12) Press the "Esc" button again to get to the menu
    screen. 

13) Click on the "Cheat" button, then click on "Search"

14) You now have to pick one of the 4 choices for what
    kind of search to do: Greater than (>), less than
    (<), equal to (=), or not equal to (!=).  In this
    case, the new amount of health is less than the
    old amount, so we will pick "<" (less than).

15) Click on "Search".  The number of choices has been
    narrowed down to 5,147.  We still need to narrow
    it down some more.

16) Repeat steps 10 thru 15 until the number of choices
    has been narrowed down to 1 (or until the number
    won't go any lower).  In this case, 2 choices is 
    as low as you can get.

17) If you only have one choice left, then chances
    are pretty good that's the right one, but if you
    have more than one, you have to eliminate some of
    the choices thru the process of elimination.  We
    have 2 choices left in this example, so we need to
    find out which one is right.  To see the codes,
    click on the "View" button.

18) Lets try the first code (which is 7E007F). Select
    it and click on "Add".  Before clicking on "Add",
    write down the "PValue" listed for the code (16).

19) Now you will need to pick a value for our code.
    Since we don't know what the value of our health
    is, we will have to use the "PValue" that we
    wrote down in the last step (which was 16).  So
    then that's the number we will enter.  One note
    about the value number... the number that you 
    choose for the value, in some cases, isn't all
    that important.  But other times, it's very
    important.  As for this example, the number you
    use for the value in the health code, can be any
    number between 1 and 255.  The reason why this is
    is because the PAR constantly replaces the
    original value with the new value that you entered.
    So if you choose a value of 1, then your health
    will always stay at 1 (in other words, infinite
    health!).

20) Next, you need to enter a brief description of
    what the cheat does (optional).

21) Next, you should write down the PAR code that is
    in the "PAR Code Equivalent" box.  You should
    also write down a desciption of what you think the
    PAR code may do.  It's a good idea to write the
    code down even before you know if it's the right
    code or not incase the emulator crashes, you'll
    know not to use that code again.

22) Now click on the "Add" button.  The code will
    automatically be turned on.

23) Press the "Esc" button a few times to get back to
    the game and see if the code works.  In this case,
    it didn't work, so it is a pretty safe bet that
    the other code is the right one (which is 7E0FC5).

24) If the code works, go back to the cheat menu and
    click on the "Save" button to save the code.  If
    the code doesn't work, then either remove the code
    that didn't work (or toggle it off) and try the
    next code in the same way as before.


I know it seems like there are a lot of steps in this
example, but once you try it for the first time, you
will see that it is really very easy to do.

By going to my website (unless your already there),
and going to the SNES section, you can see some of the
codes that I made (over 100 I think) using this method.

Here are some of my own personal tips on finding PAR
codes. I never intended to have anyone else but myself
read these, so do the best you can to understand them.
I am constantly adding to this list.

This is a collection of misc. tips on how to use the
cheat part of ZSNES.

Before looking for cheat codes in a game, look in the
"options" menu of the game and see if you can adjust
things like the number of lives, the number of 
continues, etc..., then use the cheat menu to find
codes.  This method will sometimes give you codes 
that will work with the GG (ie not "7E" type codes).

I have found that it is usually better to use the
"Compare" method instead of the "Exact Value" method
to find codes.  (> = greater than, < = less than.)

"Jump" codes: These can be easy to find, but hard to
get the right value for the code.  To find a jump code,
just pause the game with the character on the ground,
then use the "comparative" cheat method.  Go back to
the game and pause the game while pressing the jump
button (right after the character leaves the ground).
Then go back to the cheat menu and search for a greater
value (higher number).  Then when he's back on the 
ground, search for a lesser value.  It sometimes helps
to do two pauses on the way up, and search for a higher
number each time.  Repeat as needed.

"Time" codes: Many time codes are 2 bytes long.

Sometimes, when you have a code that is 2 bytes (or 3
or 4), if you only use one of the bytes, you can get
some very neat effects.  The reason for this is 
because one of the bytes will be fixed by the PAR
code, but the other part of the code can change.

"Speed" codes: It is usually fairly easy to find speed
codes for racing type games.  

I hope this document helps you out.

Tony Hedstrom   t.hed@excite.com

Download the text version of this file.