User:TruePikachu/Dex3D
QR Codes
The Pokédex 3D Pro's QR codes are simplistic in design - there are 1,024 distinct codes that can be created. Each one is composed of an 8 by 8 array of cells, each of which can be either black or white.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
---|---|---|---|---|---|---|---|---|---|
0 | 0 | ||||||||
1 | 1 | ||||||||
2 | A | 8 | 5 | 2 | 2 | ||||
3 | B | 9 | 7 | 3 | |||||
4 | C | 9 | 4 | 4 | |||||
5 | 0 | 3 | 6 | 1 | 5 | ||||
6 | 6 | ||||||||
7 | 7 | ||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
This is the basic pattern that makes up the QR code. In order to generate one, the unique ID for the code needs to be known. For the primary form (or forme) of each Pokémon in the National Dex, the ID is the National Dex number minus one. Different forms of each species, as well as some special codes, are listed in the following table:
- Future table for exceptions
Once the index number for the code is known, the binary form needs to be determined. For example:
Name | Dex | Index (Dec) | Index (Hex) | Index (Bin) |
Bulbasaur | #001 | 0 | 0x000 | 00 0000 0000b |
Pikachu | #025 | 24 | 0x019 | 00 0001 1001b |
Mew | #151 | 150 | 0x096 | 00 1001 0110b |
Victini | #494 | 493 | 0x1ED | 01 1110 1101b |
Note the use of 10 bits in the binary form. Each bit is numbered from 0 to 9, right to left. For example, indexes greater than or equal to 512 have bit 9 set to 1; indexes less than 512 have bit 9 equal to 0.
Next, the data portion of the code is filled in. Each bit has a corresponding cell in the code (with the exception of bit 9, which has two). An important thing to remember is that a '1' would be _white_ in the code, and a '0' would be _black_.
Using Victini as the example:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
---|---|---|---|---|---|---|---|---|---|
0 | 0 | ||||||||
1 | 1 | ||||||||
2 | A | 2 | |||||||
3 | B | 3 | |||||||
4 | C | 4 | |||||||
5 | 5 | ||||||||
6 | 6 | ||||||||
7 | 7 | ||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
The checksum is odd-parity, and applies across rotation; Parity-A handles the corners, Parity-B handles one cell counterclockwise from the corners, and Parity-C handles one cell clockwise from the corners. These parity bits are set so that each group has an odd number of light cells and an odd number of dark cells.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
---|---|---|---|---|---|---|---|---|---|
0 | 0 | ||||||||
1 | 1 | ||||||||
2 | 2 | ||||||||
3 | 3 | ||||||||
4 | 4 | ||||||||
5 | 5 | ||||||||
6 | 6 | ||||||||
7 | 7 | ||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |