Piñata Vision barcode/Choclodocus egg card

From PinataIsland.info, the Viva Piñata wiki
Jump to: navigation, search


Project status

The Choclodocus egg card was discovered on May 3, 2010 by Shrly, who volunteered to help scan cards for the barcode project.

This project has ended.

Summary of discoveries about the barcode

  1. C6 and 96 obfuscation sets are actually part of a common *6 obfuscation set.
  2. It's possible to note bit differences between a single pair of cards in an obfuscation set, and apply that bit change to a similarly obfuscated card a similar ID distance away from the missing (egg) card. This method will produce a valid barcode right from the start, eliminating the trial-and-error bit-flipping approach. (See #ID bit 5 bit difference results for an example.)

Working notes

Looking at the ID table, several egg cards are missing. Based on the alphabetic order for the egg cards and the missing IDs, there's likely an Egg_dinosaur_208 card that hasn't been released.

Here's the relevant snippet from the ID table.

207  C4 	 CB76D954B86F82A4	Vision_Single_PlaceTag_Egg_deer_207.jpg
208  ?? C6??                            Dinosaur egg??
209  FF		 F1706B687463A38F	Vision_Single_PlaceTag_Egg_dog_209.jpg

Based on the sequence of the obfuscated sets, it's possible that the Choclodocus egg card is a C...6 9...6 card.

The goal of the project is to find a similar obfuscated card, and change its ID bits to 208, to see if a Choclodocus egg card can be scanned. Naturally, other bits (checksum or non-checksum bits that produce a net zero sum) need to be changed too, so the card remains valid.

Among the possibilities, a good candidate is the Egg_lion Egg_hydra card, since it requires the least manipulation.

  • 0201 C6 Egg_chameleon 201 -> 208. Flip ID bits 0, 3, 4
  • 0218 C6 Egg_firefly 218 -> 208. Flip ID bits 1, 3, 4
  • 0248 C6 Egg_lion 248 -> 208. Flip ID bits 3, 5
  • 0287 C6 Egg_sheep 287 -> 208. Flip ID bits 0, 1, 2, 3, 6
  • 0240 96 Egg_hydra 240 -> 208. Flip ID bit 5

Results for scanning flipped cards

Flipped bits New base barcode Status Results
13, 10 C6FEF696AB02D0B6 Tested by FeralKitty No valid cards based on this barcode, or with a single additional bit-flip from 00 to 63.
12, 10 C6FEF696AB02E0B6 Underway by FeralKitty Scanned a few, including the above barcode. Nothing valid yet.
12, 24 C6FEF696AA02E4B6 Underway by FeralKitty
12, 13, 11 C6FEF696AB02CCB6 Tested by FeralKitty No valid cards based on this barcode, or with a single additional bit-flip from 00 to 63.
12, 13, 06 C6FEF696AB02C4F6 Tested by FeralKitty No valid cards based on this barcode, or with a single additional bit-flip from 00 to 63.
12, 13, 51 C6F6F696AB02C4B6 Tested by Shrly No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 51, 24 C6F6F696AA02C4B6 Tested by Shrly No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 51, 45 C6F6D696AB02C4B6 Tested by ImaTestWentBad No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 51, 46 C6F6B696AB02C4B6 Tested by ImaTestWentBad No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 51, 47 C6F67696AB02C4B6 Tested by ImaTestWentBad No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 49 C6FCF696AB02C4B6 Tested by Daremo 001 No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 39 C6FEF616AB02C4B6 Tested by ImaTestWentBad No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 38 C6FEF6D6AB02C4B6 Tested by love evil No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 33 C6FEF694AB02C4B6 Tested by ImaTestWentBad No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 31 C6FEF6962B02C4B6 Tested by love evil No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 23 C6FEF696AB82C4B6 Tested by ImaTestWentBad No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 21 C6FEF696AB22C4B6 Tested by Shrly No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13, 21, 19 C6FEF696AB2AC4B6 Tested by ImaTestWentBad No valid cards based on this barcode, or with a single additional bit-flip from 04 to 59.
12, 13 96FEF696AB02C4A6 Tested by Shrly Discovered Choclodocus egg. Other discovered cards include:
  • 96FEF69EAB02C4A6 12=0 13=0 35=1 ID 720 Produce_dinoredbone (ID 240 + 512 - 32). Bit 35 = ID bit 9
  • 96FEF6962B02C4A6 12=0 13=0 31=0 Choclodocus egg. Bit 31 = ??
  • 96FEF696AB02C426 12=0 13=0 7=0 Choclodocus egg. Bit 07 = ??
  • 96FEF696AB02C486 12=0 13=0 5=0 Choclodocus egg. Bit 05 = ??

