Deducing Your Secret ID in the Third and Fourth Generations

By mingot. Art by Bummer.
Art by Bummer

Credits

Without X-Act's initial article on PID and IV creation this would either not exist or be much more complex than need be. Thank you.

Introduction

What is a Secret ID?

While it is common knowledge that each trainer has an ID, it is somewhat less known that he or she also has a Secret ID which is hidden away. Like the Trainer ID, this Secret ID is also recorded on each Pokemon a Trainer captures or breeds. This Secret ID is used in the equation which determines whether a Pokemon is shiny or not.

Why would I care?

Recently it has been discovered that the Random Number Generator, which controls IV's, natures, and whether a Pokemon is shiny, produces very predictable results. With little effort shiny Pokemon may be bred (in 4th generation games) or captured (in Emerald and 4th generation games), but it does require your Secret ID. There are ways to determine your Secret ID through the use of cheat devices but this guide explains how to find it for those that don't have access to or don't wish to use one of these.

For information on using your Secret ID to breed or capture shiny Pokemon please refer to the articles listed below:
The DPP / HGSS RNG Abuse Guide
The Emerald RNG Abuse Guide

Preliminaries

Before you begin, you will need the following:

A non-bred / non-chained shiny Pokemon that was caught in the game where you wish to determine the Secret ID. Pokemon caught while chaining, but from non-shiny patches are considered to be non-chained.

Access to a calculator that is capable of doing Hexadecimal and Binary conversions. Both the standard Windows and Macintosh calculators will do, but the body of this guide will assume that you are using the Windows Calculator.

The Deduction Process

Find your IVs

You will need to discover the exact IVs of your shiny Pokemon first. Depending on the level, this could be either extremely easy or difficult. Check them with Metalkid's IV Calculator. It may be that the EVs of the Pokemon are unknown, and in this case you will want to use EV reducing Berries to clear them before using MetalKid's IV Calculator.

Find your PID

Once you have found the IVs of your shiny Pokemon, you will need to find its PID. The easiest way to accomplish this is by using X-Act's IV to PID Applet. Simply enter the IVs you calculated above and the nature of your Pokemon. X-Act's IV to PID Applet will then display a list of all possible PIDs based on the information you have entered and the SID required to make it shiny. For our example, we'll use a captured Fearow with IVs of 6 / 22 / 29 / 17 / 15 / 4 and a Serious nature which was captured in Pokemon Pearl.

Look for output that is similar to the following:

PID: 0466036312 [1BC72658] | Created by Method 1 | Gender Number: 088 | Ability: 0
PID: 4009280062 [EEF8C23E] | Created by Method 2 | Gender Number: 062 | Ability: 0
2 possibilities

Depending on the game where the Pokemon was captured will determine which of these lines you are interested in.

  • For all Legendaries in every Pokémon game, you will look for PIDs created by Method 1.
  • For 4th Generation games, you will look for PIDs created by Method 1.
  • For wild Pokemon in 3rd Generation games you will look for PIDs created by Methods 1, 2, 3, or 4.

Note: There may be more than one line in the output that satisfies the criteria for the Pokemon whose IVs you have entered. In this situation, you will be forced to complete the following steps for both of these PIDs and determine which one was correct at a later time by using Random Number Generator abuse techniques.

Once you only get one possiblity in the applet, you've found your SID! Congrats! For those who prefer a more manual approach or who want to understand the intracacies, read on.

Calculate your Secret ID

Following along with the sample data from above, we will take the hexadecimal version of the PID (highlighted and in square brackets above), then add as many 0's to the front as are necessary to make this eight digits long.

As our example number is already eight digits, we do not have to pad the number.

Resulting PID: 1BC72658

Our next step is to take this number and half it into two four digit numbers as such:

1BC7
2658

Now open your calculator and convert both of these numbers to Binary. Using Windows built in calculator to do this is quite simple. Select the View->Scientific menu item and then click on the Radio Button next to 'Hex'. Paste in the Hexadecimal number and then click on the radio button next to 'Bin' to switch to the Binary view of this number.

Do this for both halves of the PID and paste the results into a text file.

1101111000111
10011001011000

Once this is done, switch your calculator into decimal mode and paste in your Trainer ID. We will be using 55083 for this example. Click the Radio Button next to 'Bin' to convert this into a third Binary number and paste the results into your text file under the first two.

1101011100101011

The next task is to make each of these binary numbers exactly 16 digits long. If any number has less than 16 digits, simply add enough zeros to the beginning of the number to make it so.

Now these numbers should line up as below:

0001101111000111
0010011001011000
1101011100101011

Our next step is to use these three numbers to create a 4th number, which will be our deduced secret ID.

Our goal when creating our 4th number is to have the sum of the number in each individual column equal either 0, 2, or 4; that is for the number of ones in each column to be an even number. Please note that this calculation is only necessary for the first 13 columns.

The example below shows the math for each of the 13 columns.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
1            |000

As the sum of the first digits in this column add up to 1, we will add 1 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
11           |000

As the sum of the first digits in this column add up to 1, we will add 1 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
111          |000

As the sum of the first digits in this column add up to 1, we will add 1 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
1110         |000

As the sum of the first digits in this column add up to 2, we will add 0 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
11101        |000

As the sum of the first digits in this column add up to 1, we will add 1 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
111010       |000

As the sum of the first digits in this column add up to 2, we will add 0 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
1110101      |000

As the sum of the first digits in this column add up to 3, we will add 1 to get our even result, which is 4 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
11101010     |000

As the sum of the first digits in this column add up to 2, we will add 0 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
111010101    |000

As the sum of the first digits in this column add up to 1, we will add 1 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
1110101010   |000

As the sum of the first digits in this column add up to 2, we will add 0 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
11101010101  |000

As the sum of the first digits in this column add up to 1, we will add 1 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
111010101011 |000

As the sum of the first digits in this column add up to 1, we will add 1 to get our even result, which is 2 in this case.

0001101111000|111
0010011001011|000
1101011100101|011
-------------|---
1110101010110|000

As the sum of the first digits in this column add up to 2, we will add 0 to get our even result, which is 2 in this case.

This leaves with a final binary number which represents our Secret ID.

1110101010110000

Switch your calculator to 'Bin' and paste in this result and then switch the calculator to 'Dec' to finally retrieve your Secret ID in decimal. The Secret ID in our example is 60080.

Afterward

The following is technical and likely not of interest to those who simply wish to use the results of the method outlined above to breed and capture shiny Pokemon.

This does not always give you your exact Secret ID, but as only the first 13 bits of your Secret ID are taken into account for determining shininess, it does give a compatible result. The actual Secret ID will be in the range of the number this method produces (n) and n+7. For example, if the method results in 10000 as the Secret ID the actual Secret ID is some number between 10000 and 10007.