User:TruePikachu/Dex3D

From Bulbapedia, the community-driven Pokémon encyclopedia.
< User:TruePikachu
Revision as of 02:41, 13 November 2012 by TruePikachu (talk | contribs) (Creation of page - main structure)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Overview

The Dex3D QR codes can be represented as an 8x8 mono bitmap, with a black outer frame, white second-layer frame, and a 4x4 array of data - 2 bits remain constant and provide orientation information, 3 bits act for checksums, 11 bits act as data (only 10 bits are real data, one is a duplicate)

Creation

0 1 2 3 4 5 6 7
0 0
1 1
2 A 2^8 2^5 2^2 2
3 B 2^9 2^7 3
4 C 2^9 2^4 4
5 2^0 2^3 2^6 2^1 5
6 6
7 7
0 1 2 3 4 5 6 7

Row 0, row 1, row 6, row 7, column 0, column 1, column 6, column 7, cell (4,3), and cell (3,4) remain constant. First one needs to compute the index number of what QR code to make - it is generally the NDexID-1, but there are some exceptions:

  • Future table for exceptions

Once the index number is known, one can do a binary decomposition of it - some examples:

Name Dex Index (Dec) Index (Hex) Index (Bin)
Bulbasaur #001 0 0x000 %00_0000_0000
Pikachu #025 24 0x019 %00_0001_1001
Mew #151 150 0x096 %00_1001_0110
Victini #494 493 0x1ED %01_1110_1101

Using Victini as the example, fill in the data portion of the code. Note that a '1' is white, and a '0' is black.

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