Bit difference results

Performing a bit difference on *6 cards with known IDs, we get these possible results for the ID bits:

cat 96_no_banjostatue.txt c6_test.txt | ./bit_diff.pl 
                                             665555555554444444443333332222222211111111100000
Description            VPID Barcode          209876543208765432107654209876542098765432097654
---------------------------------------------------------------------------------------------
Plant_turnip           1061 926EDBA6AA48F656 010010011010110110111001001010101010001111110101  0x0425 0b0000010000100101
Egg_walrus             0309 926EDF96E548F4A6 010010011010110111110101011001011010001111101010  0x0135 0b0000000100110101
Home_canary            0517 926EDF9EAA48C656 010010011010110111110111001010101010001100110101  0x0205 0b0000001000000101
Prop_firtreelog        0821 926EDF9EE548F4A6 010010011010110111110111011001011010001111101010  0x0335 0b0000001100110101
Plant_snapdragon       1076 926EF4A6AA48F4A6 010010011010111101001001001010101010001111101010  0x0434 0b0000010000110100
Egg_newt               0260 926EF696E548C656 010010011010111101100101011001011010001100110101  0x0104 0b0000000100000100
Egg_spider             0292 926EF696E548F656 010010011010111101100101011001011010001111110101  0x0124 0b0000000100100100
Home_dragonfly         0532 926EF69EAA48C4A6 010010011010111101100111001010101010001100101010  0x0214 0b0000001000010100
Prop_minerslantern     0772 926EF69EE548C656 010010011010111101100111011001011010001100110101  0x0304 0b0000001100000100
Prop_spade             0804 926EF69EE548F656 010010011010111101100111011001011010001111110101  0x0324 0b0000001100100100
Plant_pumpkin          1063 927ADBA6AA48F656 010010011100110110111001001010101010001111110101  0x0427 0b0000010000100111
Egg_redbutterfly       0279 927ADF96E548C4A6 010010011100110111110101011001011010001100101010  0x0117 0b0000000100010111
Egg_whitebutterfly     0311 927ADF96E548F4A6 010010011100110111110101011001011010001111101010  0x0137 0b0000000100110111
Home_cat               0519 927ADF9EAA48C656 010010011100110111110111001010101010001100110101  0x0207 0b0000001000000111
Home_goose             0551 927ADF9EAA48F656 010010011100110111110111001010101010001111110101  0x0227 0b0000001000100111
Prop_appletreelog      0823 927ADF9EE548F4A6 010010011100110111110111011001011010001111101010  0x0337 0b0000001100110111
Plant_orchid           1078 927AF4A6AA48F4A6 010010011100111101001001001010101010001111101010  0x0436 0b0000010000110110
ZZToy_origong          2243 96EA3F96AB02C656 010110111000001111110101001010110000101100110101  0x08c3 0b0000100011000011
Egg_bushbaby           0195 96EADF96AB02C656 010110111000110111110101001010110000101100110101  0x00c3 0b0000000011000011
Seed_thistle           0467 96EADF96E402C4A6 010110111000110111110101011001000000101100101010  0x01d3 0b0000000111010011
Produce_toffeeapple    0707 96EADF9EAB02C656 010110111000110111110111001010110000101100110101  0x02c3 0b0000001011000011
Prop_birdbath1         0739 96EADF9EAB02F656 010110111000110111110111001010110000101111110101  0x02e3 0b0000001011100011
Seed_blackberrybush    0482 96EAF696E402F656 010110111000111101100101011001000000101111110101  0x01e2 0b0000000111100010
Produce_dinobluebone   0722 96EAF69EAB02C4A6 010110111000111101100111001010110000101100101010  0x02d2 0b0000001011010010
ZZToy_spocoffin        2241 96FE3F96AB02C656 010110111110001111110101001010110000101100110101  0x08c1 0b0000100011000001
Produce_bone           0705 96FEDF9EAB02C656 010110111110110111110111001010110000101100110101  0x02c1 0b0000001011000001
Egg_hydra              0240 96FEF696AB02F4A6 010110111110111101100101001010110000101111101010  0x00f0 0b0000000011110000
Seed_birdofparadisep   0448 96FEF696E402C656 010110111110111101100101011001000000101100110101  0x01c0 0b0000000111000000
Seed_oak               0480 96FEF696E402F656 010110111110111101100101011001000000101111110101  0x01e0 0b0000000111100000
Produce_dinoredbone    0720 96FEF69EAB02C4A6 010110111110111101100111001010110000101100101010  0x02d0 0b0000001011010000
Black_scorpion         0109 C24EDA969E5D2476 100010010010110110100101000111101111010010100111  0x006d 0b0000000001101101
Plant_yam              1069 C26EDBA6AA48F646 100010011010110110111001001010101010001111110100  0x042d 0b0000010000101101
Egg_zebra              0317 C26EDF96E548F4B6 100010011010110111110101011001011010001111101011  0x013d 0b0000000100111101
Home_crocodile         0525 C26EDF9EAA48C646 100010011010110111110111001010101010001100110100  0x020d 0b0000001000001101
Home_hedgehog          0557 C26EDF9EAA48F646 100010011010110111110111001010101010001111110100  0x022d 0b0000001000101101
Egg_peacock            0268 C26EF696E548C646 100010011010111101100101011001011010001100110100  0x010c 0b0000000100001100
Home_mandrill          0572 C26EF69EAA48F4B6 100010011010111101100111001010101010001111101011  0x023c 0b0000001000111100
Prop_gardenjunk83      0812 C26EF69EE548F646 100010011010111101100111011001011010001111110100  0x032c 0b0000001100101100
Plant_buttercup        1071 C27ADBA6AA48F646 100010011100110110111001001010101010001111110100  0x042f 0b0000010000101111
Egg_sheep              0287 C27ADF96E548C4B6 100010011100110111110101011001011010001100101011  0x011f 0b0000000100011111
Egg_cow                0319 C27ADF96E548F4B6 100010011100110111110101011001011010001111101011  0x013f 0b0000000100111111
Home_deer              0527 C27ADF9EAA48C646 100010011100110111110111001010101010001100110100  0x020f 0b0000001000001111
Home_horse             0559 C27ADF9EAA48F646 100010011100110111110111001010101010001111110100  0x022f 0b0000001000101111
Prop_totemskunk        0799 C27ADF9EE548C4B6 100010011100110111110111011001011010001100101011  0x031f 0b0000001100011111
Prop_oillmap           0831 C27ADF9EE548F4B6 100010011100110111110111011001011010001111101011  0x033f 0b0000001100111111
Egg_pigeon             0270 C27AF696E548C646 100010011100111101100101011001011010001100110100  0x010e 0b0000000100001110
Home_fox               0542 C27AF69EAA48C4B6 100010011100111101100111001010101010001100101011  0x021e 0b0000001000011110
Home_mole              0574 C27AF69EAA48F4B6 100010011100111101100111001010101010001111101011  0x023e 0b0000001000111110
Prop_gardenjunk85      0814 C27AF69EE548F646 100010011100111101100111011001011010001111110100  0x032e 0b0000001100101110
Good_dog               0045 C65A659FCE58E2E6 100110010100011001010111110011101110001110011110  0x002d 0b0000000000101101
Home_beaver            0507 C6EADF96E402F4B6 100110111000110111110101011001000000101111101011  0x01fb 0b0000000111111011
Produce_garlicbutter   0715 C6EADF9EAB02C646 100110111000110111110111001010110000101100110100  0x02cb 0b0000001011001011
Tree_gooseberrybush    1019 C6EADF9EE402F4B6 100110111000110111110111011001000000101111101011  0x03fb 0b0000001111111011
Egg_firefly            0218 C6EAF696AB02C4B6 100110111000111101100101001010110000101100101011  0x00da 0b0000000011011010
Seed_blueberrybush     0490 C6EAF696E402F646 100110111000111101100101011001000000101111110100  0x01ea 0b0000000111101010
Prop_lantern           0730 C6EAF69EAB02C4B6 100110111000111101100111001010110000101100101011  0x02da 0b0000001011011010
ZZToy_minecart         2249 C6FE3F96AB02C646 100110111110001111110101001010110000101100110100  0x08c9 0b0000100011001001
Egg_chameleon          0201 C6FEDF96AB02C646 100110111110110111110101001010110000101100110100  0x00c9 0b0000000011001001
Egg_grasssnake         0233 C6FEDF96AB02F646 100110111110110111110101001010110000101111110100  0x00e9 0b0000000011101001
Seed_hemlock           0473 C6FEDF96E402C4B6 100110111110110111110101011001000000101100101011  0x01d9 0b0000000111011001
Home_bat               0505 C6FEDF96E402F4B6 100110111110110111110101011001000000101111101011  0x01f9 0b0000000111111001
Produce_marmalade      0713 C6FEDF9EAB02C646 100110111110110111110111001010110000101100110100  0x02c9 0b0000001011001001
Prop_haybail           0745 C6FEDF9EAB02F646 100110111110110111110111001010110000101111110100  0x02e9 0b0000001011101001
Tree_blackberrybush    1017 C6FEDF9EE402F4B6 100110111110110111110111011001000000101111101011  0x03f9 0b0000001111111001
Egg_lion               0248 C6FEF696AB02F4B6 100110111110111101100101001010110000101111101011  0x00f8 0b0000000011111000
Seed_nightshadebush    0488 C6FEF696E402F646 100110111110111101100101011001000000101111110100  0x01e8 0b0000000111101000
Black_crocodile        0026 CDAA6492CE50C0F6 101101101000011001000100010011101100001100001111  0x001a 0b0000000000011010
CocoadileHouse          525 CF4FF983EA48C646 101111010011111110010000111010101010001100110100  0x020d 0b0000001000001101
SweetoothHouse          507 CFBBF982E50DD6B6 101111101101111110010000011001010011011101111011  0x01fb 0b0000000111111011
Urny's_Milk_Float      2233 CFFF7982AB08D2F6 101111111111011110010000001010110010001101011111  0x08b9 0b0000100010111001

ID bit  0 to match 1111000000111111011111001100001111100011111110000111100011111111000111
  !53 | 43
  !(53 & !43)
  !53 | 40
  !(53 & !40)
  !45 | 40
  !(45 & !40)
  43 | 40
  43 | 32
  !42 | 40
  !(42 & !40)
  40 | 28
  40 ^ 28
  !(!40 ^ 28)
  !(40 ^ !28)
  40 | 18
  40 | 16
  !(40 ^ 15)
  !(!40 & 15)
  !40 ^ 15
  40 | !15
  40 ^ !15
  !(40 ^ 14)
  !(!40 & 14)
  !40 ^ 14
  40 | !14
  40 ^ !14

ID bit  1 to match 0000000000111111111111110000000000000011111111111011111100000000001010
  !(!53 | 50)
  53 & !50
  !(50 | 32)

ID bit  2 to match 1111111111111111100000000000001111111111111111111100000000000000000100
  Exact match(es): !55

ID bit  3 to match 0000000000000000000000000000001111111111111111111111111111111111111111
  Exact match(es): 62, !60

ID bit  4 to match 0101100100011001100100010010010010001001100110110010110100011001101011
  53 & 07
  53 & 05
  !32 & 07
  !(32 | !07)

ID bit  5 to match 1101101001101011100001100010101110101110101010011110101000101011110011
  13 | 12

ID bit  6 to match 0000000000000000011111111111111000000000000000000011111111111111110010
  18 | 17
  18 ^ 17
  !(!18 ^ 17)
  !(18 ^ !17)
  17 | 16
  17 ^ 16
  !(!17 ^ 16)
  !(17 ^ !16)

ID bit  7 to match 0000000000000000011111111111110000000000000000000011111111111111110011
  Exact match(es): !22

ID bit  8 to match 0101011011011001000100100001100010010101100111001010101000011001010010
  Exact match(es): !27, !25

ID bit  9 to match 0011000111000111000011010100010001101100011110111001100100000111000100
  35 ^ 32
  !(!35 ^ 32)
  !(35 ^ !32)

ID bit 10 to match 1000100000100000100000000000000100000010000000000000000000000000000000
  Exact match(es): 37

ID bit 11 to match 0000000000000000010000001000000000000000000000000000000010000000000001
  47 ^ 44
  !47 & 44
  !(!47 ^ 44)
  !(47 | !44)
  !(47 ^ !44)
  !47 & 43
  !(47 | !43)
  !(47 | 30)
  !47 & 29
  !(47 | !29)
  !(47 | 26)
  !47 & 24
  !(47 | !24)
  !(47 | 22)
  !(47 | 20)

ID bit 5 bit difference results

Comparing pairs of nearly identical cards whose ID values differ by 32. The sole difference that these cards have are with bits 12 and 13. Setting bits 12 and 13 to 1 sets ID bit 5 with a zero-sum change to other card bits.

Since ID 248 is a valid C6 card, clearing bits 12 and 13 should produce a valid C6 card with an ID of 216 (C6FEF696AB02C4B6). Unfortunately, there is no such item.

egrep "(0201|0233)" c6_test.txt | ./bit_diff.pl 
                                             11
Description            VPID Barcode          32
-----------------------------------------------
Egg_chameleon          0201 C6FEDF96AB02C646 00  0x00c9 0b0000000011001001
Egg_grasssnake         0233 C6FEDF96AB02F646 11  0x00e9 0b0000000011101001

egrep "(0287|0319)" c6_test.txt | ./bit_diff.pl 
                                             11
Description            VPID Barcode          32
-----------------------------------------------
Egg_sheep              0287 C27ADF96E548C4B6 00  0x011f 0b0000000100011111
Egg_cow                0319 C27ADF96E548F4B6 11  0x013f 0b0000000100111111

egrep "(0473|0505)" c6_test.txt | ./bit_diff.pl 
                                             11
Description            VPID Barcode          32
-----------------------------------------------
Seed_hemlock           0473 C6FEDF96E402C4B6 00  0x01d9 0b0000000111011001
Home_bat               0505 C6FEDF96E402F4B6 11  0x01f9 0b0000000111111001

egrep "(0525|0557)" c6_test.txt | ./bit_diff.pl 
                                             11
Description            VPID Barcode          32
-----------------------------------------------
Home_crocodile         0525 C26EDF9EAA48C646 00  0x020d 0b0000001000001101
Home_hedgehog          0557 C26EDF9EAA48F646 11  0x022d 0b0000001000101101

egrep "(0713|0745)" c6_test.txt | ./bit_diff.pl 
                                             11
Description            VPID Barcode          32
-----------------------------------------------
Produce_marmalade      0713 C6FEDF9EAB02C646 00  0x02c9 0b0000001011001001
Prop_haybail           0745 C6FEDF9EAB02F646 11  0x02e9 0b0000001011101001

egrep "(0799|0831)" c6_test.txt | ./bit_diff.pl 
                                             11
Description            VPID Barcode          32
-----------------------------------------------
Prop_totemskunk        0799 C27ADF9EE548C4B6 00  0x031f 0b0000001100011111
Prop_oillmap           0831 C27ADF9EE548F4B6 11  0x033f 0b0000001100111111

ID bit 3 bit difference results

Unrelated to the Egg_hydra -> Egg_dinosaur change, but an interesting method to identify obfuscated bit changes for a particular ID bit (e.g., ID bit 3).

grep "_24[08]\." VP2Beta/barcodes.txt | ./barcodetxt2bitdiff.pl --short | ./bit_diff.pl 
                                             660
Description            VPID Barcode          204
------------------------------------------------
Egg_hydra              0240 96FEF696AB02F4A6 010  0x00f0 0b0000000011110000
Egg_lion               0248 C6FEF696AB02F4B6 101  0x00f8 0b0000000011111000